鮑海森
(華為技術有限公司,廣東 深圳 518129)
基于FTP協議棧的OpenAt應用軟件遠程DOTA系統
鮑海森
(華為技術有限公司,廣東 深圳 518129)
OpenAt是一款基于GSM/GPRS無線CPU模塊的嵌入式操作系統。OpenAt系統集成了基于GSM/GPRS無線CPU模塊的大部分應用開發API函數庫。DOTA是指系統遠程無線升級功能。文章以Q2686無線CPU為模塊為例,介紹OpenAt操作系統平臺上的基于FTP的遠程DOTA軟件設計,為GSM/GPRS產品應用提供一種遠程在線升級手段。
文件傳輸協議;OpenAt;空中無線下載;GPRS;TCP/IP
電子技術的發展,使得電子產品的升級換代越來越快,用戶對電子產品的需求也會隨著技術的發展而增加或改進,使得產品設計周期越來越短,同時帶來的產品后續維護服務也越來越復雜。GPRS網絡和互聯網技術的發展使得無線遠程數據傳輸技術深入到社會的各個領域,基于GPRS網絡的終端系統也越來越多。在眾多GPRS終端產品中,由于產品設計的周期變短,系統或多或少會存在軟件缺陷,同時由于不同客戶的需求也會增加,使得更多GPRS終端產品需要軟件升級。相對于傳統的有線升級模式,GPRS遠程無線升級更具有靈活性,逐漸成為大多數產品遠程升級的主要模式。空中無線下載(Download Over The Air,DOTA)的模式有兩種,一種主動式,一種被動式。主動式是指GPRS終端獲取升級指令后主動到服務器上搜尋升級程序,并下載下來進行系統內編程;被動式則是由服務器端控制軟件將升級文件打包,依次將數據發送至GPRS終端。相對于被動式升級,主動式升級速度和效率上更具有優勢。在這里,本文介紹基于無線CPU模塊Q2686 FTP協議棧的DOTA升級模式。
OpenAt嵌入式系統是為GPRS無線CPU開發的一款小型操作系統,集成了內存分配、FLASH管理、數據流管理、GPIO管理、總線管理、定時器管理等多種功能[1]。底層為嵌入式API應用層,包括程序初始化API、AT指令API、操作系統API、標準API、流控API、總線API等。包含了建立在OpenAt基礎之上的應用開發層函數庫。應用開發層函數庫(Advanced Distributed Learning,ADL)為開發人員提供了上層應用接口,簡化了嵌入式應用的開發;同時ADL還提供了嵌入式應用程序框架,包括消息解析器和服務聲明機制。基于以上原因,OpenAt應用程序開發應用程序時,更多的時間用于調用服務處理函數,使系統更專注于程序本身的優化。
OpenAt操作系統與應用程序的關系如圖1所示。

圖1 OpenAt操作系統與應用程序的關系
文件傳輸協議(File Transfer Protocol,FTP)是TCP/IP協議組中的協議之一[2]。該協議是以Internet文件傳送為基礎,由一些羅列規格說明的文檔組成,目標是提高文件的共享性,提供非直接使用的遠程計算機,使存儲介質對用戶透明和可靠高效地傳送數據。FTP屬于一種客戶端/服務器端的系統,FTP傳輸包括兩種方式:ASCII傳輸模式和二進制數據傳輸模式。FTP支持兩種工作方式,Standard模式和Passive模式,即主動方式和被動方式,主動模式連接過程是由客戶端向FTP服務器端口(默認21)發送連接請求,服務器接收連接,建立一條命令鏈路,當需要數據傳時,客戶端在命令鏈路上發送PORT命令通知服務器發送數據到客戶端指定端口;被動模式是指客戶端向服務器的FTP端口發送連接請求,服務器接收連接,建立一條命令鏈路,當需要數據傳輸時,服務器通過PASV命令通知客戶端新建數據傳輸端口,由客戶端向新建FTP端口發送數據連接請求,建立一條數據鏈路來傳輸數據。本文,重點討論被動模式下的FTP數據傳輸。
在OpenAt操作系統中,啟動DOTA遠程升級的流程大致如下:啟動WIP服務,建立GPRS鏈路,打開FTP服務SOCKET連接,連接至指定FTP服務器,打開文件夾查找到目標文件,由客戶端發起,執行文件下載,完成下載后,啟動OpenAt內部在線編程服務,從而完成升級。完整的系統流程如圖2所示。

圖2 OpenAt系統DOTA流程
在這里,以無線CPU模塊Q2686小系統為例,Q2686模塊是Sierra公司為工業應用開發的高端GPRS無線CPU,適用于惡劣環境,具備抗強電磁干擾能力。內部集成了32位的ARM9芯片,最高頻率為104 MHz,集成了32 M的Flash空間和8 M的RAM,擁有44個GPIO,兩路SPI,兩路UART口。集成了嵌入式OpenAt操作系統,支持USB Slave和I2C總線[3]。
一個基于Q2686的車載GPS小系統硬件如圖3所示。

圖3 車載GPS小系統硬件
基于上述Q2686小系統,設計OpenAt嵌入式程序。DOTA系統程序設計包括系統初始化,GPRS鏈路建立,FTP協議棧啟動,文件下載,升級安裝,系統重啟等幾個過程。
在OpenAt嵌入式系統中,啟動GPRS的功能模塊是WIP插件庫,該插件庫集成了TCP/IP,UDP,FTP,HTTP等多種網絡協議棧,根據需要啟動相應的協議棧函數庫。在這里,我們建立FTP客戶端[4]。
OpenAt系統中,啟動WIP登錄GPRS網絡首先啟動系統的Bearer,Bearer在OpenAt中作為一種數據通道,在一個Bearer下可以建立多條不同協議棧的數據鏈路。Bearer的建立示例代碼如下:

Bearer通道建立完成后,當BearerHandler返回函數返回WIP_BEV_IP_CONNECTED事件時,表明當前的PPP連接建立成功。
完成WIP_BEV_IP_CONNECTED事件返回后,創建FTP協議棧的客戶端連接[4]。啟動函數為:

其中Channel值即FTP鏈路返回句柄。返回函數ClientEventHandler定義如下:

Download()函數下載文件到文件尾時,系統自動進入WIP_CEV_PEER_CLOSE事件狀態,完成下載。
在WIP_CEV_PEER_CLOSE事件狀態啟動install()函數,安裝下載完成的file.dwl文件。Install()函數運行大約耗時3~5秒,安裝過程中,系統輸出ADL_AD_EVENT_INSTALL事件狀態,表明系統已經完成新程序的安裝,系統硬件自動重新啟動,啟動運行新程序。完成整個下載過程。
在實際的DOTA程序設計中,存在很多不可預見的災難性錯誤,容易導致系統崩潰。為了保證系統DOTA程序的順利進行,需要在DOTA過程中增加多級災難預警以及保護措施[5]。保護措施如圖4所示。

圖4 DOTA過程中的保護措施
對基于GPRS無線CPU的終端產品進行遠程DOTA,可以很方便地實現軟件系統版本的更新,又減少了現場服務的成本,所以DOTA功能被很多產品采用,包括兒童追蹤器、車載GPS系統、GSM直放站監控系統、GPRS道路交通誘導系統和家庭無線報警系統中。而基于FTP協議棧的DOTA應用更具備一些優勢,首先是無需服務器端控制軟件,減少了服務器軟件開發成本,其次是DOTA過程全部由下位機獨立完成,只需要將升級文件上載至固定FTP服務器的固定文件夾即可,下位機完成升級后自動重啟運行新程序,減少了人工干預的過程,實現了系統的自動化運行。
市場機遇和應用技術的成熟往往是互相矛盾的[5],產品更新換代的速度隨著技術的發展而加快,系統潛在的BUG會隨著產品的使用出現,客戶的需求也會隨時改變,尤其對于車載類GPRS遠程數據傳輸產品的設計,往往客戶的需求并不是一次性提出的,后續的產品升級如果繼續采用傳統的現場燒錄方式已經不合時宜,而且花費的人力物力也非常龐大。GPRS類產品本身就是遠程數據傳輸,借助于遠程數據傳輸,通過CPU內部的自安裝功能,設計可以隨時隨地遠程升級的程序,為客戶提供最好的非現場技術支持手段,關鍵可以在客戶不知不覺的情況下實視遠程DOTA升級。該方案從根本上解決了現場升級困難和耗費大量財力的情況,加速了新產品上市的時間,可以為產品的售后提供更快更完美的用戶服務,增強產品的市場競爭力。
[1]洪利,王敏,章揚,等.無線CPU與移動IP網絡開發技術[M].北京:北京航空航天大學出版社,2008.
[2](美)理查德·史蒂芬.TCP/IP詳解卷1協議[M].范建華,胥光輝,張濤,譯.北京:北京大學出版社,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]胡靜靜.實現基于GPRS的無線遠程IAP功能[J].單片機與嵌入式系統應用,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— ),男,河北衡水人,高級工程師,學士;研究方向:車聯網技術。