新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Linux下USB主機(jī)接口設(shè)計

基于Linux下USB主機(jī)接口設(shè)計

作者: 時間:2010-09-13 來源:網(wǎng)絡(luò) 收藏
由USB接口輸入5 V直流電源,二極管VD1用于限制電源的導(dǎo)通方向,經(jīng)過C18、C19濾波,然后經(jīng)過SPXll7M-3.3將電源穩(wěn)壓至3.3 V。為了降低噪聲和出錯率,應(yīng)隔離模擬電源與數(shù)字電源,圖3中的L1和L2用于電源隔離元件(將數(shù)字電源的高頻噪聲隔離)。SPXll7M-3.3是Sipex公司的LDO器件,其特點為輸出電流大,輸出電壓精度高穩(wěn)定性高。SPXll7M系列LD0器件輸出電流可達(dá)800 mA,具有電流保護(hù)和熱保護(hù)功能,可廣泛應(yīng)用于數(shù)字家電和工業(yè)控制等領(lǐng)域。

本文引用地址:http://butianyuan.cn/article/151568.htm


2.3 USB主機(jī)端口設(shè)計
AT91SAM7X256的USB主機(jī)端口原理圖,如圖3所示。SL811HS/T選用48引腳的TQFP封裝形式,SL811HS/T既能用作Host模式又能用作Slave模式。將SL811HS/T的M/S引腳接地,即設(shè)為低電平信號(M/S=0),選擇作為主機(jī)端口。
SL811HS/T的D0~D7端口為雙向數(shù)據(jù)I/O端口,與控制器的PAl0~PAl7端口相連,實現(xiàn)數(shù)據(jù)通信。SL811HS/T的nRD引腳與AT91SAM7X256的PA9相連,nWR引腳與AT9lSAM7X256的PA8相連,SL811HS/T的nCS引腳與AT91SAM7X256的PA7相連,AO引腳與AT91SAM7X256的PA6相連,控制SL811HS/T的讀寫狀態(tài),如圖4所示。


訪問存儲器和控制寄存器的空間時,先設(shè)A0=0后寫地址,接下來設(shè)A0=1,再進(jìn)行寄存器/存儲器讀/寫周期。當(dāng)nWR或nCS處于無效時,SL811HS寫或讀操作終止。對于連接到SL81lHS的設(shè)備,在write nWR信號之前取消片選nCS,數(shù)據(jù)將一直保持并與指定的值相同。SL811HS/T的nRST引腳與AT91SAM7X256的PAl8相連,實現(xiàn)軟件低電平復(fù)位功能。SL811HS/T的引腳7、8與USB接口的DATA+,DATA-相連實現(xiàn)數(shù)據(jù)通信。S-L811HS/T的Clk/X1引腳和X2引腳與外接12 MHz晶振相連。

3 系統(tǒng)軟件實現(xiàn)
USB設(shè)備驅(qū)動程序設(shè)計包括主機(jī)端設(shè)備驅(qū)動程序、主機(jī)控制器驅(qū)動程序和設(shè)備端驅(qū)動程序3部分組成。主機(jī)端設(shè)備驅(qū)動程序就是設(shè)備驅(qū)動程序,它是主機(jī)環(huán)境中為用戶應(yīng)用程序提供一個訪問USB外設(shè)的接口。Linux為這部分驅(qū)動程序提供編程接口,設(shè)計者只要按照需求編寫驅(qū)動程序框架,通過調(diào)用操作系統(tǒng)提供的APl接口函數(shù)可以完成對USB外設(shè)的特定訪問。
3.1 USB設(shè)備驅(qū)動程序框架
圖5所示Linux中USB驅(qū)動的體系結(jié)構(gòu)。Linux USB主機(jī)驅(qū)動由3部分組成:USB主機(jī)控制器驅(qū)動,USB驅(qū)動和不同的USB設(shè)備類驅(qū)動。USB驅(qū)動程序首先要向Linux內(nèi)核進(jìn)行注冊自己,并告之系統(tǒng)該驅(qū)動程序所支持的設(shè)備類型及其所支持的操作。這些信息通過usb_driver結(jié)構(gòu)傳遞。



關(guān)鍵詞: 收發(fā)器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉