Bikky
驱动牛犊
驱动牛犊
  • 注册日期2003-12-01
  • 最后登录2017-02-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望11点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1661回复:7

USB 驱动难题

楼主#
更多 发布于:2005-08-04 16:00
  // 数据采集线程,将USB传来的数据填入环形缓冲池
VOID UDAQDevice::Sample(void)
{  
       ULONG nBytesRead;
       bool Tag;
       LONG i,gap,k;
    PUCHAR temp;
      
       t << "UDAQDevice::Sample Begin\n";
   //nBytesRead=0;
       while(1)
       {
              if(!BTerminate)
              {
                     pSampleThread->Terminate(STATUS_SUCCESS);
                     return;
              }
                            
              PURB pUrb = m_BULKIN.BuildBulkTransfer(
                                       m_pTail,             // Where is data go to
                                          m_Size,                       // How much data to read?
                                          TRUE,                // direction (TRUE = IN)
                                          NULL,                     // Link to next URB
                                          TRUE                     // Allow a short transfer
                                          );  
    
              m_BULKIN.SubmitUrb( pUrb,NULL,NULL,1000);       //设置成1000以使驱动程序可以自动卸载,即1秒后若无数据接收则此函数返回,不至于死等。
              //以上函数如提交给底层硬件后,如没有数据收到,则应马上返回,且nBytesRead=0,
              //但实际情况是WINDOWS底层没有很快地提交,示波器观察到是1ms多才交一次
              //而底层硬件是0.5ms就准备好一帧数据,则上述函数要比0.5ms更短内的时间内
              //提交一次才不至于丢帧。
              
              nBytesRead = pUrb->UrbBulkOrInterruptTransfer.TransferBufferLength;      
        delete pUrb;
              if(!nBytesRead)
              //{t << "NO DATA " << "\n";
              continue; //}          //如果此次提交URB没采集到数据,则立即返回,重新循环
        

              temp=m_pTail;
              m_pTail += nBytesRead;

              t << "Data: " <<  nBytesRead  << " Bytes \n";
              
              
              /*for(k=0;k<nBytesRead;k++)
             t  <<  *temp++ ;
                   t<<"\n";*/

       }
}
百克
Bikky
驱动牛犊
驱动牛犊
  • 注册日期2003-12-01
  • 最后登录2017-02-21
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望11点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-08-05 15:26
10.095         Default                  UDAQ: UDAQDevice::Create(KIrp I)
10.095         Default                  UDAQ: UDAQDevice::Create Status 0x00000000
11.427         Default                  UDAQ: UDAQDevice::DeviceControl(KIrp I)
11.427         Default                  UDAQ: UDAQDevice::Sample Begin
11.427         Default                  UDAQ: Data: 0x0000003f Bytes
11.427         Default                  UDAQ: Data: 0x0000003f Bytes
11.437         Default                  UDAQ: Data: 0x0000003f Bytes
11.437         Default                  UDAQ: Data: 0x0000003f Bytes
11.437         Default                  UDAQ: Data: 0x0000003f Bytes
11.437         Default                  UDAQ: Data: 0x0000003f Bytes
11.437         Default                  UDAQ: Data: 0x0000003f Bytes
11.437         Default                  UDAQ: Data: 0x0000003f Bytes
11.437         Default                  UDAQ: Data: 0x0000003f Bytes
11.437         Default                  UDAQ: Data: 0x0000003f Bytes
11.437         Default                  UDAQ: Data: 0x0000003f Bytes
11.437         Default                  UDAQ: Data: 0x0000003f Bytes
11.447         Default                  UDAQ: Data: 0x0000003f Bytes
11.447         Default                  UDAQ: Data: 0x0000003f Bytes
11.447         Default                  UDAQ: Data: 0x0000003f Bytes
11.447         Default                  UDAQ: Data: 0x0000003f Bytes
11.447         Default                  UDAQ: Data: 0x0000003f Bytes
11.447         Default                  UDAQ: Data: 0x0000003f Bytes
11.447         Default                  UDAQ: Data: 0x0000003f Bytes
11.447         Default                  UDAQ: Data: 0x0000003f Bytes
11.447         Default                  UDAQ: Data: 0x0000003f Bytes
11.447         Default                  UDAQ: Data: 0x0000003f Bytes
11.457         Default                  UDAQ: Data: 0x0000003f Bytes  //从这儿可以看出,我的DS27带的MONITOR只能以10ms为单位打印数据
11.467         Default                  UDAQ: Data: 0x0000003f Bytes //可能还有数据没打出来,还是别的原因?11.447这个时间单位内打印了20多个数据
11.467         Default                  UDAQ: Data: 0x0000003f Bytes //如果都是这样就对了,因为我下面单片机是0.5ms发一帧数据,10ms应该接收到20帧
11.467         Default                  UDAQ: Data: 0x0000003f Bytes //但接着11.457这个10ms就只打印了一帧,不知是MONITOR没时间打印还是实际真的没接收到数据
11.477         Default                  UDAQ: Data: 0x0000003f Bytes //还有,我看武安河那本书上的MONITOR能把打印时间精确到10us,也就是小数点后5位,我的为何只有3位,
11.477         Default                  UDAQ: Data: 0x0000003f Bytes //而且最后一位还不变,则只精确到10ms
11.477         Default                  UDAQ: Data: 0x0000003f Bytes
11.477         Default                  UDAQ: Data: 0x0000003f Bytes
11.477         Default                  UDAQ: Data: 0x0000003f Bytes //结合我的驱动程序里数据采集线程那段可以看出,如果m_BULKIN.SubmitUrb()这个函数执行得很快的话,
11.477         Default                  UDAQ: Data: 0x0000003f Bytes //打印结果应该是打很多行“NO DATA“后才打一行"DATA 0x0000003f Bytes",而实际情况不是这样。
11.477         Default                  UDAQ: Data: 0x0000003f Bytes
11.477         Default                  UDAQ: Data: 0x0000003f Bytes
11.477         Default                  UDAQ: Data: 0x0000003f Bytes
11.477         Default                  UDAQ: Data: 0x0000003f Bytes
11.487         Default                  UDAQ: Data: 0x0000003f Bytes
11.487         Default                  UDAQ: Data: 0x0000003f Bytes
11.487         Default                  UDAQ: Data: 0x0000003f Bytes
11.497         Default                  UDAQ: Data: 0x0000003f Bytes
11.497         Default                  UDAQ: Data: 0x0000003f Bytes
11.497         Default                  UDAQ: Data: 0x0000003f Bytes
11.507         Default                  UDAQ: Data: 0x0000003f Bytes
11.507         Default                  UDAQ: Data: 0x0000003f Bytes
11.507         Default                  UDAQ: Data: 0x0000003f Bytes
11.507         Default                  UDAQ: Data: 0x0000003f Bytes
11.507         Default                  UDAQ: Data: 0x0000003f Bytes
11.507         Default                  UDAQ: Data: 0x0000003f Bytes
11.507         Default                  UDAQ: Data: 0x0000003f Bytes
11.507         Default                  UDAQ: Data: 0x0000003f Bytes
11.507         Default                  UDAQ: Data: 0x0000003f Bytes
11.507         Default                  UDAQ: Data: 0x0000003f Bytes
11.517         Default                  UDAQ: Data: 0x0000003f Bytes
11.537         Default                  UDAQ: Data: 0x0000003f Bytes
11.557         Default                  UDAQ: Data: 0x0000003f Bytes
11.557         Default                  UDAQ: Data: 0x0000003f Bytes
11.557         Default                  UDAQ: Data: 0x0000003f Bytes
11.557         Default                  UDAQ: Data: 0x0000003f Bytes
11.557         Default                  UDAQ: Data: 0x0000003f Bytes
11.557         Default                  UDAQ: Data: 0x0000003f Bytes
11.567         Default                  UDAQ: Data: 0x0000003f Bytes
11.567         Default                  UDAQ: Data: 0x0000003f Bytes
11.587         Default                  UDAQ: Data: 0x0000003f Bytes
11.607         Default                  UDAQ: Data: 0x0000003f Bytes
11.607         Default                  UDAQ: Data: 0x0000003f Bytes
11.617         Default                  UDAQ: Data: 0x0000003f Bytes
11.617         Default                  UDAQ: Data: 0x0000003f Bytes
11.617         Default                  UDAQ: Data: 0x0000003f Bytes
11.617         Default                  UDAQ: Data: 0x0000003f Bytes
11.617         Default                  UDAQ: Data: 0x0000003f Bytes
11.617         Default                  UDAQ: Data: 0x0000003f Bytes
11.617         Default                  UDAQ: Data: 0x0000003f Bytes
11.617         Default                  UDAQ: Data: 0x0000003f Bytes
11.617         Default                  UDAQ: Data: 0x0000003f Bytes
11.617         Default                  UDAQ: Data: 0x0000003f Bytes
11.627         Default                  UDAQ: Data: 0x0000003f Bytes
11.627         Default                  UDAQ: Data: 0x0000003f Bytes
11.647         Default                  UDAQ: Data: 0x0000003f Bytes
11.667         Default                  UDAQ: Data: 0x0000003f Bytes
11.667         Default                  UDAQ: Data: 0x0000003f Bytes
11.677         Default                  UDAQ: Data: 0x0000003f Bytes
11.677         Default                  UDAQ: Data: 0x0000003f Bytes
11.677         Default                  UDAQ: Data: 0x0000003f Bytes
11.677         Default                  UDAQ: Data: 0x0000003f Bytes
11.677         Default                  UDAQ: Data: 0x0000003f Bytes
11.677         Default                  UDAQ: Data: 0x0000003f Bytes
11.677         Default                  UDAQ: Data: 0x0000003f Bytes
11.677         Default                  UDAQ: Data: 0x0000003f Bytes
11.677         Default                  UDAQ: Data: 0x0000003f Bytes
11.677         Default                  UDAQ: Data: 0x0000003f Bytes
11.687         Default                  UDAQ: Data: 0x0000003f Bytes
11.687         Default                  UDAQ: Data: 0x0000003f Bytes
11.687         Default                  UDAQ: Data: 0x0000003f Bytes
11.687         Default                  UDAQ: Data: 0x0000003f Bytes
11.687         Default                  UDAQ: Data: 0x0000003f Bytes
11.687         Default                  UDAQ: Data: 0x0000003f Bytes
11.687         Default                  UDAQ: Data: 0x0000003f Bytes
11.687         Default                  UDAQ: Data: 0x0000003f Bytes
11.687         Default                  UDAQ: Data: 0x0000003f Bytes
11.687         Default                  UDAQ: Data: 0x0000003f Bytes
11.697         Default                  UDAQ: Data: 0x0000003f Bytes
11.717         Default                  UDAQ: Data: 0x0000003f Bytes
11.737         Default                  UDAQ: Data: 0x0000003f Bytes
11.737         Default                  UDAQ: Data: 0x0000003f Bytes
11.747         Default                  UDAQ: Data: 0x0000003f Bytes
11.747         Default                  UDAQ: Data: 0x0000003f Bytes
11.747         Default                  UDAQ: Data: 0x0000003f Bytes
11.747         Default                  UDAQ: Data: 0x0000003f Bytes
11.747         Default                  UDAQ: Data: 0x0000003f Bytes
11.747         Default                  UDAQ: Data: 0x0000003f Bytes
11.747         Default                  UDAQ: Data: 0x0000003f Bytes
11.747         Default                  UDAQ: Data: 0x0000003f Bytes
11.747         Default                  UDAQ: Data: 0x0000003f Bytes
11.757         Default                  UDAQ: Data: 0x0000003f Bytes
11.777         Default                  UDAQ: Data: 0x0000003f Bytes
11.797         Default                  UDAQ: Data: 0x0000003f Bytes
11.827         Default                  UDAQ: Data: 0x0000003f Bytes
11.837         Default                  UDAQ: Data: 0x0000003f Bytes
11.837         Default                  UDAQ: Data: 0x0000003f Bytes
11.837         Default                  UDAQ: Data: 0x0000003f Bytes
11.837         Default                  UDAQ: Data: 0x0000003f Bytes
11.837         Default                  UDAQ: Data: 0x0000003f Bytes
11.837         Default                  UDAQ: Data: 0x0000003f Bytes
11.837         Default                  UDAQ: Data: 0x0000003f Bytes
11.847         Default                  UDAQ: Data: 0x0000003f Bytes
11.847         Default                  UDAQ: Data: 0x0000003f Bytes
11.847         Default                  UDAQ: Data: 0x0000003f Bytes
11.847         Default                  UDAQ: Data: 0x0000003f Bytes
11.847         Default                  UDAQ: Data: 0x0000003f Bytes
11.847         Default                  UDAQ: Data: 0x0000003f Bytes
11.847         Default                  UDAQ: Data: 0x0000003f Bytes
11.847         Default                  UDAQ: Data: 0x0000003f Bytes
11.847         Default                  UDAQ: Data: 0x0000003f Bytes
11.847         Default                  UDAQ: Data: 0x0000003f Bytes
11.857         Default                  UDAQ: Data: 0x0000003f Bytes
11.877         Default                  UDAQ: Data: 0x0000003f Bytes
11.897         Default                  UDAQ: Data: 0x0000003f Bytes
11.908         Default                  UDAQ: Data: 0x0000003f Bytes
11.908         Default                  UDAQ: Data: 0x0000003f Bytes
11.908         Default                  UDAQ: Data: 0x0000003f Bytes
11.908         Default                  UDAQ: Data: 0x0000003f Bytes
11.908         Default                  UDAQ: Data: 0x0000003f Bytes
11.908         Default                  UDAQ: Data: 0x0000003f Bytes
11.908         Default                  UDAQ: Data: 0x0000003f Bytes
11.908         Default                  UDAQ: Data: 0x0000003f Bytes
11.908         Default                  UDAQ: Data: 0x0000003f Bytes
11.918         Default                  UDAQ: Data: 0x0000003f Bytes
11.968         Default                  UDAQ: UDAQDevice::DeviceControl(KIrp I)
11.978         Default                  UDAQ: Data: 0x0000003f Bytes
          Monitor                   -- end --
百克
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-08-05 16:26
你要说明什么问题
是不是告诉我你的驱动会丢数据,或者速度达不到
如果是这样,肯定是你的驱动问题
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-08-05 16:27
你要说明什么问题
是不是告诉我你的驱动会丢数据,或者速度达不到
如果是这样,肯定是你的驱动问题(当然,硬件也可能,我的意思是实际上是可以做到满足你的速度要求的)
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
lejianz
驱动中牛
驱动中牛
  • 注册日期2003-03-05
  • 最后登录2023-11-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望145点
  • 贡献值0点
  • 好评度116点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2005-08-05 16:32
是呀, 你的问题是什么都没有说明, 别人怎么帮你
一起交流,共同提高!
细菌
驱动牛犊
驱动牛犊
  • 注册日期2006-11-13
  • 最后登录2007-03-17
  • 粉丝0
  • 关注0
  • 积分160分
  • 威望17点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-01-06 13:43
期待中
所有夺目,源自内心的坚持。
tyt5555
驱动小牛
驱动小牛
  • 注册日期2006-03-15
  • 最后登录2009-03-02
  • 粉丝0
  • 关注0
  • 积分1004分
  • 威望172点
  • 贡献值0点
  • 好评度131点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-01-11 14:49
期待中
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-01-15 09:32
2年前的东西了,楼上几位期待什么???
游客

返回顶部