基于PDIUSBD12芯片的USB接口設(shè)計
關(guān)鍵詞:通用串行總線;PDIUSBD12;接口;MCU?
隨著計算機技術(shù)和信息技術(shù)的飛速發(fā)展,計算機外設(shè)種類的增多與有限的主板插槽和端口之間的矛盾日益突出,由Intel,Microsoft等公司聯(lián)合制定的總線接口規(guī)范即通用串行總線(Universal Serial Bus, USB)的出現(xiàn)[1],為解決這一矛盾提出了最好的解決方案。USB具有以下特點:
(1)有較高的傳輸速率USB 1.1支持全速和低速2種方式。全速速率為12 Mb/s,低速速率為1.5 Mb/s;?USB 2.0除支持USB 1.1的2種速度方式外,還增加了速率可達480 Mb/s的高速方式。
(2)他的使用方便靈活[2]USB支持即插即用和熱插拔,他允許在任何時候連接和斷開外設(shè),當外設(shè)被連接時,系統(tǒng)會自動檢測到外設(shè)并準備使用。
(3)他易于擴展通過根集線器可攜帶127個設(shè)備[3],真正實現(xiàn)多個外設(shè)共用一個接口。
此外,USB還有可靠性高、成本低、功耗小等優(yōu)點而倍受歡迎。
?目前供于開發(fā)USB設(shè)備的芯片很多,但主要有2類:一類是帶USB接口的微控制器(MCU),這些微控制器有些是從底層專用于USB控制的,比如Cypress半導(dǎo)體公司的CY7C63xxx(低速)、CY7C64013(全速),這類微控制器有自己的系統(tǒng)結(jié)構(gòu)和指令;有些微控制器只是增加了USB接口的通用芯片(基于8051內(nèi)核),比如Intel公司的8x931,8x930,Cypress半導(dǎo)體公司的EZUSB;另一類是純粹的USB接口芯片,他需要一個外部微控制器控制,比如朗訊公司的USS820/825,National半導(dǎo)體公司的USBN9602,NetChip公司的NET2888,Philips公司的PDIUSBD11(I2C)和PDIUSBD12(并行接口)。因此在USB設(shè)備開發(fā)之前必須根據(jù)具體要求選用合適的USB接口芯片,以降低開發(fā)成本、減少開發(fā)時間。本文以PDIUSBD12為USB接口芯片,以ADuC812為控制器完成了USB接口的設(shè)計。
1PDIUSBD12芯片和ADuC812芯片簡介
1.1PDIUSBD12 簡介
?PDIUSBD12是Philips公司推出的一款特點突出的USB接口芯片。該芯片使用8位并行數(shù)據(jù)線連接到MCU,1位地址線用來區(qū)分寫命令或讀寫數(shù)據(jù),他支持3個USB端點,1個端點能保存128 B,另2個能保存256 B。
?PDIUSBD12完全遵從USB 1.1協(xié)議,他內(nèi)部集成有串行接口引擎(SIE)、320 b FIFO存儲器、收發(fā)器(Transceiver)和電壓調(diào)節(jié)器,其原理框圖如圖1所示。還有可編程的時鐘輸出和狀態(tài)LED輸出(GoodLinkTM),可控制的軟件連接(SoftConnectTM)以及內(nèi)部上電復(fù)位和低電壓復(fù)位電路。有2種電源供電方式:內(nèi)部3.3±0.3 V電源和外部電源(電壓范圍3.6~5.5 V)。溫度范圍為-40℃~+85 ℃,采用28腳SSOP封裝。
?
對外部微控制器沒有任何限制,開發(fā)者可以選用自己熟悉的MCU來控制。多種中斷方式方便于塊傳輸(Bulk)和同步傳輸(Isochronous),使用塊傳輸方式時的速度可達1 Mb/s,同步傳輸?shù)乃俣瓤蛇_1 Mb/s。他適合大多數(shù)USB設(shè)備類的設(shè)計:圖像設(shè)備類、大容量存儲設(shè)備類、通信設(shè)備類、打印設(shè)備類、人機接口設(shè)備類等。
1.2ADuC812簡介
?ADuC812是美國AD公司首先投入市場的微處理器,其內(nèi)部集成了完整的8052內(nèi)核、1個8通道的12位ADC、2個12位的電壓輸出DAC,除了8052的256 b RAM外,還有640 b Flash數(shù)據(jù)存儲器,8 kb Flash程序存儲器[4]。
?另外該MCU還有看門狗定時器、電源監(jiān)視器、ADC與數(shù)據(jù)存儲器之間的DMA功能,以及為多處理器接口和I/O擴展提供了32條可編程的I/O線、I2C兼容的SPI和標準UART串行I/O等。他采用52腳PQF封裝,大小約為1 cm2。
?同時,AD公司還為ADuC812的開發(fā)提供了完整的硬件調(diào)試工具和開發(fā)仿真軟件,使得開發(fā)變得簡單方便。因此,ADuC812由于體積小、功耗低、性價比高而極具誘人的應(yīng)用前景。
2硬件電路設(shè)計
?由PDIUSBD12和ADuC812構(gòu)成的USB接口電路如圖2所示。PDIUSBD12的8位并行數(shù)據(jù)接入ADuC812 的P0口,地址線A15(P2?7)作為PDIUSBD12的片選,地址線A14(P2.6)作為PDIUSBD12的命令或數(shù)據(jù)的選擇線。在片選信號有效的前提下(P2.7=0),當P2.6=1時,給PDIUSBD12發(fā)命令;當P2.6=0時,給PDIUSBD12寫數(shù)據(jù)或從PDIUSBD12的 Buffer中讀數(shù)據(jù);因此,地址0x7FFF發(fā)命令,地址0x3FFF讀寫數(shù)據(jù)。PDIUSBD12與ADuC812的數(shù)據(jù)交換采用中斷方式(外部中斷0)。他的一個輸出(GL-N)接LED對其狀態(tài)進行監(jiān)控,這個LED在USB被連接時會發(fā)光,在進行數(shù)據(jù)傳輸時會閃爍,LED常亮或一直不亮說明USB接口有問題。
?USB設(shè)備通過4線電纜接入主機或USB Hub,這4線分別是:VCC(總線電源),GND(地線),D+和D-(數(shù)據(jù)線)。主機通過D+和D-上的電壓變化來檢測到設(shè)備的狀態(tài),當沒有設(shè)備連接到USB端口時,?D+?和D-線上的下拉電阻就將2條數(shù)據(jù)線拉到近地,當檢測到任一條數(shù)據(jù)線電壓接近VCC?,而其他保持近地電壓,那么主機就知道該設(shè)備已經(jīng)準備好了。
?
主機通過檢測是哪一條數(shù)據(jù)線電壓變高來確定設(shè)備是全速或低速,當D+數(shù)據(jù)線高時,就為全速;當D-數(shù)據(jù)線低時,就為低速。PDIUSBBD12的全速模式通過軟連接(SoftConnectTM)在D+上接1個1.5kΩ的上拉電阻。
3固件設(shè)計
?當設(shè)備連接到主機以后,主機通過給PDIUSBD12的端點0發(fā)送包含標準USB請求的控制傳輸(即Setup包),PDIUSBD12產(chǎn)生一個中斷給MCU(INT0),MCU通過讀PDIUSBD12的中斷寄存器和最后一次傳輸狀態(tài)寄存器來對每一個請求作出響應(yīng),并通過PDIUSBD12的端點0回送請求信息。主機從返回的信息中讀取描述數(shù)據(jù),分配和載入一個設(shè)備驅(qū)動程序并對設(shè)備進行配置。設(shè)備被配置好后,就可以使用配置中支持的端點來傳輸數(shù)據(jù)。這一部分工作由MCU來控制完成,并且該控制程序需要固化在ADuC812的內(nèi)部ROM中,稱之為固件(firmware)。
PDIUSBD12的端點0有3個狀態(tài),其變化關(guān)系如圖3所示,固件程序必須利用這3種狀態(tài)關(guān)系來正確地處理控制傳輸。把主機通過PDIUSBD12的端點0給設(shè)備發(fā)USB請求設(shè)為OUTs,通過端點0接收數(shù)據(jù)設(shè)為INs。MCU處理來自主機的Setup包(Control Out)的軟件流程圖如圖4所示,MCU通過PDIUSBD12的控制端點0給主機發(fā)送描述符數(shù)據(jù)(Control In)的軟件流程圖如圖5所示。PDIUSBD12的描述符數(shù)據(jù)必須嚴格遵循USB 1.1協(xié)議第九章(Chap9)的規(guī)定,描述符數(shù)據(jù)包括設(shè)備描述符、配置描述符、接口描述符、端點描述符、字符串描述符。
?
完成PDIUSBD12的固件(Firmware)程序后,在USB設(shè)備驅(qū)動程序的開發(fā)中筆者使用了Jungo公司的WinDriver 5.03,應(yīng)用程序的開發(fā)使用的是VC 6.0。
4結(jié)語
?該USB接口適合于高速數(shù)據(jù)采集系統(tǒng)與主機進行數(shù)據(jù)通信,同時,他也為便攜式系統(tǒng)提供了方便、快捷和可靠的接口解決方案。目前,USB已經(jīng)廣泛地應(yīng)用在PC的外設(shè)上,特別是USB 2.0協(xié)議推出后,數(shù)據(jù)傳輸能力和速度大大提高,使得USB數(shù)碼相機、數(shù)碼攝像機能在短時間內(nèi)完成大容量的圖像傳輸。此外,USB的突出特點使得他必將在更廣闊的領(lǐng)域得到應(yīng)用。
參考文獻
[1]Universal erial Bus specification compaq. Intel,Microsoft,NEC Revision 1.1 September 23,1998
[2]Jan Axelson(美).USB大全[M].陳逸,等譯.北京:中國電力出版社, 2001
[3]Don Anderson(美).USB系統(tǒng)體系[M].精英科技譯?北京:中國電力出版社,2001
[4]劉書明,馮小平.數(shù)據(jù)采集系統(tǒng)芯片AduC812原理與應(yīng)用[M].西安:西安電子科技大學出版社, 2000