當(dāng)前位置:首頁 > 智能硬件 > 智能硬件
[導(dǎo)讀]介紹了一種基于USB總線的高速數(shù)據(jù)采集系統(tǒng)。

摘要:介紹了一種基于USB總線的高速數(shù)據(jù)采集系統(tǒng),討論了USB控制器EZ-USB FX2?CY7C68013?的性能及傳輸方式?給出了該系統(tǒng)的硬件和基于GPIF主控方式實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)能浖O(shè)計(jì)方法。

    關(guān)鍵詞:USB;數(shù)據(jù)采集;EZ-USB FX2;GPIF

1 引言

現(xiàn)代工業(yè)生產(chǎn)和科學(xué)研究對(duì)數(shù)據(jù)采集的要求日益提高。目前比較通用的是在PC或工控機(jī)內(nèi)安裝數(shù)據(jù)采集卡(如A/D卡及422、485卡)。但這些數(shù)據(jù)采集設(shè)備存在以下缺陷:安裝麻煩、價(jià)格昂貴、受計(jì)算機(jī)插槽數(shù)量、地址、中斷資源的限制,可擴(kuò)展性差,同時(shí)在一些電磁干擾性強(qiáng)的測(cè)試現(xiàn)場(chǎng),可能無法專門對(duì)其作電磁屏蔽,從而導(dǎo)致采集的數(shù)據(jù)失真。

傳統(tǒng)的外設(shè)與主機(jī)的通訊接口一般是基于PCI總線、ISA總線或者是RS-232C串行總線。PCI總線雖然具有較高的傳輸速度(132Mbps),并支持“即插即用”功能,但其缺點(diǎn)是插拔麻煩,且擴(kuò)展槽有限(一般為5~6個(gè)),ISA總線顯然存在同樣的問題。RS-232C串行總線雖然連結(jié)簡(jiǎn)單,但其傳輸速度慢(56kbps),且主機(jī)的串口數(shù)目也有限。

通用串行總線(Universal Serial Bus,簡(jiǎn)稱USB)是1995年康柏、微軟、IBM、DEC等公司為了解決傳統(tǒng)總線的不足,而推出的一種新型串行通信標(biāo)準(zhǔn)。該總線接口具有安裝方便、高帶寬、易擴(kuò)展等優(yōu)點(diǎn),已經(jīng)逐漸成為現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢(shì)。基于USB的數(shù)據(jù)采集系統(tǒng)充分利用USB總線的上述優(yōu)點(diǎn),有效地解決了傳統(tǒng)數(shù)據(jù)采集系統(tǒng)的缺陷。USB的規(guī)范能針對(duì)不同的性能價(jià)格比要求提供不同的選擇,以滿足不同的系統(tǒng)和部件及相應(yīng)不同的功能,從而給使用帶來極大方便。

2 系統(tǒng)介紹

2.1 數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)與功能

常見的數(shù)據(jù)采集系統(tǒng)的硬件總體結(jié)構(gòu)如圖1所示。其中數(shù)據(jù)采集接口卡是硬件部分的核心,它包括A/D轉(zhuǎn)換器、微控制器、USB通信接口等。

在高速數(shù)據(jù)采集系統(tǒng)中?由于現(xiàn)場(chǎng)輸入信號(hào)是高頻模擬信號(hào),因而信號(hào)的變化范圍都比較大?如果采用單一的增益放大?那么放大以后的信號(hào)幅值有可能超過A/D轉(zhuǎn)換的量程?所以必須根據(jù)信號(hào)的變化相應(yīng)地調(diào)整放大器的增益。在自動(dòng)化程度較高的系統(tǒng)中?希望能夠在程序中用軟件控制放大器的增益?AD8321正是這樣一種具有增益可編程功能的芯片。AD8321是美國AD公司生產(chǎn)的一種增益可編程線性驅(qū)動(dòng)器。它具有頻帶寬、噪聲低、增益可編程且易于與單片機(jī)進(jìn)行串行通信等優(yōu)點(diǎn),十分適合在數(shù)據(jù)采集系統(tǒng)中做前置放大。

經(jīng)過調(diào)理后的信號(hào)可送入模/數(shù)變換器(ADC)進(jìn)行A/D變換。筆者選用的ADC是TLC5540,它是一種高速8位模擬數(shù)字轉(zhuǎn)換器,能以高達(dá)每秒40M的采樣速率進(jìn)行轉(zhuǎn)換,由于采用半閃速結(jié)構(gòu)和CMOS工藝制造,因此功耗和成本很低。其75MHz(典型值)的模擬輸入帶寬使該器件成為欠采樣應(yīng)用的良好選擇。該器件帶有內(nèi)部電阻,可用于從5V電源產(chǎn)生2V滿度的基準(zhǔn)電壓,以減少外部元件數(shù)。數(shù)字輸出置于高阻方式。它僅需要5V電源工作,可由USB總線供電。

由于數(shù)據(jù)采集接口卡是硬件部分的核心,因此應(yīng)選擇能適用USB協(xié)議的合適芯片。EZ-USB FX2是一種USB2.0集成微控制器。它的內(nèi)部集成了USB2.0收發(fā)器、串行接口引擎(SIE)、增強(qiáng)的8051微控制器和一個(gè)可編程的串行接口。其主要特性如下:

●帶有加強(qiáng)的8051內(nèi)核性能,可達(dá)到標(biāo)準(zhǔn)8051的5~10倍,且與標(biāo)準(zhǔn)8051的指令完全兼容;

●集成度高,芯片內(nèi)部集成有微處理器、RAM、SIE(串行接口引擎)等多個(gè)功能模塊,從而減少了多個(gè)芯片接口部分需要時(shí)序配合的麻煩;

●采用軟配置,在外設(shè)未通過USB接口接到PC機(jī)之前,外設(shè)上的固件存儲(chǔ)在PC上;而一旦外設(shè)連接到PC機(jī)上,PC則先詢問外設(shè)是“誰”(即讀設(shè)備描述符),然后將該外設(shè)的固件下載到芯片的RAM中,這個(gè)過程叫做再枚舉。這樣,在開發(fā)過程中,當(dāng)固件需要修改時(shí),可以先在PC機(jī)上修改好,然后再下載到芯片中;

●具有易用的軟件開發(fā)工具,該芯片開發(fā)系統(tǒng)的驅(qū)動(dòng)程序和固件的開發(fā)和調(diào)試相互獨(dú)立,可加快開發(fā)的速度。

圖2 USB接口示意圖

    2.2 方案選擇

FX2有三種可用的接口模式:端口、GPIF主控和從FIFO。

在“端口”模式下,所有I/O引腳都可作為8051的通用I/O口。

在“從FIFO”模式下,外部邏輯或外部處理器直接與FX2端點(diǎn)FIFO相連。在這種模式下,GPIF不被激活,因?yàn)橥獠窟壿嬁芍苯涌刂疲疲桑疲?。這種模式下,外部主控端既可以是異步方式,也可以是同步方式,并可以為FX2接口提供自己的獨(dú)立時(shí)鐘。

“GPIF主控”接口模式使用PORTB和PORTD構(gòu)成通向四個(gè)FX2端點(diǎn)FIFO( EP2? EP4? EP6和EP8)的16位數(shù)據(jù)接口。GPIF作為內(nèi)部的主控制器與FIFO直接相連,并產(chǎn)生用戶可編程的控制信號(hào)與外部接口進(jìn)行通信。同時(shí),GPIF還可以通過RDY引腳采樣外部信號(hào)并等待外部事件。由于GPIF的運(yùn)行速度比FIFO快得多,因此其時(shí)序信號(hào)具有很好的編程分辨率。另外,GPIF既可以使用內(nèi)部時(shí)鐘,也可以使用外部時(shí)鐘。故此,筆者選擇了GPIF模式。

高速數(shù)據(jù)采集卡的設(shè)計(jì)存在兩大難點(diǎn):一是模擬信號(hào)的A/D高速轉(zhuǎn)換;二是變換后數(shù)據(jù)的高速存儲(chǔ)及提取。對(duì)于第一個(gè)問題,由于制造ADC的技術(shù)不斷進(jìn)步,這個(gè)問題已經(jīng)得到解決。而對(duì)于第二個(gè)問題,一般的數(shù)據(jù)采集系統(tǒng)是將A/D轉(zhuǎn)換后的數(shù)據(jù)先存儲(chǔ)在外部數(shù)據(jù)存儲(chǔ)器中,然后再對(duì)其進(jìn)行處理。對(duì)于高速數(shù)據(jù)采集而言,這種方式將嚴(yán)重影響采集速度,且存儲(chǔ)值也會(huì)受到很大限制。而改進(jìn)方案是將A/D轉(zhuǎn)換后的數(shù)據(jù)直接送至計(jì)算機(jī)內(nèi)存,這樣,采集速度將大大提高,而且可存儲(chǔ)大量數(shù)據(jù),以便于下一步的處理。

為了解決同步問題,可以由CPLD產(chǎn)生同步時(shí)鐘信號(hào)提供給ADC和FX2。在本數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)中,CPLD同時(shí)還可用于產(chǎn)生不同的控制信號(hào),以便對(duì)采樣進(jìn)行實(shí)時(shí)控制。CPLD是復(fù)雜可編程邏輯器件,它包括可編程邏輯宏單元、可編程I/O單元和可編程內(nèi)部連線。由于CPLD的內(nèi)部資源豐富,因而可廣泛應(yīng)用在數(shù)據(jù)采集、自動(dòng)控制、通訊等各個(gè)領(lǐng)域。在本系統(tǒng)的設(shè)計(jì)中,筆者選用的CPLD是Lattice公司的ispLSI1016。圖2所示是其整個(gè)USB接口卡的硬件電路圖。

3 系統(tǒng)軟件設(shè)計(jì)

該系統(tǒng)軟件主要包括USB設(shè)備驅(qū)動(dòng)程序、設(shè)備固件和應(yīng)用程序。

3.1 設(shè)備固件(Firmware)設(shè)計(jì)

設(shè)備固件是設(shè)備運(yùn)行的核心,可采用匯編語言或C語言設(shè)計(jì)。其主要功能是控制CY7C68013接收并處理USB驅(qū)動(dòng)程序的請(qǐng)求(如請(qǐng)求設(shè)備描述符、請(qǐng)求或設(shè)置設(shè)備狀態(tài),請(qǐng)求或設(shè)置設(shè)備接口等USB2.0標(biāo)準(zhǔn)請(qǐng)求)、控制芯片CY7C68013接收應(yīng)用程序的控制指令、控制A/D模塊的數(shù)據(jù)采集、通過CY7C68013緩存數(shù)據(jù)并實(shí)時(shí)上傳至PC等。

即使外部邏輯或內(nèi)置的普通可編程接口(GPIF)在沒有CPU的任何干涉下能夠通過四個(gè)大的端點(diǎn)FIFO來處理高速寬帶數(shù)據(jù),固件還是有如下固定的工作:

●配置端點(diǎn);

●通過控制端點(diǎn)零來響應(yīng)主機(jī)請(qǐng)求;

●控制和監(jiān)測(cè)GPIF的活動(dòng);

●利用USART處理所有的特殊請(qǐng)求任務(wù),如計(jì)時(shí)器、中斷、I/O引腳等。

3.2 USB設(shè)備驅(qū)動(dòng)程序開發(fā)

USB系統(tǒng)驅(qū)動(dòng)程序采用分層結(jié)構(gòu)模型?分別為較高級(jí)的USB設(shè)備驅(qū)動(dòng)程序和較低級(jí)的USB函數(shù)層。其中USB函數(shù)層由兩部分組成:較高級(jí)的通用串行總線驅(qū)動(dòng)程序模塊(USBD)和較低級(jí)的主控制器驅(qū)動(dòng)程序模塊(HCD)。

在上述USB分層模塊中,USB函數(shù)層(USBD及HCD)由Windows提供,負(fù)責(zé)管理USB設(shè)備驅(qū)動(dòng)程序和USB控制器之間的通信;加載及卸載USB驅(qū)動(dòng)程序;與USB設(shè)備通用端點(diǎn)(endpoint)建立通信并執(zhí)行設(shè)備配置、數(shù)據(jù)與USB協(xié)議框架和打包格式的雙向轉(zhuǎn)換任務(wù)。目前?Windows提供有多種USB設(shè)備驅(qū)動(dòng)程序,但并不針對(duì)實(shí)時(shí)數(shù)據(jù)采集設(shè)備,因此需采用DDK開發(fā)工具來設(shè)計(jì)專用的USB設(shè)備驅(qū)動(dòng)程序。該設(shè)備驅(qū)動(dòng)程序應(yīng)由初始化模塊、即插即用管理模塊、電源管理模塊以及I/O功能等四個(gè)模塊來實(shí)現(xiàn)。

初始化模塊可提供一個(gè)DriverEntry入口點(diǎn)以執(zhí)行大量的初始化函數(shù)。

即插即用管理模塊用來實(shí)現(xiàn)USB設(shè)備的熱插拔及動(dòng)態(tài)配置。當(dāng)硬件檢測(cè)到USB設(shè)備接入時(shí),Windows查找相應(yīng)的驅(qū)動(dòng)程序,并調(diào)用它的DriverEn-try例程,同時(shí)告訴它添加了一個(gè)設(shè)備;然后,驅(qū)動(dòng)程序?yàn)椋眨樱略O(shè)備建立一個(gè)FDO(功能設(shè)備對(duì)象)。在此處理過程中,驅(qū)動(dòng)程序收到一個(gè)IRP MN START DE-VICE 的IRP,在它之中包括有設(shè)備的資源信息。至此,設(shè)備被正確配置,驅(qū)動(dòng)程序開始與硬件進(jìn)行對(duì)話。當(dāng)然,在設(shè)備運(yùn)行過程中,如果設(shè)備狀態(tài)發(fā)生變化(拔除、暫停等),PnP管理器也同樣發(fā)出相應(yīng)的IRP,以便由驅(qū)動(dòng)程序進(jìn)行相應(yīng)的處理。

電源管理模塊負(fù)責(zé)設(shè)備的掛起與喚醒。

I/O功能實(shí)現(xiàn)模塊可完成I/O請(qǐng)求的大部分工作。當(dāng)應(yīng)用程序提出I/O請(qǐng)求時(shí),它將調(diào)用Win32 API函數(shù)DeviceIoControl向設(shè)備發(fā)出命令,然后由I/O管理器構(gòu)造一個(gè)IRP并設(shè)置其MajorFunction.域?yàn)椋桑遥?MJ DEVICE CONTROL。在USB設(shè)備驅(qū)動(dòng)程序收到該IRP后?它將取出其中的控制碼?并利用一個(gè)開關(guān)語句查找對(duì)應(yīng)的程序入口。

3.3 應(yīng)用程序設(shè)計(jì)

應(yīng)用程序設(shè)計(jì)由兩個(gè)部分組成:動(dòng)態(tài)鏈接庫和應(yīng)用程序。動(dòng)態(tài)鏈接庫負(fù)責(zé)與內(nèi)核態(tài)的USB功能驅(qū)動(dòng)程序通信并接收應(yīng)用程序的各種操作請(qǐng)求,而應(yīng)用程序則負(fù)責(zé)對(duì)所采集的數(shù)據(jù)進(jìn)行實(shí)時(shí)顯示、分析和存盤。

    動(dòng)態(tài)鏈接庫的工作原理如下:當(dāng)它收到應(yīng)用程序開始采樣的請(qǐng)求后,首先創(chuàng)建兩個(gè)線程:采樣線程和顯示存盤線程。采樣線程負(fù)責(zé)將采樣數(shù)據(jù)寫到應(yīng)用程序提交的內(nèi)存;而顯示存盤線程則負(fù)責(zé)給應(yīng)用程序發(fā)送顯示和存盤消息。當(dāng)應(yīng)用程序接收到此消息后,便從它提交的內(nèi)存中讀取數(shù)據(jù)并顯示和存盤。要注意的是:采樣線程和顯示存盤線程在讀寫應(yīng)用程序提交內(nèi)存時(shí)要保持同步。

PC機(jī)或工控機(jī)應(yīng)用程序是數(shù)據(jù)實(shí)時(shí)采集系統(tǒng)的中心?可采用Labview編程。它是當(dāng)今國際上唯一的編譯型圖形化編程語言,其特點(diǎn)如下:

(1) 能完成對(duì)固體表面速度的實(shí)時(shí)測(cè)量;

(2)主介面與多重窗口結(jié)合?可完成數(shù)據(jù)連續(xù)采集、實(shí)時(shí)統(tǒng)計(jì)分析、系統(tǒng)參數(shù)設(shè)置、信號(hào)波形顯示、被測(cè)參數(shù)輸出等綜合系統(tǒng)功能。

(3)能充分利用Labview開發(fā)平臺(tái)和WINDOWS視窗所提供的良好操作環(huán)境?集曲線、圖形、數(shù)據(jù)于一體?可準(zhǔn)確描述過程參數(shù)的變化。

圖3所示是用高速數(shù)據(jù)采集系統(tǒng)采集通過Lab-view顯示的一個(gè)波形實(shí)例,其輸入信號(hào)是一個(gè)頻率為5MHz的正弦波。

4 結(jié)束語

隨著電子計(jì)算機(jī)的廣泛應(yīng)用,社會(huì)的數(shù)字化程度越來越高,數(shù)據(jù)采集也越來越重要,本系統(tǒng)是一種通用的高速數(shù)據(jù)采集系統(tǒng),可用于生物電波、電子學(xué)頻譜、聲波分析等瞬態(tài)信號(hào)的實(shí)時(shí)采集和觀察等場(chǎng)合。其中基于USB總線的高速數(shù)據(jù)采集系統(tǒng)具有可靠性高、數(shù)據(jù)不丟失、抗干擾性強(qiáng)、便于數(shù)據(jù)傳輸和處理等優(yōu)點(diǎn),因而具有良好的應(yīng)用前景和很大的實(shí)用價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉