USB接口類(lèi)單片機(jī)特點(diǎn)及應(yīng)用
2004年5月B版
引言
USB接口已經(jīng)在無(wú)線(xiàn)接入設(shè)備、電子商務(wù)、安全鑰匙、PDA及計(jì)算機(jī)便攜式外設(shè)上有了廣泛的應(yīng)用。本次Freescale杯設(shè)計(jì)競(jìng)賽推薦的兩款單片機(jī)帶有USB接口,它們是支持高速、全速USB傳輸?shù)腗C9S12UF32和支持低速USB傳輸?shù)腗C68HC908JB8/16。
MC9S12UF32 單片機(jī)
MC9S12UF32是16位單片機(jī)中低價(jià)位、高性能HC/S12家族中的一員。由S12內(nèi)核(Star Core CPU),加其它標(biāo)準(zhǔn)的片上模塊組成,包括32K字節(jié)FLASH EEPROM,3.5K字節(jié)RAM,1.5K隊(duì)列QRAM,高速USB2.0(480Mb/s)接口,給USB批量數(shù)據(jù)傳輸使用的集成隊(duì)列控制器(IQUE),ATA5接口(PCI總線(xiàn)接口),U盤(pán)類(lèi)FLASH接口(Compact FLASH),SD/MMC接口,智能多媒體接口,記憶棒接口,一個(gè)16位8通道定時(shí)器,串行通訊接口,73個(gè)獨(dú)立的數(shù)字I/O通道和2個(gè)輸入通道。系統(tǒng)集成模塊(SIM)負(fù)責(zé)管理系統(tǒng)資源的映射、時(shí)鐘產(chǎn)生、中斷控制和總線(xiàn)接口。MC9S12UF32系統(tǒng)總線(xiàn)為16位寬。外部總線(xiàn)可以在8位窄模式下工作,這使得在低成本系統(tǒng)中可以使用單個(gè)8位寬存儲(chǔ)器。特別地,IQUE模塊控制了一條專(zhuān)門(mén)的內(nèi)部總線(xiàn),這條總線(xiàn)使得從存儲(chǔ)接口到USB模塊可以保持每秒60M字節(jié)的傳輸率。
可以說(shuō)這款單片機(jī)是專(zhuān)門(mén)為高速USB存儲(chǔ)設(shè)備接口設(shè)計(jì)的。使用這款芯片的主要模塊是集成隊(duì)列控制器(IQUE)、USB2.0接口和眾多存儲(chǔ)控制器接口(如ATA5)中的一個(gè)或多個(gè)。CPU本身起到了對(duì)系統(tǒng)的配置和控制作用,真正的數(shù)據(jù)傳輸通過(guò)IQUE作為中介完成,不需要CPU的干預(yù),這是利用這款芯片進(jìn)行產(chǎn)品設(shè)計(jì)時(shí)的思路。
集成隊(duì)列模塊IQUE由三個(gè)主要部分組成:QUE控制器、QUE集成模塊(QIM)和1.5K字節(jié),寬度可定義為16位的靜態(tài)隊(duì)列RAM(QRAM)。QUE控制器有四個(gè)通道,它們可以在單個(gè)IQUE時(shí)鐘周期內(nèi)移動(dòng)一個(gè)字節(jié)或者一個(gè)16位字。QIM內(nèi)部的復(fù)用和控制邏輯允許QRAM在QUE控制器和CPU之間共享。模塊有三個(gè)總線(xiàn)接口:外設(shè)(IP)總線(xiàn)接口,IP 先進(jìn)先出緩沖接口(FIFO)和S12的CPU接口(EEPROM總線(xiàn))。
集成隊(duì)列模塊IQUE可以在不需CPU干預(yù)的情況下進(jìn)行自動(dòng)數(shù)據(jù)塊傳輸,并且由于隊(duì)列數(shù)據(jù)傳輸發(fā)生在CPU不使用QRAM的時(shí)間段內(nèi),因此不需要借用CPU總線(xiàn)周期。一個(gè)快速通道專(zhuān)門(mén)供高數(shù)據(jù)速率的外圍設(shè)備使用。即使CPU在使用QRAM,該通道也能保證數(shù)據(jù)傳輸?shù)膸?。不同于DMA控制器,IQUE是專(zhuān)門(mén)面向高速數(shù)據(jù)傳輸?shù)膯纹瑱C(jī)設(shè)計(jì)的,傳輸隊(duì)列的一端是單片機(jī)內(nèi)的外圍設(shè)備,另一端是QRAM。這種設(shè)計(jì)大大減少了地址指針,計(jì)數(shù)器和其它控制邏輯的數(shù)目,降低了系統(tǒng)設(shè)計(jì)的復(fù)雜程度。
在數(shù)據(jù)隊(duì)列的自動(dòng)傳輸過(guò)程中,數(shù)據(jù)以FIFO的方式寫(xiě)入或傳出QRAM。CPU可以通過(guò)對(duì)QUE控制器寄存器的操作實(shí)現(xiàn)對(duì)QRAM的寫(xiě)入或者讀出,這些寄存器作為FIFO數(shù)據(jù)端口工作。特別地,CPU可以用普通的讀或?qū)懛绞綄?duì)QRAM進(jìn)行隨機(jī)訪(fǎng)問(wèn)。當(dāng)從FIFO數(shù)據(jù)端口訪(fǎng)問(wèn)QRAM中的信息時(shí),指針會(huì)自動(dòng)更新,此時(shí)QRAM緩沖區(qū)以環(huán)形或線(xiàn)性FIFO方式工作。FIFO的起始指針和末尾指針也可以直接修改。
QUE控制器中的四個(gè)隊(duì)列通道可以以接收隊(duì)列或者發(fā)送隊(duì)列方式工作。轉(zhuǎn)移方式只是把一個(gè)接收通道和發(fā)送通道聯(lián)系到同一塊QRAM FIFO緩沖區(qū)上,這樣數(shù)據(jù)就可以在沒(méi)有CPU的干預(yù)下自動(dòng)從一個(gè)外設(shè)傳送到另一個(gè)外設(shè)。當(dāng)某一個(gè)隊(duì)列通道關(guān)閉時(shí),與該通道相聯(lián)系的FIFO緩沖區(qū)可以作為軟件緩沖區(qū)使用。
USB2.0模塊依靠片上USB設(shè)備控制器(UDC20)和USB物理層接口(UPHY),支持USB全速和高速協(xié)議。USB2.0模塊的示意框圖如圖1所示。
UDC20模塊通過(guò)IP總線(xiàn)處在S12內(nèi)核的編程控制中。有6個(gè)獨(dú)立的端點(diǎn),它們可以配置為控制、中斷、批量或者同步傳輸?shù)腎N/OUT端點(diǎn)。兩個(gè)64字節(jié)的端點(diǎn)緩沖區(qū)分配給了物理端點(diǎn)1,該端點(diǎn)默認(rèn)為控制端點(diǎn)。另外三個(gè)64字節(jié)緩沖區(qū)分配給了物理端點(diǎn)2,3和6。
對(duì)于物理端點(diǎn)4和5,端點(diǎn)緩沖區(qū)位于模塊之外。端點(diǎn)數(shù)據(jù)通過(guò)IP FIFO總線(xiàn)保存在上述的IQUE模塊中,這種結(jié)構(gòu)使得實(shí)現(xiàn)片內(nèi)其它模塊與USB2.0模塊之間持續(xù)的數(shù)據(jù)傳輸變得很容易。
配合上述的IQUE模塊和USB2.0模塊,再加上存儲(chǔ)設(shè)備接口,如ATA5主機(jī)控制器,就可以實(shí)現(xiàn)從USB接口到存儲(chǔ)器接口的高速數(shù)據(jù)通道,例如實(shí)現(xiàn)USB2.0移動(dòng)硬盤(pán)盒控制等。其中IQUE模塊起到了橋梁的作用。
MC9S12UF32單片機(jī)有100和64兩種封裝形式,采用4.25V~5.5V供電,經(jīng)片內(nèi)電壓調(diào)整器產(chǎn)生2.5V供給CPU,3.3V供片內(nèi)I/O模塊使用。
MC68HC908JB8/16單片機(jī)
MC68HC908JB8/16是8位單片機(jī)MC68HC08家族中一款低價(jià)位、高性能的單片機(jī),其主要特點(diǎn)是內(nèi)嵌了低速USB模塊,支持1.5Mbps的傳輸速率。MC68HC 908JB16與MC68HC908JB8功能基本相同,主要區(qū)別在于最高總線(xiàn)頻率、RAM和FLASH空間大小等。MC68HC908JB8單片機(jī)內(nèi)部包含了許多功能模塊,這里只介紹其USB模塊的相關(guān)功能特性。其他的特性讀者可以參看相關(guān)的技術(shù)手冊(cè)。已有幾本中文書(shū)對(duì)其進(jìn)行了詳盡的描述,如清華大學(xué)出版社出版的《Motorola 微控制器MC68HC08原理及其嵌入式應(yīng)用》、《Motorola 68HC08微控制器與嵌入式系統(tǒng)基礎(chǔ)》,復(fù)旦大學(xué)出版社的《M68HC08系列單片機(jī)原理與應(yīng)用》等。
USB模塊管理USB主機(jī)與MC68HC908JB8之間的數(shù)據(jù)通信。其結(jié)構(gòu)如圖2所示。
可以看出,其USB模塊由3部分組成,即USB控制邏輯、USB收發(fā)器和USB寄存器。各部分的功能特性如下:
USB收發(fā)器(USB Transceiver),支持USB的低速(Low Speed)模式,因此簡(jiǎn)稱(chēng)為L(zhǎng)S收發(fā)器。它提供了USB的D+和D-信號(hào)線(xiàn)的物理接口,由輸出驅(qū)動(dòng)電路和輸入接收器2部分組成。這部分就是實(shí)現(xiàn)USB物理層的特性,包括USB電氣特性,如差模信號(hào)的實(shí)現(xiàn)。LS收發(fā)器像一個(gè)打包了的黑匣子一樣,與控制邏輯一端交換的是串行信號(hào),而與USB總線(xiàn)通訊的則是USB差模信號(hào)。
USB控制邏輯(USB Control Logic),是整個(gè)USB模塊的核心,負(fù)責(zé)管理CPU和USB收發(fā)器之間的數(shù)據(jù)交換。USB寄存器(USB Register),包括中斷寄存器、控制寄存器、狀態(tài)寄存器和數(shù)據(jù)寄存器。它是用戶(hù)編程、控制USB以及進(jìn)行數(shù)據(jù)交換的最直接的載體。合理、有效地利用寄存器是編寫(xiě)好應(yīng)用程序的關(guān)鍵。
USB鍵盤(pán)之類(lèi)低速USB-HID設(shè)備是MC68HC908JB8芯片很適合的應(yīng)用,鍵盤(pán)掃描電路與單片機(jī)I/O引腳相連,按鍵信息通過(guò)鍵盤(pán)行列掃描進(jìn)入單片機(jī),再通過(guò)USB接口被主機(jī)獲取。同時(shí),按鍵狀態(tài)可以通過(guò)單片機(jī)其余的I/O引腳用LED顯示,這樣就可以很方便的實(shí)現(xiàn)USB鍵盤(pán)設(shè)計(jì)。
68HC908JB8/JB16單片機(jī)有20、28、32、44引腳的封裝形式,68HC908JB8有256字節(jié)的RAM,8K字節(jié)片內(nèi)FLASH,除傳統(tǒng)的定時(shí)器、鍵盤(pán)中斷、串行口、13路A/D等I/O設(shè)備外,還集成了通訊速率為1.5Mbps的低速USB模塊。HC908JB16為384字節(jié)的片內(nèi)RAM,16K字節(jié)的FLASH?!?BR>
評(píng)論