当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]1、CY7C68013A芯片简介一个典型的USB应用系统由USB设备、USB主机和USB电缆组成,USB主机一般指具有USB接口的计算机,连接到主机USB端口的外部设备一般称为USB设备。Cypress

1、CY7C68013A芯片简介

一个典型的USB应用系统由USB设备、USB主机和USB电缆组成,USB主机一般指具有USB接口的计算机,连接到主机USB端口的外部设备一般称为USB设备。

Cypress的EZ-USB FX2系列芯片是世界上第一款集成了USB2.0协议的微处理器,EZ-USB FX2LP系列是其低功耗版本,使用比较多的是CY7 C68013A。

FX2LP芯片的内部主要包括高性能微处理器内核、USB2.0收发器、智能引擎(SIE)、增强8051内核、16K的RAM,4K的FIFO、IO接口、数据总线、地址总线和通用可编程接口等。EZ-USB FX2LP的CPU采用的是增强型8051内核,指令集和标准的8051完全兼容,因此非常便于熟悉51单片机的用户使用。

根据内部资源和引脚数量的不同,CY7C68013A芯片一共提供了三种不同的封装。本文以CYTC68013A-56pin为例进行说明,该封装提供了PA、PB、PD共3个8位并行I/O端口。

2、开发环境的搭建

USB接口设备的开发比较复杂,需要涉及USB固件程序、USB驱动程序、上位机程序开发和电路板设计等诸多方面。

2.1 固件开发环境

USB功能设备的硬件功能主要由硬件上的微处理器来实现,微处理器是由芯片上的固件程序控制的。由于FX2LP的CPU采取了8051内核,因此,固件开发环境仍然可以使用51系列单片机的常用开发软件--Keil μVision。

2.2 Cypress开发包

Cypress公司为EZ-USB芯片提供了一个开发包,CY3684 EZ-USB FX2LP Development Kit,里面包含了典型的固件代码,用户可以参考使用。另外,该开发包还提供了通用USB驱动程序、典型的硬件电路、上位机操作函数说明等。

2.3 上位机开发环境

USB功能设备需要连接到计算机上使用,因此需要上位机的程序开发,一般可以使用微软的Visual Studio来实现。USB设备开发的上位机程序通过USB设备的驱动程序来和USB设备进行通信。

驱动程序的开发可以使用微软的DDK开发驱动程序,也可以使用Driver Studio软件。针对Cypress公司的EZ-USB系列芯片,也可以直接使用Cypress的通用驱动程序,这是一种更加简单的开发方式。

3、USB键盘的设计

3.1 电路设计

图1是CY7C68013A-56pin的典型连接。电压调整芯片将USB接口的5 V电压转换为芯片的工作电压3.3 V;类似51系列单片机,时钟振荡电路接入晶振和两个瓷片电容;SCL与SDL引脚接上拉电阻。

 


键盘设计十分简单,CYTC68013A-56pin有PA、PB、PD三组24个IO端口,利用这些IO端口,就可设计常用的矩阵键盘,如图2所示,键的数目可达12*12个。和51单片机实现的键盘一样,固件程序需要对行和列进行扫描,采用轮询或中断的方式,对按下的键值进行判断。

另外,在制作电路板的时候,注意D+和D-的走线尽量的短而且相等,晶振尽量靠近芯片。

 


3.2 USB芯片的固件程序设计

EZ-USB FX2LP芯片采用的是一种软配置模式。也就是USB设备的各种驱动程序都保存在上位机,上电后,USB主机首先将程序下载到RAM中,然后从RAM开始执行。在这个过程中,有两次“枚举”:刚加电时,USB内核中没有固件,将被枚举为一个默认的USB设备;主机下载固件程序之后,在内核中执行固件程序,就会重新识别并枚举这个USB设备,这个过程被称为“重枚举”。在第一次枚举时,根据芯片有没有连接E2PROM,以及E2PROM中第一个字节的值,有不同的处理方式。当没有外接E2PROM时,将根据驱动程序中提供的VID,PID和DID,把主机上对应的固件程序下载到片内的RAM中,并执行固件代码。

USB固件程序是USB设备功能的核心,通过两次枚举,固件程序被下载到CY7C68013A的芯片里(程序也可以放在外接的EEPROM芯片里),用于配置芯片工作在需要的状态下。

固件程序使用Keil μVision来编写。可以参考Cypress的例程。大体步骤是:

(1)初始化休眠模式、远程唤醒等。

(2)初始化用户设备,主要是‘TD_Init()子程序。负责整个USB设备的初始化过程。

(3)定向描述符。

(4)把所用中断打开,并开启8051全局中断EA=1.由于EZ-USB设备启动需要重列举,因而需要通过设置和判断USBCS寄存器的RENUM和DISCON位来模拟设备物理上的断开和连接过程。

(5)用户外围设备控制功能的实现放在TD_Poll()子程序中,同时主循环中的SetupCommand()子程序用于接收、分析上位机的控制信号,响应上位机请求(标准请求和用户自定义请求)。

3.3 USB通用驱动程序的使用

USB设备的使用需要驱动程序的支持,Cypress提供了通用的USB驱动程序。

该驱动包括两部分:CyLoad.sys和CyUsb.sys,前者用于固件程序的下载,后者用于主机和固件程序的通信。这两个驱动程序提供的引导文件分别是CyLoad.inf和CyUSB.inf,用户可以直接使用,也可以根据需要进行改动。

为了在CyLoad.sys的帮助下实现固件的自动下载,固件程序CyLoad.HEX必须转换为适合自动下载的CyLoad.spt文件,并且与CyLoa d.sys一起放在CyLoad文件夹下,拷贝到系统system32目录下。在安装文件CyUSB.inf中设置的PID,VID必须和描述符中的一致,使得能够自动加载对应固件。

USB设备使用时,必须首先安装驱动程序,注意分别安装上面提到的下载驱动CyLoad.sys和通信驱动CyUsb.sys.安装驱动之后,可以使用Cypress提供的主机控制函数库CyAPI.lib开发主机程序,通过驱动程序和USB设备进行通信。

3.4 USB主机的应用程序设计

USB主机程序可以使用Cypress提供的CyAPI.lib库来进行编程。CyAPI.lib对应Cypress提供的驱动程序CyUsb.sys,为其提供了简单而且功能强大的C++编程接口,通过CyAPI.lib库提供的函数,可以对USB设备进行读写操作,这些函数主要是Open,Close和XferData.

本文以VC++6.0为例,描述创建USB设备应用程序的步骤。[!--empirenews.page--]

(1)新建工程,并将CyAPI.h,CyAPI.lib,cyioctl.h三个文件加载到项目中。

CyAPI.h中定义了CCyUSBDevice、CCyControlEndPoint等几个重要的类;而cyioctl.h中则定义了读取USB设备的几个重要的结构和宏。

(2)在相应的文件中(视、框架或者对话框,依具体情况),包含头文件CyAPI.h和cyioefl.h.

然后定义USB设备全局变量和控制端点全局变量,并进行初始化:

CCyUSBDevice*USBDevice=new CCyUSBDevice();

CCyControlEndPoint*ept=USBDevice-》ControlEndPt;

(3)在程序执行时,采用中断方式,或者轮询方式交换数据。以轮询方式为例,则在帧循环中加入如下代码:

 


首先判断设备是否打开,然后指定操作码,ept-》XferData()完成传输,实现从端口读数据,或者向端口写数据。数据传输的方向由ept-》DirecTIon来设置。

(4)结束程序时,关闭USBDevice.

USBDevice-》Close;

4、结论

EZ-USB FX2芯片实现USB系统,软硬件程序设计,相比较而言,简单、方便。本文介绍了设计USB系统的大体步骤,给出了USB键盘设计的实例。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

九款全新型号最高支持 7 A 保持电流与 72 V 额定电压,部分型号采用 SMD 封装,大幅提升设计弹性与应用选择性

关键字: 保险丝 控制系统 USB

【2026年3月18日, 德国慕尼黑讯】全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)推出EZ-PD™ PMG1-B2,这是业内首款高度集成的单端口USB...

关键字: 控制器 USB 锂离子电池

新一代架构实现更快速分析、更清晰洞察与紧凑设计,将数日的数字验证缩短至数小时

关键字: 示波器 DDR5 USB

STM32系列微控制器因其高性能和丰富的外设接口被广泛应用于各类场景。当涉及USB高速(HS)与全速(FS)接口设计时,开发者常因对信号完整性、ESD防护及电源管理的理解不足而陷入调试困境。本文将从原理出发,结合实际案例...

关键字: STM32 USB

STM32的USB高速(HS)接口因其480Mbps的传输速率,广泛应用于数据采集、视频传输等场景。然而,高频信号与电源噪声的耦合常导致EMC(电磁兼容性)问题,表现为辐射超标、通信中断或设备误触发。本文以实际项目为背景...

关键字: STM32 USB EMC

嵌入式系统设计,同时集成SRAM、SD卡和USB接口已成为高性能数据采集与存储设备的常见需求。然而,这三个高速接口的共存对PCB设计提出了严苛挑战——信号完整性、电源噪声抑制和电磁兼容性(EMC)问题相互交织,稍有不慎便...

关键字: SRAM SD卡 USB

2026 年 2 月 2 日,中国——意法半导体STUSB4531 USB输电(PD)受电(sink)控制器引入一种新的混合模式,这项专利技术可简化USB PD 选配功能的设计开发,提升USB供电设备和USB充电设备的附...

关键字: 控制器 USB 无人机

加拿大魁北克市 — 2026 年 1 月 28日— Robotiq 今日正式发布 TSF-85 触觉传感指尖,这是专为旗下最受欢迎型号 2F-85 自适应夹爪打造的全新触觉传感解决方案,为具身智能 (Physical A...

关键字: AI 机器人 USB

【2026年1月27日, 德国慕尼黑讯】全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)近日推出新一代USB 2.0外设控制器EZ-USB™ FX2G3,该产...

关键字: USB 控制器 SCB

德州普莱诺 – 2026年1月21日 – Diodes 公司(Nasdaq:DIOD)推出 AP53781 和 AP53782 28V USB Type-C® 电源传输(PD)双重功能电源(DRP)控制器,设计用于管理便...

关键字: 电源 USB Type-C
关闭