鮑海森
(華為技術(shù)有限公司,廣東 深圳 518129)
基于FTP協(xié)議棧的OpenAt應(yīng)用軟件遠(yuǎn)程DOTA系統(tǒng)
鮑海森
(華為技術(shù)有限公司,廣東 深圳 518129)
OpenAt是一款基于GSM/GPRS無線CPU模塊的嵌入式操作系統(tǒng)。OpenAt系統(tǒng)集成了基于GSM/GPRS無線CPU模塊的大部分應(yīng)用開發(fā)API函數(shù)庫。DOTA是指系統(tǒng)遠(yuǎn)程無線升級功能。文章以Q2686無線CPU為模塊為例,介紹OpenAt操作系統(tǒng)平臺(tái)上的基于FTP的遠(yuǎn)程DOTA軟件設(shè)計(jì),為GSM/GPRS產(chǎn)品應(yīng)用提供一種遠(yuǎn)程在線升級手段。
文件傳輸協(xié)議;OpenAt;空中無線下載;GPRS;TCP/IP
電子技術(shù)的發(fā)展,使得電子產(chǎn)品的升級換代越來越快,用戶對電子產(chǎn)品的需求也會(huì)隨著技術(shù)的發(fā)展而增加或改進(jìn),使得產(chǎn)品設(shè)計(jì)周期越來越短,同時(shí)帶來的產(chǎn)品后續(xù)維護(hù)服務(wù)也越來越復(fù)雜。GPRS網(wǎng)絡(luò)和互聯(lián)網(wǎng)技術(shù)的發(fā)展使得無線遠(yuǎn)程數(shù)據(jù)傳輸技術(shù)深入到社會(huì)的各個(gè)領(lǐng)域,基于GPRS網(wǎng)絡(luò)的終端系統(tǒng)也越來越多。在眾多GPRS終端產(chǎn)品中,由于產(chǎn)品設(shè)計(jì)的周期變短,系統(tǒng)或多或少會(huì)存在軟件缺陷,同時(shí)由于不同客戶的需求也會(huì)增加,使得更多GPRS終端產(chǎn)品需要軟件升級。相對于傳統(tǒng)的有線升級模式,GPRS遠(yuǎn)程無線升級更具有靈活性,逐漸成為大多數(shù)產(chǎn)品遠(yuǎn)程升級的主要模式??罩袩o線下載(Download Over The Air,DOTA)的模式有兩種,一種主動(dòng)式,一種被動(dòng)式。主動(dòng)式是指GPRS終端獲取升級指令后主動(dòng)到服務(wù)器上搜尋升級程序,并下載下來進(jìn)行系統(tǒng)內(nèi)編程;被動(dòng)式則是由服務(wù)器端控制軟件將升級文件打包,依次將數(shù)據(jù)發(fā)送至GPRS終端。相對于被動(dòng)式升級,主動(dòng)式升級速度和效率上更具有優(yōu)勢。在這里,本文介紹基于無線CPU模塊Q2686 FTP協(xié)議棧的DOTA升級模式。
OpenAt嵌入式系統(tǒng)是為GPRS無線CPU開發(fā)的一款小型操作系統(tǒng),集成了內(nèi)存分配、FLASH管理、數(shù)據(jù)流管理、GPIO管理、總線管理、定時(shí)器管理等多種功能[1]。底層為嵌入式API應(yīng)用層,包括程序初始化API、AT指令A(yù)PI、操作系統(tǒng)API、標(biāo)準(zhǔn)API、流控API、總線API等。包含了建立在OpenAt基礎(chǔ)之上的應(yīng)用開發(fā)層函數(shù)庫。應(yīng)用開發(fā)層函數(shù)庫(Advanced Distributed Learning,ADL)為開發(fā)人員提供了上層應(yīng)用接口,簡化了嵌入式應(yīng)用的開發(fā);同時(shí)ADL還提供了嵌入式應(yīng)用程序框架,包括消息解析器和服務(wù)聲明機(jī)制?;谝陨显?,OpenAt應(yīng)用程序開發(fā)應(yīng)用程序時(shí),更多的時(shí)間用于調(diào)用服務(wù)處理函數(shù),使系統(tǒng)更專注于程序本身的優(yōu)化。
OpenAt操作系統(tǒng)與應(yīng)用程序的關(guān)系如圖1所示。
圖1 OpenAt操作系統(tǒng)與應(yīng)用程序的關(guān)系
文件傳輸協(xié)議(File Transfer Protocol,F(xiàn)TP)是TCP/IP協(xié)議組中的協(xié)議之一[2]。該協(xié)議是以Internet文件傳送為基礎(chǔ),由一些羅列規(guī)格說明的文檔組成,目標(biāo)是提高文件的共享性,提供非直接使用的遠(yuǎn)程計(jì)算機(jī),使存儲(chǔ)介質(zhì)對用戶透明和可靠高效地傳送數(shù)據(jù)。FTP屬于一種客戶端/服務(wù)器端的系統(tǒng),F(xiàn)TP傳輸包括兩種方式:ASCII傳輸模式和二進(jìn)制數(shù)據(jù)傳輸模式。FTP支持兩種工作方式,Standard模式和Passive模式,即主動(dòng)方式和被動(dòng)方式,主動(dòng)模式連接過程是由客戶端向FTP服務(wù)器端口(默認(rèn)21)發(fā)送連接請求,服務(wù)器接收連接,建立一條命令鏈路,當(dāng)需要數(shù)據(jù)傳時(shí),客戶端在命令鏈路上發(fā)送PORT命令通知服務(wù)器發(fā)送數(shù)據(jù)到客戶端指定端口;被動(dòng)模式是指客戶端向服務(wù)器的FTP端口發(fā)送連接請求,服務(wù)器接收連接,建立一條命令鏈路,當(dāng)需要數(shù)據(jù)傳輸時(shí),服務(wù)器通過PASV命令通知客戶端新建數(shù)據(jù)傳輸端口,由客戶端向新建FTP端口發(fā)送數(shù)據(jù)連接請求,建立一條數(shù)據(jù)鏈路來傳輸數(shù)據(jù)。本文,重點(diǎn)討論被動(dòng)模式下的FTP數(shù)據(jù)傳輸。
在OpenAt操作系統(tǒng)中,啟動(dòng)DOTA遠(yuǎn)程升級的流程大致如下:啟動(dòng)WIP服務(wù),建立GPRS鏈路,打開FTP服務(wù)SOCKET連接,連接至指定FTP服務(wù)器,打開文件夾查找到目標(biāo)文件,由客戶端發(fā)起,執(zhí)行文件下載,完成下載后,啟動(dòng)OpenAt內(nèi)部在線編程服務(wù),從而完成升級。完整的系統(tǒng)流程如圖2所示。
圖2 OpenAt系統(tǒng)DOTA流程
在這里,以無線CPU模塊Q2686小系統(tǒng)為例,Q2686模塊是Sierra公司為工業(yè)應(yīng)用開發(fā)的高端GPRS無線CPU,適用于惡劣環(huán)境,具備抗強(qiáng)電磁干擾能力。內(nèi)部集成了32位的ARM9芯片,最高頻率為104 MHz,集成了32 M的Flash空間和8 M的RAM,擁有44個(gè)GPIO,兩路SPI,兩路UART口。集成了嵌入式OpenAt操作系統(tǒng),支持USB Slave和I2C總線[3]。
一個(gè)基于Q2686的車載GPS小系統(tǒng)硬件如圖3所示。
圖3 車載GPS小系統(tǒng)硬件
基于上述Q2686小系統(tǒng),設(shè)計(jì)OpenAt嵌入式程序。DOTA系統(tǒng)程序設(shè)計(jì)包括系統(tǒng)初始化,GPRS鏈路建立,F(xiàn)TP協(xié)議棧啟動(dòng),文件下載,升級安裝,系統(tǒng)重啟等幾個(gè)過程。
在OpenAt嵌入式系統(tǒng)中,啟動(dòng)GPRS的功能模塊是WIP插件庫,該插件庫集成了TCP/IP,UDP,F(xiàn)TP,HTTP等多種網(wǎng)絡(luò)協(xié)議棧,根據(jù)需要啟動(dòng)相應(yīng)的協(xié)議棧函數(shù)庫。在這里,我們建立FTP客戶端[4]。
OpenAt系統(tǒng)中,啟動(dòng)WIP登錄GPRS網(wǎng)絡(luò)首先啟動(dòng)系統(tǒng)的Bearer,Bearer在OpenAt中作為一種數(shù)據(jù)通道,在一個(gè)Bearer下可以建立多條不同協(xié)議棧的數(shù)據(jù)鏈路。Bearer的建立示例代碼如下:
Bearer通道建立完成后,當(dāng)BearerHandler返回函數(shù)返回WIP_BEV_IP_CONNECTED事件時(shí),表明當(dāng)前的PPP連接建立成功。
完成WIP_BEV_IP_CONNECTED事件返回后,創(chuàng)建FTP協(xié)議棧的客戶端連接[4]。啟動(dòng)函數(shù)為:
其中Channel值即FTP鏈路返回句柄。返回函數(shù)ClientEventHandler定義如下:
Download()函數(shù)下載文件到文件尾時(shí),系統(tǒng)自動(dòng)進(jìn)入WIP_CEV_PEER_CLOSE事件狀態(tài),完成下載。
在WIP_CEV_PEER_CLOSE事件狀態(tài)啟動(dòng)install()函數(shù),安裝下載完成的file.dwl文件。Install()函數(shù)運(yùn)行大約耗時(shí)3~5秒,安裝過程中,系統(tǒng)輸出ADL_AD_EVENT_INSTALL事件狀態(tài),表明系統(tǒng)已經(jīng)完成新程序的安裝,系統(tǒng)硬件自動(dòng)重新啟動(dòng),啟動(dòng)運(yùn)行新程序。完成整個(gè)下載過程。
在實(shí)際的DOTA程序設(shè)計(jì)中,存在很多不可預(yù)見的災(zāi)難性錯(cuò)誤,容易導(dǎo)致系統(tǒng)崩潰。為了保證系統(tǒng)DOTA程序的順利進(jìn)行,需要在DOTA過程中增加多級災(zāi)難預(yù)警以及保護(hù)措施[5]。保護(hù)措施如圖4所示。
圖4 DOTA過程中的保護(hù)措施
對基于GPRS無線CPU的終端產(chǎn)品進(jìn)行遠(yuǎn)程DOTA,可以很方便地實(shí)現(xiàn)軟件系統(tǒng)版本的更新,又減少了現(xiàn)場服務(wù)的成本,所以DOTA功能被很多產(chǎn)品采用,包括兒童追蹤器、車載GPS系統(tǒng)、GSM直放站監(jiān)控系統(tǒng)、GPRS道路交通誘導(dǎo)系統(tǒng)和家庭無線報(bào)警系統(tǒng)中。而基于FTP協(xié)議棧的DOTA應(yīng)用更具備一些優(yōu)勢,首先是無需服務(wù)器端控制軟件,減少了服務(wù)器軟件開發(fā)成本,其次是DOTA過程全部由下位機(jī)獨(dú)立完成,只需要將升級文件上載至固定FTP服務(wù)器的固定文件夾即可,下位機(jī)完成升級后自動(dòng)重啟運(yùn)行新程序,減少了人工干預(yù)的過程,實(shí)現(xiàn)了系統(tǒng)的自動(dòng)化運(yùn)行。
市場機(jī)遇和應(yīng)用技術(shù)的成熟往往是互相矛盾的[5],產(chǎn)品更新?lián)Q代的速度隨著技術(shù)的發(fā)展而加快,系統(tǒng)潛在的BUG會(huì)隨著產(chǎn)品的使用出現(xiàn),客戶的需求也會(huì)隨時(shí)改變,尤其對于車載類GPRS遠(yuǎn)程數(shù)據(jù)傳輸產(chǎn)品的設(shè)計(jì),往往客戶的需求并不是一次性提出的,后續(xù)的產(chǎn)品升級如果繼續(xù)采用傳統(tǒng)的現(xiàn)場燒錄方式已經(jīng)不合時(shí)宜,而且花費(fèi)的人力物力也非常龐大。GPRS類產(chǎn)品本身就是遠(yuǎn)程數(shù)據(jù)傳輸,借助于遠(yuǎn)程數(shù)據(jù)傳輸,通過CPU內(nèi)部的自安裝功能,設(shè)計(jì)可以隨時(shí)隨地遠(yuǎn)程升級的程序,為客戶提供最好的非現(xiàn)場技術(shù)支持手段,關(guān)鍵可以在客戶不知不覺的情況下實(shí)視遠(yuǎn)程DOTA升級。該方案從根本上解決了現(xiàn)場升級困難和耗費(fèi)大量財(cái)力的情況,加速了新產(chǎn)品上市的時(shí)間,可以為產(chǎn)品的售后提供更快更完美的用戶服務(wù),增強(qiáng)產(chǎn)品的市場競爭力。
[1]洪利,王敏,章?lián)P,等.無線CPU與移動(dòng)IP網(wǎng)絡(luò)開發(fā)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2008.
[2](美)理查德·史蒂芬.TCP/IP詳解卷1協(xié)議[M].范建華,胥光輝,張濤,譯.北京:北京大學(xué)出版社,1999.
[3]Wavecom Corporation. WM_Q2686_modules_spec_sheet[EB/OL].(2007-03-06)[2017-10-25].http://3.imimg.com/data3/TE/LA/MY-1833510/wavecom-gsm-gprs-q2686a.pdf.
[4]Wavecom Corporation. ADL_user_guide for openat@os v3.13[EB/OL].(2007-05-03)[2017-10-25].http://bbs.sendsms.com.cn/attachments/f20/1952d1286003062-basic_development_guide-adl_user_guide.pdf.
[5]胡靜靜.實(shí)現(xiàn)基于GPRS的無線遠(yuǎn)程IAP功能[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2005(1):21-23.
Remote DOTA system of OpenAt application software based on FTP protocol stack
Bao Haisen
(Huawei Technology Co., Ltd., Shenzhen 518129, China)
OpenAt is an embedded operating system based on GSM/GPRS wireless CPU module. OpenAt system integrates most of application development API libraries based on GSM/GPRS wireless CPU module. Download over the air(DOTA)refers to system remote wireless upgrade function. Taking Q2686 wireless CPU as an example, this paper introduces the remote DOTA software design based on file transfer protocol(FTP)on OpenAt operating system platform, and provides a method of remote online upgrade for GSM/GPRS product application.
FTP; OpenAt; DOTA; GPRS; TCP/IP
鮑海森(1977— ),男,河北衡水人,高級工程師,學(xué)士;研究方向:車聯(lián)網(wǎng)技術(shù)。