采用cdma網(wǎng)絡(luò)的短信息業(yè)務(wù)實(shí)現(xiàn)無線數(shù)據(jù)傳輸
3 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)軟件設(shè)計(jì)就在于單片機(jī)的編程,通過向mg801a模塊發(fā)送不同的at指令來實(shí)現(xiàn)不同的功能,如讀取短信息的內(nèi)容,刪除短信息、列出模塊中還未讀的短信息等。下面主要介紹at指令和雙串口cpu同時(shí)通訊的實(shí)現(xiàn)。
3.1 at指令
at(attention)指令最初由hayes公司推出,主要用于對(duì)調(diào)制解調(diào)器的控制,現(xiàn)在已演化為一種標(biāo)準(zhǔn),所有移動(dòng)模塊都支持at指令。雖然不同廠家的手機(jī)模塊都參照gsm協(xié)議,但格式還是有所不同,開發(fā)過程中一定要認(rèn)真參考廠家給的資料。同時(shí)在開發(fā)過程中發(fā)現(xiàn)指令的執(zhí)行過程需要單片機(jī)與手機(jī)交互應(yīng)答完成,每一次發(fā)送或接收的字節(jié)數(shù)有嚴(yán)格的規(guī)定,二者必須依據(jù)這些規(guī)定實(shí)現(xiàn)數(shù)據(jù)交換,否則,通信就是失敗的。筆者經(jīng)過對(duì)幾種手機(jī)模塊反復(fù)測(cè)試,總結(jié)出一些規(guī)律,以下是對(duì)幾個(gè)問題的說明:
所有at指令的指令符號(hào)、常數(shù)、pdu數(shù)據(jù)包等都是以asc⒈嗦胄問醬送的,比如“a”的asc⒈嗦胛41h,“t”的asc⒈嗦胛54h數(shù)字,“o”的asc⒈嗦胛30h等。
單片機(jī)控制手機(jī)工作,如果要發(fā)送中文短信,使用的是gsm模塊必須短信息工作模式設(shè)置為pdu格式,即通過指令at+cmgf=0完成。使用mg801a模塊必須設(shè)置為中文unicode碼格式,即通過at+zmsgl=6,4完成。
單片機(jī)向手機(jī)發(fā)送一條指令后,必須以回車符作為該條指令的結(jié)束,回車的asc⒈嗦胛odh,回車符表示該條指令結(jié)束,如果沒有這個(gè)回車符,手機(jī)將不識(shí)別這條指令。
當(dāng)手機(jī)接收到一條完整的at指令后,手機(jī)并不立即執(zhí)行這條指令,而是:先把剛才接收到的at指令的全部asc⒈嗦胄蛄腥部反發(fā)送出來(含odh);其次發(fā)送一個(gè)回車符和換行符的asc⒈嗦,即odh和oah;最后才執(zhí)行該條指令。
3.2 單片機(jī)雙串口同時(shí)通訊的實(shí)現(xiàn)
由于c8051f020單片機(jī)實(shí)現(xiàn)和上位機(jī)與手機(jī)模塊的同時(shí)通訊,所以采用一片具有雙串口的cpu,該cpu具有2個(gè)串口和2個(gè)串口中斷,串口1中斷處理與上位機(jī)的通訊,串口2中斷處理與手機(jī)模塊的通訊,串口1中斷設(shè)置為高優(yōu)先級(jí)中斷,每接收到或發(fā)送完1個(gè)字節(jié)都進(jìn)人中斷處理,處理完畢立即退出中斷,通訊波特率都為115 200 b/s,1個(gè)起始位和1個(gè)停止位。
編程語(yǔ)言采用c51語(yǔ)言,盡量采用模塊化、結(jié)構(gòu)化、對(duì)象化編程,使串口通訊程序和其他程序之間、2個(gè)串口通訊程序之間相互獨(dú)立,以減少發(fā)生錯(cuò)誤的機(jī)會(huì)。另外在串口通訊中,還要增加通訊超時(shí)處理機(jī)制,中斷處理中要注意數(shù)據(jù)和程序狀態(tài)的保護(hù),完善出錯(cuò)處理程序等。同時(shí)要解決時(shí)間沖突問題,硬件接收或發(fā)送一個(gè)字節(jié)的時(shí)間與軟件接收或發(fā)送一個(gè)字節(jié)的時(shí)間有很大的不同,這就為雙串口同時(shí)通訊提供了條件。其次要解決數(shù)據(jù)沖突問題,2個(gè)串口通訊分別使用各自的接收發(fā)送數(shù)據(jù)緩沖區(qū)和控制變量,以減少中斷保護(hù)數(shù)據(jù)量和防止數(shù)據(jù)沖突。當(dāng)主程序、串口2中斷處理程序和其他中斷處理程序向存儲(chǔ)器(與上位機(jī)的通訊用存儲(chǔ)器)中寫數(shù)據(jù)時(shí),需在盡量短的時(shí)間內(nèi)關(guān)閉串口1中斷,關(guān)閉中斷時(shí)間應(yīng)小于幾μs,防止其他程序數(shù)據(jù)沒有寫完之前串口1讀此數(shù)據(jù)。
4 結(jié)語(yǔ)
隨著通訊技術(shù)、微電子技術(shù)的進(jìn)步和智能化建設(shè)的發(fā)展,越來越多的設(shè)備,如家電、電表、工業(yè)終端等,都有了聯(lián)網(wǎng)的需要,并且有大量的數(shù)據(jù)需要傳輸;而且在很多場(chǎng)合有線連接的方式已經(jīng)不能滿足人們的需要。無線接入以其方便、快捷和廉價(jià)的優(yōu)勢(shì),彌補(bǔ)了有線方式的不足。覆蓋全國(guó)的cdma網(wǎng)絡(luò)已經(jīng)成為一種可持續(xù)利用和開發(fā)的資源,因而在此基礎(chǔ)上利用cdma的短信息業(yè)務(wù)開發(fā)出滿足需要的無線接入產(chǎn)品已成為可能。
cdma相關(guān)文章:cdma原理
評(píng)論