<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 基于ARM9的無線數(shù)據(jù)終端的設計與實現(xiàn)

          基于ARM9的無線數(shù)據(jù)終端的設計與實現(xiàn)

          作者: 時間:2008-06-13 來源:網(wǎng)絡 收藏
          摘要:本文介紹了一個AT91RM9200的嵌入式應用系統(tǒng)方案。該系統(tǒng)以嵌入式Linux作為操作系統(tǒng),充分利用了ARM豐富的硬件資源簡化了系統(tǒng)結構,利用目前成熟的GPRS/CDMA網(wǎng)絡技術,對上的應用開發(fā)作了分析,對中所有技術關鍵點進行了說明。
          關鍵詞:ARM-Linux內(nèi)核;AT91RM9200;無線;GPRS/CDMA

          0.引 言

          隨著GPRS/CDMA網(wǎng)絡技術的逐步成熟,無線數(shù)據(jù)相關應用已經(jīng)成為當前的熱點應用,特別是對于電力、電信、石油、水利、地質(zhì)、和交通行業(yè)中場所不固定的應用場合,由于有線網(wǎng)絡的架設受到種種條件的限制,采用GPRS/CDMA的無線網(wǎng)絡技術,具有無可比擬的優(yōu)勢。傳統(tǒng)的無線數(shù)據(jù)終端一般是采用“單片機+GPRS/CDMA調(diào)制解調(diào)器”的系統(tǒng)結構,這種結構硬件成本略低,但功能比較有限,在協(xié)議的開發(fā)和支持上都有一定難度。而近年來,以ARM為代表的嵌入式32位微處理器技術得到了飛速發(fā)展,無論是在功耗、便攜性還是在硬件成本上,許多高性能的ARM芯片已經(jīng)與單片機相差無幾,因此在許多工業(yè)應用中,使用ARM芯片取代傳統(tǒng)的8/16位單片機已經(jīng)是一個非常經(jīng)濟、理想的選擇。

          無線數(shù)據(jù)終端系統(tǒng)以“高性能嵌入式微處理器+GPRS/CDMA模塊” 的系統(tǒng)架構取代了傳統(tǒng)的無線數(shù)據(jù)終端設計方案,此方案雖然硬件成本稍高,需要高性能嵌入式微處理器來支持嵌入式操作系統(tǒng),但可以豐富協(xié)議接口,便于移植和向高端系統(tǒng)應用升級,同時更加便于數(shù)據(jù)采集與遠程監(jiān)控的。這樣不僅可以利用ARM芯片豐富的片內(nèi)、片外資源簡化系統(tǒng)硬件結構,更為方便的是,可以通過運行嵌入式操作系統(tǒng)來豐富協(xié)議接口,減小實際應用的開發(fā)難度且便于向高端系統(tǒng)應用升級。

          1.硬件結構

          無線數(shù)據(jù)終端系統(tǒng)是嵌入到一個工業(yè)控制系統(tǒng)中使用,同時綜合考慮其他相關需求和功能擴展,因此選用AT91RM9200處理器作為系統(tǒng)的核心處理單元,外接GPRS/CDMA模塊,作為整個系統(tǒng)的硬件平臺。AT91RM9200是ATMEL公司生產(chǎn)的一款高性能的ARM架構到32位嵌入式的芯片,AT91RM9200是一款工業(yè)級到芯片,工作溫度范圍可達-40℃~85℃,存儲溫度-60℃~150℃。CPU內(nèi)嵌16KB數(shù)據(jù)Cache和16KB指令Cache,帶有MMU存儲器關聯(lián)單元,在180MHz時工作頻率下運行速度可達200MIPS.芯片內(nèi)嵌10M/100M自適應以太網(wǎng)口、USB2.0協(xié)議到USB HOST和Device接口,具有多媒體卡接口MCI,3個同步串口SSC,4個USART接口以及SPI接口等,最多可達122個可編程I/O口。AT91RM9200性能穩(wěn)定,功能強大,時工業(yè)控制、網(wǎng)絡通訊等應用的首選,也適合于汽車、醫(yī)藥等領域。圖1是無線數(shù)據(jù)終端系統(tǒng)的總體硬件結構圖。


          圖1 無線數(shù)據(jù)終端的總體硬件結構圖

          在圖1所示的硬件結構中,R232/RS485接口和RJ45網(wǎng)絡接口用來實現(xiàn)客戶的接口需求,與各種用戶前端設備進行關聯(lián),GPRS/CDMA模塊提供系統(tǒng)的無線數(shù)據(jù)通信鏈路,通過UART接口和AT91RM9200通信,實現(xiàn)數(shù)據(jù)的無線傳輸。圖中的其他功能模塊實現(xiàn)系統(tǒng)所需的基本功能,整體硬件結構相對比較簡單。

          目前成熟的無線網(wǎng)絡技術中,主要有GPRS和CDMA兩種技術,系統(tǒng)設計時可以針對不同的應用地區(qū)電信運營商的網(wǎng)絡覆蓋情況選擇GPRS或CDMA模塊實現(xiàn)無線網(wǎng)絡的連接。其中,GPRS模塊我們采用的是目前比較流行而且最易購買的西門子公司的MC39i模塊(GPRS),CDMA模塊我們采用WAVECOM的Q2358C模塊(CDMA)。MC39i采用GPRS分時復用的Class 8 的標準,支持EGSM900和GSM1800雙頻,它具有TC35的全部功能并且很容易集成。該GPRS模塊接收速率可以達到86.20kbps,發(fā)送速率可以達到21.5kbps。接口為40pin,包括電源、3V SIM卡、RS232接口、語音、控制等管腳/50Ω天線接口。CDMA模塊選用Wavecom公司的Q2358C模塊,它是一個單頻800MHZ,CDMA20001xRTT模塊, RS-232和聲音通過15pin接口連接,電源通過4pin接都相連,含有SMA天線接口和活動UIM插槽,可以通過通過AT指令進行控制。本應用設計時主要使用了三個接口,即電源接口、SIM接口和串行接口。GPRS/CDMA模塊包含完整的SIM接口信號和一個完整的全功能串口,因此模塊的SIM接口和串口的連接非常簡單,直接將模塊的接口與ARM系統(tǒng)的對應接口連接即可。

          2.軟件平臺

          2.1 構建可移植嵌入式Linux系統(tǒng)

          無線數(shù)據(jù)終端的軟件開發(fā)一般分為兩部分,即系統(tǒng)軟件的移植與配置和高級應用程序的開發(fā),其中前者是后者實現(xiàn)的基礎。嵌入式Linux是目前廣泛應用的一種嵌入式操作系統(tǒng),嵌入式Linux針對嵌入式系統(tǒng)的特點,對Linux的內(nèi)核進行了修改和重新編譯,包含了Linux常用的API,保留了Linux系統(tǒng)原有的強大的網(wǎng)絡功能,高穩(wěn)定性,豐富的文件系統(tǒng)支持功能。

          采用的微處理器AT91RM9200 內(nèi)部帶有MMU,所以采用ARM Linux,使用Linux2.4.18內(nèi)核,他的特點主要是給內(nèi)部帶有存儲管理單元MMU 的處理器提供良好的支持。硬件系統(tǒng)主要芯片包括:CPU 采用ATMEL處理器AT91RM9200;內(nèi)存芯片為現(xiàn)代HY57V641620; FALSH 采用SST39VF160;BOOT FLASH 為ATMEL AT29C010;由于AT91RM9200內(nèi)嵌一個以太網(wǎng)控制器,支持媒體獨立接口MII和帶緩沖DMA接口,可在半雙工或全雙工模式下提供情報10/100Mb/s的以太網(wǎng)接入。兼容IEEE802.3MAC控制層協(xié)議。同時,為滿足系統(tǒng)的無線數(shù)據(jù)終端的應用需求,還對系統(tǒng)源代碼進行了改進,利用AT91RM9200芯片支持DMA機制,對串口驅動代碼進行改寫,將數(shù)據(jù)收發(fā)方式由原先的字節(jié)中斷改為DMA方式,這樣便可以通過避免大量的CPU計算開銷來提高核心處理單元與GPRS模塊間通信的吞吐量。

          2.2 ARM-Linux內(nèi)核功能設計

          GPRS/CDMA的網(wǎng)絡連接是無線數(shù)據(jù)終端的基礎功能,它是通過PPP(點對點協(xié)定)協(xié)議來完成的。PPP是在串行連接的數(shù)據(jù)鏈路實現(xiàn)IP以及其他網(wǎng)絡協(xié)議的一種機制。同時為節(jié)省成本,無線數(shù)據(jù)終端常常是作為一個無線路由網(wǎng)關來使用,即內(nèi)部局域網(wǎng)計算機能夠通過它透明訪問Internet。嵌入式Linux的網(wǎng)絡體系結構繼承了Linux網(wǎng)絡系統(tǒng)具有穩(wěn)定、高效和功能齊全的優(yōu)點,同時按照應用的需要進行了適當?shù)囊浦埠团渲镁湍軡M足要求,在完成相關內(nèi)核修改后,需要重新編譯內(nèi)核。

          (1)增加ARM-Linux內(nèi)核的NAT支持。內(nèi)核中與NAT相關的配置都在“Networking options”菜單下,一般需要選中的選項包括:“Network packet filtering (replaces ipchains)”選項和“IP: Netfilter Configuration”子菜單中與NAT規(guī)則相關的配置,其他選項則根據(jù)應用需求來選擇。另外,還需要選中內(nèi)核的“/proc file system support”和“Sysctl support”選項,這樣系統(tǒng)運行時才可以通過Sysctl接口來動態(tài)更改內(nèi)核參數(shù)。

          (2)增加ARM-Linux內(nèi)核的PPP支持。內(nèi)核中與PPP協(xié)議相關的配置選項都包含在“Network device support”選項下,需要選中的選項包括PPP協(xié)議支持、PPP異步/同步串口通信以及PPP壓縮等。

          (3)移植IPTables和PPP應用程序。IPTables是Linux系統(tǒng)上用來創(chuàng)建NAT規(guī)則的一個開源的工具程序,從網(wǎng)絡上可以下載其源碼。PPPD是PPP的一個應用程序,為PPP提供一種在點對點串行線路上傳輸數(shù)據(jù)流的方法,而Chat則是PPPD一個配套程序,它用來撥號并等待提示,然后根據(jù)提示輸入用戶名和密碼等登陸信息??梢詮木W(wǎng)絡上下載IPTables和PPP源碼,然后根據(jù)源代碼版本使用相應版本的ARM-Linux交叉編譯器進行編譯,便可以得到相應二進制程序。

          (4)編寫聯(lián)網(wǎng)撥號腳本文件,調(diào)試GPRS/CDMA聯(lián)網(wǎng), 完成系統(tǒng)利用成熟GPRS/CDMA技術的網(wǎng)絡連接。

          3.系統(tǒng)實現(xiàn)

          通過對完善增加ARM-Linux內(nèi)核的功能后,ARM-Linux內(nèi)核已經(jīng)具有了PPP和NAT功能,同時通過編寫聯(lián)網(wǎng)撥號腳本,完成與GPRS/CDMA網(wǎng)絡連接之后,需要根據(jù)設備的具體應用需求開發(fā)相關的應用程序。

          3.1 NAT配置

          嵌入式Linux是一種開發(fā)源代碼、軟實時、多任務的嵌入式操作系統(tǒng),通常它是在標準的Linux的基礎上針對嵌入式系統(tǒng)進行裁減和優(yōu)化后形成的,而且裁減和優(yōu)化后的Linux體積更小,性能更加穩(wěn)定,因此在許多實際應用中都使用網(wǎng)絡地址轉化技術(NAT)這種最為簡單、常用的方式。

          NAT技術本質(zhì)上是通過修改IP包的源地址或目的地址來實現(xiàn)。如果一個節(jié)點執(zhí)行了NAT,它會修改通過它轉發(fā)的IP包的源地址或者目的地址,并且節(jié)點會記住它是怎樣修改了這個包,因此當相應的應答包從另一個方向到達時,它就知道如何反向修改應答包。其中,修改IP包的源地址常被稱為IP偽裝技術,當內(nèi)部網(wǎng)絡節(jié)點作為客戶端,需要發(fā)起對Internet的訪問時,就可以采用這種方式。而修改IP包的目的地址中最常用的就是端口轉發(fā)技術,它可以讓內(nèi)部網(wǎng)絡上運行的服務器,如Web、FTP等,能夠被外部網(wǎng)絡的機器訪問。

          根據(jù)應用需求,制定相應的NAT規(guī)則。對于各種NAT應用,需要使用IPTables程序來設定相應的控制規(guī)則。例如,實現(xiàn)應用中的IP偽裝功能,在控制臺中運行下列命令:

          $ echo 1 > /proc/sys/net/ipv4/ip_forward

          $ iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

          第一行指令是用來開啟操作系統(tǒng)的IP轉發(fā)功能,如為方便開機自動執(zhí)行也可以將命令編輯為文件firewall,然后編輯/etc/rc.d/rc.local文件,,在末尾加上/etc/rc.d/firewall以確保開機時能自動執(zhí)行該腳本。第二條命令則是設置所有通過ppp0設備(撥號后生成的網(wǎng)絡設備)發(fā)出的數(shù)據(jù)報的源地址都使用ppp0的IP地址。這樣,與GPRS/CDMA數(shù)據(jù)相連的局域網(wǎng)內(nèi)的計算機只需要將網(wǎng)絡連接的默認網(wǎng)關和DNS服務器設置成GPRS數(shù)據(jù)終端的IP地址就可以訪問Internet。

          而對于NAT的端口轉發(fā)功能,如假定GPRS數(shù)據(jù)終端的內(nèi)部IP為192.168.0.1,通過撥號上網(wǎng)得到的IP為202.96.128.168,運行Web服務器的計算機節(jié)點的IP為192.168.0.100,監(jiān)聽常用的80端口。那么需要在GPRS/CDMA數(shù)據(jù)終端上進行端口注冊,假定將該服務注冊為GPRS數(shù)據(jù)終端上的TCP 8080端口。則運行命令:

          $ iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 8080 -j DNAT --to 192.168.0.100:80

          完成端口注冊并開啟IP轉發(fā)功能后,外部用戶通過訪問http://202.96.128.168:8080就可以訪問到內(nèi)部的Web服務器了,但在一般的實際應用中都是將上述Shell命令和NAT規(guī)則編寫為一個可執(zhí)行的腳本文件,由系統(tǒng)啟動后自動調(diào)用執(zhí)行。

          3.2 轉換網(wǎng)關程序

          在傳統(tǒng)的工業(yè)控制領域,有成千上萬的感應器,PLC,控制器,監(jiān)測器,讀卡器等RS-232/485/422串口設備,都是通過RS-232串口通信或者RS-485/42總線通信與PC進行數(shù)據(jù)通信,隨著社會需求的發(fā)展,從而要求更大的系統(tǒng),更加穩(wěn)定的系統(tǒng),更大的數(shù)據(jù)流量的系統(tǒng)。使得現(xiàn)有的RS-232串口通信,RS-485/422總線通信不能滿足社會的需求。需要一種簡單、經(jīng)濟的方式,能將這些傳統(tǒng)設備接入主流網(wǎng)絡,同時不需要對這些設備的結構進行改變。當將GPRS/CDMA無線數(shù)據(jù)終端應用于這種需求時,就必須在它上面實現(xiàn)串行通信轉網(wǎng)絡(TCP/IP)通信功能。

          轉換網(wǎng)關程序實際上就是在GPRS/CDMA無線數(shù)據(jù)終端完成串行通信轉網(wǎng)絡(TCP/IP)通信功能模塊,能夠將串行通信數(shù)據(jù)以TCP/IP包的形式發(fā)出,而將收到的TCP/IP數(shù)據(jù)包用串行通信的方式傳輸,完成相互間的透明轉換。在許多應用中,需要通過無線終端與Internet網(wǎng)絡上服務器進行網(wǎng)絡通信。轉換的實現(xiàn)方法如下:

          ⑴ 通過配置文件或者命令行參數(shù)的方式得到所需的各種配置參數(shù),包括串口設置參數(shù),如波特率、數(shù)據(jù)位、停止位、奇偶校驗、流控等,以及網(wǎng)絡通信的設置參數(shù),如網(wǎng)絡通信協(xié)議、服務端口等等;

          ⑵ 根據(jù)串口設置參數(shù)進行相應的系統(tǒng)串口設置;

          ⑶ 根據(jù)網(wǎng)絡通信設置,建立Socket,如果網(wǎng)絡通信采用的是TCP協(xié)議,還需要預先建立網(wǎng)絡連接。

          ⑷ 使用Linux的select機制,不斷檢查Socket和串口是否可以發(fā)送和接收。程序必須同時維持兩個緩存區(qū),一個是Socket數(shù)據(jù)緩存,另一個是串口數(shù)據(jù)緩存。如果Socket有數(shù)據(jù)獲得就放入串口數(shù)據(jù)緩存中,串口有數(shù)據(jù)獲得就放入Socket數(shù)據(jù)緩存。如果Socket或串口可以發(fā)送,就將相應的緩存數(shù)據(jù)發(fā)送出去。

          編寫完成上述程序運行后,無線數(shù)據(jù)終端便充當了串行通信設備與以太網(wǎng)之間的通信轉換器的角色,實現(xiàn)了兩者間的信息交互。

          4.結束語

          本文在ARM9的嵌入式Linux平臺上,詳細介紹了基于AT91RM9200的無線數(shù)據(jù)終端的實現(xiàn),利用嵌入式Linux系統(tǒng)下的網(wǎng)絡通信設計, 通過對Linux的內(nèi)核進行了修改和重新編譯后,增加了相應的PPP和NAT功能,憑借ARM9的良好性能,以及Linux在嵌入式系統(tǒng)和網(wǎng)絡通信上的優(yōu)勢,編寫實現(xiàn)串行通信轉網(wǎng)絡的轉換網(wǎng)關程序。本系統(tǒng)的設計在其他嵌入式設備上的無線應用方面有一定的應用價值和指導意義。本文作者創(chuàng)新點充分利用了ARM豐富的硬件資源簡化了系統(tǒng)結構,并通過對嵌入式Linux系統(tǒng)核心編譯增加對NAT和PPP的支持,同時移植成熟的IPTables和PPP應用程序,實現(xiàn)應用系統(tǒng)的結構簡化,實現(xiàn)簡單,功能實用。


          作者簡介:張宗平(1977-),男, 廣東南雄人,廣東出入境檢驗檢疫局信息中心工程師。主要研究方向為:DSS系統(tǒng)相關及OLTP業(yè)務系統(tǒng)建設、維護,嵌入式系統(tǒng)應用技術等。

          Biography: ZHANG,Zongping,(1977-),Male,Nanxiong guangdong,The engineer of Computer Information Center,Guangdong Entry/Exit Inspection and Quarantine Bureau of the P.R.China.His research interest include DSS,The establishment and maintenance of OLTP,The Application of Embedded System Technology .

          cdma相關文章:cdma原理




          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();