微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > Lonworks总线多点I/O智能节点的开发

Lonworks总线多点I/O智能节点的开发

时间:09-18 来源:电子技术应用 点击:

被转换的模拟通道或测试电压寄存器;DATA OUTPUT(Pin 16)输出模/数转换的结果; CLK是维持模/数转换正常工作的时钟。值得注意的是,时钟信号频率较高,任何一点干扰都可能影响模块的正常工作。在CLK上串联或并联一支电阻可以起到很明显的抗干扰效果,保证模/数模块的稳定。(本模块中, CLK接IO8,DATA INPUT接IO9,DATA OUTPUT接IO10)。TLC2543还有一个特点:IO9输入数据的同时,IO10输出的是上一次模/数转换的值,因此在编写NeuronC源程序时要注意模/数转换的时序。选用两支旁路电容:一支47μF电解电容,对低频起滤波作用;另一支为0.1μF,对高频起滤波作用。此模/数模块没有选用电压基准,故在模/数芯片的参考电压边上接了一支0.1μF电容,用以去除高频干扰。

3.2.2 多点数字模块设计

  多点数字模块主要包括:输入部分、输出部分、双向I/O三部分。通过扩展,模块具有16路数字输入通道、15路数字输出通道和3路双向I/O通道。

  (1)输入部分 采用两片8选1数据选择器74LS151级联,并将NeuronC3150的IO0~IO3定义为Nibble Output方式,即半字节输出方式; IO4定义为Bit Input方式,即位输入方式。IO0~IO3作为16路输入通道的地址选通信号,与74LS151的地址输入端相连。IO4作为数字信号入口,与74LS151的输出端连接。(具体电路如图3)下面的NeuronC源程序可完成对16路数字通道的定时扫描,定时时间为1s:

IO_0 output nibble io_mselect;//定义半字节输出IO

IO_4 input bit io_tmp; // 定义位输入IO

Stimer repeating t_circle=1 ; // 定义并初始化定时器

When (timer_expires(t_circle))

{ int i ;bit I_num ,temp[15];//定义循环变量通道状态数组初始化通道号

for(i=0;i<16;i++)

{ io_out(io_mselect,I_num) // 写通道号

temp[i]=(io_in(io_tmp)==ON)?1:0)}} // 读通道状态并存入状态数组

  (2)输出部分 如图4,输出部分由两片8位移位寄存器74LS164和两片74LS373锁存器组成。164的功能是将NeuronC I/O口的15位串行帧输出转化为15路并行信号输出。373锁存器的作用是使164的15路输出在电平转换后加以保持,直至下一次电平转换。为了满足15路并行输出的要求,在时序上需要使两片373严格同步。因此在硬件上增加了非门和RC电路,对两片373的使能信号加以协调。通过实验,证明此电路能够完全满足设计要求。在NeuronC源程序中将IO8 、IO9定义为Serial Output方式 ,即串行输出方式。其中IO8输出时钟信号,IO9输出串行数据。IO7定义为Bit Output方式,即位输出方式,作为164的清零端。

  (3)双向I/O部分 为了使用户对此智能节点的二次开发更为灵活、方便,我们在多点数字模块上设计了三个双向I/O口(IO5、IO6、IO10)。用户可根据自己的需要,利用模块上的拨动开关进行输入、输出切换。

  需要注意的是,为了提高智能节点的抗干扰能力,在输入、输出电路中均采用了光电耦合器进行电气隔离。特别在输出端加入了三极管功率放大电路以便驱动外部继电器。

  水电厂中的水利机组控制系统中有众多参量需要测量和控制(包括模拟量和数字量),如调速器开关、灭磁信号、主阀开关、冷却水泵、励磁投入信号、锁锭控制等。因此,系统对I/O口的需求量较大,传统的智能节点远远不能满足要求。而我们通过对多点I/O智能节点的开发,成功地研制出WSTA2000小型水利机组综合自动化装置。此装置已在水电厂中投入使用,运行情况良好。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top