<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > USB接口類單片機特點及應用

          USB接口類單片機特點及應用

          作者:清華大學Freescale Semiconductor單片機應用開發(fā)研究中心 邵森龍 程天宇 時間:2004-08-25 來源:電子產品世界 收藏

          2004年5月B版

          引言

            USB接口已經在無線接入設備、電子商務、安全鑰匙、PDA及計算機便攜式外設上有了廣泛的應用。本次Freescale杯設計競賽推薦的兩款帶有USB接口,它們是支持高速、全速USB傳輸的MC9S12UF32和支持低速USB傳輸的MC68HC908JB8/16。

          MC9S12UF32

            MC9S12UF32是16位中低價位、高性能HC/S12家族中的一員。由S12內核(Star Core CPU),加其它標準的片上模塊組成,包括32K字節(jié)FLASH EEPROM,3.5K字節(jié)RAM,1.5K隊列QRAM,高速USB2.0(480Mb/s)接口,給USB批量數據傳輸使用的集成隊列控制器(IQUE),ATA5接口(PCI總線接口),U盤類FLASH接口(Compact FLASH),SD/MMC接口,智能多媒體接口,記憶棒接口,一個16位8通道定時器,串行通訊接口,73個獨立的數字I/O通道和2個輸入通道。系統(tǒng)集成模塊(SIM)負責管理系統(tǒng)資源的映射、時鐘產生、中斷控制和總線接口。MC9S12UF32系統(tǒng)總線為16位寬。外部總線可以在8位窄模式下工作,這使得在低成本系統(tǒng)中可以使用單個8位寬存儲器。特別地,IQUE模塊控制了一條專門的內部總線,這條總線使得從存儲接口到USB模塊可以保持每秒60M字節(jié)的傳輸率。

            可以說這款單片機是專門為高速USB存儲設備接口設計的。使用這款芯片的主要模塊是集成隊列控制器(IQUE)、USB2.0接口和眾多存儲控制器接口(如ATA5)中的一個或多個。CPU本身起到了對系統(tǒng)的配置和控制作用,真正的數據傳輸通過IQUE作為中介完成,不需要CPU的干預,這是利用這款芯片進行產品設計時的思路。

            集成隊列模塊IQUE由三個主要部分組成:QUE控制器、QUE集成模塊(QIM)和1.5K字節(jié),寬度可定義為16位的靜態(tài)隊列RAM(QRAM)。QUE控制器有四個通道,它們可以在單個IQUE時鐘周期內移動一個字節(jié)或者一個16位字。QIM內部的復用和控制邏輯允許QRAM在QUE控制器和CPU之間共享。模塊有三個總線接口:外設(IP)總線接口,IP 先進先出緩沖接口(FIFO)和S12的CPU接口(EEPROM總線)。

            集成隊列模塊IQUE可以在不需CPU干預的情況下進行自動數據塊傳輸,并且由于隊列數據傳輸發(fā)生在CPU不使用QRAM的時間段內,因此不需要借用CPU總線周期。一個快速通道專門供高數據速率的外圍設備使用。即使CPU在使用QRAM,該通道也能保證數據傳輸的帶寬。不同于DMA控制器,IQUE是專門面向高速數據傳輸的單片機設計的,傳輸隊列的一端是單片機內的外圍設備,另一端是QRAM。這種設計大大減少了地址指針,計數器和其它控制邏輯的數目,降低了系統(tǒng)設計的復雜程度。

            在數據隊列的自動傳輸過程中,數據以FIFO的方式寫入或傳出QRAM。CPU可以通過對QUE控制器寄存器的操作實現對QRAM的寫入或者讀出,這些寄存器作為FIFO數據端口工作。特別地,CPU可以用普通的讀或寫方式對QRAM進行隨機訪問。當從FIFO數據端口訪問QRAM中的信息時,指針會自動更新,此時QRAM緩沖區(qū)以環(huán)形或線性FIFO方式工作。FIFO的起始指針和末尾指針也可以直接修改。

            QUE控制器中的四個隊列通道可以以接收隊列或者發(fā)送隊列方式工作。轉移方式只是把一個接收通道和發(fā)送通道聯系到同一塊QRAM FIFO緩沖區(qū)上,這樣數據就可以在沒有CPU的干預下自動從一個外設傳送到另一個外設。當某一個隊列通道關閉時,與該通道相聯系的FIFO緩沖區(qū)可以作為軟件緩沖區(qū)使用。

            USB2.0模塊依靠片上USB設備控制器(UDC20)和USB物理層接口(UPHY),支持USB全速和高速協(xié)議。USB2.0模塊的示意框圖如圖1所示。

            UDC20模塊通過IP總線處在S12內核的編程控制中。有6個獨立的端點,它們可以配置為控制、中斷、批量或者同步傳輸的IN/OUT端點。兩個64字節(jié)的端點緩沖區(qū)分配給了物理端點1,該端點默認為控制端點。另外三個64字節(jié)緩沖區(qū)分配給了物理端點2,3和6。

            對于物理端點4和5,端點緩沖區(qū)位于模塊之外。端點數據通過IP FIFO總線保存在上述的IQUE模塊中,這種結構使得實現片內其它模塊與USB2.0模塊之間持續(xù)的數據傳輸變得很容易。

            配合上述的IQUE模塊和USB2.0模塊,再加上存儲設備接口,如ATA5主機控制器,就可以實現從USB接口到存儲器接口的高速數據通道,例如實現USB2.0移動硬盤盒控制等。其中IQUE模塊起到了橋梁的作用。

            MC9S12UF32單片機有100和64兩種封裝形式,采用4.25V~5.5V供電,經片內電壓調整器產生2.5V供給CPU,3.3V供片內I/O模塊使用。

          MC68HC908JB8/16單片機

            MC68HC908JB8/16是8位單片機MC68HC08家族中一款低價位、高性能的單片機,其主要特點是內嵌了低速USB模塊,支持1.5Mbps的傳輸速率。MC68HC 908JB16與MC68HC908JB8功能基本相同,主要區(qū)別在于最高總線頻率、RAM和FLASH空間大小等。MC68HC908JB8單片機內部包含了許多功能模塊,這里只介紹其USB模塊的相關功能特性。其他的特性讀者可以參看相關的技術手冊。已有幾本中文書對其進行了詳盡的描述,如清華大學出版社出版的《Motorola 微控制器MC68HC08原理及其應用》、《Motorola 68HC08微控制器與系統(tǒng)基礎》,復旦大學出版社的《M68HC08系列單片機原理與應用》等。

            USB模塊管理USB主機與MC68HC908JB8之間的數據通信。其結構如圖2所示。

            可以看出,其USB模塊由3部分組成,即USB控制邏輯、USB收發(fā)器和USB寄存器。各部分的功能特性如下:

            USB收發(fā)器(USB Transceiver),支持USB的低速(Low Speed)模式,因此簡稱為LS收發(fā)器。它提供了USB的D+和D-信號線的物理接口,由輸出驅動電路和輸入接收器2部分組成。這部分就是實現USB物理層的特性,包括USB電氣特性,如差模信號的實現。LS收發(fā)器像一個打包了的黑匣子一樣,與控制邏輯一端交換的是串行信號,而與USB總線通訊的則是USB差模信號。

            USB控制邏輯(USB Control Logic),是整個USB模塊的核心,負責管理CPU和USB收發(fā)器之間的數據交換。USB寄存器(USB Register),包括中斷寄存器、控制寄存器、狀態(tài)寄存器和數據寄存器。它是用戶編程、控制USB以及進行數據交換的最直接的載體。合理、有效地利用寄存器是編寫好應用程序的關鍵。

            USB鍵盤之類低速USB-HID設備是MC68HC908JB8芯片很適合的應用,鍵盤掃描電路與單片機I/O引腳相連,按鍵信息通過鍵盤行列掃描進入單片機,再通過USB接口被主機獲取。同時,按鍵狀態(tài)可以通過單片機其余的I/O引腳用LED顯示,這樣就可以很方便的實現USB鍵盤設計。

            68HC908JB8/JB16單片機有20、28、32、44引腳的封裝形式,68HC908JB8有256字節(jié)的RAM,8K字節(jié)片內FLASH,除傳統(tǒng)的定時器、鍵盤中斷、串行口、13路A/D等I/O設備外,還集成了通訊速率為1.5Mbps的低速USB模塊。HC908JB16為384字節(jié)的片內RAM,16K字節(jié)的FLASH?!?BR>



          關鍵詞: 單片機 嵌入式

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();