• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于FTP協(xié)議棧的OpenAt應(yīng)用軟件遠(yuǎn)程DOTA系統(tǒng)

      2017-10-28 21:49鮑海森
      軟件工程 2017年9期

      摘 要:OpenAt是一款基于GSM/GPRS無線CPU模塊的嵌入式操作系統(tǒng)。OpenAt系統(tǒng)集成了基于GSM/GPRS無線CPU模塊的大部分應(yīng)用開發(fā)API函數(shù)庫。DOTA是指系統(tǒng)遠(yuǎn)程無線升級(jí)功能。本文以Q2686無線CPU為模塊為例,介紹OpenAt操作系統(tǒng)平臺(tái)上的基于FTP協(xié)議的遠(yuǎn)程DOTA軟件設(shè)計(jì),為GSM/GPRS產(chǎn)品應(yīng)用提供一種遠(yuǎn)程在線升級(jí)手段。

      關(guān)鍵詞:FTP;OPENAT;DOTA;GPRS;TCP/IP

      中圖分類號(hào):TP23 文獻(xiàn)標(biāo)識(shí)碼:A

      Abstract:OpenAt is an embedded operating system based on the GSM/GPRS wireless CPU module.OpenAt integrates most of the applications based on the GSM/GPRS wireless CPU module to develop the API function library.DOTA refers to the system remote wireless upgrade function.Taking Q2686 wireless CPU as an example,this paper introduces the design of remote DOTA software based on FTP on the OpenAt operating system platform,and provides an online remote upgrade method for the GSM/GPRS product application.

      Keywords:FTP;OPENAT;DOTA;GPRS;TCP/IP

      1 引言(Introduction)

      電子技術(shù)的發(fā)展,使得電子產(chǎn)品的升級(jí)換代越來越快,用戶對(duì)電子產(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)品需要軟件升級(jí),相對(duì)于傳統(tǒng)的有線升級(jí)模式,GPRS遠(yuǎn)程無線升級(jí)更具有靈活性,逐漸成為大多數(shù)產(chǎn)品遠(yuǎn)程升級(jí)的主要模式。DOTA的全稱是Download Over The Air,即空中無線下載。DOTA的模式有兩種,一種主動(dòng)式,一種被動(dòng)式。主動(dòng)式是指GPRS終端獲取升級(jí)指令后主動(dòng)到服務(wù)器上搜尋升級(jí)程序,并下載下來進(jìn)行系統(tǒng)內(nèi)編程;被動(dòng)式則是由服務(wù)器端控制軟件將升級(jí)文件打包,依次將數(shù)據(jù)發(fā)送至GPRS終端。相對(duì)于被動(dòng)式升級(jí),主動(dòng)式升級(jí)速度和效率上更具有優(yōu)勢(shì)。在這里,我們介紹基于無線CPU模塊Q2686 FTP協(xié)議棧的DOTA升級(jí)模式。

      2 OpenAt系統(tǒng)簡(jiǎn)介(OpenAt system introduction)

      OpenAt嵌入式系統(tǒng)是為GPRS無線CPU開發(fā)的一款小型操作系統(tǒng),集成了內(nèi)存分配、FLASH管理、數(shù)據(jù)流管理、GPIO管理、總線管理、定時(shí)器管理等多種功能。底層為嵌入式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ù)庫(簡(jiǎn)稱ADL)為開發(fā)人員提供了上層應(yīng)用接口,簡(jiǎn)化了嵌入式應(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)化[1]。

      OpenAt操作系統(tǒng)與應(yīng)用程序關(guān)系框圖如圖1所示。

      3 FTP協(xié)議棧簡(jiǎn)介(FTP protocol stack introduction)

      FTP協(xié)議是TCP/IP協(xié)議組中的協(xié)議之一,英文縮寫為File Transfer Protocol,即文件傳輸協(xié)議。該協(xié)議是以Internet文件傳送為基礎(chǔ),由一系列規(guī)格說明文檔組成,目標(biāo)是提高文件的共享性,提供非直接使用的遠(yuǎn)程計(jì)算機(jī),使存儲(chǔ)介質(zhì)對(duì)用戶透明和可靠高效的傳送數(shù)據(jù),F(xiàn)TP屬于一種客戶端/服務(wù)器端的系統(tǒng)。FTP傳輸包括兩種方式:ASCII傳輸模式和二進(jìn)制數(shù)據(jù)傳輸模式。FTP支持兩種工作方式,Standard模式和Passive模式,即主動(dòng)方式和被動(dòng)方式,主動(dòng)模式連接過程是由客戶端向FTP服務(wù)器端口(默認(rèn)21)發(fā)送連接請(qǐng)求,服務(wù)器接收連接,建立一條命令鏈路,當(dāng)需要數(shù)據(jù)傳時(shí),客戶端在命令鏈路上發(fā)送PORT命令通知服務(wù)器發(fā)送數(shù)據(jù)到客戶端指定端口;被動(dòng)模式是指客戶端向服務(wù)器的FTP端口發(fā)送連接請(qǐng)求,服務(wù)器接收連接,建立一條命令鏈路,當(dāng)需要數(shù)據(jù)傳輸時(shí),服務(wù)器通過PASV命令通知客戶端新建數(shù)據(jù)傳輸端口,由客戶端向新建FTP端口發(fā)送數(shù)據(jù)連接請(qǐng)求,建立一條數(shù)據(jù)鏈路來傳輸數(shù)據(jù)。在本文中,重點(diǎn)討論被動(dòng)模式下的FTP數(shù)據(jù)傳輸[2]。

      4 OpenAt系統(tǒng)DOTA流程(OpenAt system DOTA

      process)

      在OpenAt操作系統(tǒng)中,啟動(dòng)DOTA遠(yuǎn)程升級(jí)的流程大致如下:?jiǎn)?dòng)WIP服務(wù),建立GPRS鏈路,打開FTP服務(wù)SOCKET連接,連接至指定FTP服務(wù)器,打開文件夾查找到目標(biāo)文件,由客戶端發(fā)起,執(zhí)行文件下載,完成下載后,啟動(dòng)OpenAt內(nèi)部在線編程服務(wù),從而完成升級(jí)。完整的系統(tǒng)流程圖如圖2所示。

      5 GPRS終端硬件系統(tǒng)(GPRS terminal hardware

      system)endprint

      在這里,以無線CPU模塊Q2686小系統(tǒng)為例,Q2686模塊是Sierra公司為工業(yè)應(yīng)用開發(fā)的高端GPRS無線CPU,適用于惡劣環(huán)境,具備抗強(qiáng)電磁干擾能力。內(nèi)部集成了32位的ARM9芯片,最高頻率為104MHz,集成了32M的Flash空間和8M的RAM,擁有44個(gè)GPIO、兩路SPI、兩路UART口。集成了嵌入式OpenAt操作系統(tǒng),支持USB Slave和I2C總線[3]。

      一個(gè)基于Q2686的車載GPS小系統(tǒng)硬件框圖如圖3所示。

      6 DOTA軟件設(shè)計(jì)(DOTA software design)

      基于上述Q2686小系統(tǒng),設(shè)計(jì)OpenAt嵌入式程序。DOTA系統(tǒng)程序設(shè)計(jì)包括系統(tǒng)初始化、GPRS鏈路建立、FTP協(xié)議棧啟動(dòng)、文件下載、升級(jí)安裝、系統(tǒng)重啟等過程。

      6.1 GPRS數(shù)據(jù)鏈路的建立[4]

      在OpenAt嵌入式系統(tǒng)中,啟動(dòng)GPRS的功能模塊是WIP插件庫,該插件庫集成了TCP/IP、UDP、FTP、HTTP等多種網(wǎng)絡(luò)協(xié)議棧,根據(jù)需要啟動(dòng)相應(yīng)的協(xié)議棧函數(shù)庫。在這里,我們建立FTP客戶端。

      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的建立示例代碼如下:

      void StartWipHandler(u8 ID){

      s8 sReturn;

      if(wip_netInit()==0){//初始化網(wǎng)絡(luò)協(xié)議棧 sReturn=wip_bearerOpen(&br,"GPRS",BearerHandler,NULL);//打開Bearer的GPRS鏈路

      if((sReturn==0)||(sReturn==WIP_BERR_ALREADY)){ sReturn=wip_bearerSetOpts(br,WIP_BOPT_GPRS_APN,”CMNET”,

      WIP_BOPT_LOGIN,NULL,WIP_BOPT_PASSWORD,NULL,WIP_BOPT_END);//設(shè)置GPS參數(shù),APN接入點(diǎn),PPP協(xié)議的認(rèn)證用戶名和密碼

      if(sReturn==0) sReturn=wip_bearerStart(br);//建立PPP連接

      }}}

      Bearer通道建立完成后,當(dāng)BearerHandler返回函數(shù)返回WIP_BEV_IP_CONNECTED事件時(shí),表明當(dāng)前的PPP連接建立成功。

      6.2 FTP協(xié)議棧的啟動(dòng)

      完成WIP_BEV_IP_CONNECTED事件返回后,創(chuàng)建FTP協(xié)議棧的客戶端連接[4]。啟動(dòng)函數(shù)為:

      Channel=wip_FTPClientCreateOpts(“202.113.23.56”,ClientEventHandler,NULL,

      WIP_COPT_USER,”ADMIN”,//FTP登錄用戶名

      WIP_COPT_PASSWORD,”password”,//FTP登錄密碼

      WIP_COPT_PASSIVE,TRUE,//建立被動(dòng)式連接

      WIP_COPT_PEER_PORT,21,//端口

      WIP_COPT_END);

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

      void ClientEventHandler(wip_event_t*event,void*ctx) {

      switch(event->kind){

      case WIP_CEV_READ:break; //FTP數(shù)據(jù)包讀操作

      case WIP_CEV_OPEN: //FTP鏈路建立完成

      sReturn=wip_cwd(Channel,”file/download”);//切換到文件所在目錄

      break;

      case WIP_CEV_DONE://切換文件目錄完成

      wip_getFile(Channel,”file.dwl”,(wip_eventHandler_f)FtpevhHandler,NULL);//下載file.dwl二進(jìn)制文件

      break;

      }}

      其中,wip_getFile函數(shù)的返回函數(shù)FtpevhHandler定義如下:

      Void FtpevhHandler(wip_event_t*ev,void*ctx){

      switch(ev->kind){

      sase WIP_CEV_READ://下載文件

      downloadFile();break;

      case WIP_CEV_PEER_CLOSE://下載完成

      install();//啟動(dòng)升級(jí)安裝函數(shù)

      default:break;

      }}

      系統(tǒng)返回WIP_CEV_READ事件狀態(tài),立即啟動(dòng)download()函數(shù)進(jìn)行文件下載存儲(chǔ),download示例代碼為:

      Void download(u8 ID){

      if((len=wip_read(Channel,&FtpBuf[0],sizeof(FtpBuf)))>0){

      sReturn=adl_adWrite(ptk_UpDataCellHandle,

      len,F(xiàn)tpBuf);//存入Flash空間endprint

      DataNumber+=len;//文件長(zhǎng)度變量,全局變量

      if(sReturn==0)adl_tmrSubscribe(FALSE,

      2,ADL_TMR_TYPE_100MS,download);//200ms后重新調(diào)用download()函數(shù)

      }}

      Download()函數(shù)下載文件到文件尾時(shí),系統(tǒng)自動(dòng)進(jìn)入WIP_CEV_PEER_CLOSE事件狀態(tài),完成下載。

      6.3 升級(jí)程序

      在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è)下載過程。

      6.4 系統(tǒng)的安全性設(shè)計(jì)

      在實(shí)際的DOTA程序設(shè)計(jì)中,存在很多不可預(yù)見的災(zāi)難性錯(cuò)誤,容易導(dǎo)致系統(tǒng)崩潰,為了保證系統(tǒng)DOTA程序的順利進(jìn)行,需要在DOTA過程中增加多級(jí)災(zāi)難預(yù)警和保護(hù)措施[5]。保護(hù)措施如圖4所示。

      7 遠(yuǎn)程DOTA系統(tǒng)的應(yīng)用(Application of remote

      DOTA system )

      對(duì)基于GPRS無線CPU的終端產(chǎn)品進(jìn)行遠(yuǎn)程DOTA,可以很方便地實(shí)現(xiàn)軟件系統(tǒng)版本的更新,又減少了現(xiàn)場(chǎng)服務(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)勢(shì),首先是無須服務(wù)器端控制軟件,減少了服務(wù)器軟件開發(fā)成本,其次是DOTA過程全部由下位機(jī)獨(dú)立完成,只需要將升級(jí)文件上載至固定FTP服務(wù)器的固定文件夾即可,下位機(jī)完成升級(jí)后自動(dòng)重啟運(yùn)行新程序,減少了人工干預(yù)的過程,實(shí)現(xiàn)了系統(tǒng)的自動(dòng)化運(yùn)行。

      8 結(jié)論(Conclusion)

      市場(chǎng)機(jī)遇和應(yīng)用技術(shù)的成熟往往是互相矛盾的[5],產(chǎn)品更新?lián)Q代的速度隨著技術(shù)的發(fā)展而加快,系統(tǒng)潛在的BUG會(huì)隨著產(chǎn)品的使用出現(xiàn),客戶的需求也會(huì)隨時(shí)改變,尤其對(duì)于車載類GPRS遠(yuǎn)程數(shù)據(jù)傳輸產(chǎn)品的設(shè)計(jì),往往客戶的需求并不是一次性提出的,后續(xù)的產(chǎn)品升級(jí)如果繼續(xù)采用傳統(tǒng)的現(xiàn)場(chǎng)燒錄方式已經(jīng)不合時(shí)宜,而且花費(fèi)的人力物力也是非常龐大。GPRS類產(chǎn)品本身就是遠(yuǎn)程數(shù)據(jù)傳輸,借助于遠(yuǎn)程數(shù)據(jù)傳輸,通過CPU內(nèi)部的自安裝功能,設(shè)計(jì)可以隨時(shí)隨地遠(yuǎn)程升級(jí)的程序,是為客戶提供最好的非現(xiàn)場(chǎng)技術(shù)支持手段,更關(guān)鍵可以實(shí)現(xiàn)在客戶不知不覺的情況下實(shí)時(shí)了遠(yuǎn)程DOTA升級(jí)。該方案從根本上解決了現(xiàn)場(chǎng)升級(jí)困難和耗費(fèi)大量財(cái)力的情況,加速了新產(chǎn)品上市的時(shí)間,可以為產(chǎn)品的售后提供更快更完美

      的用戶服務(wù),增強(qiáng)產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。

      參考文獻(xiàn)(References)

      [1] 洪利,等.無線CPU與移動(dòng)IP網(wǎng)絡(luò)開發(fā)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2015.

      [2] W.Richard Stevers(美).TCP/IP詳解(第三卷)協(xié)議[M].北京:北京大學(xué)出版社,2015.

      [3] WM_Q2686_modules_spec_sheet [S].Wavecom Corporation,

      2016.

      [4] ADL_User_Guide For OpenAt@OS[S].Wavecom Corporation,

      2016.

      [5] 胡靜靜.實(shí)現(xiàn)基于GPRS的無線遠(yuǎn)程IAP功能[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2005(1):21-23.

      作者簡(jiǎn)介:

      鮑海森(1977-),男,本科,高級(jí)工程師.研究領(lǐng)域:車聯(lián)網(wǎng)技術(shù),戰(zhàn)略方向規(guī)劃,車聯(lián)網(wǎng)商業(yè)模式分析.endprint

      延寿县| 仙桃市| 泸州市| 交城县| 西安市| 朝阳县| 麻栗坡县| 古丈县| 荃湾区| 德江县| 绥中县| 永昌县| 呼伦贝尔市| 东乡族自治县| 浦城县| 咸丰县| 松潘县| 花莲市| 濮阳县| 石渠县| 武胜县| 旺苍县| 长宁县| 小金县| 青冈县| 襄城县| 龙岩市| 毕节市| 扶余县| 正安县| 汤原县| 乡宁县| 黄陵县| 吉首市| 太谷县| 白河县| 崇州市| 长泰县| 中西区| 泰和县| 那坡县|