本文討論的就是利用CDMA業務傳送GPS定位信息的實例。當然,GPS定位信息只是整個信息傳輸管理系統的一個應用,通過更換不同的數據源模塊可實現不同的信息傳輸,從而構成不同的信息傳輸管理系統,如遠程抄表系統、水文數據采集系統等等。
1 系統構成
如圖1所示,整個信息傳輸管理系統由移動終端、CDMA網絡、Internet網、信息管理中心服務器組成。
移動終端將GPS數據組成CDMA數據分組,通過CDMA網絡和Internet網,上傳到信息管理中心服務器。服務器應當具備IP地址和電子地圖。
信息管理中心也可以通過Internet網和CDMA網絡向移動終端發出各種指令。
圖1基于CDMA的無線移動數據傳輸系統
2 移動終端硬件組成
移動終端的硬件部分主要有CDMA Modem模塊、GPS模塊、MCU及電源四部分,連接關系如圖2所示。
圖2 移動終端硬件組成
其中的CDMA模塊為Wavcom公司的ME45。這是一個具有完整功能的CDMA移動通信模塊,通過串口可以實現對此模塊的控制和數據傳輸,包括短信和無線上網等。另外加上模擬部分電路,可實現話音通信功能。對ME45的控制用的是AT命令方式。
GPS模塊是***Holux公司的GM82 OEM板。它通過外接天線接收GPS信號,計算出所處位置的地理信息,通過串口將此信息傳送給MCU。
MCU采用新華龍公司代理的C8051F020八位微控制器。選擇此MCU是基于諸多考慮的:首先,是功能強大,幾乎在單片中包容了所有常用的功能;其次,與普通的8051有相同的內核,開發容易,而且支持C語言源程序調試。
在此移動終端中,采用了如下一些必需的功能部件:
首先是它的兩個硬件串口。這兩個串口的波特率產生是獨立的,而且不占用芯片的定時器,使用起來相當靈活。這兩個串口分別對GPS模塊和CDMA模塊通信。GPS模塊把位置信息以固定的格式從串口發出,MCU接收GPS模塊送來的數據,解析出其中有用的數據進行封裝,然后以規定的格式通過第2個串口交給CDMA模塊,將數據送上Internet網。
其次,128字節的Flash可用于存放一些可設置的參數,如移動終端的識別號或IP地址、信息管理中心服務器的IP地址等。
再次,4 KB的SRAM相對其他的8位機來講是相當大了,可以滿足組幀、數據緩沖的要求。
64 KB的Flash可以滿足較大程序量的要求。
64 KB的Flash和4 KB RAM的組合可以完成對信息數據的加解密工作,可提供某些特定場合使用。
引出了某些I/O口,通過光電耦合器隔離后引至其他監測點,可以擴展相應的功能。
另外,留出了總線擴展口,可擴展64 KB的SRAM,一方面可以用于嵌入實時操作系統,另一方面可以用于使用C8051F020的在線自我編程功能來遠程更新程序。
由于用于移動設備,需要低功耗器件,而C8051F020工作電壓為3.3 V,功耗很小。
設計時考慮該移動終端主要作為車載應用,所以實際電路中設計了從點煙器取電的電源電路。
移動終端利用C8051F020芯片控制實現,不用另行擴展串口、ROM以及RAM。此硬件結構并不僅僅局限在定位功能上,對于很多數據采集/控制應用也可以滿足要求,只需改變程序結構。正是由于C8051F020的功能強大,使得硬件的組成和結構都變得非常簡單。
3 移動終端軟件設計
由于采用了C8051F020作控制器,使得硬件的工作相對簡單和通用,所以該系統實現的主要工作集中在軟件的實現上。
利用GPRS上網主要的問題是,在系統接入無線Internet網時進行初始化和對鏈路的控制。若對通信過程和協議不熟悉,則做起來很麻煩;現在已有許多MCU或GPRS Modem已將這些功能嵌入到操作系統中。對CDMA上網,則比較簡單,通過撥通服務商的特定號碼即可。
利用CDMA模塊進行數據傳輸,既可以采用上網傳輸,也可以采用短消息的方法。下面就短消息方式的數據傳輸軟件流程作一介紹。
對于數據源,GPS模塊不斷發送固定格式的串行數據,MCU利用一串口與之相連。一般MCU對串口數據的接收處理方式有查詢和中斷兩種。這里采用的方法既不是查詢也不是中斷,而是命令的方式,MCU根據接收到的不同命令,執行不同的功能。移動終端的軟件流程如圖3所示。
圖3 移動終端軟件流程
(1) MCU的初始化
單片機的初始化很重要,它關系到程序能否正確運行。這里主要功能是分配串口引腳,設置系統時鐘,確定波特率。
這里需要重點注意的問題是MCU的初始化。C8051 MCU硬件資源相當豐富,但有一些不是能同時使用的,需要在初始化時進行設定,所以它的交叉開關譯碼表的正確使用非常重要。資料中提供的優先權交叉開關分配是有區別的,關鍵看XBR2特殊功能寄存器中的EMIFLE位的值。串口分配時只用到4個引腳,沒有用到外部存儲器,所以 P0.7、P0.6、P0.5 的功能由交叉開關或端口鎖存器決定,而且EMIFLE的值為“0”,這樣可以保證串口分配不出現錯位。
(2) 刪除短消息子程序
刪除短消息子程序的作用是清空SIM卡里存入的所有讀過的短消息,但未讀取的短消息不會刪除,使每個新來的短消息的標號都為“0”。
(3) 讀短消息子程序
讀短消息子程序的作用是讀取新消息并將短信的內容存儲在內部RAM中,為程序的跳轉提供判斷的依據。例如,如果短信的內容是“###13520479697*”,表示設定短消息發送號碼;如果需要查詢車輛狀況,MCU就會向卡號為“13520479697”的用戶發定位信號。
指令“AT+CMGR=0”表示讀取SIM卡里的標號為0的短信。先把該指令轉換為ASCII碼,然后再串行發送出去。CDMA模塊就會執行相應的命令,并將短信內容通過串行口傳遞給單片機。單片機的串口0的接收標志位RI置位,表示接收到一個完整的字符,可以從串口寄存器中取走內容。該標志位不能自動清零,需要軟件復位,然后進行下一個字節的接收。
短信的內容是有長度的,通過設定短信內容的最后一個字符是否為“*”號來決定接收停止位。接收時,判斷串口寄存器。如果接收到的字符為“*”,表示停止接收,則后面接收的信息無效,將SBUF0的內容存入RAM區。
(4) 短消息命令的執行
通過刪除舊短信,讀新短信,存儲新短信的內容,MCU對存入內容檢索、判斷是什么功能命令,然后跳轉到相應的功能程序入口,實現用戶所要求的服務。
這里舉兩個命令說明:如“###13520479697*”和“PLACE*”。
接收到第1個命令時,先檢測“###”,如果符合,則表示后面的數據是要存入Flash中的卡號,需要掉電保存的內容,將其存入128B的非易失性存儲扇區中。掉電后,該號碼不會丟失。如有語音命令和查詢定位信息的命令時,都會呼叫這個存入Flash中的號碼。
第2個命令表示接收定位信息。它是以第1個命令為基礎的,只有第1個命令執行后,存有了卡號,才能將定位信息發送出去。當單片機檢測到新短信的內容為“PLACE*”時,啟動定時器4,通過串口1,接收GPS定位信號。這時,接收的信號還不是發到信息中心,要通過對導航電文的檢索、提取,最后將有用的時間、經度、緯度信息發送給設定的號碼。
兩個不同命令短信的執行,功能子程序是分開的,但前端的判斷跳轉程序是關聯的,所以將兩個程序合在一起討論。該程序包含對兩個串口同時操作,先讀新消息。如果內容有“PLACE*”,則進入定位信號的提取。判斷是否有“###”,有則進入存儲號碼的功能。
當檢測到“PLACE*”時,首先啟動定時器4,接收串口1的定位信息。由于GPS信號的定位信息里有些是用不到的,所以接收的信息要加以判斷。如果數據頭是“$GPRMC”,才開始接收。接收以A開頭,E結尾。存放在0800開始的地址空間中,最后把這些內容整合到0900開始的地址空間內,串行發送給CDMA模塊,這樣就完成了定位信息以短消息發送的目的。
如果需要更強大的網絡功能支持,可以嵌入RTOS內核。現在有不少操作系統支持C8051F MCU。
結語
隨著科學技術的發展,在工業、商業和軍事領域中實時信息傳送的應用越來越廣泛,需求量與日俱增。CDMA業務的推出,更加推動了這一方向的迅猛發展,無線移動數據傳輸技術的應用有著越來越廣闊的前景。
評論
查看更多