基于CEBus总线的铁路灯塔控制系统的设计_传感与控制论文
关键词:cebus总线 扩频 电力线载波
1 系统介绍
铁路沿线的各站点都装设有用于照明的大型灯塔。目前对灯塔的控制一般采用集中控制方式,在控制室中使用多个闸刀对灯塔进行一对一控制。因灯塔和控制室常位于铁路两侧,所以施工较困难,而且电缆的投资大,自动化水平也不高。采用电力线载波通信技术,在现成的电力线路上传输数据,无需装设通信线路,也不占用无线通信频道资源,可很好地解决这个问题。但由于电力线上存在高衰减、高噪声、高变形等问题,它不是一个理想的通信媒介。因此要在电力线上实现可靠的载波通信,必须选用基于扩频技术的抗干扰能力强的电力线载波专用modem芯片来设计铁路灯塔控制系统。
铁路灯塔控制系统由一个主站和若干个子站构成,主站和子站挂接在单相或三上低压电力线上。主站安装于控制室内,子站安装于各灯塔底座的控制箱内。主站和子站以扩频电力线载波通信方式实现数据交换。
系统中站和子站的载波通信网络接口控制器选用美国intellon公司的sscp300芯片。该芯片是一个高度集成的电力线收发器和信道存取接口,提供了cebus(用户电子总线)总线标准。cebus是eia(美国电子工业协会)制定并颁布的一种通信标准,目前为eia-600。cebus标准是一种应用于网络的开放式通信协议,采用节点到节点的通信方式,数据传输速率为10kbps。cebbus协议采用iso/osi协议中的四层:层、数据链路层、网络层和应用层。一个cebus由报头和数据包组成,如图1所示。报头是载波侦听多路访问/冲突检测(csma/cdcr)协议的一部分,发送方用监听传输介质中是否有其它发送方占用信道,以获取对传输通道的控制权。cebus采用扩频载波(ssc)技术,形成“chirp”扫频信号,对报头采用ask调制,数据包采用prk调制,频率范围为100khz~400khz。
2 硬件结构
2.1 主站及子站的硬件结构
主站及子站的硬件结构如图2所示。
主站以pic16f877单片机为核心,由指示、键盘、rs232接口、在线编程接口、通信接口等单元组成。指示单元用74ls164串/并转换芯片实现,接到pic16f877单片机的rb5和rb4引脚。键盘单元用74ls165并/串转换芯片实现,接到pic16f877单片机的ra3、ra4和ra5引脚。主站定义了具有如下功能的按键:(1)一个灯塔的东西南北灯组选择;(2)子站地址选择;(3)锁键盘;(4)运行命令。在线编程接口单元利用pic16f877单片机的/mclr、rb3、rb6、rb7四个引脚对cpu的在系统程序及定值进行修改。主站利用max202实现标准rs232通信接口,可与上位监控pc机进行数据通信,也可外接modem来实现远程通信。
子站由pic16f877单片机、指示、在线编程接口。固态继电器出口、地址编码、通信接口等单元组成。地址编码用于设置本子站的地址码,用一个八位开关与pic16f877单片机的rd口连接,共有256个编码。每个子站装有四个固态继电器,用于开启和关闭一个灯塔的东西南北四个方向的灯组。
2.2 通信接口
主站和子站的通信接口原理如图3所示。
sscp300网络控制器提供了一个与spi兼容的主处理器接口,将pic16f877的rc3(sck)、rc4(sdo)、rc5(sdi)引脚定义用于spi串行通信,分别与sscp300的sclk、sdi、sdo连接。sscp300的片选信号/cs、复位信号/rst及中断信号/int分别连接与pic16f877的rb3、rb2及rb1引脚。由sscp300产生的“chirp”波形输出到其so管脚,经放大、三级滤波、sscp111媒介接口ic放大后,被传输到电力线耦合电路并送至电力线。由电力线经耦合电路来的“chirp”波形经无源六级lc构成的滤波器后,被传输到sscp300的si引脚。耦合电路采用铁氧体磁环作为耦合变压器的磁芯,变比为1:1,初次级线圈的匝数均为7。采用tvs来抑制较大幅度或较大加速度的瞬间电压。
3 软件结构
系统的软件采用模块化结构,主要包括初始化模块、输出控制模块、键盘扫描模块、通信模块等。整个软件分为主站软件和子站软件两部分。下面以通信模块软件的设计为例来说明程序设计方法。
sscp300向与之连接的pic16f877单片机提供cebus服务。pic16f877单片机通过spi接口对sscp300进行初始化、层设置、数据链路的存取控制设置等操作。完成以上步骤后,可进行数据的发送和接收。
pic16f877单片机与sscp300间各种形式的数据交换由控制命令来实现。常用的控制命令、十六进制码及功能如表1所示。一般情况下,命令后紧跟数据长度,接着为数据。
表1 常用控制命令
命令码 | 命令值 | 命令名称 | 功 能 |
rst lr lw ir pr pt wrs-46 | 0x01 0x02 0x03 0x04 0x08 0x09 0x46 | reset layer_management_read layer_management_write interface_read packet_receive packet_transmit write_register_46 | 复位 读层 写层 读标志位 接收分组 发送分组 设置数据链路控制 |
3.1 sscp300的初始化
当电源接通或执行复位命令时,sscp300将执行一个内部诊断和建立序列。直到此序列被执行完毕,命令才能被送至sscp300。在对sscp300进行初始化之前,pic16f877要完成i/o口的初始化、片内ram初始化以及spi接口的初始化。
3.2 层设置
初始化完成后可进行层信息设置。层设置的数据长度为7个字节,字节0为控制方式,一般设为数据链路(dll)方式;字节1为组地址的低八位;字节2为组地址的高八位;字节3为设备地址的低八位;字节4为设备地址的高八位;字节5为系统地址的低八位;字节6为系统地址的高八位。在设置地址时应注意某些段内的地址为保留地址,不要使用,如0x0000为广播地址。
在层信息设置的过程中,首先单片机向sscp300写入lw命令及数据长度“0x07”,然后确定好0~6字节的数据信息。层信息设置完成后,应用lr命令读回,判断读回信息与写入信息是否一致。如果一致则说明设置成功,否则应重新初始化后再设置层。
3.3 数据链路存取控制设置
若节点之间的通信采用地址应答方式adrack或地址非应答方式adruack,则应进行数据链路存储控制设置,由命令wrs-46来实现,数据长度为1。可设置的内容为:(1)在主处理器的每个发送期内需要发送adruack的次数;(2)在信道间存取的时间;(3)对于ack和adruack,是否需要尝试多信道存取。
3.4 数据的发送和接收
数据的发送和接收分别由命令pt和pr来实现。单片机送出pt命令后,接着送出数据长度、控制域、目标节点的设备和系统地址、源节点的设备和系统地址、数据等。应答或非应答通信方式由控制域决定。源节点地址应和初始化的地址一致,数据长度不超过32字节。发送完成后应读回标志位,判断是否发送成功。当sscp300接收到有效数据帧时,将向单片机提供一个中断信号,单片机检测到该信号后发送pr命令,读回sscp300接收到的数据帧其格式与发送数据帧类似。接收完成后也应进行正确性判断。
基于cebus总线的铁路灯塔控制系统采用“chirp”方式进行载波,实现了对通信信号的扩频;以低压电力线作为通信媒介,免去了构建新的通信信道的不便,具有通信速度快、抗干扰能力强、可靠性高等优点。该技术还可应用在自动抄表系统、智能大厦、智能小区以及一些干扰大、布线困难的工自动化系统中。
由于电力线不是一种理想的通信媒介,所以在应用时应考虑到下几点:(1)电力线载波信号只能在一个配电变压器区域范围内传送。若要跨越变压器区域范围,则应设计一个双耦合节点。(2)信号在电力线上传输存在衰减问题,一般信号的衰减随着传输距离的增加而增加。可采用提高载波信号功率、三相耦合、中继等方式来解决。(3)电力线上存在高噪声。(4)电力线网络会引起数据信号变形。