EZ-USB FX2單片機(jī)CY7C68013的特性介紹
作者Email: cai_yang@etang.com 摘要:本文主要介紹Cypress Semiconductor公司的EZ-USB FX2單片機(jī)CY7C68013,該單片機(jī)是一個(gè)帶USB2.0內(nèi)核、8051兼容的單片機(jī)。 關(guān)鍵詞:USB2.0 EZ-USB FX2 單片機(jī) CY7C68013 1 介紹 Cypress Semiconductor公司的EZ-USB FX2是世界上第一款集成USB2.0的微處理器,它集成了USB2.0收發(fā)器、SIE(串行接口引擎)、增強(qiáng)的8051微控制器和可編程的外圍接口。 FX2這種獨(dú)創(chuàng)性結(jié)構(gòu)可使數(shù)據(jù)傳輸率達(dá)到56Mbytes/s,即USB2.0允許的最大帶寬。在FX2中,智能SIE可以硬件處理許多USB1.1和 USB2.0協(xié)議,從而減少了開(kāi)發(fā)時(shí)間和確保了USB的兼容性。GPIF(General Programmable Interface)和主/從端點(diǎn)FIFO(8位或16位數(shù)據(jù)總線(xiàn))為ATA、UTOPIA、EPP、PCMCIA和DSP等提供了簡(jiǎn)單和無(wú)縫連接接口。 2 EZ-USB FX2結(jié)構(gòu) CY7C68013結(jié)構(gòu)圖如圖1所示。它有三種封裝形式:56SSOP,100TQFP和128TQFP。
CY7C68013集成了以下特性: ● USB2.0收發(fā)器、SIE(串行接口引擎)和增強(qiáng)性8051微處理器; ● 軟件運(yùn)行:8051程序從內(nèi)部RAM開(kāi)始運(yùn)行,可以借助下列幾種方式進(jìn)行程序裝載: (1) 通過(guò)USB下載; (2) 從EEPROM中裝載; (3) 通過(guò)外部存儲(chǔ)器設(shè)備。 ● 四個(gè)可編程BULK/INTERRUPT/ISOCHRONOUS端點(diǎn); 可選雙、三和四緩沖 ● 8位或16位外部數(shù)據(jù)接口 ● 通用可編程接口(GPIF) (1) 可以直接連接到并口,8位和16位; (2) 可編程波形描述符和配置寄存器; (3) 支持多個(gè)Ready輸入和Control輸出。 ● 集成標(biāo)準(zhǔn)8051內(nèi)核,且具有下列增強(qiáng)特性: (1) 可以達(dá)到48MHz時(shí)鐘; (2) 每條指令占四個(gè)時(shí)鐘周期; (3) 兩個(gè)USARTs; (4) 三個(gè)定時(shí)/計(jì)數(shù)器; (5) 擴(kuò)展的中斷系統(tǒng); (6) 兩個(gè)數(shù)據(jù)指針。 ● 3.3V電源系統(tǒng); ● 智能串行引擎(SIE); ● 矢量USB中斷; ● 獨(dú)立的數(shù)據(jù)緩沖區(qū)供SETUP和DATA包控制傳輸; ● 集成I2C控制器,運(yùn)行速度可達(dá)100或400KHz; ● 四個(gè)FIFO,可與ASIC和DSP等無(wú)縫連接; ● 專(zhuān)門(mén)的FIFO和GPIF自動(dòng)矢量中斷; ● 可用于DSL Modems、ATA接口、相機(jī)、Home PNA、WLAN、MP3播放器、網(wǎng)絡(luò)等。 3、USB啟動(dòng)方式和枚舉 上電時(shí),內(nèi)部邏輯會(huì)檢查連接到I2C總線(xiàn)上的EEPROM中的第一個(gè)字節(jié)(0xC0或0xC2)。如果是0xC0,就會(huì)使用EEPROM中的 VID/PID/DID來(lái)替代內(nèi)部存儲(chǔ)值;如果是0xC2,內(nèi)部邏輯就會(huì)把EEPROM中的內(nèi)容裝入到內(nèi)部RAM中;如果沒(méi)有檢查到EEPROM,F(xiàn)X2 就會(huì)使用內(nèi)部存儲(chǔ)的描述符來(lái)枚舉。FX2缺省的VID/PID/DID是0x04B4/ 0x8613/ 0xxxyy。 當(dāng)首次插入U(xiǎn)SB時(shí),F(xiàn)X2通過(guò)USB電纜會(huì)自動(dòng)枚舉且下載固件和USB描述符表;接下來(lái),F(xiàn)X2再次枚舉,這次主要通過(guò)下載的信息來(lái)定義設(shè)備。這兩個(gè)步驟就叫做重枚舉,當(dāng)設(shè)備插入時(shí)它們就立即執(zhí)行。 4、程序/數(shù)據(jù)存儲(chǔ)器 4.1內(nèi)部數(shù)據(jù)RAM 如圖2所示,F(xiàn)X2的內(nèi)部數(shù)據(jù)RAM被分成三個(gè)不同的區(qū)域:低(LOW)128、高(Upper)128和特殊功能寄存器(SFR)空間。低128和高 128是通用RAM,SFR包括FX2控制和狀態(tài)寄存器。 4.2外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器 FX2有8K片上RAM,位于0x0000-0x1FFF;512字節(jié)Scratch RAM,位于0xE000-0xE1FF。盡管Scratch RAM從物理上來(lái)說(shuō)位于片內(nèi),但是通過(guò)固件可以把它作為外部RAM一樣來(lái)尋址。 FX2保留7.5K(0xE200-0xFFFF)數(shù)據(jù)地址空間作為控制/狀態(tài)寄存器和端點(diǎn)緩沖器。 注意:只有數(shù)據(jù)內(nèi)存空間保留,而程序內(nèi)存(0xE000-0xFFFF)并不保留。 5、端點(diǎn)緩沖區(qū) FX2包含3個(gè)64字節(jié)端點(diǎn)緩沖區(qū)和4K可配置成不同方式的緩沖,其中3個(gè)64字節(jié)的緩沖區(qū)為EP0、EP1IN和EP1OUT。EP0作為控制端點(diǎn)用,它是一個(gè)雙向端點(diǎn),既可為IN也可為OUT。當(dāng)需要控制傳輸數(shù)據(jù)時(shí),F(xiàn)X2固件讀寫(xiě)EP0緩沖區(qū),但是8個(gè)SETUP字節(jié)數(shù)據(jù)不會(huì)出現(xiàn)在這64字節(jié)EP0 端點(diǎn)緩沖區(qū)中。EP1IN和EP1OUT使用獨(dú)立的64字節(jié)緩沖區(qū),F(xiàn)X2固件可配置這些端點(diǎn)為BULK、INTERRUPT或ISOCHRONOUS傳輸方式,這兩個(gè)端點(diǎn)和EP0一樣只能被固件訪(fǎng)問(wèn)。這一點(diǎn)與大端點(diǎn)緩沖區(qū)EP2、EP4、EP6和EP8不同,這四個(gè)端點(diǎn)緩沖區(qū)主要用來(lái)和片上或片外進(jìn)行高帶寬數(shù)據(jù)傳輸而無(wú)需固件的參與。EP2、EP4、EP6和EP8是高帶寬、大緩沖區(qū)。它們可被配置成不同的方式來(lái)適應(yīng)帶寬的需求。 6、外部FIFO接口 EP2、EP4、EP6和EP8大端點(diǎn)緩沖區(qū)主要用來(lái)進(jìn)行高速(480Mbits/s)數(shù)據(jù)傳輸,可以通過(guò)FIFO數(shù)據(jù)接口與外部ASIC和DSP等處理器無(wú)縫連接來(lái)實(shí)現(xiàn)高速數(shù)據(jù)傳輸。它具有通用接口:Slave(從)FIFO(外部主)或GPIF(內(nèi)部主)、同步或異步時(shí)鐘、內(nèi)部或外部時(shí)鐘等。圖3、圖 4分別為FX2 FIFO處在“Slave FIFO”模式和“GPIF Master”模式。 7、中斷資源 FX2的中斷結(jié)構(gòu)是在一個(gè)標(biāo)準(zhǔn)8051單片機(jī)的基礎(chǔ)上增強(qiáng)和擴(kuò)展了部分中斷資源,中斷資源如表1所示: 表1 FX2中斷 FX2中斷 中斷來(lái)源 中斷向量 優(yōu)先級(jí) IE0 INT0 Pin 0x0003 1 TF0 Timer0 Overflow 0x000B 2 IE1 INT1 Pin 0x0013 3 TF1 Timer1 Overflow 0x001B 4 RI_0 %26;amp; TI_0 USART0 Rx %26;amp; Tx 0x0023 5 TF2 Timer2 Overflow 0x002B 6 Resume WAKEUP/WU2 Pin 0x0033 0 RI_1 %26;amp; TI_1 USART1 Rx %26;amp; Tx 0x003B 7 USBINT USB 0x0043 8 I2CINT I2C BUS 0x004B 9 IE4 GPIF/FIFOs/INT4 Pin 0x0053 10 IE5 INT5 Pin 0x005B 11 IE6 INT6 Pin 0x0063 12 其中27個(gè)USB請(qǐng)求共享USB中斷,14個(gè)FIFO/GPIF源共享INT4。
8、結(jié)束語(yǔ) 我們用EZ-USB FX2 CY7C68013單片機(jī)來(lái)實(shí)現(xiàn)多串口轉(zhuǎn)USB,并開(kāi)發(fā)了windows操作系統(tǒng)下的USB驅(qū)動(dòng)。