一种基于MC145027的群模拟信号检测系统
A Detection system Based on MC145027for Group Analogue Signal
摘要:介绍一种基于MC145027的群模拟信号检测系统,该系统可通过单信号线将各探头和主机连接起来,其探头的路数最多可达242路;MC145027特殊的设码方式可使数据在传输过程中具有极高的可靠性,这在强电磁干扰的工业现场具有较高的应用价值。
关键词:多点检测;单信号线;可靠性;MC145026;MC145027
在工业自动化控制系统中,往往需要对多点模拟量进行检测,传统的方法是在各检测点设置传感器,并以三线或二线连接到主机,通过多路模拟开关和模数转换器件对各个模拟量进行模数转换,取得相应的数据以供主机处
理。这种方法存在如下缺陷:
·模拟电压在通过电缆传到主机的过程中容易受到干扰;
·主机要通过模拟开关选择传感器,这使探头的路数受到限制,主机的接口电路比较复杂;
·主机无法向各检测点传送控制指令;
·如果在检测点增加一个传感器,就必须增加一根电缆连至主机,因而增加了布线的复杂程度;
针对上述问题,笔者设计了一套基于MC145027的群模拟信号检测系统,使主机和各个探头之间只通过三根线即可进行双向的数据传输(如图1所示)。由于MC145027特殊的译码方式能够消除瞬间的强电磁干扰,因而数据在传输过程中具有很高的可靠性。
1. MC145027的解码方式
MC145027通常用作解码器,与之搭配使用的编码器为MC145026。为了说明MC145027的解码方式,这里首先介绍一下MC145026的编码方式。
1.1MC145026的编码
集成编码器CM145026的引脚功能和外部电路如图2所示。A1~A9是地址或数据输入端,当作地址使用时有三个状态(高电平、开路、低电平),当作数据使用时有两种状态(高电平、低电平);
、
的数值决定MC145026内部时钟振荡器的工作频率
;TE是内部时钟振荡器的工作控制端,当TE为低电平时,振荡器工作;
的输出编码信号如图3所示,两个连续的宽脉冲(占空比7:1)表示“1”,两个连续的窄脉冲(占空比1:7)表示“0”,一宽一窄两个脉冲表示“开路”。发送时,先发送17.5个时钟周期的低电平,接着依次发送A1~A2的状态编码,如果A1~A9的状态编码发送完毕后TE依然是低电平,经过24个时钟周期后再依次发送A1~A9的状态编码。其编码的发送工作不管TE在何时由低电平变为高
电平,均必须等到当前发送周期结束以后才能停止[1]。
1.2MC145027的解码方式
MC145027是与MC145026配套使用的解码器(MC145027/145028)的一种,具有4位数据输出和5位地址编码,根据其地
址的不同组合可以产生
种不同的地址编码。根据其地址的不同组合可以产生
种不同的地址编码。MC145027的引脚功能和外部电路如图4所示,其功能框图如图5所示。
MC145027通过RC积分电路来完成宽窄脉冲的识别,图5中,定时元件R1、C1决定对宽窄脉冲的识别。
。R2、C2是整个发送周期的辨别定时元件,用以确定各个有效单字,
。当编码信号从数据输入端(9脚)输入时,6脚将出现与9脚相同的信号,该信号经R1、C1积分电路积分后由7脚送至数据提取电路,数据提取电路在输入信号的每一个上升沿通过检测7脚的状态来判断输入的是宽脉冲还是窄脉冲。图6给出了6脚和7脚信号的波形,假定数据输入端输入的是“开路”编码(即一个宽脉冲和一个窄脉冲),宽脉冲开始于t0时刻,结束于t1时刻,窄脉冲开始于t2时刻,结束于t3时刻,整个编码于t4时刻结束。那么,在t1时刻,7脚的电压为:
在此时刻,数据提取电路检测到的7脚电平为高电平,说明上一个脉冲为宽脉冲;此后窄脉冲通过R1给C1充电,在窄脉冲结束时的t3时刻,7脚的电压为0.74Vcc,在此后的一段时间里C1通过R1放电,在编码结束的t4时刻,7脚的电压为0.1Vcc。此时数据提取电路检测到7脚的电平为低电平,说明上一个脉冲为窄脉冲。由此可见MC145027并不是对接收到的脉冲信号直接进行解码,而是将输入信号积分后进行解码,由于积分电路能滤除瞬间的尖脉冲干扰,因此MC145027接收的编码信号即使受到某种程序的干扰,MC145027依然能够进行正确的解码,这一点对于环境复杂的工业现场特别重要。
2.系统硬件电路的设计
该检测系统的硬件电路包括探头电路和主机接口电路两部分,主机和探头之间传输的格式遵循MC145026的编码格式。
2.1探头电路
探头电路的原理框图如图7所示。
主机发送至探头的编码信号线经过信号传至各个探头,经放大整形电路处理后送到MC145027进行解码,当地址判断一致后,VT由低变高向单片机申请中断,由单片机读取解码后的数据,MC145027能够解出4位数据码,4位二进制的数据码可以表示
种命令,单片机根据命令的要求将采集到的数据(温度、压力、湿度等)按照MC145026的编码格式由P1.7输出,再经过驱动电路回送至主机。
2.2主机接口电路
以486或586微机作为主机,通过并行打印口与探头交换数据的主机接口电路如图8所示。MC145027的A1~A5引脚的状态决定主机的地址码(00000),D6~D9分别和主机打印口的引脚13、12、10、11相连,上述4个引脚为打印机的状态输入口,口地址为379H(279H),分别对应于主机数据总线的D4~D7。主机通过打印口的14脚(口地址37AH/27AH,对应于数据位D1)向各个探头发送命令,探头接到命令后向主机回传所要求的数据,并通过MC145027解码后由主机读取。MC145027的VT引脚接至打印口的1脚(口地址37AH/27AH,对应于数据位D0),主机通过定时检测VT脚的状态来判断是否有应答数据到来。
3.软件的设计
3.1数据格式的定义
根据MC145026的编码格式,在一个发送周期里可以发送9位数据信息,我们定义A1~A5为探头和主机的地址信息,由于总共可表示243个地址码,而主机的地址码定义为00000,因而其余242个地址码可供探头使用;在主机发至探头的编码里,除了A1~A5表示探头的地址之外,尚有A6~A9共4位可以表示控制命令,共可组成
个命令码,设计时可以根据系统的要求将这16个命令码一一定义,以供系统使用。在探头发往主机的编码里,前五位A1~A5是固定格式00000,表示主机的地址号,后四位A6~A9表示发往主机的数据,一个字节分两次发送,先发高半字节(高四位),再发低半字节(低四位)。
3.2探头地址码的设置
MC145027的地址输入脚(A1~A5)有三个状态(高电平、平路、低电平)也就是说地址线是三进制数据,而单片机的I/O口是二进制状态(二进制数据格式),在探头电路中,为了使单片机发送的地址码与MC145027的地址码相对应,单片机必须能自动检测自身的地址。在图7所示的电路中,P1.0~P1.6作为地址设定脚,它们所表示的地址信息应与MC145027的地址(A1~A5)相同,这涉及到二进制到三进制转换的问题。由于表示243个地址需要8位二进制数据,而单片机只有7位地址设定脚,另外的一位(最高位)只能由程序设定。这样探头的地址就可以比较灵活地设置,因而具有一定的通用性。
3.3单片机的软件设计
探头电路中的单片机主要用来完成以下几个功能:(1)完成探头电路的自检;(2)接收并执行主机发来的控制命令;(3)根据主机的命令完成相应的动作;(4)按照MC145026的编码格式向主机发送数据。
3.4主机软件的设计
主机软件是整个控制系统的核心,在这里我们只讨论和探头通信有关的内容。在主控软件中设置一个定时中断程序,以定时检测MC145027的VT脚的状态,当VT脚由低电平变为高电平时,通过读取379H/279H口的内容来接收探头发来的数据。当主机向各探头发送命令时,就可通过并行打印口的14脚发送控制命令编码。主机命令码的发送格式也应遵循MC145026的编码格式。
4.结束语
利用MC145027独特的解码方式能有效地克服工业现场的强电磁干扰,保证数据的可靠传输,利用单片机(或486/586主机)模仿MC145026发送编码数据可有效地利用系统资源,节药成本,提高整个系统的可靠性。