基于嵌入式USB接口的數據采集系統(tǒng)的設計
1)設備識別。USB設備的識別過程分別由操作系統(tǒng)和設備驅動兩個部分通過USB協(xié)議的標準設備請求來完成。操作系統(tǒng)在USB設備連接時加載設備驅動程序并分配通信地址,驅動程序啟動后通過中斷讀取相關描述符進行資源配置并使能傳輸端點,從而為應用程序提供接口。
2)數據采集與傳輸。通過單片機的定時器可對數據的采集頻率進行設置。本系統(tǒng)的數據采集頻率為1 000 Hz,因此設置定時器每一毫秒中斷一次進行數據采集,而主機端對USB設備的讀寫操作則通過外部中斷實現(xiàn),定時器中斷優(yōu)先級高于外部中斷以保證采集頻率固定為1 000 Hz。主機端通過寫操作向USB設備發(fā)送控制信息,包括設備啟動和停止的相關初始化與清理的工作,其中在對USB設備進行讀操作前要先在端點的緩沖區(qū)填寫64字節(jié)數據并通過命令使其有效,不然主機端對USB設備進行讀操作時,無效的緩沖區(qū)將導致PDIUSBD12芯片不會產生中斷,從而導致讀操作失敗。
2 驅動程序設計
Windows CE下的USB設備驅動模型由3個層次組成,其中由操作系統(tǒng)實現(xiàn)的有兩層,它們分別是HCD模塊(USBHost Controller Driver)和USBD模塊(USB Bus Driver),而第三層則被稱為USB客戶端驅動(USB Client Driver),由驅動開發(fā)人員實現(xiàn)。HCD模塊處于最底層,是CPU中USB控制器的驅動,為USBD模塊提供底層的功能訪問服務。USBD模塊處于HCD模塊的上層,它根據HCD模塊提供的功能設計USB驅動接口函數,并提供給第3層使用。USB客戶端驅動處于USB驅動模型的最頂層,也是本文所要設計的USB驅動程序,它向上為應用程序提供接口以方便對USB設備進行控制,向下利用USBD模塊提供的接口函數傳遞控制信息和數據。因此,要成功開發(fā)USB設備的驅動程序,在操作系統(tǒng)定制的時候就需要把HCD和USBD的相關組件添加進去。
本文開發(fā)的USB設備驅動程序是流接口形式的驅動程序,它被設計用來與通常的文件系統(tǒng)API(如CreateFile、ReadFile和WriteFile等)進行通信,應用程序通過對文件系統(tǒng)的操作來完成對設備的控制。本驅動所設計的流接口如表1所示。本文引用地址:http://www.j9360.com/article/149746.htm
評論