嵌入式Linux平台下电力载波路由器的软件设计

嵌入式Linux平台下电力载波路由器的软件设计


2024年4月17日发(作者:)

● 

Computer Technology and Its Applications 

嵌入式 Linux平台下电力 载波路由器的软件设计 

田霆,郭前岗,周西峰 

(南京邮电大学自动化学院,江苏南京210003) 

摘要:针对载波电表集抄系统中,电力载波通信距离有限、抄收率低等问题,提出了一种应用于 

载波电表集抄系统的中继转发技术,并设计出应用此技术的电力载波通信路由器。采用多叉树遍历 

寻优算法实现了用户节点路径的自动寻优及自动更新,并在此基础上提供了网络和串口两种通信方 

式,以方便采集站对用户节点进行快速、准确、无误的数据抄收。 

关键词:中继转发技术;DLT/645协议;嵌入式Linux;多叉树遍历寻优算法;多线程 

中图分类号:TN925 文献标识码:A 文章编号:0258—7998(2010)10—0135—03 

The software design of powerline communication route based 

on embedded Linux platform 

TIAN Ting,GUO Qian Gang,ZHOU Xi Feng 

(Automation College,Nanjing University of Posts and Telecommunications,Nanjing 210003,China) 

Abstract:In the carrier meter reading system,the electric power cmTier communication distance is Limited,and meter reading 

has low rates.This paper proposes a set of copy used in carrier—meter relay system technology and designs power line carrier commu— 

nication routers to apply this technology.The user node,the path to achieve automatic optimization,each node of the routing path of 

automatic updates,and providing Ethemet and serial port paim of nodes in the data fast,accurate and correct meter reading function. 

Key words:relaying technology;DLT/645 protocol;embedded Linux;muhi-branch tree traversal algorithm for optimizing;multi— 

threaded 

电力载波(PLC)是电力系统通信的一种基本方 

式,广泛应用于电力行业的自动化抄表系统中。由于 

路由器 以太网 

220v低压电力线 

采集器 

电力载波是利用电力线来作为传输媒介,因此,电力 

线路的距离长短和用户的用电负荷都会对电力载波 

载波电表l l载波电表I l载波电表l l载波电表 

通信效果造成影响,而通过载波模块实现对一台区 

下所有电表的直抄是不可能的。目前常用的解决方 

主站计算机 

以太网 

路由器 

220V低压电力线 

法是为每块电表安装带中继转发功能的载波模块, 

不能直抄的表可以通过距离远近或信号质量较佳的 

表对其进行中继转发抄收。电力载波通信信道,其载 

波通信信号衰减大、干扰严重、不稳定,如何根据线I载波电表l I载波电表l I载波电表I I载波电表I 

肇 点并动态维护这些节 要曼的远近皇A= 竺要 搴 竺 

楚Et也,44-行中继转发抄收时应解决 

的问题。因此有必要设计一种电力载波通信路由器以实 

现对一台区下各节点中继路径的智能制定及其维护,以 

方便其上级采集器对所有节点的抄收。 

图 载波集抄系统拓扑图 

…。 一… 

2 电力载波路由器的软件设计 

2.1 DLT/645—2O07多功能电表通信规约 

本通信规约规定了多功能电表与手持单元(HHU)或 

1系统拓扑结构 

载波集抄系统拓扑图如图1所示。 

其他数据终端设备之间的物理连接、通信链路及应用技 

术规范,适用于本地系统中多功能电表与手持单元或其 

《电子技术应用》2010年第36卷第1 1期 135 

lI睦l誉耄ll霾Iil 蓬 I5li囊ilI6lli C。mpute Te ̄hn。-。gy and ts App・一cat 。ns 

他数据终端设备进行点对点或一主多从的数据交换方 

式I】]。645协议规定了通信采用异步串行的通信方式,其 

每个字节包含有1个起始位、8个数据位、1个偶校验位 

及1个停止位,缺省通信速率为2400b/s,传输时先传低 

位,后传高位。应用规定了如图2所示的每一帧的信息 

格式。 

(a)从链表中将能够直抄的节点删除 

匡 £

—————————.

_J【———————— ..。J t————— . .._j 

… 三H 

L———----—--_J‘—————.—-—._J

‘.—--——————_J 

 

(b)将删除的节点组成一个新的单向链表 

竺 l竺l l竺l竺I竺l竺I!! I!l I 竺 I!!l 

图2每一帧的信息格式 

U8j flag; 

图5路由表建立示意图 

在图2中,68H为帧的起始符;A0 ̄A5为通信端的 

物理地址,~共是6个字节;L为数据域的长度;DATA 

为数据域;16H为帧的结束符;CS表示校验码,校验码 

是从第1帧起始符开始到校验码之前的所有各字节的 

模256的和,即各字节二进制算术和,不计超过256的 

//lfag表示路由表中已建立该MAC对应的路由项 

int usetim; 

_

,/此项只在中继转发时有用,表示转发过程所花费的时间 

U8

t num; 

_

//节点的序号 

U8j respond

num【10】; 

算术值;C为控制码,控制码一共有8位,在保留645协 

议中对控制码各位定义的基础上,本设计针对中继功能 

的使用重新定义了控制码。同时为了保障载波通信的可 

靠性,还省去了645协议中关于后续帧的定义。控制码 

的格式 如图3所示。 

struct mac

_

/,记录可以与自身进行通信的电表序号 

list*next; 

}; 

完成第一次遍历直抄搜索后,建立了以Head 1为首 

的单向链表(称为第一层)。第一层中的各节点都可以直 

抄,它们在路由表中只要填写中继级别和目的地址即可。 

由于是可以直抄的节点,所以中继级别填为0; 

(2)对剩下的节点进行一级中继遍历搜索,依照链表 

中继级别(中继深度) 功能码 

中各节点的序列顺序,依次选取第一层中单个节点作为 

剩下节点的一级中继,对余下的节点进行转发抄收测 

试,如图6所示。 

图3控制码的格式 

2.2路由算法的设计 

路由的目的是要建立一张各节点的最优路径表,此 

表记录了台区下每个节点的中继级别、各级的中继地址 

第一层 

及目的地址。这种路由表是动态的,存放在RAM中,每 

隔5min会自动更新一次。路由表的初始值各项均为0, 

其格式如图4所示。 

中继级别 

X 

剩下的节点 

_()o o 

图6一级中继节点的确定过程 

在一级中继节点确定的过程 

一级中继 

XX XX XX XX XX XX 

二级中继 目的地址 

中,第一层中的每个节点都会尝试 

对剩下的节点进行一级中继转发, 

若剩下的节点中,存在能对中继转 

XX XX XX XX XX XX XX XX XX XX XX XX 

图4各节点的最优路径表 

路由表的建立是软件中最核心的部分,本设计采用 

了多叉树遍历寻优131算法,从路由器节点开始逐层搜 

索。其算法描述如下: 

(1)路由器先将网络中的所有节点建成一个带有头 

发帧作出回应的节点,则表明该节 

点可以进行一级中继抄收。通常一个节点的中继抄收路 

径存在好几条,这时需要通过计算中继抄收时间来选择 

条用时最短的路径,这样才能保证采集器抄收时用时 

最短。经过对剩下节点进行一级中继遍历抄收搜索后, 

节点的单向链表,然后开始向网络中所有节点依次发送 

直抄查询命令,并等待回应。若能在规定时间内(10 s)收 

到节点的应答信息,则表明该节点可以进行直抄;然后将 

剩下的节点中可以进行一级中继抄收的节点将会组成 

第二层。同样,第二层由从Head中删除的一级中继抄收 

节点组成,并顺序存储在以Head2为头节点的链表中, 

可以进行直抄的电表从链表中删除,并将删除的节点重新 

组成一个新的链表。路由表建立示意图如图5所示。 

单个节点的属性如下: 

struct mac

_

建立好的第二层结构如图7所示。 

(3)对剩下的节点进行二级中继遍历搜索。一般而 

言,二级中继可以做到对一台区下所有节点的覆盖。剩 

下的节点要进行中继路径的确定,首先要确定它的父节 

list 

{ 

U8

t mac[6]; //节点的MAC地址 

点(二级中继节点),父节点是从建立好的第二层来选择 

136 欢迎网上投稿WWW.chinaaet.com 《电子技术应用》2010年第36卷第1 1期 

Computer Technology and Its Applications 

第一层 

网络UDP通信分别分配了id_com和id—net线程。这三 

第二层 

二 

个线程是相互独立的,其中串口2和网络UDP线程以阻 

塞的方式来等待采集器发出的抄表查询指令。线程的初 

始化工作均由pthread_creat函数来开启,id_route线程开 

启后,串口1开始对外发送直抄、一级中继抄表、二级中 

剩下的节点o o o o o()-一一_() 

继抄表的数据命令帧并根据接收到的节点响应数据帧来 

图7已建立好的第二层 

建立台区下相应节点的路由信息。id_route线程结束后会 

的;然后确定它的一级中继节点,而一级中继节点是从 

激活id_reroute线程,这个线程主要是为下次路由表更新 

第一层中选择的。由图7可知,一级中继路由建立完成 

进行定时,定时时间设为20 min,即每隔20 min,更新一 

之后,第一层与第二层有着确定的连接关系,所以在节 

次路由表。id_route线程的主要功能就是不停地查询20 

点的属性中设置了respond_num数组来记录可以与自身 

min定时有没有到,如果定时到,则关闭20min定时器, 

进行通信的电表序号。这样,建立二级中继时可通过比 

并开启id_route线程。程序多线程化后,就要考虑线程间 

较从路由器发送二级中继转发命令到目的节点作出的 

的同步问题,如线程id_route正从文本文件中读取当中 

响应,即这个通信过程所花费的时间来确定中继路径。 

记录的各个节点的MAC地址、id_net线程正试图向文本 

建立二级中继的过程示意图如图8所示。 

文件中添加某一节点的MAC地址。如果两个线程不加 

以同步,必会导致节点MAC地址的混乱。本设计采用一 

第一层 

种称为“互斥锁”的同步方式,它可以保证任一时刻只有 

个线程能访问它,利用这一性质可以保护共享数据。 

建立路由表的线程流程图如图9所示。 

本文提出了一种路由路径寻优算法并在嵌入式Lin. 

第二层 

HX平台下实现了这种路由算法,该算法可以保证节点 

搜索的不重复性、路由建立的快速性和数据抄收的正确 

N 

性。利用Linux对多线程编程的支持及强大的网络通信 

\抄/ 

第三层 

功能,实现了路由维护与网络、串口通信的并发运行,很 

好地满足了自动化抄表系统中对网络通信和抄表实时 

釜N

图8二级中继节点的确定过程 

性的要求。 

2.3嵌入式Linux平台下路由器的多线程程序设计 

Linux是一种完全开源的32位操 

作系统,它几乎支持所有体系架构的 

开始H初始化路由表 

发送直抄数据命令 启动10 s定时 

处理器。由于它具有开源、可定制、安 

全、稳定等特征,所以可对其进行裁 

剪、修改使之能够稳定运行在嵌入式 

兰 

N 

在10 s内接收到 

开发平台上。针对电力载波通信路由 

器的实际应用需求,本设计移植了 

启动10 s定时 

Linux一2.6.29.4内核至ARM9平台 

登记可以直抄的 

上,并配置了EXT2/VFAT/NFS文件系 

电表至路由表 

统及串口和网络通信驱动。为了使路 

\响应数据?/ 篙 兰 

余下的表一级 

由器能够更快速和稳定地进行路由、 

路由表动态维护、抄表查询等工作, 

本文提出了一种多线程的解决方案, 

发送二级中继抄收数据帧卜_—— 启动10 s定时 

利用Linux对多线程的支持很好地解 

N 

决了各项任务的快速切换、相互通信 

等问题。 

余下的表二级、\、> 兰 10 s内接收 

中继抄收完毕 \响应数据7 

Linux系统下的多线程遵循POSIX线程接口,称为 

Y 

Y 

pthread。编写Linux下的多线程程序,需要使用头文件 

pthread.h,链接时需要使用库libpthread.a 。在程序中, 

启动id_reroute线程 

登记二级中继抄收 

的电表至路由表 

本文给路由表的建立分配了id_route线程,为串口2和 

图9建立路由表的线程流程图 

(下转第144页) 

《电子技术应用》2010年第36卷第1 1期 

l37 

 

lI ilI 邕 l I i 霞嚣l夔ii !呈 皇! ! 望 呈 !!兰垒 ! ! 兰 

l串口初始化1 

发送指令字符串 

ceboot’’ 

发送回车字符 

Chr(13)+Chr(10) 

图6交换机重启程序流程图 

智能化和自我修复能力。 

参考文献 

[1]MCCLOGHRIE K,ROSE M.Management information base 

for network management of TCP/IP-based internets[DB/ 

OL】【M】.http:llwww.rfc—editor.org/rfe/rfcl066.txt;August 

1988. 

[2]曲鹏,严胜刚,李博丞.基于嵌入式web服务器的智能 

家居主控制系统【J/OL].http:llwww.21ic.com/app/embed/ 

200907/45684.htm.2009-07-30. 

【3】刘振海.基于软盘的Linux系统的制作【J】.微计算机应 

用,2004,25(6):700—710. (收稿日期:2010-03-31) 

作者简介: 

图5交换机状态监测程序流程图 

刘振海,男,1969年生,副教授,硕士,主要研究方向:计 

算机网络、嵌入式系统。 

机特定方面的本地监测和控制功能。特别是该系统将来 

可以与核心交换机融为一体,有效增强核心交换设备的 

f上接第137页) 

参考文献 

[1】DL/T 645-2007.多功能电能表通信规约【S].2008. 

【2】青岛东软电脑技术有限公司.PLCI36G—III—E电力载波 

芯片通信协议指南,2010. 

【3】彭启伟,张浩.基于多叉树遍历的中压配电线载波自适 

作者简介: 

田霆,男,1986年生,硕士,主要研究方向:计算机控制 

与系统集成。 

郭前岗,男,1960年生,教授,主要研究方向:新能源发 

电技术与分布式供电系统理论。 

周西峰,男,1960年生,副教授,主要研究方向:计算机 

智能监测控制技术。 

应中继算法【M】.电力系统通信,2009(197):21—27. 

I4】童永清.Linux C编程实战[J].北京:人民邮电出版社,2008 

(收稿日期:2010—03—26) 

; ;ij; i; ; i !! ! E ;; ; ;!!;; ;!; ;;;;;;!;; !; ; ;: | !!!!!!!!!!!!!! ; j;i;;; ! i;; 

(上接第140页) 

参考文献 

[1】 BOUILLOT N,c0PPERS1DCK J.Aes white paper best 

practices in network audio[J].Journal of the Audio Engin- 

eefing Society,2009,57:729-741. 

【4】孙文杰.局域网时钟同步精确时间标记方法的研究【J】. 

仪器仪表学报,2007,30(1):163—169. 

[5】杨小军,陈曦,张庆民.时钟抖动对ADC变换性能影响 

的仿真与研究【J】.中国科学技术大学学报,2005,35(1): 

67—72. (收稿日期:2010-04-04) 

『21 G10VANNI B,FAB10 D.Instrumentation and measurement 

technology conference[C】.The performance evaluation of 

Hi—Fi Intereonneetion Systems.ORawa.2005. 

作者简介: 

童亮,男,1984年生,硕士研究生,主要研究方向:数字 

【3】J0HN C E,MICAEL C F.Sensors for industry conference 

『C1.1588 IEEE Standard for a Precision Clock Synchro— 

nization Protocol for Networked Measurement and Control 

化仪器系统。 

王友钊,男,1963年生,副教授,主要研究方向:数字化仪 

器系统。 

Systems,2002.2nd ISA/IEEE,2002:98-105. 

144 欢迎网上投稿www.chinaaet.corn 

《电子技术应用》2010年第36卷第1 1期 


发布者:admin,转转请注明出处:http://www.yc00.com/news/1713296038a2220814.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信