红外热像仪网络远程升级功能的设计与实现
2011-09-19周光彬
周光彬,艾 民, 吴 华
(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
1 远程网络更新相关硬件设计
基于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协议和外界通信,接收系统下发的命令或上传红外热图。
2 软件设计
远程更新软件部分包括ARM里面的更新脚本和服务程序,PC机上的客服端程序。客服端程序把需要更新的程序打包通过网络发送给ARM里面的服务程序,服务程序解析后把新版本的软件更新到FLASH里面的备份文件夹,然后控制ARM重启,并在启动过程中通过更新脚本把备份文件夹中的新软件覆盖拷贝到FLASH里面的工作文件夹,最后动态加载工作文件夹中新版本的软件,实现对热像仪的软件远程更新。这样处理主要是LINUX中的软件部分包括底层驱动[5]和应用程序[6],它们具备可动态加载的能力。
图3 远程更新主要接口电路Fig.3 Key interface circuit of remote update
2.1 客服端更新程序
客服端程序界面如图4所示,通过UDP和ARM里面的服务端进行通信,当需要更新ARM中的驱动和应用程序时,只需要点击相应按钮,从PC机硬盘中指定位置读取新版本的程序,然后打包后发送到ARM。在软件更新发送完后,再控制ARM进行重启,这样就可以使ARM中的新程序生效。
2.2 ARM的更新服务程序
服务端程序基本流程如图5所示,首先创建SOCKET套接字,并且绑定到服务端IP地址,然后就等待接收客服端的信息。由于ARM里面运行的是LINUX操作系统,支持多线程并发,因此这里可以用阻塞线程等待的方式。直到接收到服务端下发的新版本程序或命令时,线程才进行相应的处理。这里之所以把新版本的驱动和软件程序都拷贝到备份文件夹,是因为热像仪的当前驱动和软件都正在运行,直接进行替换处理较为麻烦。因此后续通过更新脚本在重启时更新当前版本的软件更为方便。
图4 远程更新客服端界面Fig.4 Client interface remote update
2.3 ARM的更新脚本程序
更新脚本程序核心部分由以下6条shell指令组成,其中第1条实现从备份文件夹bak把新版本的驱动和应用程序覆盖拷贝到工作文件夹work;第2条进入工作文件夹;第3~4条加载驱动部分,实现同FPGA和探测器的硬件连接;第5~6条启动ARM中的软件,实现对图像数据采集、处理后,并通过网络传输出去。
可见通过更新脚本,可以很方便地在系统重启时,用备份文件夹里面的新版本软件替换掉需要更新的软件,并且动态加载驱动和启动新版本程序。
3 结束语
本文提出了一种基于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.