久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于USB2.0接口的瀝青拌和站數據采集系統設計

基于USB2.0接口的瀝青拌和站數據采集系統設計

作者: 時間:2009-06-19 來源:網絡 收藏

4 軟件
USB應用軟件分為3部分:程序、主機驅動程序以及主機應用程序。設計只做了程序的設計,驅動程序使用公司提供的通用驅動程序,應用程序使用公司的應用程序Control Panel調試。
是運行在上的程序,可采用匯編語言或C語言設計,其主要功能是負責初始化各硬件單元、控制CY7C268013接收并處理USB驅動程序的請求、控制接收應用程序的控制指令、通過存放數據并實時上傳至PC等。只有在該程序運行時,外設才能稱之為具有給定功能的外部設備。
固件程序代碼的存儲位置:固件代碼固化到一片EEP-ROM中.外設加電后由FX2通過FC總線下載到片內RAM后自動執行。
設計采用利用現成的固件程序框架函數編寫固件程序,根據設備的需求添加響應的代碼來完成特定的目的。其中基本的固件程序框架函數:
void TD_Init(void) //該函數用來完成EZ-USB FX2的初始化
void TD_Poll(void) //該函數在設備運行時反復被調用,它包括完成用戶任務的函數
BOOL TD_Resume(void)//設備重啟后調用
BOOL TD_Suspend(void) //設備進入掛起狀態前調用在整個固件程序中,EZ-LISB FX2設備上電或復位后,首先初始化所有的內部狀態變量,隨后調用TD_Init()函數,并開中斷,此時固件程序不斷檢測控制端口O是否收到SETUP包。一旦收到,固件程序就開始調用用戶函數TD_Poll(),其中用戶需要完成的功能代碼就在TD_Poll()函數中。調用完成后.重復檢測端口O是否收到SETUP包,若有,繼續執行設備請求,調用TD_Poll()函數;否則,檢測USB核是否有USB掛起事件,若有,調用TD_Suspend()函數,其返回值為真時,檢測USB核是否有重新開始事件,若沒有,設備進入掛起狀態,否則,凋用TD_Resume(),進行下一次循環,當TD_Sus-pend()函數返回值為假時,直接進入下一次循環。固件程序流程如圖6所示。

固件程序中定義了許多中斷處理函數,使用時可加入自己編寫的代碼,就可在不改變整個程序的前提下,僅通過改變相應的模塊實現用戶的功能。設計中使用了外部中斷O,其優先級最高,可以最大程度地避免數據丟失。在其相應的中斷處理函數中,將來自打印機并口的到FX2的內部緩沖區中。無中斷到來時,在TD_Poll()函數中,將緩沖區中的數據寫到Flash中。


5 結語
提出一種.0的高速系統,設計了采集系統的硬件電路,并編寫了相應的固件程序。大大提高傳輸速率,降低系統成本。其不足之處是采集速度不理想,雖然實現了高速采集的目的,但是距離.O的最高傳輸速率還有差距,需要在以后的研究中,加以研究和改進。


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉