阅读:1449回复:12
用什么方式把设备状态返回给主机
大家好:
我现在要实现把设备上产生的一个状态信号告诉主机,用什么办法实现呢?usb接口中我采用了gpif auto模式,对与设备上产生的rdy信号如何让主机知道啊?谢谢大家的帮助 |
|
沙发#
发布于:2003-03-11 08:33
大家出出主意吧,我现在正被这个问题所困扰啊,整个固件就要完成了,却被这一点难住了。
|
|
板凳#
发布于:2003-03-11 08:46
hi
我也遇到该问题,但是还没有解决,正在看,大家互相交流啊 |
|
地板#
发布于:2003-03-11 09:10
没人能回答吗?
|
|
地下室#
发布于:2003-03-11 09:43
呵呵
谁能解决了zyz1974提出的问题,我把我的分全给你啊,我也解决不了这个问题 |
|
5楼#
发布于:2003-03-11 12:33
在usb段设置一个interrupt模式的endpoint,然后cpu接管外部中断。当有事件产生事,就用这个endpoint相助计发送数据。
|
|
6楼#
发布于:2003-03-11 14:20
rimrock
我现在用的是批量管道,对于中断管道该如何设置我不太清楚,能详细的说一下吗?我的qq 107947912 |
|
7楼#
发布于:2003-03-11 19:19
我用API,get information
bool DeviceIoControl( (handle) hfile, FSCTL_GET_HFS_INFORMATION, NULL, 0, (LPVOID) LPOUTBUFFER, (DWORD) NOUTBUFFERSIZE, (LPDWORD) LPBYTESRETURNED, (LPOVERLAPPED) ); HELP FROM \"MSDN\"!!! |
|
8楼#
发布于:2003-03-11 20:06
把状态变成数据,用bulk in读回来
|
|
|
9楼#
发布于:2003-03-11 20:21
一般情况下的rdy信号是不需要特别通知driver的,估摸个
大致时间或设置个事件等待机制估计都可以满足需求。 但是如果你有一些特殊的需要要主动通知driver,你最好 还是看USB,设置一个interrupt pipe,driver build a URB_BULK_OR_INTERRUPT_TRANSFER urb with pipe index, read interrupt buffer is OK!!!!!!! |
|
|
10楼#
发布于:2003-03-12 09:49
一般情况下的rdy信号是不需要特别通知driver的,估摸个 你的意思是说在驱动程序中增加一个URB_BULK_OR_INTERRUPT _TRANSFER urb吗?但是一般的驱动程序中已经有了,有必要多加一个吗我觉得只要在固件程序和应用程序中加一点代码,就OK了,不知道你的意见如何,大家讨论一下! ;) |
|
11楼#
发布于:2003-03-12 10:02
你误解我的意思了,我的意思是需要特别通知driver的
状态,我们最好用interrupt,然后在driver中build 一个 Urb去取interrupt的内容就OK了...(正如你所说,这个urb结构是现成的,我们仅需要用UsbBuildInterruptOrBulkTransferRequest给我们分配建立的urb初始化为URB_BULK_OR_INTERRUPT_TRANSFER urb,然后塞给bus driver就OK了) |
|
|
12楼#
发布于:2003-03-12 11:11
最简单的方式是从fireware and programme 入手,driver还是小改为好,除非特许要求
|
|
|