基于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.
評論