新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > USB2.0接口芯片CY7C68013的固件程序開(kāi)發(fā)

USB2.0接口芯片CY7C68013的固件程序開(kāi)發(fā)

作者: 時(shí)間:2012-04-23 來(lái)源:網(wǎng)絡(luò) 收藏

摘要:接口技術(shù)為外設(shè)與主機(jī)之間提供了一種靈活高效的雙向數(shù)據(jù)通道??蓮V泛地應(yīng)用于數(shù)據(jù)采集、工業(yè)控制和消費(fèi)數(shù)碼等方面。本文簡(jiǎn)要介紹了支持協(xié)議的的結(jié)構(gòu)。分析了 芯片的固件程序框架的結(jié)構(gòu)。給出了如何在該固件程序框架下使用C語(yǔ)言進(jìn)行固件程序開(kāi)發(fā)的方法。
關(guān)鍵字, 接口,固件程序

引言:

現(xiàn)代工業(yè)生產(chǎn)和科學(xué)研究對(duì)數(shù)據(jù)采集的要求日益提高,在瞬態(tài)信號(hào)測(cè)量、圖像處理等一些高速、高精度的測(cè)量中,需要進(jìn)行高速數(shù)據(jù)采集。USB2.0接口以其高速率、靈活性等優(yōu)點(diǎn)漸有取代傳統(tǒng)的ISA及PCI數(shù)據(jù)總線的趨勢(shì)。與此同時(shí)作為一種靈活而又低廉的接口技術(shù),USB接口更是以其熱插拔特性成為各種PC外設(shè)的首選接口。因此,圍繞著USB2.0的開(kāi)發(fā)成為當(dāng)前的一大熱門(mén)。
下面將以Cypress公司的芯片為例來(lái)探討一下支持USB2.0協(xié)議的固件程序的開(kāi)發(fā)。


1. CY7C68013簡(jiǎn)介:
CY7C68013芯片是Cypress公司的EZ-USB FX2系列中一種既滿足USB2.0協(xié)議同時(shí)兼容USB1.1協(xié)議的功能強(qiáng)大的。其結(jié)構(gòu)如下圖所示[2]:

USB2.0接口芯片CY7C68013的固件程序開(kāi)發(fā)

圖1 CY7C68013接口芯片結(jié)構(gòu)


該芯片有如下幾個(gè)特點(diǎn)[2]:
1)集成有一塊增強(qiáng)型8051內(nèi)核
與普通8051微處理器相比該增強(qiáng)型處理器有如下改進(jìn):
l完成每個(gè)指令周期只需4個(gè)時(shí)鐘周期;
l時(shí)鐘頻率可軟配置為12/24/48MHz;
2)集成有一個(gè)串行接口引擎(SIE)以及一個(gè)USB2.0收發(fā)器
由于USB2.0收發(fā)器和串行接口引擎完成了USB協(xié)議的封包、解包等功能,屏蔽了底層信號(hào)的電氣特性。
3)支持軟配置:
采用再次枚舉(ReNumeration)技術(shù),固件程序可以保存在主機(jī)上,每次上電后通過(guò)USB接口將固件下載到芯片RAM中。具有很大的靈活性。
4)通用可編程接口(GPIF):
GPIF提供可編程控制的接口時(shí)序,使得無(wú)需附加邏輯(glue logic)即能實(shí)現(xiàn)與外圍芯片如DSP、ASIC等的連接,同時(shí)也支持ATAPI、EPP等總線標(biāo)準(zhǔn)。
5)四個(gè)可編程端口(Endpoint):
CY7C68013共有7個(gè)輸入輸出端口:EP0、EP1OUT、EP1IN、EP2、EP4、EP6、EP8。其中EP2、EP4、EP6、EP8 分別可以被配置為批量/中斷/同步傳輸模式,傳輸方向均可配置為出/入。
6)可編程緩沖區(qū)(Buffer)深度:
端口EP2、EP6的緩沖區(qū)大小可編程為512或1024字節(jié),深度可編程為2/3/4倍大?。欢丝贓P4、EP8的緩沖區(qū)固定為512字節(jié)大小,深度為2倍。采用不同的配置方式,實(shí)現(xiàn)特定帶寬、速率要求的數(shù)據(jù)傳輸。


2.開(kāi)發(fā)工具:


Cypress公司的網(wǎng)站(http://www.cypress.com)上提供了CY7C68013芯片的開(kāi)發(fā)工具包下載,該開(kāi)發(fā)包提供了開(kāi)發(fā)固件程序的所需的一些資源:Keil uVision2集成開(kāi)發(fā)環(huán)境(限制版);Cypress C51固件框架程序以及一些例子程序。
Keil uVision2 是一個(gè)功能強(qiáng)大的集成開(kāi)發(fā)環(huán)境,該開(kāi)發(fā)環(huán)境集成有C51編譯器和A51匯編器以及BL連接定位器等一系列工具和模擬仿真、調(diào)試器,因此它能夠支持C程序和匯編程序混合的工程,給軟件的開(kāi)發(fā)帶來(lái)很大的便利[5]。
Keil C51是一種專為8051單片機(jī)設(shè)計(jì)的高效率C語(yǔ)言編譯器,符合ANSI標(biāo)準(zhǔn),生成的程序代碼運(yùn)行速度極高,所需要的存儲(chǔ)空間極小,完全可以個(gè)匯編語(yǔ)言相媲美。同時(shí),C51具有豐富的庫(kù)函數(shù),多達(dá)100多種功能函數(shù)。因此,采用C語(yǔ)言作為開(kāi)發(fā)語(yǔ)言以Keil uVision2作為工程開(kāi)發(fā)平臺(tái),完成源代碼的編寫(xiě)、仿真、調(diào)試,將在相當(dāng)程度上降低固件開(kāi)發(fā)難度、提高開(kāi)發(fā)效率[4]。


3.固件結(jié)構(gòu)及組成:


固件程序的功能雖然復(fù)雜,在編寫(xiě)時(shí)需要用到大量的函數(shù),但其基本結(jié)構(gòu)卻相對(duì)簡(jiǎn)單,包括如下幾個(gè)部分:
3.1設(shè)備描述符表:
每一個(gè)USB設(shè)備在與主機(jī)建立數(shù)據(jù)通信之前必須先向主機(jī)通報(bào)自己的具體配置,包括設(shè)備的廠商、產(chǎn)品識(shí)別號(hào)(VID、PID),設(shè)備的供電方式以及能量消耗等一系列重要信息。而這些有關(guān)設(shè)備的信息就是通過(guò)設(shè)備描述符表來(lái)通報(bào)給主機(jī),從而使主機(jī)采用適當(dāng)?shù)姆绞浇⑴c設(shè)備之間的連接.其結(jié)構(gòu)如下所示:
DeviceDscr:
db 18 ;;該描述符長(zhǎng)度(以字節(jié)為單位)
db DSCR_DEVICE ;; 描述符類型
……
db 1 ;; 共有幾種配置(1種)

pid控制相關(guān)文章:pid控制原理



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: USB2.0 接口芯片 CY7C68013

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉