USB2.0接口芯片CY7C68013的固件程序開發(fā)
摘要:USB2.0接口技術(shù)為外設(shè)與主機之間提供了一種靈活高效的雙向數(shù)據(jù)通道。可廣泛地應(yīng)用于數(shù)據(jù)采集、工業(yè)控制和消費數(shù)碼等方面。本文簡要介紹了支持USB2.0協(xié)議的接口芯片CY7C68013的結(jié)構(gòu)。分析了 CY7C68013芯片的固件程序框架的結(jié)構(gòu)。給出了如何在該固件程序框架下使用C語言進行固件程序開發(fā)的方法。
關(guān)鍵字: USB2.0, 接口,固件程序
引言:
現(xiàn)代工業(yè)生產(chǎn)和科學(xué)研究對數(shù)據(jù)采集的要求日益提高,在瞬態(tài)信號測量、圖像處理等一些高速、高精度的測量中,需要進行高速數(shù)據(jù)采集。USB2.0接口以其高速率、靈活性等優(yōu)點漸有取代傳統(tǒng)的ISA及PCI數(shù)據(jù)總線的趨勢。與此同時作為一種靈活而又低廉的接口技術(shù),USB接口更是以其熱插拔特性成為各種PC外設(shè)的首選接口。因此,圍繞著USB2.0的開發(fā)成為當前的一大熱門。
下面將以Cypress公司的CY7C68013芯片為例來探討一下支持USB2.0協(xié)議的固件程序的開發(fā)。
1. 接口芯片CY7C68013簡介:
CY7C68013芯片是Cypress公司的EZ-USB FX2系列中一種既滿足USB2.0協(xié)議同時兼容USB1.1協(xié)議的功能強大的接口芯片。其結(jié)構(gòu)如下圖所示[2]:
圖1 CY7C68013接口芯片結(jié)構(gòu)
該芯片有如下幾個特點[2]:
1)集成有一塊增強型8051內(nèi)核
與普通8051微處理器相比該增強型處理器有如下改進:
l完成每個指令周期只需4個時鐘周期;
l時鐘頻率可軟配置為12/24/48MHz;
2)集成有一個串行接口引擎(SIE)以及一個USB2.0收發(fā)器
由于USB2.0收發(fā)器和串行接口引擎完成了USB協(xié)議的封包、解包等功能,屏蔽了底層信號的電氣特性。
3)支持軟配置:
采用再次枚舉(ReNumeration)技術(shù),固件程序可以保存在主機上,每次上電后通過USB接口將固件下載到芯片RAM中。具有很大的靈活性。
4)通用可編程接口(GPIF):
GPIF提供可編程控制的接口時序,使得無需附加邏輯(glue logic)即能實現(xiàn)與外圍芯片如DSP、ASIC等的連接,同時也支持ATAPI、EPP等總線標準。
5)四個可編程端口(Endpoint):
CY7C68013共有7個輸入輸出端口:EP0、EP1OUT、EP1IN、EP2、EP4、EP6、EP8。其中EP2、EP4、EP6、EP8 分別可以被配置為批量/中斷/同步傳輸模式,傳輸方向均可配置為出/入。
6)可編程緩沖區(qū)(Buffer)深度:
端口EP2、EP6的緩沖區(qū)大小可編程為512或1024字節(jié),深度可編程為2/3/4倍大??;端口EP4、EP8的緩沖區(qū)固定為512字節(jié)大小,深度為2倍。采用不同的配置方式,實現(xiàn)特定帶寬、速率要求的數(shù)據(jù)傳輸。
2.開發(fā)工具:
Cypress公司的網(wǎng)站(http://www.cypress.com)上提供了CY7C68013芯片的開發(fā)工具包下載,該開發(fā)包提供了開發(fā)固件程序的所需的一些資源:Keil uVision2集成開發(fā)環(huán)境(限制版);Cypress C51固件框架程序以及一些例子程序。
Keil uVision2 是一個功能強大的集成開發(fā)環(huán)境,該開發(fā)環(huán)境集成有C51編譯器和A51匯編器以及BL連接定位器等一系列工具和模擬仿真、調(diào)試器,因此它能夠支持C程序和匯編程序混合的工程,給軟件的開發(fā)帶來很大的便利[5]。
Keil C51是一種專為8051單片機設(shè)計的高效率C語言編譯器,符合ANSI標準,生成的程序代碼運行速度極高,所需要的存儲空間極小,完全可以個匯編語言相媲美。同時,C51具有豐富的庫函數(shù),多達100多種功能函數(shù)。因此,采用C語言作為開發(fā)語言以Keil uVision2作為工程開發(fā)平臺,完成源代碼的編寫、仿真、調(diào)試,將在相當程度上降低固件開發(fā)難度、提高開發(fā)效率[4]。
3.固件結(jié)構(gòu)及組成:
pid控制相關(guān)文章:pid控制原理
固件程序的功能雖然復(fù)雜,在編寫時需要用到大量的函數(shù),但其基本結(jié)構(gòu)卻相對簡單,包括如下幾個部分:
3.1設(shè)備描述符表:
每一個USB設(shè)備在與主機建立數(shù)據(jù)通信之前必須先向主機通報自己的具體配置,包括設(shè)備的廠商、產(chǎn)品識別號(VID、PID),設(shè)備的供電方式以及能量消耗等一系列重要信息。而這些有關(guān)設(shè)備的信息就是通過設(shè)備描述符表來通報給主機,從而使主機采用適當?shù)姆绞浇⑴c設(shè)備之間的連接.其結(jié)構(gòu)如下所示:
DeviceDscr:
db 18 ;;該描述符長度(以字節(jié)為單位)
db DSCR_DEVICE ;; 描述符類型
……
db 1 ;; 共有幾種配置(1種)
評論