王安騰,王程程,趙洪亮
(山東科技大學 電子通信與物理學院,青島 266590)
通用串行總線(Universal Serial Bus, USB)在數(shù)據(jù)采集系統(tǒng)中的應用已經(jīng)十分廣泛。目前市場上的數(shù)據(jù)采集系統(tǒng)多采用專用USB數(shù)據(jù)采集卡,例如NI公司的NI USB-6000系列等[1]。這類數(shù)據(jù)采集卡的性能較好,但其高昂的價格讓一般用戶難以承受[2]。近幾年,以USB聲卡為核心的數(shù)據(jù)采集系統(tǒng)以其價格低廉,使用方便等特點受到了廣泛關注[3]。但是其性能及通用性不強,主流的USB聲卡只支持雙通道輸入與雙通道輸出,采樣率一般固定為44.1K或48K,分辨率一般固定為16位,且不能采集直流信號[4]。
本文針對專用USB數(shù)據(jù)采集卡和USB聲卡的這些局限性,利用CYPRESS公司的可編程片上系統(tǒng)PSoC5LP芯片CY8C5868AXI-LP035,結(jié)合USB協(xié)議中的音頻類部分,設計了一種新型USB連接的數(shù)據(jù)采集卡,使其實現(xiàn)通道數(shù)、分辨率、采樣率均可配置。分辨率最高可達20位,采樣率最高可達1Msps(8位分辨率),具有高性價比,免驅(qū)動等特點。目前該數(shù)據(jù)采集卡試驗運行良好。信號的預處理等硬件電路部分和上位機軟件部分不在本文的討論范圍,本文主要介紹了系統(tǒng)的工作原理與信號的采集和實時上傳部分的實現(xiàn)細節(jié)。
數(shù)據(jù)采集卡的原理框圖如圖1所示。圖中整個數(shù)據(jù)采集處理部分都在PSoC5LP當個芯片中完成。PSoC5LP在其單個芯片中集成了一個高性能的32位ARM Cortex-M3微處理器內(nèi)核,存儲器,和眾多模擬與數(shù)字外設資源。例如本設計中用到的模擬多路復用器(Analog Multiplexer, AMux)、Delta-Sigma模數(shù)轉(zhuǎn)換器 (Delta-Sigma Analog to Digital Converter, Δ-Σ ADC)、逐次逼近模數(shù)轉(zhuǎn)換器(Successive Approximation Register Analog to Digital Converter, SAR ADC)、直接內(nèi)存存?。―irect Memory Access, DMA)、數(shù)模轉(zhuǎn)換器(Digital to Analog Converter, DAC) 、全速USB控制器(Full Speed USB, USBFS)等。
圖1 數(shù)據(jù)采集卡原理框圖
其中各個部分的功能為:AMux將多路模擬信號分時切換送入ADC中,以實現(xiàn)多路數(shù)據(jù)同時采集。Δ-Σ ADC具有高分辨率,高線性度的特點,可在高達187sps的速率下輸出20位分辨率,適用于音頻信號采集和高精度的測量應用。SAR ADC可支持12位1Msps采樣,最高可支持32通道數(shù)據(jù)轉(zhuǎn)換,適用于多通道的采集和控制應用。Δ-Σ ADC和SAR ADC配合使用,可以采集從直流信號到超聲波信號的廣泛信號范圍,具有高精度、高帶寬、高靈活性等特點。8位的DAC將來自USB的數(shù)字信號轉(zhuǎn)換為模擬信號,電壓輸出轉(zhuǎn)換速率可達1Msps。DMA通道以輸入和輸出數(shù)據(jù)緩沖區(qū)為核心,在各個模塊之間進行關鍵的數(shù)據(jù)搬運工作,加快數(shù)據(jù)轉(zhuǎn)移速率,節(jié)省處理器的開支。全速USB組件為USB控制端點提供了底層的驅(qū)動程序,從而方便地進行描述符的構建。通過USBFS將PSoC5LP配置為基于音頻類的USB設備,可以借用音頻通道和PC端上位機進行數(shù)據(jù)的互傳,最高傳輸速率可達12Mbps。由于受傳輸速率的限制,8位分辨率采樣時,最高采樣率為1MHz[5]。
由于PSoC5LP可設計的采集通道數(shù)眾多,無法逐一展示,所以本節(jié)以四路 Δ-Σ ADC和四路SAR ADC數(shù)據(jù)采集,兩路任意信號輸出為例,介紹了信號的采集和產(chǎn)生過程。
圖2為PSoC5LP的集成開發(fā)環(huán)境PSoC Creator中配置的數(shù)據(jù)采集部分的原理圖。數(shù)據(jù)采集部分分為 Δ-Σ ADC部分和SAR ADC部分。 Δ-Σ ADC部分采用AMux將四路信號進行切換輸入。模數(shù)轉(zhuǎn)換結(jié)束(end of convert,eoc)信號一方面通過查找表(Look Up Table, LUT)控制AMux通道的切換,另一方面驅(qū)動DMA將轉(zhuǎn)換結(jié)果數(shù)據(jù)轉(zhuǎn)移到輸入數(shù)據(jù)緩沖區(qū)。通過數(shù)字多路復用器,可改變輸入通道的切換模式為自動切換或手動切換。Δ-Σ ADC可同時配置四種不同的采樣模式,每個模式擁有不同的采樣率和分辨率,并可通過軟件控制切換,以便適用于不同的數(shù)據(jù)采集場合。
圖2 數(shù)據(jù)采集部分原理圖
SAR ADC組件集成了多路復用功能,可以通過軟件實時地對通道進行靈活地控制。同樣,eoc信號驅(qū)動DMA將轉(zhuǎn)換結(jié)果數(shù)據(jù)轉(zhuǎn)移到輸入數(shù)據(jù)緩沖區(qū)。
如圖3所示,信號輸出部分由兩路DMA通道和兩個VDAC組成。以PSoC5LP內(nèi)部的時鐘信號驅(qū)動DMA將輸出數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)搬運至VDAC8,轉(zhuǎn)換結(jié)果直接由Out_1和Out_2兩個引腳之間輸出。
圖3 信號輸出部分原理圖
輸入和輸出數(shù)據(jù)緩沖區(qū)需要通過USB和PC機進行及時的數(shù)據(jù)交換,以保證整個系統(tǒng)的實時性。有些USB數(shù)據(jù)采集卡采用普通塊傳輸方式。雖然這種方式傳輸速度快,準確率高,但其實時性不高,需要較大的緩沖區(qū)才能保證采樣率的同步,并且需要自行編寫PC端的驅(qū)動程序[6]。考慮到音頻數(shù)據(jù)的采集方式和數(shù)據(jù)流的特點和數(shù)據(jù)采集卡極為相似,都為周期性的且傳輸速率不變,因此本文將PSoC5LP配置為基于USB音頻類的設備,采用音頻的控制接口和數(shù)據(jù)流通道進行數(shù)據(jù)交換和采樣率的匹配。
圖4為采集卡基于音頻功能的拓撲結(jié)構。在音頻控制接口中,編號(Identity,ID)1的輸入終端(Input Terminal,IT)和ID4的輸出終端(Output Terminal, OT)分別代表ADC和DAC。ID2的OT和ID3的IT分別與USB的輸入端點和輸出端點相連。因為在數(shù)據(jù)的傳輸過程中沒有進一步的處理,所以IT(ID1)和OT(ID2)直接相連,IT(ID3)和OT(ID4)直接相連。音頻數(shù)據(jù)流接口中的輸出端點和輸入端點用于和PC機直接的數(shù)據(jù)交換。HID接口負責對上位機的命令和采集卡的狀態(tài)進行傳輸。
圖4 基于USB音頻功能的拓撲結(jié)構
圖5為設備及接口描述符的層次結(jié)構圖。從圖中可以看出,本設計擁有一個音頻控制接口(接口#0),兩個音頻數(shù)據(jù)傳輸接口:音頻數(shù)據(jù)輸入接口(接口#1)和音頻數(shù)據(jù)輸出接口(接口#2)。音頻數(shù)據(jù)輸出接口有兩個可選配置(Alternate Setting)。可選配置0的帶寬為0,以便數(shù)據(jù)采集卡處于待機狀態(tài)時釋放總線帶寬,所以可選配置0沒有數(shù)據(jù)端點。可選配置1用于8位的數(shù)據(jù)輸出,所以擁有一個等時傳輸端點。音頻數(shù)據(jù)輸入接口有4個可選配置。可選設置1到可選設置3用于不同分辨率的數(shù)據(jù)傳輸,共用相同的等時傳輸端點。
圖5 USB設備與接口描述符層次結(jié)構
根據(jù)USB協(xié)議,USB設備和主機之間的通信都是由主機發(fā)起的。需要采集數(shù)據(jù)或生成信號時,PC機會向采集卡發(fā)送相應的命令,并以已經(jīng)在描述符中約定好的頻率向采集卡請求或發(fā)送數(shù)據(jù)。數(shù)據(jù)的上傳及下載都是由PC機主導,因此數(shù)據(jù)的發(fā)送與接收頻率均是以PC機上的USB接口時鐘為基準。而在數(shù)據(jù)采集卡端,ADC和DAC工作頻率均是以PSoC5LP內(nèi)部的時鐘為基準。兩個時鐘之間必然存在誤差且不穩(wěn)定,而誤差的積累會使數(shù)據(jù)緩沖區(qū)溢出或耗盡,影響數(shù)據(jù)流和采樣率的同步匹配。
本文采用對數(shù)據(jù)流插入或刪除少量采樣點的方法來實現(xiàn)數(shù)據(jù)流和采樣率的同步匹配。其基本思想為:在PSoC5LP的靜態(tài)隨機存儲器(Static Random Access Memory,SRAM)中開辟出一個大小為N×S的循環(huán)緩沖區(qū)IN_Buffer作為輸入數(shù)據(jù)緩沖區(qū),并編號為buffer 1-buffer N,每個buffer的大小均為S個字節(jié)。DMA通道1由N個傳輸描述符(Transfer Descriptor, TD)組成,TD 1到TD N分別負責將ADC的數(shù)據(jù)送入buffer 1到buffer N中。同樣DMA通道2的TD 1到TD N分別負責將buffer 1到buffer N中的數(shù)據(jù)送入USB端點寄存器。TD 1和TD N首尾相接組成循環(huán)的DMA鏈。數(shù)據(jù)采集開始后,DMA通道1的TD 1開始工作,采集數(shù)據(jù)依次被送入數(shù)據(jù)緩沖區(qū)。當數(shù)據(jù)緩沖區(qū)達到半滿狀態(tài),即TD N/2完成,數(shù)據(jù)指針到達buffer N/2時,DMA通道2的TD 1開始工作。圖6為數(shù)據(jù)采集上傳的數(shù)據(jù)流圖。
圖6 數(shù)據(jù)采集上傳數(shù)據(jù)流圖
若PC機與PSoC5LP的時鐘頻率完全一致,數(shù)據(jù)緩沖區(qū)將始終處于半滿狀態(tài),DMA通道1和DMA通道2正在工作的TD編號始終相差N/2,數(shù)據(jù)正常傳輸。
當PC機的時鐘頻率快于PSoC5LP時,DMA通道2的數(shù)據(jù)指針將逐漸接近DMA通道1的數(shù)據(jù)指針。當指針重合時,則保持DMA通道2正在工作的TD編號不變,以等待DMA通道1向緩沖區(qū)送入更多數(shù)據(jù),此時相當于向數(shù)據(jù)流中插入重復的采樣點。
當PC機的時鐘頻率慢于PSoC5LP時,DMA通道1的數(shù)據(jù)指針將逐漸接近DMA通道2的數(shù)據(jù)指針,當指針重合時,使DMA通道1暫停工作以等待DMA通道2將更多數(shù)據(jù)轉(zhuǎn)移出數(shù)據(jù)緩沖區(qū),此時相當于從數(shù)據(jù)流中刪除了若干采樣點。當數(shù)據(jù)緩沖區(qū)恢復半滿狀態(tài)時,DMA通道1恢復正常工作。
在整個數(shù)據(jù)調(diào)整過程中,DMA通道2始終處于工作狀態(tài),以保持通過USB上傳PC機數(shù)據(jù)的連續(xù)性。由于PC機與PSoC5LP的時鐘精度與穩(wěn)定性都比較高,若N足夠大,需要調(diào)整的采樣點數(shù)相對較少,對后續(xù)的信號顯示與分析等處理的影響可以忽略不計,所以采用這種方法可以實現(xiàn)碼流速度的匹配。
由于可使用不同的分辨率及采樣率采集多通道數(shù)據(jù),無法展示所有配置的測試結(jié)果,所以選用一組典型的配置進行測試。具體配置為:四通道,8位分辨率,采樣頻率為43419Hz。上位機軟件顯示的測試結(jié)果如圖7所示。
圖7 數(shù)據(jù)采集測試結(jié)果
圖7中的四路測試信號分別為500,1000,1500,2000Hz的正弦波,幅值均為1Vpp??梢钥闯鏊穆沸盘栠B續(xù)光滑,沒有突變點,說明了多通道采集的可行性。
文中采用PSoC和USB音頻類協(xié)議,設計了一種新型的USB數(shù)據(jù)采集卡。與其他廣泛應用的數(shù)據(jù)采集卡相比具有以下優(yōu)勢:第一,采集方式靈活,采集通道數(shù)、采樣率和分辨率可任意調(diào)整;第二,方法新穎,充分利用了PSoC內(nèi)部的可編程模擬和數(shù)字資源,與上位機通過USB音頻類協(xié)議交換數(shù)據(jù),實時性與同步性好,并且免安裝驅(qū)動;第三,性價比高,整個數(shù)據(jù)采集與上傳下載過程均在PSoC單芯片內(nèi)完成,結(jié)構簡單,使用方便。
[1] National Instruments Corporation.USB Multifunction Data Acquisition(DAQ)[EB/OL].[2014].http://sine.ni.com/nips/cds/view/p/lang/en/nid/209145.
[2] 趙洪亮,徐磊,田瑩瑩,王亞南.基于PSoC3的高性價比虛擬信號分析儀[J].儀表技術與傳感器,2012(6):25-28.
[3] 郝麗,趙偉.基于聲卡的虛擬儀器教學.實驗室研究與探索[J]. 2014,33(2):79-81.
[4] 王碩,王兵,鄒光南.基于聲卡和LabVIEW的虛擬儀器設計與實現(xiàn)[J].電子設計工程,2014,22(10):147-150.
[5] Cypress Semiconductor Corporation.Datasheet-PSoC5LP CY8C52LP Programmable System-on-Chip[EB/OL].[2014-06-03]. http://www.cypress.com/?DocID=49437.
[6] 徐磊,路宇英,陳建華,施心陵.基于USB塊傳輸方式的實時數(shù)據(jù)采集[J].測控技術,2005,24(2):12-14.