在嵌入式WinCE系統(tǒng)下,利用GSM Modem和現(xiàn)有的GSM移動(dòng)通信網(wǎng),通過(guò)軟件編程手段,實(shí)現(xiàn)用普通電話(包括手機(jī))對(duì)遠(yuǎn)程工業(yè)現(xiàn)場(chǎng)的某些工作參數(shù)的監(jiān)測(cè)和控制。
其中的監(jiān)測(cè)數(shù)據(jù)以語(yǔ)音形式體現(xiàn)。文中給出了語(yǔ)音合成的具體實(shí)現(xiàn)方法。
引言
許多時(shí)候,我們需要了解遠(yuǎn)距離的某個(gè)工作現(xiàn)場(chǎng)的某些工作參數(shù),或者對(duì)某些工作指標(biāo)進(jìn)行控制(開(kāi)、關(guān)控制)。例如,需要了解遠(yuǎn)距離無(wú)人職守的發(fā)射機(jī)的功率情況,需要開(kāi)啟或關(guān)閉高山上電視塔的燈光,等等。這些一般都是通過(guò)基于C/S或者B/S等的網(wǎng)絡(luò)手段來(lái)實(shí)現(xiàn)的,需要專門的網(wǎng)絡(luò)線路和監(jiān)控端軟硬件的支持,構(gòu)筑這樣的應(yīng)用系統(tǒng)投資一般都比較大,監(jiān)控方位置的靈活度也被局限于有監(jiān)控端軟硬件的環(huán)境中。這里介紹一種在嵌入式WinCE系統(tǒng)下利用GSM Modem,用普通電話(包括手機(jī),下同)就可以實(shí)現(xiàn)遠(yuǎn)程監(jiān)控的方法。不需要有專用的監(jiān)控端軟硬件的支持和其他專用的網(wǎng)絡(luò)線路,借助GSM的無(wú)線通信網(wǎng)絡(luò),投資大大縮小;監(jiān)控方的位置可以處在任何有電話的地方,方便靈活。監(jiān)控操作的選擇由電話的按鍵來(lái)實(shí)現(xiàn),監(jiān)測(cè)到的參數(shù)通過(guò)語(yǔ)音的方式反饋到監(jiān)控方的電話上;可以滿足大多數(shù)遠(yuǎn)程監(jiān)控應(yīng)用場(chǎng)合的要求。
1 應(yīng)用系統(tǒng)架構(gòu)
本系統(tǒng)主要由GSM移動(dòng)通信網(wǎng)、GSM Modem、以S3C2410為核心的硬件和WinCE系統(tǒng)組成,如圖1所示。
[align=center]
圖1 系統(tǒng)架構(gòu)[/align]
需要監(jiān)測(cè)的參數(shù)或需要控制的指標(biāo)通過(guò)某種方式與嵌入式系統(tǒng)構(gòu)成上、下位采集與控制體系。嵌入式系統(tǒng)發(fā)出測(cè)控指令,可以實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)相應(yīng)數(shù)據(jù)的采集和控制。采集到的現(xiàn)場(chǎng)數(shù)據(jù)以數(shù)據(jù)文件形式保存在嵌入式系統(tǒng)上。目前,有關(guān)嵌入式系統(tǒng)對(duì)下位現(xiàn)場(chǎng)的具體采集與控制操作介紹的文獻(xiàn)很多,這里不再?gòu)?fù)述。
2 嵌入式系統(tǒng)受監(jiān)控端軟件設(shè)計(jì)
嵌入式系統(tǒng)中受監(jiān)控端軟件是本監(jiān)控系統(tǒng)的核心。它一方面管理GSM Modem識(shí)別遠(yuǎn)程電話的控制指令(按鍵識(shí)別)、向電話反饋對(duì)應(yīng)的語(yǔ)音數(shù)據(jù),另一方面還要根據(jù)遠(yuǎn)程電話的指令完成對(duì)下位現(xiàn)場(chǎng)的測(cè)控。
2.1 串行口及GSM Modem的初始化
根據(jù)GSM Modem連接的串行口,comID用hSerial=CreateFile(TEXT ("comID"),GENERIC_READ | GENERIC_WRITE,0, NULL, OPEN_EXISTING, 0, NULL);
打開(kāi)該串行口。根據(jù)返回句柄hSerial的值,可以判斷打開(kāi)是否成功。由“GetCommState(hSerial,&dcb);”獲得comID的狀態(tài),同時(shí)自動(dòng)填入不用的DCB結(jié)構(gòu)成員。再用“SetCommState(hSerial,&dcb);”就可以初始化該串口了。之前,&dcb要設(shè)置自己的參數(shù),如:
最后用“ WriteFile(hSerial,szBuffer,strlen(szBuffer),&dwBytesWritten,&os_w);” 向串口寫(xiě)入GSM Modem的初始化數(shù)據(jù)(AT命令)。不同的GSM Modem其AT命令可能有所不同(可以從GSM Modem的用戶手冊(cè)中獲得)。筆者使用的GSM Modem的初始化數(shù)據(jù)為“ats0=1+fclass=8”、“at+vsm=128,11025”。
2.2 按鍵識(shí)別
因?yàn)楸O(jiān)控指令是由遠(yuǎn)程電話通過(guò)電話上的按鍵發(fā)出的,所以在受監(jiān)控端,正確識(shí)別電話的按鍵是非常關(guān)鍵的。在一個(gè)處理線程中,可以用如下程序進(jìn)行識(shí)別:
運(yùn)行后,有電話撥入并按下567890,執(zhí)行結(jié)果如圖2所示。
[align=center]
圖2 按鍵識(shí)別測(cè)試[/align]
對(duì)于按鍵組合,可以將單個(gè)鍵的值依次存放到緩沖區(qū)。在程序中控制好flag的值就可以實(shí)現(xiàn)對(duì)按鍵組合的識(shí)別。
2.3 語(yǔ)音傳送
將語(yǔ)音數(shù)據(jù)寫(xiě)入GSM Modem,撥入的電話一端就可以聽(tīng)到相應(yīng)的語(yǔ)音。在寫(xiě)入語(yǔ)音數(shù)據(jù)之前,要先用“at+vtx”通知GSM Modem,此后的數(shù)據(jù)是語(yǔ)音數(shù)據(jù)。
其中,wavFileName為所傳送的語(yǔ)音數(shù)據(jù)文件。
2.4 嵌入式系統(tǒng)受控端整體程序描述
嵌入式系統(tǒng)受控端整體程序框圖如圖3所示。
[align=center]
圖3 嵌入式系統(tǒng)受控端整體程序框圖[/align]
3 語(yǔ)音合成技術(shù)(TTS)
將保存在嵌入式系統(tǒng)上從現(xiàn)場(chǎng)采集來(lái)的數(shù)據(jù)轉(zhuǎn)換成對(duì)應(yīng)的語(yǔ)音數(shù)據(jù),需要進(jìn)行語(yǔ)音合成。在語(yǔ)音數(shù)據(jù)庫(kù)中存有“l(fā)ing”、“yi”、“er”、 “san”……“dian”和單位名稱發(fā)音的數(shù)據(jù)文件。假設(shè)要監(jiān)測(cè)的是現(xiàn)場(chǎng)的電流數(shù)據(jù),例如,下位采集來(lái)的保存到嵌入式系統(tǒng)上的某電流數(shù)據(jù)為5.12 A,那么就需要將“wu”、“dian”、“yi”、“er”和“an”的語(yǔ)音數(shù)據(jù)文件合成一個(gè)語(yǔ)音數(shù)據(jù)文件,以便于傳送。
BitSize位現(xiàn)場(chǎng)數(shù)據(jù)(包括小數(shù)點(diǎn))語(yǔ)音合成的具體程序描述如下:
需要強(qiáng)調(diào)的是,這里用到的語(yǔ)音數(shù)據(jù)必須是“裸”數(shù)據(jù),也就是去掉有關(guān)文件頭的純粹的語(yǔ)音數(shù)據(jù)(可以在錄制單個(gè)語(yǔ)音文件后處理掉)。各個(gè)語(yǔ)音數(shù)據(jù)的大小也要記錄在一個(gè)表列中,以便在調(diào)整目標(biāo)語(yǔ)音文件指針時(shí)用到。最后生成的目標(biāo)語(yǔ)音文件也是一個(gè)只含有“裸”數(shù)據(jù)的文件,在進(jìn)行語(yǔ)音傳送時(shí)可以直接使用。
結(jié)語(yǔ)
本文介紹的在嵌入式WinCE系統(tǒng)下利用GSM Modem所實(shí)現(xiàn)的遠(yuǎn)程監(jiān)測(cè)與控制的方法,以較小的投資實(shí)現(xiàn)了對(duì)遠(yuǎn)程工業(yè)現(xiàn)場(chǎng)的測(cè)控,充分地利用了現(xiàn)有的GSM移動(dòng)通信網(wǎng)絡(luò)資源。在測(cè)控距離遠(yuǎn)、實(shí)時(shí)性要求不高的場(chǎng)合都可以選擇使用。
參考文獻(xiàn)
[1] 陳堅(jiān),孫志月. MODEM通信編程技術(shù)[M]. 西安:西安電子科技大學(xué)出版社,1998.
[2] 曾志民. 調(diào)制解調(diào)器原理及其應(yīng)用[M]. 北京:人民郵電出版社,1995.
[3] 田澤. ARM9嵌入式開(kāi)發(fā)實(shí)驗(yàn)與實(shí)踐[M]北京:北京航空航天大學(xué)出版社,2006.
[4] 周毓林,寧楊,陸貴強(qiáng). Windows CE.net內(nèi)核定制及應(yīng)用開(kāi)發(fā)[M]. 北京:電子工業(yè)出版社, 2005.