基于USB接口的通用測試儀的設(shè)計與實(shí)現(xiàn)
3 系統(tǒng)軟件設(shè)計[5-7]
本文引用地址:http://www.ex-cimer.com/article/82648.htmF020有8通道100Kbps、12位精度的ADC0以及8通道500Kbps、8位精度的ADC1。考慮到系統(tǒng)靈活性,我們編程使得通道選擇,采樣時間,采樣周期,開關(guān)量的狀態(tài)由用戶在上位機(jī)上指定,然后以命令字傳給下位機(jī),具體為:用兩個字節(jié)分別表示該通道是否被選中,每個字節(jié)位上為1表示該通道被選中,否則不被選中。用3個字節(jié)存放采樣周期,其最小單位為50微妙(即最大采樣速率為20K bps),5個字節(jié)存放采樣時間,一個字節(jié)用于開關(guān)量的通斷狀態(tài),為1則接通,反之為切斷。
3.1 下位機(jī)軟件
為減輕下位機(jī)的任務(wù),其采集的原始數(shù)據(jù)直接送給上位機(jī)進(jìn)行處理,下位機(jī)的任務(wù)就是進(jìn)行數(shù)據(jù)采集,并把所采集的數(shù)據(jù)通過USB100傳給上位機(jī),以保證下位機(jī)有高的采樣速率。下位機(jī)的工作流程見圖4。
3.1.1 下位機(jī)發(fā)送數(shù)據(jù)子程序
函數(shù): Send_AD_Result();
參數(shù): 無
功能: 將AD轉(zhuǎn)換結(jié)果組成幀后,以幀格式發(fā)送給上位機(jī)
void Send_AD_Result (void){
if(txe==0){
wr="0";
for(i=0;i
wr="1";
PORT4=MyData[i];/*數(shù)據(jù)順序存放在內(nèi)存MyData中*/
wr="0";
}
}
}
3.1.2 下位機(jī)接收數(shù)據(jù)子程序
同理,當(dāng)MCU檢測到USB100 模塊RXF 為低時,表示內(nèi)部接收緩沖區(qū)有來自USB100端口的數(shù)據(jù),可以通過八位數(shù)據(jù)總線D0~D7 將數(shù)據(jù)讀出。
函數(shù): ReceiveData()
參數(shù): 無
功能: 查看PC端是否有數(shù)據(jù)送來,如有,則置收到數(shù)據(jù)標(biāo)志
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 上位機(jī)軟件
用戶在PC機(jī)上安裝USB100模塊驅(qū)動程序之后,該USB100默認(rèn)成該P(yáng)C的一個虛擬串口,因此在上位機(jī)可以將它當(dāng)作一個串口進(jìn)行處理。上位機(jī)軟件開發(fā)是用VB完成的,與下位機(jī)的通信使用串口控件MSComm。上位機(jī)的主要功能有:
1) 采樣通道以及開關(guān)量的設(shè)置,輸入模擬量的選擇(電壓、電流,電阻),變換器輸出的單位選擇。
2) 對下位機(jī)傳來的原始數(shù)據(jù)進(jìn)行處理,并根據(jù)傳感器參數(shù)轉(zhuǎn)換為對應(yīng)的實(shí)際測量值。
3) 實(shí)時在計算機(jī)屏幕上顯示采樣曲線,并把所采集的數(shù)據(jù)存入數(shù)據(jù)庫,以便能夠隨時查閱。
4) 對采集的數(shù)據(jù)進(jìn)行頻譜分析,并將分析結(jié)果以曲線形式顯示在屏幕上。
4 結(jié)束語
我們采用USB100 專用模塊和C8051F020高速嵌入式MCU設(shè)計的測試儀,不僅滿足現(xiàn)場數(shù)據(jù)采集以及相應(yīng)的控制,而且方便與筆記本電腦或臺式機(jī)構(gòu)建虛擬儀器系統(tǒng)。我們在上位機(jī)軟件設(shè)計時考慮到其通用性,根據(jù)實(shí)際需求選用不同的傳感器,在上位機(jī)上進(jìn)行相應(yīng)的選擇,就能得到所需的測量數(shù)據(jù)及曲線,因而該測試儀有較強(qiáng)的通用性。本測試儀經(jīng)過兩年多來的實(shí)際運(yùn)行,系統(tǒng)運(yùn)行穩(wěn)定可靠,滿足用戶需求。
參考文獻(xiàn):
[1] 潘琢金,施國君. C8051FXXX高速SOC單片機(jī)原理及應(yīng)用. 北京:北京航空航天大學(xué)出版社,2002.
[2] 迅通科技. USB100數(shù)據(jù)手冊[M]. 哈爾濱:迅通科技有限公,2002.
[3] 馮國飛,宋蘊(yùn)興. 基于USB數(shù)據(jù)采集卡的設(shè)計與實(shí)現(xiàn)[J]. 微計算機(jī)信息,2005.11:75-76
[4] 張厚武,姚凱學(xué). 基于C8051F020微控制器的動態(tài)測試儀的設(shè)計[J]. 機(jī)械與電子,2006(8):12-14.
[5] 陳建平,姚凱學(xué),等. 通用動態(tài)測試系統(tǒng)的設(shè)計與實(shí)現(xiàn). 貴州大學(xué)學(xué)報(自然科學(xué)版), 2004,21(1):79-82.
[6] 謝瑞和.串行技術(shù)大全.北京:清華大學(xué)出版社,2003.4
[7] 鄭阿奇,曹戈.Visual Basic實(shí)用教程 北京:電子工業(yè)出版社,2003.
評論