前端数据采集能够及时获取被控对象和生产过程的有效信息,在某些实时性要求高的场合尤为重要。工业生产过程中,为了清晰地反映出生产过程的详细信息,往往需要获得多个参量的动态数据,这就有必要对被控对象和生产过程进行多路数据采集。COP8CDR9系列微控制器是美国国家半导体公司(National Semicondutor)推出的CMOS型8位FLASH微控制器产品。该系列产品集成度高,如:它集成了多达16路的10位A/D转换器、32KB可加密的FLASH程序存储器、1KB的数据存储器、1个全双工串行通信口、为节能设计的双时钟运行模式以及支持在红编程功能等。它能够以优越的性价比运用在多数工业生产中。该系列产品,采用44脚或68脚PLCC封装,以下是其主要的结构特点,如图1所示。
本文结合COP8CDR9微控制器的功能特点,重点介绍该型号芯片在多路数据采集系统中的应用。
1 COP8CDR9的A/D转换特性
以采用68脚PLCC的COP8CDR9为例。其PORTA和PORTB口为双功能口,既可用作一般的I/O口,也是A/D转换时模拟信号的输入端口。当用作A/D转换口时,PORTA、PORTB口支持两种信号的输入模式:一种是单端模拟信号输入模式,另一种是差分输入模式。因而可根据检测对象的特点灵活也选择信号输入模式进行A/D转换。
为配合A/D转换功能,COP8CDR9微控制器在其内部RAM映射表中有3个可直接操作的寄存器与之相关。其中,2个是转换结果寄存器和1个A/D转换控制寄存器,它们使得A/D转换的软件编程工作可以轻松完成。由于该微控制器提供了10位精度的转换,而该微处理器为8位系统,因而需要2个寄存器来暂存转换结果。这2个寄存器是高位转换结果寄存器(ADRSTH)和低位转换结果寄存器(ADRSTL),在RAM中的映射地址分别是0CCH和0CDH。转换结果寄存器的数据存放格式如表1所列。转换控制寄存器(ENAD)用来选择A/D转换通道、A/D转换模式、多通道输出以及启动A/D转换。ENAD寄存器中各位的设置决定了微控制器A/D转换工作方式。其中,CHANNEL
SELECT中的四位采用BCD码来选择转换通道。当MOD=0时,PORTA、PORTB口中的每位用作单端输入模式;当MOD=1时,PORTA、PORTB口中的每相邻两位用作差分信号输入模式;当X=1时,芯片还具有多通道输出的功能;Prescale位可用来选择A/D转换的时钟频率,当该位置位时,A/D转换的工作频率为主时钟的16分频,否则,转换频率和主时钟频率相同;当Busy位置位时,片内A/D转换模块启动A/D转换。完成一次A/D转换所需要的典型时间为15个A/D转换周期。A/D转换完毕,EAND寄存器的Busy位被机器内部硬件自动复位,并将转换结果存入ADRSTH和ADRSTL寄存器中,供总线读取。另外,该芯片内部提供A/D转换的参考电压,用作A/D转换时只需将V+和Vcc连接,V-和GND连接。ENAD寄存器中各位的定义详见参考文献[1]。
Channel select:A/D转换通道选择位,它由4位组成;
Mode select:A/D转换模式选择位;
Mux/Out:多路转换器/输出选择位;
Prescale:预定标功能选择位;
Busy:A/D转换状态位。
2 COP8CDR9构成的前端多路数据采集系统
由于COP8CDR9微控制器有着丰富的I/O资源以及多达32KB的片内FLASH程序存储器,因而可以在不外扩I/O(PLCC68封装)或外扩I/O口(PLCC44封装)的情况下,组成图2所示的前端多路数据采集系统。
如图2所示,该数据采集系统主要包括6个功能子模块,能够运用在大多数工业数据采集、记录场合。下面逐一介绍各个功能子模块。
(1)A/D转换子模块
该模式主要完成从模拟信号输入到量程转换(0~5V电压),输入方式转换,再到芯片内部完成模拟量的数字量化。一次典型A/D转换子程序如下:
…… ;初始化(略)
LD PORTAC,#X'00H
LD PORTAD,#X'00H
LD PORTBC,#X'00H ;设置A、B口为输入口
LD PBD,#X'00H
A/D:LD ENAD,#X'00H;对0通道单端输入信号进行转换
SBIT O,ENAD ;启动A/D转换
LD REG1,#X'20H
WAIT:DRSZ REG1 ;延时,等待A/D转换结果
…… ;相应处理程序
对于信号单端直接输入而言,其线路简单、易于实现,但可能信号干扰严重。信号差分输入具有抗干扰能力强的特点,图3为多路数据采集中采用的抗干扰差分输入转换电路。差分转换后电流为10~20mA。
(2)键盘显示模块
该模块为实现人机接口而设计。这可用来设定A/D转换的工作方式,比如,是多路巡回检测转换还是对特定的某位进行转换,并将转换结果通过显示子模块显示出来,可采用常用的8279芯片来实现。
(3)FLASH数据存储器模块
在某些需要记录重要数据的场合,比如数据黑匣子,就需要对采集到的实时数据立即保存,并且在系统掉电后,这些重要数据不被丢失。串行或并行FLASH数据存储器能够较好地解决这个问题。由于COP8CDR9微控制器自带32KB
FLASH闪速程序存储器,并且其支持Virtual EEPROM(虚拟电写电擦除只读程序存储),即在一起记录数据不大(小于32KB减去片内程序所占用的存储空间)的情况下,可以直接把采集到的数据写入片内FLASH中。这样,可以充分利用系统资源降低成本,并且提高系统工作的可靠性。
(4)实时时钟模块
该模块为多路实时数据采集系统提供一个统一的时间标准,方便后续的数据分析。可选用自带锂电池的实时时钟芯片DS12C887来实现。
(5)ISP接口模块
在系统编程ISP(In System Programming)接口模块,使技术人员不需要拆卸已经安装好垢前端采集系统,就能够很方便地对前端采集系统进行程序更新升级。该接口可以利用美国国家半导体公司推出的微控制器微总线方式SI(Serial
In)、SO(Serial Out)和SK(Serial Clock)来实现,也可以选择任意3根I/O通过软件编程实现ISP功能。
(6)RS485串行通信模块
COP8CDR9集成了一个全双工可软件编程的USART口,可以方便进行串行数据通信。该微控制器构成的数据采集系统采用RS485总线进行信号差分传输,克服了RS232总线传输距离有限的缺陷,并且通过上位机编码。RS485总线可以方便地把多个前端数据采集系统组合成一个分布式数据采集系统。
3多路数据采集系统在列车实时监控中的应用
列车运行状况监控系统主要用来记录列车在运行过程中的诸如发电机组电流、电压、线座温度以及制动系统压力值等参量的变化情况。其中,列车空气制动系统主要由每节车厢底部的主风缸、储风缸、副风缸、制动缸及管道组成。这些参数直接关系到列车运行过程的安全性,而现有列车在运行时缺乏对前端实时数据进行采集的有效手段。列车运行状况主要依靠列车值班员的感官和工作经验来判断,尽管列车经过一定年限要进行全面检修,但由于不能及时发现安全隐患,所以制约了进一步提高列车运行的可靠性。采用由COP8CDR9组成的多路数据采集系统,可以对诸如温度、压力等传感器转换成的电量信息进行采集、存储、并上传给上位车载计算机,起到实时获取列车运行状况的作用,以提高列车运行安全性。图4给出了运行列车综合数据采集系统构成的实时监控系统。其中上位机是新型列车上的计算机,该新型的列车每节车厢配备有RS485总线接口;下位机为安装在每节车厢同的以COP8CDR9微控制器为核心的前端多路数据采集系统。图4中的可移动硬盘可将采集到的数据在列车到站后导入铁路局地面上型数据库系统。该数据库系统用来分析和记录列车的运行状况。
结束语
COP8CDR9微控制器具有丰富的I/O资源,强大的多路A/D转换能力,可以在外围扩展电路不太复杂的条件下实现多路数据采集的功能。该系统系统具有较高的性价比,可以适用于多数具有一定精度要求的现场数据采集场