嵌入式多路信號數據采集系統實現方案
2.3 GPRS終端
GPRS終端選用的是南京傲屹電子有限公司的AYG285C,它是采用GPRS模塊專為工業集成設計的,在溫度范圍、震動、電磁兼容性和接口多樣性等方面均采用特殊設計,保證了惡劣環境下的工作穩定性,基于GPRS公網的數據傳輸具有通信范圍廣,傳輸穩定可靠等特點。通過按鍵可以進行模塊參數設置或者進行網絡數據通信,串口波特率在300~115200bps可調,校驗位可選:無校驗,奇校驗,偶校驗。支持協議PPP、IP、TCP、UDP、DNS、PING的客戶端功能。另外,電源、工作狀態有LED指示,方便現場查看MODEM運行情況。
當需要進行多任務處理和調度時,一個嵌入式實時操作系統就必不可少。為此系統中采用源碼公開的μC/OS2Ⅱ操作系統,它具有執行效率高、占用空間小、實時性能優良以及可擴展性強等特點,最小內核可編譯至2K字節。
μC/OS2Ⅱ的移植需要滿足以下要求:
1.處理器的C編譯器可以產生可重入代碼;
2.可以使用C調用進入和退出臨界區代碼;
3.處理器必須支持硬件中斷,并且需要一個定時中斷源;
4.處理器需要能夠容納一定數據的硬件堆棧;
5.處理器需要有能夠在CPU寄存器與內核和堆棧交換數據的指令。
本系統使用的LPC2134ARM7處理器滿足以上所有條件,因此可以對其進行移植。根據μC/OS2Ⅱ的要求,移植μC/OS2Ⅱ到一個LPC2134ARM7體系結構上需要提供2個或3個文件:OSCPU.H(C語言頭文件)、OS-CPU-C.C(C程序源文件)及OS-CPU-A.ASM(匯編程序源文件)。
數據采集任務中,采用C語言進行編程,但對于系統的初始化,仍然采用匯編來制作啟動代碼,它可以實現向量表定義、堆棧初始化、系統變量的初始化、中斷系統初始化、I/O初始化、外圍初始化、地址映射等操作。
芯片復位后,系統初始化流程如圖2所示。
圖2 系統初始化流程圖
3.2 接口程序及SD卡驅動的實現
在實時內核下,接口程序讀取A/D采樣數據的方法通常有三種:程序延時法、ADC轉換完畢時產生中斷法和程序循環等待的方法。其中循環等待的方法CPU開銷小,不需要中斷服務,比較適合嵌入式系統中采用。
循環等待A/D讀取數據的偽代碼如下:
之間通過串口相連,采集數據先通過開發板串口UART0發送到無線數據終端AYG285C的緩沖區,然后緩沖區將數據打成一個個數據包,通過GPRS網絡發送到遠程數據處理中心。因此,在μC/OS2Ⅱ下LPC2134的UART底層接口驅動顯得尤為重要。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論