EZ-USB接口设备的软配置技术
时间:04-04
来源:互联网
点击:
表1 通用EZ-USB接口模块描述符及主要参数
此通用模块中的固件仅用于EZ-USB通信测试、设备驱动和固件装载演示。通过实验发现固件设计有两点值得注意。
① 采用ezusb.sys通用驱动程序时,主机要用查询方式接收从设备来的数据。若主机接收不到设备上传的数据时会长时间等待,甚至会死机。在本文的设计中,解决此问题的方法是数据上传和下传操作成对发生。主机每次下传一个数据包时,设备就上传一个数据包。此时如果设备有数据上传就将数据置入上传数据包中,否则返回一个空包。
② 初始化时应清空一次相应的端点缓冲区,否则有时会出现第一次传输出错的现象,原因可能是复位不充分或者内部RAM掉电延时。在实际中发现,设备掉电相当长一段时间,EZ-USB的RAM中数据仍然保持。
4.2 生成设备驱动程序
可以直接用厂家提供的通用设备驱动程序来驱动设备。但通用设备驱动程序只能执行一些标准的USB设备请求和数据传输,而且只支持查询方式与设备通信。如果不能满足用户需要,用户可以在模板的基础上进行扩充,重新用WDM DDK生成驱动程序。通用模块中采用了通用驱动程序Ezusb.sys。采用查询方式,并且使上传和下传对应出现,实时性较好,能满足一般设备要求。
4.3 生成装载驱动程序
采用自动配置方式时,可根据EZ-USB开发系统提供的模板生成固件装载驱动程序。
通用模块中固件装载采用命令配置方式。其操作流程如图2所示。
其中主要定义了以下4个函数以完成固件装载。
Read_Intel_Hex() 从Intel格式的Hex文件中读出固件代码到缓冲区。
Hex_To_Bin() 移去Intel格式的Hex文件中格式描述部分,转换为纯固件代码。
Download_Bin() EZ-USB8051内核复位、固件装载到设备、8051内核解复位并运行固件。装载固件前要使EZ-USB8051内核进入复位状态,然后装载固件,装载结束后使EZ-USB脱离复位状态开始运行固件。三种操作共用一个函数,用传递不同的参数进行区别。
Set_InterFaceAlt()设置EZ-USB接口号和交替功能值,建立通信管道。
4.4 安装驱动程序
驱动程序必须正确装入Windows环境之后,才能起作用。编辑INF文件,使首次枚举设备的VID和PID绑定到固件装载驱动程序,使重枚举后设备的VID和PID绑定到设备驱动程序。设置驱动程序的路径为 C:,设置显示的驱动程序字符串信息。重新启动系统,按提示信息完成安装过程。
4.5 应用程序与设备接口
通用EZ-USB模块的测试程序提供两种方式访问EZ-USB设备,一是直接通过I/O控制调用访问设备,用CreateFile()函数打开设备,用DeviceIoControl()函数与设备进行通信;二是将复杂的访问函数封装为DLL,对用户提供更简洁的方法访问外设。
结 语
利用通用EZ_USB接口模块,开发了智能声强测量系统和精密数控雕刻机设备,均获得了成功。设备性能稳定,开发周期短。
参考文献
1. 颜容江 EZ- USB2100系列单片机原理、编程及应用 2002
2. Cypress Semiconductor.EZ-USB Series 2100 Getting Started Development Kit 2001
3. 张弘 USB 接口设计 2002
作 者:合肥工业大学 吴从中
来 源:单片机与嵌入式系统应用 2003(12)
描述符名称 | 描述符参数 |
设备描述符 | 版本:0x0001。包大小:0x40。VID:0x0547。PID:0x1011。配置号:0x01 |
配置描述符 | 接口数:0x01。配置值:0x01。属性参数:0x80。最大功耗:0x32(100mA) |
接口描述符表 | 接口索引:0x00,交替设置:0x01。端点数:0x02 |
端点描述符表0 | 端点地址:0x82(端点2,输入)。端点类型:BULK。最大包长度:0x0040 |
端点描述符表1 | 端点地址:0x02(端点2,输出)。端点类型:BULK。最大包长度:0x0040 |
此通用模块中的固件仅用于EZ-USB通信测试、设备驱动和固件装载演示。通过实验发现固件设计有两点值得注意。
① 采用ezusb.sys通用驱动程序时,主机要用查询方式接收从设备来的数据。若主机接收不到设备上传的数据时会长时间等待,甚至会死机。在本文的设计中,解决此问题的方法是数据上传和下传操作成对发生。主机每次下传一个数据包时,设备就上传一个数据包。此时如果设备有数据上传就将数据置入上传数据包中,否则返回一个空包。
② 初始化时应清空一次相应的端点缓冲区,否则有时会出现第一次传输出错的现象,原因可能是复位不充分或者内部RAM掉电延时。在实际中发现,设备掉电相当长一段时间,EZ-USB的RAM中数据仍然保持。
4.2 生成设备驱动程序
可以直接用厂家提供的通用设备驱动程序来驱动设备。但通用设备驱动程序只能执行一些标准的USB设备请求和数据传输,而且只支持查询方式与设备通信。如果不能满足用户需要,用户可以在模板的基础上进行扩充,重新用WDM DDK生成驱动程序。通用模块中采用了通用驱动程序Ezusb.sys。采用查询方式,并且使上传和下传对应出现,实时性较好,能满足一般设备要求。
4.3 生成装载驱动程序
采用自动配置方式时,可根据EZ-USB开发系统提供的模板生成固件装载驱动程序。
通用模块中固件装载采用命令配置方式。其操作流程如图2所示。

其中主要定义了以下4个函数以完成固件装载。
Read_Intel_Hex() 从Intel格式的Hex文件中读出固件代码到缓冲区。
Hex_To_Bin() 移去Intel格式的Hex文件中格式描述部分,转换为纯固件代码。
Download_Bin() EZ-USB8051内核复位、固件装载到设备、8051内核解复位并运行固件。装载固件前要使EZ-USB8051内核进入复位状态,然后装载固件,装载结束后使EZ-USB脱离复位状态开始运行固件。三种操作共用一个函数,用传递不同的参数进行区别。
Set_InterFaceAlt()设置EZ-USB接口号和交替功能值,建立通信管道。
4.4 安装驱动程序
驱动程序必须正确装入Windows环境之后,才能起作用。编辑INF文件,使首次枚举设备的VID和PID绑定到固件装载驱动程序,使重枚举后设备的VID和PID绑定到设备驱动程序。设置驱动程序的路径为 C:,设置显示的驱动程序字符串信息。重新启动系统,按提示信息完成安装过程。
4.5 应用程序与设备接口
通用EZ-USB模块的测试程序提供两种方式访问EZ-USB设备,一是直接通过I/O控制调用访问设备,用CreateFile()函数打开设备,用DeviceIoControl()函数与设备进行通信;二是将复杂的访问函数封装为DLL,对用户提供更简洁的方法访问外设。
结 语
利用通用EZ_USB接口模块,开发了智能声强测量系统和精密数控雕刻机设备,均获得了成功。设备性能稳定,开发周期短。
参考文献
1. 颜容江 EZ- USB2100系列单片机原理、编程及应用 2002
2. Cypress Semiconductor.EZ-USB Series 2100 Getting Started Development Kit 2001
3. 张弘 USB 接口设计 2002
作 者:合肥工业大学 吴从中
来 源:单片机与嵌入式系统应用 2003(12)
- 用电子技术最大化太阳能电池板输出功率(05-18)
- 2009视频监控:网络化及其推动的几大趋势(06-03)
- 与MSP430 USI端口配合使用ADS8361(06-18)
- 辰汉电子推出低成本快速量产视频监控方案+4路输入方案(06-24)
- 用于风力发电设备的连接器的简易安装与维护(06-21)
- 解读USB-IF电池充电规范(10-27)
射频专业培训教程推荐
栏目分类