摘 要:通用串行總線USB是一種嶄新的微機總線接口規(guī)范。本文介紹了一種基于USB接口的無線通訊鍵盤控制器的設計方案,包括硬件設計、設備驅動程序設計及應用軟件設計。
引言
在目前的多媒體演示環(huán)境中,缺少遠距離可操控計算機的設備。講授者只能站在講臺上來操作計算機,這樣限制了演講者與觀眾面對面的交流。
為有效地解決這個問題,本文設計了一種可遠距離操控計算機的無線通訊鍵盤控制器設備,通過把USB接口與無線發(fā)送、接收模塊整合,設計出一種智能化、簡便化的無線通訊鍵盤控制器。系統(tǒng)主要包括USB模塊、無線發(fā)送模塊和無線接收模塊。
1 總體方案
本設計方案以無線發(fā)送/接收器為基礎,用戶通過所設計的"鍵盤控制器"上的按鍵,觸動無線發(fā)射模塊,SC2262發(fā)送指令數據,位于主機端連接卡上的無線接收器SC2272接收到數據后。將數據傳給微控制器MC68HC05JB4,經過MC68HC05JB4芯片處理,數據最后通過USB總線傳人主機,由驅動程序發(fā)給相應的應用軟件。從而操控待操作的文檔。系統(tǒng)結構框圖如圖1所示。
圖1 系統(tǒng)結構框圖
2 硬件設計
(1)連接卡設計
此方案中,通過USB口與主機直接連接的是自行設計的連接卡。該卡上集成了兩個主要的芯片,形成了兩大功能模塊。核心是MOTOROLA的微控制器MC68HC05JB4,它分別與無線電接收器SC2272和主機通訊。
(2)MC68HC05SJB4芯片
MC68HC05JB4芯片是MOTOROLA 公司的MC68HC系列的8位微控制器。通過微控制器內含的USB模塊??梢院芊奖愕貙崿FUSB總線上的數據通訊。MC68HCO5JB4提供了兩個端口分別與電纜的D+、D-相連;同時提供了一個3.3V的參考電壓,與D一相連。典型連接如圖2所示。D+和D一是一對差模的信號線。其中1.5K的電阻要求較高,阻值范圍必須是是1.5KΩ±5%.USB通過一個四線電纜來傳輸信號與電源:為了與電纜阻抗匹配,在電纜的每一端都使用了非平衡終端匹配電阻。該電阻保證了能夠檢測外設與端口的連接或分離。并且可以區(qū)分高速與低速設備。SCI接口電路使用MAX232芯片,它可將微控制器使用的+5V電壓轉換為+12V,連接無線電接收器SC2272.將收到的數據傳給微控制器。同時為了產生1.5M的USB總線速率。系統(tǒng)使用6MHz的晶振。
圖2 USB接口電路
(3)無線收發(fā)與編碼、解碼器設計
在信號的編碼/解碼方面,本設計方案采用SC2262/SC2272芯片作為編/解碼芯片。其連接原理如圖3、圖4所示。SC2262和SC2272芯片的第1至第8根引腳有三種狀態(tài)。即接電源正極、接地、浮空,利用這三種狀態(tài)可以有38種地址編碼方式。通過對這8根引腳采用相同的編碼方式來實現無線電遙控,而不發(fā)生干擾。
圖3無線電發(fā)送器SC2262.
圖4無線電接收器SC2272
在發(fā)射電路中。當按下SWO-SW3中的任一開關閉合時。SC2262的第17根引腳就發(fā)出對應于地址碼的編碼脈沖信號,該信號通過無線電發(fā)射電路發(fā)送出去,與SC2272相連的無線電接收器接收到該信號后,將其送入SC2272的第14根引腳。如果該信號的地址編碼與接收到信號的SC2272芯片的地址編碼相符。
則SC2272的第10-13根數據線就輸出與SW0一SW3相對應的控制信號。通過對Sw0一Sw3的交叉編碼可以組合出更多的按鍵開關。根據不同的需要,開關設計有較大的擴展性。
3 軟件設計
軟件設計主要包括MC68HC05JB4的主控程序、HID設備驅動程序及應用軟件設計等三個部分。
(1)MC68HC05JB4的主控模塊。
MC68HC05JB4的主控模塊設計主要完成兩個功、能:一是監(jiān)視無線接收器SC2272的狀態(tài)。自動產生狀態(tài)信息和用戶命令信息;二是完成主機與連接卡之間的USB總線通訊,自動處理主機的控制和查詢命令。
對于功能二的實現,MC68HCO5JB4中的USB模塊提供了3個端點。其中端點0通過控制傳輸與主機通訊,端點1和端點2則使用中斷傳輸。把端點0看作是設備的控制和狀態(tài)寄存器,而端點1和端點2則是設備的兩個數據緩沖區(qū)。對應于3個端點。
68HCO5JB4提供了3個控制寄存器。2個中斷寄存器(端點1和端點2共用1個),同時為端點0提供了8個數據發(fā)送/接收寄存器。為端點1和端點2提供了8個共用的數據發(fā)送寄存器。
其功能大致分為四個模塊:USB中斷服務例程:
命令處理器;獲取命令模塊;報告處理器。
USB中斷服務例程處理USB不同的通訊信息,發(fā)送端點0的SETUP、IN、0uT等控制信息給命令處理器及協(xié)助報告處理器發(fā)送待決的報告給中斷斷點1.當USB設備第一次連接到總線上,它被指定為一個特定的地址,然后主機發(fā)送命令要求來檢測設備特性并且選擇不同的設備參數。命令處理器模塊分析這些命令要求,按所要求的描述符和參數響應。USB鍵盤控制器被定位為人機接口設備(HID)。它不僅需要響應標準的USB協(xié)議要求,還要響應HID子協(xié)議的要求。同時為了完成信息的傳輸。設備還必須至少支持一種中斷端點。另外為了使數據能被BIOS正確解釋,USB鍵盤控制器必須按照報告定義的格式輸入。
報告處理器負責按規(guī)定格式轉換無線接收模塊接收的數據,并請求中斷服務例程通過中斷管道發(fā)送報告。無線接收模塊隨時準備接收無線發(fā)送模塊發(fā)來的數據,修改報告數據字節(jié)。待一個完整的數據包接收完成后,即通知報告處理器。[!--empirenews.page--]
命令處理器主要處理USB的一般命令和HID的特有命令。獲取命令模塊主要是模擬實現SCI的接收功能。由于MC68HCO5JB4沒有SCI模塊。為了正確接收數據,利用MC68HCO5JB4內含的16位時鐘的輸入捕捉(ICAP)和輸出比較(OCMP)功能,模擬實現了SCI的接收功能。每次SCI數據接收后都存入緩沖區(qū)。
待一個完整的數據包接收完畢。就設置標志位。通知報告處理器數據已準備好。如果USB通信陷入停頓。
緩沖區(qū)有可能被充滿,這時SCI的數據接收將被禁止。報告處理器負責生成標準的USB報告。
實現USB鍵盤控制器特有的掛起與喚醒功能也是設計中的重要環(huán)節(jié)。USB協(xié)議規(guī)定。當總線處于空閑態(tài)超過3ms時??刂破鞅仨氝M入掛起狀態(tài)。而掛起的控制器從總線上吸收的電流必須小于500uA.
MC68HCO5JB4的掛起通過設置USB端點0的中斷寄存器中的掛起標志位來實現。協(xié)議規(guī)定的500uA包括了主機端的電纜終端匹配電阻的電流(通常為220uA),所以對于使用總線電源的控制器而言。進入掛起狀態(tài)通常便意味著總電流功耗不能超過280mA.
這實際上是要求MC68HCO5JB4進入STOP模式。但MC68HCO5JB4在STOP模式下時鐘被禁止,也就是說此時無法接收數據。為了解決這個問題。即要控制器不進入掛起狀態(tài)。則通過主機周期性地向控制器發(fā)送包結束(EOP)信號,間隔時間小于3ms,這樣使控制器永遠處于正常狀態(tài)。
(2)應用軟件設計
本設計主要針對文檔操作,實現鍵盤的相關功能。系統(tǒng)設置了"上頁"、"下頁""返回""關閉"等四個控制熱鍵??烧{用API函數注冊系統(tǒng)熱鍵代碼。用戶使用鍵盤控制器前。先在主機的應用程序界面設置需要操作的文檔參數。啟動控制熱鍵后,SC2262被觸動并開始發(fā)送數據,此時主機方主動查詢是否有數據發(fā)送。實現時實監(jiān)控。當SC2272接收到數據后,即通過SCI接口電路發(fā)送數據給微控制器MC68HCO5JB4,最后MC68HCO5JB4通過USB接12I向主機發(fā)送數據。主機接收后執(zhí)行相應的操作。主要流程圖如圖5所示。
圖5 軟件流程圖
結語
本設計方案適用于多媒體輔助環(huán)境下的課堂教學、講座等,可進行遠達十米以上的遠程遙控電腦工作,效果良好。同時,它也為便攜式的無線通訊外設系統(tǒng)提供了方便、快捷和可靠的接12I解決