基于單片機和USB接口的數據采集系統(tǒng)設計
固件程序將FX2配置為異步Slave FIFl0模式,總線寬度8位,在4個端點中,EP4和:EP8未被使用,EP2和EP6的配置如表1所示。由于采用自動輸入/輸出模式,主機和單片機通過旁路FX2的CPU直接連接,所有數據被直接通過FIFO管道提交,不需固件程序干預。在FX2的slave FIF0模式下,FIFOADR[1:0]引腳作為地址線選擇某個端點,SLCS相當于片選信號,SLwR(寫)與單片機的wR引腳相連,SLRD(讀)和SLOE(輸出使能)與單片機的RD引腳相連。單片機通過訪問地址為0x00的外部存儲器的方式就可以實現對EP2的訪問,同理可訪問EP6端點。本文引用地址:http://www.ex-cimer.com/article/173758.htm
單片機通過FX2的3個標志引腳(FALGA,FLAGB,FLAGC)來全面掌握FX2的各端點FIFO的狀況。FLAGA定義為輸入端點EP6的滿標志,當輸入數據滿時該引腳為低電平;FLAGB被定義為輸出端點EP2的空標志,當主機傳來的數據被讀空時該引腳為低電平;FLAGC定義為當EP2端點整個FIF0中的字節(jié)數大于等于1時為低電平。假設當前主機沒有傳送命令,則FLAGC為高電平,當主機發(fā)送命令后,EP2的字節(jié)數大于等于1,則FLAGC變?yōu)榈碗娖健_@樣在FALGC引腳上產生了一個下降沿,將此引腳與單片機的INTO引腳相連,則當主機發(fā)送命令后單片機會觸發(fā)INT0中斷,在INTO的中斷處理程序中單片機讀取并執(zhí)行傳來的命令。
2 系統(tǒng)軟件設計
2.1 驅動程序
在EZ―USB FX2開發(fā)包中,提供有通用的驅動程序包,對該程序包稍加修改就可生成一個具有下載固件并完成設備重枚舉功能的設備驅動程序。文獻對驅動程序的開發(fā)步驟有詳細的記述,這里采用的就是這個通用驅動程序(GPD)。
2.2 主機應用程序
主機應用程序主要實現向設備發(fā)送命令數據包,接收設備傳送的數據并進行顯示,主機應用程序通過通用驅動程序來完成對設備的控制和通信。應用程序采用VC6.O編寫,與設備通信時,首先通過調用win32函數CreateFile()來取得訪問設備驅動程序的句柄。該函數的語句實例如下:
用戶得到設備句柄后,就可以使用win32函數DevicelontroI()來向設備提交相應的IOCTL控制碼,進行讀寫和控制操作,完成相應操作后應用程序通過Win32函數CloseHandle()關閉設備句柄結束1次操作。以下是部分操作的代碼實例:
評論