最近在用68013A做一个数据采集的项目,到了USB驱动和固件这里就卡住了 ,以下是我遇到的几个问题,可能很肤浅,请别见笑。呵呵。
由于是刚刚接触驱动和固件方面的知识,所以固件用的是cypress官网上下载的BULKLOOP(FX2文件夹里面的),驱动程序用的是ezsub.sys。(在checked文件夹里面,27KB那个)。下面来描述一下我的问题:
1:插上USB芯片后,在电脑设备管理器中可以看到Cypress EZ-USB FX2(68613) - EEPROM missing 字样,
我认为这样应该属于驱动程序加载成功。但是在Cypress USB Console中看不到VIP和PID.用EZ-USB
Control Panel 将 bulkloop.hex DOWNLOAD之后,发现设备管理器中的设备名称变成了 Cypress EZ-USB Sample Device ,然后去看了一下INF文件,里面有这么两段话 USB\VID_0547&PID_1002.DeviceDesc="Cypress EZ-USB Sample Device"
USB\VID_04B4&PID_8613.DeviceDesc="Cypress EZ-USB FX2 (68613) - EEPROM missing"
请问发生这种情况是属于正常还是驱动方面有问题?因为按照道理讲,芯片的VID应该是04B4,PID是8613,就是说应该一直都显示Cypress EZ-USB FX2 (68613) - EEPROM missing 才对。
还有就是为什么在Cypress USB Console中看不到VIP和PID?用什么软件来调试bulkloop固件比较好?
2:驱动程序里面的缓冲区大小是怎么定义的?我在驱动程序里面看到这么两行代码
inputBufferLength = irpStack->;Parameters.DeviceIoControl.InputBufferLength;
outputBufferLength = irpStack->;Parameters.DeviceIoControl.OutputBufferLength;
这两行应该是输入和输出缓冲区的长度吧?但是我在找到了InputBufferLength和OutputBufferLength定义处后发现,里面没有说明这两个量究竟是多少,是已经默认了还是我没有找到,请指点一下。
3:这个问题和上一个问题有点关系,就是关于传输速率的问题,我看到论坛上有人说在工程中加入头文件cyioctl.h并调用其中的一个函数来改变缓冲区的大小就可以改变传输速率,请问这个函数在驱动程序的哪处调用,怎么调用比较好?
4:上位机的读取数据的长度是在哪里定义的?
希望能得到大家的指点,不胜感激!:handshake |