隨著嵌入式設備應用的日益廣泛,人們也越來越樂于使用各種人機交互方便的設備。鑒于GSM網絡是相當穩定且已經在生活中普遍應用的通信網絡,本文利用GSM網絡中短消息服務的便利性,提出了一種基于GSM網絡短消息服務的人機交互方式,并開發了相應的手機短信交互平臺,實現了用戶與設備間的遠程、實時人機交互功能。
1 系統硬件設計
本系統利用串口做通信接口,并選用西門子TC35i無線模塊作為核心組件來搭建硬件電路。TC35i主要由基帶處理器、射頻模塊、供電模塊、閃存、ZIF連接器和天線接口等六部分組成。它的正常運行需要相應的外圍電路與其配合。TC35i共有40個引腳,可通過ZIF連接器分別與電源電路、啟動與關機電路、數據通信電路、語音通信電路、SIM卡電路、指示燈電路等相連接。其電源電路又分為充電電池和穩壓電源兩部分,本系統為減小體積,直接采用主板供電方式,并在1~10腳增設了穩壓濾波電路,因而省去了電池和充電電路。
啟動電路由自動和手動上電復位電路組成。模塊上電10 ms后(電壓須大于3 V),為使之正常工作,必須在15腳加時長至少為100 ms的低電平信號,且該信號的下降沿時間應小于1 ms,同時啟動后15腳的信號應保持高電平。本系統可使用跳線選擇模塊啟動方式。其中自啟動方式是指在平臺正常工作之后,由軟件控制平臺自動發出啟動信號,而不需人的干預;而手動方式是指在平臺正常工作之后,人為按下系統的啟動/復位按鍵,模塊才能啟動。
數據通信電路主要完成短消息收發、與平臺通信、以及軟件流控制等功能。TC35i的數據接口采用串行異步收發,符合RS-232接口電路標準,工作在CMOS電平下。數據接口配置為8位數據位、1位停止位、無校驗位,可在300 bps“115kbps的波特率下運行,支持的自動波特率為4.8kbps”115 kbps(14.4 kbos和28.8 kbps除外),同時還支持RTSO/CTSO的硬件握手信號和XON/XOFF的軟件流控制。TC35i作為移動終端。具有3路接收、5路發送的電路連接要求,但考慮到本系統無需蜂窩通信等功能,故為簡化數據通信電路,可采用MAX232CPE芯片來實現電平轉換及串口通信功能(輸入為TXDO,輸出為RXDO)。
TC35i基帶處理器集成有一個標準的SIM卡接口。為擴展外部SIM卡接口,該接口還連接到ZIF連接器。TC35i在GSMll.ll為SIM卡預留5個引腳的基礎上預留了6個引腳,所添加的CCIN引腳可用來檢測是否插有SIM卡;當有SIM卡時,該引腳被置為高電平,模塊可正常工作。但目前SIM卡均無CCIN引腳,故在設計電路時應將CCIN與CCVCC相連。本系統還設計了指示燈電路,當LED熄滅時,表明TC35i處于關閉或睡眠狀態;當LED為600 ms亮/600 ms熄時,表明SIM卡沒有插入或TC35i正在登錄網絡;當LED為75 ms亮/3 s熄時,表明TC35i已登錄網絡,并處于待機狀態。本系統設計了GSM模塊的擴展板,并注意了它的電磁兼容設計,其電路原理框圖如圖1所示。
2 系統軟件設計
本系統主要實現的功能是用戶能以發送短信的方式與平臺進行信息交互。系統采用TC35i實現短信收發,并通過對用戶短信進行解析來查詢平臺嵌入式數據庫中與用戶短信相匹配的信息,同時以短信的形式回復用戶,還可以將短信上傳給服務器管理數據庫,其短信交互流程如圖2所示。
系統首先可通過串口程序向接入TC35i的串口發送AT指令來實現短消息的發送和接收。這部分主要實現Linux下的串口通訊(主板運行Linux系統)。系統編程可采用libserial串口庫,該庫可以很好地控制串口的超時讀寫,它的類名為Seri-alPort,程序中主要用到了類中的Open()、設置各種參數的函數以及超時讀寫的內容。
此后,平臺加入短消息內容的編碼和解碼程序,其主要是實現短信PDU格式的編碼和解碼。目前,發送短消息常用Text和PDU(Protocol DataUnit,協議數據單元)兩種模式。使用Text模式收發短信代碼比較簡單,但其缺點是不能收發中文短信;而PDU模式不僅支持英文短信,也支持中文短信。在處理PDU編碼的程序中,s_PDU類可用于發送PDU編碼,其中void s_PDU∷setUD(char
*s)是重要函數。在處理PDU解碼的程序中,r PDU類用于PDU包的解包,其接口函數僅有一個,即bool r_PDU∷getFrom(char*s),用于PDU包的輸入,輸入后,類的成員OA會保存其中的手機號,UD則保存其中的短消息內容,函數get-From (char *s)是這個類的核心。識別手機號和短信中心號比較容易實現,但識別后面的短信息數據比較復雜,因為其中可能出現好幾種編碼。一般全英文短信的編碼會使用7位編碼,而中文短信會使用UCS16編碼,所以編碼時需要考慮兩種可能。
系統將短消息的收發用定義來實現封裝,其中含有用于執行AT指令的函數int exec(char*cmd)。收短信實際上就是寫AT指令、讀結果及PDU解碼的過程;而發短信則是寫AT指令、讀結果及PDU編碼的過程。本系統采用查詢讀寫的方式來實現短信的自動收發。系統的部分讀寫代碼如下:
3 結束語
本文給出了一種基于GSM網絡短消息服務的人機交互平臺的設計和實現方案,該方案可使用戶能方便地實現遠程實時地與平臺交互信息。該平臺經測試,性能穩定,便于在嵌入式設備中應用,而且效果良好。
責任編輯:gt
-
處理器
+關注
關注
68文章
19160瀏覽量
229115 -
射頻
+關注
關注
104文章
5550瀏覽量
167550 -
無線
+關注
關注
31文章
5430瀏覽量
173074
發布評論請先 登錄
相關推薦
評論