日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
用MC68HC05JB4開發(fā)USB外設
用MC68HC05JB4開發(fā)USB外設
 更新時間:2008-8-4 4:48:13  點擊數(shù):16
【字體: 字體顏色


    

摘 要: 結合USB手寫板,介紹了用MC68HC05JB4等MOTOROLA單片機開發(fā)USB設備的一般思路和具體方法。

    關鍵詞: 通用串行總線(USB) MC68HC05JB4 單片機 人機接口設備(HID) 通訊 掛起 喚醒

    當今的計算機外部設備,都在追求高速度和高通用性。為了滿足用戶的需求,以Intel為首的七家公司于1994年推出了USB(Universal   Serial  Bus,通用串行總線)總線協(xié)議,專用于低、中速的計算機外設。目前,USB端口已成為微機主板的標準端口;而在不久的將來,所有的微機外設,包括鍵盤、鼠標、顯示器、打印機、數(shù)字相機、掃描儀和游戲柄等等,都將通過USB與主機相連。

    作為一個硬件廠商或是開發(fā)者,最關心的便是如何去開發(fā)USB外設。MOTOROLA公司從1996年開始,陸續(xù)推出了一系列支持USB總線協(xié)議的單片機,如最早的用于顯示器的68HC05BD9A,用于鼠標的68HC05JB2,以及用于集線器(HUB)的MC141555等等。這些芯片共同的特點是都內(nèi)含一個USB模塊,通過這個模塊,用戶可以很方便地實現(xiàn)USB總線上的數(shù)據(jù)通訊。68HC05JB4最初是用于開發(fā)USB游戲桿的,后來也常被用于其他一些USB外設的開發(fā),比如USB手寫板等等。它除了含有USB接口以外,還有6路8位A/D變換輸入端,4路鍵盤中斷掃描用輸入端,并可最多同時開啟19 個I/O端口。

    我們設計的USB漢字手寫板,采用國內(nèi)漢王公司的傳感器獲得筆畫信息,傳給MC68HC05JB4,經(jīng)過整理后通過USB總線發(fā)送到PC,再由我們編寫的驅(qū)動程序接收,最終轉(zhuǎn)給漢王的文字識別軟件識別。

    1 USB總線系統(tǒng)硬件連接

    USB通過一個四線電纜來傳輸信號與電源,如圖1所示。

    其中D+和D-是一對差模的信號線,而VBus和GND則提供了+5V的電源,它可以給一些設備包括Hub 供電。USB提供了兩種數(shù)據(jù)傳輸率:一種是 12Mb的高速full speed 模式,另一種是1.5Mb的低速模式,這兩種模式可以同時存在于一個USB系統(tǒng)中(注:在新發(fā)布的2.0協(xié)議版本中,高速模式被定義為 120~240M)。USB信號線在高速模式下必須使用帶有屏蔽的雙絞線,而且最長不能超過5m;而在低速模式時可以使用非屏蔽電纜,甚至是非雙絞線,但最長不能超過3m。為了與電纜阻抗匹配,在電纜的每一端都使用了非平衡終端匹配電阻。該電阻也保證了能夠檢測外設與端口的連接或分離,并且可以區(qū)分高速與低速設備。

    68HC05JB4只支持低速USB外設。它提供了兩個端口分別與電纜的D+、D-相連;同時提供了一個3.3V的參考電壓與D-相連。典型連接如圖2。圖中電阻電容的參數(shù)是我們在USB手寫板中采用的數(shù)值,其中1.5kΩ的電阻要求較高,阻值范圍必須是1.5kΩ±5%。由于電纜長度有限,類似電纜負載之類的工作就不再需要開發(fā)者去考慮了。

    2 USB總線系統(tǒng)軟件設計

    USB設備的軟件功能主要有兩點:一是監(jiān)視設備的狀態(tài),自動產(chǎn)生狀態(tài)信息和用戶命令信息;一是完成主機與設備之間的USB總線通訊,自動處理主機的控制和查詢命令。

    前一功能與設備的具體工作方式有關,與一般非USB設備的實現(xiàn)方法大體一致。唯一的區(qū)別是開發(fā)者需要預先定義設備所屬的類別和使用的協(xié)議。原因是,USB 協(xié)議將設備分為不同的類型,每個設備類型都定義了類似功能設備的共同行為和協(xié)議。例如HID(Human Interface  Device)人機接口設備主要指用于人控制計算機系統(tǒng)操作的器件,而電源設備(Power Device)則被定位為HID的子系統(tǒng)之一。對設備進行分類是為了消除不同硬件廠商之間的差異,以便于主機(PC)對設備進行方便、統(tǒng)一的管理。相同類型的設備都由一組標準定義的功能模塊組成。這樣主機與USB設備之間的通信就可以通過一些標準格式的數(shù)據(jù)包來完成。USB開發(fā)者論壇發(fā)布了一系列USB設備的類型定義,并配以相應的使用說明。如果開發(fā)者需要了解HID及其子類設備,可以查閱參考文獻[2][3]。

    開發(fā)者還應考慮的是主機的工作平臺,比如Windows98/NT、Unix等等,原因是不同的系統(tǒng)對不同的設備的支持程度不同。例如在 Windows98下,系統(tǒng)除了提供通用的USB設備的底層驅(qū)動以外,還單獨提供了少數(shù)HID設備(如鼠標)的完整驅(qū)動,也就是說,開發(fā)者如果想實現(xiàn)一個 USB鼠標,是不需要在Windows98下開發(fā)自己的驅(qū)動程序的,而如果想實現(xiàn)一個USB手寫板,就必須在通用的底層驅(qū)動基礎上開發(fā)自己的設備驅(qū)動程序。所以設備類型的定義也直接影響開發(fā)的難度和時間。

    后一個功能的實現(xiàn)較為困難。USB總線上傳遞的信息有兩種:一是由數(shù)據(jù)線的差分信號傳遞的三種包(令牌包、數(shù)據(jù)包和應答包);一是經(jīng)過定義的特殊的數(shù)據(jù)線信號,如復位信號、喚醒信號和包結束(EOP)信號等。對于低速設備,USB還定義了兩種總線操作方式:控制傳輸(用于主機設置設備和獲取狀態(tài))和中斷傳輸(用于工作信息的傳輸)。

    MC68HC05JB4中的USB模塊提供了3個端點,其中端點0通過控制傳輸與主機通訊,而端點1和端點2則使用中斷傳輸。用戶可以近似地把端點0看作是設備的控制和狀態(tài)寄存器,而端點1和端點2則是設備的兩個數(shù)據(jù)緩沖區(qū)。對應于3個端點,68HC05JB4提供了3個控制寄存器,2個中斷寄存器(端點 1和端點2共用1個),同時為端點0提供了8個數(shù)據(jù)發(fā)送/接收寄存器,為端點1和端點2提供了8個共用的數(shù)據(jù)發(fā)送寄存器。其他在USB模塊中提供的寄存器還包括一個地址寄存器和一個狀態(tài)寄存器。

    軟件開發(fā)的主要工作是編寫USB的中斷服務例程,其功能是處理USB發(fā)送/接收的不同的通訊信息(如令牌、數(shù)據(jù)或應答等),再從端點0獲得主機的控制信息,或是向端點0發(fā)送設備的狀態(tài)信息,以及向端點1或端點2發(fā)送完整的數(shù)據(jù)報告等。根據(jù)設備類型的不同,主機發(fā)送的控制信息的種類和數(shù)量都會不同。例如, USB手寫板屬于HID設備,在響應主機命令的時候,除了需要處理普通的USB命令(如Set   Address、Set/Get/Clear Feature和Get Status等等)以外,還需要處理HID設備特定的一些命令,如Set/Get Rreport、Set/Get Idle和Set/Get Protocol等等。關于USB模塊的各個寄存器的使用方法,MOTOROLA也提供了一些范例,開發(fā)者可以參照學習。

    開發(fā)者還應注意的是設備的掛起(休眠)和喚醒功能。USB協(xié)議規(guī)定,當總線處于空閑狀態(tài)超過3ms時,設備必須進入掛起狀態(tài),而掛起的設備從總線上吸收的電流必須小于500μA。68HC05JB4的掛起可以通過設置USB端點0的中斷寄存器中的掛起標志位來實現(xiàn)。

    但設備的掛起對設備的工作往往有不利的影響。協(xié)議規(guī)定的500μA包括了主機端的電纜終端匹配電阻的電流(通常為220μA),所以對于使用總線電源的設備而言,進入掛起狀態(tài)通常便意味著總電流消耗不能超過280mA,這實際上是要求68HC05JB4進入STOP模式。開發(fā)者如果需要設備不進入掛起狀態(tài),通常有兩種方法。一種是通過主機周期性地向設備發(fā)送包結束(EOP)信號,間隔時間小于3ms,這樣設備將永遠處于正常狀態(tài);另一種方法是在設備掛起時喚醒它,既可以由主機發(fā)送喚醒或復位信號,也可以由設備自行遠程喚醒,具體的實現(xiàn)方法是由設備向主機發(fā)出遠程喚醒信號,在主機認可后設備即結束掛起狀態(tài)。開發(fā)者可以在68HC05JB4的外中斷端口上連接RC電路,在設備進入掛起狀態(tài)時利用電路的充放電時間產(chǎn)生滯后的外中斷信號,再在中斷發(fā)生時向主機發(fā)送遠程喚醒信號,就可以自動恢復到正常的狀態(tài)。

    圖3是根據(jù)我們編寫的USB手寫板的程序精簡出來的一個典型的程序流圖,開發(fā)者可以參考編寫不同設備的代碼。正如上文所述,最關鍵、也是最困難的,還是中斷處理程序的編寫,開發(fā)者需要格外重視。

    3 USB設備的測試

    在設備的軟件調(diào)試過程中,開發(fā)者往往需要觀察設備發(fā)往主機的數(shù)據(jù),包括設備的狀態(tài)和設置信息,以及正常工作時發(fā)送的數(shù)據(jù)包等等。如果開發(fā)者需要捕捉USB 總線上的信息,必須使用價格昂貴的專用設備。而如果開發(fā)者使用68HC05JB4,就不用再擔心總線信號是否正常,只需在主機端觀察主機接收的數(shù)據(jù)即可。 USB開發(fā)者組織在他們的互聯(lián)網(wǎng)站點[1]上提供了一個在主機端測試HID設備的軟件包棗USB Compliance  Test Suite,通過運行其中的程序,開發(fā)者可以很方便地向設備發(fā)送各種USB和hid的協(xié)議命令,并接收設備的數(shù)據(jù),從而對設備的工作狀態(tài)作出判斷。

    開發(fā)者同樣可以編寫自己的主機端驅(qū)動程序,對USB設備進行調(diào)試和檢驗。有關主機端驅(qū)動程序的編寫方法,請參閱近期相關文章"Windows98下USB設備驅(qū)動程序的開發(fā)"

    總之,USB總線及設備是計算機技術高速發(fā)展的必然產(chǎn)物,是微機外設的發(fā)展趨勢。國外市場上的USB產(chǎn)品已經(jīng)很多了,但大都局限在少數(shù)幾類設備上。國內(nèi)在 1999年初才陸續(xù)出現(xiàn)了USB攝像頭等少數(shù)幾樣產(chǎn)品,且都是從臺灣引進的。相對于其他計算機設備而言,國外產(chǎn)品在USB設備方面的市場競爭優(yōu)勢并不明顯,USB設備應該是國內(nèi)硬件產(chǎn)品發(fā)展的重要方向之一。



[1] [2]  下一頁
  • 上一篇: 基于MAX110的容錯數(shù)據(jù)采集系統(tǒng)的設計
  • 下一篇: 增強型并行口EPP協(xié)議及其在CAN監(jiān)控節(jié)點中的應用
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1