3、 USB接口系统的结构

USB接口的结构如图2所示。计算机采用Windows操作系统,用户程序通过设备驱动程序访问目标板。在目标板端上,CY7C646xx把TMS320VC33型数字信号处垣器和计算机通过USB总线建立通信链路,用CPLD进行目标板的控制。TMS320VC33通过CY7C646xx内置的从属FIFO和CY7C646xx进行数据交换。

在本方案中,CY7C646xx采用无EEPROM的列举方式,即当目标板插入USB端口时,操作系统进行USB常规描述符请求,CY7C646xx将内置的PID、VID和DID回复主机请求;主机动态加载“固件下载驱动程序”,由该驱动程序将8051程序代码和数据下载至CYTC646xx内的RAM中,实现“软”开发目的;该驱动程序重置启动8051,重新列举设备,下载至RAM中的程序回复主机的USB描述符请求,主机加载“数据通信驱动程序”,完成USB设备的安装。应用程序通过“数据通信驱动程序”和CY7C646xx建立通信,完成数据传输。

4、 驱动程序的编写

USB设备驱动程序采用一种新的驱动模型--WDM(windows driver model)。WDM通过提供一种灵活的方式来简化驱动程序的开发,在实现对新硬件支持的基础上减少并降低所必须开发的驱动程序的数量和复杂性。可以应用Cypress公司提供编写CY7C646xx系列驱动程序框架源代码进行相应的修改和添加,生成所需要的驱动程序。

4.1 固件下载驱动程序

利用代码转换工具hex2c.exe,将生成的8051固件代码(hex文件)转换为C文件;将C文件中的相应代码拷贝到所提供的源代码程序之一的firmware.c相应部分;利用WindowsDDK工具将各个源文件编译成.sys文件。

修改相应的INF文件,将“%USB\VID_0547&PID_1004.DeviceDesc%=EZUSBDev.Dev,USB\VID_&PID_‘中的VID及PID修改为相应的”预设USB设备“的相应VID和PID,在本应用中,VID.为0547,PID为2235;紧接在此语句之后应加入相同的语句,PID和VID应为所下载的固件代码所能提供的PID和VID,保证外设第二次列举后能根据此PID和VID找到相应的支持主机和电路通信的驱动程序。

4.2 支持主机和电路通信的驱动程序

由Cypress公司提供的GPD(General Purpose Driver)模板供用户修改使用。它提供一个上层的程序代码来实现底层的驱动程序的编写,能够完成USB设备的标准请求及Cypress公司的该系列电路所特定的请求和数据的传输。该GPD所提供的接口函数具有通用性,包括打开、关闭设备及USB的I/O操作等。本应用主要采用上述两类接口程序,在没有改变所提供的EZUSB.SYS的驱动程序的情况下,实现主机和外设的数据通信。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查