《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > C8051F320在USB設(shè)計(jì)中的應(yīng)用
C8051F320在USB設(shè)計(jì)中的應(yīng)用
摘要: C8051F320是Cygnal公司推出的一款新型USB微控制器芯片,。該器件具有較快的處理速度和較大的存儲(chǔ)容量,并且具有在系統(tǒng)可編程的功能,,是USB接口設(shè)計(jì)的理想選擇,。文中介紹了C8051F320的特點(diǎn)和引腳功能,,并以一個(gè)USB-CAN接口轉(zhuǎn)換模塊為例介紹了USB接口的軟硬件設(shè)計(jì)。
關(guān)鍵詞: 51單片機(jī) C8051F320 USB
Abstract:
Key words :

隨著USB技術(shù)的快速發(fā)展以及USB外設(shè)在越來越多場(chǎng)合的廣泛應(yīng)用,,支持USB接口技術(shù)的芯片也越來越多,。對(duì)于USB接口的設(shè)計(jì),如非擴(kuò)展之用,,選用帶有MCU的USB控制器當(dāng)然是設(shè)計(jì)師們的首選,,因?yàn)檫@樣不僅可以大大簡(jiǎn)化硬件電路、減小外設(shè)體積,,而且還可以提高產(chǎn)品的可靠性,。文中介紹的C8051F320就是順應(yīng)這種需求而推出的一種新型USB控制器芯片。

1 C8051F320的主要特點(diǎn)

C8051F320是Cygnal公司推出的一款具有全速USB功能的混合信號(hào)flash微控制器芯片,,該器件內(nèi)部集成有2304 Byte RAM和16k Byte的flash存儲(chǔ)器,。實(shí)際上,,C8051F320是一個(gè)完整的小型片上系統(tǒng)(SoC)。由于利用該芯片進(jìn)行設(shè)計(jì)時(shí)可以不需要任何外部元件(包括電阻和晶振),,因而是小型USB應(yīng)用的理想選擇,。與其它同類產(chǎn)品相比,C8051F320主要具有如下一些特點(diǎn):

●全速的USB 2.0功能控制器,;

●內(nèi)部集成了時(shí)鐘恢復(fù)電路,,且不需要外接晶體振蕩器;

●可支持8?jìng)€(gè)USB端點(diǎn),;

●帶有1k字節(jié)的USB緩沖存儲(chǔ)器,;

●內(nèi)部集成了USB接口的數(shù)據(jù)收發(fā)器,設(shè)計(jì)中無需外部上拉電阻,;

●具有高速增強(qiáng)型8051 MCU內(nèi)核,,該MCU內(nèi)核采用流水線式指令結(jié)構(gòu),70%的指令執(zhí)行時(shí)間為一個(gè)或兩個(gè)系統(tǒng)時(shí)鐘周期,,處理速度可達(dá)25MIPS(時(shí)鐘頻率為25MHz時(shí)),。

此外,C8051F320還有許多其它特性,,如支持在系統(tǒng)編程(ISP),帶有可編程的數(shù)字I/O和數(shù)字交叉開關(guān),,可提供全速,、非侵入式的在系統(tǒng)片內(nèi)調(diào)試電路等。

2 C8051F320的引腳功能

C8051F320的引腳排列如圖1所示,。主要引腳的功能如下:

D+,、D-:USB電纜的USB D+和USB D-連接端;

VDD:2.7~3.6V片上電源輸入端或片內(nèi)電壓調(diào)節(jié)器的3.3V輸出端,;

REGIN:片內(nèi)電壓調(diào)節(jié)器的5V輸入端,;

VBUS:USB電纜VBUS引線的感應(yīng)輸入端,當(dāng)該腳出現(xiàn)5V高電平信號(hào)時(shí),,表示該設(shè)備已經(jīng)和主機(jī)連接好,;

RST/C2CK:多功能引腳,內(nèi)部上電復(fù)位POR(Power On Reset)和VDD監(jiān)視器的漏極開路輸出,,使該腳保持低電平15μs以上可對(duì)系統(tǒng)進(jìn)行一次復(fù)位,。此外,該腳還可作為C2接口的時(shí)鐘信號(hào)輸入端,;

P3.0/C2D:多功能引腳,,可作為I/O端口或C2接口的雙向數(shù)據(jù)信號(hào)傳輸端口。

3 應(yīng)用舉例

筆者以C8051F320為核心設(shè)計(jì)了一個(gè)USB和CAN總線的接口轉(zhuǎn)換模塊,,運(yùn)用該接口轉(zhuǎn)換模塊可以方便地把具有USB接口的測(cè)控設(shè)備連接到一個(gè)CAN總線測(cè)控網(wǎng)絡(luò)中,,以對(duì)系統(tǒng)的運(yùn)行狀況進(jìn)行系統(tǒng)和整體的測(cè)試和分析,。在該接口轉(zhuǎn)換模塊的設(shè)計(jì)中,最主要的工作就是USB接口部分的設(shè)計(jì),,包括硬件電路和固件程序的設(shè)計(jì),。

3.1 USB 接口硬件電路設(shè)計(jì)

由于C8051F320微控制器具有簡(jiǎn)單易用的特點(diǎn),因此,,用C8051F320進(jìn)行USB接口的硬件設(shè)計(jì)也顯得十分簡(jiǎn)單,,主要包括兩部分的內(nèi)容,一是接口轉(zhuǎn)換模塊供電方式的選擇,,二是USB引腳的連接,,圖2是其USB接口電路圖。

由于整個(gè)模塊的功率估計(jì)在3W左右,,而USB總線的供電量只適合小功率模塊的供電,,最大也只有500mA,因此不能滿足整個(gè)模塊的安全供電,,所以模塊選擇自供電模式,,圖2所示的整個(gè)模塊(包括C8051F320和模塊中所有其它部分)的供電電源都來自外部5V電源。由于C8051F320中的USB收發(fā)器內(nèi)部集成了上拉電阻,,因而不需要任何外部器件便可直接與USB接口相連,。

3.2 USB固件程序設(shè)計(jì)

USB固件程序設(shè)計(jì)是USB接口部分的主要工作,它的主要目的是:當(dāng)USB設(shè)備連接到主機(jī)上時(shí),,主機(jī)可以發(fā)現(xiàn)新設(shè)備,,然后建立連接并完成數(shù)據(jù)傳輸任務(wù),也就是能夠讓Windows正常檢測(cè)和識(shí)別USB設(shè)備,。因此在USB固件程序中,,最重要的工作就是USB描述符的定義和USB傳輸中斷的處理。

(1)USB描述符

USB描述符是USB協(xié)議定義的一套描述設(shè)備功能和屬性的固定結(jié)構(gòu)的描述語言,。USB2.0中的描述符包括設(shè)備描述符,、配置描述符、接口描述符,、端點(diǎn)描述符等8種標(biāo)準(zhǔn)描述符和其它一些非標(biāo)準(zhǔn)描述符,。USB主機(jī)通過USB描述符完成設(shè)備類型的識(shí)別和配置,同時(shí)為設(shè)備提供相應(yīng)的客戶端驅(qū)動(dòng)程序,,運(yùn)行于USB協(xié)議棧上層的客戶端驅(qū)動(dòng)程序通過這些信息來正確訪問設(shè)備并與其通信,,從而達(dá)到即插即用的目的。其中,,配置中用到的兩個(gè)端點(diǎn)描述符如表1所列,。

表1 端點(diǎn)描述

偏移量 大小
(字節(jié))
端點(diǎn)描述符1 端點(diǎn)描述符2
數(shù)值 說明 數(shù)值 說明
0 bLength 1 0x07 描述符字節(jié)數(shù) 0x07 描述符字節(jié)數(shù)
1 bDescriptorType 1 0x05 端點(diǎn)描述符類型 0x05 端點(diǎn)描述符類型
2 bEndpointAddress 1 0x81 端點(diǎn)地址:端點(diǎn)1 IN 0x02 端點(diǎn)地址:端點(diǎn)2 OUT
3 bmAttributes 1 0x02 傳輸類型:批量傳輸 0x02 傳輸類型:批量傳輸
4 wMaxPacketSize 2 64 最大數(shù)據(jù)包64字節(jié) 64 最大數(shù)據(jù)包64字節(jié)
6 bInterval 1 0x05 / 0x05 /

(2)USB中斷服務(wù)程序的編寫

當(dāng)USB中斷到達(dá)時(shí),C8051F320首先通過讀取USB功能控制器的三個(gè)中斷寄存器CMINT,、IN1INT和OUT1INT來判斷中斷來源(USB復(fù)位中斷,、端點(diǎn)0中斷,、端點(diǎn)1輸入中斷、端點(diǎn)2輸出中斷),,然后根據(jù)不同的中斷來源跳入相應(yīng)的處理模塊以進(jìn)行不同的中斷處理,,并在處理完畢后返回。

其中,,端點(diǎn)0是每個(gè)USB設(shè)備都必須支持的默認(rèn)控制傳輸端點(diǎn),,主要用于主機(jī)對(duì)USB設(shè)備的配置、狀態(tài)信息的獲取和設(shè)備錯(cuò)誤的糾正等,,它的中斷處理模塊由控制輸出和控制輸入兩部分組成,。每次傳輸首先由設(shè)置事務(wù)開始,然后根據(jù)設(shè)置事務(wù)數(shù)據(jù)包中的USB標(biāo)準(zhǔn)命令請(qǐng)求判斷該次傳輸是控制輸入還是控制輸出,。由于作用和地位的特殊性和重要性,,端點(diǎn)0中斷處理模塊是一個(gè)最為復(fù)雜的中斷處理模塊。結(jié)合C8051F320端點(diǎn)0控制狀態(tài)寄存器E0CSR的特點(diǎn)和應(yīng)用的具體需求,,圖3給出了該中斷處理模塊的流程圖,,主要是對(duì)控制傳輸中設(shè)置事務(wù)的分析和處理。


    USB復(fù)位中斷的主要作用是將相關(guān)USB變量,、寄存器和各端點(diǎn)的狀態(tài)恢復(fù)為初始狀態(tài)(需要注意的是:復(fù)位后,,端點(diǎn)0為空閑狀態(tài),端點(diǎn)1的 IN和端點(diǎn)2的OUT為暫停狀態(tài)),。端點(diǎn)1輸入中斷和端點(diǎn)2輸出中斷均為批量傳輸中斷,,其主要作用是在收到中斷時(shí),在各自預(yù)先定義好的緩沖區(qū)中寫入要傳輸給主機(jī)的數(shù)據(jù)或取走主機(jī)傳輸過來的數(shù)據(jù),,實(shí)際上,這是C8051F320 讀寫USB緩沖區(qū)的過程,。

4 結(jié)束語

隨著USB技術(shù)的日益成熟,,越來越多的測(cè)控設(shè)備趨向于引入U(xiǎn)SB總線接口技術(shù)或者只提供USB外接接口,所以設(shè)計(jì)一種USB接口到測(cè)控網(wǎng)絡(luò)總線的接口轉(zhuǎn)換模塊非常必要,。文中給出的這種USB和CAN總線的接口轉(zhuǎn)換模塊就是立足于這類需要而進(jìn)行的一項(xiàng)前期研究工作,,該方案具有較強(qiáng)的實(shí)用性。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。