《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 嵌入式氣象預(yù)警信息接收系統(tǒng)的設(shè)計與實現(xiàn)
嵌入式氣象預(yù)警信息接收系統(tǒng)的設(shè)計與實現(xiàn)
來源:微型機與應(yīng)用2012年第3期
陳蘇婷,,徐冬衛(wèi)
(南京信息工程大學(xué) 電子與信息工程學(xué)院,江蘇 南京 210044)
摘要: 設(shè)計了一種基于ARM920T微處理器和GPRS網(wǎng)絡(luò)的無線氣象預(yù)警信息接收系統(tǒng),。該系統(tǒng)采用GPRS作為信息接收的橋梁,,通過短消息業(yè)務(wù)接收氣象預(yù)警信息,,利用嵌入式Linux操作系統(tǒng)資源和圖形開發(fā)庫QT/E實現(xiàn)氣象預(yù)警信息的顯示、語音播報,。該方案有效地縮短了接收延遲時間,,提高了預(yù)警信息接收的有效性,避免了傳統(tǒng)的氣象預(yù)警接收方式無法及時應(yīng)對突發(fā)性氣象災(zāi)害的情況,。
Abstract:
Key words :

摘  要: 設(shè)計了一種基于ARM920T微處理器和GPRS網(wǎng)絡(luò)的無線氣象預(yù)警信息接收系統(tǒng)。該系統(tǒng)采用GPRS作為信息接收的橋梁,,通過短消息業(yè)務(wù)接收氣象預(yù)警信息,,利用嵌入式Linux操作系統(tǒng)資源和圖形開發(fā)庫QT/E實現(xiàn)氣象預(yù)警信息的顯示、語音播報,。該方案有效地縮短了接收延遲時間,,提高了預(yù)警信息接收的有效性,避免了傳統(tǒng)的氣象預(yù)警接收方式無法及時應(yīng)對突發(fā)性氣象災(zāi)害的情況,。
關(guān)鍵詞: ARM9,;短消息業(yè)務(wù);OSYNO6188,;嵌入式Linux,;QT/E

 我國是世界上自然災(zāi)害發(fā)生十分頻繁、災(zāi)害種類甚多,、造成損失十分嚴重的少數(shù)國家之一,。每年干旱、洪澇,、臺風,、暴雨、冰雹等災(zāi)害危及人民生命和財產(chǎn)的安全,,國民經(jīng)濟也受到了極大的損失,。而且,隨著經(jīng)濟的高速發(fā)展,,自然災(zāi)害造成的損失亦呈上升趨勢,,直接影響著社會和經(jīng)濟的發(fā)展。
因此,,在電力,、交通、工業(yè)控制,、零售,、公共事業(yè)管理、醫(yī)療,、水利,、石油,、農(nóng)業(yè)等各個行業(yè)實時接收和發(fā)布氣象預(yù)警信息,避免電視媒體,、報紙等發(fā)布信息的延時,,能大大減少氣象災(zāi)害帶來的損失。
隨著移動通信技術(shù)的日益成熟,,短消息業(yè)務(wù)發(fā)展越來越迅速,,不僅應(yīng)用在人們?nèi)粘5男畔⒔涣髦校诂F(xiàn)場監(jiān)測,、遠程控制等領(lǐng)域也得到了越來越廣泛的應(yīng)用,。短消息業(yè)務(wù)是承載在GPRS網(wǎng)絡(luò)上的。GPRS即通用分組無線業(yè)務(wù),,是在現(xiàn)有GSM網(wǎng)絡(luò)上開通的一種新型的分組數(shù)據(jù)傳輸技術(shù),。語音合成技術(shù)實現(xiàn)了文字到語音的轉(zhuǎn)換。本設(shè)計結(jié)合嵌入式技術(shù),、GPRS技術(shù)和語音合成技術(shù),,提出了基于ARM與SMS的氣象預(yù)警信息終端。
1 總體設(shè)計
 氣象預(yù)警信息終端系統(tǒng)結(jié)構(gòu)如圖1所示,。在中心服務(wù)器上通過信息發(fā)布軟件發(fā)布預(yù)警信息到GPRS模塊,,該短消息通過GPRS網(wǎng)絡(luò)傳送。由嵌入式Linux終端上的GPRS模塊接收來自中心服務(wù)器的氣象預(yù)警信息,,該模塊將接收到的數(shù)據(jù)通過串口傳輸給終端處理器ARM9,。終端處理器對接收的短消息進行解析,還原出服務(wù)器發(fā)送的預(yù)警信息,。最后通過LCD顯示屏,、語音等方式將預(yù)警信息播出。

2 系統(tǒng)硬件設(shè)計
 本系統(tǒng)接收端的硬件部分是基于三星S3C2440 32 bit微處理器的嵌入式系統(tǒng),,主要負責氣象預(yù)警信息的讀取以及GPRS網(wǎng)絡(luò)傳輸,、語音芯片和LCD液晶屏的控制。
 氣象預(yù)警信息接收終端的基本組成部分如圖2所示,。整個外圍電路包括:嵌入式語音合成模塊,、GPRS無線通信模塊、NAND Flash存儲擴展和LCD觸摸液晶顯示模塊,。

 ARM9微處理器具有高性能和低功耗特性,,典型處理速度為1.1 MIPS/MHz,系統(tǒng)主時鐘頻率為100 MHz~233 MHz,。片外擴展多功能外圍接口,,如USB、UART,、I2S,、LCD控制器,、鍵盤接口、RTC,、JTAG等,。還有足夠大的存儲空間,如2 MB的NOR Flash,、128 MB的NAND Flash(用于存儲bootloader,、嵌入式Linux內(nèi)核和帶有QT圖形界面庫的文件系統(tǒng))、64 MB的SDRAM,。
 TC35i模塊與GSM 2/2+兼容,,并支持雙頻(GSM  900/1  800 MHz)、RS232數(shù)據(jù)口,,符合ETSI標準GSM0707和GSM0705。該模塊集射頻電路和基帶于一體,,向用戶提供標準的AT命令接口,,為數(shù)據(jù)、語音,、短消息和傳真提供快速,、可靠、安全的傳輸,,方便用戶的應(yīng)用開發(fā)及設(shè)計,。
 OSYNO 6188嵌入式語音合成模塊[1]通過異步串口接收待合成文本,直接通過PWM輸出方式驅(qū)動揚聲器實現(xiàn)文本到語音的轉(zhuǎn)換,。該芯片支持國家標準GB_2312所有漢字,,支持標點符號、電話號碼,、郵政編碼,、英文字母等特殊字符處理。
3 系統(tǒng)軟件設(shè)計
 氣象預(yù)警信息終端是典型的嵌入式系統(tǒng),,目標代碼運行在S3C2440上面,,在構(gòu)架的嵌入式平臺上,選用安裝了arm-linux-gcc的交叉編譯環(huán)境的fedora14為開發(fā)調(diào)試環(huán)境,,以Linux為嵌入式操作系統(tǒng)開發(fā)應(yīng)用程序,。
氣象預(yù)警信息終端軟件主要是基于Linux和QT/E的用戶程序開發(fā)以及相關(guān)驅(qū)動移植。應(yīng)用程序按功能劃分,,由SMS數(shù)據(jù)傳輸,、PDU短信息解碼[2]、文本到語音轉(zhuǎn)換和人機交互界面4部分組成,。    
 系統(tǒng)上電啟動Linux后,,即開始啟動終端圖形用戶界面應(yīng)用程序,,該應(yīng)用程序創(chuàng)建了一個主線程,以響應(yīng)用戶的界面操作,,初始化GPRS模塊[3],,發(fā)送命令,設(shè)置其為新短信息提示,,該主線程還分別在后臺創(chuàng)建一個子線程,。GPRS模塊的讀線程不斷偵聽串口以獲取GPRS模塊返回的短信息,若從串口讀到新短信息提示回送命令字,,則彈出一個對話框顯示“有新短信息”,,提示用戶操作,系統(tǒng)內(nèi)部啟動后臺子線程,,自動完成短信息的解析和存儲,,并通過信息內(nèi)容判斷信息的預(yù)警類別。若為紅色預(yù)警,,立即驅(qū)動6188語音芯片播報該條信息,;若為其他預(yù)警類別,則由用戶自由選擇顯示或者語音播報,。實現(xiàn)將以PDU方式編碼的短信息解碼,,并轉(zhuǎn)換成GB2312碼,因為OSYNO 6188只能識別以GB編碼的漢字,。軟件流程如圖3所示,。

 

 


3.1 SMS數(shù)據(jù)傳輸模塊設(shè)計
 TC35i支持語音和短信服務(wù)。在本系統(tǒng)中,,通過串口3發(fā)送AT指令集與TC35i模塊通信,,實現(xiàn)與遠端設(shè)備的收發(fā)短信息功能。
 在本系統(tǒng)中,,GPRS模塊就相當于一個調(diào)制解調(diào)器,,ARM處理器通過串口發(fā)送AT命令控制GPRS模塊工作情況和得到GPRS模塊的反饋信息。AT指令集是調(diào)制解調(diào)器通信接口的工業(yè)標準,,它的基本格式為:AT+命令字符,。通信過程中,ARM每發(fā)送一條指令,,都需要加上“回車符”作為指令的結(jié)束符,,否則TC35i不能識別。該功能實現(xiàn)過程為:首先初始化GPRS模塊,,即發(fā)送AT命令測試網(wǎng)絡(luò)情況并設(shè)置短信模式AT+CNMI=2,,1,0,,0,,0(新短信提醒,,并把收到的短信存入SIM卡);然后設(shè)置短信接收模式AT+CMGF=0(設(shè)為PDU模式,,可以接收漢字),;接著發(fā)送接收短信息命令A(yù)T+CMGR=last(last中存有收到短信在SIM卡中的存儲記錄號)。讀取短信功能由gprs_read_msg()函數(shù)實現(xiàn),。代碼如下:
int gprs_read_msg()
{
    ……
tty_write(“AT+CMGF=0\r”,,strlen(“AT+CMGF=0\r”));
while(receive(fd,,strAT,,”OK”,strATResult,,ATREADTIMES,,last)!=TRUE)
{
    ……
}
while(receive(fd,strAT,,”OK”,,strATResult,ATREADTIMES,,last)!=TRUE)
//讀取短信內(nèi)容到strATResult中
……
}
 其中,tty_write()為底層串口寫函數(shù),,receive()函數(shù)向GPRS模塊發(fā)送AT命令和從GPRS模塊讀取返回信息,;fd為已經(jīng)打開的串口描述符;strAT為要向GPRS模塊發(fā)送的命令信息,;“OK”為需要匹配的字符串,;strATResult為從GPRS模塊返回的信息;ATREADTIMES為當讀取返回信息字符個數(shù)為0時,,函數(shù)繼續(xù)讀取的次數(shù),;last為從模塊返回信息的最后一個字符。
3.2 PDU模式的短信息解碼
 基于GPRS的短信息收發(fā)常用的編碼格式有Text模式和PDU(Protocol Description Unit)模式兩種,。其中,,Text模式是純文本方式[4],收發(fā)短信代碼簡單,,實現(xiàn)起來十分容易,,但最大的缺點是不能收發(fā)中文短信;而PDU模式不僅支持中文短信,,也能發(fā)送英文短信,。PDU模式收發(fā)短信可以使用7-bit、8-bit和UCS2 3種編碼,。這里使用UCS2編碼將單個字符(1~2 B)按ISO/IEC10646的規(guī)定轉(zhuǎn)變?yōu)?6 bit的Unicode寬字符,,PDU串不僅包含可顯示的消息本身,,還包括很多其他信息,如SMS服務(wù)中心號碼,、目標號碼,、回復(fù)號碼、編碼方式和服務(wù)時間等,。
 PDU模式的短消息解碼[5]主要包含字符串順序轉(zhuǎn)換,、可打印字符到字節(jié)的轉(zhuǎn)換、Unicode編碼字符到GB2312編碼字符的轉(zhuǎn)換幾個模塊,。針對PDU串的格式,,定義一個結(jié)構(gòu)體SM_PARAM描述該串信息。
其中,,可打印字符到字節(jié)的轉(zhuǎn)換由gsm_s_2_b()函數(shù)完成,,如將字符串“C8329BFD0E01”轉(zhuǎn)換為{0xC8,0x32,, 0x9B,,0xFD,0x0E,,0x01},;字符串順序轉(zhuǎn)換由gsm_ serialize_numbers()函數(shù)實現(xiàn),將兩兩顛倒的字符串轉(zhuǎn)換為正常順序的字符串(因為PDU串中的號碼和時間都是兩兩顛倒的字符串),。Gsm_Decode_Ucs2()函數(shù)實現(xiàn)Unicode字符到GB2312字符的轉(zhuǎn)換,,在QT中定義QString變量QString str; 將TP_UD字符串轉(zhuǎn)換為QString類型:str = QString(pDst->TP_UD),;設(shè)定本地字符編碼方式為GB2312編碼:QTextCodec*codec=QTextCodec::codecForName(“GB2312”),;將Unicode字符串轉(zhuǎn)換為GB2312字符串:QString out=codec->toUnicode(str)。
在主函數(shù)中調(diào)用該解碼函數(shù)時,,傳給形參pSrc的參數(shù)為2.1中strATResult字符指針,,其指向收到的短信起始地址。
3.3 文本到語音的轉(zhuǎn)換
 使用OSYNO6188芯片實現(xiàn)任意文本到語音的輸出轉(zhuǎn)換,。由ARM進行控制,,將接收到的短信息數(shù)據(jù)打包成6188能識別的幀,通過UART傳輸給OSYNO6188中文語音合成芯片,,該芯片通過文本轉(zhuǎn)語音技術(shù),,實現(xiàn)文字信息到語音的輸出。OSYNO6188芯片的發(fā)音數(shù)據(jù)命令格式如表1所示,。
3.4 人機交互界面設(shè)計
 QT/E[6]是用于嵌入式Linux系統(tǒng)的QT版本,,其去掉X Lib的依賴而直接工作在Framebuffer上,是一個可配置、可裁剪,、專門為嵌入式系統(tǒng)設(shè)計圖形用戶界面的工具包,。
 系統(tǒng)基于QT/E設(shè)計人機交互界面,通過TFT LCD顯示氣象預(yù)警信息,。界面提供了氣象預(yù)警信息的實時顯示,、GPRS模塊的工作狀態(tài)顯示以及串口屬性設(shè)置等。界面使用觸摸屏作為用戶命令輸入接口,,用戶通過輸入短信位置,,然后點擊圖中的按鈕“語音播報”即可實現(xiàn)歷史短信的LCD顯示和語音播報。

 本文提出了一種基于S3C2440和嵌入式Linux操作系統(tǒng)的氣象預(yù)警信息語音播報終端解決方案,,并基于QT/E設(shè)計了終端界面,。系統(tǒng)功能達到預(yù)期要求,實現(xiàn)了氣象預(yù)警信息的實時接收與顯示并可通過語音將其播報出來,,有效地增加了氣象預(yù)警信息的接收手段和覆蓋范圍,。在終端中添加基于GPRS網(wǎng)絡(luò)接收氣象圖片功能將成為下一步要研究的內(nèi)容。
參考文獻
[1] 北京語音天下科技有限公司.OSYNO6188嵌入式語音合成芯片用戶手冊.(2010-05-22)[2011-05-01].http://www.osyno.com/bao/osyno6188manual.pdf.
[2] 王聰,,趙鵬飛,,張拯民,等.PDU模式的短信息編解碼技術(shù)及在Visual C++中的實現(xiàn)[J].計算技術(shù)與信息發(fā)展,,2009,,7(1):52-53.
[3] 黃濤,白創(chuàng),,徐靖.嵌入式無線互連系統(tǒng)開發(fā)從實踐到提高[M].北京:中國電力出版社,,2007.
[4] 孫勇,劉杰.基于ARM的GPRS通信終端設(shè)計[J].工業(yè)控制計算機,,2010,23(5):49-51.
[5] 徐志剛,,張紹陽,,宋清艷,等.基于GSM短消息平臺的信息發(fā)布系統(tǒng)[J].微計算機信息,,2010(18):9-12.
[6] 韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊[M].北京:人民郵電出版社,,2009.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。