嵌入U(xiǎn)SB控制器的51系列單片機(jī)EZ-USB
本文引用地址:http://m.butianyuan.cn/article/79369.htm
主要介紹嵌入USB控制核的51系列單片機(jī)EZ-USB的特性及傳輸與控制機(jī)理。該內(nèi)核可幫助USB外設(shè)開發(fā)者完成USB協(xié)議中規(guī)定的80%~90%的通信工作,是USB外設(shè)研制者的理想選擇。
文中還對(duì)使用不同的USB芯片組成的應(yīng)用系統(tǒng)作了比較
1 概述
隨著PC的廣泛應(yīng)用,其外設(shè)也越來(lái)越多,打印機(jī)、鼠標(biāo)、掃描儀、游戲桿、音箱……,每個(gè)外設(shè)都需要通過(guò)一個(gè)接口與PC相連。外設(shè)多了,PC的I/O插口自然也就不夠用了。在很多特定的應(yīng)用場(chǎng)合,如工業(yè)數(shù)據(jù)采集等領(lǐng)域,常常用采集板卡來(lái)完成工作,而每一個(gè)板卡自然會(huì)占用一個(gè)PC插槽。PC插槽有限。采集點(diǎn)多了就不夠用。除此之外,在個(gè)人電腦的應(yīng)用中,外圍設(shè)備存在很多問題。這些問題大致可以歸結(jié)到成本、配置以及個(gè)人電腦的連接等幾個(gè)方面,而USB正是為了解決這些問題而出現(xiàn)的一種方案。簡(jiǎn)而言之,USB的出現(xiàn)不僅解決了I/O插口不夠的問題,而且還建立了一條連接和訪問外設(shè)的方法。這些方法可以有效地減少總體成本,而且從終端用戶的角度來(lái)看,可以增加可連接的外設(shè)數(shù)目,簡(jiǎn)化設(shè)備的連接和配置。
通用串行總線USB是由Intel等廠商制定的連接計(jì)算機(jī)與具有USB接口的多種外設(shè)之間的串行總線。其拓?fù)浣Y(jié)構(gòu)如圖1所示。
圖1 USB的層次拓?fù)鋱D
USB的特性有:
成本低。為了把外設(shè)連接到PC上,USB提供了一種低成本的解決方案。
熱插拔。設(shè)備連接后由USB自動(dòng)檢測(cè),并由軟件自動(dòng)配置,完成后可立即使用,無(wú)須用戶干涉。
單一的連接器類型。USB定義了一種簡(jiǎn)單的連接器,可以用來(lái)連接任何一個(gè)USB設(shè)備。多個(gè)連接器可以通過(guò)USB集線器連接。
每個(gè)USB總線支持127個(gè)設(shè)備的連接。
USB支持三種設(shè)備傳輸速率:1.5 Mb/s(低速設(shè)備)、12 Mb/s(中速設(shè)備)和480 Mb/s(高速設(shè)備)。
外設(shè)能夠直接由USB總線進(jìn)行供電。
不需要系統(tǒng)資源(如內(nèi)存、I/O地址空間和中斷請(qǐng)求線路)。
USB事務(wù)處理包括錯(cuò)誤檢測(cè)機(jī)制,它們用以確保數(shù)據(jù)無(wú)錯(cuò)誤發(fā)送。
電源保護(hù)。如果連續(xù)3 ms沒有總線活動(dòng),USB將自動(dòng)進(jìn)入掛起狀態(tài)。
支持四種類型的傳輸方式:塊傳輸、控制傳輸、中斷傳輸和同步傳輸。
2 通用USB控制系統(tǒng)的組成結(jié)構(gòu)
在每一個(gè)USB設(shè)備中都有一個(gè)串行接口引擎(SIE)。SIE與USB數(shù)據(jù)線的D+和D-兩個(gè)引腳相連,與USB設(shè)備進(jìn)行字節(jié)傳送。圖2表示一次USB塊傳輸,時(shí)間順序從左到右。SIE對(duì)PID信息包進(jìn)行解碼,并通過(guò)傳送的CRC位對(duì)數(shù)據(jù)進(jìn)行錯(cuò)誤檢測(cè),然后,將有效數(shù)據(jù)送到USB設(shè)備。如果SIE檢測(cè)到一個(gè)出錯(cuò)的數(shù)據(jù),它并不是發(fā)出一個(gè)握手信號(hào),而是自動(dòng)地不進(jìn)行響應(yīng),并告訴主機(jī)延時(shí)重發(fā)。
圖2 SIE的功能
由于USB被設(shè)計(jì)成可以用簡(jiǎn)便有效的方法來(lái)與多種類型的外設(shè)通信,沒有現(xiàn)有接口的局限性和缺點(diǎn),這樣,導(dǎo)致了對(duì)USB接口的設(shè)計(jì)和編程更加復(fù)雜。為了降低設(shè)計(jì)者的開發(fā)難度,使用專用的USB控制器已成為研制人員的首選方案。
USB協(xié)議的復(fù)雜性意味著USB外設(shè)必須具備智能。USB控制器必須知道如何檢測(cè)并對(duì)USB端口的事件做出反應(yīng)。一般的做法是:USB控制器只處理USB通信,由一個(gè)外部的微控制器(MCU)來(lái)管理USB控制器的寄存器、設(shè)備描述符的獲取和數(shù)據(jù)包的交換等,如圖3所示。
圖3 通用USB設(shè)備的組成結(jié)構(gòu)
表1所示為可與一般微控制器連接的USB控制器。
表1可與一般微控制器連接的USB控制器
USB控制器使用串行口或并行口與MCU連接。這樣,外部接口可能比USB最大速度要慢,使得芯片只適合傳送間歇數(shù)據(jù)。這樣設(shè)計(jì)的好處是系統(tǒng)組成靈活,可根據(jù)不同的系統(tǒng)需求,搭配不同的MCU,使其具有很高的性能價(jià)格比;但同時(shí)也加大了編程設(shè)計(jì)人員的開發(fā)難度,延長(zhǎng)了產(chǎn)品的開發(fā)周期。
另一種可行的方法是使用嵌入MCU的USB控制器。這樣,CPU只需要訪問一系列寄存器和存儲(chǔ)器,便可實(shí)現(xiàn)USB口的數(shù)據(jù)傳輸。從而簡(jiǎn)化了程序的設(shè)計(jì),并且許多供應(yīng)商還提供許多范例電路和測(cè)試代碼,使設(shè)計(jì)者從復(fù)雜的協(xié)議解釋中得到解脫。現(xiàn)在,許多芯片制造商開始生產(chǎn)一些基于通用MCU的USB控制器,采用研制人員所熟知的指令集,大大簡(jiǎn)化了編程的難度。如基于8051結(jié)構(gòu)的USB控制器有:Intel公司的8X930A、8X931A;CYPRESS公司的EZ-USB等。此外,還有基于MITSUBISHI 740/7600/M16C的USB芯片;基于MOTORORA HC05系列的USB芯片等。受篇幅所限,本文僅介紹EZ-USB 2100系列單片機(jī)。
3 EZ-USB組成結(jié)構(gòu)及特性
美國(guó)CYPRESS公司是一家從事USB接口芯片和USB單片機(jī)開發(fā)和生產(chǎn)的公司。CYPRESS最新推出的帶智能USB接口的單片機(jī)EZ-USB,極大地降低了USB外設(shè)的開發(fā)難度,為PC外設(shè)的制造商提供了一個(gè)性能優(yōu)良、價(jià)格較低的設(shè)計(jì)方案。
EZ-USB有多個(gè)系列的產(chǎn)品,根據(jù)不同的速率需求,可滿足不同的系統(tǒng)要求和價(jià)格。CYPRESS提供三個(gè)系列的EZ-USB芯片,如表2和表3所列。
表2 CYPRESS的EZ-USB系列產(chǎn)品
表3 EZ-USB2100系列產(chǎn)品
3.1 EZ-USB芯片組成結(jié)構(gòu)
EZ-USB芯片將USB接口的控制核整合到單片機(jī)集成電路中,如圖4所示。集成的USB收發(fā)模塊與USB 總線的D+和D-引腳相連。SIE進(jìn)行串行數(shù)據(jù)譯碼和錯(cuò)誤更正,以及其他USB所要求的信號(hào)級(jí)操作等,最后,再與USB收發(fā)模塊接口進(jìn)行數(shù)據(jù)字節(jié)的傳輸。
圖4 EZ-USB的組成框圖
內(nèi)部的微處理器在標(biāo)準(zhǔn)8051上縮短了執(zhí)行時(shí)間并增加了新的特性。它用內(nèi)部SRAM存儲(chǔ)程序和數(shù)據(jù),使EZ-USB 系統(tǒng)具有軟配置的特性。USB主機(jī)經(jīng)USB總線將8051的程序代碼和描述符裝入SRAM中,然后,EZ-USB芯片用已下裝程序中定義的外設(shè)特性進(jìn)行重新連接,這個(gè)過(guò)程也叫再枚舉。
EZ-USB系列使用了強(qiáng)大的SIE/USB接口(稱為USB內(nèi)核)。這個(gè)具有強(qiáng)大功能的內(nèi)核可以自動(dòng)完成USB協(xié)議的轉(zhuǎn)換,簡(jiǎn)化8051的代碼。
EZ-USB 芯片在3.3 V電壓下就可以運(yùn)行,簡(jiǎn)化了USB設(shè)備總線電壓的設(shè)計(jì)。
3.2 EZ-USB特性
?、?改進(jìn)的8051內(nèi)核。性能可達(dá)到標(biāo)準(zhǔn)8051的5~10倍,與標(biāo)準(zhǔn)8051的指令完全兼容。
?、?高度集成。傳統(tǒng)USB外設(shè)的硬件設(shè)計(jì)通常包括非易失性存儲(chǔ)器(如EPROM、EEPROM、FLASH ROM)、微處理器、RAM、SIE(串行接口引擎)和DMA等。EZ-USB將上述多個(gè)模塊集成在一個(gè)芯片中,從而減少了各芯片接口部分時(shí)序配合時(shí)的麻煩。
③ USB 內(nèi)核。EZ-USB可以代替USB外設(shè)開發(fā)者完成USB協(xié)議中規(guī)定的80 %~90 %的通信工作,使得開發(fā)者不需要深入了解USB的低級(jí)協(xié)議即可順利地開發(fā)出所需要的USB外設(shè)。EZ-USB系列芯片接收全部USB 的吞吐量。這種采用EZ-USB的設(shè)計(jì),不受端點(diǎn)數(shù)目、緩沖區(qū)大小及傳輸速度的限制。
④ 軟配置。外設(shè)未通過(guò)USB接口連接到PC機(jī)之前,外設(shè)上的固件存儲(chǔ)在PC上;一旦外設(shè)接到PC機(jī)上,PC先詢問該外設(shè)是"誰(shuí)"(即讀設(shè)備描述符),然后,將該外設(shè)的固件下載到EZ-USB的RAM中并執(zhí)行,這個(gè)過(guò)程叫作再枚舉。這個(gè)特性給USB外設(shè)開發(fā)者帶來(lái)許多方便。如開發(fā)過(guò)程中,當(dāng)固件需要修改時(shí),可以在PC機(jī)上修改好以后,下載到EZ-USB,從而省去了編程芯片的麻煩。這種基于RAM的軟配置方法,可以允許無(wú)限的配置和升級(jí)。
?、?易用的軟件開發(fā)工具。固件可獨(dú)立于驅(qū)動(dòng)程序被測(cè)試。驅(qū)動(dòng)程序和固件的開發(fā)與調(diào)試相互獨(dú)立,可加快開發(fā)的速度。
4 EZ-USB微處理器
EZ-USB微處理器是一個(gè)改進(jìn)的8051內(nèi)核,使用標(biāo)準(zhǔn)8051指令系統(tǒng),其指令執(zhí)行速度比標(biāo)準(zhǔn)8051快,原因有兩點(diǎn):
?、?空閑( wasted)的總線周期被消去。一個(gè)總線周期僅包含4個(gè)時(shí)鐘周期,而標(biāo)準(zhǔn)8051則為12個(gè)時(shí)鐘周期。
?、?8051的運(yùn)行速度為24 MHz。
除了速度的提高,改進(jìn)的8051內(nèi)核還有以下幾處結(jié)構(gòu)上的改進(jìn):
?、?第二個(gè)數(shù)據(jù)指針,可用于存儲(chǔ)器塊之間的傳輸;
?、?第二個(gè)UART;
③ 第三個(gè)16位計(jì)數(shù)器/定時(shí)器(TIMER2);
?、?與非多路復(fù)用16位地址總線的高速存儲(chǔ)器直接接口;
⑤ 增加了7個(gè)中斷源(INT2~INT5、PFI、T2和UART1);
?、?可變的MOVX執(zhí)行時(shí)間可適應(yīng)高/低速的RAM外設(shè);
?、?256字節(jié)的內(nèi)部寄存器RAM,8K字節(jié)的程序/數(shù)據(jù)復(fù)合SRAM;
⑧ 3.3 V工作電壓。
EZ-USB 集成芯片在8051的基礎(chǔ)上又有其他改進(jìn):
?、?快速外部數(shù)據(jù)塊傳輸(指針自動(dòng)增量,快速傳輸模式);
?、?USB中斷向量;
③ CONTROL傳輸?shù)腟ETUP和DATA部分有各自的緩沖器。
pid控制器相關(guān)文章:pid控制器原理
三維掃描儀相關(guān)文章:三維掃描儀原理
評(píng)論