當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]32 位ARM 嵌入式系統(tǒng)擴展USB 接口設計

常用的主機與嵌入式外設的高速通信接口有LPT 并行口、USB、1394 及10/100M 以太網(wǎng)等接口。RS232 不適合高速數(shù)據(jù)傳送,1394 接口需要專門的適配器接口成本過高,一般較少使用,USB 接口被廣泛用于高、中、低不同速度設備與主機通信,USB2.0 的最高速度可達480Mb/s, 可傳送高清晰數(shù)字視頻碼流,完全可以替代1394 接口,USB 與以太網(wǎng)接口相比,采用主從結構,有即插即用特性,驅動程序豐富,互操作性好等優(yōu)點。
    USB(Universal Serial Bus,通用串行總線)接口是1994 年Intel、Microsoft 等多家公司聯(lián)合推出的計算機外設互連總線協(xié)議。USB 接口支持1.5Mb/s、12Mb/s 和480Mb/s 的數(shù)據(jù)傳輸速率,支持控制、中斷、批量與實時4 種數(shù)據(jù)傳輸模式,讓外圍設備可以有彈性的選擇。不管是交換少量或是大量的數(shù)據(jù),還是有無時效的限制,都有合適的傳輸類型。USB的實時同步數(shù)據(jù)傳輸模式適合于高速實時音視頻數(shù)據(jù)流的傳送。
    基于ARM(Advanced RISC Machines)處理器的32 位嵌入系統(tǒng)具有極高運算速度和大容量的數(shù)據(jù)處理能力,常需要設計高速接口與其他設備通信,為此本文討論基于S3C44B0XARM7 處理器的嵌入式統(tǒng)擴展USB 接口(設備端)的技術方案。

1 USB 接口原理
    USB1.1 規(guī)范將USB 分為5 部分:控制器、控制器驅動程序、USB 芯片驅動程序、USB設備以及針對不同USB 設備的客戶端驅動程序。
(1) 控制器(Host Controller)主要負責執(zhí)行由控制器驅動程序發(fā)出的命令。
(2) 控制器驅動程序(Host Controller Driver), 在控制器與USB 設備間建立通信管道(Pipe)。
(3) USB 驅動程序(USB Driver),提供對不同USB 設備及芯片的支持。
(4) USB 設備(USB Device), 有兩類USB 設備:一類稱為功能設備(Function),另一類是稱為USB 集線器(HUB),可以連接多個USB 設備。
(5) USB 設備驅動程序(Client Driver Software)及特定應用程序。


 
    主控制器的驅動軟件由操作系統(tǒng)支持,USB 設備開發(fā)人員一般只需編寫客戶驅動程序,實現(xiàn)特定功能,設備端所有功能軟件需要全面設計。
    USB 的四種數(shù)據(jù)傳輸模式分別是:控制型傳輸、中斷型傳輸、批量型傳輸、實時型傳輸。第一種在缺省通道中傳輸USB 接口本身的配置等控制信息,后面三種用于功能部件傳輸數(shù)據(jù)。中斷型用于鍵盤等的異步輸入輸出少量數(shù)據(jù)傳輸,批量傳輸主要用于象硬盤等塊設備的數(shù)據(jù)傳輸,在中斷和批量的傳輸過程中要傳遞交互握手信號,確保數(shù)據(jù)準確無誤。
    實時傳輸對帶寬有嚴格要求,但允許有一定誤碼,省去了交互握手信號的傳遞,常用于音視頻碼流數(shù)據(jù)傳輸。四種類型數(shù)據(jù)都按帶寬要求分配在1ms 一幀的數(shù)據(jù)幀內(nèi)進行傳輸,USB1.0 實時傳輸可得到的最大帶寬10.24Mbps。

2 嵌入式系統(tǒng)USB 接口設計
    要滿足高性能ARM嵌入式系統(tǒng)的要求,擴展USB接口必須選擇高性能USB控制器芯片,Philips公司的PDISUBD12 USB器件,是與微處理器配合使用的高性能USB接口器件,性價比很高。PDIUSBD12主要特性有:
(1) 符合USB 1.1 技術規(guī)范;
(2) USB控制器并行接口與處理器間的數(shù)據(jù)傳輸速度高達2M 字節(jié)/秒;
(3) 在批量模式和同步模式下均可實現(xiàn)1M 字節(jié)/秒的數(shù)據(jù)傳輸速率;
(4) 集成了FIFO存儲收發(fā)器,支持DMA 操作;
(5) 內(nèi)置時鐘倍頻PLL電路,可編程時鐘頻率輸出;
(6) 多中斷模式實現(xiàn)批量和同步傳輸;[!--empirenews.page--]
    采用PDIUSBD12 USB標準組件與S3C44B0X接口,減小了開發(fā)的時間、風險以及費用,是最快捷、最經(jīng)濟的方法實現(xiàn)ARM嵌入式系統(tǒng)擴展USB的解決方案之一。PDIUSBD12與S3C44B0X ARM7處理器的電路圖見圖2。因ARM7用存儲器影射方法擴展I/O接口,一般按16bit方式尋址,所以U2的A0連到U1的Addr1引腳, 片選信號nGCS1的基地址是0x0200_0000。
 

3 ARM 端USB 設備程序
    設備端程序主要完成:ARM BIOS 和ucLinux 的加載、啟動通信進程、USB 控制器初始化、響應主控制器標準PnP 及其他命令、建立USB 端點(End point)邏輯通道、數(shù)據(jù)傳輸操作等功能,圖3 是基于ARM 的USB 設備與PC 間音頻通信的程序功能結構圖。
 
操作USB 芯片的接口函數(shù)的宏定義為:
typedef unsigned short int U16 ;
#define pD12_CMD ( ( U16 *) 0x02000002 ) //指向D12 命令寄存器指針
#define pD12_DAT ( ( U16 *) 0x02000000 ) //指向D12 數(shù)據(jù)寄存器指針
#define D12WriteCmd( data ) (*p D12_CMD = (U16)(data) & 0xff )
#define D12WriteData( data ) (* pD12_DAT = (U16)(data) & 0xff )
#define D12ReadData() (* pD12_DAT & 0xff )

4 音頻碼流USB 設備驅動程序
    Windows2000 中各種USB 設備客戶驅動程序結構框架基本相同,可以從Windows2000DDK 中獲得USB 設備驅動程序范例代碼,對范例代碼作少量修改就可以滿足特定功能需要。圖1 顯示了驅動程序各層間的數(shù)據(jù)傳遞關系,底層USB 主控制器驅動程序(USB Host Driver)由操作系統(tǒng)提供支持,設備驅動程序只需要對USB Host Driver 上傳的I/O 數(shù)據(jù)包IRP 作出響應,并把要輸出數(shù)據(jù)以IRP 形式下傳給USB Host Driver 即可。
    在ISO(實時型)模式下傳輸音頻碼流,USB 客戶程序除了WDM(Windows Driver Model)驅動常規(guī)處理外,必須計算好帶寬,并為驅動程序在非分頁存儲區(qū)內(nèi)分配好環(huán)行緩沖區(qū)(Ringbuffer),以便USB 主控制器可以不間斷輸出實時數(shù)據(jù)。RingBuffer 的大小按下式
計算:
每幀字節(jié)數(shù) × 每緩沖幀數(shù) × 緩沖區(qū)數(shù) ;
    每傳完一緩沖區(qū),USB Host Driver 回調(diào)(CallBack)一次客戶驅動程序,USB 帶寬按每1ms 傳送1 幀數(shù)據(jù)來分配,要實現(xiàn)8kHz 采樣頻率、8bits 編碼的音頻PCM 碼流傳輸,幀數(shù)據(jù)包大小必須設為8Bytes,若設置4 個緩沖區(qū)交替工作,每緩沖區(qū)分20 幀傳送, 則RingBuffer 的大小為640Bytes,那么USB 主控制器每20ms 的頻率中斷回調(diào)一次客戶驅動程序是合適的。
    驅動程序通過IoSetCompletionRoutine()函數(shù)給每個IRP 設置回調(diào)函數(shù)入口地址,每完成一個IRP 緩沖區(qū)數(shù)據(jù)傳送操作,回調(diào)一次該地址指向的函數(shù),以便把下一緩沖包數(shù)據(jù)壓入到IRP 棧,直到全部數(shù)據(jù)流傳送完畢或人為終止傳送。

5 結束語
    擴展USB 接口,大幅提升了32 位ARM 嵌入式系統(tǒng)數(shù)據(jù)通信的吞吐能力,有即插即用特性和多種數(shù)據(jù)傳輸模式,方案適合于嵌入式系統(tǒng)的多種應用。文章具體闡述了方案硬件、軟件設計的關鍵問題,并討論了如何分配USB 總線帶寬,實現(xiàn)恒速音頻PCM 碼流傳送,實驗結果表明該方案能流暢地接收Windows2000 通過USB 接口輸出話音編碼信號,方案可行,具有較高參考價值

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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

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

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

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

關鍵字: 汽車 人工智能 智能驅動 BSP

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

關鍵字: 亞馬遜 解密 控制平面 BSP

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

關鍵字: 騰訊 編碼器 CPU

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

關鍵字: 華為 12nm EDA 半導體

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

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

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

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

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

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

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

關鍵字: BSP 信息技術
關閉
關閉