基于A(yíng)RM的嵌入式多路信號數據采集系統
GPRS無(wú)線(xiàn)終端嵌入了TCP/IP協(xié)議和UDP協(xié)議(用戶(hù)可選),本系統采用TCP/IP協(xié)議,實(shí)際上GPRSDTU上實(shí)現的協(xié)議棧是TCP/IPOverPPP。

圖1 GRPS無(wú)線(xiàn)數據采集終端
2 硬件組成
2.1 傳感器及放大器
理論上,該系統可以同時(shí)進(jìn)行16路數據的采集,但在實(shí)際的調試中,只選用了2路來(lái)做模擬。
一路選用溫度傳感器,表面/液體熱電偶NR281530,獲取實(shí)時(shí)現場(chǎng)的溫度,另一路采用壓力傳感器,PPM241BY油井專(zhuān)用型壓力傳感器,此系統在油田油井中具有較好應用。
在前端信號處理單元,由于各種傳感器的輸出參數不同,輸出信號不僅電平低、內阻高,而且有共模電壓以及現場(chǎng)惡劣環(huán)境的影響,因此,在選用放大芯片時(shí)要綜合考慮以上因素。選取常用的MCP6S2X可編程增益放大器對原始信號進(jìn)行放大,OP07CP做后續濾波芯片。
2.2 微處理器
微處理器是系統工作的核心,其性能的好壞直接決定了數據采集系統性能的優(yōu)劣。基于本采集系統對數據實(shí)時(shí)性和精度的要求,以及易操作性方面的考慮,選擇32位的ARM7系列處理器,它具有以下特點(diǎn):
·體積小、低功耗、低成本、高性能;
·支持Thumb(16位)/ARM(32位)雙指令,能很好兼容8位/16位器件;
·大量使用寄存器,指令執行速度快;
·指令長(cháng)度固定;
·尋址方式靈活簡(jiǎn)單,執行效率高
本系統采用PHILIPS公司的單片32位微控制器LPC2134,它是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的16/32位ARM7TDMI2STMCPU,含有128KB的FLASH,該存儲器用作代碼和數據的存儲。
LPC2134擁有兩個(gè)異步串行口UART0和UART1,本系統中將UART0與GPRS終端相連,實(shí)現數據傳輸。它采用16字節收發(fā)FIFO,內置波特率發(fā)生器,包含使能實(shí)現軟件控制的機制。
硬件SPI接口是一個(gè)同步、全雙工串行接口,最大數據位速率為時(shí)鐘速率的1/8,可配置為主機或從機。本系統中SPI接口作為主機,根據不同的中斷,控制多個(gè)從機,包括可編程增益放大器MCP6S2X,使用SPI總線(xiàn)訪(fǎng)問(wèn)SD卡,以及控制開(kāi)發(fā)板上的數碼管顯示。
A/D轉換器是2個(gè)8路10位逼近式模/數轉換器,測量范圍是0~313V,10位轉換時(shí)間大于或等于2144μS,一個(gè)或多個(gè)Burst轉換模式。
2.3 GPRS終端
GPRS終端選用的是南京傲屹電子有限公司的AYG285C,它是采用GPRS模塊專(zhuān)為工業(yè)集成設計的,在溫度范圍、震動(dòng)、電磁兼容性和接口多樣性等方面均采用特殊設計,保證了惡劣環(huán)境下的工作穩定性,基于GPRS公網(wǎng)的數據傳輸具有通信范圍廣,傳輸穩定可靠等特點(diǎn)。通過(guò)按鍵可以進(jìn)行模塊參數設置或者進(jìn)行網(wǎng)絡(luò )數據通信,串口波特率在300~115200bps可調,校驗位可選:無(wú)校驗,奇校驗,偶校驗。支持協(xié)議PPP、IP、TCP、UDP、DNS、PING的客戶(hù)端功能。另外,電源、工作狀態(tài)有LED指示,方便現場(chǎng)查看MODEM運行情況。
3 系統軟件實(shí)現
3.1 μC/OS2Ⅱ嵌入式操作系統
當需要進(jìn)行多任務(wù)處理和調度時(shí),一個(gè)嵌入式實(shí)時(shí)操作系統就必不可少。為此系統中采用源碼公開(kāi)的μC/OS2Ⅱ操作系統,它具有執行效率高、占用空間小、實(shí)時(shí)性能優(yōu)良以及可擴展性強等特點(diǎn),最小內核可編譯至2K字節。
μC/OS2Ⅱ的移植需要滿(mǎn)足以下要求:
·處理器的C編譯器可以產(chǎn)生可重入代碼;
·可以使用C調用進(jìn)入和退出臨界區代碼;
·處理器必須支持硬件中斷,并且需要一個(gè)定時(shí)中斷源;
·處理器需要能夠容納一定數據的硬件堆棧;
·處理器需要有能夠在CPU寄存器與內核和堆棧交換數據的指令。
本系統使用的LPC2134ARM7處理器滿(mǎn)足以上所有條件,因此可以對其進(jìn)行移植。根據μC/OS2Ⅱ的要求,移植μC/OS2Ⅱ到一個(gè)LPC2134ARM7體系結構上需要提供2個(gè)或3個(gè)文件:OSCPU.
H(C語(yǔ)言頭文件)、OS-CPU-C.C(C程序源文件)及OS-CPU-A.ASM(匯編程序源文件)。
數據采集任務(wù)中,采用C語(yǔ)言進(jìn)行編程,但對于系統的初始化,仍然采用匯編來(lái)制作啟動(dòng)代碼,它可以實(shí)現向量表定義、堆棧初始化、系統變量的初始化、中斷系統初始化、I/O初始化、外圍初始化、地址映射等操作。
芯片復位后,系統初始化流程如圖2所示。

圖2 系統初始化流程圖
3.2 接口程序及SD卡驅動(dòng)的實(shí)現
在實(shí)時(shí)內核下,接口程序讀取A/D采樣數據的方法通常有三種:程序延時(shí)法、ADC轉換完畢時(shí)產(chǎn)生中斷法和程序循環(huán)等待的方法。其中循環(huán)等待的方法CPU開(kāi)銷(xiāo)小,不需要中斷服務(wù),比較適合嵌入式系統中采用。
循環(huán)等待A/D讀取數據的偽代碼如下:

之間通過(guò)串口相連,采集數據先通過(guò)開(kāi)發(fā)板串口UART0發(fā)送到無(wú)線(xiàn)數據終端AYG285C的緩沖區,然后緩沖區將數據打成一個(gè)個(gè)數據包,通過(guò)GPRS網(wǎng)絡(luò )發(fā)送到遠程數據處理中心。因此,在μC/OS2Ⅱ下LPC2134的UART底層接口驅動(dòng)顯得尤為重要。
UART0初始化函數片斷如下:

在本系統中,串口通信采用8位數據位,1位停止位,奇校驗,無(wú)流控制。在實(shí)際使用中為接收數據穩定波特率設置為9600bps效果較好。在測試系統中,測量到的數據范圍為10-6~101,有效數字為4位,所以在發(fā)送數據時(shí)采用每幀數據由3個(gè)字節組成,第1個(gè)字節為數據指數部分,高四位為0,低四位中的第四位表示指數符號,0表示正數,1表示負數;其余三位表示指數的數值部分。
后續兩個(gè)字節為數據底數部分,采用壓縮的BCD碼編碼方式,高位在前,低位在后,即一個(gè)字節表示兩位十進(jìn)制數,則兩個(gè)字節表示四位十進(jìn)制數。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論