国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

51單片機控制SL811HS的USB主機底層驅動

發布時間:2010-7-14 21:18    發布者:conniede
引言
      
基于USB接口的設備使用方便,性價比高,因此在人們的工作和生活中得到了廣泛的應用,如U盤、移動硬盤、移動光驅、USB攝像頭、USB鼠標鍵盤等。同時,51 系列單片機以其成熟的技術和高性價比吸引了大量國內用戶,被廣泛應用于測控和自動化領域。因此,如果在51 單片機系統中增加USB 主機接口,實現對USB 從機設備的控制,則該單片機系統可充分利用現有的各種USB從機設備,大大擴展單片機系統的功能。
      
本設計實現了在51單片機系統中增加USB主機功能,采用普通51單片機外接專用USB接口芯片的方案。這種方案雖然會使系統傳輸速度受到限制,而且在穩定性方面有所欠缺,但此方案設計靈活性高,且易于移植,為低成本產品的開發提供了廣闊前景。設計中采用的51單片機是Atmel公司的AT89S52芯片,USB主機功能的擴展通過外接專用USB接口芯片SL811HS實現。CYPRESS公司的USB接口芯片SL811HS可以工作在主機或從機模式,支持USB1.1的全速和低速數據傳輸。工作在主機模式時,SL811HS可以自動檢測外設的插拔動作,可以按照外處理器(如單片機)的要求自動把數據整合為USB協議數據包進行數據傳輸。




圖 1 系統硬件示意圖

本文將介紹單片機AT89S52控制SL811HS的硬件設計和底層驅動的編寫,其中重點講述底層驅動的設計。

硬件設計
   
系統的硬件原理圖如圖1所示。AT89S52的供電電壓為5V,SL811HS的為3.3V。盡管供電電壓不同,但根據芯片引腳的信號噪聲容限參數分析可知,AT89S52與SL811HS之間的引腳可以直接相連,不需要電平轉換或緩沖。




表1 USB主機枚舉操作驅動的層次關系
軟件設計
      
USB主機驅動是一個高低層子程序的組合,實現USB傳輸和控制的過程是較高層子程序調用較低層子程序的過程。編寫USB主機驅動時,可接從低層往高層的順序逐層進行。
      
以USB主機枚舉從機設備的操作為例,實現該功能所需要的各層子程序層次關系如表1所示。本文將介紹較低層的幾個子程序的實現,包括讀寫SL811HS內部寄存器、傳輸事務的實現、設備插拔檢測、復位等,其中,“傳輸事務的實現”是關鍵和難點,同時也是本文的重點。

單片機讀寫SL811HS
      

內部寄存器
      
讀寫SL811HS內部寄存器子程序是最低層的子程序,系統所進行的各種操作主要都是通過調用這些子程序讀寫SL811HS內部寄存器實現的。例如,通過讀取SL811HS的狀態寄存器獲取SL811HS的狀態信息可以實現設備插拔檢測、設備速度檢測等,通過向SL811HS的相關控制寄存器寫入控制字節可以實現USB總線復位以及USB數據傳輸等操作。

SL811HS內部寄存器
      
從編程結構的角度來看,SL811HS內部寄存器一共有256個單元,每個單元是一個字節,其中地址為[00H]~[0FH]的前16個單元是SL811HS的狀態寄存器或控制寄存器(統稱為特殊寄存器),其余的是數據緩沖寄存器。表2列出了16個特殊寄存器的名稱和主要功能含義。




表2 SL811HS內部特殊寄存器簡介
單片機讀寫SL811HS
      

內部寄存器的實現
      
按照SL811HS的讀寫控制信號時序圖編寫單片機讀寫SL811HS內部寄存器的子程序,使各控制引腳上按照規定的時序給出符合要求的信號脈沖。 在這個程序中,單片機指令周期的大小將直接影響輸出信號的保持時長和時序關系。

初始化
      
初始化操作主要包括SL811HS芯片復位、USB總線復位、設備插拔檢測和設備USB數據傳輸速度檢測等。通過這些初始化操作,SL811HS將作為USB主機與從機之間建立一個底層協議連接關系,為后續的數據通信做好準備。

SL811HS芯片復位
     
USB接口芯片SL811HS的復位是對芯片的狀態進行復位,包括了對芯片內部寄存器值的復位。實現該操作不需要讀寫接口芯片內部寄存器,只需向接口芯片的復位引腳輸入一個有效的復位脈沖即可。

USB總線復位
      
按照USB協議,USB總線復位是
指在USB數據線上輸出SE 0態,并保持10ms以上,接在USB總線上的從機設備收到這個復位信號后就會進行自身的復位操作,為接下來的USB數據傳輸做好準備。通過設置接口芯片的CtrlReg[05H]寄存器的第4、3位為邏輯”01”,并保持10ms,然后再把它們恢復為邏輯”00”,就可以讓接口芯片產生USB總線復位信號。

設備拔插檢測和設備速度檢測
      
在USB協議的物理層上,USB從機設備是否接在USB總線上是通過檢測總線的電壓得知的。根據該電壓的高低,還可獲知USB總線上的設備所支持的速度(例如,在USB1.1協議中,分有低速和全速)。 USB主機接口芯片SL811HS把這個物理層的電壓檢測結果反映到狀態寄存器的取值上,通過讀取這些狀態寄存器的值,可以獲知當前的設備插拔狀態和設備速度。
      
USB主機所進行的初始化操作除了上述3項外,還包括幀起始包啟動/禁止的設置、幀同步設置、幀定時初值的設置等,它們都是通過對接口芯片特殊寄存器進行讀寫而實現的。

傳輸事務的實現
      
根據USB1.1協議,一個傳輸事務一般包含3個包(Packet)的傳輸,分別是標記包(Token Packet)、數據包(Data Packet)和握手包(Handshake Packet)。USB數據傳輸方式一共有四種,分別是控制傳輸(Control Transfer)、同步傳輸(Isochronous Transfer)、中斷傳輸(Interrupt Transfer)和批傳輸(Bulk Transfer)。其中,控制傳輸方式至少由2個傳輸事務構成,其它三種傳輸方式則都各由1個傳輸事務構成。可見,傳輸事務在USB傳輸中至關重要。
      
一個典型的傳輸事務含有3個包的傳送,這連續的3個包數據流如表3所示。



表3 一個傳輸事務的數據流示意

使用SL811HS設計USB主機系統時,用戶只需讓單片機設置SL811HS內部幾個相關的特殊寄存器,然后把傳輸事務啟動位使能(置為邏輯’1’),就可以讓接口芯片自動完成這個包的發送與接收。在表3所示的例子中,第n個包(標記包)和第n+2個包(握手包)都是由主機發送給從機的,第n+1個包(數據包)是由從機發送給主機的。這個傳送方向和第n+2個包的傳送方向都是由標記包中的標識域取值決定的,其規則可參考USB協議。
      
如果傳輸事務的數據包是由從機發送給主機,則該傳輸事務屬于輸入類型,稱為輸入傳輸事務,反之則稱為輸出傳輸事務。可見,表3例子是一個輸入傳輸事務。對于一個輸入傳輸事務,單片機通過設置SL811HS內部特殊寄存器就可以決定其取值的包域主要有:標記包中的標識域、地址域和端點域,數據包中的標識域。在輸入傳輸事務中,雖然數據包并不是由主機發送的,但之所以仍需要單片機設置與數據包標識域相關的寄存器,是因為主機在該傳輸事務中將只認可標識域符合所設置值的數據包。其余部分,如標記包中的其它域及握手包的內容則都是SL811HS根據情況自動產生的。
      
主機接口芯片SL811HS完成一次輸入傳輸事務后,如果傳輸成功,單片機就可以從SL811HS的數據緩沖寄存器讀到從機發送過來的數據。此處,數據緩沖區的首地址是由單片機預先通過設置控制寄存器指定的。
      
對于輸出傳輸事務,單片機同樣需要設置相關的寄存器以確定標記包的標識域、地址域、端點域和數據包的標識域,以及存放發送數據的緩沖區首地址,并且,這個緩沖區中的數據也是由單片機寫入的。
      
具體地,單片機控制USB主機接口芯片進行一次傳輸事務所需要執行的操作步驟如下:

首先,如果是輸出傳輸事務,則需要把將在數據包中發送給從機的數據存放到SL811HS的數據緩沖區中。
      
其次,做好相關的傳輸準備工作,即設置接口芯片中的4個特殊寄存器。這4個寄存器的名稱及其
在傳輸事務中的作用如表4的前4項所列。


表4 與傳輸事務 直接相關的SL811HS特殊寄存器

第三,啟動傳輸事務:把寄存器EP0Control[00H]或EP1Control[08H]的第0位(即傳輸事務啟動位)置為邏輯’1’即可啟動傳輸事務。但在此之前必須把這個寄存器中其它位設置好(或與啟動位同時設置),與這個寄存器相關的包域如表4中最后一項所列。
      
第四,單片機讀取寄存器EP0Status[03H]或EP1Status[0BH]的值,以獲知此次事務傳輸的完成情況。
      
最后,如果傳輸成功,而且該傳輸事務是輸入性質的,則單片機可讀取數據緩沖區,獲得由從機發送過來的數據。

結語
      
在51單片機控制USB接口芯片SL811HS的底層驅動中,讀寫SL811HS內部寄存器的子程序是最低層的,各種USB傳輸的較低層操作,如總線復位、插拔檢測、速度檢測以及傳輸事務等,都主要是通過讀寫SL811HS內部特殊寄存器實現的。其中,傳輸事務的實現就直接涉及了5個特殊寄存器的讀寫。
本文地址:http://m.qingdxww.cn/thread-15236-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99爱视频免费高清在线观看 | 黄色一毛片 | 国产欧美精品三区 | 99cao| 青青青久草 | 国产va | 国产高清久久99 | 国产高清不卡一区二区三区 | 久久综合一区 | 天天干天天操天天添 | 黑人干亚洲人 | 青青草五月天 | 亚洲一区二区三区免费在线观看 | 久久大陆 | 91视频网址 | 毛片站 | 国产在线91观看免费观看 | 欧美97色伦影院在线观看 | 青青热久麻豆精品视频在线观看 | 可以免费看黄的网址 | 亚洲精品乱码久久久久久蜜桃欧美 | 中文字幕日韩在线 | 欧美日韩中文国产一区二区三区 | 久色网 | 国产精品视屏 | 亚洲国产午夜精品理论片的软件 | 色综合合久久天天综合绕视看 | 国产三级免费观看 | 日韩亚洲国产欧美精品 | 一个人www免费观看 一个人hd免费完整高清视频 | 在线观看男女爱视频网站 | 亚洲男人天堂色 | 亚洲麻豆精品 | 欧美99视频 | 一区二区精品在线 | 久久笫一福利免费导航 | 91社区在线视频 | 免费特黄级夫费生活片 | 四虎影院美女 | 日韩国产欧美一区二区三区在线 | 国内自拍99|