www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 電源 > 數字電源
[導讀]隨著電子技術的高速發(fā)展,USB控制器向小體積、低功耗的方向發(fā)展。本文介紹如何使用MAX3420進行Windows系統(tǒng)HID設計的過程。

    USB技術在現(xiàn)代電子系統(tǒng)中應用得越來越廣泛。很多計算機上甚至去掉了傳統(tǒng)的串口,全部改用USB口的鼠標、鍵盤,甚至風扇。傳統(tǒng)的USB控制器在使用時,需要大量的與主控機相連的接口連線,占用了大量的CPU I/O口資源。隨著電子技術的高速發(fā)展,USB控制器向小體積、低功耗的方向發(fā)展。本文介紹如何使用MAX3420進行Windows系統(tǒng)HID設計的過程。

  本設計的首要目的就是,尋找一種快捷的方法來調整音量或者暫停播放,而不需要移動鼠標來尋找Windows Media Player窗口。該系統(tǒng)插在USB端口上,只有一個旋鈕起主要作用。旋轉這個按鈕可以調節(jié)音量。按一次旋鈕暫停播放,再按一次開始播放。由于該旋鈕掌控主要的Windows音量控制,因此,它可以調節(jié)任何當前播放聲音的音量,例如,電子郵件提示音或者是游戲聲音。該音量控制器即使在Windows播放器不是當前操作窗口的情況下也仍然對其有效。為了省去設計底層驅動程序的工作,把該器件設計成USB人機接口設備(HID)。把HID接入Windows系統(tǒng),它就可以工作了。

  1 低成本的USB系統(tǒng)

  系統(tǒng)設計中最重要的一點是,選

擇一種低成本的微控制器和USB解決方案。ATtiny13型微控制器本身并不含有USB控制器,所以使用Maxim公司的 MAX3420E型USB控制器,而且僅需要一些用于普通的串行外圍接口設備(SPI)的指令就可以與任何微處理器聯(lián)合使用。與MAX3420E對話,會占用ATtiny13中5個I/O引腳中的4個。

  這里簡單介紹一下MAX3420。它是Maxim公司推出的一種全速USB(12 Mbps)外設控制器,支持USB2.0協(xié)議。MAX3420內建全速收發(fā)器,支持±15 kV的ESD保護,可以編程控制USB總線的連接和斷開;內含的串行接口引擎可以控制底層的USB協(xié)議細節(jié),如錯誤校驗和總線重連接。MAX3420通過SPI接口操作其內部寄存器,工作頻率為26 MHz,任何支持SPI主模式的CPU只使用3~4根線便可增加USB功能。

  圖1是本系統(tǒng)的電路原理。U1是USB控制器MAX3420E。U2是MAX6349TL,它可提供3.3 V、150 mA的輸出,具有上電復位(POR)電路,可直接與MAX3420E的RES引腳連接。在USB外設這樣的熱插拔設計中,良好的外部POR電路非常重要。與USB連接頭上的 VBUS5 V信號相連接,并且將其調整至MAX3420E和ATtiny13所需的3.3 V。旋轉編碼器和發(fā)光二極管與MAX3420E的通用I/O引腳相連接。連接器J2用于ATtiny的調試和編碼輸入。電阻R1將編程/輸入復位同系統(tǒng)復位隔開。上拉電阻R2確保當編程器或ICE使用調試連接器J2時,MAX3420E的SPI端口不被選中。

  ATtiny13在管理MAX3420E的SPI端口時采用半雙工模式,只使用一個雙向數據引腳。電阻R3可避免在使用這種方式讀取MAX3420E寄存器數據時的爭用問題。在第8個SCLK信號上升沿到來時,MAX3420E的SPI開始對命令字節(jié)的第8位進行采樣,并在第1個數據位到來后立即驅動數據引腳。

  2 對話式SPI[1]

  ATtiny13并不包含有SPI硬件單元。MAX3420E的SPI比較簡單,且可以任意速率運行,可以對ATtiny13的I/O引腳進行位響應。

  MAX3420E在三線、四線或五線SPI情況下都可以工作。另外還有幾個不可省去的信號:串行時鐘信號(SCLK)、從器件選擇(SS)以及雙向數據引腳的主控制器輸出從機輸入/主控制器輸入從機輸出 (MOSI/MISO)信號。本設計中用一條4位的引線把ATtiny13的一個輸入引腳同MAX3420E的INT引腳連接起來,以便節(jié)約碼字空間并使得SPI總線通信量最小。

音量控制器的電路原理圖

                圖1  音量控制器的電路原理圖

  3 HID基礎

  USB HID規(guī)范的主要思想是要定義一個可以和應用程序聯(lián)合應用的傳感器、按鈕和LED的廣泛的類型范圍?!癠SB器件使用者論壇”的“通用串行總線HID用法表”中詳述了數百種用法。HID協(xié)議是雙方面的協(xié)議,HID器件和Windows應用都必須同意使用HID規(guī)范中的特定碼符。HID文件是概念性的但卻有相當復雜的說明。

  HID外部設備通過發(fā)送報告與Windows進行通信。HID設計的主要任務是要創(chuàng)造出一種可以傳達對操作系統(tǒng)控制意圖的報告格式。對于此項設計,需要對以下幾項進行控制:音量加、音量減、暫停、播放、下一曲目和上一曲目。這幾項中的每一項在HID用法表中都有一個描述項。

    下面的程序是HID報告描述符。它是用從網站www.USB.org.上得到的HID工具程序構建的。

  .DB 0x05,0x0C
  ;使用頁面(用戶).DB 0x09,0x01
  ;遠程控制.DB 0xA1,0x01.DB 0x15,0x00
  ;Logical Minimum = 0.DB 0x25,0x01
  ;Logical Maximum = 1.DB 0x09,0xE9
  ;VOL+.DB 0x09,0xEA
  ;VOL-.DB 0x09,0xB1
  ;Pause.DB 0x09,0xB0
  ;Play.DB 0x09,0xB5;檢測下一次
  .DB 0x09,0xB6;檢測前一次
  .DB 0x75,0x01;描述符報告大小
  .DB 0x95,0x06;描述符報告數量
  .DB 0x81,0x02;輸入描述符報告
  .DB 0x75,0x01;描述符報告大小
  .DB 0x95,0x02;描述符報告數量
  .DB 0x81,0x01.DB 0xC0

  當主機發(fā)出“獲取描述符報告”要求時,ATtiny13將該表返回給主機。報告描述符的格式是單字節(jié)報告,以使用(VOL+)行開頭的描述符將二進制數據集合到一個以LSB開頭的字節(jié)內??刂祈椫恍枰?

位,所以該字節(jié)內的最后兩位被賦予0值。描述符報告格式如下:

報告格式

  當Windows識別并進行USB枚舉后,為了得到上述格式的單字節(jié)響應,操作系統(tǒng)開始向終端3IN發(fā)送周期性IN請求。該部件監(jiān)控旋轉控制的變化情況,并且當有動作(如音量增加)請求時發(fā)送通信數據;沒有動作請求時,該固件返回0值。

  MAX3420E簡化了USB修改過程,SPI主控器(即ATtiny13)將報告數據字節(jié)寫入EP3INFIFO(endpoint 3 IN FIFO)的寄存器。然后SPI主控器將數值1寫入EP3INBC(endpoint3IN byte count)寄存器,表示為了響應USB的下一個IN請求,將會傳送1個字節(jié)。傳送發(fā)生后,MAX3420E產生中斷請求,表明下一個字節(jié)的數據可以寫入EP3INFIFO了。

  下面是完整的傳送程序??梢詫?strong>音量控制器的HID信息傳送給PC機??此品浅:唵危窃摼幋a卻包含了很多的HID控制頁面。剩余的代碼實現(xiàn)代碼循環(huán)。該循環(huán)會檢測旋轉控制器,然后點亮發(fā)光二極管。對任意USB外圍器件來說,USB樣板文件代碼需要進行內部處理。這個樣板文件代碼控制著器件的枚舉、懸掛、恢復以及USB總線置零等命令。

  Send_byte:
  idi  MAX_Reg,rEP3INFIFO
  mov  MAX_Dat,audio_flags
  clr  audio_flags
  rcall  wreg
  idi  MAX_Reg, rEP3INBC
  mov  MAX_Dat,1
  rjmp  wreg

  4 讀取旋轉控制

  旋轉編碼器用格雷編碼端子A和B分別表示順時針和逆時針旋轉。旋轉控制器與MAX3420E上有內置上拉電阻的GPIN引腳相連。圖2顯示的是左旋和右旋時的開關轉接狀態(tài)。鎖定位置狀態(tài)1和3是控制停止位置??刂破鹘涍^1個或3個狀態(tài)后,可到下一個鎖定位置。該固件只需對旋鈕旋轉進行譯碼,就可以實現(xiàn)向鎖定狀態(tài)1和3的轉換。例如,實現(xiàn)右旋狀態(tài)轉換需要由3到1或由2到3。

旋轉編碼器的開關連接狀態(tài)

  圖2  旋轉編碼器的開關連接狀態(tài)

  5 完善代碼

  ATtiny13有512字長的程序存儲空間。編碼需要完成以下幾項工作: 首先要對設備進行枚舉。這一步包括對MAX3420主控制器的各種類型的“獲取描述符”請求進行解碼,對對應的表數據進行定位以及對終端零值FIFO進行數據寫入,以將其傳送至固件。

  編碼時也應該為隨時發(fā)生的USB總線置0以及USB總線的懸掛和恢復進行測試。必須對旋轉控制位置和按鈕開關狀態(tài)進行周期性讀取和譯碼。當主機接受了由EP3IN傳來的用于發(fā)送HID控制數據的信息包后,該代碼還必須為下一次的IN傳送進行終端的數據加載,并為下一次的數據傳輸表明控制端點。

  為了減小代碼量,設計過程中采用下面的方法: 第一,省去了可選擇性USB串描述符。這些描述符是描述諸如供應商、器件類型等的文本串。這些字符串只是信息性質的,對USB外圍器件的操作來說,沒有任何價值。第二,沒有使用可選擇性USB遙控喚醒部分。這個部分實現(xiàn)起來并不困難(MAX3420E會承擔這項工作的絕大部分),但是卻會占用碼字空間。第三,沒有把HID報告的描述符寫入程序閃存器,而是寫入EEPROM。ATtiny13有64字節(jié)的EEPROM,可以寫入該EEPROM的任意表數據,都會保存在程序閃存器中。

    6 寫入代碼

  如果只用圖符方式進行此項設計,那么可以用6引腳的J2連接AVRISP2在線程序設計器來下載這些程序模塊。如果想要研究或修改該代碼,也可以把ATJTAGICE2ND(用于AVR系列的完全在線仿真器)連接到J2上。不管使用哪種下載方式,都不要忘記把HEX文件(閃存器代碼)和EEP模塊(EEPROM數據)都寫進去。

  7 總結[2]

  現(xiàn)在的電子應用中,USB接口幾乎已經取代了串行接口成為PC機上接口連接的首選。本設計表明:雖然USB比串行端口更為復雜,但是USB連接卻并不需要更多的代碼或者昂貴的微處理器。代碼的絕大部分是USB樣板文件,因此可以在多項設計中重復使用它。另外,USB有巨大的優(yōu)勢:從電纜中獲取電源,自動的“握手”和錯誤檢測以及可以進行熱插拔。如果想要保留已有的MCU和工具,可以采用諸如MAX3420E那樣的基于SPI的USB控制器來搭建USB外圍電路。

  參考文獻

[1] Maxim公司.MAX3420 datasheet,2005-09-26.
[2] 張弘.USB接口設計[M].西安:西安電子科技大學出版社,2002.
[3] 盧珞.羅婷. 基于SPI的USB控制器接口設計[J]. 單片機與嵌入式系統(tǒng)應用,2006(12): 41-45.

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

近日,一個存在于Windows Mark of the Web (MotW)中的零日漏洞被發(fā)現(xiàn),并正在被攻擊者積極利用。但有趣的是,在微軟官方還沒有對該漏洞做出修復之前,第三方平臺0patch就提供了該漏洞的修復補丁。據...

關鍵字: PATCH Windows 微軟 APP

(全球TMT2022年9月22日訊)Granite River Labs(簡稱"GRL")日前宣布,其位于中國東莞的實驗室已獲英特爾公司(Intel? Corporation)授權,可為Windows系統(tǒng)平臺開展Thu...

關鍵字: Windows THUNDERBOLT ST OS

GRL東莞實驗室將與上海和臺北實驗室一同,提供Windows Host認證服務 加利福尼亞州圣克拉拉市2022年9月22日 /美通社/ -- 高速信號和充電技術測...

關鍵字: Windows THUNDERBOLT USB OS

谷歌為Pixel用戶(Pixel 4、4a、5、5a和6系列等)送出驚喜,Android 13首個穩(wěn)定版正式推送。

關鍵字: 谷歌 Android13 Windows

據報道,在三星即將推出新款折疊手機之際,消息稱谷歌也將加入折疊手機市場,由鴻海代工,也讓鴻海的智能手機制造延伸至折疊手機領域。

關鍵字: 谷歌 Android Windows 折疊手機

ARM架構的處理器在移動平臺所向披靡,但在高性能計算市場上還是被AMD及Intel的x86架構主導,現(xiàn)在挑戰(zhàn)x86的越來越多了,谷歌今天正式推出了基于ARM處理器的云服務Tau T2A,而且8核vCPU、32GB內存的免...

關鍵字: 谷歌 Android Windows ARM

6月11日,據中國臺灣省媒體mashdigi報道,Google近期挖走了IBM資深工程師Anthony Saporito,預計讓其負責下一代處理器產品開發(fā)。

關鍵字: 谷歌 Android Windows

之前一直有消息稱,微軟正在調整Windows 11的UI,而新的界面會是怎么的呢?

關鍵字: Windows 微軟

北京時間4月27日凌晨消息,微軟今天發(fā)布了該公司的2022財年第三財季財報。

關鍵字: 微軟 三星 Windows

4月13日消息,據mysmartprice報道,谷歌Pixel系列新機獲得FCC認證,這次獲得FCC認證的機型共有四種型號,分別是GX7AS、GB17L、GB62Z、G1AZG。

關鍵字: 谷歌 Android Windows

數字電源

15504 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉