关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于CY7C68013A的USB控制系统设计研究

基于CY7C68013A的USB控制系统设计研究

作者: 时间:2010-09-28 来源:网络 收藏

固件设计流程图如图3所示。

本文引用地址://m.amcfsurvey.com/article/162816.htm


用户初始化设备部分放在TD_Init()子程序中,负责整个USB设备的初始化过程。在定向描述符之后,需要把所用中断打开,并开启8051全局中断EA=1。由于EZ-USB设备启动需要重列举,因而需要通过设置和判断USBCS寄存器的RENUM和DISCON位来模拟设备物理上的断开和连接过程。用户外围设备控制功能的实现放在TD_Poll()子程序中,同时主循环中的SetupCommand()子程序用于接收、分析上位机的控制信号,响应上位机请求(标准请求和用户自定义请求)。
3.4 上位机界面设计
为了能够很好地控制USB设备,需要编写上位机控制界面。界面程序在VC++6.O环境下开发,该环境具有编程简单、快捷等的特点,便于开发可视化程序。Cypress公司为EZ_USB系列芯片提供了开发库CyAPI.lib,使用其中的控制函数类,可以在VC++6.0环境下开发界面程序。建立MFC(exe)工程后,在工程中加入CyAPI.lib,并且在主文件头部添加EZ-USB开发环境中提供的CyAPI.h,cyioctl.h头文件。利用库中的控制函数,如VendorID,ProductID等,可以获取USB设备的描述信息,同时也可以编写相关的控制功能程序。
3.5 系统设计中关键问题
(1)一个设备只能有一个设备描述符,可以有多个配置描述符,多个接口描述符,以及多个端点描述符。
(2)设备描述符中VID,PID要与驱动中的相一致,否则不能自动加载相应的固件程序。
(3)固件程序必须转换为.spt格式,用于固件加载的驱动程序和固件程序应放在一个文件夹。
(4)端点0为缺省控制端点,其可设置最大数据包长度为64 B,在设备描述符中wMaxPacketSize字段描述。
(5)传输模式有中断传输、块传输、同步传输、控制传输四类,需根据自己设计需求选择,同时注意最大数据包长度的设置。

4 驱动程序
对于USB设备,Windows操作系统要想对其实现操作,必须借助于驱动程序来实现。主机和驱动程序直接通信,交换数据,而驱动程序则和硬件资源进行通信,从而很好地控制USB设备。Cypress提供的开发环境中自带了相关的驱动程序CyLoad.sys和CyUSB.sys,可以直接使用,缩短了系统的开发周期。其中CyLoad.sys用于主机向USB设备下载固件程序,CyUSB.sys实现主机和固件程序通信。为了在CyLoad.sys的帮助下实现固件的自动下载,固件程序CyLoad.HEX必须转换为适合自动下载的CyLoad.spt文件,并且与CyLoad.sys一起放在CyLoad文件夹下,拷贝到系统system32目录下。在安装文件CyUSB.inf中设置的PID,VID必须和描述符中的一致,使得能够自动加载对应固件。

5 实验
实验系统,采用CY7C68013A-56pin作为USB设备芯片,实现控制LED和读取I/O数据功能。由于芯片采用3.3 V电压供电,因此可以从主机USB口取电,经LM317电压调整芯片转换为3.3 V,也可外接3.3 V电压供电。在PD口接LED,显示TD_Poll(void)实现的功能(灯亮/灭间隔300 ms),而PA口LED用于显示判断主机发送数据。PB口接高/低电平,用于主机读取该口数据,可以验证主机接收数据的正确性。



关键词:收发器

评论


相关推荐

技术专区

关闭