周光彬,艾 民, 吳 華
(1.中國人民解放軍 78088部隊,重慶 400039;2.重慶大學 通信工程學院,重慶 400044)
常用的紅外熱像儀[1]大都是基于 ARM、FPGA、DSP等硬件平臺[2-4],結合紅外成像技術設計的嵌入式信號采集和處理設備,該設備正日益廣泛應用在消防、電力、防疫和安防等監控系統中。這些系統均要求設備使用功能能夠不斷完善、豐富和升級,或者根據用戶的需求做出更新。如果采用傳統的通過開發人員攜帶編程設備到現場進行操作,不僅工作量大,成本高,并且也會對整個系統的維護和統一管理帶來極大的不便。筆者提出了一種基于TCP/IP網絡的紅外熱像儀遠程升級功能的設計和實現方案。該方案針對基于ARM平臺帶網絡接口的紅外熱像儀,其系統結構如圖1所示,具體組成包括PC機上的客服端程序和ARM平臺的更新腳本和服務程序。每當需要對系統進行軟件升級或遠程控制的時候,可以通過PC機上的客服端把新版本的軟件或控制命令通過TCP/IP網絡傳輸到熱像儀,再通過熱像儀里面ARM平臺的更新腳本和服務程序,從而實現遠程對紅外熱像儀進行軟件升級和控制。該方案實施方便,系統升級速度快,已經在實際使用中體現出較好的工程意義和市場價值。

圖1 網絡遠程升級系統結構Fig.1 Network structure of the remote upgrade system
基于ARM的紅外熱像儀詳細設計見文獻[3],這里重點闡述和遠程更新相關部分的硬件結構。熱像儀的軟件和數據都是存儲在64 M NAND FLASH中,系統重啟或上電時通過bootloader加載到64 M SDRAM和ARM CPU中,因此遠程更新的實質就是要更新FLASH中存儲的軟件和數據。另外PC機上的客服端控制軟件除了通過網絡能夠控制ARM外,還必須要對紅外探測器和紅外數據時序生成部分的FPGA進行控制,而它們和ARM之間的控制命令收發是通過串口,因此在ARM中需要實現控制命令的串口協議和網絡協議的轉換。如圖2所示,ARM和PC之間的網絡MAC層和物理層硬件部分是通過DM9000芯片實現的,該芯片能夠無縫連接到ARM的數據總線和地址總線,通過片選信號和總線上的SDRAM以及FLASH實現總線共享。具體的相關硬件管腳連接見圖3遠程更新主要接口電路。如圖3所示,其中對設計有關的是:ARM9的數據總線 LDATA[0:15],地址總線LADDR[0:5],串口 0和串口1的收發數據線,EINT15中斷引腳,nGCS5存儲器組片選信號,6根DM9000的網絡接口相關引腳。

圖2 熱像儀遠程更新相關硬件結構圖Fig.2 Related hardware structure of thermal imager remote update
數據總線、地址總線和EINT15以及nGCS5片選信號都連接到FPGA對應引腳上,主要作用是采集紅外熱像數據。串口0的收發數據線連接到PC機的串口,這樣上位機就可以通過超級終端對ARM進行控制。串口1的收發數據線連接到探測器機芯的串口,其主要作用是對紅外探測器進行下發配置命令和接收對應的命令回復。FPGA也是連接在ARM的數據總線和地址總線上,通過nGCS5片選信號實現總線共享,在總線上不僅可以讀取FPGA時序調整后的紅外數據,也可以把對FPGA的命令控制通過總線下發。DM9000的數據線通過網絡變壓器后連接到RJ45接口,實現以太網連接,由于軟件操作系統采用的是LINUX,因此能非常方便地通過TCP或UDP協議和外界通信,接收系統下發的命令或上傳紅外熱圖。
遠程更新軟件部分包括ARM里面的更新腳本和服務程序,PC機上的客服端程序。客服端程序把需要更新的程序打包通過網絡發送給ARM里面的服務程序,服務程序解析后把新版本的軟件更新到FLASH里面的備份文件夾,然后控制ARM重啟,并在啟動過程中通過更新腳本把備份文件夾中的新軟件覆蓋拷貝到FLASH里面的工作文件夾,最后動態加載工作文件夾中新版本的軟件,實現對熱像儀的軟件遠程更新。這樣處理主要是LINUX中的軟件部分包括底層驅動[5]和應用程序[6],它們具備可動態加載的能力。

圖3 遠程更新主要接口電路Fig.3 Key interface circuit of remote update
客服端程序界面如圖4所示,通過UDP和ARM里面的服務端進行通信,當需要更新ARM中的驅動和應用程序時,只需要點擊相應按鈕,從PC機硬盤中指定位置讀取新版本的程序,然后打包后發送到ARM。在軟件更新發送完后,再控制ARM進行重啟,這樣就可以使ARM中的新程序生效。
服務端程序基本流程如圖5所示,首先創建SOCKET套接字,并且綁定到服務端IP地址,然后就等待接收客服端的信息。由于ARM里面運行的是LINUX操作系統,支持多線程并發,因此這里可以用阻塞線程等待的方式。直到接收到服務端下發的新版本程序或命令時,線程才進行相應的處理。這里之所以把新版本的驅動和軟件程序都拷貝到備份文件夾,是因為熱像儀的當前驅動和軟件都正在運行,直接進行替換處理較為麻煩。因此后續通過更新腳本在重啟時更新當前版本的軟件更為方便。

圖4 遠程更新客服端界面Fig.4 Client interface remote update
更新腳本程序核心部分由以下6條shell指令組成,其中第1條實現從備份文件夾bak把新版本的驅動和應用程序覆蓋拷貝到工作文件夾work;第2條進入工作文件夾;第3~4條加載驅動部分,實現同FPGA和探測器的硬件連接;第5~6條啟動ARM中的軟件,實現對圖像數據采集、處理后,并通過網絡傳輸出去。

可見通過更新腳本,可以很方便地在系統重啟時,用備份文件夾里面的新版本軟件替換掉需要更新的軟件,并且動態加載驅動和啟動新版本程序。
本文提出了一種基于TCP/IP網絡的紅外熱像儀遠程升級功能的設計和實現方案。通過該方案,能夠有效、方便和快捷地對熱像儀進行在線遠程升級和維護,經過實踐證明能夠較好地解決維護難度,有效地降低系統維護成本,并且通過工程實踐證明,該方案取得了良好的經濟效益。

圖5 遠程更新服務端流程Fig.5 Server processes of remote update
[1]彭煥良.紅外焦平面熱成像技術的發展 [J].激光與紅外,2006,36(Z1):776-780.
PENG Huan-liang.The development of the IRFPA thermal imaging technology[J].Laser&Infrared,2006,36(Z1):776-780.
[2]梁丁,熊建,王錄濤.ARM微處理器與應用開發[M].北京:電子工業出版社,2007.
[3]吳華,謝禮瑩,徐澤宇.基于ARM9的紅外熱像儀設計與實現[J].計算機工程,2010,36(16):234-236.
WU Hua,XIE Li-ying,XU Ze-yu.Design and implementation of thermal infrared camera based on ARM9[J].Computer Engineering,2010,36 (16):234-236
[4]劉波,房斌,張世勇,等.基于DM642的高分辨率紅外熱像儀設計與實現[J].電子技術應用,2011,37(4):33-36.
LIU Bo,FANG Bin,ZHANG Shi-yong,et al.Design and implementation of high resolution thermal infrared camera based on DM642[J].Application of Electronic Technology,2011,37 (4):33-36.
[5]Jonathan C,K-H G,Alessandro R,et al.Linux device drivers,3rd Edition[M].O'Reilly,2005.
[6]孫瓊.嵌入式Linux應用程序開發詳解[M].北京:人民郵電出版社,2006.