嵌入式技术
电力线载波通信使用电力线作为信号传输的通道,完成工程上的“最后一公里接入”的通讯需要。由于电力线载波使用大部分电器所需的电力供应线路接入,所以不需要提供另外的专用通讯线路,在用户使用便捷性、安装施工和节省线路成本上具有很强的优势。
本文针对这个问题提出了一种基于电力线载波和mesh自动组网技术的楼宇自控系统,由于电力线载波技术使用已有的电力线作为信息传输的媒介,这样不仅可以省却用户初期安装系统的布线麻烦,而且后期维护也会比较容易,具有比较好的前景。
2.1 系统物理拓扑结构
基于电力线载波的通讯系统在通讯物理线路上使用电力线,由于电力线的特点,网路拓扑是典型的总线型网络,拓扑结构如图1所示。
对于跟受控设备直接连接的终端器将扮演从机的角色,用户终端通过电力线与其他终端形成总线型局域网,另外一端就是各种检测和控制量的连接。在每个楼宇或者小范围内安装一个集中控制器,然后配备pc或者电脑终端,这样楼宇管理人员就可以集中收集信息或者进行管理。
2.2 系统软硬件与网络栈模型
楼宇自动化系统实际是个典型的计算机通讯系统。本文的设计任务主要有基于电力线通讯技术受控节点控制器,电力线通讯网络中继,以及与pc接口的电力线网关。涉及软硬件的设计和网络技术。本系统采用参照osi参考模型并根据实际情况做修改和裁减的办法来设计网络堆栈,网络栈模型图2所示。
物理层使用民用的220v电力线线路。数据链路层处理信道的争用和冲突检测。mac,鉴于电力线载波的特点,在数据链路层加入类似无线网络的节点信息传送机制,跟网络层配合实现自动组网,即mesh网络技术。这样设计有利于节点通讯终端的调试和安装,可以做到即插即用。由于楼宇自动化系统的数据通讯量不大,基于电力线的组网技术也在一定程度上简化了网络拓扑,所以不需要实现非常复杂的网络层和传输层。数据传输的控制检验可以在应用层根据需要实现。这样比较有利于降低系统复杂度,可靠性也相应的增加。
3.1 系统硬件结构设计
本系统涉及三种类型的硬件,电力线通讯控制器、电力线路中继和以太网的桥接器。其中电力线通讯控制器(plc控制器)和中继器硬件结构一致,不同的是软件功能支持。以太网桥接器比plc控制器多了以太网扩展,但是少了跟受控设备的通讯部分电路。图3为系统硬件网络结构图。
如图3中描述,在本系统中mi200e调制解调和stm32以及stm32 硬件io的控制输出构成plc控制器;由mi200e和stm32mcu构成中继器,在信号衰减后用以延续网络;由mi200e调制解调电路,stm32mcu以及enc28j60构成电力线到ethernet/internet桥接器,构成完整的网络硬件系统。
3.2 通讯终端设计
通讯终端硬件结构如同4所示 。通讯终端使用mi200e电力线路载波专用芯片与arm cortex单片机stm32 f103c8t6接口,这样系统协议便于针对应用进行修改和升级。stm32 f103c8t6为32位arm cortex-m3单片机,具有比较高的运算能力,主频达72mhz,同时提供丰富的硬件接口。
系统中同时具有io、ad输入输出与外部受控设备接口,同时用spi扩展以太网芯片方便作为到以太网的桥接器使用,同时,系统具有rs232接口输出,可以与pc相连,或作为调试或扩展为485等桥接。
3.3 mi200e发送耦合电路
发送耦合电路的功能就是将单片机传送的数据进行编码调制,再将功率放大之后耦合到220v的高压电路上面,如同5所示。
由于mi200e内部自带调制、滤波、数字功放电路,所以外围电路简洁。mi200e的功率放大输出pa、pb输出后通过l6、c9构成的lc无源带通滤波器再滤波处理后送入信号耦合变压器,再通过耦合变压器到220v电力线路的通路传送。这里重点说明下耦合变压器部分电路,由于220v属于人身危险强电,而mi200e的输出为10vpp的弱电信号,因此耦合变压器在这里有两个角色,一是其初级和安规电容c8构成高通滤波器,阻断了50hz交流工频信号,保证了芯片电路的安全,另外一个角色是次级跟外围电路同时构成带通滤波器,有助于调制信号的选择。另外图中电路rxtx_n控制两个mos管构成的开关电路,这部分电路是在mi200e发送的时候帮助改善信号的波形。耦合电路中d1、d2两个tvs管,将信号幅度限制在一定范围,对后级电路有保护作用。r7帮助安规电容在断电的时候放电,以保证安全。th1为压敏电阻,可以在两端信号冲击很大的时候帮助吸收电流,以保护后级的小信号电路不被220v端的冲击电压损毁掉。
3.4 mi200e接收耦合电路
参见图6所示,接收电路负责将线路上的调制信号提取出来,然后送入mi200e的ra+,ra-两端进行解调。由于信号耦合部分跟发送部分共用,只需要加上简单的lc带通滤波就可以送入mi200e了。由信号耦合变压器送来信号经过c13、l9构成的带通滤波器后直接送入mi200e 23和24脚进入芯片解调。
3.5 spi扩展以太网电路
系统与互联网通讯选择microchip的spi接口的外扩以太网方案,enc28j60内置10mbps以太网物理层器件(phy)及媒体访问控制器(mac),可按业界标准的以太网协议可靠地收发信息数据包,具有可编程过滤功能。特殊的过滤器,包括microchip的可编程模式匹配过滤器,可自动评价、接收或拒收magicpacket,单播(unicast)、多播(multicast)或广播(broadcast)信息包,以减轻主控单片机的处理负荷。可编程8kb双端口sram缓冲器,以高效的方式进行信息包的存储、检索和修改,以减轻主控单片机的内存负荷。该缓冲存储器提供了灵活可靠的数据管理机制。enc28j60跟stm32的spi2连接,电路如图7所示。
4.1 mi200e数据包收发
mi200e的数据包有基本的格式,数据包首先是两个字节的0xff前导码,后面是0x1a和包长度信息,接着是两字节倍数的数据区,最后面是两个字节的crc16校验码,校验码对0x1a以后的数据进行校验,括包信息和具体的包数据内容(见图8)。
mi200e每隔10ms进行一次数据发送,为了能稳定的建立数据通讯,byte 1~byte4固定使用较低的速率200bps进行数据发送。起始的 4 个 byte 中包含引导码、后续发送采用的波特率和数据长度。在发送完这 4个
byte 后,可通过重新配置模式寄存器改变发送波特率。在使用 1600bps 的速率情况下,每隔 10ms,将发送出 1个word的数据。 由于 byte 4 中 pkg_length 占用了 6 个 bits,因此每一个数据包的数据长度不应超过 64个word。数据包发送流程如图9所示。
mi200e处于接收状态时,需要反复查询状态寄存器(0x82)的ri、carr、frame 标志。当carr、frame被硬件置‘1’后,先读取接收模式寄存器(0x83),取出package信息(波特率与数据长度),将接收到的波特率信息写入模式寄存器(使得收发两端的波特率一致),然后按照取得的数据长度进行接收,每读取一个word的数据前都需要查询ri、carr、frame 标志,只有在 ri、carr、frame都被硬件置‘1’的情况下,再读取mi200e中的接收数据。在读取完所有的数据后,查询状态寄存器(0x82)中的 crc标志,判断是否已正确接收到了数据。数据包接收流程如图10所示。
图10 数据包接收流程图
4.2 enc28j60网络驱动设计
本系统采用enc28j60以太网控制芯片,需要编写网络设备驱动程序,以实现低层网络接口及硬件函数驱动。此驱动主要完成enc28j60网络芯片的初始化过程,完成在stm32控制器中加载enc28j60网卡芯片的配置信息,并进行enc28j60的自检功能,如图11所示。
图11 enc28j60网络驱动流程图
4.3 数据链路层设计
mi200e提供了基本的数据包结构和载波侦听功能,这个特性可以模仿ieee802.3mac的设计。这里在mi200e的数据包中加上节点的mac地址,同时由于是针对控制应用,在mac地址后面安排数据内容的功能描述码,用于快速获取当前通讯,便于区分广播数据,无需响应的指令数据和需要响应的指令数据等。描述码后面是具体数据内容,由于电力线的广泛性和楼宇控制安全的需要,数据内容可以使用aes128等加密算法加密,同时可以对内容再进行crc32校验,以进一步提供可靠性和安全性。链路层数据帧格式如图12所示。链路层数据帧格式的设计提供了区分节点的能力,配合mi200e的帧检测机制,可以模仿以太网的总线有效解决线路竞争问题。链路层数据帖格式。
4.4 网络层设计(mesh)
由于电力线路的固有特性,以至于电力线路的通讯跟无线网络的信道特性非常相似,信号经过一段线路之后必然会有比较大的损失,所以载波信号在经过一段距离后就无法接收了,信号的覆盖是一个范围,这个跟无线网络入wifi,zigbee都是比较相似的,同时由于电力线路阻抗的时变性,导致节点在网并不是很稳定,可能一会可以通讯,一会就找不到对方节点了,这个跟无线信号的波动性也比较类似,所以考虑在网络层加入mesh机制的路由特性,可以大大提高通讯的覆盖范围,可以用来组建比较大的网络,满足当前社会大型楼宇的应用需求。
经过实际硬件制作和编写程序测试,本系统可扩展性好,基于mi200e的载波侦听机制,网络有较快的响应速度,比modbus的轮询机制效率高,由于采用mesh技术,网络安装和配置比较容易,覆盖范围可以扩展到几百米。另外有桥接器的应用,可以比较方便的连接到互联网。
全部0条评论
快来发表一下你的评论吧 !