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

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

1 C8051F320的主要特點

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

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

●內部集成了時鐘恢復電路,且不需要外接晶體振蕩器,;

●可支持8個USB端點,;

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

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

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

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

2 C8051F320的引腳功能

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

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

VDD:2.7~3.6V片上電源輸入端或片內電壓調節(jié)器的3.3V輸出端;

REGIN:片內電壓調節(jié)器的5V輸入端,;

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

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

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

3 應用舉例

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

3.1 USB 接口硬件電路設計

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

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

3.2 USB固件程序設計

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

(1)USB描述符

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

表1 端點描述

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

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

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

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


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

4 結束語

隨著USB技術的日益成熟,,越來越多的測控設備趨向于引入USB總線接口技術或者只提供USB外接接口,,所以設計一種USB接口到測控網絡總線的接口轉換模塊非常必要。文中給出的這種USB和CAN總線的接口轉換模塊就是立足于這類需要而進行的一項前期研究工作,,該方案具有較強的實用性,。

此內容為AET網站原創(chuàng),未經授權禁止轉載,。