• 
    

    
    

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

      面向分布式地震儀的應(yīng)用升級更新軟件設(shè)計

      2019-09-10 09:57:36李懷良牟雪嬌
      儀表技術(shù)與傳感器 2019年8期
      關(guān)鍵詞:固件消息分布式

      藺 晨,李懷良,牟雪嬌

      (西南科技大學(xué)核廢物與環(huán)境保護國防重點學(xué)科實驗室,四川綿陽 621010)

      0 引言

      分布式地震數(shù)據(jù)采集系統(tǒng)通常由各類資源(如計算、內(nèi)存及傳輸帶寬等)受限的嵌入式節(jié)點系統(tǒng)構(gòu)成,需要長期野外作業(yè),存在應(yīng)用維護(漏洞修復(fù))、需求更新(功能升級)等實際需求[1]。但是,目前快速的應(yīng)用升級更新技術(shù)在地震儀器的應(yīng)用升級方面應(yīng)用遠少于通用電子產(chǎn)品領(lǐng)域。

      目前,嵌入式節(jié)點系統(tǒng)的程序更新方式主要分為單節(jié)點下載器燒寫和基于各類網(wǎng)絡(luò)服務(wù)掛載的更新方法兩類。前者主要利用外界媒質(zhì)(如紫外線、高壓電、低壓電等)、專用燒寫工具和軟件[2],但是在分布式系統(tǒng)規(guī)模較大時該方法存在耗時耗力、生產(chǎn)效率低的問題,因此人工采用下載器燒錄的方式不能滿足實際需求[3];后者主要利用宿主機和目標機(采集站)上的各類網(wǎng)絡(luò)服務(wù)實現(xiàn)各采集站的程序升級更新[4],如NFS、TFTP、TCP/UDP、SAMBA和SSH等,但是該方法要求操作人員具備嵌入式軟件開發(fā)能力,僅適用于設(shè)備研發(fā)和調(diào)試階段。

      上述兩種方式均存在重復(fù)人工操作、耗時耗力等問題,不適用于已投入生產(chǎn)的儀器,且開發(fā)人員和用戶角色分離的實際對應(yīng)用升級方式提出更加便捷、高效的要求[1-3]。因此,本文提出一種基于UDP和FTP協(xié)議的分布式地震儀的應(yīng)用升級方法,整合了基于網(wǎng)絡(luò)方式的應(yīng)用升級步驟,開發(fā)了一套用于固件程序更新和命令消息發(fā)送的軟件,主要分為Windows PC上的C#程序和采集站上的嵌入式Linux C應(yīng)用程序,利用各節(jié)點嵌入式系統(tǒng)來批量完成各類重復(fù)操作,方便快捷、提高效率。該方法的研究與測試主要在課題組研制的復(fù)雜山地多波寬頻帶分布式地震數(shù)據(jù)采集系統(tǒng)[5]上進行。

      1 總體方案設(shè)計

      1.1 應(yīng)用升級方法總體方案

      圖1所示為分布式地震數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)框圖。該方法所依附的系統(tǒng)架構(gòu)如圖2所示,主要由同一局域網(wǎng)內(nèi)的若干搭載嵌入式Linux系統(tǒng)的采集站、中央服務(wù)器和用戶控制臺Windows PC機(運行地震數(shù)據(jù)處理軟件)構(gòu)成,實現(xiàn)地震數(shù)據(jù)采集、數(shù)據(jù)回收、數(shù)據(jù)可視化以及固件在線升級[6]。而Linux PC機主要用于開發(fā)者進行儀器功能程序開發(fā),提供待更新的固件程序,可通過U盤、SAMBA等網(wǎng)絡(luò)服務(wù)的方式將固件包下載到Windows PC上。

      圖1 分布式地震數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)框圖

      圖2 在線更新方法依賴的系統(tǒng)架構(gòu)圖

      用戶控制臺負責(zé)準備待更新的固件數(shù)據(jù)包,并發(fā)送相應(yīng)的更新消息、控制命令。中央服務(wù)器負責(zé)對用戶控制臺發(fā)送的固件數(shù)據(jù)包、指令消息進行轉(zhuǎn)發(fā)。采集站對中央服務(wù)器傳來的更新消息或命令消息進行解析,執(zhí)行相關(guān)指令。

      1.2 固件包上傳的兩級目錄機制

      固件包主要包括可執(zhí)行程序文件、采集站配置參數(shù)文件等,要求更新機制具有很強的可靠性。對于采集站固件更新,系統(tǒng)中采用雙目錄將固件執(zhí)行與固件存儲分離,若當(dāng)前升級失敗,在系統(tǒng)未損壞條件下重啟后還可回到上一穩(wěn)定版本。具體過程:首先,將固件包上傳更新目錄,再由采集站解析軟件包從更新目錄拷貝到執(zhí)行目錄。其次,需在嵌入式Linux系統(tǒng)內(nèi)核中開啟FTP服務(wù)并設(shè)置開機啟動相關(guān)進程,而Windows PC主要根據(jù)待升級節(jié)點IP列表建立FTP連接,初始化連接參數(shù)(FTP連接個數(shù)、被動模式、端口等),再獲取待更新固件包的絕對路徑,將文件上傳到指定目錄。最后,在嵌入式Linux系統(tǒng)新建目錄/var/ftp/update.iso/作為固件包的存儲目錄,在本軟件更新操作執(zhí)行完成后,固件程序?qū)⒈淮嫒氩杉竟δ艹绦虻膱?zhí)行目錄/home/station/。這種兩級目錄更新機制,可以有效避免采集站在更新過程中由于異常(如:突然斷電)造成重啟時系統(tǒng)崩潰的問題。

      1.3 自定義格式消息包發(fā)送

      消息包主要包括程序更新消息和命令控制消息兩類,格式簡單,數(shù)據(jù)量小。因此選擇傳輸延遲小、效率高的UDP協(xié)議進行傳輸[7],用于告知采集節(jié)點執(zhí)行相應(yīng)的消息命令或進行程序升級操作。本方法自定義的消息包格式說明如表1所示。

      表1 自定義消息包格式說明

      注:固件更新消息內(nèi)容的前綴為固件名稱,后綴是以時間命名的版本號;程序固件以課題組研發(fā)的分布式地震數(shù)據(jù)采集系統(tǒng)中的程序命名。

      2 程序升級更新軟件實現(xiàn)

      2.1 Windows PC端的固件及消息發(fā)送軟件

      本文以降低儀器設(shè)備維護難度、便于用戶使用為目標,開發(fā)了與地震數(shù)據(jù)處理軟件共用同一主機的固件更新軟件。該軟件流程如圖3所示,主要功能是選擇采集網(wǎng)絡(luò)拓撲中的若干采集節(jié)點,建立FTP連接上傳固件包、建立UDP連接發(fā)送消息命令等。

      圖3 Windows PC端C#.NET發(fā)送軟件流程圖

      本發(fā)送軟件主要采用C#在.NET框架下開發(fā)而成。首先,Windows PC發(fā)送軟件打包固件包和消息包,通過TcpClient對象連接中央服務(wù)器IP,通過3333端口的Netty服務(wù)以StartWrite方法將固件包和消息包發(fā)送至服務(wù)器,并且最終在服務(wù)器提供的Tomcat容器中獲取分布式采集網(wǎng)絡(luò)的拓撲信息。其次,中央服務(wù)器整理數(shù)據(jù)包格式,以自定義協(xié)議格式將數(shù)據(jù)包在Netty服務(wù)下轉(zhuǎn)發(fā)至各個采集站。此外,服務(wù)器還提供了Jfinal Java Web服務(wù),用于獲取分布式地震數(shù)據(jù)網(wǎng)絡(luò)的活動信息。最后,采集節(jié)點在21端口提供FTP服務(wù),用于支持數(shù)據(jù)文件傳輸,在8000端口提供UDP服務(wù),支持接收更新消息和命令控制消息。

      2.2 Linux采集節(jié)點端的ANALYSIS消息解析軟件

      Linux采集節(jié)點端的消息解析軟件主要實現(xiàn)固件包的接收、消息包的解析功能。解析軟件主要是在Linux PC(宿主機)上通過Eclipse IDE工具,借助arm-linux-交叉編譯工具鏈,采用C/C++語言進行交叉編譯開發(fā)而成,再將其下載到嵌入式Linux采集站(目標機)上運行。

      為了使新的固件程序能夠在采集站程序更新后或系統(tǒng)重啟后自動加載運行,需要修改嵌入式Linux系統(tǒng)的開機啟動腳本文件/etc/init.d/rcS,以便重啟自動運行新版本程序[8]。開機啟動項設(shè)置如表2所示。

      對于固件程序,需在節(jié)點系統(tǒng)Linux內(nèi)核源碼包編譯成內(nèi)核映像uImage時,需要在配置菜單項menuconfig過程中,配置“FTP protocol support->”相關(guān)服務(wù)使得節(jié)點系統(tǒng)支持FTP協(xié)議,并開啟FTP相關(guān)服務(wù),使系統(tǒng)支持遠程中央服務(wù)器訪問,接收服務(wù)器上傳至采集站上的固件程序包。

      表2 自開機啟動項設(shè)置說明

      對于消息包,主要通過ANALYSIS解析軟件在8000端口接收服務(wù)器發(fā)送的UDP消息包。ANALYSIS解析軟件根據(jù)程序功能主要分為4部分:建立連接、接收消息、提取消息和執(zhí)行操作。首先,由中央服務(wù)器發(fā)來連接請求,通過握手機制建立連接。其次,采集站通過recvfrom()函數(shù)實現(xiàn)消息包的接收。然后,根據(jù)自定義消息格式提取“:”分隔符前的消息頭并判別類型,若為命令消息則保存消息內(nèi)容,若為固件更新消息則去除版本信息后保存消息內(nèi)容。最后,執(zhí)行命令或更新操作,若為固件更新消息則將程序拷貝至/home/station/下,并將程序名、版本名和當(dāng)前的系統(tǒng)時間寫入自建的更新日志/var/ftp/update.log中;若為命令消息則調(diào)用system()系統(tǒng),創(chuàng)建子進程執(zhí)行命令。圖4所示為節(jié)點系統(tǒng)端指令解析軟件程序流程圖。

      圖4 節(jié)點系統(tǒng)端指令解析軟件程序流程圖

      3 測試與分析

      3.1 實驗測試

      在同一局域網(wǎng)下,測試發(fā)送軟件和采集站端的解析軟件工作情況。設(shè)置2組實驗,對比2種程序升級方法的更新便捷性:A Linux PC-ARM采集站(宿主機-目標機)更新測試。B Windows PC-中央服務(wù)器-ARM采集站更新測試。各站點IP信息說明如表3所示。

      表3 各測試站點IP信息說明

      注:更新包以GPS為例。更新消息格式為“UpdateFirmware:GPS_20190101”。

      實驗A:4個步驟實現(xiàn)Linux PC-ARM采集站程序升級更新。默認事先已搭建好NFS服務(wù)、SSH服務(wù)等。

      (1)利用puTTY工具SSH遠程登錄單個采集站;

      (2)在采集站控制臺輸入“mount -t nfs -o nolock 192.168.1.102:/nfs_root /mnt”,實現(xiàn)nfs目錄掛載,便于將Linux PC上的固件程序共享到采集站上/mnt目錄下;

      (3)將GPS可執(zhí)行文件從宿主機交叉編譯的工程目錄/Debug/下拷貝至NFS共享目錄/nfs_root;

      (4)在SSH遠程終端上將共享至/mnt目錄下的GPS可執(zhí)行文件拷貝至執(zhí)行目錄/home/station/,修改權(quán)限“chmod 777 /home/station/GPS”后重啟系統(tǒng),更新程序固件成功;

      (5)重復(fù)(1)至(4)步實現(xiàn)A、B、C 3個采集站程序升級更新,共計12個步驟。采集站端命令行更新程序操作如圖5所示。

      圖5 采集站A端命令行更新程序操作

      實驗B:三步實現(xiàn)Windows PC-中央服務(wù)器-ARM采集站的程序升級更新。默認事先已搭建好SAMBA服務(wù)、FTP服務(wù)等,且默認已配置好表2所示的各種開機啟動項。更新軟件拓撲獲取界面及消息發(fā)送界面如圖6所示。

      (1)Windows PC機通過Samba服務(wù)將GPS可執(zhí)行文件從Linux PC下載至本地;

      (2)通過服務(wù)器的Tomcat容器獲取在線采集站A、B、C的拓撲結(jié)構(gòu),檢查在線站點;

      (3)選中所有待更新的采集站,一次性上傳GPS更新包,發(fā)送更新消息“UpdateFirmware:GPS_20190101”,輸出反饋消息。

      (4)測試命令行控制功能,結(jié)果如圖7所示。測試將采集站A的home目錄所有文件備份到新建/backup備份目錄中。

      圖6 更新軟件拓撲獲取界面及消息發(fā)送界面

      圖7 更新軟件命令行控制接口功能界面

      3.2 對比分析

      為了直觀分析兩類更新方式的特點,作表4所示的兩類應(yīng)用升級方式各項參數(shù)對比情況表。隨著分布式系統(tǒng)的規(guī)模增大,基于網(wǎng)絡(luò)掛載的應(yīng)用升級方式,拖慢工作進度,降低地震勘探儀器的作業(yè)效率。而本文實現(xiàn)的在線更新軟件進行程序升級僅需3步操作,用戶點擊待上傳的固件文件,發(fā)送軟件按固定格式打包,并發(fā)送固件更新消息,隨后等待采集站端的反饋即可。

      表4 兩類應(yīng)用升級方式各類參數(shù)對比情況

      4 結(jié)束語

      本文介紹了一種分布式地震儀的應(yīng)用升級方法及其軟件實現(xiàn)過程,并對發(fā)送軟件和解析軟件進行測試,分析了基于網(wǎng)絡(luò)掛載的程序更新方式與本方法對應(yīng)的軟件批量更新程序的方式各自的適用情況。由此得到結(jié)論,傳統(tǒng)方式由于交叉編譯的程序開發(fā)方式,步驟繁多,對操作人員有很高的要求,僅適用于儀器開發(fā)和調(diào)試階段。在儀器投入生產(chǎn)使用后,本軟件操作簡單,能夠有效地實現(xiàn)程序批量升級,顯著減少重復(fù)燒寫、下載等操作,提高生產(chǎn)效率。此外,發(fā)送軟件在用戶控制臺的Windows系統(tǒng)下采用C#開發(fā)與地震數(shù)據(jù)處理軟件共用一臺主機,能夠方便用戶批量更新儀器程序、配置文件等,無需開發(fā)者去現(xiàn)場維護,從而提高程序版本升級的效率,降低用戶使用過程中儀器的維護難度。

      猜你喜歡
      固件消息分布式
      一張圖看5G消息
      分布式光伏熱錢洶涌
      能源(2017年10期)2017-12-20 05:54:07
      分布式光伏:爆發(fā)還是徘徊
      能源(2017年5期)2017-07-06 09:25:54
      基于固件的遠程身份認證
      基于DDS的分布式三維協(xié)同仿真研究
      雷達與對抗(2015年3期)2015-12-09 02:38:50
      提取ROM固件中的APP
      電腦愛好者(2015年7期)2015-04-09 08:54:02
      消息
      消息
      消息
      一種通過USB接口的可靠固件升級技術(shù)
      鄂尔多斯市| 富裕县| 融水| 花莲市| 施秉县| 萍乡市| 辽中县| 平泉县| 大港区| 江源县| 小金县| 萍乡市| 独山县| 出国| 大关县| 密云县| 固始县| 佛教| 桂阳县| 定结县| 阿坝县| 焉耆| 南阳市| 平原县| 浮山县| 丰城市| 兴和县| 珠海市| 浙江省| 齐齐哈尔市| 永福县| 京山县| 溧水县| 延寿县| 平果县| 嘉祥县| 吴忠市| 全州县| 鹿泉市| 德安县| 阳泉市|