本站小編為你精心準備了無線通信下ARM7的思考參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
本文作者:盧靈單位:暨南大學信息技術研究所廣州
GPRS無線通信已經廣泛地應用于現實生活中,一般手機手機上都會帶有一個GPRS模塊,在很多無線通信終端上也都帶有一個GPRS模塊,因此,GPRS無線通信是具有很大的市場應用前景的。本文采用arm7處理器為GPRS模塊的控制器,深入地分析了GPRS模塊的驅動和通信協議,給出了一個從硬件實現到軟件驅動的整體方案,最終用Visu-alC++制作了一個上位機的GPRS測試界面,實現了GPRS無線通信的整個流程,整個方案切實可行。
1GPRS模塊的介紹
1.1GPRS模塊與ARM7的硬件連接如圖1所示,GPRS模塊主要是通過串口實現與CPU處理器進行數據通信和傳輸,GTM900實現了GPRS通信的模塊化,只需要按照圖1所示,把GPRS模塊與ARM7(LPC2214)控制端口和UART串口進行連接,這樣就可以通過ARM7處理器的串口UART控制驅動GPRS模塊。在圖1中,R22和C12實現GPRS復位電路控制,TXD和RXD分別是UART的發送數據線和接收數據線。
1.2GPRS模塊的啟動
GPRS模塊啟動主要由兩個過程:GPRS模塊的初始化和GPRS模塊聯網。整個GPRS模塊的啟動流程如圖2所示。GTM900是一個字符型驅動控制的模塊,所有的控制命令都是標準的AT命令控制,可以通過ARM的UART發送AT命令控制GPRS模塊的啟動。GPRS模塊的初始化需要檢查GPRS模塊是否正常工作,關閉回顯功能,檢查SIM卡是否正常工作和配置APN參數。首先,檢查GPRS模塊是否能夠正常工作,可以直接通過UART向GPRS模塊發送“AT”字符串,如果正常,GPRS模塊將通過UART返回“OK”字符串到ARM7,一般AT命令正常的返回字符串都是“OK”;然后在發送“ATEO”字符串關閉回顯,發送“AT%TSIM”檢查SIM卡是否正常工作,發送“AT+CGDCONT=1,”IP”,”CMNET””配置ARN參數,這里只能選用IP協議通信。這樣,GPRS模塊的初始化便完成了。
GPRS模塊的聯網需要完成GPRS模塊信號強度的查詢,注冊移動網絡,設置GPRS通信的用戶名和密碼和打開一條TCP/IP連接。首先,通信之前一定要查詢GPRS信號強度,信號強度良好才能正常通信,只需要發送“AT+CSQ”就可以查詢GPRS信號強度,然后再發送“AT+CGREG?”查詢網絡注冊情況,發送“AT%ETCPIP=”USER”,”GPRS””設置USER用戶名和GPRS密碼,最后,發送“AT%IPOPEN=”TCP”,”DESTIP”,”DESTPORT””設置為TCP/IP通信方式和設置TCP/IP連接對象的IP地址和端口號。這樣,GPRS模塊網絡連接也完成了,可以開始TCP/IP數據傳輸了。
2GPRS的TCP/IP數據包格式
GPRS的TCP/IP數據包有固定的格式,在GPRS啟動之后,用戶必須按照GPRS的TCP/IP數據包有固定的格式發送和解析數據包。GPRS在TCP/IP通信時發送數據幀格式為:“AT%IPSEND=”DATA””,其中,“AT%IPSEND=”是啟動TCP/IP發送命令字符串,雙引號里面的DATA是用戶發送的數據,當ARM7向GPRS模塊發送一個GPRS發送數據包之后,在GPRS指向的目的IP地址接收端便可以接收到這幀IP數據包,GPRS接收端接收IP數據包格式為:“%IPDATA:<LEN>,”DATA””,其中,“%IPDATA:”為接收數據幀包頭,LEN為接收到用戶發送過來的字節數,一共占用兩個字節,DATA是用戶發送過來的數據。
3系統設計及流程圖
整個系統設計流程如圖3所示。首先,初始化LPC2214處理器,一般需要初始化中斷,定時器,UART存儲器啟動引導映射模式等;然后,完成GPRS啟動,整個啟動流程如圖2所示。在ARM7處理器和GPRS模塊初始化成功之后,便可以開始GPRSIP數據包的發送和接收。開啟UART中斷,準備GPRSIP數據包的發送和接收,同時,必須每隔一段時間查詢GPRS信號強度,保證GPRS信號強度好的情況下通信,如果信號不好,需要重新啟動GPRS模塊。這里GPRS模塊作為客戶端,時刻準備連接服務器。當服務器向GPRS模塊發送數據時,GPRS模塊便會產生一個UART接收中斷,這里將接收到的數據發送回服務器,所以,在接收到GPRSIP數據包之后,解析出用戶數據,并打包成發送IP數據包,開啟UART發送中斷,將發送IP數據包發送到GPRS模塊,由GPRS模塊通過TCP/IP無線網絡發送到服務器,最后,由服務器解析數據并顯示通信結果。
4仿真結果與分析
GPRS通信仿真測試如圖4所示。這是一個用VisualC++制作的上位機界面,可以用來偵聽GPRS客戶端連接,連接成功之后,可以傳輸IP數據包。首先,在服務器IP地址處填寫本機IP地址,在端口處填寫服務器IP地址綁定的端口號,點擊“監聽”,監聽客戶端連接,如果監聽成功,顯示“幀聽GPRS客戶端成功”信號,然后,服務器可以在發送區填寫需要發送的數據字符串,GPRS客戶端接收到該字符串之后,將該字符串發送返回至服務器,并在服務器端顯示出來。需要指出的是,GPRS在發送和接收數據的時候,都會將字符數據轉換成ASCII碼,因此,上位機再接收到數據之后,首先需要將ASCII碼轉換成字符數組charbuffer[],然后再將字符數組charbuffer[]轉換成字符串顯示,而在GPRS客戶端,同樣需要將ASCII碼轉換成字符數組charbuffer[]處理。圖4顯示的仿真界面已經經過ASCII碼和字符之間的處理,并最后用字符串類型顯示出來,結果正確。
5結語
針對GPRS無線通信問題,提出了一個從硬件設計到軟件控制的整體方案。該方案詳細分析了GPRS通信協議和GPRS模塊控制AT命令,實現了GPRS的啟動和連接網絡,并用VisualC++制作了GPRS通信的上位機界面。整個設計正確、可靠,具有很好的實用性和市場價值。