關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > USB接口的多功能容柵傳感器測量系統

        USB接口的多功能容柵傳感器測量系統

        作者: 時間:2011-11-20 來源:網絡 收藏

        3.2 程序
        因為C8051F321的模塊高度集成化,所以對的設計主要是USB固件程序的設計。其中最重要的是USB描述符和USB傳輸中斷的處理。當USB中斷到達時,C8051F321首先讀取3個中斷寄存器(CMINT、IN1INT和OUT1INT)來判斷中斷來源(USB復位中斷、端點0中斷、端點1輸入中斷、端點2輸出中斷),然后跳入相應的處理模塊進行處理。USB中斷程序流程如圖4所示。

        本文引用地址:http://www.104case.com/article/161402.htm

        e.jpg


        端點0主要用于主機對USB設備的配置、狀態信息的獲取和設備錯誤的糾正等,它的中斷處理模塊由控制輸出和控制輸入2部分組成。每次傳輸由設置事務開始,然后根據設置事務數據包中的USB標準命令請求判斷該次傳輸是控制輸入還是控制輸出。USB復位中斷將相關USB變量、寄存器和各端點的狀態恢復為初始狀態。端點1輸入中斷和端點2輸出中斷均為批量傳輸中斷,其主要作用是在收到中斷時,在各自預定義好的緩沖區中寫入要傳輸給主機的數據或讀取傳輸過來的數據。
        3.3 主程序
        程序主要包括主程序、時鐘初始化子程序、端口初始化子程序、USB控制器配置初始化子程序、延時子程序、采集數據中斷子程序、USB中斷子程序和附加功能子程序。由于采集數據實時性要求比較高,所以將采集數據中斷設為高優先級。
        附加功能子程序包括正常計數、數據保持、最大值跟蹤、最小值跟蹤和清零的功能。對附加功能的實現均是通過控制CK和DATA信號線完成,附加功能轉換流程如圖5所示。給CK信號線一個負脈沖,即可完成清零操作;在正常計數狀態下將DATA信號線置為高電平,將進入保數功能;如果再將CK信號線置為低電平,進入最大值跟蹤功能;內部專用芯片將用新測得的數據與上一個數據進行比較,如果新測得數據大,則替換掉,否則丟棄。可以在上位機上通過USB測試軟件發送相關命令來控制進行操作。程序中設定一個字節的變量來存放從上位機接收到的命令,當判斷是其中的一個命令時就調用相應的處理程序完成操作。

        f.jpg


        3.4 軟件抗干擾
        環境的干擾使單片機程序很容易“跑飛”,為了控制程序正常運行,除了硬件上使用光耦隔離技術之外,軟件上可采用設置“軟件陷阱”的辦法來將跑飛的程序拉入正常軌道,即在程序代碼空間使用跳轉指令將跑飛的程序拉到程序執行的開始位置,具體操作方法是在所有未被使用的代碼空間處寫入“LJMP 0000H”指令。另外,可利用單片機自帶的“看門狗”功能看住程序,一旦程序跑飛,看門狗將強制單片機復位。也就是說,在程序代碼中每隔一定時間就設置一個“喂狗指令”,清除看門狗計時器值,不讓其達到最大值而發出復位信號。

        結語
        使用主機上的軟件測試出該軟硬件能夠穩定可靠地運行,點擊測試軟件的相關功能按鈕,能夠完成相應的功能操作。與傳統的RS232/RS485通信方式相比較,該方案解決了不帶串行通信方式的上位機的通信閑難,抗干擾能力更強,為系統提供更穩定的電源,適用于惡劣環境下的工業現場的高精度

        接地電阻相關文章:接地電阻測試方法


        電機保護器相關文章:電機保護器原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 会理县| 达日县| 剑阁县| 农安县| 牡丹江市| 隆化县| 阳西县| 临夏县| 盖州市| 平果县| 灵武市| 阿克陶县| 津南区| 阿荣旗| 哈尔滨市| 汶上县| 都昌县| 吉水县| 克什克腾旗| 田林县| 洪泽县| 高邑县| 钦州市| 大连市| 格尔木市| 成都市| 清徐县| 谢通门县| 岳阳市| 喀喇沁旗| 合江县| 观塘区| 南阳市| 尼勒克县| 平和县| 会理县| 星座| 胶南市| 玉林市| 马关县| 金阳县|