求助:用研华PCI1751进行数据采集 点击:1072 | 回复:7



feichu

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2004年5月07日
发表于:2004-05-07 14:36:00
楼主
本人遇到了编写的采集程序漏采数据的问题,到底PCI1751的速度是不是和说明书上的一样?采集程序使用VC++编写,在WINDOWS2000底下运行,如果换为C编写或者汇编编写,在DOS下面运行,这方法可行吗?原来自带驱动程序里面的函数还可以应用吗?



yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-05-08 11:40:00
1楼
若是多通道轮询的A/D板卡,单通道采样速率可以达到标称值,多通道的话要用采样速率除以采样通道数,当然还要考虑到通道切换时间,所以每通道的采样速率还要在相除结果的基础上打个八折; 板卡以查询方式进行采样,在DOS系统下的响应速率会高一些,但若使用中断和DMA方式的话,不受操作系统的影响。 如果在DOS下编程,应该有专用的函数库,在驱动光盘上可以找到,并且也应该有相应的例子程序。

feichu

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2004年5月07日
发表于:2004-05-08 11:57:00
2楼
肥楚:PCI1751说明书上标明采样速率可以达到1MB/S,我用了其中的四个通道,要求采样速率达到160KB/S,这样可以吗? 另外请教使用中断和DMA方式的方法,先道个谢!

yoyo1101

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 590回
  • 年度积分:0
  • 历史总积分:645
  • 注册:2002年8月30日
发表于:2004-05-08 16:34:00
3楼
四个通道,每通道160KB/s应该可以实现,这是对多通道轮询的A/D板卡来说的。 刚才查了一下,PCI-1751是一片48路I/O卡,48通道并行,无论你使用多少个通道,原则上都应该可以达到标称速率,但是由于硬件没有设计FIFO,或者FIFO不够大,都会影响实际采样速率而达不到标称值,但是达到160KB/s应该没有问题,这一点可以请研华技术支持确认一下。 查询、中断、DMA是数据传输的三种方法,主要区别在于对CPU的占用率,查询方式占用率最高,DMA方式占用率最低,这几种方式可以通过不同的函数体现出来,具体可以参看例子程序。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-05-08 22:39:00
4楼
现在主要问题是用VC++所编的采集程序发生漏采数据,我是利用1751的PC00和PC10这两个端口的输入来作为采集数据的帧同步信号和采样信号(利用外部时钟),通过检测PC00和PC10这两个输入时钟的上升沿来触发采样程序(启动两个线程),程序中采用了1751自带函数库中的Check_Event()函数,感觉采集程序段不长,没有多余的语句,可是测得程序段的运行时间是采样周期(160KHZ)的十多倍,导致数据漏采,我怀疑是不是调用函数库中的数据传输函数耗时太长?

feichu

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2004年5月07日
发表于:2004-05-09 14:49:00
5楼
现在编程在WIN98下编,一用板子驱动自带的DRV_Checkevent()和DRV_EnableEvent()这两个函数就死机,原来在WIN2000底下运行没问题,不过在WIN2000下程序运行时间长,在WIN98下采集程序能跟上采样速度,研华PCI1751的驱动程序能够在WIN9X和WIN2000下通用吗?我是利用上述两个函数来查询外部时钟的上升沿来触发采样程序的

feichu

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 4回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2004年5月07日
发表于:2004-05-17 12:56:00
6楼
研华PCI1751I/O卡到底有几个通道?是48个或者是6个通道? 我用了其PORTA0,PORTB0,和PORTC1,PORTC0四个端口传送数据,现在要求每个通道达到160KByte/s的传输速率,它的说明书上的标称速率是1MByte/s,这个速率到底是怎么算的? 是按48个通道,还是按6个通道来算的?

静然

  • 精华:1帖
  • 求助:0帖
  • 帖子:12帖 | 194回
  • 年度积分:0
  • 历史总积分:271
  • 注册:2004年4月23日
发表于:2004-05-17 13:28:00
7楼
其48位分为6个8位的I/O端口!

热门招聘
相关主题

官方公众号

智造工程师