基于USB接口的通用測試儀的設計與實現(xiàn)

相關專題: 芯片

0  引言

在許多工業(yè)控制和數(shù)據(jù)采集系統(tǒng)中,為了實現(xiàn)系統(tǒng)的小型化和便攜化,通常采用上下位機形式的主從式結構。由于MCU(微控制器)成本低,編程靈活、方便,實時性強,且具有一定的智能,因而通常使用它作為下位機的主控芯片,負責對現(xiàn)場數(shù)據(jù)的采集與傳輸,并控制相應的執(zhí)行機構。上位機一般使用普通的PC機、筆記本電腦或工控機,負責對下位機傳來的數(shù)據(jù)進行分析處理, 并根據(jù)處理結果控制下位機的操作。上下位機之間的數(shù)據(jù)通信接口目前一般使用RS-232和USB總線接口標準,相對于RS-232,USB 具有高速傳輸、熱插拔、即插即用等優(yōu)點。在本系統(tǒng)中,為了保證下位機高速采樣數(shù)據(jù)能及時傳送給上位機進行分析處理,我們采用USB總線來實現(xiàn)上下位機的數(shù)據(jù)傳輸。

1  系統(tǒng)的硬件構成

系統(tǒng)主要由PC機,高性能C8051F020微控制器(MCU),USB接口插頭,USB100模塊。圖1是其系統(tǒng)構成框圖。

1.1 C8051F020微控制器[1]

我們選擇美國Silicon公司的微控制器(MCU)C8051F020(簡稱F020)作為數(shù)據(jù)采集系統(tǒng)的CPU。F020是一種混合信號SOC型8位單片機,它有一個8通道的、轉換速率為100Kbps的12位ADC,以及一個8通道的、轉換速率為500Kbps的8位ADC;2個12位DAC;64KB FlashRom,4KBRAM;有22個中斷源和5個定時器/計數(shù)器。該MCU屬于C8051FXXX系列中的F02x子系列,其性能價格比在目前應用領域極具競爭力,它具有以下主要特點:1)芯片采用高速流水線結構;2)先進的JTAG調試接口;3)可靠的安全機制可利用JTAG編程加密芯片;4)強大的控制功能。有多達64個I/O線,有獨特數(shù)字交叉開關(digital crossbar),允許將內部數(shù)字系統(tǒng)資源映射到P0、P1、P2和P3的端口I/O引腳;5)有多達22個中斷源。

基于USB接口的通用測試儀的設計與實現(xiàn)

1.2  USB100[2-3]

USB100內部封裝了USB1.1的全部協(xié)議,并帶有384字節(jié)的發(fā)送緩沖區(qū)和128字節(jié)的接收緩沖區(qū),8位并行數(shù)據(jù)接口。對USB的操作編程類似對外部存儲器的操作,由于該模塊完成了全部USB協(xié)議的轉換和封裝,使得對USB的開發(fā)和應用過程變得非常簡單,用戶只要在PC機上安裝USB100模塊驅動程序以后,對其編程可以按照與串口完全一樣的方法來完成。USB100主要的管腳及功能如表1所示(未列出的管腳為空腳)。

表1 USB管腳功能和定義

USB管腳功能和定義

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

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

數(shù)據(jù)發(fā)送時序

數(shù)據(jù)接收時序

USB100模塊的數(shù)據(jù)線D0~D7與F020的P4端口相連,P2.4~P2.7分別與USB100模塊的TXE、RXF、WR、RD相連。

2 系統(tǒng)通信的設計[4-6]

動態(tài)測試儀的任務主要是進行數(shù)據(jù)采集和定時/計數(shù),并將這些數(shù)據(jù)傳給上位機進行數(shù)據(jù)處理,這就要求上下位機之間的通信有清晰、準確的通信協(xié)議,來保證數(shù)據(jù)通信能夠有條不紊地進行。

為了滿足上、下位機軟件的可擴展性和通用性,通信協(xié)議采用數(shù)據(jù)幀的形式傳輸信息。協(xié)議幀格式見表2,它由起始符、長度碼、幀信息、幀校驗和終止符組成,成幀過程中采用了字符插入法和HEX校驗。

表2  協(xié)議幀格式

協(xié)議幀格式

1)成幀方式

協(xié)議幀使用“DLE  STX”作為起始符,使用“DLE ETX”作為終止符,并采用字符插入法保證通信信息的正確。字符插入法的實現(xiàn)方法為:發(fā)送方搜索起始符和終止符間每個字節(jié)信息,若為“DLE”,即在該字節(jié)信息后插入一個“DLE”。接收方接收信息后也要搜索整個幀,若查找到連續(xù)兩個“DLE”,即將后一個 “DLE”刪除,還原成原信息內容。

2)幀校驗算法

協(xié)議幀采用HEX校驗保證通信信息的正確。HEX校驗的填充在字符插入之前實現(xiàn),HEX校驗的驗證在插入字符刪除之后實現(xiàn)。實現(xiàn)方法為:發(fā)送方計算起始符和終止符間待發(fā)送數(shù)據(jù)的校驗和,然后將256與該校驗和的差填充于“HEX校驗”字節(jié)處。接收方計算起始符和終止符間包括HEX字節(jié)在內的接收數(shù)據(jù)校驗和,若為0,則校驗通過。

3 系統(tǒng)軟件設計[5-7]

F020有8通道100Kbps、12位精度的ADC0以及8通道500Kbps、8位精度的ADC1?紤]到系統(tǒng)靈活性,我們編程使得通道選擇,采樣時間,采樣周期,開關量的狀態(tài)由用戶在上位機上指定,然后以命令字傳給下位機,具體為:用兩個字節(jié)分別表示該通道是否被選中,每個字節(jié)位上為1表示該通道被選中,否則不被選中。用3個字節(jié)存放采樣周期,其最小單位為50微妙(即最大采樣速率為20K bps),5個字節(jié)存放采樣時間,一個字節(jié)用于開關量的通斷狀態(tài),為1則接通,反之為切斷。

3.1 下位機軟件

為減輕下位機的任務,其采集的原始數(shù)據(jù)直接送給上位機進行處理,下位機的任務就是進行數(shù)據(jù)采集,并把所采集的數(shù)據(jù)通過USB100傳給上位機,以保證下位機有高的采樣速率。下位機的工作流程見圖4。

3.1.1  下位機發(fā)送數(shù)據(jù)子程序

函數(shù): Send_AD_Result();

參數(shù): 無

功能: 將AD轉換結果組成幀后,以幀格式發(fā)送給上位機

void Send_AD_Result (void){

if(txe==0){

wr=0;

for(i=0;i

wr=1;

PORT4=MyData[i];/*數(shù)據(jù)順序存放在內存MyData中*/

wr=0;

}

}

}

下機位工作流程圖

3.1.2  下位機接收數(shù)據(jù)子程序

同理,當MCU檢測到USB100 模塊RXF 為低時,表示內部接收緩沖區(qū)有來自USB100端口的數(shù)據(jù),可以通過八位數(shù)據(jù)總線D0~D7 將數(shù)據(jù)讀出。

函數(shù): ReceiveData()

參數(shù): 無

功能: 查看PC端是否有數(shù)據(jù)送來,如有,則置收到數(shù)據(jù)標志

void  ReceiveData (void){

rd=1;

if(rxf==0){/*數(shù)據(jù)緩沖區(qū)有數(shù)據(jù)*/

DataNumber+=0x01;//接收數(shù)據(jù)長度加1

rd=0; //讀操作,低電平有效

Receive_Data=PINB;//接收數(shù)據(jù)

rd=1;

}

3.2  上位機軟件

用戶在PC機上安裝USB100模塊驅動程序之后,該USB100默認成該PC的一個虛擬串口,因此在上位機可以將它當作一個串口進行處理。上位機軟件開發(fā)是用VB完成的,與下位機的通信使用串口控件MSComm。上位機的主要功能有:

1) 采樣通道以及開關量的設置,輸入模擬量的選擇(電壓、電流,電阻),變換器輸出的單位選擇。

2) 對下位機傳來的原始數(shù)據(jù)進行處理,并根據(jù)傳感器參數(shù)轉換為對應的實際測量值。

3) 實時在計算機屏幕上顯示采樣曲線,并把所采集的數(shù)據(jù)存入數(shù)據(jù)庫,以便能夠隨時查閱。

4) 對采集的數(shù)據(jù)進行頻譜分析,并將分析結果以曲線形式顯示在屏幕上。

4   結束語

我們采用USB100 專用模塊和C8051F020高速嵌入式MCU設計的測試儀,不僅滿足現(xiàn)場數(shù)據(jù)采集以及相應的控制,而且方便與筆記本電腦或臺式機構建虛擬儀器系統(tǒng)。我們在上位機軟件設計時考慮到其通用性,根據(jù)實際需求選用不同的傳感器,在上位機上進行相應的選擇,就能得到所需的測量數(shù)據(jù)及曲線,因而該測試儀有較強的通用性。本測試儀經(jīng)過兩年多來的實際運行,系統(tǒng)運行穩(wěn)定可靠,滿足用戶需求。

參考文獻:

[1] 潘琢金,施國君. C8051FXXX高速SOC單片機原理及應用. 北京:北京航空航天大學出版社,2002.

[2] 迅通科技.  USB100數(shù)據(jù)手冊[M]. 哈爾濱:迅通科技有限公,2002.

[3] 馮國飛,宋蘊興. 基于USB數(shù)據(jù)采集卡的設計與實現(xiàn)[J]. 微計算機信息,2005.11:75-76

[4] 張厚武,姚凱學. 基于C8051F020微控制器的動態(tài)測試儀的設計[J]. 機械與電子,2006(8):12-14.

[5] 陳建平,姚凱學,等. 通用動態(tài)測試系統(tǒng)的設計與實現(xiàn). 貴州大學學報(自然科學版), 2004,21(1):79-82.

[6] 謝瑞和.串行技術大全.北京:清華大學出版社,2003.4

[7] 鄭阿奇,曹戈.Visual Basic實用教程 北京:電子工業(yè)出版社,2003.

   來源:無憂電子開發(fā)網(wǎng)
微信掃描分享本文到朋友圈
掃碼關注5G通信官方公眾號,免費領取以下5G精品資料
  • 1、回復“YD5GAI”免費領取《中國移動:5G網(wǎng)絡AI應用典型場景技術解決方案白皮書
  • 2、回復“5G6G”免費領取《5G_6G毫米波測試技術白皮書-2022_03-21
  • 3、回復“YD6G”免費領取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復“LTBPS”免費領取《《中國聯(lián)通5G終端白皮書》
  • 5、回復“ZGDX”免費領取《中國電信5GNTN技術白皮書
  • 6、回復“TXSB”免費領取《通信設備安裝工程施工工藝圖解
  • 7、回復“YDSL”免費領取《中國移動算力并網(wǎng)白皮書
  • 8、回復“5GX3”免費領取《R1623501-g605G的系統(tǒng)架構1
  • 本周熱點本月熱點

     

      最熱通信招聘

      最新招聘信息