基于USB接口的通用測試儀的設計與實現
引言
本文引用地址://tjguifa.cn/article/82648.htm在許多工業控制和數據采集系統中,為了實現系統的小型化和便攜化,通常采用上下位機形式的主從式結構。
由于MCU(微控制器)成本低,編程靈活、方便,實時性強,且具有一定的智能,因而通常使用它作為下位機的主控芯片,負責對現場數據的采集與傳輸,并控制相應的執行機構。上位機一般使用普通的PC機、筆記本電腦或工控機,負責對下位機傳來的數據進行分析處理, 并根據處理結果控制下位機的操作。上下位機之間的數據通信接口目前一般使用RS-232和USB總線接口標準,相對于RS-232,USB 具有高速傳輸、熱插拔、即插即用等優點。在本系統中,為了保證下位機高速采樣數據能及時傳送給上位機進行分析處理,我們采用USB總線來實現上下位機的數據傳輸。
1 系統的硬件構成
系統主要由PC機,高性能C8051F020微控制器(MCU),USB接口插頭,USB100模塊。圖1是其系統構成框圖。

1.1 C8051F020微控制器[1]
我們選擇美國Silicon公司的微控制器(MCU)C8051F020(簡稱F020)作為數據采集系統的CPU。F020是一種混合信號SOC型8位單片機,它有一個8通道的、轉換速率為100Kbps的12位ADC,以及一個8通道的、轉換速率為500Kbps的8位ADC;2個12位DAC;64KB FlashRom,4KBRAM;有22個中斷源和5個定時器/計數器。該MCU屬于C8051FXXX系列中的F02x子系列,其性能價格比在目前應用領域極具競爭力,它具有以下主要特點:1)芯片采用高速流水線結構;2)先進的JTAG調試接口;3)可靠的安全機制可利用JTAG編程加密芯片;4)強大的控制功能。有多達64個I/O線,有獨特數字交叉開關(digital crossbar),允許將內部數字系統資源映射到P0、P1、P2和P3的端口I/O引腳;5)有多達22個中斷源。
1.2 USB100[2-3]
USB100內部封裝了USB1.1的全部協議,并帶有384字節的發送緩沖區和128字節的接收緩沖區,8位并行數據接口。對USB的操作編程類似對外部存儲器的操作,由于該模塊完成了全部USB協議的轉換和封裝,使得對USB的開發和應用過程變得非常簡單,用戶只要在PC機上安裝USB100模塊驅動程序以后,對其編程可以按照與串口完全一樣的方法來完成。USB100主要的管腳及功能如表1 所示(未列出的管腳為空腳)。
表1 USB管腳功能和定義

如圖2所示,當檢測到USB100模塊TXE為低時,表示內部發送緩沖區允許發送數據,可以將數據通過8位數據總線D0~D7發送給USB100模塊,發送數據鎖存由WR控制(邊沿觸發);當TXE為高時,禁止發送數據。

如圖3所示,當檢測到USB100模塊RXF為低時,表示內部接收緩沖區有來自USB端口的數據可通過8位數據線將數據讀入,接收數據鎖存器由RD控制(邊沿觸發)。

USB100模塊的數據線D0~D7與F020的P4端口相連,P2.4~P2.7分別與USB100模塊的TXE、RXF、WR、RD相連。
2 系統通信的設計[4-6]
動態測試儀的任務主要是進行數據采集和定時/計數,并將這些數據傳給上位機進行數據處理,這就要求上下位機之間的通信有清晰、準確的通信協議,來保證數據通信能夠有條不紊地進行。
為了滿足上、下位機軟件的可擴展性和通用性,通信協議采用數據幀的形式傳輸信息。協議幀格式見表2,它由起始符、長度碼、幀信息、幀校驗和終止符組成,成幀過程中采用了字符插入法和HEX校驗。
表2 協議幀格式
![]()
1)成幀方式
協議幀使用“DLE STX”作為起始符,使用“DLE ETX”作為終止符,并采用字符插入法保證通信信息的正確。字符插入法的實現方法為:發送方搜索起始符和終止符間每個字節信息,若為“DLE”,即在該字節信息后插入一個“DLE”。接收方接收信息后也要搜索整個幀,若查找到連續兩個“DLE”,即將后一個 “DLE”刪除,還原成原信息內容。
2)幀校驗算法
協議幀采用HEX校驗保證通信信息的正確。HEX校驗的填充在字符插入之前實現,HEX校驗的驗證在插入字符刪除之后實現。實現方法為:發送方計算起始符和終止符間待發送數據的校驗和,然后將256與該校驗和的差填充于“HEX校驗”字節處。接收方計算起始符和終止符間包括HEX字節在內的接收數據校驗和,若為0,則校驗通過。




評論