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