圖像采集與處理系統(tǒng)的USB通信接口設(shè)計(jì)
DSP/BIOS[8]中的設(shè)備驅(qū)動(dòng)程序由兩層組成,上層是類(lèi)驅(qū)動(dòng)(Class driver),其典型功能 是提供多線程的串行化與服務(wù)請(qǐng)求的同步,另外還要處理設(shè)備實(shí)例的管理。這一層與驅(qū)動(dòng)無(wú) 關(guān),它是DSP/BIOS 本身所集成的一部分模塊,主要包括SIO、PIP 及GIO 三種類(lèi)驅(qū)動(dòng)模型, 本系統(tǒng)采用的是GIO 類(lèi)驅(qū)動(dòng)。下層是微驅(qū)動(dòng)程序(Mini driver),GIO 類(lèi)驅(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ò)程見(jiàn)圖4。
5 USB 通信接口主機(jī)端驅(qū)動(dòng)程序設(shè)計(jì)
與傳統(tǒng)的 PC 總線(如PCI 總線)設(shè)備的驅(qū)動(dòng)程序相比,USB 設(shè)備驅(qū)動(dòng)程序不直接與硬 件對(duì)話(huà)。這些工作由微軟提供的USBD.SYS 來(lái)完成。USB 設(shè)備驅(qū)動(dòng)程序的主要工作就把客 戶(hù)軟件的請(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。像讀取與寫(xiě) 入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ī)端 開(kāi)發(fā)USB 的設(shè)備驅(qū)動(dòng)程序。該嵌入式圖像采集與處理系統(tǒng)針對(duì)香煙生產(chǎn)流水線上的包裝檢 測(cè)而設(shè)計(jì),基本上滿(mǎn)足香煙條包在線檢測(cè)的需要。
評(píng)論