阅读:2565回复:11
Host Program 怎么知道USB设备送数来了?
各位大虾:
我用EZUSB2131QC开发一个数据采集卡,我的HOST 应用怎么能像串口控件MSCOMM 那样自动触发数据到达事件? 如果要改驱动程序(我暂且用的Cypress的GPD),该怎么办? 多谢! |
|
最新喜欢:![]() |
沙发#
发布于:2001-08-03 16:10
Device用Interrupt Transfer通知。
|
|
|
板凳#
发布于:2001-08-03 16:13
可以通过中断轮寻,检查相关的中断消息,可以得到想应的数据!
|
|
|
地板#
发布于:2001-08-03 21:53
Interrupt Transfer本身不是一个硬件中断,也就是说并没有系统事件发生,我怎样得到这个中断通知呢?
|
|
地下室#
发布于:2001-08-03 21:59
wentao兄,请问中断轮询是由谁发起的?功能驱动程序?USBD?需要主机方用户软件维持它?怎样得到中断数据?
|
|
5楼#
发布于:2001-08-06 10:40
USB通讯的发起者都是host,所以实际的interrupt transfer也是host在一个固定的时间频率里面向device发包,device的响应就当作interrupt。
|
|
|
6楼#
发布于:2001-08-06 15:10
请问:如果是一个USB声卡或Micphone,设备和主机之间的数据是否也是以这种方式来传送的?涉及那几层驱动?
|
|
|
7楼#
发布于:2001-08-06 17:04
很简单的一个例子是,在一个分布式的数据采集系统中,有很多数据采集卡都在工作,为了提高系统相应的实时性和设计的简单性,我采用了EZ-USB设备。但是,如果上位机轮巡各设备收集数据(每个设备么次传输2K),是实时性肯定受到威胁。各位大虾,我该怎么办?
|
|
8楼#
发布于:2001-08-06 17:48
对于中断轮询,可以通过URB数据包和函数CallAsynchronousUSBD(中断处理函数,相关的参数)来完成,在URB中说明传下的是数据类型。如果中断处理函数触发,说明有中断触发,如此,再调用CallAsynchronousUSBD(中断处理函数,相关的参数)来进行中断轮询
|
|
|
9楼#
发布于:2001-08-06 18:05
书上说中断传输和bulk传输的区别不大,就在于一个轮询,我理解为是设备上电后驱动程序就开始维持了这个轮询,不知对不对?然后可以随时主动地取回数据,而不是像响应一个消息那样由一个消息处理函数完成,更不像一个ISR随时准备响应一个“硬件”中断。但这样和中断的普通含义相差太远了。
|
|
10楼#
发布于:2001-08-09 19:01
USB设备与PC主机之间的通信是通过一个桥芯片与HUB的主控制器之间通信,如果USB设备有中断发生,是通过HUB的主控制器来传给PC机的,也就是你所说的情况,但是在USB中是无法触发中断情况,所以必须通过主机的中断轮循来对中断进行检测,从而得到中断,处理中断情况。希望你查看一下我前面的所给的函数,查看其含义。
|
|
|
11楼#
发布于:2001-08-11 01:46
谢谢wentao.我在walt oney的电子书里讲中断传输一段中没有见过你说的函数,倒是有个辅助函数OnInterrupt(),.我的EMIAL是sunkai2001@hotmail.com.能否再次请教?如果可能我想打个电话比较方便.
|
|