摘要:本文介紹了基于D12芯片的USB振動(dòng)頻率數(shù)據(jù)采集系統(tǒng),并在pc機(jī)上進(jìn)行頻率分析。詳細(xì)介紹了該系統(tǒng)的硬件軟件設(shè)計(jì)思
路和技術(shù)難點(diǎn)。該系統(tǒng)在實(shí)際應(yīng)用中表現(xiàn)出
很好的效果。
關(guān)鍵詞:USB;D12;數(shù)據(jù)采集;振動(dòng)頻率
1 引言
通過試樣在交變應(yīng)力或交變應(yīng)變作用下做出的響應(yīng)信號的采集和分析,可以計(jì)算出反應(yīng)此試樣的一系列參數(shù),如固有振動(dòng)頻率分量、對數(shù)衰減率、阻尼,內(nèi)耗等。計(jì)算機(jī)數(shù)據(jù)采集系統(tǒng)的通信方式可有多種方法實(shí)現(xiàn), USB(通用串行總線)作為一種新興的計(jì)算機(jī)外設(shè)串行通信接口標(biāo)準(zhǔn),與常用的計(jì)算機(jī)接口(如串口、并口)相比,具有熱插拔、即插即用、數(shù)據(jù)傳輸可靠、高速、便于擴(kuò)展等優(yōu)點(diǎn),由于這些特點(diǎn),USB正在被廣泛的應(yīng)用在各種嵌入式系統(tǒng)里面。
本文研究并開發(fā)了一套基于USB的振動(dòng)頻率的數(shù)據(jù)采集系統(tǒng),與傳統(tǒng)的基于串口的采集系統(tǒng)比較傳輸速度大大提高、體積也有所減少,并且無需外接電源,方便了實(shí)際的測量工作,使其只需與筆記本配合即可用于實(shí)際測量。
2 振動(dòng)頻率數(shù)據(jù)采集系統(tǒng)
本文所介紹的USB數(shù)據(jù)采集系統(tǒng)采用的是Philips的PDIUSBD12芯片,其完全支持USB1.1規(guī)范,傳輸模式采用的是批量傳輸。
首先,振動(dòng)傳感器采集的數(shù)據(jù)通過A/D轉(zhuǎn)換芯片傳給微控制器(MCU),MCU負(fù)責(zé)將數(shù)據(jù)存入到RAM中,當(dāng)RAM滿后,MCU通過USB總線把數(shù)據(jù)傳送到PC機(jī)中,隨后PC機(jī)進(jìn)行頻譜分析。本系統(tǒng)開發(fā)的重點(diǎn)在于USB固件驅(qū)動(dòng)的編寫和數(shù)據(jù)采集系統(tǒng)(下位機(jī))和PC(上位機(jī))通信程序的編寫。
2.1 硬件實(shí)現(xiàn)方案
本系統(tǒng)采用的微控制器是ATMAL公司的AT89C52。該微控制器是80c51系列單片機(jī)。系統(tǒng)的硬件框圖如圖1所示。
振動(dòng)傳感器的數(shù)據(jù)經(jīng)放大、A/D轉(zhuǎn)換傳送到MCU中,MCU經(jīng)判斷為采樣開始點(diǎn),將采集的數(shù)據(jù)暫存在RAM中,當(dāng)RAM中的數(shù)據(jù)達(dá)到存儲(chǔ)預(yù)定采集量時(shí),MCU通過USB總線一次性傳送到PC上進(jìn)行頻率分析。在圖1中的緩沖RAM也可換成雙口RAM,這樣系統(tǒng)可以邊采樣邊傳送數(shù)據(jù),達(dá)到實(shí)時(shí)分析頻率的效果。
圖2為實(shí)際電路圖中PDIUSBD12個(gè)引腳的連接,芯片引腳定義很明確,但要注意D+ ,D-兩引腳,沒有直接與地連接,而是通過10k與1M電阻和電源或地連接[3],這是因?yàn)楫?dāng)USB電纜與主機(jī)斷開時(shí),D+,D-分為懸浮狀態(tài)。在噪聲環(huán)境下,D+,D-的狀態(tài)可能由于感應(yīng)噪聲而發(fā)生變化,SIE有時(shí)會(huì)誤以為是復(fù)位信號,從而使PDIUSBD12錯(cuò)誤的退出掛起狀態(tài)。19引腳的連接也是同樣的道理。
圖2 PDIUSBD12連接原理圖
2.2 固件驅(qū)動(dòng)實(shí)現(xiàn)
固件驅(qū)動(dòng)主要由MAINLOOP.C,ISR.C CHAP_9.C,D12CI.C,EPPHAL.C幾個(gè)源文件組成,它們的關(guān)系如圖3[1] [3]所示。
MAINLOOP.C主要完成發(fā)送USB請求、處理USB總線事務(wù)和用戶功能處理。它的主要結(jié)構(gòu)為一個(gè)無限循環(huán)體。CHAP_9.C應(yīng)答標(biāo)準(zhǔn)請求 。D12CI.C是命令接口層,提供給上面的程序最基本的功能函數(shù),根據(jù)不同的硬件機(jī)構(gòu),此文件要進(jìn)行相應(yīng)的更改。
圖3 固件結(jié)構(gòu)和數(shù)據(jù)流向
ISR.C處理USB系統(tǒng)的中斷事件。由于系統(tǒng)的傳輸控制和數(shù)據(jù)的傳輸都是通過中斷產(chǎn)生的,是編程的關(guān)鍵之一。在KeilC環(huán)境下,ISR的C語言代碼如下(主端點(diǎn)傳輸):

PDIUSBD12芯片中的in中斷的產(chǎn)生不同于它的out中斷的產(chǎn)生。當(dāng)有數(shù)據(jù)傳送到USB設(shè)備端時(shí),PDIUSBD12芯片產(chǎn)生out中斷,這時(shí)在中斷服務(wù)程序里讀取相應(yīng)的緩沖區(qū),即可得到數(shù)據(jù)。而in中斷在數(shù)據(jù)發(fā)送成功后產(chǎn)生。因此,要實(shí)現(xiàn)在in中斷發(fā)送數(shù)據(jù),必須首先引發(fā)一次in中斷,數(shù)據(jù)傳送成功后,隨即再次產(chǎn)生in中斷,此后數(shù)據(jù)即可連續(xù)發(fā)送了。如果處理不當(dāng),在與PC機(jī)通信的過程中很容易造成上位機(jī)(PC)等待超時(shí),通信中斷,產(chǎn)生錯(cuò)誤。
為引發(fā)第一次in中斷,PC機(jī)程序中可先發(fā)送讀請求,這樣下位機(jī)將產(chǎn)生out中斷,在out中斷中通過選擇端點(diǎn)和使能端點(diǎn)兩條命令,產(chǎn)生in中斷,in中斷服務(wù)程序開始執(zhí)行,發(fā)送數(shù)據(jù)。數(shù)據(jù)發(fā)送成功后,芯片會(huì)自動(dòng)再次產(chǎn)生in中斷 ,因此數(shù)據(jù)會(huì)自動(dòng)傳輸下去。
2.3 PC機(jī)頻率分析軟件
從固件驅(qū)動(dòng)可以看出:下位機(jī)采用的是中斷被動(dòng)的方式進(jìn)行通信,數(shù)據(jù)的采集須由PC機(jī)發(fā)送相應(yīng)命令,其過程是:PC機(jī)程序在接受數(shù)據(jù)之前 ,先要給下位機(jī)發(fā)送命令,然后在進(jìn)行數(shù)據(jù)讀取。當(dāng)PC機(jī)讀取數(shù)據(jù)完成后,下位機(jī)會(huì)自動(dòng)停止傳送數(shù)據(jù)。要注意的是:當(dāng)下位機(jī)使能輸入端點(diǎn)緩沖區(qū),PC機(jī)(上位機(jī))必須在超時(shí)等待內(nèi)讀取出數(shù)據(jù),否則出現(xiàn)端口響應(yīng)無效錯(cuò)誤。上位機(jī)編程要滿足此原則。
PC機(jī)正確讀取數(shù)據(jù)后,把數(shù)據(jù)存放在數(shù)組中,等待調(diào)用Matlab進(jìn)行FFT處理,然后再以此為基礎(chǔ)完成震動(dòng)頻率的頻譜分析,包括時(shí)域和頻域繪圖、自動(dòng)搜索出一至三階頻率分量、計(jì)算各頻率分量的能量密度并顯示。
本系統(tǒng)的PC程序采用VB語言編寫,VB和Matlab的混合編程是通過ActiveX技術(shù)實(shí)現(xiàn)的。VB利用Excute(), PutFullMatrix()和GetFullMatrix()這三種方法調(diào)用Matlab執(zhí)行其內(nèi)部命令,與Matlab交換矩陣數(shù)據(jù)[4]。
PC處理完數(shù)據(jù)后,首先畫出波譜圖,點(diǎn)擊“頻率分析”,畫出頻譜圖以及分析出三階頻率。其軟件界面如圖4
圖4中上部為波普圖,記錄了采集時(shí)間內(nèi)的波形;下部為頻譜圖;右側(cè)的3個(gè)數(shù)值是計(jì)算得到的3階頻率;同時(shí)此系統(tǒng)還具有打印、保存等功能。
3 結(jié)束語
將USB總線引入到該系統(tǒng)中,使系統(tǒng)無需外接電源,即插即用,方便了實(shí)際的測量工作。在以后的工作中還可以改善該系統(tǒng)。比如可以把現(xiàn)在系統(tǒng)中的RAM改為FIFO,實(shí)現(xiàn)數(shù)據(jù)的即時(shí)顯示,虛擬示波。對于高頻的數(shù)據(jù)采集,可以更換速度更快地MCU,甚至是USB接口芯片,以滿足實(shí)際的需要。隨著
圖4 軟件主界面及頻譜分析圖
USB2.0規(guī)范的發(fā)布,使其更能勝任高速的數(shù)據(jù)采集系統(tǒng),USB總線結(jié)構(gòu)在數(shù)據(jù)采集系統(tǒng)中的具有廣闊的應(yīng)用前景。





