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