APP下载

STC单片机在高速数据采集和控制系统中的应用

2011-10-16

长春师范大学学报 2011年2期
关键词:高速数据双口缓冲器

周 超

(长春职工大学,吉林长春 130051)

STC单片机在高速数据采集和控制系统中的应用

周 超

(长春职工大学,吉林长春 130051)

本文介绍了数据采集和控制系统的设计,根据测试要求不断的提高,利用STC10F08单片机和双口缓冲接口芯片CH421设计出高速数据控制采集系统,并从实际应用的要求和性能指标来设计出相关的硬件和软件,详细地阐述了硬件设计的思路和达到的结果。

STC10F08单片机;双口数据缓冲芯片CH421;数据采集;AD7705

在现代的工业生产的控制过程中,需要很多数据的实时采集、分析、处理及保存,用来指导产品的配料和配方的调整,使产品得到及时的控制和质量的保证。一般地,要用机电一体化的设备进行控制,如各种材料试验机、生产的流水线等。采用实时的方法对数据的采集处理有较高的要求。笔者设计了一种高速的数据采集和控制系统,该系统采用多个单片机和双口缓冲RAM的方法,利用高精度的AD转换器,使数据能够快速地采集、分析、处理,并及时对所控制的设备进行调正,满足生产上的要求。

数据采集和控制系统由于采用了单片机技术、贴片的元器件等手段,减小了体积,提高了速度,使用方便,测量准确,功耗低,可靠耐用。经过多年的实际使用,受到用户的好评。

1 数据采集和控制系统主要功能

(1)采用Σ-Δ转换技术的16位的AD转换器,采集多路信号。

(3)测量的数据可全量程不分档,并任意标定。

(4)通过双口数据缓冲芯片CH421可以与复杂的网络、PC机、USB提供人机交互接口。

(5)可通过产生PWN信号或电压能控制伺服电机等设备。

(6)可对脉冲信号采集并分析处理。

(7)能够与PC机进行数据通讯,按PC机的指令操作,以完成数据采集和控制的全过程。整体功能框图如图1。

2 数据采集和控制系统的硬件设计

根据系统的要求,本系统中配接二片单片机和一片双口缓冲芯片CH421、AD转换器AD7705、前置放大器AD625、1014彩色液晶屏等。下面分别说明一下各部件的功能和实现的作用。

2.1 本数据采集和控制系统的单片机是型号为STC10F08的单片机

此款单片机,集成的混合信号片上系统 (Soc)是有与MCS51的内核及指令集完全兼容的微处理器。主要性能为:(1)高速度,单时钟/机器周期的单片机,比传统的单片机快10至12倍;(2)内部集成高可靠复位电路,适合高速通信,智能控制,强干扰场合;(3)具有最大64K B可在线编程的Flash存储器;(4)具有片内数据存储器;(5)具有P0、P1、P2、P3、P45个I/0接口;(6)2个通用16位计数器/定时器;(7)5个捕捉/比较模块的可编程计数器/定时器;(8)可寻址64K B地址空间的外部数据存储器接口;(9)片上看门狗定时器、Vdd监视器和温度传感器;(10)该单片机的温度范围 (-45至-85),工作电压5至316V。端口I/O,/RST,都容许5V输入信号电压,是44引脚TQFP封装的芯片。

本系统中共用2只STC10F08单片机。其中一只单片机用来做主控单片机,主要负责数据采集的任务,包括与AD转换器连接、处理输入的脉冲信号、提供各种信号,及时把信号传送给CH421双口RAM,也能及时读出上位机发出的命令并加以执行,用串口连接彩色液晶屏,能接受触摸屏的信号并加以处理执行;另一只单片机作为辅助单片机,用来产生PWN和电压信号能控制伺服电机等设备,还要负责处理复杂的网络通讯协议,与上位机进行接口联系并执行上位机的命令。这种结构才能保证高速的目的。

为了能够达到采集数据的数量和速度,本设计采用多个单片机来完成信号的采集,并在单片机之间用双口RAM CH421进行连接。用这种方式可以把串口的信号转换成并口的信号进行传输大大的提高了速度,满足了系统的要求。

图1 数据采集和控制系统功能框图

2.2 双向缓冲芯片CH421

这是一个提供双向缓冲的接口芯片。CH421有X和两个8位被动并行端口,通过共享66个字节的双端口数据缓冲区,实现X端与Y端之间的单片机进行双向异步数据交换。引脚框图见图2。

图2 双口缓冲器CH421引脚图

CH421的主要特点:(1)通用的8位双向数据总线,可以直接到单片机的系统总线上;(2)可以提供共享的66字节的数据缓冲区;(3)分别为X端和Y端一个字节的单向缓冲区,即一端写可两端读;(4)低电平有效的通用并行接口控制信号:片选控制线,读选通线,写选通线;(5)只占用两个地址位:索引地址口,读写数据口后内部索引地址自动递增;(6)提供两端软件可控制的中断输出引脚INT#,低电平有效;(7)最大传输速度不低于每秒7M字节。

CH421的工作原理:CH421内置了一个双口SRAM存储器,具有两套地址线,两套双向数据线,以及两套读写控制线,分别连到X端和Y端,共有66个字节,地址范围是00H~41H。X端连接一只单片机,Y端连接另一只单片机。从Y端写入的数据,在X端可以读出,这样就实现了两只单片机的数据交换,只有用并行的方式才能保证速度。

CH421还在X端和Y端各有一个字节的单向缓冲器,是一端写入两端可读的。X端可写的地址是42H,Y端可写的地址是43H。CH421的INT#引脚是软件可控的中断请求输出,当单向缓冲器位7被置1时就会使INT#引脚输出低电平。在实际应用中还是采用中断的方式传递数据最可靠,而且当我们写完一组数据后,发出中断信号,另一端响应马上读出。

CH421外部只有一根地址线XA0或者Y A0,为0指向索引口,为1指向数据口。

CH421的Y端速度比较快,X端速度较慢,并且Y端比X端的优先级高。

与单片机连接见图3。

图3 单片机连接双口缓冲器的原理图

由图3可以看出,CH421把两只单片机连接起来了,其中双方只用了数据总线、读写信号、片选信号、A0信号。这些都是单片机的基本信号,硬件电路并不复杂,但却提高了速度。接单片机的时钟为1110592MHZ,那么一个机器周期=1/11059200=0109us。单片机写入一个字节大约用4个周期,也就是用0136us的时间,假如我们一次写入的数据100个字节,总共用时约36us,那么传送的速率为27777/s,见表1。

表1 CH421并口I/O操作的真值表

2.3 A/D转换器型号AD7705

AD7705是美国AD公司推出的16位Σ-ΔA/D转换器。器件包括由缓冲器和增益可编程放大器 (PG A)组成的前端模拟调节电路、Σ-Δ调制器、可编程数字滤波器等部件。内部有增益可编程放大器AD7705包括两个全差分模拟输入通道。片内的增益可编程放大器PG A可选择1、2、4、8、16、32、64、128八种增益之一,能将不同幅度的各类输入信号放大到接近A/D转换器的满标度电压再进行A/D转换,这样有利于提高转换质量。当电源电压为5V,基准电压为215V时,器件可直接接受从0~20mV至0~215V幅度范围的单极性信号和从0~±20mV至0~±215V范围的双极性信号。输入的模拟信号被A/D转换器连续采样,采样频率fS由主时钟频率fCLK和选定的增益决定。

数字接口AD7705的串行数据接口包括5个接口,其中片选输入CS、串行时钟输入SCLK、数据输入DIN、转换数据输出口DOUT用于传输数据,状态信号输出口用于指示什么时候输出数据寄存器的数据准备就绪。当DRDY为低电平时,转换数据可用;当DRDY为高电平时,输出寄存器正在更新数据,不能读取数据。器件的A/D转换过程是按设定的数据输出更新速率连续进行的。任何操作都需要对相应片内寄存器送入新的编程指令。

片内寄存器AD7705包括8个寄存器,均通过器件串行口访问。

由上所述采用AD7705转换器能够满足设计的要求,在实践中证明效果也是很好的。以下是单片机连接AD转换器见图4。

图4 单片机连接AD转换器

2.4 前置放大器AD620

采用美国Analog Device公司生产的仪表放大器AD620。前置放大器采用差分输入,提高阻抗抑制共模噪声。为了保证两端信号保持平衡在两路输出信号加上低通滤波器,由于A/D转换器的模拟信号输入电压是0~215V的信号,所以前置放大器AD620将20mv的信号放大至215V,放大倍数约为125倍左右。AD620的增益计算方法为:G=(4914KΩ/Rg)+1,Rg=4914KΩ/(G-1)=4914KΩ/(125-1),Rg约等于398Ω。见图5。

具有这样的前置放大器就可以配接多种桥式测量传感器,满足现场的要求。

2.5 控制电机信号的产生

一般的控制系统中,都需要和伺服电机进行配接。目前大都采用数字输出信号控制电机的转动。笔者采用控制频率方式。实践证明用频率的方式电机旋转稳定,没有漂移。用STC10F08的定时器2产生精确的频率,来控制电机的旋转。所产生的频率由下式确定:Fcexn=SYScLK/(23((65536-(RCAP2h,RCAP2L))),式中SYScLK是单片机的时钟频率。通过改变RCAP2HRCAP2L的数值,就可以改变输出频率,并改变速度。有脉冲后,再加一个控制方向的电平,当高电平时左转,低电平时右转。

2.6 抗干扰的设计

(1)要使用STC10F08的看门狗功能。

(2)电源要加上抗干扰滤波器。经过稳压模块将各个电源分开,并分开接地。减少交叉耦合。

图5 前置放大器原理图

(3)与外设系统的连接加上光电耦合器件。

(4)所有的屏蔽线要就近接地。

实践证明,采取上述措施大大减少了干扰,使数据采集和控制系统稳定地运行。

3 数据采集和控制系统的软件设计

在已有硬件基础上,笔者采用C++语言进行编程设计。软件采用模块化的方式来设计,这样有利于调整和修改。下面介绍几个主要的模块。

3.1 系统的初始化

因为采用的是STC10F08单片机和CH421、AD7705转换器,加电以后对系统要进行初始化,读参数等操作根据要求做如下配置:(1)配置看门狗:系统采用的时钟是1110592MHZ,看门狗溢出时间= (123Proscale332768)/11059200,溢出时间为7111ms。程序运行周期最长不过30ms左右,在30ms时间内可以喂一次狗。可以保证程序正常运行。(2)配置AD7705转换器的初始化。(3)读取EEPROM 24C64存储器里面设定过的参数。(4)把彩色液晶屏显示主画面。

3.2 主函数设计框图

图6 主函数流程图

因篇幅有限,源程序不能全部写出。本高速数据采集和控制系统完全按照工业要求设计,由于采用高速的AD转换器和双口缓冲器RAM实现了高速,高精度,大大提高了系统的数据吞吐量,满足用户的需求。通过设置不同的参数可以应用在各种场合。

4 结束语

以上开发设计的高速数据采集和控制系统,经过多年的应用取得较好的效果。控制灵活方便,数据准确,彩色液晶触摸屏实现方便的人机对话,用户操作简单方便。由于体积小,功耗低,能长时间稳定工作,特别是有的试验要做几百个小时仍能正常工作,可靠性很高。现已为大专院校、科研院所、企事业单位及相关生产行业提供了精度高、性能稳定可靠的高端测控仪器,既创造了较好的经济效益,又收到了较高的社会效益。

[1]何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,1997.

[2]苏长龄,刘威.C语言程序设计[M].北京:中国铁道出版社,2006.

[3]王新贤.通用集成电路速查手册[M].济南:山东科学技术出版社,2003.

[4]许锦峰,陈炳全.双通道逻辑控制高速实时数据采集系统的设计[J].电子技术应用,2007(11).

[5]崔建华,孙红胜,王保进.硬件实时操作系统的设计与实现[J].计算机技术应用,2008(5).

[6]张兴会,赵杰.智能数据采集系统的研究[J].仪器仪表学报,2001,22(4).

The Application of STC-based Singlechip in High-speed Data Acquisition and Control System

ZHOU Chao
(Changchun Staff University,Changchun 130051,China)

In this paper.we describe the design of data acquisition and control system.According to the continuous increase of test requirements.we can design the high-speed data acquisition system by using the present STC10F08 singlechip and dual-port buffer interface chip CH421.From the practical application of the requirements and performance indicators.we can design the relevant hardwares and softwares.We explain the thought and result of the design of relevant hardwares de2 tailedly.

STC10F08 singlechip;dual-port buffer interface chip CH421;data acquisition;AD7705

TP273

A

1008-178X(2011)02-0061-06

2010-02-19

周 超 (1952-),吉林长春人,长春职工大学讲师,从事数据库及单片机研究。

猜你喜欢

高速数据双口缓冲器
更正
重载货车用缓冲器选型的研究及分析
双口RAM在航天伺服系统中的应用
基于AD9250的高速数据接口设计
Matching mechanism analysis on an adaptive cycle engine
起重机检验中缓冲器选型问题的分析和探讨
PCI-e高速数据采集卡的驱动与上位机软件设计
双口RAM读写正确性自动测试的有限状态机控制器设计方法
基于AD7891的浮空器高速数据采集系统设计
双口RAM在无人机三余度飞控计算机数据交换中的应用