關(guān)于USB2.0協(xié)議轉(zhuǎn)換模塊的技術(shù)問答
|
|
為了簡化USB2.0接口產(chǎn)品的設(shè)計(jì),西安達(dá)泰電子先后開發(fā)了USB20C和USB20D模塊。 這個(gè)模塊在市場上經(jīng)過5年的推廣應(yīng)用,已經(jīng)有上萬家用戶使用了這個(gè)產(chǎn)品。例如北京天惠公司用于其測試設(shè)備中,成都57所用于軍工產(chǎn)品中。 另外有相關(guān)應(yīng)用書籍及論文公開出版發(fā)表: 論文題目: 《基于USB20C模塊的單片機(jī)系統(tǒng)與PC機(jī)的通信》 作者:曾金芳,楊恢先,李正義 作者單位:湘潭大學(xué)信息工程學(xué)院,湖南湘潭411105 發(fā)表刊物:《電子器件》第28 卷 第4 期 2005 年12 月 書名: 《USB應(yīng)用開發(fā)技術(shù)大全》 作者:薛園園 編著 出版:人民郵電出版社 設(shè)計(jì)USB2.0模塊的出發(fā)點(diǎn)是將復(fù)雜的問題簡單化。因?yàn)閷τ诖蠖鄶?shù)應(yīng)用工程師來說,開發(fā)USB2.0 接口的產(chǎn)品主要障礙在于熟悉復(fù)雜的USB2.0協(xié)議,具體來說要解決兩個(gè)問題。首先要自己編寫USB設(shè)備的驅(qū)動(dòng)程序,這要求起碼有相當(dāng)?shù)腣C編程經(jīng)驗(yàn);其次要編寫USB接口的硬件(固件)程序,對于熟悉單片機(jī)的編程只是基本要求,更重要的是要真正掌握USB2.0的協(xié)議內(nèi)容。所以使用USB2.0接口開發(fā)產(chǎn)品,對于開發(fā)人員要求軟硬件的高手才行。 由此可見,如果不是對USB協(xié)議有特別愛好,那么就沒有必要把大量寶貴的時(shí)間浪費(fèi)在研究USB的協(xié)議上。西安達(dá)泰電子有限責(zé)任公司長期從事USB數(shù)據(jù)采集板卡的研究,針對USB接口產(chǎn)品的開發(fā)問題專門研制了USB20C和USB20D模塊。 US20C模塊可以被看作是一個(gè)USB2.0協(xié)議的轉(zhuǎn)換器,通過這個(gè)模塊將電腦的USB2.0接口轉(zhuǎn)換為一個(gè)透明的并行總線,就象ISA總線一樣。 對于用戶來說,USB20C模塊就是一個(gè)黑匣子,這個(gè)黑匣子對USB的協(xié)議進(jìn)行了解釋,用戶不需要了解詳細(xì)的過程。如果使用過ISA總線的產(chǎn)品對此過程就非常容易了解,而對于開發(fā)過單片機(jī)產(chǎn)品的用戶來說,就可以把這個(gè)模塊當(dāng)作一個(gè)外部芯片來看待,例如SRAM或者FIFO等。 原來我們面對的是復(fù)雜的USB接口,而現(xiàn)在從USB20C模塊的用戶接口看,我們面對的僅僅是一個(gè)標(biāo)準(zhǔn)的并行總線而已。 在此無法提供全部圖片及資料,請通過Email索取 data029@126.com 常見問題解答: 問題1: USB20C與USB20D有何區(qū)別? 問題2:關(guān)于USB接口的主從概念 問題3:如何使用USB20D快速開發(fā)產(chǎn)品? 選擇USB20D模塊開發(fā)USB2.0接口的從設(shè)備是最為快捷簡單的途徑,對于具有一定單片機(jī)或FPGA開發(fā)經(jīng)驗(yàn)的設(shè)計(jì)人員來說,不到1周時(shí)間就可以調(diào)通USB接口的數(shù)據(jù)傳輸單元。參考隨該產(chǎn)品提供的大量實(shí)例代碼,并與西安達(dá)泰公司技術(shù)支持進(jìn)行溝通開發(fā)周期會(huì)大大縮短。 下面以開發(fā)USB2.0接口的數(shù)據(jù)采集板為例說明過程: 1 首先根據(jù)采樣率確定主控芯片 如果A/D采樣率小于200KHz,那么采用單片機(jī)就可以了;如果如果A/D采樣率大于200KHz,建議采用CPLD 、FPGA、ARM、DSP等作為主控芯片。 2 設(shè)計(jì)硬件電路 把 USB20D模塊作為系統(tǒng)硬件的一個(gè)單元,主要負(fù)責(zé)數(shù)據(jù)的傳輸。如果希望進(jìn)行高速連續(xù)的數(shù)據(jù)傳輸,那么建議在系統(tǒng)中設(shè)計(jì)比較大的緩存單元(FIFO、SRAM或雙口RAM等)。 3 編寫程序 程序分硬件程序和上位機(jī)程序兩個(gè)部分。 硬件程序主要協(xié)調(diào)A/D轉(zhuǎn)換器、存儲器和USB接口的控制。對于USB20D模塊來說編程就是非常簡單的事,只要搞清楚DMA的時(shí)序就可以了。 上位機(jī)軟件程序一般用高級語言編寫,例如VC、VB、Delphi,Labview也可以,無論采用那種語言,都是調(diào)用USB20D附帶的Windows API函數(shù)(以USB20D.DLL形式提供)。對于PCI或ISA總線編程熟悉的話,原理都是一樣的。 問題4:USB20D模塊的地址I/O模式解釋 USB20D模塊設(shè)計(jì)了兩種工作模式:地址I/O模式、DMA模式。 地址I/O模式主要用于通過上位機(jī)設(shè)置設(shè)備的參數(shù),例如采集板的采樣率,記錄長度等;或者檢測設(shè)備的工作狀態(tài),例如判斷采集板A/D轉(zhuǎn)換是否結(jié)束。這種模式主要用于高速數(shù)據(jù)傳輸前的準(zhǔn)備,速度要求不高的情況。當(dāng)然如果不進(jìn)行高速數(shù)據(jù)傳輸?shù)脑挘部梢酝ㄟ^這個(gè)模式進(jìn)行數(shù)據(jù)采集。 地址I/O模式涉及到16根信號線,其中8根雙向數(shù)據(jù)線、5根地址線、2根讀寫輸出線、1根等待輸入線。 8根雙向數(shù)據(jù)線:注意在I/O模式下是8 位數(shù)據(jù)線 5根地址線:這里地址線與一般意義上地址線不太一樣,應(yīng)該理解為口地址線。雖然5根線很少,但是有32個(gè)狀態(tài),所以就可以分配32個(gè)口地址,作為設(shè)備命令狀態(tài)等操作足夠用了,我們知道,PC總線分配給并口的口地址也不過4個(gè)。單片機(jī)外擴(kuò)器件時(shí)片選信號也是通過分配口地址實(shí)現(xiàn)的。 問題5:USB20D模塊的DMA模式解釋 DMA模式是USB20D模塊的最大優(yōu)點(diǎn),USB2.0接口的高速數(shù)據(jù)傳輸就是通過DMA方式體現(xiàn)的,我們知道USB2.0的接口最大速率為480Mbit/sec,理論字節(jié)速度為48Mbyte/Sec。通過用目前雙核電腦測試,USB20D模塊的DMA有效傳輸速度可以達(dá)到35Mbyte/Sec。有效速度是不包括協(xié)議包的數(shù)據(jù)的,所以比理論速度慢一些,實(shí)際上接口速度仍是480Mbit/sec。
|
|
|