小議USB總線高速數據采集體制

時間:2022-11-21 05:46:00

導語:小議USB總線高速數據采集體制一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

小議USB總線高速數據采集體制

1現代工業生產介紹

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

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

通用串行總線(UniversalSerialBus,簡稱usb)是1995年康柏、微軟、IBM、DEC等公司為了解決傳統總線的不足,而推出的一種新型串行通信標準。該總線接口具有安裝方便、高帶寬、易擴展等優點,已經逐漸成為現代數據傳輸的發展趨勢。基于USB的數據采集系統充分利用USB總線的上述優點,有效地解決了傳統數據采集系統的缺陷。USB的規范能針對不同的性能價格比要求提供不同的選擇,以滿足不同的系統和部件及相應不同的功能,從而給使用帶來極大方便。

2系統介紹

2.1數據采集系統的結構與功能

常見的數據采集系統的硬件總體結構如圖1所示。其中數據采集接口卡是硬件部分的核心,它包括A/D轉換器、微控制器、USB通信接口等。

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

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

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

帶有加強的8051內核性能,可達到標準8051的5~10倍,且與標準8051的指令完全兼容;集成度高,芯片內部集成有微處理器、RAM、SIE(串行接口引擎)等多個功能模塊,從而減少了多個芯片接口部分需要時序配合的麻煩;采用軟配置,在外設未通過USB接口接到PC機之前,外設上的固件存儲在PC上;而一旦外設連接到PC機上,PC則先詢問外設是“誰”(即讀設備描述符),然后將該外設的固件下載到芯片的RAM中,這個過程叫做再枚舉。這樣,在開發過程中,當固件需要修改時,可以先在PC機上修改好,然后再下載到芯片中;具有易用的軟件開發工具,該芯片開發系統的驅動程序和固件的開發和調試相互獨立,可加快開發的速度。

2.2方案選擇

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

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

在“從FIFO”模式下,外部邏輯或外部處理器直接與FX2端點FIFO相連。在這種模式下,GPIF不被激活,因為外部邏輯可直接控制FIFO。這種模式下,外部主控端既可以是異步方式,也可以是同步方式,并可以為FX2接口提供自己的獨立時鐘。

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

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

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

3系統軟件設計

該系統軟件主要包括USB設備驅動程序、設備固件和應用程序。

3.1設備固件(Firmware)設計

設備固件是設備運行的核心,可采用匯編語言或C語言設計。其主要功能是控制CY7C68013接收并處理USB驅動程序的請求(如請求設備描述符、請求或設置設備狀態,請求或設置設備接口等USB2.0標準請求)、控制芯片CY7C68013接收應用程序的控制指令、控制A/D模塊的數據采集、通過CY7C68013緩存數據并實時上傳至PC等。

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

配置端點;通過控制端點零來響應主機請求;控制和監測GPIF的活動;利用USART處理所有的特殊請求任務,如計時器、中斷、I/O引腳等。

3.2USB設備驅動程序開發

USB系統驅動程序采用分層結構模型?分別為較高級的USB設備驅動程序和較低級的USB函數層。其中USB函數層由兩部分組成:較高級的通用串行總線驅動程序模塊(USBD)和較低級的主控制器驅動程序模塊(HCD)。

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

初始化模塊可提供一個DriverEntry入口點以執行大量的初始化函數。

即插即用管理模塊用來實現USB設備的熱插拔及動態配置。當硬件檢測到USB設備接入時,Windows查找相應的驅動程序,并調用它的DriverEn-try例程,同時告訴它添加了一個設備;然后,驅動程序為USB設備建立一個FDO(功能設備對象)。在此處理過程中,驅動程序收到一個IRPMNSTARTDE-VICE的IRP,在它之中包括有設備的資源信息。至此,設備被正確配置,驅動程序開始與硬件進行對話。當然,在設備運行過程中,如果設備狀態發生變化(拔除、暫停等),PnP管理器也同樣發出相應的IRP,以便由驅動程序進行相應的處理。

電源管理模塊負責設備的掛起與喚醒。

I/O功能實現模塊可完成I/O請求的大部分工作。當應用程序提出I/O請求時,它將調用Win32API函數DeviceIoControl向設備發出命令,然后由I/O管理器構造一個IRP并設置其MajorFunction.域為IRPMJDEVICECONTROL。在USB設備驅動程序收到該IRP后?它將取出其中的控制碼?并利用一個開關語句查找對應的程序入口。

3.3應用程序設計

應用程序設計由兩個部分組成:動態鏈接庫和應用程序。動態鏈接庫負責與內核態的USB功能驅動程序通信并接收應用程序的各種操作請求,而應用程序則負責對所采集的數據進行實時顯示、分析和存盤。

動態鏈接庫的工作原理如下:當它收到應用程序開始采樣的請求后,首先創建兩個線程:采樣線程和顯示存盤線程。采樣線程負責將采樣數據寫到應用程序提交的內存;而顯示存盤線程則負責給應用程序發送顯示和存盤消息。當應用程序接收到此消息后,便從它提交的內存中讀取數據并顯示和存盤。要注意的是:采樣線程和顯示存盤線程在讀寫應用程序提交內存時要保持同步。

PC機或工控機應用程序是數據實時采集系統的中心?可采用Labview編程。它是當今國際上唯一的編譯型圖形化編程語言,其特點如下:

(1)能完成對固體表面速度的實時測量;

(2)主介面與多重窗口結合?可完成數據連續采集、實時統計分析、系統參數設置、信號波形顯示、被測參數輸出等綜合系統功能。

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

圖3所示是用高速數據采集系統采集通過Lab-view顯示的一個波形實例,其輸入信號是一個頻率為5MHz的正弦波。

4結束語

隨著電子計算機的廣泛應用,社會的數字化程度越來越高,數據采集也越來越重要,本系統是一種通用的高速數據采集系統,可用于生物電波、電子學頻譜、聲波分析等瞬態信號的實時采集和觀察等場合。其中基于USB總線的高速數據采集系統具有可靠性高、數據不丟失、抗干擾性強、便于數據傳輸和處理等優點,因而具有良好的應用前景和很大的實用價值。