background image

基于计算机技术在电视方面的发展

 数据采集卡的工作过程如下:主机发出启动命令,由硬件产生一个单片机系统的触发信
号,启动采集卡开始工作。此后由单片机系统接管控制整个采集卡的工作。单片机系统控制
数据采集通道进行采集,采样频率由单片机系统中的定时部分决定,采样频率是可编程的
根据电机的运行性能决定。采集到的数据暂存于采集卡上的一个缓存区中。当一个缓冲区存
满数据时,单片机发出一脉冲,作为主机的中断信号。此后,单片机继续采集数据,并将采
集到的数据存于另一个缓冲区中,既实现了数据采集的连续性,又大大降低了因数据采集
引起的硬件中断,避免了主机频繁地进行硬件中断处理,降低了主机的工作负荷。采用此方
式,还避免了主机与单片机发生读写同一个缓冲区的冲突,使单片机向缓冲区写采集数据
与主机从缓冲为提高系统的工作性能,硬件进行电磁兼容性设计。主要措施有:(

1)低通

滤波器、工频陷波器,滤去高频信号和工频信号的干扰。(

2)在采集点对

传感器

输出的小信

号进行前置差分放大,抑制串模干扰并提高传输过程中的信噪比。(

3)采用光电隔离措施,

将模拟信号与数字信号隔离,防止两者相互干扰。
  软件部分

NT 驱动程序的基本知识驱动程序与应用程序差别很大,其中包括它们的运

行模式的差别和控制结构的差别。驱动程序运行在内核模式,应用程序运行在用户模式。在
内核模式下,可以执行特权指令,对任何

I/O 设备有全部访问权,能访问任何虚拟地址和

控制虚拟内存硬件。在用户模式下,硬件防止特权指令的执行,并进行内存和

I/O 空间引用

的检查。驱动程序没有

main 或 WinMain 函数,是由 I/O 管理器根据需要调用的子例程组成

的集合。应用程序从头到尾都在

main 和 WinMain 函数的控制下运行,确定各个子例程被调

用的顺序。软件的设计说明软件根据功能可分为两个部分:应用程序和硬件驱动程序。应用
程序只在用户模式运行,无法直接操作硬件,为了采集数据,故采用驱动程序编写与硬件
有关的部分,应用程序中利用

WindowsAPI 函数采集数据。为提高主机资源利用率,动态进

行数据处理,以及及时处理用户输入,应用程序采用多线程处理机制。应用程序创建了

3 个

线程,其中一个为数据读取线程,一个为数据处理线程,一个为用户输入响应线程。并通过
调高数据处理线程优先级,以实时处理数据。应用程序调用

ReadFile()函数后,由驱动程

序发出命令,启动数据采集卡,此后数据采集卡独立于主机工作。当采集卡上一个缓冲区采
满数据时,采集卡向主机发出硬件中断,触发驱动程序的中断服务例程读取数据,之后数
据处理线程得以执行。由于电机运转时不可避免地会产生振动,以及其他因素的影响,采集
到的数据不可避免地带有干扰成分,因此应进行滤波处理。除了前面提到的硬件滤波器外,
在应用程序中采用了软件滤波措施:先根据

3D 法则剔除坏点,再利用平均值滤波法去除

随机干扰,提高原始数据的准确度。为及时了解电机运行状态,实时显示电机运行时的特性
曲线,包括电压曲线、电流曲线、转速曲线、转矩曲线、机械特性曲线等,曲线种类可由用户
输入决定。采用曲线拟合的方法生成特性曲线,提高了曲线的光滑度。应用程序采用
VisualC++来编制。
  结束语本系统适用于电机的中速实时数据采集应用场合。若进行高速数据采集应用,可
进行以下改进:(

1)将编程 I/O 方式改为 DMA 方式,提高数据传输速率。(2)提高数据

处理线程优先级,至实时优先级,提高数据处理速度。