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個獨立氖諭/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全速和高速協議。USB2.0模塊的示意框圖如圖1所示。

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