USB接口技術(shù)及如何實(shí)現(xiàn)它的電路設(shè)計(jì)?
USB是目前電子產(chǎn)品最通用的一種接口,USB電路的設(shè)計(jì)包含了眾多有趣的點(diǎn)。
比如有的芯片直接集成USB控制器,并且可以支持USBOTG功能。我們可以根據(jù)產(chǎn)品的實(shí)際需求將USB或者USBOTG接口電路設(shè)計(jì)成采用MicroUSBAB型座子或者USB-TYPE-C接口。更復(fù)雜一點(diǎn),USB電路通常又可以作為供電輸入,那又可以設(shè)計(jì)成根據(jù)接入的設(shè)備自動(dòng)切換電源狀態(tài)。
USB的英文全稱為Universal Serial Bus,中文含義是通用串行總線,它是一種快速的,雙向的,同步傳輸?shù)牧畠r(jià)的并可以進(jìn)行熱拔插的串行接口。USB接口使用方便,它可以連接多個(gè)不同的設(shè)備,而過去的串口和并口只能接一個(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è)備等。對于廣大的工程設(shè)計(jì)人員來說,USB是設(shè)計(jì)外設(shè)接口時(shí)理想的總線。
對于USB接口芯片,通常分為普通和DMA(直接存儲(chǔ)器存取)兩種工作模式。相對于普通模式,DMA數(shù)據(jù)傳輸模式傳輸速率更快,更適合于視頻數(shù)字信號等高速、實(shí)時(shí)信號的傳送。但遺憾的是,國內(nèi)市場上提供的各種USB接口電路板大部分僅工作在普通模式,缺少對DMA工作模式的支持,不能直接用于象CCD數(shù)字?jǐn)z像機(jī)USB接口這樣的需要工作在DMA模式下的設(shè)計(jì)開發(fā)。為了解決這個(gè)問題,我們對USB的原理進(jìn)行了研究,嘗試著利用51單片機(jī)結(jié)合PHILIPS公司的PDIUSBD12帶并行總線的USB接口器件設(shè)計(jì)帶DMA工作模式的可供視頻信號傳輸?shù)亩喙δ躑SB接口電路,現(xiàn)已設(shè)計(jì)出了完整的硬件電路。
1、USB概述
由于多媒體技術(shù)的發(fā)展對外設(shè)與主機(jī)之間的數(shù)據(jù)傳輸率有了更高的需求,因此,USB總線技術(shù)應(yīng)運(yùn)而生。USB(Universal Serial Bus)翻譯為中文就是通用串行總線,是由Conpaq、DEC、IBM、Inter、Microsoft、NEC和Northen Telecom等公司為簡化PC與外設(shè)之間的互連而共同研究開發(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)都增加了對 USB的支持。
USB的主要優(yōu)點(diǎn):
l 使用方便。連接外設(shè)不必再打開機(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)器,鍵盤,鼠標(biāo),光驅(qū),游戲手柄,軟驅(qū),掃描儀,音箱等。USB總線標(biāo)準(zhǔn)由1.1版升級到2.0版后,傳輸率由12Mbps增加到了480Mbps,更換介質(zhì)后連接距離由原來的5米增加到近百米。基于這點(diǎn),USB也可以做生產(chǎn)ISDN以及基于視頻的產(chǎn)品。USB 總線結(jié)構(gòu)簡單,信號定義僅由2條電源線,2條信號線組成。
通用串行總線(Universal Serial Bus,USB)憑借其價(jià)格低廉、使用簡單、協(xié)議靈活、接口標(biāo)準(zhǔn)化和易于端口擴(kuò)展等優(yōu)點(diǎn),迅速占領(lǐng)了計(jì)算機(jī)外設(shè)接口領(lǐng)域的統(tǒng)治地位,隨著USB技術(shù)的廣泛應(yīng)用,它在數(shù)據(jù)通信方面發(fā)揮了巨大的作用,而且隨著IP核的日益豐富,如何提高IP核的重用性,將不同的IP核有效的互連起來,縮短設(shè)計(jì)周期成了IC設(shè)計(jì)領(lǐng)域的研究熱點(diǎn)。因此本文設(shè)計(jì)實(shí)現(xiàn)了MCU&USB設(shè)備控制器IP核。該設(shè)計(jì)綜合了對設(shè)計(jì)者兩方面能力的要求,ASIC體系設(shè)計(jì)的能力和通信協(xié)議理解分析的能力,除具有較強(qiáng)的理論研究意義,也具有較高的實(shí)踐價(jià)值。本文首先簡單分析了通用串行總線USB(Universal Serial Bus)的產(chǎn)生、發(fā)展和USB設(shè)備國內(nèi)外研究狀況以及MCU(Microprocessor Control Unit)的國內(nèi)外發(fā)展?fàn)顩r。鑒于目前單片機(jī)技術(shù)火的一塌糊涂!越來越多的朋友加入了學(xué)習(xí)單片機(jī)的行列中!還有更多的朋友正在準(zhǔn)備加入到學(xué)習(xí)單片機(jī)行列中。很多初學(xué)者在購買了本站的硬件學(xué)習(xí)板后,在短期內(nèi)就掌握了自主編寫實(shí)用控制程序的能力,正所謂只要功夫深,鐵杵磨成針。
這里要先說一下單片機(jī)的含義,單片機(jī)就是一種微型的計(jì)算機(jī),它的硬件等級不高,程序存儲(chǔ)器比較小,無法和我們個(gè)人電腦中的硬盤相比,但是他的整體成本很低,體積也很小,這就給電子工程師提供了一個(gè)低成本開發(fā)智能控制設(shè)備的可能。另外就是它的可塑性是很強(qiáng)的,只要把程序存儲(chǔ)器中寫入不同的程序,它就會(huì)根據(jù)不同的程序來完成不同的工作。
比如我們要控制洗衣機(jī)的完成一個(gè)智能控制洗衣流程(不采用簡單的機(jī)械定時(shí)器),從成本角度講,雖然個(gè)人電腦性能強(qiáng)大,但是不能采用,因?yàn)橐慌_(tái)個(gè)人電腦的體積成本都太過了,此時(shí)用“單片機(jī)+順序控制程序+接口電路+執(zhí)行電路”就是最好的解決方案了,這等于在洗衣現(xiàn)場有一個(gè)小小的電腦在控制著整個(gè)洗衣過程,單片機(jī)是現(xiàn)代全自動(dòng)洗衣機(jī)的核心部分,它的應(yīng)用大大減低了人的勞動(dòng)強(qiáng)度。從這個(gè)簡單的例子中,我們就可以看到單片機(jī)的實(shí)際意義了!小到溫度智能控制,中到通訊控制,大到生產(chǎn)流程控制,都可以見到它的身影。應(yīng)用范圍絕對廣泛,只要編寫好不同的程序。單片機(jī)就可以完成不同的控制工作。這樣,我們通過編寫不同的控制程序就可以實(shí)現(xiàn)器件的萬能化!
大致可以通過這些步驟來完成實(shí)驗(yàn)及開發(fā)工作:
第一步:通過軟件編譯平臺(tái)開始寫我們的試驗(yàn)程序,這就好比寫文章要有筆和紙一樣,最常用的是KEIL軟件平臺(tái),比如點(diǎn)亮一個(gè)發(fā)光管,點(diǎn)亮多個(gè)發(fā)光管,點(diǎn)亮流水燈,驅(qū)動(dòng)繼電器,驅(qū)動(dòng)數(shù)碼管......,學(xué)用寫源程序有2個(gè)重點(diǎn),重點(diǎn)1是學(xué)會(huì)在KEIL中寫源程序,就和用記事本軟件編輯文字一樣,重點(diǎn)2是學(xué)會(huì)把寫好的源程序通過KEIL軟件平臺(tái)編譯成為單片機(jī)可以讀懂的由0和1構(gòu)成的機(jī)器碼,為了簡化,通常是生成16進(jìn)制的*.HEX或者*.BIN文件,不過本質(zhì)還是0和1。在這里,源程序我們能讀懂,但是單片機(jī)不能讀懂,所以需要把源程序通過編譯器編譯成最終的*.HEX或者*.BIN文件。在這里,編譯平臺(tái)充當(dāng)?shù)氖且粋€(gè)語言翻譯官的角色!
第二步:制作或者購買一個(gè)編程器(也有人叫它為燒寫器)。
注意,編程器的作用是把我們編譯好的機(jī)器碼文件寫入到單片機(jī)的程序存儲(chǔ)器中,這個(gè)設(shè)備的作用就好比我們給一個(gè)沒有記憶的人灌輸記憶。通過程序被寫入,單片機(jī)中就被灌輸了我們的設(shè)計(jì)思想或者是某種控制流程。編程器和單片機(jī)可以支持的文件是16進(jìn)制的,文件屬性一般為*.HEX或者*.BIN,它們的本質(zhì)是二進(jìn)制,也就是1和0。編程器只是一種寫入設(shè)備,而源程序還是要由我們來編寫和創(chuàng)造的!
第三步:制作或者購買一個(gè)實(shí)驗(yàn)板,它的作用是完成最終的硬件驅(qū)動(dòng)效果驗(yàn)證。這就好比把一個(gè)已經(jīng)灌輸了我們設(shè)計(jì)思想的單片機(jī)連上軀體和四肢,看看這個(gè)完整的,已經(jīng)具備了“頭腦+思想+四肢”的設(shè)備是不是能真的動(dòng)起來,動(dòng)起來的時(shí)候看看它的動(dòng)作是不是和我們設(shè)計(jì)的程序完全一致?如果不一致就說明我們給他設(shè)計(jì)的“思想”可能存在問題!此時(shí)就需要用編程器中的“擦除”操作給單片機(jī)“洗腦”,并且修改程序,然后再次寫入和看驗(yàn)證結(jié)果。
比如我們用軟件寫了一個(gè)流水燈程序,通過什么來驗(yàn)證它是否可以真正的驅(qū)動(dòng)硬件呢?答案就是實(shí)驗(yàn)板。
也許有人會(huì)問,為什么沒有提到仿真器?因?yàn)橐郧皩I(yè)化的仿真器太貴了!大家一般都承受不了!
仿真器是做什么的呢?它的作用是調(diào)試我們的程序用的,比如我們的程序有100行,假設(shè)代表了10個(gè)驅(qū)動(dòng)硬件的動(dòng)作,這時(shí)候如果有仿真器的話,我們可以讓這10個(gè)動(dòng)作一個(gè)個(gè)的執(zhí)行,同時(shí)能夠觀察到在執(zhí)行這10個(gè)動(dòng)作的過程中,單片機(jī)內(nèi)部的各單元狀態(tài)是什么樣的!也就是可以細(xì)致的分析一下整個(gè)程序在硬件中的具體工作過程。這樣我們就可以了解程序中是不是有問題存在,所以叫做仿真!
仿真分為硬件仿真和軟件仿真二種,軟件仿真是完全虛擬的,比較抽象,初學(xué)者理解起來比較困難。硬件仿真方面,如果硬件仿真器連接了目標(biāo)設(shè)備,就可以看到驅(qū)動(dòng)硬件的效果,還是比較實(shí)用的。
看了這么多的文字介紹,大家還是可以來這里看一下上面所說的到底是怎么樣的東西,我們應(yīng)該如何來使用它們,給大家一個(gè)感性的認(rèn)識。