基于DM642的高分辨率红外热像仪设计与实现
3 软件设计
基于DM642的软件设计有两种主要方式,其中之一是类似单片机的程序设计方法,主程序是一个死循环,通过中断和定时器来实现各个任务的控制。这种方式在程序较大、任务较多并且任务间需要同步和通信时不太适合,难以发挥出处理器的性能。因此本文采用TI公司针对C6000芯片的BIOS操作系统来进行软件设计,采用多线程技术,对硬件的访问都通过BIOS架构的Mini-Driver方式,这就保证了系统的稳定性和可靠性。
3.1 驱动程序
对硬件的访问都封装成对应的驱动模块,并且需要用到TI的DDK和NDK开放包,主要包括:(1)对VP1和VP0的驱动设计,在DDK中TI为了降低设计难度,已经针对VP口提供了常用的编码器和解码器的驱动模块,如TVP5146 和TVP5150等,因此可以在现有的VPORT.lib库上进行修改。具体来说就是把头文件中的VPORTCAP_Params和VPORTDIS_Params结构中位宽定义字段修改为需要的位宽格式,然后把编码器和解码器的OPEN、CLOSE、CTRL函数中参数和实际用到的编码器和解码器对应修改即可。修改完后需要重新编译VPORT工程,把编译得到的VPORT.lib文件保存到新工程目录下调用。(2)TI已经在NDK中提供了TCP/IP协议栈的支持,但NDK要在自己设计的板子上运行,还需要在用户板级驱动包中添加对EMAC和MDIO的初始化操作。这里在BIOS的全局初始化函数中首先对物理层芯片进行复位,然后实现两个回调函数_getConfig和_linkStatus,分别实现对MAC地址配置和以太网链路状态信息的读取。
3.2 主程序设计
主程序流程如图5所示。首先进行硬件初始化,包括CACHE、VP口、EMAC、I2C、EDMA、中断等;然后启动网络监听任务和热图采集任务;最后启动数据处理任务和视频显示任务。各个任务的功能如下:(1)在热图采集任务中采集到一帧完整的640×480×16 bit的红外图像原始数据并通过双缓冲模式通过EDMA把数据保存在SDRAM中,然后通过TI提供的RF5框架中的SCOM通信模块,把地址指针和同步信号发送到数据处理任务。(2)数据处理任务把原始红外数据进行非均匀性校正、直方图均衡、温度计算等处理,并且同时生成具有字符叠加后的模拟视频数据;然后数据处理任务把模拟视频数据通过SCOM通信模块发送到视频显示任务,通过ADV7179得到PAL格式的模拟红外视频。如果热像传输任务已经启动,数据处理任务还需要把处理后的热图数据发送到热像传输任务。(3)热像传输任务和命令收发任务都是基于NDK提供的网络通信,首先是初始化TCP SOCKET连接并监听,当接收到网络来的连接请求并通过鉴权后,再启动对应传输和命令收发任务。其中热像传输任务的输入数据是来自数据处理任务,然后通过TCP协议发送到PC计算机进行显示、存储和进一步处理。命令收发任务接收网络传来的命令信息,包括对探测器的配置、对热像仪定标数据的配置,以及通过该任务对FLASH进行读写,实现热像仪在线软件更新功能。
这种基于BIOS操作系统的多线程、多任务处理方式,充分利用了DM642的高效和并行处理能力,能在保证红外热像网络传输不受干扰的情况下,同时对机芯进行有效的命令配置。并且在有多个PC的上位机程序同时通过网络连接热像仪时,只需要额外启动对应的热像传输线程即可。
4 实验与总结
热像仪网络传输的速度非常重要,这是由于红外图像通常不希望进行有损压缩,而高分辨率的热像仪对网络带宽要求较高。如FLIR公司的PHOTON640机芯的热像数据输出为9帧/s,每帧分辨率为640×480,每点14 bit。为了方便处理,在DM642和FPGA的处理中用16 bit存储每点的数据,这样每秒在网络中传输的带宽至少需要42 Mb/s。
为了测试DM642的传输速度并且和基于ARM9的设计方案进行比较,在百兆局域网中通过PC和三种设计方案的热像仪原理样机直接连接,并用测试数据进行网络传输,其中包括本文的设计方案,以及文献[3]中提出的ARM9+DM9000和ARM9+AX88180。LXT971ALC是物理层芯片,这是由于DM642内嵌EMAC控制器,实现网络连接外部只需要物理层芯片即可。而ARM9没有内嵌EMAC控制器,只能通过外部通用地址和数据总线和外部MAC控制器连接,这里分别选用16位宽的百兆DM9000和32位宽的千兆AX88180 MAC控制器。测试结果如表1所示。可见由于处理器架构限制,ARM9即使搭配32位宽的千兆MAC芯片,其传输速度才33 Mb/s,而DM642却可以达到80 Mb/s,能够实现640×480这样的高清晰度热像仪无损网络数据传输。
基于DM642的嵌入式系统设计由于其软硬件的灵活剪裁,并且能充分利用BIOS的多任务机制,非常适合高性能的嵌入式设备设计。本文设计的红外热像仪可以作为独立的手持设备,也可以方便地通过网络集成到现有系统,因此已经作为产品,批量地生产应用在消防、医疗和边防监控中,并在甲型H1N1防疫工作中起到了关键作用。
参考文献
[1] 彭焕良.红外焦平面热成像技术的发展[J].激光与红外,2006,36(12):776-780.
[2] 刘国贺,李玉惠,李勃,等.基于FPGA的数字图像水印实时嵌入系统的设计与实现[J].电子技术应用,2010(3):27-30.
[3] 吴华,谢礼莹,徐泽宇.基于ARM9的红外热像仪设计与实现[J].计算机工程,2010,36(16):234-236.
[4] 代少升.红外焦平面阵列非均匀性非线性校正新方法[J].光电工程,2008,35(4):121-125.
评论