嵌入式多路信號(hào)數(shù)據(jù)采集系統(tǒng)
在實(shí)時(shí)內(nèi)核下,接口程序讀取A/D采樣數(shù)據(jù)的方法通常有三種:程序延時(shí)法、ADC轉(zhuǎn)換完畢時(shí)產(chǎn)生中斷法和程序循環(huán)等待的方法。其中循環(huán)等待的方法CPU開(kāi)銷小,不需要中斷服務(wù),比較適合嵌入式系統(tǒng)中采用。
循環(huán)等待A/D讀取數(shù)據(jù)的偽代碼如下:
之間通過(guò)串口相連,采集數(shù)據(jù)先通過(guò)開(kāi)發(fā)板串口UART0發(fā)送到無(wú)線數(shù)據(jù)終端AYG285C的緩沖區(qū),然后緩沖區(qū)將數(shù)據(jù)打成一個(gè)個(gè)數(shù)據(jù)包,通過(guò)GPRS網(wǎng)絡(luò)發(fā)送到遠(yuǎn)程數(shù)據(jù)處理中心。因此,在μC/OS2Ⅱ下LPC2134的UART底層接口驅(qū)動(dòng)顯得尤為重要。
UART0初始化函數(shù)片斷如下:
在本系統(tǒng)中,串口通信采用8位數(shù)據(jù)位,1位停止位,奇校驗(yàn),無(wú)流控制。在實(shí)際使用中為接收數(shù)據(jù)穩(wěn)定波特率設(shè)置為9600bps效果較好。在測(cè)試系統(tǒng)中,測(cè)量到的數(shù)據(jù)范圍為10-6~101,有效數(shù)字為4位,所以在發(fā)送數(shù)據(jù)時(shí)采用每幀數(shù)據(jù)由3個(gè)字節(jié)組成,第1個(gè)字節(jié)為數(shù)據(jù)指數(shù)部分,高四位為0,低四位中的第四位表示指數(shù)符號(hào),0表示正數(shù),1表示負(fù)數(shù);其余三位表示指數(shù)的數(shù)值部分。
后續(xù)兩個(gè)字節(jié)為數(shù)據(jù)底數(shù)部分,采用壓縮的BCD碼編碼方式,高位在前,低位在后,即一個(gè)字節(jié)表示兩位十進(jìn)制數(shù),則兩個(gè)字節(jié)表示四位十進(jìn)制數(shù)。
LPC2134的UART0使用中斷方式進(jìn)行通信,這樣不會(huì)占用CPU很多時(shí)間,效率比較高。當(dāng)中斷服務(wù)處理子程序接收到一次中斷,它僅能知道UART0產(chǎn)生了中斷,還需要查詢中斷標(biāo)志寄存器U0IIR,依據(jù)不同中斷源類型進(jìn)行不同處理。在處理完當(dāng)前的中斷源類型之后,不能立即退出服務(wù),而應(yīng)當(dāng)繼續(xù)判斷U0IIR寄存器最低位是否為0。
如果為0,則表示還有尚未處理的中斷,應(yīng)該繼續(xù)根據(jù)U0IIR[3∶0]判斷中斷源類型,進(jìn)行處理,直到U0IIR的最低位為1,最后發(fā)送中斷結(jié)束命令結(jié)束中斷服務(wù)處理程序。
SD卡讀寫(xiě)軟件移植到ARM7微處理器LPC2134上的結(jié)構(gòu)圖如圖3所示。其中硬件抽象層是讀寫(xiě)SD卡的硬件條件配置,是與硬件相關(guān)的函數(shù);命令層包含SD卡的相關(guān)命令以及卡與主機(jī)之間數(shù)據(jù)流的控制,這一層與實(shí)時(shí)操作系統(tǒng)μC/OS2Ⅱ相關(guān),與硬件無(wú)關(guān);應(yīng)用層是向應(yīng)用程序提供卡的API函數(shù),這一層由實(shí)時(shí)操作系統(tǒng)μC/OS2Ⅱ控制。
圖3 SD卡讀寫(xiě)軟件移植結(jié)構(gòu)圖
3.3 應(yīng)用程序?qū)崿F(xiàn)
系統(tǒng)初始化完成后,創(chuàng)建各個(gè)任務(wù),進(jìn)入多任務(wù)調(diào)度處理。應(yīng)用程序框架流程如圖4所示。
本系統(tǒng)的主要任務(wù)是完成數(shù)據(jù)采集。系統(tǒng)在得到遠(yuǎn)程數(shù)據(jù)中心的采集命令后,選擇適當(dāng)?shù)牟杉ǖ?,并設(shè)置A/D模塊參數(shù)。在采集過(guò)程中判斷是否要停止,如果停止,任務(wù)處于等待掛起狀態(tài)。
圖4 應(yīng)用程序框架流程圖
4 結(jié)語(yǔ)
本系統(tǒng)采用了ARM+RTOS以及ARM+GPRS的方案,選取適當(dāng)?shù)钠骷?gòu)成了多路的數(shù)據(jù)采集系統(tǒng),具有一定的實(shí)用價(jià)值??紤]到現(xiàn)場(chǎng)采集到的多是小信號(hào),為了有較好的準(zhǔn)確度和精確度,對(duì)A/D后的采集數(shù)據(jù)還要進(jìn)行分析和調(diào)整,然后再發(fā)送到數(shù)據(jù)處理中心。為此,可以進(jìn)行反復(fù)實(shí)驗(yàn),獲得多組數(shù)據(jù),最后通過(guò)最小二乘法曲線擬合來(lái)提高準(zhǔn)確度。另外,隨外界環(huán)境的變化,也可以修改擬合曲線以適應(yīng)具體的應(yīng)用。隨著3G時(shí)代的來(lái)臨,大量數(shù)據(jù)信息的傳輸成為可能,可以考慮采集現(xiàn)場(chǎng)的相關(guān)視頻信號(hào)。在短消息功能,數(shù)據(jù)加密技術(shù)以及軟件操作和文件管理上還有待進(jìn)一步開(kāi)發(fā)和優(yōu)化。
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
熱電偶相關(guān)文章:熱電偶原理
評(píng)論