謝春華,陳芳,劉利梅,馬丹
(1.湖北水利水電職業(yè)技術學院,湖北武漢430070;2.武漢亞為電子科技有限公司,湖北武漢430074;
3.黃石市第五中學,湖北黃石435006)
?
微型多功能數(shù)據(jù)采集卡的設計與開發(fā)
謝春華1,2,陳芳2,劉利梅2,馬丹3
(1.湖北水利水電職業(yè)技術學院,湖北武漢430070;2.武漢亞為電子科技有限公司,湖北武漢430074;
3.黃石市第五中學,湖北黃石435006)
摘要:為了減小數(shù)據(jù)采集卡的體積,降低使用成本,介紹了一種采用STM32單片機來進行設計的數(shù)據(jù)采集卡。利用STM32內部集成了A/D轉換、定時計數(shù)、脈沖捕捉等功能,外部信號經(jīng)過轉換處理和采集后直接由單片機USB接口輸出,上位機LabVIEW程序接收數(shù)據(jù)完成顯示和控制功能,實現(xiàn)了高速、寬量程、功能全、價格低、體積小、使用方便、顯示形式多樣的目的。
關鍵詞:STM32;數(shù)據(jù)采集卡;USB通信
數(shù)據(jù)采集卡是一種將傳感器或其他待檢測設備發(fā)出的電信號按照一定的采樣周期發(fā)送或存儲至上位機,結合上位機軟件完成系統(tǒng)實時測量、監(jiān)測和控制任務的采集控制系統(tǒng)設備,它廣泛運用于儀器儀表、安防監(jiān)控、智能交通、醫(yī)學影像、雷達圖像、機器視覺等各大領域。然大多數(shù)數(shù)據(jù)采集卡外觀較大(一般長寬高為92 mm×85 mm×8 mm以上)、通道較多(一般在8通道以上)、使用不便(一般使用PCI接口)、通用性差(受上位機接口限制)、價格較貴(一般在500元以上)[1],因此開發(fā)出體積小、適用性強、成本低、使用方便的數(shù)據(jù)采集卡具有一定的現(xiàn)實意義和廣闊的市場前景。
本設計主要選取微型高速、具有A/D輸入、PWM頻率測量、脈沖計數(shù)、I/O功能、USB通信功能的單片機STM32作為處理器(長寬高為7 mm×7 mm×1.4 mm),通過設計外圍電路來擴展輸入信號的量程,單片機嵌入式程序完成信號采集,單片機自帶的USB口完成與上位機的數(shù)據(jù)傳輸(最多可接127個相同的采集卡),LabVIEW編制的上位機顯示與控制程序完成終端顯示與控制。整個采集卡的設計包括硬件設計、嵌入式軟件設計和上位機顯示與控制軟件設計三部分。
1總體設計
采集卡硬件設計主要分為最小系統(tǒng)電路和轉換與擴展電路兩部分,最小系統(tǒng)電路主要作用是形成單片機運行的基本電路,轉換與擴展電路主要作用是電源供電電壓的轉換,擴大A/D輸入信號的量程和信號的處理與保護。嵌入式軟件設計主要由A/D采集程序、PWM頻率測量程序、脈沖計數(shù)程序、開關量I/O輸入輸出程序和USB通信程序組成,主要作用是采集傳感器或其他待檢設備發(fā)出的模擬信號、PWM頻率信號、脈沖個數(shù)信號和開關量輸入信號并通過USB通信發(fā)給上位機,上位機根據(jù)控制要求向采集卡發(fā)出開關量控制信號,采集卡根據(jù)上位機的指令實現(xiàn)對設備的控制。上位機顯示與控制軟件設計主要是運用可視化編程語言LabVIEW,將采集的數(shù)據(jù)在電腦上用數(shù)字或虛擬儀表顯示出來,并根據(jù)控制要求向采集卡發(fā)出開關量控制信號。采集卡的總體設計框圖如圖1所示。
圖1 采集卡總體設計框圖
2硬件設計
從成本、體積大小和綜合性能考慮,采用意法半導體公司的48Pin增強型高速單片機STM32F103作為主控芯片。STM32F103是基于的ARM 32位的CortexTM-M3內核架構,穩(wěn)定工作頻率可達72 MHz,是具有豐富資源、高速時鐘的精簡指令的微處理器。STM32F103擁有從64 kB或128 kB的閃存程序可選存儲器,高達20 kB的SRAM,2個12位A/D模數(shù)轉換器,串行單線調試(SWD)和JTAG接口調試模式等[2]。最小系統(tǒng)原理圖如圖2所示。
圖2 最小系統(tǒng)原理圖
為了減小PCB板的面積,芯片的布置采取了菱形布置,引線采用8 mil發(fā)散的形式。
轉換與擴展電路的核心是將供電電路進行必要的降壓和升壓,單片機A/D輸入信號的量程從0~3.3 V提高至-12~12 V之間以及PWM頻率測量、脈沖計數(shù)、開關量輸入信號進行光耦隔離保護。
單片機的工作電壓要求為DC 3.3 V,而一般外接的電源轉換器為DC 5 V或DC 12 V。為了減少其體積,可選擇上位機USB接口DC 5 V供電,通過電壓轉換芯片AMS1117芯片轉換成DC 3.3 V,原理圖的設計如圖3所示。
圖3 DC 5 V轉DC 3.3 V電路原理圖
由于A/D轉換量程的提高,輸入信號轉換過程中需要有DC 12 V供電,所以需要將DC 5 V升壓至DC 12 V。
采用芯片MC34063完成升壓工作,原理圖的設計如圖4所示[3]。
圖4 DC 5 V轉DC 12 V電路原理圖
單片機A/D輸入電壓范圍為0~3.3 V,為了實現(xiàn)A/D輸入電壓在-12~12 V的寬量程要求,采用電阻R24、R29分壓至-3.3~3.3 V之間。
用LM358運放實現(xiàn)同相加法器電路,進行電壓線性變換,電壓變換關系如下式。
式中:u11是R24、R29的分壓電壓;u12是電源電壓3.3 V。
u0輸出電壓在0~6.6 V之間,最后經(jīng)電阻R30、R32分壓成0~3.3 V,原理圖設計如圖5所示。
圖5 A/D輸入電壓轉換電路原理圖
PWM頻率測量、脈沖計數(shù)、開關量輸入信號要進行光耦隔離保護,原理圖的設計如圖6所示。
圖6 光耦隔離保護電路原理圖
3嵌入式軟件設計
單片機僅有2個12位逐次逼近型A/D數(shù)模轉換器,但USB使用設備可以連接多達127個,因此可以通過同時使用多個微型數(shù)據(jù)采集卡的方式來彌補采集數(shù)量不足的問題。
為了保證采樣速度,采樣最小時間選擇為1 μs,A/D獨立模式,單通道、單次、右對齊、按規(guī)則通道轉換完成的方式。
A/D采集程序設計流程圖如圖7所示。
圖7 A/D采集程序設計流程圖
頻率測量方法一般有測頻法、測周法、多周期同步法,為了保證采集數(shù)據(jù)的實時性,這里選擇測頻法[4]。
STM32單片機有3個16位的定時計數(shù)器,可在輸入引腳上設置脈沖上升沿觸發(fā)中斷,在2個相近的觸發(fā)中斷之間計算脈沖周期即可實現(xiàn)頻率的測量。計數(shù)過程中要開啟定時計數(shù)器溢出中斷,計算溢出的次數(shù)以保證脈沖周期計數(shù)的準確性。為提高定時計數(shù)器的精度,定時計數(shù)器時鐘頻率選擇為72 MHz,則最大采樣率為72 MHz/s。PWM頻率測量程序設計流程圖如圖8所示。
單片機可設置輸入引腳上升沿觸發(fā)中斷,計算中斷次數(shù)即為脈沖個數(shù)。由于定時計數(shù)器為16位,最大計數(shù)值是65 535。脈沖計數(shù)程序設計流程圖如圖9所示。
由于開關量輸入輸出程序比較簡單,故本文不再贅述。
圖8 PWM頻率測量程序設計流程圖
圖9 脈沖計數(shù)程序設計流程圖
單片機自帶USB2.0全速接口,并且擁有自帶完整的USB通信庫文件,只需做相應的修改即可完成通信任務[5]。
在庫中修改usb_desc.c文件,依次設置設備描述符、配置描述符、接口描述符、報告描述符。使用端點2輸入,端點1輸出,1次傳輸最大32 B,輸入輸出報告為8 B。修改usb_int.c文件設置中斷控制方式,修改usb_endp.c文件中的USB_SendData和USB_ReceiveData函數(shù)內容,實現(xiàn)數(shù)據(jù)的發(fā)送和接收。
uint32_t USB_SendData(uint8_t *data,uint32_t dataNum)
{
UserToPMABufferCopy(data,ENDP2_TXADDR,dataNum);
SetEPTxCount(ENDP2,REPORT_COUNT);
SetEPTxValid(ENDP2);
return dataNum;
}
uint32_t USB_ReceiveData(uint8_t *data,uint32_t dataNum)
{
uint32_t len=0;
if(dataNum>sizeof(USB_Receive_Buffer)){
dataNum = sizeof(USB_Receive_Buffer);
}
for(len=0;len *data=USB_Receive_Buffer[len]; data++; } return dataNum; } USB通信程序設計流程圖如圖10所示。 圖10 USB通信程序設計流程圖 4上位機顯示與控制軟件設計 上位機顯示部分程序要接收采集卡采集的數(shù)據(jù),可在LabVIEW上使用USB動態(tài)鏈接庫接收USB采集數(shù)據(jù),使用圖形化界面直接數(shù)字顯示、虛擬示波器動態(tài)顯示或虛擬儀表面板顯示[6]。 上位機控制部分程序可使用圖形化設置按鈕完成相應的開關量輸出設置并通過USB口輸出。圖形化程序設計流程圖如圖11所示,上位機顯示與控制軟件界面如圖12所示。 圖11 圖形化程序設計流程圖 圖12 上位機顯示與控制軟件界面 5結語 通過采用STM32單片機A/D、定時計數(shù)器、脈沖捕捉、USB通信等內部功能完成了一個微型數(shù)據(jù)采集卡的設計,結合LabVIEW上位機顯示與控制程序,實現(xiàn)了如下功能: 1)高速、寬量程、多種信號(模擬信號、PWM頻率信號、脈沖信號、開關信號)采集; 2)USB通信接口,使用方便、擴展容易(最多可接127個); 3)顯示形式多樣(數(shù)字顯示、虛擬示波器動態(tài)顯示或虛擬儀表面板顯示),I/O控制簡單; 4)體積小(長寬高為96 mm×52 mm×5 mm)、重量輕、價格便宜。 本微型數(shù)據(jù)采集卡已在武漢亞為電子科技有限公司實現(xiàn)了小批量生產(chǎn),通過長期測試與實踐使用證明該微型數(shù)據(jù)采集卡運行穩(wěn)定、可靠,取得了較好效果。 [參考文獻] [1]馬海潮.超高速數(shù)據(jù)采集技術發(fā)展現(xiàn)狀[J].測試技術學報,2003,17(4):287-292. [2]意法半導體有限公司.STM32F103×8 datasheet.pdf[EB/OL].[2013-08-05].http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00161566.pdf. [3]意法半導體有限公司.MC36063 datasheet.pdf[EB/OL].[2013- 04-24].http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/CD00001232.pdf. [4]杜慧勇,謝春華,王站成.MC9S12DG128單片機在頻率測量系統(tǒng)中的應用[J].河南科技大學學報:自然科學版,2009,30(3):40-42. [5]劉火良,楊森.STM32庫開發(fā)實戰(zhàn)指南[M].北京:機械工業(yè)出版社,2013. [6]程龍飛,何聞.基于LabVIEW的USB數(shù)據(jù)傳輸技術研究[J].機床與液壓,2009,37(7):105-108,140. 責任編輯:陳亮 本刊聲明 為了實現(xiàn)編輯、出版工作的網(wǎng)絡化,本刊已加入“萬方數(shù)據(jù)—數(shù)字化期刊群”。故凡向本刊投稿者,均視為其文稿刊登后可供“萬方數(shù)據(jù)庫—數(shù)字化期刊群”收錄、轉載并上網(wǎng)發(fā)行;作者文章著作權使用費與稿酬一次性付清,本刊不再另付其他稿酬。如作者不同意文章被收錄,請在投稿時告知本刊,本刊將適當處理。 “萬方數(shù)據(jù)庫—數(shù)字化期刊群”是國家“九五”重點科技期刊攻關項目,本刊全文內容按照統(tǒng)一格式制作,讀者可上網(wǎng)查詢?yōu)g覽本刊內容,并征訂本刊。 The Design and Development of Miniature Multi-functional Data Acquisition CardXIE Chunhua1,2,CHEN Fang2,LIU Limei2,MA Dan3 (1.Hubei Water Resources Technical College,Wuhan 430070;2.Wuhan Vavii Electronic Technology Co.,Ltd.,Wuhan 430074; 3.The Fifth Middle School of Huangshi,Huangshi 435006) Abstract:The design of data acquisition card based on the STM32 microcontroller was introduced to reduce the size and cost.STM32 has internal functions like A/D converter,timing and counting,pulse capture,the external signal was acquired and output directly on MCU USB interface,and the data was received,displayed and controlled through the LabVIEW program on the computer.High speed,wide measuring range,multi-function,lower price,smaller size,convenient use,multiple display were achieved in the data acquisition card. Key words:STM32;data acquisition card;USB communication 中圖分類號:TP368.2 文獻標志碼:A 文章編號:1671-0436(2015)04-0034-06 作者簡介:謝春華(1978—),男,碩士,講師,工程師。 收稿日期:2015-03-20