高速數據采集器設計管理論文

時間:2022-06-26 05:12:00

導語:高速數據采集器設計管理論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

高速數據采集器設計管理論文

摘要:介紹了一種基于USB2.0接口的同步高速數據采集的設計方案及其軟硬件的設計方法,對Cypress的USB2.0控制芯片CY7C68013和同步數據采集芯片AD7862的特性作了簡要說明,同時重點介紹CPIP及其驅動軟件的設計。

關鍵詞:USB2.0EZ—USBFX2同步數據采集

隨著計算機技術的迅速發展,對外部總線速度的要求越來越高。通用串行總線(UniversalSerialBus,即USB總線)憑借其即插即用、熱插拔以及較高的傳輸速率等優點,成為PC機與外設連接的普遍標準。在許多便攜式電腦上,已經找不到RS-232接口。迄今為止,常用的USB總線標準有1998年的USBl.1版本和2000年的USB2.0版本。其中1.1版本支持兩種傳輸速率:1.5Mbps和12Mbps,主要應用在低速傳輸要求的場合;而2.0版本面向高數據率傳輸的場合,支持480Mbps的傳輸速度,并向下完全兼容USBl.1協議。在實際應用中,通常會遇到一些突發信號,需要對其進行高速采集,對數據進行高速傳輸,所以USB2.0標準自然成為首選。以Cypress公司的EZ-USBFX2系列中的CY7C68013芯片作為核心控制器,設計開發了一套符合USB2.0標準的高速同步數據采集器

1CY7C68013芯片

Cypress公司的EZ-USBFX2系列中的CY7C68013,是目前市面上比較少的符合USB2.0標準的USB控制器之一。與其它同類芯片相比,它提供了4KB的FIFO和一個功能十分強大的GPIF(GeneralProgrammableInterface)模塊。后者相當于一個可編程狀態機,正是由于它的存在,使得CY7C68013比其它同類芯片具有強大的互聯能力。圖1是CY7C68013芯片的結構示意圖,其主要特點如下:

·CY7C68013內部集成了一個增強型的51內核,其指令集與標準的8051兼容,并且在多方面有所改進。例如:最高工作頻率可達48MHz,一個指令周期為4個時鐘周期,兩個UART接口,三個定時計數器,一個I2C接口引擎等。

·CY7C68013提供了一個串行接口引擎(SIE),負責完成大部分USB2.0協議的處理工作,從而大大減輕了USB協議處理的工作量,并且提供了4KB的FIFO保證數據高速傳輸的需要。

·為了滿足與各種不同類型外設的互聯需要,芯片中集成了一個GPIF模塊,讓用戶可以按照外設的時序進行波形編輯,而不需要復雜的程序描述,就可以保證GPIF與內部.FIFO的協調工作,實現芯片與高速外圍設備之間的邏輯連接和高速數據傳輸。這對于開發者來說是相當友好的。筆者就是利用這一特性,實現數據的高速同步采集及傳輸。

圖1

2同步高速數據采集芯片AD7862

2.1AD7862的結構

AD7862是AD公司推出的高速、低功耗、雙極性12位的A/D轉換芯片,其中包含了兩個獨立的快速ADC模塊(允許同時采樣和轉換兩路信號)、4路模擬輸入信號(VAl、VA2、VBl、VB2)、2.5V的內部電壓基準以及一個12位的高速并行接口。芯片正常運行時功耗只有60mW,當使用節電方式時,只有50μW,對于自帶電源的USB設備這種低功耗無疑是一種優點。該芯片的內部結構如圖2所示。每個ADC都有一個兩通道的多路選擇器,芯片通過地址信號A0分別選通VAl、VA2或VBl、VB2,當一個CONVST信號到來時,同時轉換地址A0選中的兩路信號。

2.2AD7862的控制時序

AD7862的控制時序如圖3所示。在USB2.0同步高速數據采集器中,利用GPIF實現圖3所示的時序控制。其中CONVST是轉換開始啟動信號,下降沿觸發兩路ADC開始裝換;BUSY信號在CONVST信號觸發后;變成并保持為高電子狀態,直到兩路ADC轉換完畢,才又回到低電平;地址A0用于對兩路模擬信號的選擇,CS信號和RD信號分別是芯片使能信號以及讀允許信號。兩者第一次同為低電平時,讀出第一組ADC轉換的數據;在第二次為高電平時,讀出第二組ADC轉換的數據。使用AD7862值得注意的一點是該芯片提供了電源管理功能,當芯片將第二組數據讀出后,CONVST信號繼續保持低電平,芯片進入休眠模式。這時芯片的功耗只有50μW。這一點對于現在的便攜式設備十分重要。

3同步高速數據采集器的硬件設計

傳統的高速數據采集卡一般都采用PCI總線設計,但是筆記本電腦以及大部分便攜式設備是沒有PCI插槽的。利用USB2.0技術,不僅保證了較高的數據傳輸率(傳輸率最大可以達到480Mbps),同時還具有便攜和無需外加電源等優點。圖4是系統的結構示意圖。它的工作原理是:在GPIF模塊的控制下,由AD7862對目標進行等間隔采樣,然后將采樣結果通過GPIF傳送到CY7C68013的內部FIFO中緩存;當采集一定量的數據后,CY7C68013自動將數據打包(不需要8051的介入),通過USB總線傳輸到PC機中進行數據處理。由于有GPIF的硬件支持,CY7C68013中的8051內核只是在很少的時間內,對控制進行了輔助處理,大部分工作由GPIF硬件完成。這樣8051還可以與其他外設進行互聯等工作。在高速數據采集器上附加了兩路RS-232接口,用于將GPS數據和高精度智能測深儀的數據中轉到主控計算機上,大大方便了新近推出的筆記本電腦與傳統外設之間的聯系。因為新近推出的筆記本電腦大多不具有RS-232接口,而那些野外觀測儀器大多只能通過RS-232接口進行數據交換。

對于CY7C68013來說,其配置和固件都是軟的,存儲在外部的E2PROM中,上電時從I2C總線自動裝載到片內RAM中,修改起來十分方便,便于固件升級。由于CY7C68013提供了豐富的I/O口,所以進行功能擴展也是很方便的,例如增加一個GPIB數據口等。

4軟件設計

USB設備的軟件設計包括三方面:固件設計、硬件驅動程序設計以及高級應用程序的設計。

4.1固件(firmware)設計

Cypress公司為CY7C68013提供了一個開發框架,可以在KEILC51環境下開發。由于開發框架的引入,從而大大縮短了用戶的研發周期。該框架由以下幾部分組成:

(1)FW.C中包含了程序框架的MAIN函數,管理整個51內核的運行,因為Cypress對這個部分的功能進行了精心劃分,一般是不用改動的。

圖3

(2)用戶必須將PERIPH.C實例化,它負責系統周邊器件的互聯。固件的設計主要針對這個文件,用戶必須根據自己系統的需要,實例化這個文件,以實現自己的功能。在這個文件中有幾個函數是比較關鍵的,在這里做一下特別說明:

·TD_Init函數,負責對USB端點進行初始化設置。本設計中將端點6設置為1024個字節,緩存深度為4級,模式設為自動輸入方式。

·TD_Poll函數,負責系統中循環任務的處理。它主要是對各個端點的狀態進行查詢,處理各種OUT或IN端點的交互。值得說明的一點是,這種處理只是輔助性質的,大部分工作由硬件自動完成。

·DR_VendorCmnd函數,主要負責用戶自定義命令的譯碼工作,用戶請求通過端點O傳輸給內核。由于CY7C68013上SIE硬件的支持,用戶只需查詢固定地址單元即可獲得當前的命令代碼。

·GPIFINIT.C,其中只有一個Gpiflnit函數;它是GPIF模塊的初始化函數,一般在TD_Init函數中調用。這個函數是由Cypress公司提供的一個GPIFDesigner開發工具根據用戶設計的波形生成的,用戶不需要自己設計波形查詢表,減輕了設計者的工作強度。

·DSCR.A51是描述表文件,負責USB設備的描述工作,CY7C68013在上電后自動利用其中的VID和PID取代默認的VID和PID。

·兩個包含文件EZUSB.LIB和USBJMPTB.OBJ,前者是EZUSB函數庫的二進制文件,后者是USB的中斷向量表。

固件調試,使用Cypress提供的EZ-USBcontrolpanel,具體的操作讀者可以參考其自帶幫助。

4.2驅動程序的設計

驅動程序負責對底層硬件的訪問。在本設計的驅動程序開發中,使用的開發工具是Jungo公司的WinDriverv6.03,它支持多種操作系統。利用WinDriver開發的優點是用戶不需要了解操作系統內部的具體工作機理,同時也不需要了解各個系統DDK(DevelopingorDebugginginKernel)的開發工具,用戶只需使用WinDriver提供的開發平臺,即可完成驅動程序的設計工作,剩下的底層細節由WinDriver內核統一處理,從而降低了對開發者編程能力的要求,同時也大大縮短了開發周期。下面就使用WinDriver開發驅動程序的步驟做一個簡要說明(以在Windows操作系統下的開發為例):

(1)啟動WinDriver的DriverWizard工具;

(2)利用DriverWizard檢測硬件是否正常;

(3)在DriverWizard中選擇所使用的開發環境,這里使用VB6.0開發環境,并生成驅動程序代碼;

(4)對生成的代碼進行修改,使其符合系統的需要;

(5)在WinDriver環境的用戶模式下,調試驅動程序;

(6)如果程序需要內核訪問,以提高驅動程序的效率,進入內核開發。

4.3高級應用程序的設計

高級應用程序建立在驅動程序之上,在本設計中,選用了VB6.0的開發環境來開發應用程序。它以驅動程序為橋梁,對USB設備進行命令控制,處理USB設備傳回的數據,例如波形顯示、頻譜分析等。開發者可以依據自己的實際需求,制作一個USB控制器的控件或數據包,在編寫應用程序時連接或嵌入到應用程序中。

隨著筆記本電腦的迅速普及,高性能便攜式采集器將會倍受矚目,尤其是在RS-232接口已被大多數筆記本電腦擯棄的今天,對USB數據采集器的需求就變得更加迫切,并已顯示出了良好的市場前景。本文所述的基于USB2.0的高速同步數據采集器就其功能來說已不僅限于數據采集,應該說是一個功能強大的混合信號處理器。經過在水下機器人聲納和浙江深水網箱監測設備中的使用表明數據吞吐量大、性能穩定,達到了設計要求。只要搭配合適的傳感器以及相應的信號調理電路,利用本文所述的高性能采集器,就可以對各種模擬量進行采集和分析處理。如果再能夠配以合適的固件設計,則完全可以構成一個多功能控制系統。