51單片機控制SL811HS的USB主機底層驅動_第1頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論