基于A(yíng)T91R40008的嵌入式GPRS傳輸終端的設計
摘 要:本文給出了一種針對工業(yè)總線(xiàn)的嵌入式系統連接Internet的無(wú)線(xiàn)上網(wǎng)方案,探討了實(shí)現該方案中要解決的主要問(wèn)題。設計并實(shí)現了基于AT91R40008微處理器和G18 GSM模塊的嵌入式GPRS傳輸終端,采用層次結構和標準接口,實(shí)現了基于實(shí)時(shí)操作系統µC/OS-Ⅱ的嵌入式TCP/IP協(xié)議棧,對軟件系統中的主要模塊進(jìn)行了分析。
關(guān)鍵詞:嵌入式系統;AT91R40008;GPRS;µC/OS-Ⅱ;嵌入式TCP/IP協(xié)議棧
1 引言
隨著(zhù)Internet的快速發(fā)展,Internet已成為信息流通的重要渠道,Internet接入終端在各種遠程監控系統中得到廣泛應用。采用GPRS無(wú)線(xiàn)移動(dòng)互聯(lián)網(wǎng)接入技術(shù)的終端,使得現有工業(yè)總線(xiàn)的監控系統直接通過(guò)Internet進(jìn)行遠程數據傳輸,解決了采用以太網(wǎng)或電話(huà)線(xiàn)接入Internet的有線(xiàn)通訊布線(xiàn)困難、覆蓋范圍小、無(wú)法移動(dòng)通信等問(wèn)題。Internet接入終端已經(jīng)成為工業(yè)控制、遠程測量、交通管理等應用熱點(diǎn)。本文給出了基于ARM處理器和GPRS Modem嵌入式數據傳輸終端的設計與實(shí)現。
2設計原理
將嵌入式系統接入Internet涉及兩個(gè)關(guān)鍵問(wèn)題,即傳送信息的媒質(zhì)和采用的協(xié)議,傳輸媒質(zhì)可以是以太網(wǎng)或者電話(huà)線(xiàn)等媒介,在本設計中采用GPRS Modem作為無(wú)線(xiàn)接入Internet的媒質(zhì);協(xié)議采用嵌入式TCP/IP協(xié)議棧。通過(guò)GPRS Modem與當地GSM基站中的GPRS業(yè)務(wù)節點(diǎn)進(jìn)行無(wú)線(xiàn)通信,進(jìn)入GPRS網(wǎng)絡(luò ),然后通過(guò)GPRS網(wǎng)關(guān)與Internet進(jìn)行數據傳輸。
系統硬件劃分為控制模塊和GPRS modem模塊,GPRS modem模塊提供接入Internet 的TCP/IP物理連接;控制模塊是主控軟件的載體,負責控制將處理好的數據通過(guò)GPRS modem發(fā)送出去或者傳向工業(yè)總線(xiàn)。在控制模塊中,微控制器的一個(gè)串行接口連接GPRS modem,通過(guò)對GPRS modem的控制和通信,實(shí)現Internet網(wǎng)絡(luò )數據的收發(fā);另一個(gè)串行接口通過(guò)工業(yè)總線(xiàn)與其他嵌入式設備進(jìn)行數據通信。該實(shí)現方法采用數據透明傳輸,對原有的嵌入式系統不附加限制條件,較好地實(shí)現了網(wǎng)絡(luò )功能,而且系統的實(shí)時(shí)性較高。
3基于AT91R40008的硬件設計
為了解決網(wǎng)絡(luò )協(xié)議軟件和實(shí)時(shí)操作系統處理的硬件瓶頸,設計中選擇了Atmel公司的AT91R40008微控制器,一款基于A(yíng)RM7TDMI核的32位微控制器,工作頻率為66M,其片內集成了256KB RAM,可以直接將代碼運行在片上RAM中,使得本次應用程序可以采用任務(wù)查詢(xún)方式,增強系統的穩定性,并且兩個(gè)全雙工通用同步/異步收發(fā)器(USART)與外圍控制器PDC連接,使用PDC方式,整段數據交給硬件自動(dòng)收發(fā)處理比單字節處理要大大減輕系統處理壓力,提高了系統的實(shí)時(shí)性。
圖1所示為控制模塊的硬件連接圖。圖中MAX232負責實(shí)現系統的另一個(gè)用戶(hù)接口與標準232總線(xiàn)之間的電平轉換;24CL04負責存儲系統運行時(shí)需要的重要參數,如遠程連接的IP地址、端口等。如果為了緊縮設備體積可以采用將AT91R40008和AT49BV1614A集成在一起的AT91FR40162處理器。GPRS Modem模塊采用的是Motorola g18 DIN,該模塊為用戶(hù)的無(wú)線(xiàn)上網(wǎng)提供了物理鏈路。
圖1 控制模塊硬件結構圖
4 軟件設計
軟件部分的主要功能包括系統及設備的初始化,創(chuàng )建接收發(fā)送任務(wù),建立連接的通信鏈路,保證網(wǎng)絡(luò )連接實(shí)時(shí)有效等。采用的實(shí)時(shí)操作系統是源碼開(kāi)放的嵌入式操作系統µC/OS-Ⅱ,為了嵌入式系統能接入Internet,成功移植實(shí)時(shí)操作系統后還要實(shí)現一個(gè)嵌入式TCP/IP協(xié)議棧。軟件設計采用層次結構,從下到上依次是:硬件驅動(dòng)程序、操作系統內核軟件、網(wǎng)絡(luò )接口軟件、協(xié)議軟件和應用程序。
4.1實(shí)時(shí)操作系統µC/OS-Ⅱ的移植
移植µC/OS-Ⅱ的工作主要包括以下幾個(gè)部分:修改OS_CPU.H文件,該文件主要包含與編譯器相關(guān)的數據類(lèi)型的定義、處理器實(shí)現開(kāi)關(guān)中斷的方法、堆棧類(lèi)型的定義和幾個(gè)宏定義及函數說(shuō)明;修改OS_CPU_C.C文件,用C語(yǔ)言實(shí)現堆棧初始化和幾個(gè)提供給用戶(hù)用于擴展操作系統功能的hook(又稱(chēng)為鉤子函數)函數;修改OS_CPU_A.S文件,用與CPU相關(guān)的匯編語(yǔ)言實(shí)現CPU開(kāi)/關(guān)中斷、任務(wù)級的任務(wù)切換、中斷級的任務(wù)切換以及時(shí)鐘中斷程序。
采用GCC編譯器編譯時(shí),除了對上述文件做相應移植修改外,對實(shí)時(shí)系統的源碼不做改動(dòng),但要編寫(xiě)能在操作系統內直接調用的微控制器外圍設備驅動(dòng)函數,這些驅動(dòng)函數構成微控制器的控制驅動(dòng)函數庫,使得在操作系統內可以完成UART控制、I2C總線(xiàn)訪(fǎng)問(wèn)、PIO控制等硬件操作,對移植后的實(shí)時(shí)系統能夠使用各個(gè)外圍器件以及協(xié)議的實(shí)現都很重要。
4.2 嵌入式TCP/IP協(xié)議棧
在實(shí)時(shí)操作系統上需要一個(gè)TCP/IP協(xié)議棧來(lái)實(shí)現在Internet接入并收發(fā)數據,為了提高效率節省資源,采用簡(jiǎn)化的TCP/IP協(xié)議棧,本次應用只保留了TCP、UDP、IP和PPP協(xié)議,如圖2所示,網(wǎng)絡(luò )協(xié)議棧和構件為網(wǎng)絡(luò )環(huán)境的嵌入式應用提供有效的系統服務(wù)。
圖2 網(wǎng)絡(luò )協(xié)議棧和部件
傳輸層采用TCP(傳輸控制協(xié)議)和UDP(用戶(hù)數據報協(xié)議)。TCP是一種面向連接的協(xié)議,它提供可靠的字節流傳輸;UDP協(xié)議沒(méi)有保證可靠性的機制,但可以實(shí)現高速高效的發(fā)送數據報。網(wǎng)絡(luò )層協(xié)議實(shí)現的主要是IP,在實(shí)現中IP協(xié)議不支持IP包的分片和重裝以及路由選擇。物理層的GPRS Modem實(shí)現了連接網(wǎng)絡(luò )的物理設備,要通過(guò)Modem撥號上網(wǎng),必須在數據鏈路層上實(shí)現PPP撥號協(xié)議,按照PPP協(xié)議的要求與移動(dòng)GPRS網(wǎng)關(guān)建立通信鏈路。為了方便協(xié)議軟件的使用還要實(shí)現各個(gè)層面的接口,網(wǎng)絡(luò )接口層在網(wǎng)絡(luò )協(xié)議和網(wǎng)絡(luò )設備、不同的協(xié)議層之間提供了一個(gè)相互內部隔離的編程接口。BSD Socket接口為應用提供了訪(fǎng)問(wèn)網(wǎng)絡(luò )的統一接口。
4.3 緩沖區和驅動(dòng)軟件
本次應用中緩沖區和驅動(dòng)軟件是提高系統性能的關(guān)鍵,通過(guò)多種緩沖區設計將多層次結構的軟件緊密的整合在一起,可以緩和各層軟件之間處理瓶頸,提高連續數據并行處理能力;高效驅動(dòng)軟件的設計降低了硬件處理對CPU的占有率。
數據經(jīng)過(guò)串口硬件設備進(jìn)入軟件系統后就開(kāi)始在一系列緩沖區中傳遞,圖3所示為所采用的緩沖結構。從左到右依次是串口的收發(fā)緩沖區、串口收發(fā)工作緩沖區、網(wǎng)絡(luò )接口讀寫(xiě)緩沖區,最后是協(xié)議棧緩沖區。這樣整個(gè)數據交流過(guò)程就變成對本層緩沖區的讀寫(xiě),接口程序的編寫(xiě)相對簡(jiǎn)單明了。
圖3 緩沖區設計示意圖
每個(gè)串口的收發(fā)緩沖區是6組長(cháng)度為512字節的char類(lèi)型數組,工作緩沖區是長(cháng)度為1KB的char類(lèi)型環(huán)行隊列;網(wǎng)絡(luò )接口讀寫(xiě)緩沖區采用和工作緩沖區相同的結構;協(xié)議棧緩沖區是協(xié)議軟件處理過(guò)程中數據的唯一載體,協(xié)議棧緩沖區采用結構體的靜態(tài)鏈表結構。
上述緩沖區設計不僅保證了連續數據到來(lái)時(shí)CPU有足夠的處理時(shí)間和空間,而且將硬件和網(wǎng)絡(luò )協(xié)議軟件隔離便于軟件的設計開(kāi)發(fā)。這種設計模式會(huì )占用大量RAM空間,但是所采用的ARM處理器片內集成了256KB RAM,所以有足夠的RAM作緩沖區以提高系統性能。軟件的RAM使用情況如表1所示。其中還可以有100KB左右的內存空間可以提供給軟件升級,而且用戶(hù)可以選擇程序的FLASH運行方式,節省更多RAM為軟件升級使用。
表1 整個(gè)系統的RAM占用表
驅動(dòng)程序包括三部分:初始化部分,函數功能部分和中斷服務(wù)程序ISR。初始化部分初始化硬件設備,分配設備所需的資源,完成系統相關(guān)的設置;函數功能部分完成系統指定的功能,中斷服務(wù)程序的主要功能是發(fā)起一個(gè)任務(wù)來(lái)完成必要的處理。為串口硬件編寫(xiě)驅動(dòng)函數的工作主要是串口的啟動(dòng)、停止、波特率設置、控制PDC以及對緩沖區的讀寫(xiě)。
4.4系統啟動(dòng)工作流程
處理器上電后首先進(jìn)行CPU硬件、操作系統、協(xié)議棧軟件參數的初始化工作;測試外設GSM模塊,由于GSM模塊作為一個(gè)相對重要而且較為獨立的設備,它的啟動(dòng)過(guò)程相對MCU要慢很多,所以在系統進(jìn)入正常運行階段之前必須等待GSM模塊正常工作以后,才能進(jìn)行網(wǎng)絡(luò )服務(wù)器的連接。用戶(hù)任務(wù)除了負責網(wǎng)絡(luò )和工業(yè)總線(xiàn)數據交換以外,由于在GSM信號、模塊電源受到干擾或SIM卡震動(dòng)使都會(huì )引起GSM模塊死機,所以還要建立GSM模塊檢測任務(wù),負責網(wǎng)絡(luò )連接的檢測以及判斷網(wǎng)絡(luò )中斷連接是否由GSM模塊故障引起,從而決定是否對GSM模塊重啟,以保證整個(gè)系統的穩定運行。
5 結束語(yǔ)
本文給出了一種基于32位ARM微處理器和GPRS的嵌入式無(wú)線(xiàn)數據傳輸終端的實(shí)現方案。該方案硬件成本不高于采用中高檔單片機的實(shí)現方案,同時(shí)具有數據吞吐量大、可靠性高、處理能力強等優(yōu)點(diǎn)。嵌入式TCP/IP協(xié)議和實(shí)時(shí)系統相結合的軟件平臺,增強了系統的功能性和實(shí)時(shí)性,這種平臺不僅可以作為測控網(wǎng)絡(luò )與Internet數據接入終端,還可以實(shí)現FTP、WEB、GUI、FS等多種嵌入式應用,用于遠程監控網(wǎng)站、監控圖片傳輸、網(wǎng)絡(luò )硬盤(pán)、現場(chǎng)界面機等應用場(chǎng)合,替換PC機降低系統成本。
參 考 文 獻:
[1] 馬忠梅, 徐英慧等. AT91系列ARM核微控制器結構與開(kāi)發(fā)[M]. 北京: 北京航空航天大學(xué)出版社,2003.
[2] Jean J.Labrosse. 嵌入式實(shí)時(shí)操作系統µC/OS-Ⅱ(第二版)[M].邵貝貝譯.北京:北京航空航天大學(xué)出版社,2003。
[3] Gary R.Wright, W.Richard Stevens. TCP/IP詳解 卷2:實(shí)現[M]. 北京:機械工業(yè)出版社,2002.
tcp/ip相關(guān)文章:tcp/ip是什么
評論