《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM處理器AT91S的M2M終端設計
基于ARM處理器AT91S的M2M終端設計
中電網
摘要: 嵌入式系統(tǒng)是當前國內外研究的熱點之一。采用嵌入式系統(tǒng)技術設計一種可以解決遠程監(jiān)控領域數據傳輸問題的通用終端是必要的。本文重點闡述了基于嵌入式ARM處理器,結合GPRS模塊MC35i設計M2M終端的總體設計方案。
Abstract:
Key words :

引言

目前,對輸油管道、電力裝置、油井等進行遠程監(jiān)控主要采用人工巡邏的方式,這種方式存在實時性差、成本高、浪費人力資源、無法對環(huán)境惡劣的地區(qū)進行監(jiān)控、可能出現(xiàn)誤報等缺點。隨著工業(yè)領域現(xiàn)代化水平的提高和通信技術的發(fā)展,這種生產方式亟待得到改善。

M2M是指應用無線移動通信技術,實現(xiàn)機器與機器、機器與人之間數據通信和交流的一系列技術及其組合的總稱。GPRS具有覆蓋地域廣、通信距離遠、網絡可靠性高等優(yōu)點。隨著GPRS的推廣和應用,以及基于GPRS的M2M產品的推出,采用GPRS技術來解決上述問題成為一種較好的方案。

嵌入式系統(tǒng)是當前國內外研究的熱點之一。采用嵌入式系統(tǒng)技術設計一種可以解決遠程監(jiān)控領域數據傳輸問題的通用終端是必要的。本文重點闡述了基于嵌入式ARM處理器,結合GPRS模塊MC35i設計M2M終端的總體設計方案。

系統(tǒng)硬件組成

M2M終端的硬件核心為GPRS通信模塊MC35i和ARM處理器AT91SAM7S64,它們的接口設計如圖1所示。M2M終端對外留有2個RS232串口,通過發(fā)送預先定義好的數字指令,可以實現(xiàn)M2M終端的啟動、關閉等。當M2M終端與Internet建立連接后,只需把封裝好的數據通過串口發(fā)送到M2M終端,由其完成向監(jiān)控中心發(fā)送數據的功能。


GPRS模塊

GPRS模塊是實現(xiàn)M2M終端平臺的核心部分,設計中采用西門子公司的GPRS通信模塊MC35i。本模塊包括CPU接口電路、SIM卡接口電路和MC35i外圍電路,MC35i支持GPRS的四種編碼協(xié)議CS-1、CS-2、CS-3和CS-4,理論上最高傳輸速率可達172kbps。它具備完整的GSM和GPRS功能,可以廣泛應用在相關的M2M數據傳輸平臺上。MC35i提供了標準AT命令界面和一個RS232接口,用于與外部應用系統(tǒng)連接。

ARM處理器

本數據傳輸平臺處理器采用ATMEL公司生產的32位ARM7TDMI體系結構處理器AT91SAM7S64,該芯片采用3.3V電壓進行供電,支持低功耗模式,它具有64kB的FLASH和16kB的SRAM,具備豐富的外圍設備資源,其中包括3個UART通信串口和1個USB2.0全速設備,利用本芯片完成系統(tǒng)功能的同時可以實現(xiàn)系統(tǒng)的高性價比。CPU模塊硬件電路包括:時鐘電路、JTAG接口電路,RS232接口電路等。

電源設計

系統(tǒng)采用9V電源進行供電,經過TI公司LDO降壓芯片UA7805進行一次降壓,使電壓降至5V。GPRS模塊MC35i要求的電源電壓為3.3V~4.8V,而且要求電源必須能夠提供2A的尖峰電流,因此需要將5V電源通過一個0.7V壓降的肖特基二極管1N5819后輸入MC35i,同時需要接入耐壓25V、1000μF的電解電容,以為MC35i提供足夠的尖峰電流,將5V電源經過TI公司電源模塊REG1117-3.3將電壓降至3.3V,為微處理器及其他芯片提供電源。

嵌入式軟件設計

采用嵌入式實時操作系統(tǒng)可以更合適、有效地利用CPU的資源,簡化應用軟件的設計,縮短系統(tǒng)開發(fā)時間,更好地保證系統(tǒng)的實時陛和可靠性。FreeRTOS是在Sourceforge網站上發(fā)布的微內核嵌入式實時操作系統(tǒng),它是完全免費的操作系統(tǒng),具有源碼公開、可移植、可裁減、調度策略靈活的特點。作為一個輕量級的操作系統(tǒng),F(xiàn)reeRTOS提供的功能包括:任務管理、時間管理、信號量、消息隊列、內存管理等

FreeRTOS支持優(yōu)先級和輪換時間片兩種調度算法,可根據用戶需要設置為可剝奪型內核或不可剝奪型內核。本文基于FreeRTOS給出了M2M終端實現(xiàn)PPP協(xié)商以及數據封裝傳輸的軟件設計方案。

基于狀態(tài)機設計GPRS連接任務

由于網絡和信號較弱等原因,可能導致節(jié)點與GPRS網絡連接的失敗,采用基于狀態(tài)機的結構設計方法對各個階段產生的錯誤進行處理,能保障模塊與GPRS網絡建立可靠連接。程序狀態(tài)機如圖2所示。

閑待命態(tài):此時MC35i處在離線關閉狀態(tài),節(jié)點處在低功耗模式下,系統(tǒng)復位后處于此狀態(tài)。

GPRS參數設置態(tài):處理器控制啟動MC35i模塊后進入此狀態(tài),通過發(fā)送AT命令對模塊及必要的網絡參數進行設置,為使各個參數均設置成功,軟件設計中增加了容錯重試機制。

PPP協(xié)商態(tài):GPRS參數設置完成后,通過發(fā)送AT*99***1#命令開始MC35i模塊與GPRS網絡ISP(網絡服務提供商)的PPP協(xié)商軟件設計中采用LCPHandler()函數完成LCP協(xié)商,PAPHandler()完成認證,由IPCPHandler()完成IPCP協(xié)商,如果最后獲得ISP和本節(jié)點的IP地址,則進入PPPOVER態(tài),此后就能進行數據的傳輸了,由于GPRS網絡等原因,PPP協(xié)商有時會失敗,此時應重啟MC35i模塊,再按照狀態(tài)機流程重新連接。

UDP數據傳輸態(tài):當程序采用UDP方式進行數據傳輸時,程序進入此狀態(tài),通過xDataTrsmtTask()任務進行數據的UDP/IP封裝和解析。

TCP數據傳輸態(tài):當節(jié)點調用uip_cionnect()函數與監(jiān)控中心建立連接后,程序進入TCP數據傳輸態(tài),進行基于TCP的數據傳輸。

數據的封裝和傳輸

通過GPRS進行數據的傳輸需要經過Internet網絡進行中轉,因而傳輸的數據封裝必須進行TCP/IP協(xié)議。文中利用軟件進行了數據封裝,需要傳輸的數據經過傳輸層UDP協(xié)議頭封裝,然后是IP協(xié)議頭的封裝,最后進行PPP協(xié)議的封裝。

MC35i將接收到的數據透明地傳輸到Internet網絡中。通過Internet網絡路由器中轉,最終將數據傳輸到監(jiān)控中心。接收端對接收到的數據按照相應的層次進行解析,從而確定數據的目標程序。

系統(tǒng)軟件設計采用分層的結構,從底到上分別為:串口驅動層(物理層)、PPP協(xié)議層(鏈路層)、IP協(xié)議層(網絡層)、UDP協(xié)議和ICMP層(傳輸層)以及應用層。在移植好的LwIP協(xié)議棧中,通過在各層中建立相應功能的線程,實現(xiàn)數據的封裝。底層軟件為上層軟件提供函數支持,上層軟件利用底層軟件完成應用程序的編寫和實現(xiàn)。軟件采用自底向上的設計方法逐步實現(xiàn)系統(tǒng)中各個函數的功能,各部分函數實現(xiàn)均采用模塊化的設計方法。每個任務對應一個模塊

對每個任務單獨進行設計后,最終由FreeRTOS操作系統(tǒng)統(tǒng)一管理,通過采用信號量和郵箱的方式實現(xiàn)多個任務之間的通信,軟件各部分主要函數之間的關系如圖3所示。

在MC35SerialISR()中將接收的數據存放到xQRxChars隊列中后,發(fā)送SemMC35Rx信號量來激活PPPRxTask()任務,通過對接收數據的解析,確定數據包的類型,然后由相應的函數對接收數據進行處理。
如果接收的數據是應用程序的數據,將由IPRx()函數判斷目標主機是否正確,再經過傳輸層解析數據從而判定對數據處理的應用程序。最后由應用程序解析數據并執(zhí)行相應的功能,如將數據通過串口發(fā)送到主機、向數據采集系統(tǒng)發(fā)送控制命令、接收數據采集系統(tǒng)的數據并發(fā)送等。當接收隊列中所有數據均處理完畢后,延時250ms如果還沒有接收到數據,則任務通過等待信號量SemMC35Rx將自己掛起。數據的發(fā)送過程是一個相反的過程。

應用程序根據需要的功能建立UDPTxTask()或ICMPTxTask()任務,并將數據發(fā)送到xAPPTxQ隊列中。相應的任務再調用IPTx()和PPPTx()函數進行數據的封裝并將數據發(fā)送到XqTxChar隊列中,從而喚醒MC35SerialISR()中斷程序將數據通過串口發(fā)送到MC35i中進行傳輸。為提高系統(tǒng)的實時性,本文中FreeRTOS采用可剝奪內核方式進行調度。采用FreeRTOS操作系統(tǒng)對任務進行管理簡化了軟件的編寫難度,同時提高了程序的可讀性和可移植性。

總結

基于GPRS M2M產品的無線數據傳輸以及遠程監(jiān)控系統(tǒng)是目前國內外研究的熱點。本文采用完全免費的操作系統(tǒng)和TCP/IP協(xié)議棧給出的系統(tǒng)設計方案具備成本低、性能好、可升級等優(yōu)點,為遠程監(jiān)控系統(tǒng)相關領域的數據傳輸提供了一個可行的設計方案。

此內容為AET網站原創(chuàng),未經授權禁止轉載。