Windows 95下智能数据采集系统
不难看出,直接在PC机上编程解决定时问题要求调试者有较高的编程水平,程序调试困难,可靠性差。
为此,我们设计了一套智能数据采集系统。用单片机89C51作为中央处理单元,控制模/数据转换、外部数据存储器等外围设备,进行数据的定时采集和预处理。通过绝大多数电脑都具备的并行口作为数据采集系统与计算机的接口,与PC机进行数据传输。由单片机管理定时采样和进行部分信号预
处理工作,解决了Windows 95下定时采样的问题,减径了PC机方面编程的工作量,使应用程序可以精力进行数据采集后的处理工作。
智能数据采集系统
智能数据采集系统的框图如图1所示。信源信号经放大滤波后进入A/D转换器。单片机以一定的采集率在定时中断内读取A/D转换器的输出,送入RAM中暂存,在定时断外则将RAM中存储的数据不断经并口送入PC机。PC机中的应用程序由并口接收单片机发送的数据,并对其进行数据处理和显示。
1.单片机与主机间的并口通信
随着计算机技术的发展,微机的并行口发生了很大的变化,由原来的只能打印,即只能向外设传输数据,发展成为可以在微机与外设之间进行双向、快速交换数据的双向并行接口。利用双向并行口使得PC机能与数据采集系统的单片机之间以异步的、全互锁的双向并行方式通信。它能减少用户交互地操作外部设备的次数,以更高的传输速率完成数据传送。
并口通信硬件部分原理如图2所示,软件部分流程图如图3所示。
并口通信利用了D触发器74HC74的预置和清零功能提供传输数据所需的握手信号。用八D锁存器74HC573完成单片机传出数据的锁存。在单片机向PC机送数时,单片机先将数据锁存在74HC573中。74HC573的输出端接到微机并行口的数据寄存器的输入端。数据锁存后,单片机将74HC74的清零端CD清零,使输出端Q输出低电平,Q端同时送至并行口的状态寄存器,通知PC机可以取数。PC机检测到这一信号后,经控制口选通数据锁存器,将锁存的数据取出,并将触发器置位端SD置1,使Q端输出高电平,通知单片机数已取出,可以送下一个数据了。单片机检测到触发器Q端输出变为高电平后,又将1个新数据锁存至74HC573中,同时使触发器输出电平翻转,通知PC机取数。如此往复,直到PC机不再需要读数为止。值得注意的是:为了避免由于时序的不匹配造成的清零和置位端同时有效,在单片机(PC机)进行清零(置位)前,应对PC机(单片机)的置位(清零)端进行检测;而为了避免数据的传输错误,每发16个数据即进行1次累加器和与异或和校验。PC机如发现检验结果错误,即通知单片机重发刚才的16个数。
采用这种电路进行并口通道,电路设计简单,只需1片74HC573和1片74HC74即可实现。74HC573和74HC74的使用都很简单,使得程序编制也很容易,大大提高了传输速度。
2.单片机与RAM间的数据交换
在并口通信中引入RAM,是为了解决Windows下应用程序在数据采集时无法及时响应消息的问题。RAM在系统中起到了“蓄水池”的作用:数据采集卡上单片机89C51以200Hz的采样率在定时中断内读取模/数转换器MAX126各通道转换结果,送入外部RAM中暂存;而在主程序内,则将RAM中存储的数据取出,通过并口通信传给笔记本电脑。数据在RAM中以循环队列方式存储。这样,在Windows响应其他消息,笔记本电脑速度较慢时,采入的数据在RAM中暂存;而在笔记本电脑速度快时,单片机将RAM中存储的数据取出传出。因为总体来讲笔记本电脑的速度是足以在中断时间内传完RAM中存储的数据的。所以只要RAM的存储量足够大(几倍于Windows响应其他消息可能花费的最大时间),就可以保证数据的连续传输。单片机与RAM数据交换流程如图4所示。
3.最高采样率的限制
对最高采样率的讨论可以分为两种情况:实时传输和非实时传输。
在实时传输时,像前面提到的那样,单片机采集到数据,在定时中断内经RAM暂存,在定时断外则不断经并口向PC机发送。因而采集系统的最高采样率由于受到单片机与RAM间数据交换以及与PC机并口通信指令执行时间的限制,并假设在使用89C51,12MHz晶振时,采样数据精度是单字节的,则单通道采样率不应高于32kHz。
《Windows 95下智能数据采集系统(第2页)》