<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 圖像采集與處理系統(tǒng)的USB通信接口設(shè)計

          圖像采集與處理系統(tǒng)的USB通信接口設(shè)計

          作者: 時間:2011-06-02 來源:網(wǎng)絡(luò) 收藏

            DSP/BIOS[8]中的設(shè)備驅(qū)動程序由兩層組成,上層是類驅(qū)動(Class driver),其典型功能 是提供多線程的串行化與服務(wù)請求的同步,另外還要處理設(shè)備實例的管理。這一層與驅(qū)動無 關(guān),它是DSP/BIOS 本身所集成的一部分模塊,主要包括SIO、PIP 及GIO 三種類驅(qū)動模型, 本系統(tǒng)采用的是GIO 類驅(qū)動。下層是微驅(qū)動程序(Mini driver),GIO 類驅(qū)動使用與具體設(shè) 備相關(guān)的微驅(qū)動程序來操作SX2,以實現(xiàn)主機應(yīng)用程序圖像發(fā)送與接收的功能。微驅(qū)動程序 對SX 的配置過程見圖4。

            5 接口主機端驅(qū)動程序設(shè)計

            與傳統(tǒng)的 PC 總線(如PCI 總線)設(shè)備的驅(qū)動程序相比, 設(shè)備驅(qū)動程序不直接與硬 件對話。這些工作由微軟提供的D.SYS 來完成。USB 設(shè)備驅(qū)動程序的主要工作就把客 戶軟件的請求翻譯成USBD.SYS 能執(zhí)行的事務(wù)。USB 設(shè)備驅(qū)動程序主要完成以下功能:發(fā) 現(xiàn)、配置、關(guān)閉USB 設(shè)備。

            USB 設(shè)備驅(qū)動程序向主機應(yīng)用程序提供函數(shù)接口,如像Ezusb_Creat(),Ezusb_Close() 等函數(shù)。應(yīng)用程序調(diào)用函數(shù)Ezusb_Create(),返回唯一的Windows 句柄后,才能調(diào)用驅(qū)動程 序的其他函數(shù)。應(yīng)用程序通過調(diào)用標準Win32 API 函數(shù)CreateFile()來實現(xiàn)對Ezusb_Create() 的訪問。 控制與數(shù)據(jù)傳送接口。應(yīng)用程序使用 API 函數(shù)DeviceIoCONtrol()來執(zhí)行這樣的操作。 驅(qū)動程序?qū)⑦@個函數(shù)調(diào)用轉(zhuǎn)化為一個帶IRP_MJ_DEVICE_CONTROL 功能碼的IRP。像讀取與寫 入FIFO 數(shù)據(jù)、endpoint0 的操作均是通過異步IO 的方式來完成的。

            6 結(jié)論

            本文所設(shè)計的帶有 USB 接口的DM642 與處理系統(tǒng),一方面充分利用了DM642 的強大處理能力和豐富的外設(shè)功能,另一方面使用了新架構(gòu)的MAXIIZ 系列CPLD 有效的 降低系統(tǒng)的功耗。軟件方面,以DSP/BIOS 為核心,實現(xiàn)了USB 的固件程序,并在主機端 開發(fā)USB 的設(shè)備驅(qū)動程序。該嵌入式與處理系統(tǒng)針對香煙生產(chǎn)流水線上的包裝檢 測而設(shè)計,基本上滿足香煙條包在線檢測的需要。



          上一頁 1 2 3 4 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();