《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 用MC68HC05JB4開發USB外設

用MC68HC05JB4開發USB外設

2009-02-20
作者:王云飛

  摘 要: 結合USB手寫板,介紹了用MC68HC05JB4等MOTOROLA單片機開發USB設備的一般思路和具體方法。
  關鍵詞: 通用串行總線(USB) MC68HC05JB4 單片機 人機接口設備(HID) 通訊 掛起 喚醒


  當今的計算機外部設備,都在追求高速度和高通用性。為了滿足用戶的需求,以Intel為首的七家公司于1994年推出了USB(Universal Serial Bus,通用串行總線)總線協議,專用于低、中速的計算機外設。目前,USB端口已成為微機主板的標準端口;而在不久的將來,所有的微機外設,包括鍵盤、鼠標、顯示器、打印機、數字相機、掃描儀和游戲柄等等,都將通過USB與主機相連。
  作為一個硬件廠商或是開發者,最關心的便是如何去開發USB外設。MOTOROLA公司從1996年開始,陸續推出了一系列支持USB總線協議的單片機,如最早的用于顯示器的68HC05BD9A,用于鼠標的68HC05JB2,以及用于集線器(HUB)的MC141555等等。這些芯片共同的特點是都內含一個USB模塊,通過這個模塊,用戶可以很方便地實現USB總線上的數據通訊。68HC05JB4最初是用于開發USB游戲桿的,后來也常被用于其他一些USB外設的開發,比如USB手寫板等等。它除了含有USB接口以外,還有6路8位A/D變換輸入端,4路鍵盤中斷掃描用輸入端,并可最多同時開啟19個I/O端口。
  我們設計的USB漢字手寫板,采用國內漢王公司的傳感器獲得筆畫信息,傳給MC68HC05JB4,經過整理后通過USB總線發送到PC,再由我們編寫的驅動程序接收,最終轉給漢王的文字識別軟件識別。
1 USB總線系統硬件連接
  USB通過一個四線電纜來傳輸信號與電源,如圖1所示。


  其中D+和D-是一對差模的信號線,而VBus和GND則提供了+5V的電源,它可以給一些設備(包括Hub)供電。USB提供了兩種數據傳輸率:一種是12Mb的高速(full speed)模式,另一種是1.5Mb的低速模式,這兩種模式可以同時存在于一個USB系統中(注:在新發布的2.0協議版本中,高速模式被定義為120~240M)。USB信號線在高速模式下必須使用帶有屏蔽的雙絞線,而且最長不能超過5m;而在低速模式時可以使用非屏蔽電纜,甚至是非雙絞線,但最長不能超過3m。為了與電纜阻抗匹配,在電纜的每一端都使用了非平衡終端匹配電阻。該電阻也保證了能夠檢測外設與端口的連接或分離,并且可以區分高速與低速設備。
  68HC05JB4只支持低速USB外設。它提供了兩個端口分別與電纜的D+、D-相連;同時提供了一個3.3V的參考電壓與D-相連。典型連接如圖2。圖中電阻電容的參數是我們在USB手寫板中采用的數值,其中1.5kΩ的電阻要求較高,阻值范圍必須是1.5kΩ±5%。由于電纜長度有限,類似電纜負載之類的工作就不再需要開發者去考慮了。


2 USB總線系統軟件設計
  USB設備的軟件功能主要有兩點:一是監視設備的狀態,自動產生狀態信息和用戶命令信息;一是完成主機與設備之間的USB總線通訊,自動處理主機的控制和查詢命令。
  前一功能與設備的具體工作方式有關,與一般非USB設備的實現方法大體一致。唯一的區別是開發者需要預先定義設備所屬的類別和使用的協議。原因是,USB協議將設備分為不同的類型,每個設備類型都定義了類似功能設備的共同行為和協議。例如HID(Human Interface Device)人機接口設備主要指用于人控制計算機系統操作的器件,而電源設備(Power Device)則被定位為HID的子系統之一。對設備進行分類是為了消除不同硬件廠商之間的差異,以便于主機(PC)對設備進行方便、統一的管理。相同類型的設備都由一組標準定義的功能模塊組成。這樣主機與USB設備之間的通信就可以通過一些標準格式的數據包來完成。USB開發者論壇發布了一系列USB設備的類型定義,并配以相應的使用說明。如果開發者需要了解HID及其子類設備,可以查閱參考文獻[2][3]。
  開發者還應考慮的是主機的工作平臺,比如Windows 98/NT、Unix等等,原因是不同的系統對不同的設備的支持程度不同。例如在Windows 98下,系統除了提供通用的USB設備的底層驅動以外,還單獨提供了少數HID設備(如鼠標)的完整驅動,也就是說,開發者如果想實現一個USB鼠標,是不需要在Windows 98下開發自己的驅動程序的,而如果想實現一個USB手寫板,就必須在通用的底層驅動基礎上開發自己的設備驅動程序。所以設備類型的定義也直接影響開發的難度和時間。
  后一個功能的實現較為困難。USB總線上傳遞的信息有兩種:一是由數據線的差分信號傳遞的三種包(令牌包、數據包和應答包);一是經過定義的特殊的數據線信號,如復位信號、喚醒信號和包結束(EOP)信號等。對于低速設備,USB還定義了兩種總線操作方式:控制傳輸(用于主機設置設備和獲取狀態)和中斷傳輸(用于工作信息的傳輸)。
  MC68HC05JB4中的USB模塊提供了3個端點,其中端點0通過控制傳輸與主機通訊,而端點1和端點2則使用中斷傳輸。用戶可以近似地把端點0看作是設備的控制和狀態寄存器,而端點1和端點2則是設備的兩個數據緩沖區。對應于3個端點,68HC05JB4提供了3個控制寄存器,2個中斷寄存器(端點1和端點2共用1個),同時為端點0提供了8個數據發送/接收寄存器,為端點1和端點2提供了8個共用的數據發送寄存器。其他在USB模塊中提供的寄存器還包括一個地址寄存器和一個狀態寄存器。
  軟件開發的主要工作是編寫USB的中斷服務例程,其功能是處理USB發送/接收的不同的通訊信息(如令牌、數據或應答等),再從端點0獲得主機的控制信息,或是向端點0發送設備的狀態信息,以及向端點1或端點2發送完整的數據報告等。根據設備類型的不同,主機發送的控制信息的種類和數量都會不同。例如,USB手寫板屬于HID設備,在響應主機命令的時候,除了需要處理普通的USB命令(如Set Address、Set/Get/Clear Feature和Get Status等等)以外,還需要處理HID設備特定的一些命令,如Set/Get Report、Set/Get Idle和Set/Get Protocol等等。關于USB模塊的各個寄存器的使用方法,MOTOROLA也提供了一些范例,開發者可以參照學習。
  開發者還應注意的是設備的掛起(休眠)和喚醒功能。USB協議規定,當總線處于空閑狀態超過3ms時,設備必須進入掛起狀態,而掛起的設備從總線上吸收的電流必須小于500μA。68HC05JB4的掛起可以通過設置USB端點0的中斷寄存器中的掛起標志位來實現。
  但設備的掛起對設備的工作往往有不利的影響。協議規定的500μA包括了主機端的電纜終端匹配電阻的電流(通常為220μA),所以對于使用總線電源的設備而言,進入掛起狀態通常便意味著總電流消耗不能超過280mA,這實際上是要求68HC05JB4進入STOP模式。開發者如果需要設備不進入掛起狀態,通常有兩種方法。一種是通過主機周期性地向設備發送包結束(EOP)信號,間隔時間小于3ms,這樣設備將永遠處于正常狀態;另一種方法是在設備掛起時喚醒它,既可以由主機發送喚醒或復位信號,也可以由設備自行遠程喚醒,具體的實現方法是由設備向主機發出遠程喚醒信號,在主機認可后設備即結束掛起狀態。開發者可以在68HC05JB4的外中斷端口上連接RC電路,在設備進入掛起狀態時利用電路的充放電時間產生滯后的外中斷信號,再在中斷發生時向主機發送遠程喚醒信號,就可以自動恢復到正常的狀態。
  圖3是根據我們編寫的USB手寫板的程序精簡出來的一個典型的程序流圖,開發者可以參考編寫不同設備的代碼。正如上文所述,最關鍵、也是最困難的,還是中斷處理程序的編寫,開發者需要格外重視。


3 USB設備的測試
  在設備的軟件調試過程中,開發者往往需要觀察設備發往主機的數據,包括設備的狀態和設置信息,以及正常工作時發送的數據包等等。如果開發者需要捕捉USB總線上的信息,必須使用價格昂貴的專用設備。而如果開發者使用68HC05JB4,就不用再擔心總線信號是否正常,只需在主機端觀察主機接收的數據即可。USB開發者組織在他們的互聯網站點[1]上提供了一個在主機端測試HID設備的軟件包——USB Compliance Test Suite,通過運行其中的程序,開發者可以很方便地向設備發送各種USB和HID的協議命令,并接收設備的數據,從而對設備的工作狀態作出判斷。
  開發者同樣可以編寫自己的主機端驅動程序,對USB設備進行調試和檢驗。有關主機端驅動程序的編寫方法,請參閱近期相關文章“WINDOWS 98 下USB設備驅動程序的開發”。
  總之,USB總線及設備是計算機技術高速發展的必然產物,是微機外設的發展趨勢。國外市場上的USB產品已經很多了,但大都局限在少數幾類設備上。國內在1999年初才陸續出現了USB攝像頭等少數幾樣產品,且都是從臺灣引進的。相對于其他計算機設備而言,國外產品在USB設備方面的市場競爭優勢并不明顯,USB設備應該是國內硬件產品發展的重要方向之一。
參考文獻
1 Universal Serial Bus Specification, Revision 1.0. USB Implementers' Forum, January 15, 1996
2 Universal Serial Bus Device Class Definition for Human Interface Devices (HID), Version 1.0 Final. USB Implementers' Forum
3 Universal Serial Bus HID Usage Tables, Release Candidate 1.0. USB Implementers' Forum
4 68HC(7)05JB4 Specification(General Release).MOTOROLA Inc., April 30 , 1998

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩午夜剧场| 欧美日韩麻豆| 91久久亚洲| 亚洲无亚洲人成网站77777| 性色av一区二区三区| 国产精品美女在线| 亚洲精品久久久蜜桃| 国产一区二区三区最好精华液| 久久精品免费| 亚洲精品一区二区在线| 久久麻豆一区二区| 亚洲综合第一| 欧美日韩中文字幕精品| 亚洲经典自拍| 欧美成在线视频| 香蕉视频成人在线观看| 国产精品v日韩精品| 亚洲日本黄色| 国产综合一区二区| 亚洲欧美日韩精品| 国产欧美91| 久久激情五月婷婷| 国产日韩欧美日韩大片| 欧美一区视频在线| 久久动漫亚洲| 国产精品自拍一区| 久久精品国产999大香线蕉| 久久久久久国产精品一区| 亚洲愉拍自拍另类高清精品| 国产精品高精视频免费| 亚洲永久在线观看| 一区二区三区视频在线| 国产精品一区二区三区四区| 亚洲第一区中文99精品| 亚洲第一精品夜夜躁人人爽| 亚洲一区二区在| 亚洲影院污污.| 狠狠色香婷婷久久亚洲精品| 亚洲色诱最新| 欧美视频日韩视频| 亚洲午夜成aⅴ人片| 香蕉久久一区二区不卡无毒影院| 欧美国产日韩一区二区| 亚洲欧洲日本在线| 日韩一级大片在线| 国产日韩精品一区| 欧美电影免费网站| 亚洲婷婷在线| 久久激情五月婷婷| 一区二区高清视频在线观看| 国产午夜精品一区二区三区欧美| 亚洲乱码国产乱码精品精天堂| 国产三级精品三级| 欧美电影在线播放| 久久爱www.| 在线视频精品一区| 欧美激情视频一区二区三区免费| 国产欧美日韩麻豆91| 欧美电影免费网站| 欧美在线一二三四区| 亚洲一区二区精品视频| 伊甸园精品99久久久久久| 欧美网站在线观看| 欧美电影免费观看网站| 久久精品91久久香蕉加勒比 | 国产精品videosex极品| 久久麻豆一区二区| 欧美一级网站| 欧美有码在线观看视频| 一区二区高清在线观看| 最新热久久免费视频| 国自产拍偷拍福利精品免费一| 久久嫩草精品久久久精品| 久久精品一区二区三区中文字幕| 黑人操亚洲美女惩罚| 国产精品性做久久久久久| 欧美精品在线一区二区三区| 男人插女人欧美| 久久人91精品久久久久久不卡| 亚洲黄网站黄| 欧美在线视频观看| 精品999久久久| 国产性色一区二区| 国产视频在线观看一区二区| 国产精品一区二区在线观看网站 | 亚洲国产欧洲综合997久久| 狠狠色综合色区| 国内一区二区三区| 黄页网站一区| 亚洲福利视频专区| 亚洲韩国一区二区三区| 在线电影欧美日韩一区二区私密| 欧美激情成人在线| 欧美美女福利视频| 欧美日韩国产美女| 欧美性猛交视频| 国产精品九九久久久久久久| 国产精品va在线| 国产精品综合视频| 韩国在线视频一区| 国产欧美日韩激情| 在线成人黄色| 亚洲精品在线三区| 亚洲视频中文字幕| 亚洲国产天堂久久综合网| 欧美三级日本三级少妇99| 性欧美videos另类喷潮| 欧美99在线视频观看| 欧美激情一二三区| 激情av一区| 亚洲视频精选| 欧美三级韩国三级日本三斤| 国产精品一二三| 欧美日韩在线第一页| 国产日韩欧美精品一区| 亚洲国产一区二区三区高清| 亚洲在线免费视频| 亚洲精品在线视频观看| 亚洲欧美99| 欧美久久久久中文字幕| 国产一区二区三区视频在线观看 | 一区二区国产在线观看| 久久久精品动漫| 欧美色另类天堂2015| 亚洲国产91色在线| 亚洲国产成人精品女人久久久 | 99v久久综合狠狠综合久久| 亚洲国产欧美在线人成| 亚洲欧美成人一区二区在线电影 | 136国产福利精品导航网址| 亚洲人成7777| 免费在线观看一区二区| 亚洲人成精品久久久久| 亚洲一区不卡| 欧美日韩日韩| 亚洲裸体在线观看| 日韩视频三区| 欧美激情中文字幕在线| 最新国产精品拍自在线播放| 亚洲靠逼com| 欧美亚洲在线观看| 亚洲成在人线av| 亚洲第一网站| 噜噜爱69成人精品| 亚洲国产专区校园欧美| 一区二区日韩精品| 午夜精品久久久久99热蜜桃导演| 美日韩精品免费观看视频| 亚洲国产精品久久久| 在线亚洲免费视频| 欧美午夜无遮挡| 亚洲女同在线| 欧美成人国产一区二区| 国产综合欧美在线看| 91久久综合| 国产目拍亚洲精品99久久精品| 亚洲精品乱码久久久久久蜜桃91| 久久精品亚洲一区二区| 欧美激情a∨在线视频播放| 亚洲色图制服丝袜| 久久婷婷蜜乳一本欲蜜臀| 国产精品视频区| 亚洲国产日日夜夜| 欧美视频一区| 亚洲第一主播视频| 看欧美日韩国产| 中文精品在线| 欧美国产日本高清在线| 亚洲伊人伊色伊影伊综合网| 亚洲在线播放| 在线精品一区| 久久成人av少妇免费| 日韩网站在线观看| 一区二区三区四区蜜桃| 狠狠色伊人亚洲综合成人| 亚洲特黄一级片| 亚洲国产视频一区二区| 欧美制服第一页| 亚洲午夜精品一区二区三区他趣| 亚洲综合精品一区二区| **性色生活片久久毛片| 欧美在线电影| 亚洲手机视频| 欧美日韩国产一级| a91a精品视频在线观看| 欧美精品三级| 亚洲精品国久久99热| 精东粉嫩av免费一区二区三区| 亚洲精品黄色| 在线观看三级视频欧美| 亚洲视频二区| 日韩午夜高潮| 欧美日韩三区| 亚洲欧美国内爽妇网| 一区二区三区精密机械公司 | 久久蜜桃av一区精品变态类天堂| 亚洲国产日韩欧美综合久久| 久久综合九色欧美综合狠狠| 一本到12不卡视频在线dvd| 久久综合久久综合久久综合|