基于AT89C52和USB接口的數據采集系統(tǒng)設計
應用程序中有兩個線程,輔助線程為采樣線程,采樣線程的流程如圖2所示。
采樣線程負責從設備讀取數據,并通過消息傳送機制與主線程通信;主線程負責采樣數據的顯示、存盤,向設備發(fā)送命令數據包,以及啟動/停止采樣線程。當執(zhí)行啟動采樣命令時,主線程先向設備發(fā)送啟動命令數據包,然后啟動采樣線程準備接收數據;當執(zhí)行停止采樣命令時,主線程先向設備發(fā)送停止命令數據包,然后停止采樣線程結束數據的接收。命令數據包大小為4 B.包含有命令字和采樣間隔時間參數等信息。
2.3 單片機程序
如上所述,單片機的INTO中斷一旦觸發(fā),表示主機有命令數據包傳送到。在INTO的中斷處理程序中,單片機讀取EP2端點的數據直到EP2端點為空(FLAGB為低電平),獲得上位機發(fā)送的命令數據包。若接收到啟動命令,則根據命令數據包的采樣間隔時間參數來設置計數變量和定時器T0的初值并啟動T0;若接收到的命令為停止命令,則停止定時器TO。在TO的中斷處理程序中若相應的計數變量達到設定值,則完成A/D轉換、讀取數據以及將數據寫入EP6端點的操作。計數變量和TO的初值均根據命令數據包的參數進行設置,因此設備的采樣間隔時間可以由主機程序進行調整。
3 結 語
工作于Slave FIFo方式下的FX2相當于在外部控制和主機之間構造了一個的數據管道。通過對FX2的FIFO標志引腳FLAGA,FALGB,FLAGc的配置,使該芯片可以方便地與單片機進行連接,單片機通過外部中斷獲知主機數據的到達,通過其他標志引腳獲得端點FIFO的信息,單片機和主機通信時,感覺不到FX2的存在?;趩纹瑱C和Fx2的數據采集系統(tǒng)擴展方便、編程簡單、無需外接電源、采樣間隔時間由主機調整,實現了數據采集系統(tǒng)的小型化和便攜化,在現場信號采集,教學實驗,儀器儀表等領域具有一定的應用前景。
評論