《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 用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亚洲国产精品_日韩亚洲一区二区
国产毛片一区| 日韩一区二区精品葵司在线| 欧美日韩一区二区高清| 欧美国产在线视频| 久久最新视频| 久久综合伊人77777| 久久频这里精品99香蕉| 久久精品国产亚洲a| 欧美中在线观看| 欧美中文在线观看国产| 久久成人资源| 久久精品免费看| 久久久福利视频| 久久人人爽人人爽| 裸体素人女欧美日韩| 久久蜜桃资源一区二区老牛| 久久久久99| 久久中文字幕一区| 欧美福利小视频| 欧美日韩国产综合一区二区| 欧美日韩一区二区欧美激情 | 亚洲另类在线视频| 一区二区日韩| 亚洲欧美影音先锋| 亚洲第一成人在线| 亚洲精品综合| 亚洲午夜小视频| 欧美永久精品| 久久午夜精品一区二区| 欧美国产精品中文字幕| 欧美三级视频在线| 国产精品视频内| 激情欧美一区二区| 亚洲乱码国产乱码精品精98午夜| 亚洲视频狠狠| 久久精品观看| 一区二区三区免费网站| 亚洲特级片在线| 久久狠狠久久综合桃花| 欧美成人亚洲成人日韩成人| 国产精品草草| 精久久久久久| 日韩系列欧美系列| 性久久久久久久久| 亚洲精品欧美| 亚洲欧美日韩天堂| 久久婷婷综合激情| 欧美日韩亚洲一区二| 国产一区二区久久精品| 亚洲人成精品久久久久| 亚洲欧美日韩精品久久久久| 亚洲经典自拍| 欧美亚洲专区| 欧美精品激情在线观看| 国产欧美日韩精品a在线观看| 亚洲高清在线| 亚洲欧美中文日韩v在线观看| 亚洲精品欧美激情| 欧美综合二区| 欧美日韩伊人| 永久免费毛片在线播放不卡| 一区二区不卡在线视频 午夜欧美不卡'| 欧美制服丝袜| 亚洲午夜精品国产| 美乳少妇欧美精品| 国产欧美日韩高清| 日韩视频―中文字幕| 欧美在线视频网站| 亚洲在线播放| 欧美精品一区在线| 国语自产精品视频在线看抢先版结局| 99综合在线| 亚洲精品一区二区在线| 欧美在线视频导航| 国产精品电影观看| 亚洲欧洲一区二区天堂久久| 欧美一区二区性| 亚洲一区二区免费看| 欧美成人一区二免费视频软件| 国产伦精品一区二区三区视频黑人| 亚洲精品欧美日韩专区| 亚洲国产精品一区二区尤物区 | 亚洲精品综合在线| 亚洲激情第一页| 欧美在线三区| 国产精品国产三级欧美二区| 亚洲黄色高清| 亚洲国产精品美女| 久久久久久伊人| 国产欧美日韩综合一区在线观看| 日韩亚洲欧美一区二区三区| 亚洲精品国产欧美| 老司机一区二区三区| 国产视频在线观看一区二区三区| 亚洲特级毛片| 亚洲视频精品| 欧美日韩日本视频| 亚洲人午夜精品| 亚洲三级视频在线观看| 久久先锋影音| 国外成人在线视频| 欧美在线播放| 久久久久久久性| 国产一区二区三区免费观看| 亚洲免费中文字幕| 欧美一区二区三区在线看| 国产精品日本精品| 亚洲图中文字幕| 亚洲欧美国产日韩天堂区| 欧美日韩岛国| 日韩视频精品在线| 亚洲丝袜av一区| 欧美肉体xxxx裸体137大胆| 亚洲精选在线观看| 一区二区三区四区五区精品| 欧美日韩成人综合在线一区二区| 亚洲精品日韩精品| 一区二区动漫| 欧美视频在线观看| 亚洲视频免费| 欧美一区二区三区视频| 国产精品一区二区在线观看网站 | 国产精品久久久亚洲一区| 在线视频中文亚洲| 午夜精品亚洲| 国产视频在线一区二区 | 亚洲国产精品成人久久综合一区| 久久久久久午夜| 影院欧美亚洲| 日韩一区二区久久| 欧美三级午夜理伦三级中文幕| 在线一区二区日韩| 欧美一区二区视频网站| 国产视频一区免费看| 亚洲国产91| 欧美精品日本| 正在播放亚洲一区| 性18欧美另类| 激情久久久久久久久久久久久久久久| 亚洲福利视频一区| 欧美激情第3页| 一区二区三区**美女毛片| 性xx色xx综合久久久xx| 激情成人av| 洋洋av久久久久久久一区| 欧美性大战xxxxx久久久| 午夜精品免费视频| 欧美成人黑人xx视频免费观看| 亚洲精品日本| 久久av资源网| 亚洲大片一区二区三区| 夜夜夜精品看看| 国产精品一区二区黑丝| 亚洲盗摄视频| 欧美视频亚洲视频| 欧美一区二区三区四区夜夜大片 | 欧美一级大片在线观看| 男男成人高潮片免费网站| av成人黄色| 久久久欧美精品sm网站| 亚洲精品国产无天堂网2021| 午夜国产精品视频免费体验区| 国语自产在线不卡| 亚洲视频axxx| 激情成人亚洲| 亚洲一区中文字幕在线观看| 国产亚洲欧洲一区高清在线观看| 亚洲精品一区中文| 国产精品一二一区| 亚洲精品欧美在线| 国产伦精品一区二区三区在线观看| 亚洲人www| 国产精品综合不卡av| 99精品视频免费观看视频| 国产色产综合色产在线视频| av成人免费在线| 狠狠色狠色综合曰曰| 亚洲一区二区三区影院| 国内精品模特av私拍在线观看| 亚洲一本视频| 亚洲成人影音| 欧美一区二区三区日韩| 日韩视频精品在线| 免费视频一区二区三区在线观看| 亚洲午夜在线观看| 欧美精品亚洲| 久久国产精品久久w女人spa| 国产精品大片wwwwww| 亚洲美女av网站| 狠狠色丁香婷婷综合久久片| 亚洲综合国产精品| 亚洲美女啪啪| 免费观看成人www动漫视频| 午夜精品福利一区二区三区av| 欧美人牲a欧美精品| 亚洲第一级黄色片| 国产欧美日韩伦理| 亚洲欧美激情视频在线观看一区二区三区| 亚洲黄色视屏| 女主播福利一区|