摘要:本文介紹了一種利用DSP處理DM642、CPLD及USB芯片等器件構造的帶有USB接口的圖像采集和處理系統(tǒng)。設計了USB通信接口的硬件電路,在DSP/BIOS架構上編寫了USB的固件程序和主機端的設備驅動程序。該系統(tǒng)可用于香煙包裝流水線上的條包檢測等對生產速度要求較高的工業(yè)流程領域。
1 引言
目前國內各大煙草制造企業(yè)的香煙包裝都是在高速流水線上進行的,設備自動化程度 高,機械和電氣控制復雜,生產中經常產生包裝不合格的產品。目前的解決方法主要是通過 采集卡將煙包圖像傳輸到工控機中,應用圖像處理技術[1],檢測出不合格的產品。這是一種 PC-based 的檢測方法?,F有的采集卡一般不具備圖像處理的能力并且多是PCI 接口,存在 安裝和使用不方便,不支持熱插拔等問題。
本文提出了一種應用TI 公司高性能DSP 處理器TMS320DM642,視頻解碼器和Altera 新推出的CPLD EPM240 組成的嵌入式的具有初步圖像處理功能的采集系統(tǒng)[2]。應用USB 接口將檢測到的不合格產品圖像信息實時傳輸到工控機上,供生產人員做進一步分析和統(tǒng)計 包裝中出現的問題,以及時對生產設備進行維護,降低企業(yè)生產成本。
2 系統(tǒng)設計
DSP 處理器[3]的視頻口接收視頻解碼器輸出的視頻數據,采集一幀圖像,通過EDMA[4] 將緩存在視頻口FIFO 中的數據搬移到SDRAM 中。經過圖像處理判定有無反包,拉線錯位 及破損等錯誤。若要剔除煙包,工控機發(fā)出讀請求喚醒USB 芯片EZ-USB SX2(CY7C68001) [5],DSP 啟動EDMA 將SDRAM 中的圖像傳輸到USB 的FIFO(EP6)中。系統(tǒng)框圖如圖1 所示。
DM642 是TI 公司推出的一款面向多媒體應用的定點數字信號處理器,設計主頻為 500~ 720MHz,采用C64x 內核,2 級存儲器結構,同時片上還集成了視頻口(VP),外部 存儲器接口(EMIF)等豐富的資源。DM642 特有的EDMA 負責片內L2 存儲器與其他外設 之間的數據傳輸。EPM240Z 是Altera 最新推出的MAX II Z 系列CPLD。該系列采用非易失 的嵌入Flash 工藝,以及創(chuàng)新的查找表(LUT)邏輯結構,突破了傳統(tǒng)宏單元器件的成本和功 耗限制。在MAX 系列基礎之上,功耗只有十分之一,而容量增加了四倍,性能提升了一倍。
EZ-USB SX2(CY7C68001)集成有USB2.0 收發(fā)器,串行接口引擎SIE,4KB 的FIFO, 可以選擇的8 位或16 位總線方式。片上SIE 能完成大部分的USB 協(xié)議操作,簡化了用戶設 置代碼,但由于其內部不含微處理器,應用層協(xié)議由DSP 編程實現。
3 USB 通信接口硬件設計
系統(tǒng)中將 SX2 配置在DM642 的CE1 空間,四個端點(EP2,EP4,EP6,EP8)的地址空 間是0xA0000000~0xA0001BFF??刂平涌冢‥P0)的地址空間為0xA0002000~0xA000203F。 CY7C68001 與DSP 之間使用異步讀寫方式完成二者之間數據和命令的交換。中斷信號占用 DM642 的外部中斷EXT_INT5,四個狀態(tài)信號(READY、FLAGA、FLAG 和FLAGC)和 喚醒信號分別配置在EPM240G[6]中的USB 狀態(tài)寄存器(USB_STS)和USB 喚醒積存器中 (USB_WAKEUP) 。EPM240G 占用DM642 的CE1 空間, 地址范圍是 0x9A080000~0x9A080020。接口電路如圖2 所示。
主要接口信號包括控制信號,數據總線和地址總線。
控制信號: USBINT:中斷信號。由SX2 提供,SX2 有六個中斷源,中斷發(fā)生時,DSP 讀數據總線, 獲取中斷標志位判斷具體哪個中斷發(fā)生了。
FLAGA,FLAGB,FLABC:狀態(tài)信號。由SX2 提供,分別反映當前選中的FIFO 的狀態(tài),可編程,滿,空。
CE1,CE2:片選信號。由DSP 提供,選中CE1 或CE2 空間。
OE,RE,WE:輸出允許信號,讀使能信號,寫使能信號。由DSP 提供。
地址總線:
AEA22,AEA[15..13],AEA[7..3]:地址總線。由DSP 提供,設定外設地址。
4 USB 通信接口DSP 端軟件設計
DSP 圖像采集與處理系統(tǒng)的軟件包括設備驅動和客戶應用程序。系統(tǒng)軟件是在TI DSP/BIOS 操作系統(tǒng)的基礎上開發(fā)的,如圖3 所示。DSP/BIOS 是整個DSP 系統(tǒng)軟件的核心, 各底層設備驅動程序完成硬件的驅動與管理,并對上層提供統(tǒng)一的接口;各應用任務模塊完 成相應的應用功能,并由DSP/BIOS 提供實時任務調度與操作系統(tǒng)的支撐。VP driver、USB driver[7]分別是DM642 視頻口和與SX2 通信的EMIF 口的底層驅動,完成對相應硬件外設的 硬件抽象與配置管理。
DSP/BIOS[8]中的設備驅動程序由兩層組成,上層是類驅動(Class driver),其典型功能 是提供多線程的串行化與服務請求的同步,另外還要處理設備實例的管理。這一層與驅動無 關,它是DSP/BIOS 本身所集成的一部分模塊,主要包括SIO、PIP 及GIO 三種類驅動模型, 本系統(tǒng)采用的是GIO 類驅動。下層是微驅動程序(Mini driver),GIO 類驅動使用與具體設 備相關的微驅動程序來操作SX2,以實現主機應用程序圖像發(fā)送與接收的功能。微驅動程序 對SX 的配置過程見圖4。
5 USB 通信接口主機端驅動程序設計
與傳統(tǒng)的 PC 總線(如PCI 總線)設備的驅動程序相比,USB 設備驅動程序不直接與硬 件對話。這些工作由微軟提供的USBD.SYS 來完成。USB 設備驅動程序的主要工作就把客 戶軟件的請求翻譯成USBD.SYS 能執(zhí)行的事務。USB 設備驅動程序主要完成以下功能:發(fā) 現、配置、關閉USB 設備。
USB 設備驅動程序向主機應用程序提供函數接口,如像Ezusb_Creat(),Ezusb_Close() 等函數。應用程序調用函數Ezusb_Create(),返回唯一的Windows 句柄后,才能調用驅動程 序的其他函數。應用程序通過調用標準Win32 API 函數CreateFile()來實現對Ezusb_Create() 的訪問。 控制與數據傳送接口。應用程序使用 API 函數DeviceIoCONtrol()來執(zhí)行這樣的操作。 驅動程序將這個函數調用轉化為一個帶IRP_MJ_DEVICE_CONTROL 功能碼的IRP。像讀取與寫 入FIFO 數據、endpoint0 的操作均是通過異步IO 的方式來完成的。
6 結論
本文所設計的帶有 USB 接口的DM642 圖像采集與處理系統(tǒng),一方面充分利用了DM642 的強大處理能力和豐富的外設功能,另一方面使用了新架構的MAXIIZ 系列CPLD 有效的 降低系統(tǒng)的功耗。軟件方面,以DSP/BIOS 為核心,實現了USB 的固件程序,并在主機端 開發(fā)USB 的設備驅動程序。該嵌入式圖像采集與處理系統(tǒng)針對香煙生產流水線上的包裝檢 測而設計,基本上滿足香煙條包在線檢測的需要。