基于MC9S08GB32的便攜式無(wú)水阻槳頻船速測(cè)量?jī)x
摘要:介紹一種以MC9S08GB32為核心控制器的便攜式無(wú)小阻槳頻船速測(cè)量?jī)x的設(shè)計(jì)方案,給出方案設(shè)計(jì)原理、系統(tǒng)功能特性、硬件及軟件結(jié)構(gòu)。
關(guān)鍵詞:MC9S08GB32 加速度傳感器 槳頻船速測(cè)量
引言
皮艇、劃艇、賽艇等都是比較重要的水上運(yùn)動(dòng)項(xiàng)目。運(yùn)動(dòng)員劃槳的槳頻、艇前進(jìn)的速度等是項(xiàng)目訓(xùn)練中教練員和運(yùn)動(dòng)員最為關(guān)注的指標(biāo)。如果能夠方便、準(zhǔn)確地測(cè)出這些運(yùn)動(dòng)技術(shù)參數(shù),并加以科學(xué)的運(yùn)算、處理、分析,必會(huì)對(duì)訓(xùn)練產(chǎn)生很好的指導(dǎo)作用。傳統(tǒng)方法不可避免地增加了水對(duì)艇的阻力,對(duì)運(yùn)動(dòng)員訓(xùn)練帶來(lái)額外負(fù)擔(dān)。由于傳感器要在水中工作,因此訓(xùn)練前后的安裝、拆卸非常不便,由于傳感器和控制、電視教學(xué)部分分離,因此很難做到較小便攜。此外,由于傳感器輸出通常需要放大、濾波等處理,進(jìn)一步進(jìn)大了系統(tǒng)功耗,不便利用在電池供電場(chǎng)合。本文提出的測(cè)量系統(tǒng)采用Motorola的低功耗芯片MC9S08GB32作為信心控制器,通過(guò)對(duì)MMA6262Q型加速度傳感器的信號(hào)處理實(shí)現(xiàn)船速、槳頻的測(cè)量,克服了傳統(tǒng)儀器的諸多弊端。
圖1
1 設(shè)計(jì)原理及功能特性
本系統(tǒng)利用劃艇時(shí)每劃一槳,船體動(dòng)量會(huì)有一增量的原理開(kāi)發(fā)而成。工作時(shí),微控制器不斷采用加速度傳感器二個(gè)方向加速度對(duì)應(yīng)的輸出電壓,然后通過(guò)內(nèi)部A/D轉(zhuǎn)換器得到可運(yùn)算的數(shù)字量,再經(jīng)過(guò)一定算法計(jì)算出船速、槳數(shù)和槳頻,最終存儲(chǔ)并顯示這些數(shù)據(jù)。該測(cè)量?jī)x具有以下功能特性:
采用電池供電,系統(tǒng)工作于3.3V電壓,再結(jié)合MC9S08GB32的低功耗工作模式,使系統(tǒng)具有很好的低功耗特性;
輕小便攜,外形尺寸為75mm40mm35mm(長(zhǎng)寬高),既不會(huì)給運(yùn)動(dòng)員的劃槳帶來(lái)額外阻力,也便于攜帶使用;
具有自啟動(dòng)功能,設(shè)置好訓(xùn)練時(shí)段后,劃動(dòng)第一槳時(shí),儀器便自動(dòng)開(kāi)始進(jìn)行測(cè)量和記錄,面板的LCD屏將實(shí)時(shí)顯示訓(xùn)練時(shí)間、槳數(shù)、槳頻、速度等信息;
運(yùn)動(dòng)計(jì)時(shí)范圍為59分59.9秒(00:00.0~59.9),計(jì)時(shí)精度為0.1秒,計(jì)時(shí)到59分59.9秒時(shí)可自動(dòng)返回到00:00.0;
具有自動(dòng)關(guān)閉功能,若6分鐘之內(nèi)無(wú)劃槳操作,MC9S08GB32將自動(dòng)轉(zhuǎn)入低功耗模式,同時(shí)清LCD屏以節(jié)省電源功耗,直至有按鍵按下時(shí)才被喚醒,并繼續(xù)下一時(shí)段的測(cè)量、記錄工作;
皮艇槳頻測(cè)量范圍為60~180槳/分;劃艇槳頻測(cè)量范圍為36~100槳/分;賽艇槳頻測(cè)量范圍為12~60槳/分。
槳數(shù)測(cè)量范圍為0~9999槳,若計(jì)到9999槳將自動(dòng)返回0并繼續(xù)計(jì)數(shù);
在每個(gè)訓(xùn)練段的計(jì)時(shí)范圍內(nèi),可以記憶整個(gè)運(yùn)動(dòng)過(guò)程中從劃第一槳至劃完最后一槳的總時(shí)間,以及這段時(shí)間內(nèi)的平均槳頻和總槳數(shù)??衫冒存I操作依次在LCD屏上顯示整個(gè)運(yùn)動(dòng)過(guò)程的總時(shí)間、總平均槳頻、總槳數(shù)。不清屏?xí)r,可按需要多次重復(fù)顯示;
具有數(shù)據(jù)存儲(chǔ)功能,對(duì)于運(yùn)動(dòng)時(shí)段數(shù)、運(yùn)動(dòng)總時(shí)間、總槳數(shù)和槳頻的存儲(chǔ)而言,可以存儲(chǔ)4小時(shí)的運(yùn)動(dòng)數(shù)據(jù);對(duì)于槳速存儲(chǔ)而言,可以存儲(chǔ)15分鐘的運(yùn)動(dòng)數(shù)據(jù);二種存儲(chǔ)式可以通過(guò)按鍵單選擇;
具有數(shù)據(jù)通信功能,在訓(xùn)練結(jié)束后,可以選擇將存儲(chǔ)的數(shù)據(jù)通過(guò)RS-232傳送到PC,進(jìn)行相應(yīng)的運(yùn)算、處理、分析;
PC端配有分析處理軟件,能夠接收儀器傳送的數(shù)據(jù),以直觀、明了的圖形方式繪制各個(gè)訓(xùn)練時(shí)段的加速度α(t)、速度v(t)、槳頻f(t)等多種參數(shù)曲線,也能將訓(xùn)練數(shù)據(jù)保存以供日后分析使用;
具有電池報(bào)警功能,當(dāng)電池電量不足時(shí)不可報(bào)警顯示,提示用戶更換電池。
2 系統(tǒng)硬件設(shè)計(jì)
整個(gè)系統(tǒng)以MC9S08GB32型微控制器和MMA6260Q型加速度傳感器為核心,系統(tǒng)電路包括微控制器模塊、數(shù)據(jù)采集模塊、電源管理模塊、LCD顯示模塊、按鍵功能選擇模塊和PC串口通信模塊。其硬件框圖如圖1所示。
2.1 微控制器模塊
本系統(tǒng)選用的MC9S08GB32型MCU,是Motorola專為智能儀表應(yīng)用設(shè)計(jì)的一款高速超低功耗MCU,速度可達(dá)20MHz。該MCU最大的特色體現(xiàn)在電源管理上,采用1.8V~3.6V供電,適合于電池供電的應(yīng)用場(chǎng)合,低功耗模式下僅耗電0.7μA,內(nèi)部電源管理支持電池電壓監(jiān)測(cè)、低電壓報(bào)警等功能。內(nèi)部8路16位定時(shí)器可滿足多種定時(shí)需求;32kB片內(nèi)Flash支持在系統(tǒng)、在應(yīng)用擦寫(xiě)而無(wú)需再擴(kuò)展外部存儲(chǔ)器;8通道10位ADC;帶有SCI、SPI、I2C接口;56個(gè)通用I/O接口,具有內(nèi)部可編程上拉電阻器、大電流吸收能力和邊沿斜率控制能力。儀表啟動(dòng)后,MCU可對(duì)MMA6260Q型加速度傳感器的信號(hào)進(jìn)行處理,進(jìn)而實(shí)現(xiàn)船速、槳數(shù)和槳頻的測(cè)量、計(jì)算、存儲(chǔ)和顯示。
2.2 數(shù)據(jù)采集模塊
MMA6260Q具有高靈敏度、低噪聲、低功耗等特點(diǎn)。其動(dòng)態(tài)量程為1.5g,靈敏度為800mv/g,輸出電壓與加速度成正比。該傳感器可與MC9S08GB32直接接口,其輸出直接送至MC9S08GB32的片內(nèi)10位ADC。MC9S08GB32片內(nèi)ADC的工作電壓為3.3V,工作頻率達(dá)2MHz,10位ADC對(duì)于加速度的分辨率可達(dá)4mg。具體連接方法參見(jiàn)圖2。XOUT與ADC引腳之間的RC起濾波作用,用于減小時(shí)鐘噪聲。加速度傳感器與微控制器之間不需大電流。電源與地之間的0.1μF電容器是去耦電容器,設(shè)計(jì)時(shí)應(yīng)盡量減小加速度傳感器與微控制器之間的距離。
2.3 電源管理模塊
系統(tǒng)電源管理采用TPS78833型低噪聲、低壓差、低功耗穩(wěn)壓 ,低電電池電壓范圍為2.7V~10V,輸出3.3V穩(wěn)壓,最大輸出電流為150mA,靜態(tài)工作電流僅為0.017mA,采用SSOP小尺寸封裝。
2.4 LCD模塊
LCD采用專用字符液晶顯示模塊,通過(guò)不同字符組合,可以滿足當(dāng)前槳頻、當(dāng)前槳數(shù)、當(dāng)前船速、平均槳頻、平衡槳數(shù)、航程、記錄通道數(shù)、訓(xùn)練時(shí)間、工作方式、電池狀態(tài)等信息的顯示。LCD的電源電壓為3.3V,與MCU的接口采用SPI。
2.5 按鍵功能功能模塊
按鍵K2-K0用于設(shè)定儀器工作方式、測(cè)量的停止、顯示信息的選擇、系統(tǒng)休眠與喚醒、存儲(chǔ)數(shù)據(jù)擦除與傳送等。按鍵直接由MC9S08GB32管理,MC9S08GB32復(fù)用,KBI1P7-KBI1P0共享同一鍵盤(pán)中斷,KBI1P7-KBI1P4引腳還可以通過(guò)軟件為其配置內(nèi)部上拉電阻器。
2.6 PC串口通信模塊
MAX3221是低功耗電平轉(zhuǎn)換器,實(shí)現(xiàn)3.3V TTL電平和RS-232電平之間的轉(zhuǎn)換,完成MC9S08GB32和PC之間通信的物理連接。
3 系統(tǒng)軟件設(shè)計(jì)
軟件主程序流程如圖3所示。系統(tǒng)初始化后,先判斷加速度傳感器的瞬時(shí)輸出電壓值,以決定系統(tǒng)是否進(jìn)入運(yùn)動(dòng)測(cè)量狀態(tài)。進(jìn)入測(cè)量狀態(tài)后,由主程序完成加速度的采樣和補(bǔ)償、船速、槳數(shù)和槳頻的換算、數(shù)據(jù)的存儲(chǔ)與顯示刷新。工作狀態(tài)下,若在6分鐘之內(nèi)加速度傳感器的瞬時(shí)輸出電壓一直低于某一閾值,MCU將會(huì)轉(zhuǎn)入休眠模式。按鍵檢測(cè)由按鍵中斷完成,再進(jìn)入相應(yīng)的功能模塊。系統(tǒng)軟件包括測(cè)量?jī)x終端軟件和PC端軟件二部分。
3.1 測(cè)量?jī)x終端軟件
測(cè)量?jī)x終端軟件主要包括以下模塊。
(1)工作時(shí)鐘設(shè)定模塊:用來(lái)設(shè)定MC9S08GB32內(nèi)部CPU的工作頻率、ADC、計(jì)數(shù)器、SCI等外圍模塊的工作時(shí)鐘頻率,同時(shí)利用計(jì)時(shí)器產(chǎn)生1/128ms的ADC采樣時(shí)間間隔及0.1s的運(yùn)動(dòng)時(shí)間最小間隔。
(2)A/D采樣及船速測(cè)量模塊:MCU每隔1/128ms采樣一次MMA6260Q的加速度輸出,同時(shí)通過(guò)一定的軟件算法得 到一個(gè)瞬時(shí)速度值。軟件算法基于以下公式。
其中,v0為t0時(shí)刻的瞬時(shí)速度,v1(t)為t1時(shí)刻瞬過(guò)速度,α(t)為t0~t1時(shí)段的瞬時(shí)加速度值。
(3)槳數(shù)、槳頻測(cè)量模塊:運(yùn)動(dòng)員每劃動(dòng)一槳將對(duì)船產(chǎn)生前向加速度,而在回槳過(guò)程中又會(huì)由水對(duì)船產(chǎn)生后向加速度,這種前、后向加速度隨著運(yùn)動(dòng)員的不停劃槳出現(xiàn)準(zhǔn)周期性的變化,本測(cè)量模塊將結(jié)合實(shí)測(cè)的加速度曲線,通過(guò)專門(mén)的軟件搜索算法判斷出每一槳的起始點(diǎn)、終止點(diǎn),從而得到槳數(shù)值和槳頻值。
(4)MMA6260Q靜態(tài)調(diào)零校準(zhǔn)模塊:受工作溫度、供電電壓、電路個(gè)體差異等因素的影響,MMA6260Q的0g情況下的電壓輸出值會(huì)有一定的波動(dòng),故需要通過(guò)該模塊進(jìn)行零點(diǎn)校準(zhǔn),其他處理模塊需要利用此時(shí)得到的零點(diǎn)漂移值進(jìn)行軟件補(bǔ)償。
(5)系統(tǒng)自啟動(dòng)模塊和休眠啟動(dòng)、喚醒模塊:初始狀態(tài)下,當(dāng)A/D采樣模塊的瞬時(shí)輸出超出某一閾值時(shí),系統(tǒng)便自動(dòng)轉(zhuǎn)入運(yùn)動(dòng)測(cè)量狀態(tài)直到運(yùn)動(dòng)員按下停止鍵或超時(shí)為止。工作狀態(tài)下,若在6分鐘之內(nèi)A/D轉(zhuǎn)換模塊的輸出一直低于某一閾值,MCU將在清屏和現(xiàn)場(chǎng)保護(hù)后轉(zhuǎn)入休眠模塊以節(jié)省功耗。休眠模式下若有鍵按下,則退出休眠模式并返回休眠前的狀態(tài)。
(6)按鍵和LCD模塊:按鍵功能選擇模塊通過(guò)鍵盤(pán)中斷處理、軟件消抖、鍵值譯碼等過(guò)程獲取K2-K0的鍵值,產(chǎn)生不同工作狀態(tài)下的各種控制信息。MCU通過(guò)SPI接口向LCD顯示不同的數(shù)據(jù)信息。
(7)Flash擦、寫(xiě)模塊:測(cè)量槳頻和槳速時(shí)都需要將測(cè)量結(jié)果存儲(chǔ)到存儲(chǔ)器中,以供訓(xùn)練結(jié)束后利用PC進(jìn)行進(jìn)一步的分析,F(xiàn)lash擦、寫(xiě)模塊完成MC9S08GB32片內(nèi)32kB Flash在線擦寫(xiě),實(shí)現(xiàn)測(cè)量數(shù)據(jù)的存儲(chǔ)。擦、寫(xiě)模塊需要復(fù)制到MC9S08GB32中的RAM來(lái)執(zhí)行。
(8)SCI通信模塊:SCI通信模塊可在通信工作方式下讀取Flash中存儲(chǔ)的測(cè)量數(shù)據(jù),并遵循一定的通信協(xié)議將數(shù)據(jù)傳送給PC。
3.2 PC端軟件
PC端軟件基于Window界面,利用VisualC++編寫(xiě),主要實(shí)現(xiàn)測(cè)量數(shù)據(jù)的讀取、保存、分析處理和速度曲線α(t)、速度曲線v(t)、槳頻曲線f(t)等的顯示。
4 結(jié)束語(yǔ)
皮艇、劃艇、賽艇等是許多運(yùn)動(dòng)會(huì)的正式比賽項(xiàng)目,也是非常依賴器材的項(xiàng)目,良好的器件能夠幫助運(yùn)動(dòng)員改進(jìn)技術(shù),提高成績(jī)。本文設(shè)計(jì)的測(cè)量?jī)x能夠?qū)崿F(xiàn)船速、槳數(shù)和槳頻的實(shí)時(shí)顯示;能存儲(chǔ)數(shù)據(jù)以便以后的分析和指導(dǎo);操作簡(jiǎn)單,所有功能均由按鍵按制;儀表由電池供電,體積小,便于攜帶和放置;在艇類體育運(yùn)動(dòng)領(lǐng)域有著良好的應(yīng)用前景。
評(píng)論