帶USB接口的短信收發(fā)最小系統(tǒng)設(shè)計(jì)
1 系統(tǒng)的結(jié)構(gòu)特點(diǎn)和主要器件
本系統(tǒng)主要由短信收發(fā)模塊和兼有監(jiān)控實(shí)現(xiàn)USB接口雙重功能的單片機(jī)組成,即西門子公司的TC35i模塊和Cygnal 公司的C8051F320。系統(tǒng)框圖如圖1所示。本設(shè)計(jì)將TC35i終端與電腦相連 (通過USB接口,TC35i終端支持GSMU AT指令集),就可以通過自行編制的短信息收發(fā)軟件,利用PC的超級(jí)終端功能實(shí)現(xiàn)短信息收發(fā)。該系統(tǒng)可實(shí)現(xiàn)中英文點(diǎn)對(duì)點(diǎn)的雙向收發(fā),一次最多可以發(fā)送70個(gè)中文字符和160個(gè)英文字符。一旦消息被發(fā)送,那么發(fā)送人就會(huì)得到發(fā)送成功的通知。它還可以實(shí)現(xiàn)一次性群發(fā),最多可以發(fā)給10個(gè)用戶,并且有電話簿功能。該終端具有隨機(jī)收發(fā),實(shí)時(shí)接收,立即回復(fù),成本低等特性。
圖1 系統(tǒng)框圖
1.1 TC35i模塊的介紹
目前,國(guó)內(nèi)常用的GSM模塊有Waecome的WMO2、愛立信的DM10/DM20系列、中興的ZXGM18系列和西門子公司的TC35i,這些模塊各有所長(zhǎng)。其中西門子公司的TC35i系列模塊性價(jià)比高,并且已經(jīng)有國(guó)內(nèi)的無(wú)線電設(shè)備入網(wǎng)證。本設(shè)計(jì)就是選用西門子公司的TC35i。
TC35i 是一個(gè)支持中文短信息的工業(yè)級(jí)GSM 模塊,工作在EGSM900 和GSM1800 雙頻段,電源范圍為3.3~5.5 V ,可傳輸語(yǔ)音和數(shù)據(jù)信號(hào), 功耗在EGSM900 (4 類) 和GSM1800 (1 類) 分別為2 W和1 W ,通過接口連接器和天線連接器分別連接SIM卡讀卡器和天線。TC35i 的數(shù)據(jù)接口(CMOS 電平)通過AT 命令可雙向傳輸指令和數(shù)據(jù),可選波特率為300 b/s~115 kb/s , 自動(dòng)波特率為1.2 kb/s~115 kb/s。它支持Text和PDU 格式的SMS (Short Message Service,短消息),可通過AT 命令或關(guān)斷信號(hào)實(shí)現(xiàn)重啟和故障恢復(fù)。TC35i由供電模塊(ASIC)、閃存、ZIF 連接器、天線接口等6部分組成。作為TC35i的核心,基帶處理器主要處理GSM 終端內(nèi)的語(yǔ)音和數(shù)據(jù)信號(hào),并涵蓋了蜂窩射頻設(shè)備中的所有模擬和數(shù)字功能。在不需要額外硬件電路的前提下,可支持FR、HR 和EFR 語(yǔ)音信道編碼。
1.2 C8051F320的介紹
USB的特點(diǎn)是統(tǒng)一了周邊所有裝置的連接口,各種不同的插頭、插座都設(shè)計(jì)為統(tǒng)一規(guī)格,這就解決了哪一個(gè)裝置插頭要接在哪個(gè)連接口的問題。USB總線接口作為外設(shè)的通用接口,有其他接口無(wú)法比擬的優(yōu)勢(shì)。速度性能是USB技術(shù)的突出特點(diǎn),它支持熱插拔,是真正的即插即用設(shè)備,支持雙向、同步傳輸,能保證某些需要連接數(shù)據(jù)流的設(shè)備需要。在進(jìn)行該USB設(shè)備開發(fā)之前,首先要根據(jù)具體使用要求選擇合適的USB控制器。現(xiàn)在市場(chǎng)上供應(yīng)的USB控制器主要有兩種:帶USB接口的單片機(jī)(MCU)或純粹的USB接口芯片。筆者選用Cygnal公司的C8051F320芯片屬于前者。
Cygnal公司的C8051F系列單片機(jī)是集成的混合信號(hào)片上系統(tǒng)SoC。它具有與MCS-51內(nèi)核及指令集完全兼容的微控制器,帶有USB收發(fā)器,完全遵循USB協(xié)議2.0,支持12 Mbps的全速傳輸或1.5 Mbps的低速傳輸,可時(shí)鐘恢復(fù),不需額外的晶振(當(dāng)然根據(jù)設(shè)計(jì)習(xí)慣,也可以采用外部晶振),提供有 8個(gè)端點(diǎn)(endpoint),且每個(gè)端點(diǎn)的傳輸類型、傳輸方向均可自由配置。另外,它還集成有1 KB的USB SRAM和USB收發(fā)器,內(nèi)置的16 KB的Flash存儲(chǔ)器和256 B的內(nèi)部RAM,還可以訪問外部數(shù)據(jù)存儲(chǔ)器RAM,即XRAM。它還可以為固件提供足夠的存儲(chǔ)空間,不需要再擴(kuò)展外部存儲(chǔ)器。更重要的是C8051F320內(nèi)部包含有一個(gè)C2(Cygnal2-Wire)調(diào)試電路,通過2腳的C2接口使用開發(fā)套件,就可以進(jìn)行非侵入式、全速的在系統(tǒng)調(diào)試。另外,這2腳是公用的,它還有其他的功能,這樣設(shè)計(jì)PCB板就相對(duì)簡(jiǎn)單些。
2 硬件系統(tǒng)電路設(shè)計(jì)
本系統(tǒng)采用Cygnal C8051F320作為控制主芯片。Cygnal C8051F為兼容MCS-51內(nèi)核的單片機(jī),內(nèi)置8 KB Flash,擁有256字節(jié)RAM。由于內(nèi)置Flash,因此在電路設(shè)計(jì)上可以省去外接程序存儲(chǔ)器,縮小了PCB板的面積,也提高了整個(gè)系統(tǒng)的可靠性。在這個(gè)GSM系統(tǒng)中,還有一些基本不變或者很少變化的量,比如子機(jī)的編號(hào)、號(hào)碼、短消息中心號(hào)碼等,這些數(shù)據(jù)可以作為常量直接寫入程序的Flash中。單片機(jī)通過串口和TC35i通信,單片機(jī)從TC35i接到外來的信息,并通過USB接口和PC機(jī)通信。
圖2 穩(wěn)壓電源電路
2.1 穩(wěn)壓電源電路
最小系統(tǒng)工作電壓為5 V DC。由于TC35i 模塊的突發(fā)耗電電流峰值可達(dá)3 A,故外加穩(wěn)壓器件必須達(dá)到足以提供該額定電流的條件。另外,電源的指標(biāo)不僅僅有電壓,而且功率容限等指標(biāo)都要滿足要求,故采用圖2的設(shè)計(jì)方案。在該系統(tǒng)中,開關(guān)電源芯片LM7805 完成12 V到?5 V?的轉(zhuǎn)換,電源電路主要由LM7805和AS1117-3.3這2個(gè)三端穩(wěn)壓電源模塊構(gòu)成,電源模塊AS1117-3.3接收LM7805輸入的5 V電平,輸出為整個(gè)單片機(jī)系統(tǒng)提供+3.3 V工作電壓,連到ZIF連接器的1~5引腳,為TC35i提供+5 V、500 mA的充電電壓。電源的輸出基本不會(huì)受外部輸入變動(dòng)干擾,而且有效的消除了電磁干擾。
2.2 IGT電路
對(duì)于TC35i模塊控制,IGT信號(hào)非常重要,只有正確的IGT信號(hào)才可以使TC35i模塊正常運(yùn)行。系統(tǒng)加電后,為使TC35i 進(jìn)入工作狀態(tài),必須給IGT 加一個(gè)延時(shí)大于100 ms 的低脈沖,電平下降持續(xù)時(shí)間不可超過1 ms。驅(qū)動(dòng)IGT時(shí),TC35i 供電電壓不能低于3.3 V ,否則TC35不能激活。電路設(shè)計(jì)如圖3所示。啟動(dòng)電路由開漏極三極管和上電復(fù)位電路組成。為保證整個(gè)系統(tǒng)正常啟動(dòng),要求在電源加電時(shí),IGT必須保持大于100 ms的低電平后,再跳到高電平,在電路板中是依靠RC電路來完成的,且該信號(hào)下降沿時(shí)間小于1 ms。啟動(dòng)后,IGT腳的信號(hào)應(yīng)保持高電平。電源通電后,+5 V電源通過電阻對(duì)電容充電,使電容正極上的電壓慢慢上升,大約經(jīng)過100 ms達(dá)到高電位,使施密特觸發(fā)器翻轉(zhuǎn),系統(tǒng)被復(fù)位。啟動(dòng)后, IGT應(yīng)保持高電平(3.3 V) 。
TC35i數(shù)據(jù)接口通過USB電纜直接與PC機(jī)連接。數(shù)據(jù)接口遵從DCE的ITU2T RS232內(nèi)部交換電路標(biāo)準(zhǔn),實(shí)現(xiàn)異步串行收發(fā)功能。
2.3 TC35i其他部分電路
TC35i使用外接式SIM卡, ZIF連接器上有6個(gè)引腳做為SIM卡的接口,SIM卡上也有6個(gè)引腳分別與它相對(duì)應(yīng), SIM卡同TC35i是這樣連接的:SIM上的CCRST、CCIO、CCCL、CCVCC和CCGND通過SIM卡閱讀器與TC35i的同名端直接相連,CCIN懸空,而TC上的CCIN通過一個(gè)3.3 kΩ電阻與CCVCC相連,用來檢測(cè)SIM卡是否插好。這種連接方式是由SIM卡閱讀器決定的,由于此部分的電路簡(jiǎn)單,本文就不提供了。
TC35i的SYNC引腳有兩種工作模式,一種是指示發(fā)射狀態(tài)時(shí)的功率增長(zhǎng)情況,另一種是指示TC35i的工作狀態(tài),可用AT命令A(yù)T SYNC進(jìn)行切換,本模塊使用的是后一種。當(dāng)LED熄滅時(shí),表明TC35i處于關(guān)閉或睡眠狀態(tài);當(dāng)LED為600 ms亮/600 ms熄時(shí),表明SIM卡沒有插入或TC35i正在進(jìn)行網(wǎng)絡(luò)登錄;當(dāng)LED為75 ms亮/3 s熄時(shí),表明TC35i已登錄進(jìn)網(wǎng)絡(luò),處于待機(jī)狀態(tài)。
2.4 單片機(jī)周圍電路
采用Cygnal公司內(nèi)置USB接口的高性能微控制器芯片C8051F320,簡(jiǎn)化了硬件部分的設(shè)計(jì)。該單片機(jī)即實(shí)現(xiàn)了USB接口的功能又要完成對(duì)模塊的控制功能。因?yàn)镃8051F320是帶USB接口的單片機(jī),所以整個(gè)硬件部分與一般單片機(jī)應(yīng)用系統(tǒng)的開發(fā)類似,僅需要通過端口P0.5和P0.4連接40腳ZIF插座就可實(shí)現(xiàn)模塊和單片機(jī)之間的通信。下面是設(shè)計(jì)時(shí)應(yīng)特別注意的問題:在外接晶體時(shí),一定要在晶體的兩端接上10 MΩ的電阻,晶體外殼最好接地,而且布線盡量的短,盡量減少干擾。若要快捷、成功地開發(fā)一個(gè)USB設(shè)備,正確、合理的調(diào)試方法是必不可少的環(huán)節(jié)。那么設(shè)計(jì)調(diào)試所用的JTAG口時(shí),要在TCK加上3.3 V上拉,上拉電阻為4.7 kΩ。本單片機(jī)共有32個(gè)引腳,對(duì)于未用的I/O口最好用100 Ω的電阻下拉到地。這樣有助于保護(hù)I/O口。
3 軟件設(shè)計(jì)
基于帶有USB接口的短信發(fā)送系統(tǒng),既包括硬件設(shè)計(jì)又包括軟件設(shè)計(jì),下面簡(jiǎn)單介紹軟件設(shè)計(jì)。USB應(yīng)用系統(tǒng)軟件設(shè)計(jì)分為三部分:USB外設(shè)端的固件(firmware)、主機(jī)操作系統(tǒng)上的客戶驅(qū)動(dòng)程序以及主機(jī)應(yīng)用軟件。8051F320固件程序控制整個(gè)系統(tǒng)的運(yùn)行,并負(fù)責(zé)處理PC機(jī)發(fā)來的各種USB請(qǐng)求,以完成它們之間的數(shù)據(jù)傳輸。該固件共包含7個(gè)程序文件,響應(yīng)各種來自系統(tǒng)的USB標(biāo)準(zhǔn)請(qǐng)求,完成各種數(shù)據(jù)的交換工作和事件處理。單片機(jī)通過串行口控制TC35i,控制方法采用標(biāo)準(zhǔn)的AT命令集。由于在 GSM標(biāo)準(zhǔn)中,中文編碼采用的是Unicode編碼,而不是目前國(guó)內(nèi)常用的GB-2312編碼,故還需要進(jìn)行中文編碼的轉(zhuǎn)換,才能顯示漢字字型。因此,在進(jìn)行短消息的發(fā)送時(shí),還要對(duì)用戶數(shù)據(jù)按PDU格式進(jìn)行編碼,為了增強(qiáng)硬件的功能最好把這部分放在固件。這些底層的驅(qū)動(dòng)函數(shù)將會(huì)使上層協(xié)議的編寫很方便,更重要的是,它提供了一個(gè)硬件抽象層。當(dāng)?shù)讓佑布膭?dòng)時(shí),只需要改動(dòng)底層的驅(qū)動(dòng)函數(shù),而上層函數(shù)的代碼不變。在此基礎(chǔ)之上再編寫應(yīng)用層程序。主機(jī)應(yīng)用軟件通過客戶驅(qū)動(dòng)程序與系統(tǒng)USBDI進(jìn)行通信,實(shí)現(xiàn)系統(tǒng)USB數(shù)據(jù)的傳送動(dòng)作。
圖3 IGT電路
在USB傳輸中,因外圍設(shè)備的類型與應(yīng)用不同,制定了4種傳輸類型,分別是控制傳輸(control transfer)、中斷傳輸(interrupt transfer)、批量傳輸(bulk transfer)以及實(shí)時(shí)傳輸(isochronous transfer)。其中,需要特別注意的是慢速設(shè)備僅支持控制傳輸與中斷傳輸。在此系統(tǒng)中采用中斷傳輸。
筆者采用Keil C51完成固件的設(shè)計(jì),在DRIVER STUDIO環(huán)境中采用Visual C++ 6.0完成USB驅(qū)動(dòng)程序的設(shè)計(jì),最后用Visual C++ 6.0開發(fā)生成應(yīng)用軟件及其相關(guān)使用說明。本設(shè)計(jì)完全采用Windows風(fēng)格,用戶可快捷地使用本設(shè)備。
4 結(jié)論
利用西門子公司TC35i模塊和新華龍公司C8051F320的最小系統(tǒng)進(jìn)行設(shè)計(jì)開發(fā),簡(jiǎn)單容易,開發(fā)周期短,且?guī)в蠻SB接口,提高了安全性,減少現(xiàn)場(chǎng)人員工作的復(fù)雜性,易于為工程實(shí)踐所采用。本文通過計(jì)算機(jī)實(shí)現(xiàn)了短信收發(fā)功能,利用C51對(duì)其進(jìn)行編程控制,在此基礎(chǔ)上,對(duì)軟件和硬件加以改動(dòng)還可以進(jìn)行二次開發(fā)實(shí)現(xiàn)其他功能,例如,可以通過移動(dòng)終端來查收多種信息和控制各種工程的現(xiàn)場(chǎng)設(shè)備??傊鞠到y(tǒng)作為一個(gè)無(wú)線通信系統(tǒng),具有廣泛的應(yīng)用前景。
參考文獻(xiàn)
1 Cygnal Integrated Products Inc. C8051F320 datasheet
2 TC35i Engine Hardware Interface Description. www.siemens.com,2003
3 Cygnal Integrated products, Inc. C8051F單片機(jī)應(yīng)用解析. 潘琢金,等譯. 北京:北京航空航天大學(xué)出版社,2002
4 何立民. 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京:北京航空航天大學(xué)出版社,1990
5 王成儒. 等. USB2.0原理與工程開發(fā).北京:國(guó)防工業(yè)出版社,2004
6 蕭世文. USB2.0硬件設(shè)計(jì).北京:清華大學(xué)出版社,2004
7 康厚強(qiáng). 等.用于短信息收發(fā)的TC35i終端的硬件設(shè)計(jì)與實(shí)現(xiàn).電子技術(shù),2002(8)
評(píng)論