《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM9的無線數據終端的設計與實現
基于ARM9的無線數據終端的設計與實現
EEworld
摘要: 無線數據終端系統以“高性能嵌入式微處理器+GPRS/CDMA模塊” 的系統架構取代了傳統的無線數據終端設計方案,此方案雖然硬件成本稍高,需要高性能嵌入式微處理器來支持嵌入式操作系統,但可以實現豐富協議接口,便于移植和向高端系統應用升級,同時更加便于數據采集與遠程監控的實現。這樣不僅可以利用ARM芯片豐富的片內、片外資源簡化系統硬件結構,更為方便的是,可以通過運行嵌入式操作系統來實現豐富協議接口,減小實際應用的開發難度且便于向高端系統應用升級。
Abstract:
Key words :

  0.引 言

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

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

  1.硬件結構

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

基于ARM9的無線數據終端的設計與實現

  圖1 無線數據終端的總體硬件結構圖

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

  目前成熟的無線網絡技術中,主要有GPRS和CDMA兩種技術,系統設計時可以針對不同的應用地區電信運營商的網絡覆蓋情況選擇GPRS或CDMA模塊實現無線網絡的連接。其中,GPRS模塊我們采用的是目前比較流行而且最易購買的西門子公司的MC39i模塊(GPRS),CDMA模塊我們采用WAVECOM的Q2358C模塊(CDMA)。MC39i采用GPRS分時復用的Class 8 的標準,支持EGSM900和GSM1800雙頻,它具有TC35的全部功能并且很容易集成。該GPRS模塊接收速率可以達到86.20kbps,發送速率可以達到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系統的對應接口連接即可。

  2.軟件平臺

  2.1 構建可移植嵌入式Linux系統

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

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

  2.2 ARM-Linux" title="ARM-Linux">ARM-Linux內核功能設計

  GPRS/CDMA的網絡連接是無線數據終端的基礎功能,它是通過PPP(點對點協定)協議來完成的。PPP是在串行連接的數據鏈路實現IP以及其他網絡協議的一種機制。同時為節省成本,無線數據終端常常是作為一個無線路由網關來使用,即內部局域網計算機能夠通過它透明訪問Internet。嵌入式Linux的網絡體系結構繼承了Linux網絡系統具有穩定、高效和功能齊全的優點,同時按照應用的需要進行了適當的移植和配置就能滿足要求,在完成相關內核修改后,需要重新編譯內核。

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

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

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

  (4)編寫聯網撥號腳本文件,調試GPRS/CDMA聯網, 完成系統利用成熟GPRS/CDMA技術的網絡連接。

  3.系統實現

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

  3.1 NAT配置

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

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

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

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

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

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

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

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

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

  3.2 轉換網關程序

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

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

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

  ⑵ 根據串口設置參數進行相應的系統串口設置;

  ⑶ 根據網絡通信設置,建立Socket,如果網絡通信采用的是TCP協議,還需要預先建立網絡連接。

 

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

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

  4.結束語

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

 

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久久国产网 | 国产高清自偷自在线观看 | 欧美日b视频 | 婷婷丁香花五月天 | 91精品久久久久久久99蜜桃 | 欧美老女人bb | 黄色男人的天堂 | 婷丁六月 | 欧美五月婷婷 | 五月天网站最新的网址 | 视色4se影院在线播放 | 久久精品看片 | 亚洲国产午夜精品乱码 | 国产一区二区视频在线观看 | 成人综合久久综合 | 国产99在线播放免费 | 91精品国产综合久久久久久 | 成年黄网站色视频免费观看 | 成人黄色小视频在线观看 | 九九九精品视频 | 八小时比赛视频完整小时 | 善良的嫂子3在线播放 | 国产成人精品一区二区不卡 | 欧美日韩国产中文字幕 | 成人看毛片 | 四虎影视4hutv最新地址在线 | 黄视频免费 | 第四色在线视频 | 伊人免费视频 | 欧美aⅴ| 欧美日韩亚洲m码色帝国 | 999久久狠狠免费精品 | 免费激情网址 | 精品欧美一区二区三区在线观看 | 五月婷婷视频在线观看 | 97在线观看免费 | 免费一级片观看 | 亚洲成人77777| 国内精品久久久久久中文字幕 | 久久亚洲不卡一区二区 | 国产片欧美片亚洲片久久综合 |