基于嵌入式無(wú)線CPU短信通信終端系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1. 引言
當(dāng)前單片機(jī)和PC 機(jī)通過(guò)串行接口構(gòu)成的多微機(jī)系統(tǒng)已經(jīng)廣泛應(yīng)用于工業(yè)控制、環(huán)境監(jiān)測(cè)等場(chǎng)合,這些系統(tǒng)大多采用RS - 232、RS - 485 或是有線modem的通信方式, 雖然很經(jīng)濟(jì)適用, 但是有線數(shù)據(jù)傳輸方式很大程度上限制了其使用的場(chǎng)合, 使得架設(shè)通信線路比較困難的地區(qū)無(wú)法應(yīng)用。針對(duì)這種情況, 本文利用支持語(yǔ)音、短消息SMS ( ShortM es.sage Service)、數(shù)據(jù)通信、傳真等業(yè)務(wù)的嵌入式無(wú)線CPU, 結(jié)合已有的單片機(jī)系統(tǒng)通過(guò)RS- 232接口連接嵌入式無(wú)線CPU, 從而利用GSM網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)的無(wú)線傳輸。嵌入式無(wú)線CPU 在短信息方面的應(yīng)用具有永遠(yuǎn)在線、不需撥號(hào)、價(jià)格便宜、覆蓋范圍廣等特點(diǎn), 特別適用于需頻繁傳送小流量數(shù)據(jù)的應(yīng)用, 實(shí)現(xiàn)無(wú)線數(shù)據(jù)的雙向傳送。對(duì)軟件和硬件加以改動(dòng)還可以實(shí)現(xiàn)數(shù)據(jù)采集系統(tǒng)、GPS /GSM ( SMS)移動(dòng)車(chē)輛監(jiān)控定位系統(tǒng)、移動(dòng)POS機(jī)、移動(dòng)收費(fèi)系統(tǒng)、移動(dòng)性數(shù)據(jù)和Internet接入、機(jī)房監(jiān)控、遠(yuǎn)程維護(hù)系統(tǒng)、移動(dòng)性數(shù)據(jù)查詢(xún)證券交易和信息查詢(xún)系統(tǒng)、無(wú)線遠(yuǎn)程檢測(cè)和控制等。
2. 系統(tǒng)硬件設(shè)計(jì)
本設(shè)計(jì)選用的是西門(mén)子TC35i嵌入式無(wú)線CPU。TC35i是西門(mén)子為適應(yīng)各個(gè)專(zhuān)業(yè)領(lǐng)域?qū)o(wú)線數(shù)據(jù)傳輸、語(yǔ)音傳輸及可開(kāi)發(fā)性的需求推出的基于GSM 900移動(dòng)通信網(wǎng)絡(luò)系統(tǒng)的OEM 模塊, TC35 i與GSM 2 /2+ 兼容、雙頻( GSM900 /GSM1800) , RS232數(shù)據(jù)口、符合ETS I標(biāo)準(zhǔn)GSM07. 07和GSM07. 05 、提供標(biāo)準(zhǔn)的AT 命令接口。MCU 采用CygnalC8051F020單片機(jī)。
基于TC35i嵌入式無(wú)線CPU 應(yīng)用系統(tǒng)硬件的設(shè)計(jì)包括TC35 i的IGT電路、穩(wěn)壓電源電路、SYNC /S IM 卡指示燈電路、C8051F020 與TC35 i相連的串行口電路、C8051F020與PC 機(jī)的串行接口等幾部分的設(shè)計(jì), 應(yīng)用系統(tǒng)硬件框圖如圖1 所示。其中TC35 i的IGT電路和C8051F020與PC 機(jī)的串行接口電路的設(shè)計(jì)需特別注意。
圖1. 應(yīng)用系統(tǒng)硬件框圖
2. 1. TC35 i的IGT電路的設(shè)計(jì)
對(duì)于TC35 i模塊的控制, IGT 信號(hào)非常的重要,只有正確的IGT信號(hào)才可以使TC35 i模塊正常的運(yùn)行, 模塊工作時(shí)序如圖2所示。
圖2. TC35 i模塊工作時(shí)序
啟動(dòng)電路由開(kāi)漏極三極管和上電復(fù)位電路組成。模塊上電10m s后(電壓須大于3V ) , 為保證整個(gè)系統(tǒng)正常啟動(dòng), 要求在電源加電時(shí)GT 必須在保持大于100毫秒的低電平后再階躍到高電平。在電路板中是依靠RC電路來(lái)完成的且該信號(hào)下降沿時(shí)間小于lms。啟動(dòng)后15腳的信號(hào)應(yīng)保持高電平。電源通電后, + 5V電源通過(guò)電阻R 對(duì)C 充電, 使電容正極上的電壓慢慢上升, 大約經(jīng)過(guò)100ms達(dá)到高電位使施密特觸發(fā)器翻轉(zhuǎn)、使系統(tǒng)被復(fù)位。電路設(shè)計(jì)如圖3所示。
圖3. TC35i的IGT電路
2. 2. C8051F020與PC 機(jī)的串口電路的設(shè)計(jì)
串行接口E IA - RS- 232C 標(biāo)準(zhǔn)對(duì)電器特性、邏輯電平和各種信號(hào)線功能都作了規(guī)定, RS- 232- C采用負(fù)邏輯規(guī)定邏輯電平。RS- 232C 不能和單片機(jī)的TTL電平( TTL 以高低電平表示邏輯狀態(tài))直接相連, 否則將使TTL 電路燒壞。本設(shè)計(jì)中C8051F020與PC 機(jī)的串行接口數(shù)據(jù)通信電路以SP3223E 芯片為核心, 實(shí)現(xiàn)電平轉(zhuǎn)換及串口通信功能。SP3223E 芯片供電電壓為3~ 5. 5V , 符合TIA /E IA - 232- F和ITUV. 28 /V. 24 標(biāo)準(zhǔn)。兼容5V 邏輯輸入, 內(nèi)含2路接收、2路發(fā)送串行通信接口, 數(shù)據(jù)傳輸速率可達(dá)240 kbit/ s。具有低功耗、高數(shù)據(jù)速率、增強(qiáng)型ESD保護(hù)等特性。增強(qiáng)型ESD結(jié)構(gòu)為所有發(fā)送器輸出和接收器輸入提供保護(hù), 可承受?
15kV IEC 1000- 4- 2氣隙放電、? 8kV IEC 1000-4- 2接觸放電和? 15kV 人體放電模式。芯片的最大特點(diǎn)是, 在串行口無(wú)數(shù)據(jù)輸入的情況下, 可以靈活的進(jìn)行電源管理, 即當(dāng)ONLINE 為低電平、SHUT.
DOWN 為高電平時(shí), ON - LINE 功能有效。在正常運(yùn)行模式下, 若芯片在接收引腳沒(méi)有檢測(cè)到有效信號(hào), 將自動(dòng)進(jìn)入SHUTDOWN 模式, 此時(shí)耗電luA。
在ON - LINE 功能有效時(shí), 如果檢測(cè)到接收或發(fā)送引腳有信號(hào)輸入, 該芯片自動(dòng)被激活, 轉(zhuǎn)入正常工作狀態(tài)。電路設(shè)計(jì)如圖4所示。
圖4. C8051F020與PC 機(jī)的串口電路
3. 系統(tǒng)軟件設(shè)計(jì)
軟件的編寫(xiě)分為底層驅(qū)動(dòng)程序和應(yīng)用層程序。
為了方便軟件編程, 需要針對(duì)硬件編寫(xiě)一些底層驅(qū)動(dòng)程序。首先是串行口的驅(qū)動(dòng)函數(shù): 打開(kāi)串口( OpenComm )、關(guān)閉串口( C loseComm )、讀串口數(shù)據(jù)( fteADComm)、寫(xiě)串口數(shù)據(jù)(W riteComm) 等, 本系統(tǒng)中通過(guò)控件MSCCOMM 來(lái)完成。然后在這些串口函數(shù)的基礎(chǔ)上編寫(xiě)TC35i的驅(qū)動(dòng)函數(shù)。單片機(jī)通過(guò)串行口控制TC35i,控制方法采用標(biāo)準(zhǔn)的AT 命令集。在進(jìn)行短消息的發(fā)送時(shí), 還要對(duì)用戶(hù)數(shù)據(jù)按PDU 格式進(jìn)行編碼, 函數(shù)分別為Encode和Decode,在此基礎(chǔ)之上再編寫(xiě)應(yīng)用層程序。這些底層的驅(qū)動(dòng)函數(shù)將會(huì)使上層協(xié)議的編寫(xiě)很方便, 更重要的是, 它提供了一個(gè)硬件抽象層。當(dāng)?shù)讓佑布膭?dòng)時(shí), 只需要對(duì)底層的驅(qū)動(dòng)函數(shù)改動(dòng), 而上層函數(shù)的代碼不變。
軟件層次結(jié)構(gòu)如圖5所示。
圖5. 軟件層次結(jié)構(gòu)圖
[page]
3. 1. 上位機(jī)軟件設(shè)計(jì)
上位機(jī)軟件是一個(gè)短信息通信的管理器, 運(yùn)行在PC機(jī)上, 通過(guò)串口與單片機(jī)和TC35 i通信。上位機(jī)軟件由RS - 232串口參數(shù)設(shè)置、接收信息、發(fā)送信息、歷史記錄、發(fā)送命令等部分組成。上位機(jī)軟件用戶(hù)界面如圖6所示。[!--empirenews.page--]
圖6. 上位機(jī)軟件用戶(hù)界面
( 1) 發(fā)送短信息程序流程。
對(duì)于SIM 卡中的短信息, 可以顯示其編號(hào)、類(lèi)型、發(fā)送者號(hào)碼、信息正文和發(fā)送時(shí)間, 當(dāng)發(fā)送短信息時(shí)應(yīng)該先設(shè)置并檢查串口是否打開(kāi)和TC35 i模塊是否正確連接, 還要判斷目的手機(jī)和短信息中心號(hào)碼位數(shù)是否正確, 之后再發(fā)送AT 命令, 發(fā)送短信息程序流程圖如圖7所示。
圖7. 發(fā)送短信息程序流程圖
( 2) 接收短信息程序流程。
若TC35 i接收到一條短信息, 將會(huì)發(fā)送一個(gè)提示信息, 串口*程序收到此提示信息, 就把短信息的內(nèi)容顯示到文本框中, 短信息內(nèi)容包括接收時(shí)間、發(fā)送時(shí)間、發(fā)送手機(jī)號(hào)、短信息正文。接收短信息程序流程圖如圖8所示。
圖8. 接收短信息程序流程圖
3. 2. 下位機(jī)軟件設(shè)計(jì)
下位機(jī)采用C ygna l公司的C8051F020單片機(jī),它具有2 個(gè)串口UART0 和UART1, 設(shè)計(jì)時(shí)UART0連接PC 上位機(jī)(接收端)或數(shù)據(jù)采集系統(tǒng)(發(fā)送端) , UART1連接TC35 i模塊, 兩個(gè)串口都是雙向通道, 這樣單片機(jī)既可以控制TC35 i發(fā)送數(shù)據(jù), 又可通過(guò)TC35 i接收數(shù)據(jù), 數(shù)據(jù)傳輸流向如圖9所示。
圖9. 單片機(jī)數(shù)據(jù)傳輸流向圖
由于UART0的中斷優(yōu)先級(jí)比UART1要高得多, 如果用查詢(xún)的方式先處理UART0的請(qǐng)求, 再處理UART1的請(qǐng)求, 比中斷方式更有效率, 并且程序設(shè)計(jì)更為簡(jiǎn)單, 故本系統(tǒng)在單片機(jī)串口程序設(shè)計(jì)中采用了查詢(xún)方式。下位機(jī)軟件程序流程圖如圖10所示。
圖10. 下位機(jī)軟件程序流程圖
4. 結(jié)束語(yǔ)
本文圍繞基于嵌入式無(wú)線CPU 短信息通信終端設(shè)計(jì)這一熱點(diǎn)課題, 闡述了相應(yīng)的GSM 無(wú)線終端的設(shè)計(jì)方案、開(kāi)發(fā)方法和開(kāi)發(fā)過(guò)程。實(shí)現(xiàn)了能收發(fā)短信的無(wú)線CPU 終端, 完成了IGT啟動(dòng)電路以及單片機(jī)與TC35 i和PC 機(jī)的串行接口等硬件電路的設(shè)計(jì)。采用面向?qū)ο蟮脑O(shè)計(jì)方法完成了上位機(jī)軟件設(shè)計(jì), 在單片機(jī)程序設(shè)計(jì)中, 用C51進(jìn)行編程, 對(duì)兩個(gè)串口的讀寫(xiě)采用輪詢(xún)方式, 由于篇幅有限程序代碼省略, 給出了程序設(shè)計(jì)流程圖。
在本終端平臺(tái)的基礎(chǔ)上, 對(duì)硬件和軟件進(jìn)行適當(dāng)?shù)恼{(diào)整和擴(kuò)充就能設(shè)計(jì)成各種應(yīng)用系統(tǒng)。