基于SPCE061A單片機(jī)的髖作用力測試儀設(shè)計
關(guān)鍵詞:SPCE06lA;力傳感器;光電編碼器;測試系統(tǒng)
1 引言
隨著體育訓(xùn)練科學(xué)化水平的不斷提高,人體專項力量訓(xùn)練的必要性日益受到重視。通過對大量實際運動測試數(shù)據(jù)的總體分析發(fā)現(xiàn),所有從事跑、跳運動項目和以跑、跳為基礎(chǔ)運動項目的運動員,其向后蹬伸力量均明顯小于向下或向前蹬伸力量。而向后蹬伸力量恰恰是跑、跳運動產(chǎn)生動力所必需的專項力量。因此,設(shè)計開發(fā)一套實用準(zhǔn)確的髖作用力測試儀,對于教練精確量化運動員的訓(xùn)練效果,以及合理制定有針對性的訓(xùn)練方案,進(jìn)而最終提高運動員比賽成績,有著極其重要的參考價值。
本文所介紹的髖作用力測試儀以凌陽公司推出的16位單片機(jī)SPCE061A為核心部件,綜合借鑒現(xiàn)有技術(shù),通過對測試儀軟硬件設(shè)計的合理規(guī)劃,充分發(fā)揮單片機(jī)自身集成眾多系統(tǒng)級功能單元的優(yōu)勢,有效降低了硬件成本,具有很高的可靠性和穩(wěn)定性。
該髖作用力測試儀主要實現(xiàn)以下功能:
(1)測量運動員腿部下蹬作用力實時力量值;
(2)測量運動員腿部與下蹬作用力同步的實時速度值;
(3)通過上位機(jī)實時顯示上述作用力、速度以及功率的具體數(shù)值和曲線;
(4)具備數(shù)據(jù)復(fù)現(xiàn)功能??梢员4娌⒈葘y試數(shù)據(jù)。
2 系統(tǒng)總體結(jié)構(gòu)
髖作用力測試儀結(jié)構(gòu)框圖如圖l所示。系統(tǒng)由數(shù)據(jù)采集處理電路、控制中心和上位機(jī)實時數(shù)據(jù)、曲線顯示3部分組成。
作用力采集電路將髖作用力以模擬量的形式傳遞至單片機(jī)I/O口。通過單片機(jī)自身集成的10位高速A/D轉(zhuǎn)換器,將力量值轉(zhuǎn)化為控制系統(tǒng)可用的數(shù)字量。速度采集電路由光電編碼器和鑒相電路組成。光電編碼器輸出的數(shù)字脈沖量經(jīng)單片機(jī)運算處理后,得出作用力的實時線速率,鑒相電路則向單片機(jī)提供了該作用力的方向。微控制器采用凌陽16位單片機(jī)SPCE061A,其最高工作頻率為49.15MHz,32位可編程多功能I/O端口方便連接各種外設(shè),片內(nèi)集成7通道10位電壓模數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模數(shù)轉(zhuǎn)換器,并具有豐富的中斷資源,特別適用于實時性要求嚴(yán)格的控制系統(tǒng)。串口電平轉(zhuǎn)換電路完成RS232電平標(biāo)準(zhǔn)和單片機(jī)電平標(biāo)準(zhǔn)的轉(zhuǎn)換,以實現(xiàn)測試儀和上位機(jī)的實時全雙工數(shù)據(jù)通信。用戶可通過上位機(jī)控制程序?qū)崟r觀測和保存訓(xùn)練數(shù)據(jù),并能夠設(shè)定測試儀的相關(guān)參數(shù)。
3 數(shù)據(jù)的采集和處理
髖作用力測試儀需要測量和顯示的數(shù)據(jù)主要包括髖作用力、與作用力相應(yīng)的瞬時速度值和功率值。其中,髖作用力數(shù)據(jù)的采集由力傳感器和配套變送器完成,瞬時速度的采集由光電編碼器和鑒相電路完成。功率則可由作用力和速度的乘積求得。
3.1 髖作用力測量
髖作用力由力傳感器采集,其模擬電壓信號經(jīng)變送器放大和線性化處理后,送至SPCE061A內(nèi)部集成的ADC完成數(shù)模轉(zhuǎn)換。
3.1.1 力傳感器工作原理
本測試儀采用電阻應(yīng)變式力傳感器完成髖作用力采集。電阻應(yīng)變式力傳感器由彈性敏感元件和電阻應(yīng)變片組成。當(dāng)彈性敏感元件受到被測力作用時,將產(chǎn)生位移和應(yīng)變,同時使粘貼在彈性敏感元件上的電阻應(yīng)變片的阻值發(fā)生變化。因此,通過測量電阻應(yīng)變片的阻值變化,就可以確定被測作用力的大小。力采集電路內(nèi)部等效原理圖如圖2所示。
其中,Rl是粘貼在彈性敏感元件上的電阻應(yīng)變片。R1~R4組成單臂式直流電橋,將橋電路中電阻的變化轉(zhuǎn)換為電橋輸出電壓的變化。由圖可知,電橋的輸出電壓為
即電橋輸出電壓Uo與電阻應(yīng)變片阻值變化△Rl成線性關(guān)系。結(jié)合前述可知,電橋輸出電壓Uo的變化反映了作用力大小的變化。從而通過測量電橋輸出電壓Uo,就能實現(xiàn)對作用力大小的檢測。
力傳感器輸出的電壓信號Uo通過變送器的放大和線性化處理,由雙端輸入信號Uo轉(zhuǎn)變?yōu)閱味溯敵鲂盘朥sample。模擬電壓Usample與被測作用力線性相關(guān),送至后續(xù)模數(shù)轉(zhuǎn)換電路(ADC)完成模數(shù)變換。變送器中的精密變送放大電路一般采用三運放差動放大電路,具有較高的輸入阻抗和共模抑制比,并通過內(nèi)部的阻容耦合電路有效減小了溫度漂移,保證了測量的精確度。
3.1.2 髖作用力測量方法
力采集電路輸出Usample是電壓模擬量,需要經(jīng)過ADC,變換為系統(tǒng)控制核心—單片機(jī)可以使用的數(shù)字量。SPCE061A內(nèi)部集成有8通道10位高速A/D轉(zhuǎn)換器,本系統(tǒng)選用單通道I/O A0作為A/D轉(zhuǎn)換的模擬電壓輸入。A/D轉(zhuǎn)換的參考電壓Vref可以采用單片機(jī)系統(tǒng)自帶的Vdd,也可以通過軟件設(shè)置使用外部參考電壓??紤]到該測試儀的測力量程為0kg~300kg,力采集電路對應(yīng)的模擬電壓輸出O V~3V,模擬電壓信號符合SPCE061A自帶A/D轉(zhuǎn)換器的輸入要求。因此,A/D轉(zhuǎn)換參考電壓采用系統(tǒng)默認(rèn)的Vdd。將Usample連接至SPCE061A的I/O A0端,即可進(jìn)行A/D轉(zhuǎn)換。本系統(tǒng)設(shè)計的A/D轉(zhuǎn)換頻率設(shè)置為l kHz,髖作用力F可表示為:
式中:Mmax是測試儀所測作用力的最大量程,g是重力加速度值,Umax是力采集電路輸出的模擬電壓最大值,AD_Data是力采集電路輸出Usample經(jīng)A/D轉(zhuǎn)換后得到的10位數(shù)字量,AD_Max是10位A/D轉(zhuǎn)換器參考電壓Uref所對應(yīng)的數(shù)字量,此處為0x03FF。實際編程中,為了降低采樣過程瞬態(tài)誤差的干擾,運用了算術(shù)均值濾波的方法,即最終顯示的作用力F通過對10次采樣的作用力求算術(shù)平均值取得。
3.2 速度測量
本測試儀中,與髖作用力同步的速度值和作用力方向由光電編碼器、鑒相電路和相應(yīng)軟件計數(shù)器求得。
3.2.1 光電編碼器測速原理
光電編碼器是一種數(shù)字式角度傳感器,它能將角位移轉(zhuǎn)化成相應(yīng)數(shù)量的電壓脈沖信號,主要用于機(jī)械轉(zhuǎn)角位置和旋轉(zhuǎn)速度的檢測和控制。本測試儀選用的ZKX-6-50BM7型增量式光電縮碼器是一款高精度角位移傳感器,轉(zhuǎn)動軸每旋轉(zhuǎn)一周分兩路輸出500個電壓脈沖信號Out_A和Out_B。其中,Out_A和Out_B兩路信號相位差為90°。
將光電編碼器輸出接至單片機(jī)的外部中斷IRQ3,則轉(zhuǎn)動引起的每一個電壓脈沖都會觸發(fā)單片機(jī)外部中斷。通過編制單片機(jī)外部中斷子函數(shù),就可以實現(xiàn)對光電編碼器輸出脈沖個數(shù)的準(zhǔn)確計算,經(jīng)換算后即得轉(zhuǎn)動軸轉(zhuǎn)過的精確角位移。
因此,計算固定時間段內(nèi)光電編碼器的角位移,就可求得轉(zhuǎn)動軸的角速率,結(jié)合光電編碼器同軸轉(zhuǎn)盤的半徑,就可算得與髖作用力同步的線速度值。實際編程中,選用單片機(jī)內(nèi)部512 Hz的時基中斷產(chǎn)生固定時間段,即計算每個時間間隔t=l/512 s內(nèi)光電編碼器的輸出脈沖個數(shù),從而求得速度。設(shè)v為t時間內(nèi)的平均速度,由于固定時間段足夠小,所以將瞬時速度近似為平均速度v,則
式中:s為t時間內(nèi)被測對象產(chǎn)生的位移;n為固定時間間隔內(nèi)(1/512 s)光電編碼器輸出的脈沖數(shù);ι為光電編碼器同軸轉(zhuǎn)盤的周長,N為光電編碼器旋轉(zhuǎn)一周輸出的脈沖數(shù),此處N=500。
3.2.2 速度鑒相的方法
髖作用力檢測過程中,光電編碼器的轉(zhuǎn)向說明訓(xùn)練者髖部是主動發(fā)力或是被動受力。因此,光電編碼器轉(zhuǎn)向的判別是本測試儀必須具備的基本功能。通過對光電編碼器所輸出的相位差90°的兩路電壓脈沖信號0ut_A和Out_B進(jìn)行鑒相,就能夠判別轉(zhuǎn)盤正轉(zhuǎn)或反轉(zhuǎn)。具體鑒相電路原理如圖3所示。
光電編碼器輸出的Out_A和Out_B分別接至D觸發(fā)器時鐘端Clk和控制端D。根據(jù)D觸發(fā)器的功能定義,在輸入時鐘信號Out_A的每個脈沖上跳沿,觸發(fā)器的輸出W2被控制端D的輸入信號Out_B置位。圖4示意了光電編碼器正轉(zhuǎn)時,Out_A、Out_B的信號波形和鑒相電路的輸出。
正轉(zhuǎn)時,Out_A信號的相位超前Out_B信號90°,w1輸出始終為高電平。反轉(zhuǎn)時,Out_A信號的相位延后Out_B信號90°,W1輸出始終為低電平。因此,通過讀取W1的電壓高低,就可以判別光電編碼器的轉(zhuǎn)向。
3.3 功率的測量
測得作用力和速度之后,功率可由二者乘積算得。即功率:
P=Fv (5)
但考慮到單片機(jī)在計算實數(shù)乘法的效率和精度上的劣勢,單片機(jī)只負(fù)責(zé)將采集到的作用力和速度通過RS232上傳到上位機(jī),實際運算則由上位機(jī)完成。此方法能滿足測試儀的實時性和精度要求。
4 系統(tǒng)軟件設(shè)計
SPCE061A內(nèi)置在線仿真電路ICE (In-CircuitEmulator)接口和在線串行編程技術(shù),使程序開發(fā)、調(diào)試和下載等均在可視化開發(fā)環(huán)境中通過在線調(diào)試器PROBE實現(xiàn),省去了傳統(tǒng)單片機(jī)開發(fā)中必需的硬件在線實時仿真器(ICE)和程序燒寫器。具體軟件設(shè)計中,充分利用SPCE061A豐富的時基中斷,在IRQ4、IRQ5中斷子程序中完成鍵盤掃描和A/D轉(zhuǎn)換等工作。與上位機(jī)的串行通信則采用SPCE061A自帶的UART硬件傳輸中斷,以滿足數(shù)據(jù)雙向傳輸?shù)漠惒叫院蛯崟r性。
系統(tǒng)程序由主程序、力采集子程序、速度計算子程序、串行通信子程序、外擴(kuò)存儲器子程序和中斷子程序等部分組成。各部分嚴(yán)格按照模塊化原則編寫,易于日后系統(tǒng)升級和維護(hù)。其中,主程序主要完成測試儀各部件的初始化和自檢,以及實際測量中各個功能模塊的協(xié)調(diào)。
力采集子程序和速度計算子程序流程圖如圖5所示。
測試儀的上位機(jī)監(jiān)控程序基于Visual C++6.0平臺開發(fā)。使用微軟公司提供的MSComm控件,極大程度上避免了直接調(diào)用Win32API造成的編程繁瑣等弊端,以較少代碼量實現(xiàn)本系統(tǒng)要求的通信功能。上位機(jī)程序具備作用力計時、平均功率計算、正反轉(zhuǎn)選擇顯示、測量數(shù)據(jù)保存和復(fù)現(xiàn)等功能。程序運行界面如圖6所示。
5 結(jié)束語
該測試儀以凌陽16位單片機(jī)SPCE061A為控制核心,充分發(fā)揮其片內(nèi)資源豐富和運算速度快的優(yōu)點,硬件電路結(jié)構(gòu)簡潔,穩(wěn)定性高。上位機(jī)監(jiān)控程序界面友好,操控方便。測試數(shù)據(jù)的保存和復(fù)現(xiàn)功能便于運動訓(xùn)練方案的離線分析和制定。整個測試儀具備較強的可擴(kuò)展性。該測試儀已經(jīng)開始在中國海洋大學(xué)運動體能實驗室試用,并取得了良好的測試效果。