引 言
USB的英文全稱為Universal Serial Bus,中文含義是通用串行總線,它是一種快速的,雙向的,同步傳輸?shù)牧畠r(jià)的并可以進(jìn)行熱拔插的串行接口。USB接口使用方便,它可以連接多個(gè)不同的設(shè)備,而過(guò)去的串口和并口只能接一個(gè)設(shè)備。速度快是USB技術(shù)的突出特點(diǎn)之一。全速USB接口的最高傳輸率可達(dá)12Mb/s,比串口快了整整100倍,而執(zhí)行USB2.0標(biāo)準(zhǔn)的高速USB接口速率更是達(dá)到了480Mb/s.這使得高分辨率、真彩色的大容量圖象的實(shí)時(shí)傳送成為可能。USB接口支持多個(gè)不同設(shè)備的串列連接,一個(gè)USB接口理論上可以連接127個(gè)USB設(shè)備。連接方式也十分靈活,既可以使用串行連接,也可以使用集線器(Hub)把多個(gè)設(shè)備連接在一起,再同PC機(jī)的USB接口相接。普通的使用串口、并口的設(shè)備都需要單獨(dú)的供電系統(tǒng),而USB設(shè)備則不需要。正是由于USB的這些特點(diǎn),使其獲得了廣泛的應(yīng)用。到目前為止,USB已經(jīng)在PC機(jī)的多種外設(shè)上得到應(yīng)用,包括掃描儀,數(shù)碼相機(jī),數(shù)碼攝像機(jī)、音頻系統(tǒng)、顯示器、輸入設(shè)備等。對(duì)于廣大的工程設(shè)計(jì)人員來(lái)說(shuō),USB是設(shè)計(jì)外設(shè)接口時(shí)理想的總線。
對(duì)于USB接口芯片,通常分為普通和DMA(直接存儲(chǔ)器存取)兩種工作模式。相對(duì)于普通模式,DMA數(shù)據(jù)傳輸模式傳輸速率更快,更適合于視頻數(shù)字信號(hào)等高速、實(shí)時(shí)信號(hào)的傳送。但遺憾的是,國(guó)內(nèi)市場(chǎng)上提供的各種USB接口電路板大部分僅工作在普通模式,缺少對(duì)DMA工作模式的支持,不能直接用于象CCD數(shù)字?jǐn)z像機(jī)USB接口這樣的需要工作在DMA模式下的設(shè)計(jì)開(kāi)發(fā)。為了解決這個(gè)問(wèn)題,我們對(duì)USB的原理進(jìn)行了研究,嘗試著利用51單片機(jī)結(jié)合PHILIPS公司的PDIUSBD12帶并行總線的USB接口器件設(shè)計(jì)帶DMA工作模式的可供視頻信號(hào)傳輸?shù)亩喙δ躑SB接口電路,現(xiàn)已設(shè)計(jì)出了完整的硬件電路。
1、USB概述
由于多媒體技術(shù)的發(fā)展對(duì)外設(shè)與主機(jī)之間的數(shù)據(jù)傳輸率有了更高的需求,因此,USB總線技術(shù)應(yīng)運(yùn)而生。USB(Universal Serial Bus)翻譯為中文就是通用串行總線,是由Conpaq、DEC、IBM、Inter、Microsoft、NEC和Northen Telecom等公司為簡(jiǎn)化PC與外設(shè)之間的互連而共同研究開(kāi)發(fā)的一種免費(fèi)的標(biāo)準(zhǔn)化連接器,它支持各種PC與外設(shè)之間的連接,還可實(shí)現(xiàn)數(shù)字多媒體集成。現(xiàn)在生產(chǎn)的PC幾乎都配備了USB接口,Microsoft 的Windows98、NT以及MacOS、Linux、FreeBSD等流行操作系統(tǒng)都增加了對(duì) USB的支持。
USB的主要優(yōu)點(diǎn):
l 使用方便。連接外設(shè)不必再打開(kāi)機(jī)箱;允許外設(shè)熱插拔,而不必關(guān)閉主機(jī)電源。
l 速度快。USB支持三種設(shè)備傳輸速率:1.5 Mb/s(低速設(shè)備)、12 Mb/s(中速設(shè)備)和480 Mb/s(高速設(shè)備)。
l 獨(dú)立供電。USB接口提供了內(nèi)置電源。
l 連接靈活。一個(gè)USB口理論上可以連接127個(gè)USB設(shè)備。連接的方式也十分靈活,既可以使用 串行連接,也可以使用集線器Hub,把多個(gè)設(shè)備連接在一起,再同PC機(jī)的USB口相接。
l 成本低。為了把外設(shè)連接到PC上,USB提供了一種低成本的解決方案。
現(xiàn)在滿足USB要求的外設(shè)有:調(diào)制解調(diào)器,鍵盤(pán),鼠標(biāo),光驅(qū),游戲手柄,軟驅(qū),掃描儀,音箱等。USB總線標(biāo)準(zhǔn)由1.1版升級(jí)到2.0版后,傳輸率由12Mbps增加到了480Mbps,更換介質(zhì)后連接距離由原來(lái)的5米增加到近百米?;谶@點(diǎn),USB也可以做生產(chǎn)ISDN以及基于視頻的產(chǎn)品。USB 總線結(jié)構(gòu)簡(jiǎn)單,信號(hào)定義僅由2條電源線,2條信號(hào)線組成。
2、USB結(jié)構(gòu)與工作原理
一個(gè)USB系統(tǒng)可以從三個(gè)方面加以描述
(1)USB互聯(lián)。
(2)USB設(shè)備。
(3)USB主機(jī)。
USB互聯(lián)是指一個(gè)USB設(shè)備與USB主機(jī)相聯(lián)并和其通信的方式,它包括:
(1)總線拓?fù)浣Y(jié)構(gòu):USB主機(jī)和USB設(shè)備的連接模型。
(2)層間關(guān)系:USB在系統(tǒng)中的每一層都要完成一定的任務(wù)。
(3)數(shù)據(jù)流模型:USB系統(tǒng)中信源和信息之間的數(shù)據(jù)傳送方式。
(4)任務(wù)規(guī)劃:USB提供可以共享的互聯(lián)機(jī)制。通過(guò)規(guī)劃對(duì)互連機(jī)制的訪問(wèn),可以支
持同步數(shù)據(jù)傳輸。
下面簡(jiǎn)要討論USB硬件結(jié)構(gòu)和數(shù)據(jù)流傳輸。
2.1 USB硬件結(jié)構(gòu)
一個(gè)USB系統(tǒng)包含三類硬件設(shè)備: USB主機(jī)(USB HOST)、 USB設(shè)備(USB DEVICE)、USB集線器(USB HUB)。參見(jiàn)圖2-1。
(1)USB HOST
在一個(gè)USB系統(tǒng)中,當(dāng)且僅當(dāng)有一個(gè)USB HOST時(shí),USB HOST有以下功能:
◇ 管理USB系統(tǒng);
◇ 每毫秒產(chǎn)生一幀數(shù)據(jù);
◇ 發(fā)送配置請(qǐng)求對(duì)USB設(shè)備進(jìn)行配置操作;
◇ 對(duì)總線上的錯(cuò)誤進(jìn)行管理和恢復(fù)。
(2)USB DEVICE
在一個(gè)USB系統(tǒng)中,USB DEVICE和USB HUB總數(shù)不能超過(guò)127個(gè)。USB DEVICE接收USB總線上的所有數(shù)據(jù)包,通過(guò)數(shù)據(jù)包的地址域來(lái)判斷是不是發(fā)給自己的數(shù)據(jù)包:若地址不符,則簡(jiǎn)單地丟棄該數(shù)據(jù)包;若地址相符,則通過(guò)響應(yīng)USB HOST的數(shù)據(jù)包與USB HOST進(jìn)行數(shù)據(jù)傳輸。
(3)USB HUB
USB HUB用于設(shè)備擴(kuò)展連接,所有USB DEVICE都連接在USB HUB的端口上。一個(gè)USB HOST總與一個(gè)根HUB (USB ROOT HUB)相連。USB HUB為其每個(gè)端口提供100mA電流供設(shè)備使用。同時(shí),USB HUB可以通過(guò)端口的電氣變化診斷出設(shè)備的插拔操作,并通過(guò)響應(yīng)USB HOST的數(shù)據(jù)包把端口狀態(tài)匯報(bào)給USB HOST。一般來(lái)說(shuō),USB設(shè)備與USB HUB間的連線長(zhǎng)度不超過(guò)5m,USB系統(tǒng)的級(jí)聯(lián)不能超過(guò)5級(jí)(包括ROOT HUB)。
USB總線最多可支持127個(gè)USB外設(shè)連接到計(jì)算機(jī)系統(tǒng)。USB的拓?fù)涫菢?shù)形結(jié)構(gòu),有1個(gè)USB根集線器(root hub),下面還可有若干集線器。1個(gè)集線器下面可接若干USB接口。USB線纜包括4條線:Vbus(USB電源)、D+(數(shù)據(jù))、D-(數(shù)據(jù))和 Gnd(USB地)。線纜最大長(zhǎng)度不超過(guò)5m。USB1.1的傳輸速率最高為12Mb/s(低速外設(shè)的標(biāo)準(zhǔn)速率為1.5Mb/s,高速外設(shè)的標(biāo)準(zhǔn)速率為 12Mb/s)。圖2-1是典型的USB功能器件結(jié)構(gòu)框圖,圖2-3是高速外設(shè)的USB線纜與電阻的連接圖。圖2-3中:FS為全速(高速);LS為低速;R1=15kΩ,R2=15kΩ。USB外設(shè)可以采用計(jì)算機(jī)里的電源(+5V,500mA),也可外接USB電源。在所有的USB信道之間動(dòng)態(tài)地分配帶寬是USB總線的特征之一,這大大地提高了USB帶寬的利用率。當(dāng)一臺(tái)USB外設(shè)長(zhǎng)時(shí)間(3ms以上)不使用時(shí),就處于掛起狀態(tài),這時(shí)只消耗0.5mA 電流。按USB1.0/1.1標(biāo)準(zhǔn),USB的標(biāo)準(zhǔn)脈沖時(shí)鐘頻率為12MHz,而其總線時(shí)脈沖時(shí)鐘為1ms(1kHz),即每隔1ms,USB器件應(yīng)為 USB線纜產(chǎn)生1個(gè)時(shí)鐘脈沖序列。這個(gè)脈沖系列稱為幀開(kāi)始數(shù)據(jù)包(SOF)。高速外設(shè)長(zhǎng)度為每幀12000bit(位),而低速外設(shè)長(zhǎng)度只有每幀 1500bit。1個(gè)USB數(shù)據(jù)包可包含0~1023字節(jié)數(shù)據(jù)。每個(gè)數(shù)據(jù)包的傳送都以1個(gè)同步字段開(kāi)始。
2.2 USB的數(shù)據(jù)流傳輸
主控制器負(fù)責(zé)主機(jī)和USB設(shè)備間數(shù)據(jù)流的傳輸。這些傳輸數(shù)據(jù)被當(dāng)作連續(xù)的比特流。每個(gè)設(shè)備提供了一個(gè)或多個(gè)可以與客戶程序通信的接口,每個(gè)接口由0個(gè)或多個(gè)管道組成,它們分別獨(dú)立地在客戶程序和設(shè)備的特定終端間傳輸數(shù)據(jù)。USBD為主機(jī)軟件的現(xiàn)實(shí)需求建立了接口和管道,當(dāng)提出配置請(qǐng)求時(shí),主控制器根據(jù)主機(jī)軟件提供的參數(shù)提供服務(wù)。
USB支持四種基本的數(shù)據(jù)傳輸模式:控制傳輸,等時(shí)傳輸,中斷傳輸及數(shù)據(jù)塊傳輸。每種傳輸模式應(yīng)用到具有相同名字的終端,則具有不同的性質(zhì)。
控制傳輸類型:支持外設(shè)與主機(jī)之間的控制,狀態(tài),配置等信息的傳輸,為外設(shè)與主機(jī)之間提供一個(gè)控制通道。每種外設(shè)都支持控制傳輸類型,這樣主機(jī)與外設(shè)之間就可以傳送配置和命令/狀態(tài)信息。
等時(shí)傳輸類型:支持有周期性,有限的時(shí)延和帶寬且數(shù)據(jù)傳輸速率不變的外設(shè)與主機(jī)間的數(shù)據(jù)傳輸。該類型無(wú)差錯(cuò)校驗(yàn),故不能保證正確的數(shù)據(jù)傳輸,支持像計(jì)算機(jī)-電話集成系統(tǒng)(CTI)和音頻系統(tǒng)與主機(jī)的數(shù)據(jù)傳輸。
中斷傳輸類型:支持像游戲手柄,鼠標(biāo)和鍵盤(pán)等輸入設(shè)備,這些設(shè)備與主機(jī)間數(shù)據(jù)傳輸量小,無(wú)周期性,但對(duì)響應(yīng)時(shí)間敏感,要求馬上響應(yīng)。
數(shù)據(jù)塊傳輸類型:支持打印機(jī),掃描儀,數(shù)碼相機(jī)等外設(shè),這些外設(shè)與主機(jī)間傳輸?shù)臄?shù)據(jù)量大,USB在滿足帶寬的情況下才進(jìn)行該類型的數(shù)據(jù)傳輸。
USB采用分塊帶寬分配方案,若外設(shè)超過(guò)當(dāng)前帶寬分配或潛在的要求,則不能進(jìn)入該設(shè)備。同步和中斷傳輸類型的終端保留帶寬,并保證數(shù)據(jù)按一定的速率傳送。集中和控制終端按可用的最佳帶寬來(lái)傳輸傳輸數(shù)據(jù)。
3、USB外設(shè)控制器的兩種實(shí)現(xiàn)方式
USB芯片在外設(shè)領(lǐng)域的應(yīng)用面很廣。USB外設(shè)控制芯片通常包括USB收發(fā)器、串行接口引擎(SIE)、USB控制器和外設(shè)功能等四個(gè)模塊(SIE 主要以硬件方式處理大多數(shù)USB協(xié)議,USB控制器負(fù)責(zé)與PC交互通信信息)。USB控制器一般有兩種類型:一種是MCU集成在芯片里面的,如 Intel的8X930AX、CYPRESS的EZ-USB、SIEMENS的C541U以及 MOTOLORA、National Semiconductors等公司的產(chǎn)品;另一種就是純粹的USB接口芯片,僅處理 USB通信,如PHILIPS的PDIUSBD11(I2C接口)、 PDIUSBP11A、PDIUSBD12(并行接口),National Semiconductor的USBN9602、USBN9603、USBN9604等。
集成MCU的USB控制芯片優(yōu)點(diǎn)是CPU與控制器在同一片芯片里,CPU只需要訪問(wèn)一系列寄存器和存儲(chǔ)器,便可實(shí)現(xiàn)USB口的數(shù)據(jù)傳輸,最大限度的發(fā)揮 USB高速的特點(diǎn)。而且簡(jiǎn)化了程序的設(shè)計(jì),極大地降低了USB外設(shè)的開(kāi)發(fā)難度。缺點(diǎn)是靈活性不夠高,開(kāi)發(fā)成本較大。
純粹的USB接口芯片的優(yōu)點(diǎn)是系統(tǒng)組成靈活,可根據(jù)不同的系統(tǒng)需求,搭配不同的MCU,具有較高的性能價(jià)格比。但因?yàn)閁SB控制器是通過(guò)串行口或并行口與MCU連接,在傳輸速度方面和開(kāi)發(fā)難度方面不如集成了MCU的控制芯片。
不同的實(shí)現(xiàn)方式在設(shè)計(jì)開(kāi)銷、上市時(shí)間、元器件開(kāi)銷和引腳數(shù)方面各有優(yōu)劣,選擇不同的方案意味著在以上各項(xiàng)指標(biāo)中進(jìn)行取舍。
本文主要介紹PHILIPS公司的PDIUSBD12器件。該芯片是一款性價(jià)比很高的USB器件,它通常用作微控制器系統(tǒng)中實(shí)現(xiàn)與微控制器進(jìn)行通信的高速通用并行接口,設(shè)計(jì)者可根據(jù)需要選擇合適的微控制器,靈活性較大,適用于開(kāi)發(fā)低成本且高效的USB外圍設(shè)備。
4、應(yīng)用:帶DMA視頻信號(hào)接口功能的USB接口電路設(shè)計(jì)
目前,市場(chǎng)上提供的USB接口電路板很多,但大部分僅使用普通的工作模式,缺少對(duì)DMA工作模式的支持,不能直接用于象CCD數(shù)字?jǐn)z像機(jī)USB接口這樣的需要工作在DMA模式下的設(shè)計(jì)開(kāi)發(fā)。
所謂的DMA傳送方式,全名叫直接存儲(chǔ)器存取(Direct Memory Access)數(shù)據(jù)傳送方式,是指采用專門(mén)的硬件(DMA控制器)來(lái)執(zhí)行數(shù)據(jù)傳送。DMA控制器可以從CPU那里接管系統(tǒng)總線的控制權(quán),并且由本身發(fā)出存儲(chǔ)器地址信號(hào)以及訪問(wèn)存儲(chǔ)器和I/O設(shè)備的讀/寫(xiě)脈沖等控制信號(hào),使得數(shù)據(jù)通過(guò)總線,直接在存儲(chǔ)器和I/O設(shè)備之間(或I/O設(shè)備與存儲(chǔ)器之間,存儲(chǔ)器與存儲(chǔ)器之間)進(jìn)行傳送。在DMA接管總線執(zhí)行數(shù)據(jù)傳送過(guò)程中,CPU暫停工作。
由于DMA傳送方式僅僅在需要占用總線傳送數(shù)據(jù)時(shí)才暫停CPU的操作,CPU的工作效率極高,傳輸數(shù)據(jù)可由硬件自身控制,大大提高了傳送速率,十分適合于高速數(shù)據(jù)的采集。
下面就介紹一下我們利用51單片機(jī)結(jié)合PHILIPS公司的PDIUSBD12帶并行總線的USB接口器件設(shè)計(jì)帶DMA工作模式的可供視頻信號(hào)傳輸?shù)亩喙δ躑SB接口電路。
4.1 系統(tǒng)概況
該系統(tǒng)主要實(shí)現(xiàn)USB的接口功能,通過(guò)它,外設(shè)與計(jì)算機(jī)之間可以實(shí)現(xiàn)USB方式的連接。外設(shè)接口1用于DMA方式數(shù)據(jù)的傳送,可與CCD攝像頭等設(shè)備相連。外設(shè)接口2采用了標(biāo)準(zhǔn)的IDE接口方式,可直接于硬盤(pán)等大容量存儲(chǔ)器相連,傳輸海量數(shù)據(jù),也可以通過(guò)接口轉(zhuǎn)換,與其他功能的外設(shè)相連,具有較廣的適用性。
下面說(shuō)明了此多功能USB接口電路的框圖:
這個(gè)框圖顯示了兩種接口方案:普通模式和DMA模式。
(1)方案一:普通模式
圖4-2是該USB接口電路普通模式的框圖,該框圖說(shuō)明了連接外設(shè)的一種簡(jiǎn)單模式,所有寄存器和數(shù)據(jù)的讀寫(xiě)都是通過(guò)8051 的I/O 來(lái)仿真的,因此數(shù)據(jù)吞吐速率較低,適合間歇式數(shù)據(jù)的傳送。
(2)方案二:DMA模式
數(shù)據(jù)傳送以DMA方式,直接由D12傳送到計(jì)算機(jī)里,MCU只完成DMA的初始化工作,傳輸速度快,適合于視頻數(shù)字信號(hào)等高速實(shí)時(shí)傳送。
系統(tǒng)詳細(xì)的電原理圖和電路板結(jié)構(gòu)圖參見(jiàn)附錄。
4.2 系統(tǒng)主要部件及電路
該系統(tǒng)主要由89C51控制電路、PDIUSBD12 接口電路、數(shù)據(jù)選擇電路、串并轉(zhuǎn)換電路、掛起復(fù)位電路、IDE擴(kuò)展接口電路等組成,下面分述各部分的功能和特點(diǎn)。
4.2.1 89C51控制電路
89C51是該接口電路的控制核心,其中P0,P2口用做16位數(shù)據(jù)I/O口,P1,P3口用做控制。
89C51的晶振頻率為24MHz,每個(gè)機(jī)器周期為0.5us.
4.2.2 PDIUSBD12 接口電路
PDIUSBD12是一個(gè)性能優(yōu)化的USB器件,通常用于基于微控制器的系統(tǒng)并與微控制器通過(guò)高速通用并行接口進(jìn)行通信,也支持本地DMA傳輸。該器件采用模塊化的方法實(shí)現(xiàn)一個(gè) USB接口,允許在眾多可用的微控制器中選擇最合適的作為系統(tǒng)微控制器,允許使用現(xiàn)存的體系結(jié)構(gòu)并使固件投資減到最小。這種靈活性減少了開(kāi)發(fā)時(shí)間、風(fēng)險(xiǎn)和成本,是開(kāi)發(fā)低成本且高效的USB外圍設(shè)備解決方案的一種最快途徑。 PDIUSBD12完全符合USB1.1規(guī)范,也能適應(yīng)大多數(shù)設(shè)備類規(guī)范的設(shè)計(jì),如成像類、大容量存儲(chǔ)類、通信類、打印類和人工輸入設(shè)備等,因此,PDIUSBD12 非常適合做很多外圍設(shè)備,如打印機(jī)、掃描儀、外部大容量存儲(chǔ)器( Zip驅(qū)動(dòng)器)和數(shù)碼相機(jī)等?,F(xiàn)在用SCSI實(shí)現(xiàn)的很多設(shè)備如果用 USB來(lái)實(shí)現(xiàn)可以直接降低成本。
PDIUSBD12掛起時(shí)的低功耗以及LazyClock輸出符合ACPI 、OnNOW和USB電源管理設(shè)備的要求。低功耗工作允許實(shí)現(xiàn)總線供電的外圍設(shè)備。
PDIUSBD12還集成了像SoftConnect、GoodLink、可編程時(shí)鐘輸出、低頻晶振和終端電阻等特性。所有這些特性都能在系統(tǒng)實(shí)現(xiàn)時(shí)節(jié)省成本,同時(shí)在外圍設(shè)備上很容易實(shí)現(xiàn)更高級(jí)的 USB功能。
(1)內(nèi)部結(jié)構(gòu)
?、?模擬收發(fā)器。集成的收發(fā)器直接通過(guò)終端電阻與USB電纜接口。
?、?電壓調(diào)整器。片上集成的1個(gè)3.3 V電壓調(diào)整器為模擬收發(fā)器供電,也提供連接到外部1.5 kΩ上拉電阻的輸出電壓。作為選擇,PDIUSBD12提供集成1.5 kΩ上拉電阻的SoftConnect技術(shù)。
?、?PLL。片上集成1個(gè)6~48 MHz的倍頻PLL(鎖相環(huán)),允許使用6 MHz的晶振,EMI也由于使用低頻晶振而減小。PLL的工作不需要外部器件。
?、?位時(shí)鐘恢復(fù)。位時(shí)鐘恢復(fù)電路用4倍過(guò)采樣原理從輸入的USB 數(shù)據(jù)流中恢復(fù)時(shí)鐘,能跟蹤USB規(guī)范中指出的信號(hào)抖動(dòng)和頻率漂移。
?、?PHILIPS串行接口引擎PSIE。PHILIPS的SIE完全實(shí)現(xiàn)USB協(xié)議層??紤]到速度,它是全硬件的, 不需要固件(微程序)介入。這個(gè)模塊的功能包括:同步模式識(shí)別、并 /串轉(zhuǎn)換、位填充/不填充、CRC校驗(yàn)、PID確認(rèn)、地址識(shí)別以及握手鑒定。
⑥ SoftConnect。高速設(shè)備與USB的連接是靠把D+通過(guò)1個(gè)1.5 kΩ的上拉電阻接到高電平來(lái)建立的。在PDIUSBD12中,這個(gè)上拉電阻是集成在芯片 內(nèi)的,缺省是沒(méi)有連接到VDD,這個(gè)連接是靠外部 MCU發(fā)一個(gè)命令來(lái)建立的。這使得系統(tǒng)微處理器可以在決定建立 USB連接之前完成初始化。重新初始化USB總線連接也可以不用拔掉電纜來(lái)完成。
⑦ GoodLink。GoodLink是靠一個(gè)引腳接發(fā)光二極管實(shí)現(xiàn)的。在 USB設(shè)備枚舉時(shí)LED指示燈將立即閃亮;當(dāng)PDIUSBD12被成功枚舉并配置時(shí), LED指示燈將會(huì)始終亮;經(jīng)過(guò)PDIUSBD12的USB數(shù)據(jù)傳輸過(guò)程中, LED將一閃一閃,傳輸成功后LED熄滅;在掛起期間,LED熄滅。這種特性可以使我們知道 PDIUSBD12的狀態(tài),方便電路調(diào)試。
?、?存儲(chǔ)器管理單元MMU和集成RAM。MMU和集成RAM能緩沖USB(工作在 12Mb/s)數(shù)據(jù)傳輸和微控制器之間并行接口之間的速度差異,這允 許微控制器以自己的速度讀寫(xiě)USB包。
⑨ 并行和DMA接口。并行接口容易使用、速度快并且能直接與主微控制器接口。對(duì)于微控制器,PDIUSBD12可以看成是一個(gè)有8位數(shù)據(jù)總線和1位地址線的存儲(chǔ)設(shè)備。 PDIUSBD12支持多路復(fù)用和非多路復(fù)用的地址和數(shù)據(jù)總線。在主端點(diǎn)(端點(diǎn) 2)和局部共享存儲(chǔ)器之間也可使用DMA(直接存儲(chǔ)器存取)傳輸。它支持單周期模式和塊傳送模式 兩種DMA傳輸。
(2)PDIUSBD12引腳說(shuō)明
(3)PDIUSBD12的典型連接
PDIUSBD12與80C51的連接電路如 圖4-6 所示。在這個(gè)例子中, ALE始終接低電平,說(shuō)明采用單獨(dú)地址和數(shù)據(jù)總線配置。A0 腳接80C51的任何I/O引腳,控制是命令還是數(shù)據(jù)輸入到PDIUSBD12 。80C51的P0口直接與PDIUSBD12的數(shù)據(jù)總線相連接,CLKOUT 時(shí)鐘輸出為80C51提供時(shí)鐘輸入。
(4)PDIUSBD12的DMA 傳輸
直接存儲(chǔ)器尋址 允許在主端點(diǎn)和本地共享存儲(chǔ)器間實(shí)現(xiàn)數(shù)據(jù)塊的有效傳輸.使用DMA控制器,PDIUSBD12 的主端點(diǎn)和本地共享存儲(chǔ)器間的數(shù)據(jù)傳輸可自主進(jìn)行而不需要本地CPU 的干預(yù).要處理任何DMA傳輸,本地CPU 從主機(jī)接收必要的建立信息并對(duì)DMA控制器進(jìn)行相應(yīng)的編程.典型的對(duì)DMA控制器的傳輸模式、字節(jié)計(jì)數(shù)寄存器和地址計(jì)數(shù)器進(jìn)行正確的編程。在該模式下, PDIUSBD12 發(fā)出請(qǐng)求時(shí)開(kāi)始傳輸,當(dāng)字節(jié)計(jì)數(shù)器減少為零時(shí)終止。在DMA 控制器編程之后,本地CPU 在初始化傳輸時(shí)將PDIUSBD12 中的DMA使能位置位。
PDIUSBD12 可編程為單周期DMA或突發(fā)模式DMA。在單周期DMA 中,DMREQ在每單個(gè)應(yīng)答后直到被DMACK_N 重新激活之前保持無(wú)效。在突發(fā)模式DMA 中,DMREQ 在器件中突發(fā)編程時(shí)一直保持有效。該過(guò)程持續(xù)到PDIUSBD12 通過(guò)EOT_N 接收到一個(gè)DMA 終止信息。這時(shí)產(chǎn)生一個(gè)中斷指示本地CPU ,DMA操作已經(jīng)完成。
在DMA 讀操作時(shí),DMREQ 僅當(dāng)緩沖區(qū)完全表示主機(jī)成功的發(fā)送了一個(gè)信息包到PDIUSBD12 時(shí)才有效。由于具有雙緩沖配置主機(jī)可以在第一個(gè)緩沖區(qū)被讀出時(shí)對(duì)第二個(gè)緩沖區(qū)進(jìn)行填充。這種并行的處理有效的增加了數(shù)據(jù)吞吐量。當(dāng)主機(jī)沒(méi)有完全填滿緩沖區(qū)的情況下(單向ISO 配置時(shí)小于64 或128 字節(jié))。DMREQ 會(huì)在緩沖區(qū)的最后一個(gè)字節(jié)時(shí)無(wú)效,而不管當(dāng)前的DMA突發(fā)計(jì)數(shù)。在更新了DMA突發(fā)計(jì)數(shù)的下一個(gè)包發(fā)送時(shí),DMREQ 再次被激活。
DMA的寫(xiě)操作與之相似,當(dāng)緩沖區(qū)未裝滿時(shí),DMREQ 一直有效。當(dāng)緩沖區(qū)填滿時(shí),在下一個(gè)IN 標(biāo)志將信息包送入主機(jī)。當(dāng)傳輸完成之后DMREQ 變?yōu)闊o(wú)效。同樣的,雙緩沖配置在這也改善了數(shù)據(jù)的吞吐量。在非同步傳輸中(批量模式和中斷),在數(shù)據(jù)被發(fā)送到主機(jī)之前,緩沖區(qū)需要通過(guò)DMA寫(xiě)操作完全裝滿。唯一的例外是,在DMA傳輸結(jié)束時(shí),EOT_N 接收的信號(hào)將會(huì)停止DMA寫(xiě)操作并且在下一個(gè)IN 標(biāo)志置位時(shí)將緩沖區(qū)的內(nèi)容傳送到主機(jī)。
在同步模式中,本地CPU 和DMA 控制器必須保證它們?cè)谝粋€(gè)USB 幀(1ms )中能夠吞吐的最大信息包的規(guī)模。DMACK_N 的激活將自動(dòng)選擇主端點(diǎn)(端點(diǎn)2 )而不管當(dāng)前選擇的端點(diǎn)。PDIUSBD12的DMA操作可通過(guò)普通的I/O 對(duì)其它端點(diǎn)的存取實(shí)現(xiàn)交叉存取。DMA操作可通過(guò)以下方式終止:復(fù)位DMA使能寄存器位或EOT_N 加上DMACK_N 以及RD_N/WR_N的激活。
PDIUSBD12 支持單地址模式中的DMA傳輸,也可以在DMA 控制器的雙地址模式中工作。在單地址模式中,DMA 通過(guò)DREQ ,DMACK_N,EOT_N,WR_N 和RD_N 控制線實(shí)現(xiàn)傳輸。在雙地址模式中,DMREQ,DMACK_N和EOT_N未用,取而代之的是CS_N,WR_N和RD_N控制信號(hào)。需要遵循 PDIUSBD12的I/O 模式傳輸協(xié)議。在讀周期中對(duì)DMAC 信號(hào)源進(jìn)行訪問(wèn),在寫(xiě)周期對(duì)目標(biāo)進(jìn)行訪問(wèn)。傳輸需要兩個(gè)單獨(dú)的總線周期來(lái)儲(chǔ)存暫存在DMAC 中的數(shù)據(jù)。
4.2.3 DMA方式數(shù)據(jù)傳輸電路
上面詳細(xì)介紹了PDIUSBD12芯片的原理和工作方式,下面將介紹接口電路板工作在DMA方式的原理。該傳輸方式的原理框圖參看圖4-3。
當(dāng)外設(shè)接口1接入要求DMA傳輸?shù)脑O(shè)備,51單片機(jī)向D12發(fā)出DMA傳送的指令,并通過(guò)控制口線使157數(shù)據(jù)選擇電路里74164傳送過(guò)來(lái)的并行數(shù)據(jù)直接與D12的并行接口相連,不在進(jìn)入51單片機(jī),在完成了對(duì)D12 DMA傳送初始化以后,MCU不再控制傳送,而由計(jì)數(shù)器滿8向D12發(fā)送一個(gè)讀信號(hào),使D12 讀取164內(nèi)存儲(chǔ)的8個(gè)字節(jié)的數(shù)據(jù),如此反復(fù),整個(gè)傳輸過(guò)程由硬件完成,不受MCU 的速率限制,從而實(shí)現(xiàn)了DMA傳輸。
此工作方式適用于視頻數(shù)字信號(hào)的傳輸,下面是連接CCD攝像頭的電路示意圖:
CCD_IN為經(jīng)過(guò)A/D轉(zhuǎn)化或二值化處理的視頻數(shù)字信號(hào),CCD_CLK1為脈沖同步信號(hào),CCD_CLK2為行同步信號(hào),CCD_CLK3為場(chǎng)同步信號(hào)。計(jì)數(shù)器對(duì)CCD_CLK1進(jìn)行計(jì)數(shù),滿8個(gè)脈沖向D12的讀端發(fā)一個(gè)低電平,通知D12對(duì)164里面的數(shù)據(jù)進(jìn)行讀取。
4.2.4 數(shù)據(jù)選擇電路
數(shù)據(jù)選擇電路是由兩片74H157搭建而成,數(shù)據(jù)選擇DATA_SEL端連到了51的控制口線上,由51控制D12的并行數(shù)據(jù)I/O口是和51的P0口相連還是和74HC93串并轉(zhuǎn)換輸出的并行數(shù)據(jù)線相連,從而到達(dá)了數(shù)據(jù)選擇的作用。
4.2.5 串并轉(zhuǎn)換及計(jì)數(shù)器電路
電路中74HC164起了串并轉(zhuǎn)換的作用,在DMA工作方式下,通過(guò)接入數(shù)據(jù)同步脈沖,把外設(shè)接口1送入的串行數(shù)據(jù)轉(zhuǎn)化成并行數(shù)據(jù),供D12直接讀取。
計(jì)數(shù)器74HC93負(fù)責(zé)對(duì)CCD_CLK1進(jìn)行計(jì)數(shù),滿8個(gè)脈沖向D12的讀端發(fā)一個(gè)低電平,通知D12對(duì)164里面的數(shù)據(jù)進(jìn)行讀取。
4.2.6 復(fù)位掛起電路
復(fù)位掛起電路
掛起和復(fù)位電路被設(shè)計(jì)在一起,允許器件進(jìn)入掛起模式還可以達(dá)到在USB 規(guī)格Rev.1.1 中所陳述的掛起限制電流。
執(zhí)行此功能以后將強(qiáng)迫MCU 進(jìn)入掉電模式,MCU 振蕩器停止工作。只有硬件復(fù)位才能喚醒MCU工作。從這個(gè)電路中,復(fù)位信號(hào)是連接到復(fù)位電路的,當(dāng)上位PC 機(jī)從掛起狀態(tài)恢復(fù)時(shí),將導(dǎo)致D12 觸發(fā)掛起信號(hào),并通過(guò)上面的電路而產(chǎn)生復(fù)位信號(hào)。
4.2.7 外設(shè)接口2
采用標(biāo)準(zhǔn)的IDE接口連線方式的外設(shè)接口2電路
外設(shè)接口2采用了標(biāo)準(zhǔn)的IDE接口連線方式,可直接與計(jì)算機(jī)硬盤(pán)、光驅(qū)、光盤(pán)刻錄機(jī)等相連,用于傳輸海量數(shù)據(jù),使用方便。
由于采取了51接口擴(kuò)展的方式,通過(guò)對(duì)接口的轉(zhuǎn)換,也可以與其他更多的外設(shè)相連,用途比較廣泛。
4.2.8 其他器件
l 按下按鈕SW1 :復(fù)位或恢復(fù)系統(tǒng)
l LED D1 : USB 接口連接成功指示器:當(dāng)此LED 點(diǎn)亮?xí)r表示USB 主機(jī)和USB 器件已經(jīng)裝配和枚舉。如果它正在閃爍表示數(shù)據(jù)已經(jīng)發(fā)送或接收。
l JP2: 外設(shè)接口1,用于與CCD相連,為4接口的接插件
l CON1: USB CON 用于與USB電纜相聯(lián)。
結(jié)束語(yǔ)
USB為計(jì)算機(jī)外設(shè)輸入輸出提供了新的接口標(biāo)準(zhǔn)。它使設(shè)備具有熱插拔,即插即用,自動(dòng)配置的能力,并標(biāo)準(zhǔn)化設(shè)備連接。USB的級(jí)聯(lián)星型拓?fù)浣Y(jié)構(gòu)大大擴(kuò)充了外設(shè)數(shù)量,使增加,使用外設(shè)更加便捷,快速。而新提出的USB2.0標(biāo)準(zhǔn)更是將數(shù)據(jù)傳輸速率提高到了一個(gè)新的高度,這是具有美好的應(yīng)用前景。