Lonworks总线多点I/O智能节点的开发
被转换的模拟通道或测试电压寄存器;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小型水利机组综合自动化装置。此装置已在水电厂中投入使用,运行情况良好。
- 基于LonWorks的在系统编程技术(07-16)
- 小尺寸单片机在便携式设备中的应用(11-19)
- F1aSh存储器在TMS320C3X系统中的应用(11-11)
- USB设备的调试与测试技巧(11-11)
- 介绍一个关于协作安装程序的应用实例(11-11)
- 10大热点技术发展趋势分析(11-18)