51單片機(jī)控制SL811HS的USB主機(jī)底層驅(qū)動(dòng)_第1頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、51單片機(jī)控制sl811hs的usb主機(jī)底層驅(qū)動(dòng) 基于接口的設(shè)備用法便利,性價(jià)比高,因此在人們的工作和生活中得到了廣泛的應(yīng)用,如u盤、移動(dòng)硬盤、移動(dòng)光驅(qū)、usb攝像頭、usb鼠標(biāo)鍵盤等。同時(shí),51 系列以其成熟的技術(shù)和高性價(jià)比吸引了大量國(guó)內(nèi)用戶,被廣泛應(yīng)用于測(cè)控和領(lǐng)域。因此,假如在51 單片機(jī)系統(tǒng)中增強(qiáng)usb 主機(jī)接口,實(shí)現(xiàn)對(duì)usb 從機(jī)設(shè)備的控制,則該單片機(jī)系統(tǒng)可充分利用現(xiàn)有的各種usb從機(jī)設(shè)備,大大擴(kuò)展單片機(jī)系統(tǒng)的功能。本設(shè)計(jì)實(shí)現(xiàn)了在系統(tǒng)中增強(qiáng)usb主機(jī)功能,采納一般51單片機(jī)外接專用usb接口芯片的計(jì)劃。這種計(jì)劃雖然會(huì)使系統(tǒng)傳輸速度受到限制,而且在穩(wěn)定性方面有所欠缺,但此計(jì)劃設(shè)計(jì)靈便性高

2、,且易于移植,為低成本產(chǎn)品的開(kāi)發(fā)提供了廣大前景。設(shè)計(jì)中采納的51單片機(jī)是公司的at89s52芯片,usb主機(jī)功能的擴(kuò)展通過(guò)外接專用usb接口芯片sl811hs實(shí)現(xiàn)。cypress公司的usb接口芯片sl811hs可以工作在主機(jī)或從機(jī)模式,支持usb1.1的全速和低速數(shù)據(jù)傳輸。工作在主機(jī)模式時(shí),sl811hs可以自動(dòng)檢測(cè)外設(shè)的插拔動(dòng)作,可以根據(jù)外處理器(如單片機(jī))的要求自動(dòng)把數(shù)據(jù)整合為usb協(xié)議數(shù)據(jù)包舉行數(shù)據(jù)傳輸。圖 1 系統(tǒng)硬件暗示圖本文將介紹單片機(jī)at89s52控制sl811hs的硬件設(shè)計(jì)和底層驅(qū)動(dòng)的編寫,其中重點(diǎn)敘述底層驅(qū)動(dòng)的設(shè)計(jì)。硬件設(shè)計(jì)系統(tǒng)的硬件原理圖1所示。at89s52的供電為5v

3、,sl811hs的為3.3v。盡管供電電壓不同,但按照芯片引腳的信號(hào)噪聲容限參數(shù)分析可知,at89s52與sl811hs之間的引腳可以挺直相連,不需要電平轉(zhuǎn)換或緩沖。表1 usb主機(jī)枚舉操作驅(qū)動(dòng)的層次關(guān)系軟件設(shè)計(jì)usb主機(jī)驅(qū)動(dòng)是一個(gè)凹凸層子程序的組合,實(shí)現(xiàn)usb傳輸和控制的過(guò)程是較高層子程序調(diào)用較低層子程序的過(guò)程。編寫usb主機(jī)驅(qū)動(dòng)時(shí),可接從低層往高層的挨次逐層舉行。以u(píng)sb主機(jī)枚舉從機(jī)設(shè)備的操作為例,實(shí)現(xiàn)該功能所需要的各層子程序?qū)哟侮P(guān)系如表1所示。本文將介紹較低層的幾個(gè)子程序的實(shí)現(xiàn),包括讀寫sl811hs內(nèi)部寄存器、傳輸事務(wù)的實(shí)現(xiàn)、設(shè)備插拔檢測(cè)、復(fù)位等,其中,“傳輸事務(wù)的實(shí)現(xiàn)”是關(guān)鍵和難點(diǎn),

4、同時(shí)也是本文的重點(diǎn)。單片機(jī)讀寫sl811hs內(nèi)部寄存器讀寫sl811hs內(nèi)部寄存器子程序是最低層的子程序,系統(tǒng)所舉行的各種操作主要都是通過(guò)調(diào)用這些子程序讀寫sl811hs內(nèi)部寄存器實(shí)現(xiàn)的。例如,通過(guò)讀取sl811hs的狀態(tài)寄存器獵取sl811hs的狀態(tài)信息可以實(shí)現(xiàn)設(shè)備插拔檢測(cè)、設(shè)備速度檢測(cè)等,通過(guò)向sl811hs的相關(guān)控制寄存器寫入控制字節(jié)可以實(shí)現(xiàn)usb復(fù)位以及usb數(shù)據(jù)傳輸?shù)炔僮?。sl811hs內(nèi)部寄存器從編程結(jié)構(gòu)的角度來(lái)看,sl811hs內(nèi)部寄存器一共有256個(gè)單元,每個(gè)單元是一個(gè)字節(jié),其中地址為00h0fh的前16個(gè)單元是sl811hs的狀態(tài)寄存器或控制寄存器(統(tǒng)稱為特別寄存器),其余的

5、是數(shù)據(jù)緩沖寄存器。表2列出了16個(gè)特別寄存器的名稱和主要功能含義。表2 sl811hs內(nèi)部特別寄存器簡(jiǎn)介單片機(jī)讀寫sl811hs內(nèi)部寄存器的實(shí)現(xiàn)根據(jù)sl811hs的讀寫控制信號(hào)時(shí)序圖編寫單片機(jī)讀寫sl811hs內(nèi)部寄存器的子程序,使各控制引腳上根據(jù)規(guī)定的時(shí)序給出符合要求的信號(hào)脈沖。 在這個(gè)程序中,單片機(jī)命令周期的大小將挺直影響輸出信號(hào)的保持時(shí)長(zhǎng)和時(shí)序關(guān)系。初始化初始化操作主要包括sl811hs芯片復(fù)位、usb總線復(fù)位、設(shè)備插拔檢測(cè)和設(shè)備usb數(shù)據(jù)傳輸速度檢測(cè)等。通過(guò)這些初始化操作,sl811hs將作為usb主機(jī)與從機(jī)之間建立一個(gè)底層協(xié)議銜接關(guān)系,為后續(xù)的數(shù)據(jù)通信做好預(yù)備。sl811hs芯片復(fù)位

6、usb接口芯片sl811hs的復(fù)位是對(duì)芯片的狀態(tài)舉行復(fù)位,包括了對(duì)芯片內(nèi)部寄存器值的復(fù)位。實(shí)現(xiàn)該操作不需要讀寫接口芯片內(nèi)部寄存器,只需向接口芯片的復(fù)位引腳輸入一個(gè)有效的復(fù)位脈沖即可。usb總線復(fù)位根據(jù)usb協(xié)議,usb總線復(fù)位是指在usb數(shù)據(jù)線上輸出se 0態(tài),并保持10ms以上,接在usb總線上的從機(jī)設(shè)備收到這個(gè)復(fù)位信號(hào)后就會(huì)舉行自身的復(fù)位操作,為接下來(lái)的usb數(shù)據(jù)傳輸做好預(yù)備。通過(guò)設(shè)置接口芯片的ctrlreg05h寄存器的第4、3位為規(guī)律”01”,并保持10ms,然后再把它們復(fù)原為規(guī)律”00”,就可以讓接口芯片產(chǎn)生usb總線復(fù)位信號(hào)。設(shè)備拔插檢測(cè)和設(shè)備速度檢測(cè)在usb協(xié)議的物理層上,usb

7、從機(jī)設(shè)備是否接在usb總線上是通過(guò)檢測(cè)總線的電壓得知的。按照該電壓的凹凸,還可獲知usb總線上的設(shè)備所支持的速度(例如,在usb1.1協(xié)議中,分有低速和全速)。 usb主機(jī)接口芯片sl811hs把這個(gè)物理層的電壓檢測(cè)結(jié)果反映到狀態(tài)寄存器的取值上,通過(guò)讀取這些狀態(tài)寄存器的值,可以獲知當(dāng)前的設(shè)備插拔狀態(tài)和設(shè)備速度。usb主機(jī)所舉行的初始化操作除了上述3項(xiàng)外,還包括幀起始包啟動(dòng)/禁止的設(shè)置、幀同步設(shè)置、幀定時(shí)初值的設(shè)置等,它們都是通過(guò)對(duì)接口芯片特別寄存器舉行讀寫而實(shí)現(xiàn)的。傳輸事務(wù)的實(shí)現(xiàn)按照usb1.1協(xié)議,一個(gè)傳輸事務(wù)普通包含3個(gè)包(packet)的傳輸,分離是標(biāo)志包(token packet)、數(shù)

8、據(jù)包(data packet)和握手包(handshake packet)。usb數(shù)據(jù)傳輸方式一共有四種,分離是控制傳輸(control transfer)、同步傳輸(isochronous transfer)、中斷傳輸(interrupt transfer)和批傳輸(bulk transfer)。其中,控制傳輸方式起碼由2個(gè)傳輸事務(wù)構(gòu)成,其它三種傳輸方式則都各由個(gè)傳輸事務(wù)構(gòu)成??梢?jiàn),傳輸事務(wù)在usb傳輸中至關(guān)重要。一個(gè)典型的傳輸事務(wù)含有3個(gè)包的傳送,這延續(xù)的3個(gè)包數(shù)據(jù)流如表3所示。表3 一個(gè)傳輸事務(wù)的數(shù)據(jù)流暗示用法sl811hs設(shè)計(jì)usb主機(jī)系統(tǒng)時(shí),用戶只需讓單片機(jī)設(shè)置sl811hs內(nèi)部幾個(gè)

9、相關(guān)的特別寄存器,然后把傳輸事務(wù)啟動(dòng)位使能(置為規(guī)律1),就可以讓接口芯片自動(dòng)完成這個(gè)包的發(fā)送與接收。在表3所示的例子中,第n個(gè)包(標(biāo)志包)和第n+2個(gè)包(握手包)都是由主機(jī)發(fā)送給從機(jī)的,第n+1個(gè)包(數(shù)據(jù)包)是由從機(jī)發(fā)送給主機(jī)的。這個(gè)傳送方向和第n+2個(gè)包的傳送方向都是由標(biāo)志包中的標(biāo)識(shí)域取值打算的,其規(guī)章可參考usb協(xié)議。假如傳輸事務(wù)的數(shù)據(jù)包是由從機(jī)發(fā)送給主機(jī),則該傳輸事務(wù)屬于輸入類型,稱為輸入傳輸事務(wù),反之則稱為輸出傳輸事務(wù)。可見(jiàn),表3例子是一個(gè)輸入傳輸事務(wù)。對(duì)于一個(gè)輸入傳輸事務(wù),單片機(jī)通過(guò)設(shè)置sl811hs內(nèi)部特別寄存器就可以打算其取值的包域主要有:標(biāo)志包中的標(biāo)識(shí)域、地址域和端點(diǎn)域,數(shù)據(jù)

10、包中的標(biāo)識(shí)域。在輸入傳輸事務(wù)中,雖然數(shù)據(jù)包并不是由主機(jī)發(fā)送的,但之所以仍需要單片機(jī)設(shè)置與數(shù)據(jù)包標(biāo)識(shí)域相關(guān)的寄存器,是由于主機(jī)在該傳輸事務(wù)中將只認(rèn)可標(biāo)識(shí)域符合所設(shè)置值的數(shù)據(jù)包。其余部分,如標(biāo)志包中的其它域及握手包的內(nèi)容則都是sl811hs按照狀況自動(dòng)產(chǎn)生的。主機(jī)接口芯片sl811hs完成一次輸入傳輸事務(wù)后,假如傳輸勝利,單片機(jī)就可以從sl811hs的數(shù)據(jù)緩沖寄存器讀到從機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)。此處,數(shù)據(jù)緩沖區(qū)的首地址是由單片機(jī)預(yù)先通過(guò)設(shè)置控制寄存器指定的。對(duì)于輸出傳輸事務(wù),單片機(jī)同樣需要設(shè)置相關(guān)的寄存器以確定標(biāo)志包的標(biāo)識(shí)域、地址域、端點(diǎn)域和數(shù)據(jù)包的標(biāo)識(shí)域,以及存放發(fā)送數(shù)據(jù)的緩沖區(qū)首地址,并且,這個(gè)緩沖

11、區(qū)中的數(shù)據(jù)也是由單片機(jī)寫入的。詳細(xì)地,單片機(jī)控制usb主機(jī)接口芯片舉行一次傳輸事務(wù)所需要執(zhí)行的操作步驟如下:首先,假如是輸出傳輸事務(wù),則需要把將在數(shù)據(jù)包中發(fā)送給從機(jī)的數(shù)據(jù)存放到sl811hs的數(shù)據(jù)緩沖區(qū)中。第二,做好相關(guān)的傳輸預(yù)備工作,即設(shè)置接口芯片中的4個(gè)特別寄存器。這4個(gè)寄存器的名稱及其在傳輸事務(wù)中的作用如表4的前4項(xiàng)所列。表4 與傳輸事務(wù) 挺直相關(guān)的sl811hs特別寄存器第三,啟動(dòng)傳輸事務(wù):把寄存器ep0control00h或ep1control08h的第0位(即傳輸事務(wù)啟動(dòng)位)置為規(guī)律1即可啟動(dòng)傳輸事務(wù)。但在此之前必需把這個(gè)寄存器中其它位設(shè)置好(或與啟動(dòng)位同時(shí)設(shè)置),與這個(gè)寄存器相關(guān)的包域如表4中最后一項(xiàng)所列。第四,單片機(jī)讀取寄存器ep0status03h或ep1status0bh的值,以獲知此次事務(wù)傳輸?shù)耐瓿蔂顩r。最后,假如傳輸勝利,而且該傳輸事務(wù)是輸入性質(zhì)的,則單片機(jī)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論