當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]摘 要:介紹了一種利用USB2.0的高速傳輸特性,基于USB和DSP的數(shù)據(jù)采集系統(tǒng)。詳細(xì)論述了系統(tǒng)的總體結(jié)構(gòu)、部分硬件設(shè)計,并簡要敘述了相應(yīng)固件程序的實現(xiàn)。關(guān)鍵詞:USB DSP FPGA 高速

摘 要:介紹了一種利用USB2.0的高速傳輸特性,基于USB和DSP的數(shù)據(jù)采集系統(tǒng)。詳細(xì)論述了系統(tǒng)的總體結(jié)構(gòu)、部分硬件設(shè)計,并簡要敘述了相應(yīng)固件程序的實現(xiàn)。
關(guān)鍵詞:USB DSP FPGA 高速傳輸
測量儀器一般由數(shù)據(jù)采集、數(shù)據(jù)分析和顯示三部分組成,而數(shù)據(jù)分析和顯示可以由PC機的軟件來完成,因此只要額外提供一定的數(shù)據(jù)采集硬件就可以和PC機組成測量儀器。這種基于PC機的測量儀器被稱為虛擬儀器[1]。而在一些數(shù)據(jù)量比較大、采集時間比較長的場合,就需要采用高速的數(shù)據(jù)傳輸通道?;谔摂M儀器的思想和高速傳輸通道的要求,設(shè)計了一種基于DSP和USB2.0的高速數(shù)據(jù)傳輸接口。
1 數(shù)據(jù)采集系統(tǒng)硬件
數(shù)據(jù)采集系統(tǒng)由A/D數(shù)據(jù)采集單元、USB從接口單元、U盤讀寫單元組成。硬件原理圖如圖1所示。被測信號經(jīng)A/D轉(zhuǎn)換后寫入FIFO中;當(dāng)FIFO數(shù)據(jù)半滿后,產(chǎn)生中斷,通知DSP進行數(shù)據(jù)壓縮處理;DSP把壓縮好的數(shù)據(jù)依次寫入USB接口芯片的4個從FIFO中,4個從FIFO對應(yīng)USB的4個端點,DSP一邊寫入數(shù)據(jù),已寫滿的從FIFO就一邊通過相應(yīng)端點由SIE把數(shù)據(jù)發(fā)送到上位機,上位機一邊把收到的數(shù)據(jù)通過多線程存儲到硬盤中,一邊把數(shù)據(jù)解壓并把波形實時顯示出來。對于少量的數(shù)據(jù),可以存儲到U盤,送回PC機進行分析顯示。


1.1 A/D采集模塊
作為單通道輸入的MAX1189,主要控制信號有CS、R/C(Read/Conversion)、EOC(End of Conversion)。圖2為MAX1189的時序圖[2]。如圖2所示,每個采樣周期長達(dá)CS信號的三個周期。在第一個CS信號的下降沿,如果R/C為低電平,也就進入了應(yīng)答模式,這是開始采樣前必須的準(zhǔn)備工作。為了適應(yīng)不同的輸入極性要求,MAX1189的內(nèi)部參考電壓可以在每次轉(zhuǎn)換結(jié)束后進行設(shè)置,這是通過在第二個CS下降沿時,R/C的高低電平變化來控制的,非常簡便。低電平時,ADC內(nèi)部參考電壓無需進行轉(zhuǎn)換,這樣在開始下一個周期的轉(zhuǎn)換時無需等待電壓的變化。高電平時,內(nèi)部參考電壓會進行調(diào)變,這樣在開始下一周期的轉(zhuǎn)換時需要等待大約12?滋s的時間。在CS信號的第三個下降沿,EOC信號變?yōu)榈碗娖?,表示采樣結(jié)束,此時R/C信號為高電平,會把采樣數(shù)據(jù)放到總線上,這樣就完成了一個周期的采樣。采樣模塊的控制信號是由FPGA控制的。


1.2 DSP與FIFO的連接
主處理器DSP既要控制采集,又要完成數(shù)據(jù)的處理和傳輸,因此數(shù)據(jù)采集模塊采集來的數(shù)據(jù)不能直接傳送給DSP,這會極大影響DSP的處理效率。解決辦法是利用數(shù)據(jù)緩沖器如雙口RAM、FIFO等,對數(shù)據(jù)進行適度緩存,當(dāng)緩存的數(shù)據(jù)量達(dá)到一個設(shè)定值時,可以通知CPU進行一次高速數(shù)據(jù)傳輸,將緩存的數(shù)據(jù)一次性地讀入。在設(shè)計中采用了緩沖,較好地解決了采集端與處理端的速度匹配問題。
FIFO的讀寫由各自的控制時鐘FIFOR和FIFOW控制,寫時鐘與采樣時鐘同步,讀時鐘與DSP處理數(shù)據(jù)的時序有關(guān)。當(dāng)FIFO半滿后,F(xiàn)PGA會根據(jù)FIFOHF、FIFOE/F、FIFOPAFE的相應(yīng)位判斷FIFO是否半滿,F(xiàn)PGA便向DSP發(fā)出中斷請求。本設(shè)計中采用外部中斷的EXTINT3來作為FIFO緩沖數(shù)據(jù)的DMA傳輸觸發(fā)事件。DSP響應(yīng)FPGA中斷請求,讀取數(shù)據(jù)進行數(shù)據(jù)壓縮。當(dāng)DSP數(shù)據(jù)處理速度跟不上采集數(shù)據(jù)速度時,F(xiàn)IFO就會全滿,F(xiàn)PGA根據(jù)FIFOHF、FIFOE/F、FIFOPAFE相應(yīng)位狀態(tài)判斷到FIFO已全滿,于是向USB接口芯片單片機發(fā)出最高級中斷請求,通知系統(tǒng)數(shù)據(jù)己溢出,采集發(fā)生嚴(yán)重錯誤。
1.3 USB從接口電路
USB從接口單元采用CYPRESS的CY7C68013芯片。如圖3所示,USB接口芯片CY7C68013由3.3V電源供電。PAO/INTO#選擇INTO工作方式,其中斷級別最高,當(dāng)FIFO全滿造成數(shù)據(jù)溢出導(dǎo)致數(shù)據(jù)采集發(fā)生嚴(yán)重錯誤時,該中斷請求發(fā)生,系統(tǒng)通知數(shù)據(jù)溢出錯誤,并停止數(shù)據(jù)采集。RESET#為USB接口芯片復(fù)位輸入。


USB的FDO~FDl5與DSP的I/O數(shù)據(jù)線相連,用于DSP與USB從FIFO通信,SLWR為寫控制時鐘。FLAGB、FLAGC用于輸出2,4,6,8相應(yīng)端點從FIFO的空滿狀態(tài),以便DSP寫USB從FIFO時獲取空滿狀態(tài)。
FIFOADRO、FIFOADR1用于DSP尋址2,4,6,8相應(yīng)端點USB從FIFO,F(xiàn)IFOADRO及FIFOADR1功能真值表如表1所示。FIFOADRO、FIFOADR1的初值為00,對應(yīng)DSP寫端點2的從FIFO, FPGA對寫USB從FIFO的控制時鐘SLWR計數(shù),當(dāng)達(dá)到512次時,表示端點2己寫滿,計數(shù)器清零,F(xiàn)IFOADRO和FIFOADR1的值自加一次變?yōu)?1,對應(yīng)DSP寫端點4的從FIFO。以此類推,DSP依次寫2,4,6,8端點數(shù)據(jù),當(dāng)FIFOADRO和FIFOADR1的值為11時,再自加一次,F(xiàn)IFOADRO和FIFOADR1的值又變?yōu)?0,因此,DSP可循環(huán)寫2,4,6,8端點。需要說明的是,當(dāng)DSP開始寫一新端點的從FIFO之前,DSP要讀一次FLAGB、FLAGC標(biāo)志位,若該端點不空,則等待;若空,則進行寫數(shù)據(jù)操作[3]。


1.4 U盤讀寫單元
此電路單元采用USB主控芯片CH375。CH375 是一USB總線的通用接口芯片,支持USB-HOST主機方式和USB-DEVICE/SLAVE設(shè)備方式。此系統(tǒng)中只采用USB的主功能,用來讀寫U盤[4]。
CH375 芯片的RD#和WR#引腳分別連接DSP的讀選通輸出引腳和寫選通輸出引腳。CS#由地址譯碼電路驅(qū)動。INT#輸出的中斷請求是低電平有效,可以連接到DSP的中斷輸入引腳。當(dāng)WR#為高電平并且CS#和RD#及A0都為低電平時,CH375中的數(shù)據(jù)通過D7~D0 輸出;當(dāng)RD#為高電平并且CS#和WR#及A0都為低電平時,D7~D0上的數(shù)據(jù)被寫入CH375芯片中;當(dāng)RD#為高電平并且CS#和WR#都為低電平而A0 為高電平時,D7~D0上的數(shù)據(jù)被作為命令碼寫入CH375芯片中。CH375內(nèi)置了處理Mass-Storage 海量存儲設(shè)備的專用通訊協(xié)議的固件,DSP可以直接以扇區(qū)為基本單位讀寫常用的USB 存儲設(shè)備(包括USB硬盤/USB閃存盤/U 盤)。
2 軟件設(shè)計
本設(shè)計的軟件主要由兩大部分組成:USB芯片軟件及DSP通信軟件。其中,USB芯片軟件的設(shè)計是關(guān)鍵,它又包括固化程序、驅(qū)動程序、PC機端應(yīng)用程序[5]以及DSP端通信接口程序。
2.1 固化程序
USB芯片的固化程序主要負(fù)責(zé):
(1) 寄存器初始化工作,設(shè)置一些特殊功能寄存器的初值以實現(xiàn)所需的屬性或者功能;
(2) 輔助硬件完成設(shè)備的枚舉過程,對主機的設(shè)備請求作出適當(dāng)?shù)捻憫?yīng);
(3) 完成中斷處理、數(shù)據(jù)接收及發(fā)送以及對外圍電路的控制。
2.2 驅(qū)動程序
開發(fā)USB設(shè)備驅(qū)動程序可采用Jungo公司的WinDriverv6.03,并以VC++6.0作為輔助開發(fā)環(huán)境。利用WinDriver提供的開發(fā)平臺,用戶即可完成驅(qū)動程序的設(shè)計工作,剩下的底層細(xì)節(jié)由WinDriver內(nèi)核統(tǒng)一處理,從而降低了對開發(fā)者編程能力的要求,同時也大大縮短了開發(fā)周期。下面對使用WinDriver開發(fā)驅(qū)動程序的步驟作一個簡要說明:
(1) 啟動WinDriver的DriverWizard工具;
(2) 利用DriverWizard檢測硬件是否正常;
(3) 在DriverWizard中選擇所使用的開發(fā)環(huán)境,這里使用VC6.0開發(fā)環(huán)境,并生成驅(qū)動程序代碼;
(4) 對生成的代碼進行修改,使其符合系統(tǒng)的需要;
(5) 在WinDriver環(huán)境的用戶模式下調(diào)試驅(qū)動程序。
2.3 PC端應(yīng)用程序
USB主機應(yīng)用程序是計算機中完成特定功能的程序,其關(guān)鍵是實現(xiàn)從USB 外設(shè)讀取或發(fā)送特定數(shù)量的數(shù)據(jù)、USB標(biāo)準(zhǔn)設(shè)備請求和特定的命令等。另外,可以對數(shù)據(jù)做進一步的處理,如:存儲、顯示、快速傅立葉變換等。
主機應(yīng)用程序的編寫使用VC編譯環(huán)境中的API函數(shù)實現(xiàn)。應(yīng)用程序的編程方法與串口編程類似。首先必須查找設(shè)備,調(diào)用WIN32函數(shù)CreateFilea( )打開設(shè)備的句柄;然后調(diào)用WIN32函數(shù)DeviceIoControl( )就可以進行數(shù)據(jù)讀寫和控制操作;最后關(guān)閉設(shè)備句柄。
2.4 DSP端通信接口程序
在本設(shè)計中,DSP處于主控地位,通過INT中斷決定什么時候接收USB送來的數(shù)據(jù),并把接收來的數(shù)據(jù)做簡單的壓縮運算,決定何時往USB發(fā)送這些數(shù)據(jù)。在讀數(shù)據(jù)時,應(yīng)首先判斷FX2的FIFO2是否為空,如果不為空則將數(shù)據(jù)讀進來,一次讀進一個16位數(shù)。在寫數(shù)據(jù)時,首先判斷要寫的數(shù)據(jù)個數(shù)是否為512字節(jié)的整倍數(shù)。
由于開發(fā)此系統(tǒng)涉及到USB驅(qū)動開發(fā)以及應(yīng)用程序的設(shè)計,比較繁瑣,嘗試?yán)肕ass Storage協(xié)議開發(fā)虛擬設(shè)備,把數(shù)據(jù)采集卡當(dāng)作一個Windows的外圍設(shè)備,采用文件系統(tǒng)格式直接以文件形式存儲數(shù)據(jù)。這部分主要是修改CY7C68013的固件程序,如設(shè)備描述符、端點描述符,主機會把采集卡認(rèn)為是一Mass Storage設(shè)備,然后利用SCSI協(xié)議以及文件系統(tǒng)就可以直接存儲由DSP傳過來的數(shù)據(jù),這樣就省去了復(fù)雜的驅(qū)動和應(yīng)用程序設(shè)計。
本文介紹了基于USB2.0的16bit數(shù)據(jù)采集系統(tǒng),采用數(shù)據(jù)壓縮算法完成了數(shù)據(jù)量的壓縮以及高速數(shù)據(jù)傳輸[6]。由于USB的即插即用特性,彌補了傳統(tǒng)數(shù)據(jù)采集卡插拔困難的缺點,相信隨著技術(shù)的進步,USB技術(shù)必將得到更廣泛的應(yīng)用。

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

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

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

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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