基于USB2.0總線的高速數據采集系統設計
發布時間:2008/5/27 0:00:00 訪問次數:704
    
    
     來源:21ic中國電子網 作者:航天時代電子公司771研究所加固機工程部 蔡本華 摘要:本文主要介紹支持usb2.0高速傳輸的ez-usb fx2單片機cy7c68013,并詳細說明用此芯片實現高速數據采集系統和相應的windows驅動程序及底層固件程序的開發過程。 關鍵詞:cy7c68013 usb2.0 數據采集 固件 1、引言 現代工業生產和科學研究對數據采集的要求日益提高,在瞬態信號測量、圖像處理等一些高速、高精度的測量中,需要進行高速數據采集。現在通用的高速數據采集卡一般多是pci卡或isa卡,存在以下缺點:安裝麻煩、價格昂貴;受計算機插槽數量、地址、中斷資源限制,可擴展性差;在一些電磁干擾性強的測試現場,無法專門對其做電磁屏蔽,導致采集的數據失真。 通用串行總線usb是1995年康柏、微軟、ibm、dec等公司為解決傳統總線不足而推廣的一種新型的通信標準。該總線接口具有安裝方便、高帶寬、易于擴展等優點,已逐漸成為現代數據傳輸的發展趨勢。基于usb的高速數據采集卡充分利用usb總線的上述優點,有效解決了傳統高速數據采集卡的缺陷。 2、硬件設計 2.1支持usb2.0高速傳輸的cy7c68013 cypress semiconductor公司的ez-usb fx2是世界上第一款集成usb2.0的微處理器,它集成了usb2.0收發器、sie(串行接口引擎)、增強的8051微控制器和可編程的外圍接口。fx2這種獨創性結構可使數據傳輸率達到56mbytes/s,即usb2.0允許的最大帶寬。在fx2中,智能sie可以硬件處理許多usb1.1和usb2.0協議,從而減少了開發時間和確保了usb的兼容性。gpif(general programmable interface)和主/從端點fifo(8位或16位數據總線)為ata、utopia、epp、pcmcia和dsp等提供了簡單和無縫連接接口。 cy7c68013的gpif引擎具有自動傳輸數據結構的特性,這種特性使得外圍設備和主機通過cy7c68013可以無縫的、高速的傳輸數據。為了實現高速的數據傳輸,cy7c68013cpu不會直接參與數據的傳輸,而是直接利用gpif的自動傳輸數據模式。圖1和圖2說明了主機in和out數據傳輸過程。 2.1.1 端點緩沖區 fx2包含3個64字節端點緩沖區和4k可配置成不同方式的緩沖,其中3個64字節的緩沖區為ep0、ep1in和ep1out。ep0作為控制端點用,它是一個雙向端點,既可為in也可為out。當需要控制傳輸數據時,fx2固件讀寫ep0緩沖區,但是8個setup字節數據不會出現在這64字節ep0端點緩沖區中。ep1in和ep1out使用獨立的64字節緩沖區,fx2固件可配置這些端點為bulk、interrupt或isochronous傳輸方式,這兩個端點和ep0一樣只能被固件訪問。這一點與大端點緩沖區ep2、ep4、ep6和ep8不同,這四個端點緩沖區主要用來和片上或片外進行高帶寬數據傳輸而無需固件的參與。ep2、ep4、ep6和ep8是高帶寬、大緩沖區。它們可被配置成不同的方式來適應帶寬的需求。2.1.2 接口信號 在利用gpif進行高速數據傳輸系統設計時,gpif waveforms的編輯是非常重要的,它控制著整個數據傳輸過程的讀寫時序。此時cpu的作用已經非常小了,它只起著下載代碼到內部ram以及在固件中如何觸發gpif waveforms的作用。fx2專門為gpif提供了外圍接口信號,如8位或16位的數據線、控制信號、ready信號以及地址線。 ifclk(雙向時鐘信號):ifclk是一個參考時鐘,可以配置成輸入或輸出。當配置為輸出時,ifclk被fx2驅動為30mhz或48mhz;當配置為輸入時,時鐘范圍為5-48mhz。 gpifadr[8:0](輸出):gpif使用gpifadr信號為外部設備提供地址線,在總線上地址值是自增的。 fd[15:0](雙向):這是usb主機通過fx2和外部設備進行數據傳輸的數據線,它可配置成8位或16位。當16位時,fd[7:0]代表端點fifo中的第一個字節,fd[15:8]代表第二個字節。 ctl[5:0](輸出):fx2為外部設備提供了幾個控制信號,如讀寫選通、使能等。 rdy[5:0](輸入):fx2提供了幾個狀態檢測信號,它可以檢測外部設備的狀態,如fifo的空、滿、半滿等。 gstate[2:0](輸出):這是調試信號,表示gpif波形執行的狀態,通常連接到邏輯分析儀上。2.2 ad9238 ad9238是一個雙通道的12位a/d轉換器,采用單3v供電,速度可以是20msps、40msps和65msps;低功耗,工作在20msps時,功耗為180mw,40msps時,功耗為330mw,65msps時,功耗為600mw;具有500mhz 3db帶寬的差分輸入;片上參考源及sha;靈活的模擬輸入范圍:1vp-p~2vp-p;適用于:超聲波設備,射頻通訊,電池電源儀器,低價示波器等。本系統采用20msps的ad9238,可充分發揮usb在高速傳輸模式下的數據傳輸優勢。2.3 數據采集系統 該數據采集系統整個框圖如圖3所示,該系統由以下幾部份組成:usb控制器、fifo、cpld、ad9238以及數據采集前端電路。圖3 數據采集系統框圖 cpld主要是控制時序,時鐘分頻等。fifo
    
    
     來源:21ic中國電子網 作者:航天時代電子公司771研究所加固機工程部 蔡本華 摘要:本文主要介紹支持usb2.0高速傳輸的ez-usb fx2單片機cy7c68013,并詳細說明用此芯片實現高速數據采集系統和相應的windows驅動程序及底層固件程序的開發過程。 關鍵詞:cy7c68013 usb2.0 數據采集 固件 1、引言 現代工業生產和科學研究對數據采集的要求日益提高,在瞬態信號測量、圖像處理等一些高速、高精度的測量中,需要進行高速數據采集。現在通用的高速數據采集卡一般多是pci卡或isa卡,存在以下缺點:安裝麻煩、價格昂貴;受計算機插槽數量、地址、中斷資源限制,可擴展性差;在一些電磁干擾性強的測試現場,無法專門對其做電磁屏蔽,導致采集的數據失真。 通用串行總線usb是1995年康柏、微軟、ibm、dec等公司為解決傳統總線不足而推廣的一種新型的通信標準。該總線接口具有安裝方便、高帶寬、易于擴展等優點,已逐漸成為現代數據傳輸的發展趨勢。基于usb的高速數據采集卡充分利用usb總線的上述優點,有效解決了傳統高速數據采集卡的缺陷。 2、硬件設計 2.1支持usb2.0高速傳輸的cy7c68013 cypress semiconductor公司的ez-usb fx2是世界上第一款集成usb2.0的微處理器,它集成了usb2.0收發器、sie(串行接口引擎)、增強的8051微控制器和可編程的外圍接口。fx2這種獨創性結構可使數據傳輸率達到56mbytes/s,即usb2.0允許的最大帶寬。在fx2中,智能sie可以硬件處理許多usb1.1和usb2.0協議,從而減少了開發時間和確保了usb的兼容性。gpif(general programmable interface)和主/從端點fifo(8位或16位數據總線)為ata、utopia、epp、pcmcia和dsp等提供了簡單和無縫連接接口。 cy7c68013的gpif引擎具有自動傳輸數據結構的特性,這種特性使得外圍設備和主機通過cy7c68013可以無縫的、高速的傳輸數據。為了實現高速的數據傳輸,cy7c68013cpu不會直接參與數據的傳輸,而是直接利用gpif的自動傳輸數據模式。圖1和圖2說明了主機in和out數據傳輸過程。 2.1.1 端點緩沖區 fx2包含3個64字節端點緩沖區和4k可配置成不同方式的緩沖,其中3個64字節的緩沖區為ep0、ep1in和ep1out。ep0作為控制端點用,它是一個雙向端點,既可為in也可為out。當需要控制傳輸數據時,fx2固件讀寫ep0緩沖區,但是8個setup字節數據不會出現在這64字節ep0端點緩沖區中。ep1in和ep1out使用獨立的64字節緩沖區,fx2固件可配置這些端點為bulk、interrupt或isochronous傳輸方式,這兩個端點和ep0一樣只能被固件訪問。這一點與大端點緩沖區ep2、ep4、ep6和ep8不同,這四個端點緩沖區主要用來和片上或片外進行高帶寬數據傳輸而無需固件的參與。ep2、ep4、ep6和ep8是高帶寬、大緩沖區。它們可被配置成不同的方式來適應帶寬的需求。2.1.2 接口信號 在利用gpif進行高速數據傳輸系統設計時,gpif waveforms的編輯是非常重要的,它控制著整個數據傳輸過程的讀寫時序。此時cpu的作用已經非常小了,它只起著下載代碼到內部ram以及在固件中如何觸發gpif waveforms的作用。fx2專門為gpif提供了外圍接口信號,如8位或16位的數據線、控制信號、ready信號以及地址線。 ifclk(雙向時鐘信號):ifclk是一個參考時鐘,可以配置成輸入或輸出。當配置為輸出時,ifclk被fx2驅動為30mhz或48mhz;當配置為輸入時,時鐘范圍為5-48mhz。 gpifadr[8:0](輸出):gpif使用gpifadr信號為外部設備提供地址線,在總線上地址值是自增的。 fd[15:0](雙向):這是usb主機通過fx2和外部設備進行數據傳輸的數據線,它可配置成8位或16位。當16位時,fd[7:0]代表端點fifo中的第一個字節,fd[15:8]代表第二個字節。 ctl[5:0](輸出):fx2為外部設備提供了幾個控制信號,如讀寫選通、使能等。 rdy[5:0](輸入):fx2提供了幾個狀態檢測信號,它可以檢測外部設備的狀態,如fifo的空、滿、半滿等。 gstate[2:0](輸出):這是調試信號,表示gpif波形執行的狀態,通常連接到邏輯分析儀上。2.2 ad9238 ad9238是一個雙通道的12位a/d轉換器,采用單3v供電,速度可以是20msps、40msps和65msps;低功耗,工作在20msps時,功耗為180mw,40msps時,功耗為330mw,65msps時,功耗為600mw;具有500mhz 3db帶寬的差分輸入;片上參考源及sha;靈活的模擬輸入范圍:1vp-p~2vp-p;適用于:超聲波設備,射頻通訊,電池電源儀器,低價示波器等。本系統采用20msps的ad9238,可充分發揮usb在高速傳輸模式下的數據傳輸優勢。2.3 數據采集系統 該數據采集系統整個框圖如圖3所示,該系統由以下幾部份組成:usb控制器、fifo、cpld、ad9238以及數據采集前端電路。圖3 數據采集系統框圖 cpld主要是控制時序,時鐘分頻等。fifo