劉光宇
摘要:人體步態(tài)研究在醫(yī)療康復(fù)治療、生物識(shí)別和仿生機(jī)器人等多個(gè)領(lǐng)域中具有重要的意義,結(jié)合中國(guó)人口老齡化的步伐迅速推進(jìn),醫(yī)療資源緊張,低成本便攜的醫(yī)療設(shè)施的研制可以作為緩解我國(guó)醫(yī)療現(xiàn)狀的一個(gè)方向。本文主要探討的就是步態(tài)監(jiān)測(cè)系統(tǒng)的嵌入式軟件設(shè)計(jì)與實(shí)現(xiàn)相關(guān)內(nèi)容。
關(guān)鍵詞:步態(tài)監(jiān)測(cè);嵌入式軟件;軟件設(shè)計(jì)
引言:
步態(tài)分析是指通過(guò)對(duì)人行走時(shí)的姿態(tài)進(jìn)行觀察和力學(xué)等方面的分析,得到一系列距離、角度、時(shí)間和受力等方面的參數(shù)和信號(hào)曲線等。相比于基于視覺(jué)的步態(tài)監(jiān)測(cè)設(shè)備復(fù)雜昂貴且只能提供直觀的運(yùn)動(dòng)圖像而言,基于慣性傳感器的步態(tài)分析節(jié)點(diǎn)靈巧方便攜帶,耗資較小,可在絕大部分環(huán)境下多次采樣,不受光線色系重合等影響,最重要的是慣性器件精度較高可感受微小變化,并提供量化的參數(shù)為進(jìn)一步的數(shù)據(jù)和圖像分析提供更準(zhǔn)確的依據(jù),近年來(lái)已受到了廣泛的應(yīng)用。
1.系統(tǒng)硬件平臺(tái)介紹
1.1硬件平臺(tái)簡(jiǎn)介
步態(tài)監(jiān)測(cè)系統(tǒng)的嵌入式硬件平臺(tái)由基于TI的超低功耗單片機(jī)MSP430F169的兩個(gè)下位機(jī)數(shù)據(jù)采集緩存節(jié)點(diǎn),一個(gè)上位機(jī)數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)和一塊給三個(gè)節(jié)點(diǎn)提供電的8.4V鏗聚合物電池構(gòu)成。三個(gè)節(jié)點(diǎn)共用一個(gè)電源,下位機(jī)節(jié)點(diǎn)與上位機(jī)節(jié)點(diǎn)之間通過(guò)雙絞線連接,硬件構(gòu)成如圖1所示,圖中紅色標(biāo)注的部分1為上位機(jī)節(jié)點(diǎn),2為電源,3是兩個(gè)下位機(jī)節(jié)點(diǎn)。
硬件系統(tǒng)中上位機(jī)和下位機(jī)節(jié)點(diǎn)均以MSP430F169為微處理器控制實(shí)現(xiàn)各種功能,該單片機(jī)以低功耗著稱,具有精簡(jiǎn)指令集、強(qiáng)大的處理能力、運(yùn)算速度快、豐富的片內(nèi)資源、高性能模擬技術(shù)與豐富的片上外圍模塊以及系統(tǒng)穩(wěn)定等特點(diǎn)。MSP430F169中16位CPU通過(guò)總線連接到存儲(chǔ)器和外圍模塊,具有JTAG接口可直接進(jìn)行嵌入式仿真。片內(nèi)有復(fù)位模塊、時(shí)鐘模塊、定時(shí)器模塊、低功耗結(jié)構(gòu)、硬件乘法器、片內(nèi)Flash存儲(chǔ)器模塊、比較器模塊、USART模塊、DMA控制器,P1}P6.s和COM端口實(shí)現(xiàn)I/O和片內(nèi)外設(shè)功能,還有多個(gè)通用寄存器和特殊功能寄存器。本系統(tǒng)的設(shè)計(jì)中使用了單片機(jī)的復(fù)位、時(shí)鐘模塊為節(jié)點(diǎn)提供時(shí)鐘,P1~P6端口分別使用通用I/O或片內(nèi)外圍功能實(shí)現(xiàn)傳感器數(shù)據(jù)的讀取、指示LED電平輸出、按鍵動(dòng)作電平輸入等功能,RS-485總線使用USART模塊UART模式實(shí)現(xiàn)數(shù)據(jù)從下位機(jī)向上位機(jī)的傳輸,上位機(jī)中USART模塊使用SPI模式對(duì)SD卡進(jìn)行讀寫操作,下位機(jī)中USART模塊使用SPI模式對(duì)片外Flash進(jìn)行讀寫操作。
1.2下位機(jī)硬件介紹
兩個(gè)下位機(jī)節(jié)點(diǎn)硬件結(jié)構(gòu)完全相同,MSP430F169芯片作為微處理器控制三個(gè)功能模塊,分別是搭載ADIS16405慣性測(cè)量單元的傳感器模塊采集步態(tài)活動(dòng)中的加速度和角速度數(shù)據(jù)并以數(shù)字量的形式輸出至與單片機(jī)相連的端口,片外Flash模塊可連續(xù)將數(shù)據(jù)采集過(guò)程中一定量的數(shù)據(jù)暫存在AT45DB 161芯片中,RS-485總線模塊以MAX3485芯片為接口將Flash中的數(shù)據(jù)傳輸?shù)缴衔粰C(jī)中。
1.3上位機(jī)硬件介紹
上位機(jī)節(jié)點(diǎn)硬件結(jié)構(gòu)與下位機(jī)有所不同,由MSP430F169芯片作為微處理器控制兩個(gè)功能模塊,MAX3485采集芯片作為接口的RS-485總線模塊負(fù)責(zé)向下位機(jī)發(fā)送操作指令和接收下位機(jī)慣性測(cè)量單元采集的原始數(shù)據(jù),并將所有數(shù)據(jù)經(jīng)過(guò)單片機(jī)控制存儲(chǔ)在SD卡中。
2.系統(tǒng)軟件設(shè)計(jì)
2.1軟件總流程
步態(tài)監(jiān)測(cè)樣機(jī)的使用流程如下:
使用者將兩個(gè)下位機(jī)節(jié)點(diǎn)固定在雙腳外側(cè),上位機(jī)固定在腰部,立正雙腿站直,雙腳并齊腳尖向前;
打開(kāi)上位機(jī)總開(kāi)關(guān)為三個(gè)節(jié)點(diǎn)同時(shí)供電,兩個(gè)下位機(jī)節(jié)點(diǎn)進(jìn)行慣性測(cè)量單元的初始校正和Flash芯片的格式化過(guò)程,此階段使用者需保持靜止不動(dòng)大概30s左右。
初始校正結(jié)束慣性傳感器開(kāi)始采樣,下位機(jī)LED閃爍提示開(kāi)始采集數(shù)據(jù),使用者進(jìn)行步態(tài)活動(dòng),采集中不斷將一定量的數(shù)據(jù)緩存至Flash芯片中。使用者步態(tài)活動(dòng)結(jié)束,慣性傳感器停止采集數(shù)據(jù),指示數(shù)據(jù)采集的LED停止閃爍。打開(kāi)兩個(gè)下位機(jī)RS-485總線開(kāi)關(guān),按下上位機(jī)按鍵1,固定在左腳的下位機(jī)LED閃爍,開(kāi)始將Flash中數(shù)據(jù)通過(guò)總線傳輸?shù)缴衔粰C(jī)SD卡中,數(shù)據(jù)傳輸完畢LED停止閃爍,關(guān)閉該下位機(jī)節(jié)點(diǎn)RS-485總線開(kāi)關(guān)。固定在右腳的下位機(jī)進(jìn)行同樣的操作過(guò)程,數(shù)據(jù)傳輸結(jié)束時(shí)將雙腳下位機(jī)節(jié)點(diǎn)中采集的數(shù)據(jù)全部存儲(chǔ)在SD卡中。將SD卡中數(shù)據(jù)導(dǎo)入PC端步態(tài)軟件進(jìn)行存儲(chǔ)、處理和分析,查看監(jiān)測(cè)結(jié)果,整個(gè)監(jiān)測(cè)過(guò)程結(jié)束。
按照上述流程,整個(gè)系統(tǒng)的軟件設(shè)計(jì)流程圖如圖2所示。
2.2軟件功能模塊介紹
本文所設(shè)計(jì)的步態(tài)監(jiān)測(cè)系統(tǒng)要實(shí)現(xiàn)采集測(cè)試者步行活動(dòng)中的數(shù)據(jù),并將這些原始數(shù)據(jù)經(jīng)過(guò)Flash緩存后通過(guò)RS485總線上傳到SD卡中。按照所實(shí)現(xiàn)的功能,整個(gè)系統(tǒng)的嵌入式軟件分為以下四個(gè)模塊。
1、采集模塊:數(shù)據(jù)采集在硬件平臺(tái)的下位機(jī)完成,下位機(jī)上電后開(kāi)始工作,首先對(duì)慣性測(cè)量單元ADIS16405進(jìn)行端口初始化和SPI初始化,通過(guò)操作寄存器進(jìn)行初始的校準(zhǔn),使靜止時(shí)慣性傳感器輸出偏置消除后,單片機(jī)的SPI總線開(kāi)始采集步態(tài)活動(dòng)中的加速度和角速度數(shù)據(jù),慣性測(cè)量單元輸出的數(shù)據(jù)進(jìn)入單片機(jī)RAM中。
2、緩存模塊:數(shù)據(jù)緩存也在硬件平臺(tái)的下位機(jī)完成,由于MSP430F169的內(nèi)部RAM容量為2KB只能存儲(chǔ)140個(gè)采樣點(diǎn)的數(shù)據(jù),所以在采集加速度和角速度信息過(guò)程中收集一定容量數(shù)據(jù)后隨即緩存在片外Flash芯片AT45DB 161中。上電后對(duì)Flash模塊進(jìn)行初始化,采集36個(gè)數(shù)據(jù)包后向Flash中寫一頁(yè),如此不間斷循環(huán)至步態(tài)活動(dòng)結(jié)束。
3、傳輸模塊:數(shù)據(jù)傳輸由硬件平臺(tái)的下位機(jī)和上位機(jī)配合完成,步態(tài)活動(dòng)結(jié)束后對(duì)RS-485總線進(jìn)行初始化,單片機(jī)的USART模塊以異步通信UART模式工作。上位機(jī)按鍵1按下后,左腳下位機(jī)Flash中的數(shù)據(jù)開(kāi)始進(jìn)入發(fā)送緩沖器,上位機(jī)以UART中斷的方式做數(shù)據(jù)的接收,該節(jié)點(diǎn)數(shù)據(jù)接收完畢后對(duì)右腳下位機(jī)做類似操作。
4、存儲(chǔ)模塊:數(shù)據(jù)存儲(chǔ)在硬件平臺(tái)的上位機(jī)完成,步態(tài)活動(dòng)結(jié)束后對(duì)SD卡進(jìn)行初始化操作,RS-485總線將數(shù)據(jù)從下位機(jī)Flash中傳輸?shù)缴衔粰C(jī)后,單片機(jī)USART模塊工作在同步通信sPI模式將數(shù)據(jù)以一頁(yè)為單位寫入SD卡指定位置,直至兩個(gè)下位機(jī)節(jié)點(diǎn)中所有原始數(shù)據(jù)全部存儲(chǔ)在卡中一段連續(xù)空間。
3.總結(jié)語(yǔ)
本文所設(shè)計(jì)并實(shí)現(xiàn)的步態(tài)監(jiān)測(cè)系統(tǒng)的概況,介紹了軟件設(shè)計(jì)的四個(gè)功能模塊,數(shù)據(jù)采集模塊、數(shù)據(jù)緩存模塊、數(shù)據(jù)傳輸模塊和數(shù)據(jù)存儲(chǔ)模塊實(shí)現(xiàn)采集測(cè)試者步行活動(dòng)中的數(shù)據(jù),并將這些原始數(shù)據(jù)經(jīng)Flash緩存后通過(guò)RS-485總線上傳到SD卡中等一系列功能。隨著集成電路技術(shù)的不斷進(jìn)步和傳感器網(wǎng)絡(luò)的迅速發(fā)展,使用慣性測(cè)量單元設(shè)計(jì)可穿戴人體步態(tài)監(jiān)測(cè)系統(tǒng)成為研究的熱點(diǎn)。