跌倒探測儀適用于自理能力和自我保護能力比較差的老年人和兒童,它通過測量佩戴該儀器的個體在運動過程中的三個正交方向上的加速度來感知其身體姿態的變化,并可按照需要進行報警和發布。
跌倒探測儀由加速度傳感器、數據處理模塊、電源和通信模塊構成。其中傳感器測量對象的加速度矢量;處理器模塊負責采集加速度傳感器的數據,分析判斷對象的身體姿態并控制報警及報警信息的發布;電源模塊負責為整個系統提供電力供給;通信模塊負責將報警信息通過一定的協議進行發布。
關鍵技術
人體運動模型的建立
在姿態轉變過程中,重力將成為影響這一運動過程的主要因素。跌倒過程中,對象的加速度、速度和位移三種矢量均發生了變化。
如圖1建立直角坐標系,X、Y、Z軸相互正交,任意空間方向上的矢量變化均可以分解成X、Y、Z三個方向上的分量變化。使用者正確佩戴跌倒探測器且處于靜止或水平勻速運動狀態下,Z軸方向的加速度為重力加速度(g),其他兩個方向上加速度為0。當佩戴者跌倒時,如果僅考慮初始狀態和最終狀態就可以發現,理想情況下Z軸分量發生從最大值(1g)變化為0,而X或Y軸的分量則從0變化為最大(1g),具體是X軸還是Y軸發生這一變化,則由佩戴者跌倒后的姿態決定--平臥為X軸變化,側臥為Y軸變化。如果身體姿態介于平臥和側臥之間,則X軸和Y軸的加速度分量將滿足sqrt{x^{2}+y^{2}}=1g(站立情況下這個矢量和為0),仍然能夠通過計算分析得出與站立不同的加速度分布。
但是在實際情況中,僅根據加速度分量的改變很難分辨臥倒姿態的形成原因,容易出現很多假陽性(檢測到跌倒而實際沒有跌倒)或假陰性(未檢測到跌倒而實際出現跌倒)。因此,需要算法作進一步改進。一般來說,假陽性情況可以通過對加速度在時間域進行一次積分求速度、兩次積分求位移的方式,全方位分析佩戴者身體姿態變化加以篩選;而假陰性情況除采用上面的全面姿態分析外,還需要佩戴者自主參與才能有效提高檢出效率。因此,建立人體跌倒過程的運動模型,提取跌倒過程中身體姿態變化的特征參數是準確檢測跌倒并發布報警信息的關鍵。
無線通信及空間定位信息獲取
跌倒報警必須及時送達救助中心才能夠保證救助的有效性,報警信息的及時發布要求包含兩層含意:其一是報警信息不會因為跌倒探測器佩戴者的行動和所處的位置受到影響;其二,發布的報警信息中應該包括佩戴者跌倒的地理位置內容,這樣才能保證跌倒者得到有效救助。
采用無線通信的方式發布跌倒報警信息非常適合能夠自由行動的配戴者,無線通信技術從技術成熟度、運行成本角度也都非常適用。從技術實現和成本方面考慮,選擇CDMA通信方式更加適合跌倒探測器設計目的的實現。
系統方案設計
需求分析
身體姿態監測
通過三軸加速度傳感器的測量值,利用相應算法計算出佩戴者的身體姿態。當出現跌倒動作時,能夠觸發MCU中斷處理。
報警控制機制
使用者可根據自己的身體狀況選擇是否報警,當使用者已無法控制自己行為時,本產品應能夠保證自動實施報警。
計步器
在一般佩戴過程中,用戶可使用該項功能,為自己的步行健身活動提供量化的參考信息。
空間定位
在實施跌倒報警時,應為報警信息接受方提供報警地點的空間定位信息,保證有效救助及時到達。
無線通訊
能夠將報警和定位信息通過無線方式傳輸到相關人員處。
供電采用鋰電池
部分信息顯示使用液晶屏
系統架構設計
根據跌倒探測器的需求分析,具體的實現方案設計采用如圖2所示的架構。該架構基于高性能、低功耗MCU--MC9S08QG8,通過獲取加速度傳感器的采集信息,經分析和計算后實現跌倒探測及報警等多項功能。
硬件設計
硬件設計圍繞MCU展開,產品采用MC9S08QG8芯片,如何充分利用芯片資源,妥善完成產品的各項任務處理,是設計的關鍵。參考系統結構框架,根據功能模塊劃分,系統的硬件設計詳細描述如下:
加速度采集電路
加速度采集使用MMA7260QT,該芯片輸出為模擬信號,需進行A/D轉換后才能進行數據處理。MC9S08QG8芯片的PA腳為復用通道,可根據需要設置為I/O、鍵盤中斷或A/D采樣通道。本設計將利用MC9S08QG8芯片內部的A/D模塊實現模數轉換,具體實現中采用PA0、PA1和PA2作為三軸加速度的采集通道,與MMA7260QT的Xout(PIN15)、Yout(Pin14)和Zout(Pin13)相連,A/D采樣的控制時鐘通過軟件配置MC9S08QG8相應控制寄存器完成。
MCU外圍電路
本設計中,MCU外圍電路包括電源與時鐘、數據緩存和按鍵電路三部分構成,下面分別描述。
電源與時鐘
功能組件包括MCU、液晶、按鍵、采集、數據存儲和通信幾部分。根據所選用器件的數據手冊,各組件對供電要求如圖3所示。
從圖中可以看出,整個系統設計要求電源參數有三種,分別為3V、3.3V和3.7V。其中,主要數字電路部分--包括MCU及其外圍電路部分要求提供3.3V的工作電壓;而在無線通信模塊中,針對讀取入網SIM卡部分電路要求3V的供電電壓,CDMA射頻部分工作電壓要求不低于3.5V。
在實際設計中,輸出電壓為3.7V,由于能夠滿足CDMA射頻模塊的工作要求,故直接使用Li電池的輸出供電;聯通入網SIM卡信息讀取電路的工作電壓為3V,設計中采用MICREL公司的MIC5219-3.0芯片執行電壓轉換工作;其他數字電路部分的工作電壓為3.3V,設計中采用MICREL公司的MIC5219-3.3芯片實現這一轉換,參見圖3中虛線框中的內容。
MC9S08QG8自帶時鐘模塊(ICS),為了降低功耗和簡化設計,本系統通過軟件設置相應的控制寄存器實現系統時鐘的上電穩定工作,故在硬件電路設計中不需作過多的考慮。
存儲器
有效的數據緩存要求至少具有320點(合1920字節)的存儲深度。 在本設計中,采用HoLTEk公司的HT24LC16串行EEPROM作為數據緩存。該芯片采用I2C通訊接口,存儲深度2K字節,數據讀寫速度在微妙量級,能夠滿足數據實時寫入的要求。數據寫滿后,MCU自動將地址重置,從首地址開始覆蓋寫入新的數據。
由于MC9S08QG8內部配有I2C控制模塊,故只需將該模塊對應管腳與EEPROM連接即可--使用PB6(Pin5)和PB7(Pin6)與EEPROM連接。
按鍵電路
報警確認、報警取消、計步器啟動、計步器暫停、計數清零以及無線通信中接受方號碼的設置,都要求跌倒探測器具有用戶輸入的接口,設計中采用按鍵實現。按鍵的接法和使用較為簡單,直接利用MCU的輸入輸出管腳即可,本設計采用Pin1和Pin13。
液晶顯示
本設計采用5位7段碼液晶屏,計步器顯示計數和報警接受方電話號碼輸入都是通過該液晶屏提供給使用者確認。液晶屏的控制管腳為24個,由于MCU全部管腳座位液晶控制也無法滿足工作需求,故在本設計中采用Holtek公司的HT1621B液晶驅動芯片完成從MCU到液晶屏顯示數據的管理和驅動。另外,HT1621B芯片還具有蜂鳴器控制和驅動能力,在本設計中,集成蜂鳴器作為現場報警提示將有助于提高跌倒探測器報警的針對性和準確性,將通過在HT1621B的BZ管腳連接一蜂鳴器得以實現。
HT1621B為I2C接口,MCU可通過內部I2C控制模塊傳輸指令和數據給該芯片。由于本系統采用的EEPROM也是使用I2C接口,針對不同器件的數據傳輸和控制指令將通過地址選擇加以實現。
通信模塊
本設計采用AnyData公司的DTGS-800b型OEM模塊。該模塊符合CDMA:IS-95 A/B、IS-98A、IS-126、IS-637A、IS-707A以及IS-2000等標準協議,能夠提供最高153.6K的數據通訊速率,工作電壓3.6V~4.4V,外形尺寸為53*33*2.7mm,總重量為15g,提供外部通訊接口包括RS-232s、Digital/Analog Audios、LCD、Keypad、Ringer External Reset Control、R-UIM、MP3、MIDI、GPIOs和USB。另外該模塊可收發短信、集成GpsOne技術,無須添加其他組件即可得到地理定位信息,且廠家技術支持非常完善,其各項功能配置非常適合跌倒探測器的需求描述。
具體實現中,CDMA模塊要求配套入網SIM卡,模塊各項功能可由MCU通過RS232接口以AT命令的方式加以調用。本設計中通信模塊的設計如圖4所示。
MC9S08QG8的SCI外設接口經TTL-RS232轉換后,與DTGS-800b的RS232端口相連,用以向該模塊發AT命令。由于該模塊要求7信號的RS232接口,而MCU自帶SCI不提供該種通信方式,故在系統設計中采用I/O口進行軟件模擬其他的控制信號:CTS、RFR和DTR。DTGS-800b模塊通過SIM卡讀卡電路與SIM卡相連,內部自帶處理器根據需要讀取SIM卡信息,完成CDMA的入網和通信信息的交換。
端口分配
由于本設計采用MC9S08QG8單片機僅能提供最多14個I/O端口,根本無法滿足控制整個系統運行的信號數量要求,故在進行具體設計時,對各管腳的使用和分配進行了專門的部署,如圖5所示。
程序調試和燒入需要兩個端口,但完成調試和燒寫操作后,這兩個端口可以作為標準的I/O使用,故在設計中將其中一個I/O(Pin1)作為按鍵的輸入,實現了端口的復用。
CDMA組件與MCU的通訊要求
通過7信號RS232接口,而MC9S08QG8
的SCI模塊僅有TXD和RXD兩個信號,在設計中采用標準I/O通過軟件模擬的方式實現其它所需信號,包括DTR、CTS、RFR。
EEPROM和液晶驅動組件的存取采用I2C接口,本設計中將使用MC9S08QG8的I2C模塊進行硬件控制,通過地址選擇實現不同組件間的切換。
軟件設計
軟件設計是系統各項功能具體實現的關鍵。在跌倒探測器的軟件設計中,由實線系統功能引發的處理內容較多,為了更好地利用和分配MCU的資源,采用了事務處理和狀態機相結合的設計方法。
事務處理及狀態機
根據跌倒探測器的設計需求,系統要同時具備計步器、跌倒檢測、報警處理、系統設置和無線通信控制等功能。
事務處理的方法借鑒操作系統中的線程概念。首先將每項事務執行的操作明確,確定每種操作的優先級、相互關系和對資源的要求,然后在主循環中設置各種操作的啟動機制,從總體上看,這些事物在主循環中并行地得到實現。跌倒探測器事務處理的調用關系如圖6所示。
針對某些項事務處理的實現,在軟件設計中采用了狀態機的方法以確保整個任務能夠順暢而正確地得以實現。
系統設置
系統設置主要完成一些初始化操作和需要使用者進行確認的系統信息的設定操作。
系統初始化工作主要由MCU完成,包括各種配置寄存器的設置、液晶初始化指令和存儲緩沖區的設置,初始化工作將保證系統各功能組件能夠在上電后正常啟動。
MCU初始化--MCU_Init( ):
通過設置相應的控制寄存器實現MCU的啟動和對各功能外設(Peripheral)的管理:
時鐘:MCU工作采用內部時鐘,通過設置ICS控制寄存器實現;
端口:根據系統端口分配方案,結合相關外設--I2C、SCI的控制寄存器實現;
I2C控制器:傳輸速率、地址選擇設定;
SCI控制器:波特率設置。
液晶初始化--LCD_Init( ):
通過指令初始化液晶驅動控制芯片HT1621B,完成液晶顯示器的初始化。
存儲緩沖區初始化--RT_Data、 Word_Base[ ]:
MC9S08QG8內部集成了512字節的RAM滿足程序運行所需。而在跌倒探測器運行過程中,MCU持續采集加速度傳感器的數據,并進行處理,因此要為數據分析預先開辟好緩存區。同樣,在利用CDMA發布報警信息時,報警信息文字內容需要在進行軟件設計時預先設定好,并在需要使用時通過指針調用。
需要使用者進行確認的系統信息的設定,是指跌倒探測器報警信息的接收方可以根據實際情況由使用者進行設定,例如親屬的移動電話或急救中心的固定座機(要求能夠接收短信)。使用者可以通過按鍵配合液晶,輸入接收方的號碼即可,必要時使用者也可以對接收方號碼進行修改。
按鍵功能
按鍵功能在軟件設計中單獨提出是因為本系統受限于MCU端口數量,無法按照預先設計的人機交互需求安排足夠端口作為鍵盤掃描之用。本設計中最終確定使用2個按鍵,按鍵的功能設定及使用方法設計如下。
“Alam”鍵(啟動報警接收方號碼輸入、手動報警):
跌倒探測器一般工作模式下,長按(超過2秒)“Alam”鍵,啟動報警信息發布功能,適用于除跌倒情況外其他緊急情況;
跌倒探測器一般工作模式下,按“Alam”鍵,跌倒探測器進入設置報警接收方號碼狀態,配合“Alter”鍵實現號碼輸入;
跌倒探測器進入報警處理狀態(蜂鳴器beep)時,按“Alam”鍵,直接發布報警信息,然后關閉蜂鳴器;
“Alter”鍵(計步器啟動、暫停、清零、取消報警、設置報警接收方號碼):
跌倒探測器一般工作模式下,按“Alter”鍵在計步器啟動、暫停和清零三項功能之間切換;
跌倒探測器進入報警接收方號碼輸入狀態時,“Alter”鍵執行液晶顯示的數字加1的操作,數字從0-9循環;
跌倒探測器進入報警處理狀態(蜂鳴器beep)時,按“Alter”鍵取消報警,然后關閉蜂鳴器。
計步器
MCU始終在分析佩戴者身體姿態的信息,因此可以將佩戴者的行走動作分析作為一項附屬結果輸出,從而使跌倒探測器還具有了計步器的功能。
參考圖1,在理想狀態下的步行過程中,X軸和Z軸都應該能夠檢測到加速度的周期性變化--X軸由前進的動作引起,Z軸由身體的上下起伏引起,這種周期性的變化可以為步行動作的分析提供依據。由于在實際使用過程中,身體隨邁步動作產生相應的晃動同樣會引起加速度傳感器在三個正交坐標軸方向上的輸出,因此在設計檢測算法時應設定合適的加速度閾值。只有超過一定幅度的輸出才被看作是由于邁步動作所引起,避免由于正常的身體晃動引入的各種偽差。計步器實現的軟件流程如圖7。
跌倒檢測
危險的或者可能已產生較嚴重后果的跌倒發生后,人體通常處于水平狀態,因此對于這種類型的跌倒,要求跌倒探測器都能夠檢測到并實施報警處理機制。而對于其他較為復雜的跌倒過程,則需要通過報警機制的配合,實現對跌倒探測及危險報警的準確觸發。跌倒檢測的算法狀態機如圖8所示,
跌倒檢測算法描述如下:
1)主循環等待,監測Z軸加速度變化,如果超過閾值,進入下一步;
2)等待加速度恢復到正常范圍內,進入下一步;
3)再設置延時10秒,等待佩戴者狀態穩定;
4)數據分析,如果發現佩戴者身體水平,認為發生跌倒狀況,觸發報警處理。
報警處理
在本設計中,采用跌倒檢測算法和多種報警模式相結合的方式。跌倒探測器檢測到跌倒發生時,系統必須能夠準確無誤地將報警信息發布出去,才能保證跌倒者獲得救助。跌倒包含很多種類型,有些情況下,檢測到的“跌倒”是有意識的行為--或者根本不是跌倒--假陽性;另外,有時跌倒者仍然還保持一定的行動能力,為了盡快得到救助,自身可以采取一定的行動;還有一種情況,跌倒造成比較嚴重的后果,跌倒者已無法行動。
針對上面提到的幾種情況,報警處理的軟件設計將加以區分對待:
檢測到跌倒后,系統啟動30S的倒計時器,并打開蜂鳴器,每3S響一次,如果沒有接收到任何輸入,30S結束后,系統自動發布報警信息;
進入30S倒計時后,蜂鳴器“beep”,系統可以響應用戶輸入,跌倒探測器的兩個按鍵分別設置為“手動報警”和“取消(報警)”的功能,如果用戶按“手動報警”鍵,系統發布報警信息;
如果用戶按“取消”鍵,系統關閉30S倒計時和蜂鳴器,不作任何處理,直接返回計步器和跌倒檢測狀態。
通信控制
報警信息通過CDMA短信的方式發送給接收方,跌倒探測器采用DTGS-800b型CDMA模塊,通信控制就是使其能夠正常工作的一段例程。DTGS-800b型CDMA模塊提供RS232接口,MCU可以根據需要通過AT命令實施對通信過程的控制。具體通信例程根據設計需求應包括如下內容:
啟動CDMA模塊--Comm_Start( );
啟動GpsOne?服務--Gps_Start( );
獲得GPS空間定位信息--Gps_Position( );
發送短信息報警--Send_SMS( )。
由于通信例程涉及的狀態不多,基本是按照上面的順序進行,因而程序結構比較簡單,這里就不再贅述。
結論
按照上述方案設計完成的跌倒探測器樣機線路板如圖9所示,左圖為帶有CDMA模塊線路,右圖為不帶CDMA模塊線路,可見其下方是讀SIM卡電路。上電后,該線路板各功能模塊工作正常,能夠完成加速度采集、EEPROM數據存儲和跌倒報警短信發送(包括自動、手動和取消模式),按鍵液晶均能夠正常
評論
查看更多