當前位置:首頁 > 單片機 > 單片機
[導讀]引言基于USB接口的設備使用方便,性價比高,因此在人們的工作和生活中得到了廣泛的應用,如U盤,移動硬盤,光驅,USB攝像頭,USB鼠標鍵盤等,同時,51系列單片機以其成熟的技術和高性價比吸引了大量國內用戶,被廣泛

引言

基于USB接口的設備使用方便,性價比高,因此在人們的工作和生活中得到了廣泛的應用,如U盤,移動硬盤,光驅,USB攝像頭,USB鼠標鍵盤等,同時,51系列單片機以其成熟的技術和高性價比吸引了大量國內用戶,被廣泛應用于測控和自動化領域,因此,如果在51單片機系統(tǒng)中增加USB主機接口,實現(xiàn)對USB從機設備的控制,則該單片機系統(tǒng)可以充分利用現(xiàn)有的各種USB從機設備,大大擴展單片機系統(tǒng)功能。

本設計實現(xiàn)了在51單片機系統(tǒng)中增加USB主機功能,采用普通51單片機外接專用USB接口芯片的方案,這種方案雖然會使系統(tǒng)傳輸速度受到限制,而且在穩(wěn)定性有所欠缺,但此方案設計靈活性高,且易于移植,為低成本產品的開發(fā)提供了廣闊前景,設計中采用51單片機是Atmel公司的AT89S52芯片,USB 主機功能的擴展通過外接專用USB接口芯片SL811HS實現(xiàn),CYPRESS公司的USB接口芯片SL811HS可以工作在主機或從機模式,支持 USB1.1的全速和低速數(shù)據傳輸,工作在主機模式時,SL811HS可以自動檢測外設的插拔動作,可以按照外處理器(如單片機)的要求自動把數(shù)據整合為 USB協(xié)議數(shù)據包進行數(shù)據傳輸。

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

硬件設計

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

 


軟件設計

USB主機驅動是一個高低層子程序的組合,實現(xiàn)USB傳輸和控制的過程是較高層子程序調用較低層子程序的過程,編寫USB主機驅動時,可按從低層往高層的順序逐層進行。

以USB主機枚舉從機設備的操作為例,實現(xiàn)該功能所需要的各層子程序層次關系如表1所示,本文將介紹較低層的幾個子程序的實現(xiàn),包括讀寫SL811HS內部寄存器,傳輸事務的實現(xiàn),設備插拔檢測、復位等,其中,傳輸事務的實現(xiàn)是關鍵和難點,同時也是本文的重點。

 


單片機讀寫SL811HS

內部寄存器

讀寫SL811HS內部寄存器子程序是最低層的子程序,系統(tǒng)所進行的各種操作主要都是通過調用這些子程序讀寫SL811HS內部寄存器實現(xiàn)的,例如,通過讀取SL811HS的狀態(tài)寄存器獲取SL811HS的狀態(tài)信息可以實現(xiàn)設備插拔檢測、設備速度檢測等,通過向SL811HS的相關控制寄存器寫入控制字節(jié)可以實現(xiàn)USB總線復位以及USB數(shù)據傳輸?shù)炔僮鳌?/p>

SL811HS內部寄存器

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

單片機讀寫SL811HS

內部寄存器的實現(xiàn)

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

初始化

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

SL811HS芯片復位

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

USB總線復位。

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

設備插拔檢測和設備速度檢測

在USB協(xié)議的物理層上,USB從機設備是否接在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)的傳輸,分別是標記包(Token Packet),數(shù)據包(Data Packet)和握手包(Handshake Packet)。USB數(shù)據傳輸方式一共有四種,分別是控制傳輸(Control Transfer)、同步傳輸(Isochronous Transfer)、中斷傳輸(Interrupt Transfer)和批傳輸(Bulk Transfer)。其中,控制傳輸方式至少由2個傳輸事務構成,其他三種傳輸方式則都各由1個傳輸事務構成,可見,傳輸事務在USB傳輸中至關重要。

一個典型的傳輸事務含有3個包的傳送,這連續(xù)的3個包數(shù)據流如表3所示。

 


使用SL811HS設計USB主機系統(tǒng)時,用戶只需要讓單片機設置SL11HS內部幾個相關的特殊寄存器,然后把傳輸事務啟動位使能(置為邏輯"1"),就可以讓接口芯片自動完成這3個包的發(fā)送與接收,在表3所示的例子中,第n個包(標記包)和第n+2個包(握手包)都是由主機法給從機的,第 n+1個包(數(shù)據包)是由從機發(fā)送給主機的。這個傳送方向和第n+2個包的傳送方向都是由標記包中的標識域取值決定的,其規(guī)律可參考USB協(xié)議。

如果傳輸事務的數(shù)據包是由從機發(fā)送給主機,則該傳輸事務屬于輸入類型,稱為輸入傳輸事務,反之則稱為輸出傳輸事務,可見,表3例子是一個輸入傳輸事務,對于一個輸入傳輸事務,單片機通過設置 SL811HS內部特殊寄存器就可以決定其取值的包域主要有:標記包中的標識域、地址域或端點域,數(shù)據包中的標識域。在輸入傳輸事務中,雖然數(shù)據包并不是主機發(fā)送的,但之所以仍需要單片機設置與數(shù)據包標識域相關的寄存器,是因為主機在該傳輸事務中將只認可標識域符合所設置值的數(shù)據包。其余部分,如標記包中的其他域及握手包的內容則都是SL811HS根據情況自動產生的。

 

主機接口芯片SL811HS完成一次輸入傳輸事務后,如果傳輸成功,單片機就可以從SL811HS的數(shù)據緩沖寄存器讀到從機發(fā)送過來的數(shù)據,此處,數(shù)據緩沖區(qū)的首地址是由單片機預先通過設置控制寄存器指定的。

對于輸出傳輸事務,單片機同樣需要設置相關的寄存器以確定標記包的標識域、地址域、端點域和數(shù)據包的標識域,以及存放發(fā)送數(shù)據的緩沖區(qū)首地址,并且,這個緩沖區(qū)中的數(shù)據也是由單片機寫入的。

具體的,單片機控制USB主機接口芯片進行一次傳輸事務所需要知執(zhí)行的操作步驟如下:

首先,如果是輸出傳輸事務,則需要把將在數(shù)據包中發(fā)送給從機的數(shù)據存放到SL811HS的數(shù)據緩沖區(qū)中。

其次,做好相關的傳輸準備工作,即設置接口芯片中的4個特殊寄存器,這4個寄存器的名稱及其在傳輸事務中的作用如表4的前4項所列。

第三、啟動傳輸事務:把寄存器EP0Control[00H]或EP1Control[08H]的第0位(即傳輸事務啟動位)置為邏輯"1",即可啟動傳輸事務。但在此之前必須他這個寄存器中其他位設置好(或與啟動位同時設置),與這個寄存器相關的包域如表4中最后一項所列。

 


第四,單片機讀取寄存器EP0Status(03H]或EP1Status[0BH]的值,以獲知此次事務傳輸?shù)耐瓿汕闆r。

最后,如果傳輸成功,而且該傳輸事務是輸入性質,則單片機可讀取數(shù)據緩沖區(qū),獲得從機發(fā)送過來的數(shù)據。

結語

在 51單片機控制USB接口芯片SL811HS的底層驅動中,讀寫SL811HS內部寄存器的子程序是最底層的,各種USB傳輸?shù)妮^低層操作,如總線復位、插拔檢測、速度檢測以及傳輸事務等,都主要是通過讀寫SL811HS內部特殊寄存器實現(xiàn)的,其中,傳輸事務的實現(xiàn)直接涉及了5個特殊寄存器的讀寫。

在本文所述的底層驅動基礎上,添加相關的高層程序,使該51單片機系統(tǒng)實現(xiàn)了對各種USB從機設備的枚舉控制和對U盤的數(shù)據交換,為51單片機系統(tǒng)的開發(fā)提供了廣闊的應用前景,同時也對其他平臺的USB主機設計有一定的參考價值。

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

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

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

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

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

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品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日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

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

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

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

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

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

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

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(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 信息技術
關閉
關閉