新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于USB2.0接口的瀝青拌和站數(shù)據(jù)采集系統(tǒng)設(shè)計

        基于USB2.0接口的瀝青拌和站數(shù)據(jù)采集系統(tǒng)設(shè)計

        作者: 時間:2009-06-19 來源:網(wǎng)絡 收藏

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

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


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


        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 张家港市| 温宿县| 湖南省| 广丰县| 资兴市| 泸定县| 达日县| 长寿区| 兰西县| 花莲县| 建平县| 黄浦区| 丹棱县| 略阳县| 基隆市| 滦平县| 鄂尔多斯市| 蚌埠市| 崇义县| 临安市| 天气| 扎兰屯市| 共和县| 陇川县| 平顶山市| 卢氏县| 明水县| 屯门区| 华阴市| 那坡县| 宁南县| 寿宁县| 轮台县| 江西省| 惠水县| 大连市| 达拉特旗| 邓州市| 临朐县| 秦安县| 交城县|