Lon总线多点I/O智能节点的开发_传感与控制论文
关键词:lonworks 智能节点 i/o扩展
lonworks现场总线由美国echelon公司于1993年推出,由于其开放的网络操作系统、标准的网络通信协议、丰富的介质接口模板、支持多种介质之间相互通信等特点,在工业控制领域得到了广泛响应。目前已有多种支持lonworks技术的芯片,echelon公司的神经元芯片neuronc31是一种集3个8位cpu及网络通信协议(lontalk协议)为一体的芯片。采用该芯片构成的智能节点在lonworks现场总线控制网络中起着举足轻重的作用,它能使现场设备之间相互通信,快速地交换,以满足系统实时监控的要求。但由于3150神经元芯片只提供11个通用i/o口,不能满足采集量和控制量要求较多的现场设备的要求,因此研究和开发基于神经元芯片的多点i/o的智能节点,是一项有意义的工作。
1 neuronc3150神经元芯片的特点
neuronc芯片既是lonworks技术的核心也是智能节点的核心,目前由toshiba和motorola两家公司生产,主要包括neuronc3150和neuronc3120两种系列。3150芯片中包括e2prom和ram存储器,同3120芯片区别在于它无内部rom,但具有访问外部存储器的接口,寻址空间可达64kbyte。从这一点来说,3150比3120在节点开发上具有更好的灵活性。3150芯片内部带有3个8位微处理器:一个用于链路层的控制,另一个用于网络层的控制,第三个用于执行用户的应用程序。该芯片还包含11个i/o口和完整的lontalk通信协议,它同时具有通信和控制功能。
2 基于神经元芯片智能节点的开发方法
基于神经元芯片开发的智能节点具有结构简单、成本低等优势,其开发方法可分为两种:(1)基于控制模块的硬件设计方法。采用这一方法的优势是可缩短产品的开发周期,因为控制模块通常都集成了神经元芯片、flash程序存储器、收发器以及ram等,用户只需设计自己的应用电路即可完成节点开发。(2)基于收发器的硬件电路设计方法。采用这一方法可以降低节点成本,提高节点的市场竞争力,但是这一方法需要在考虑应用电路设计的同时考虑神经元芯片与flash存储器及ram的接口电路,这对于电路板的设计加工及生产工艺的要求都较高。
3 智能节点的电路设计
节点采用主、背板结构。主板上集成有控制电路、通信电路和其他附加电路,其结构图如图1。背板设计为两种多点i/o模块(包括多点数字i/o模块和多点模拟i/o模块)。主、背板之间采用统一标准的20针接口。采用主、背板结构设计法,使得此智能节点的应用领域更为广泛,适应性、通用性和功能都大大增强,对于节点应用程序的开发也更为灵活。
3.1 主板电路设计
3.1.1 控制电路
控制电路主要由神经元芯片,主背板接口电路和片外存储器等组成。各元器件功能如下:
(1)神经元芯片 采用toshiba公司生产的3150芯片,它主要用于提供对节点的控制、实施与lon网的通信、支持对现场的输入输出等应用服务。
(2)片外存储器 采用atmel公司生产的at29c256(flash存储器)。at29c256共有32k字节的地址空间,其中低16k字节空间用来存放神经元芯片的固件(包括lontalk协议等)。高16字节空间作为节点应用程序的存储区。采用issi公司生产的is61c256作为神经元芯片的外部ram.。
(3)主、背板接口电路 用于主板与多点i/o模块的电气连接。
3.1.2 通信电路
通信电路的核心——收发器是智能节点与lon网之间的接口。目前,echelon公司和其他开发商均提供了用于多种通信介质的收发器模块。本智能节点采用echelon公司生产的适用于双绞线传输介质的ftt-10a收发器模块。
3.1.3 附加电路
附加电路主要包括晶振电路、复位电路和service电路等。
晶振电路为3150神经元芯片提供工作时钟。
复位电路用于在智能节点上电时产生复位操作。另外,节点还将一个低压中断设备与3150的reset管脚相连,构成对神经元芯片的低压保护设计,提高节点的可靠性和稳定性。
service电路是专为下载应用程序的电路,service指示灯对诊断神经元芯片固件状态有指示作用。
3.2 i/o扩展电路设计
3150神经元芯片包含11个通用口,用户可根据不同的需求进行灵活配置,以便于同外部设备进行接口。对于输入和输出(i/o)数量需求较大的外围设备,11个i/o口显然不能满足。虽然可以依靠增加节点数量来满足外围要求,但是这样做不仅成本价格高而且增加了安装的工作量,维护也不方便。因此,通过增加外围电路实现i/o扩展,成为多点i/o智能节点开发的重要部分。i/o扩展设计包括多点模拟模块设计和多点数字模块设计。
3.2.1 多点模块模块设计
多点模拟模块主电路图如图2。tlc2543是支持spi串行总线的11路模拟通道的12位逐次逼近型模/数转换器。cs(pin 15)片选信号端接io0;data input(pin 17)为串行数据输入,其中四位串行地址用来选择下一个被转换的模拟通道或测试电压寄存器;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的地址输入端(e、a、b、c管脚)相连。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小型水利机组综合自动化装置。此装置已在水电厂中投入使用,运行情况良好。