隨著嵌入式及通信技術(shù)的發(fā)展,移動(dòng)手持設(shè)備出現(xiàn)在很多應(yīng)用場合,比如天然氣公司開始采用智能化的方式來管理用戶的用氣情況,如何在服務(wù)端和表具終端間進(jìn)行通信,成為系統(tǒng)的主要考慮因素。本文對(duì)系統(tǒng)進(jìn)行需求分析后,以移動(dòng)手持設(shè)備進(jìn)行小規(guī)模通信為出發(fā)點(diǎn),提出使用短信通信的方式來解決這一問題的方法。這種方式不僅使通信質(zhì)量能夠得到保證,而且價(jià)格合理,易于操作員來管理和維護(hù),是一種行之有效的通信方式。
1研究背景及系統(tǒng)框架
短信通信示意圖如圖1所示。PC機(jī)表示服務(wù)器端運(yùn)行程序的平臺(tái),是操作員對(duì)表具和手持設(shè)備操作的環(huán)境;表具表示天然氣表具,在里面配置了接收命令的固化程序;手持設(shè)備表示本論文研究的平臺(tái),是短信通信程序運(yùn)行環(huán)境的主要部分。三者之間均可進(jìn)行通信,它們之間已經(jīng)有完整的命令幀格式,下面討論如何設(shè)計(jì)并實(shí)現(xiàn)這樣的通信子系統(tǒng),而不研究具體的命令幀格式,假定是在統(tǒng)一的幀格式下完成的。
現(xiàn)場操作員需要設(shè)備有與表具進(jìn)行通信的功能,能夠測試表具的通信狀況。因此,需要解決的主要有以下幾個(gè)問題:圖1短信通信示意圖①選取合適的手持設(shè)備,能夠有運(yùn)行短信通信程序的基本硬件配置(需要配備GPRS模塊)。
②選取合適的嵌入式操作系統(tǒng),保證程序的穩(wěn)定運(yùn)行。
③如何進(jìn)行有效的收發(fā)短信來完成通信功能,以測試表具的通信狀況。
④需要有對(duì)文件操作的支持,操作員是需要上傳和保存文件的。
嵌入式系統(tǒng)的開發(fā)既要實(shí)現(xiàn)程序的功能性,也要選取特定的硬件平臺(tái),嵌入式系統(tǒng)是為了完成某一項(xiàng)或有限項(xiàng)功能,系統(tǒng)功能可以根據(jù)產(chǎn)品的設(shè)計(jì)要求進(jìn)行裁剪、調(diào)整[1]。并具體闡述了選取硬件設(shè)備與完成程序的功能。
2系統(tǒng)軟硬件環(huán)境
2.1硬件平臺(tái)
NLS-PT850是新大陸公司的一款基于嵌入式處理器的智能手持設(shè)備,它的基本硬件配置為ARM7處理器、32位RISC、74MHz頻率以及標(biāo)準(zhǔn)手機(jī)鍵盤和掃描儀;內(nèi)存為8MRAM、2MNORFlash和32MNandFlash(可擴(kuò)展至128M)。上面搭載uBASE-III嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)。嵌入式硬件設(shè)備的考慮應(yīng)該完全滿足目標(biāo)系統(tǒng)的圖2手持設(shè)備硬件結(jié)構(gòu)框圖要求,在功能上很容易滿足,但是在性能上,尤其是在功耗上應(yīng)最適合系統(tǒng),而不是越充分越好。
手持設(shè)備硬件結(jié)構(gòu)框圖如圖2所示。
該手持設(shè)備配備了GPS模塊,具有SIM卡接口,存儲(chǔ)容量合適,程序下載方便,因此選取該設(shè)備來作為短信通信系統(tǒng)的硬件平臺(tái)。
2.2uBASE-III嵌入式操作系統(tǒng)
uBASE-III是一個(gè)嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng),主要有多任務(wù)內(nèi)核模塊、內(nèi)存管理模塊、文件系統(tǒng)、設(shè)備管理模塊、應(yīng)用程序管理模塊等[2]。uBASE-III之所以在很多嵌入式設(shè)備上廣泛使用,有一個(gè)很重要的原因是它提供了一個(gè)C++類庫“UFCL(ubaseFoundationClassLibrary)”。
另外,它還提供了大量的API,供程序員調(diào)用。這里選取該嵌入式操作系統(tǒng)的原因是它支持文件操作和短信通信。
文件系統(tǒng)用于文件操作,將程序中的相關(guān)數(shù)據(jù)以二進(jìn)制文件的形式存放在Flash存儲(chǔ)器中。uBASE-III采用了zfile2.0文件系統(tǒng),zfile2.0是專為嵌入式系統(tǒng)設(shè)計(jì)的Flash文件系統(tǒng),常用的函數(shù)有:◆打開一個(gè)文件以便讀寫其內(nèi)容ZFILE*zfopen(constchar*filename,constchar*pmode);◆從當(dāng)前文件指針位置開始寫入size*count個(gè)字節(jié)的數(shù)據(jù)intzfwrite(constvoid*buf,intsize,intcount,ZFILE*stream);◆從當(dāng)前文件指針位置讀入size*count個(gè)字節(jié)intzfread(void*buf,intsize,intcount,ZFILE*stream);◆關(guān)閉打開的文件intzfclose(ZFILE*stream);uBASE-III系統(tǒng)對(duì)文件的支持相比其他環(huán)境也有一些不足之處,在嵌入式設(shè)備上使用文件操作有很多的限制,比如uBase-III的文件系統(tǒng)僅有單層目錄結(jié)構(gòu),即不能創(chuàng)建子目錄、文件系統(tǒng)API,不區(qū)分文本模式和二進(jìn)制模式的概念,都當(dāng)作是二進(jìn)制模式。