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