基于AM335x通信网关装置的设计与实现
2017-09-23过其峰杨建旭刘鸿涛刘进进
刘 群 过其峰 杨建旭 刘鸿涛 刘进进
(南瑞集团公司(国网电力科学研究院) 江苏 南京 211000) (安徽南瑞继远电网技术有限公司 安徽 合肥 230088)
基于AM335x通信网关装置的设计与实现
刘 群 过其峰 杨建旭 刘鸿涛 刘进进
(南瑞集团公司(国网电力科学研究院) 江苏 南京 211000) (安徽南瑞继远电网技术有限公司 安徽 合肥 230088)
介绍一款基于AM335x系列芯片设计的通信网关装置,包括装置硬件和软件的设计与实现。该装置目标实现规约转换功能,即通过串口或网口方式采集分散在各地的多种前端智能终端设备信息,再通过装置对采集到的信息进行处理转换,利用IEC104或61850规约进行转出给后端设备或系统(一般为主站端,功能为面向用户的前端)。同时接收后端的控制信息命令转给前端设备进行控制,实现各类通信信息的网关转换功能。该装置适应于电力系统变电站和其他智能建筑等智能应用系统,作为系统的前置通信装置,也可应用于类似的应用系统。
AM335x 通信网关 61850 SQLite
0 引 言
弱电系统集成作为一种新兴的服务业,是近年来信息服务业中发展势头最为强劲的一个行业,智能建筑的智能化实质就是传感信号和控制信号基于集成化的基础测控终端实现上层的功能应用[1]。目前在智能建筑弱电项目中测控设备种类繁多,系统联网中通信协议的多样化问题越来越突出,通信网关是解决此类问题的一个重要装置之一。通信网关装置主要提供不同的硬件接口接入不同通信总线方式的单个传感器终端或同类传感器终端组成的子系统,通过不同的通信规约采集前端设备信息,经过通信网关装置处理后通过IEC104或IEC61850规约[2]转发到远端后台系统或主站,达到设备接入的整合和统一。
1 硬件设计
基于AM335x通信网关装置[3-4](以下简称装置)是适用于变电站等智能建筑的低端智能通信网关终端产品,其采用ARM架构中的Cortex-A8系列芯片,主要实现通信规约转换功能,一般把通过串口进行的通信规约数据采集后再通过网口进行网络IEC104或61850规约输出,实现规约输出的标准化,达到建筑智能化和信息化;硬件采用Cortex-A8芯片,采用通用的嵌入式Linux操作系统平台[5-6],进行编程控制,装置硬件提供串口、网口、指示灯等信息;基于ARM平台的通信网关装置处理电路包括:基于ARM平台的智能网关设备,电路包括:电源模块,串口通信模块,以太网网络通信模块,SD存储卡模块,指示灯模块;通信网关装置的总体电路如图1所示,其主要由电源模块部分、指示灯模块部分、串口模块部分、网络模块部分、存储模块部分、CPU模块部分等几个部分组成。
图1 装置硬件设计结构框图
1.1 电源模块
电源模块的进入电源是DC12 V,再通过AP1501芯片实现DC12 V电压转换为DC5 V,给主控芯片供电,通过LM1085芯片实现DC5 V电源转换为DC3.3 V,给网络接口和串口接口等模块供电。
1.2 串口通信模块
串口通信模块主要提供485通信总线,其实现电路部分采用了ADM2582芯片,它内部集成有隔离电源,输入VDD_5和GND经隔离后输出VCC_485和GND_485独立电源。从ARM主控芯片输出的TTL电平发信号转换为RS485差分信号的转换和传输功能。
1.3 以太网网络模块
网络通信模块通过AR8031芯片实现10/100/1 000 Mbit·s-1高速网络通信,AM335x主控芯片与该芯片间通过RGMII进行数据交互和命令控制,实现网络通信功能,再通过标准RJ45接头引出。
1.4 SD存储卡模块
SD存储卡模块通过标准的SD-CARD3子模块实现AM335x主控芯片与SD卡间的数据交互,完成SD卡作为磁盘挂载到主控芯片的功能,可实现小容量的本地存储功能。
1.5 指示灯模块
指示灯模块主要是显示装置串口、电源等当前的工作状态,通过AM335x主控芯片的GPIO脚进行高低电平信号的输出,实现指示灯亮灭功能。
2 软件设计
2.1 设备软件结构设计
通信网关装置的软件结构设计图如图2所示,主要通过实现芯片内核的管理模块、接口通信、协议模块、数据管理、配置管理等其他各个模块。
图2 装置软件设计结构框图
2.1.1 启动模块
实现主程序的启动和初始化配置信息、接口驱动控制及相关参数。
2.1.2 配置模块
通过SQLite数据库[7-8]和配置文件对通信网关装置的运行进行参数配置,同时通过该模块实现通信接口的报文监视。
2.1.3 管理模块
包括数据库管理模块和内存管理模块,数据库管理模块为实现在装置里读取SQLite数据库信息提供接口,进行数据表的增加、删除、更改等操作,内存管理模块实现内存块的创建、监控和管理,初始化SQLite数据表信息结构的创建和初始化,实现装置运行信息存储于内存块。
2.1.4 接口模块
其依赖配置信息模块,通过读取配置信息获得需要启动的接口信息,包括串口和网口;同时管理所启动的串口和网口进程。具体进程包括串口进程、网口之TCP的服务端、客户端及UDP等进程。
2.1.5 协议模块
其依赖配置信息模块和接口信息模块,通过读取配置获得需要启动运行的具体协议进程;协议进程通过接口进行收发报文和交互数据;同时管理相关协议进程。具体管理的协议功能有协议初始化,包括通信接口、通信地址、通信间隔、通信异常等待时间等信息;通信报文的发送和接收等功能。
各个协议模块可通过已提供的通信参数实现与前端设备的数据交互,获得数据信息,并写入实时数据库;还可接收上面的命令信息执行相应的动作命令。
2.2 数据结构设计
通信网关装置通信时的参数有多种,这里主要介绍接入设备通信参数表、采集值参数表、实时值转发参数表等三类主要参数结构的设计。
2.2.1 接入设备通信参数
功能是实现主程序的启动和初始化配置信息、接口驱动控制及相关参数,该结构体主要包括所要接入的其他设备或装置参数和通信的参数信息,具体有接入装置通信地址,通信方式有网口和串口两种,网口通信参数,串口通信参数等。
struct IED_CONFIG_STRUCT
{
int ied_id;
//接入装置编号
int ied_addr;
//接入装置通信地址
short com_mode;
//接入装置通信方式,0为串口,1为网口tcp,2为网口udp
int tcp_port;
//tcp通信端口号
int udp_orig_port;
//udp通信源端口号
int udp_dest_port;
//udp通信目的端口号
char ip[18];
//网络通信IP地址
short port;
//串口通信端口0表示串口1,1表示串口2,依次类推
short bps;
//串口通信波特率
short check;
//串口通信校验位
short stop;
//串口通信停止位
short mode1;
//串口通信方式0表示485,1表示232,2表示422
};
2.2.2 采集到的值参数
功能是存储采集到的实时值的临时存储,这里以一类遥信信息的设计为例(其他如遥测、遥脉、遥控等信息与此类似),主要包括遥信结构体内编号,遥信所属装置编号,与设备配置参数一一对应,遥信所属装置内的序号及遥信值等参数。
struct FDB_YX_STRUCT
{
int yx_id;
//遥信编号,全部遥信,依次累加
unsigned char ied_id;
//遥信所属装置编号
unsigned char info_num;
//遥信所属装置内的序号
unsigned char real;
//原始值
};
2.2.3 转发值参数
功能是信息转发提供临时存储区,可以实现多个方向的转发区,这里以一个转发区一个遥信转发类型数据设计为例(其他如遥测、遥脉、遥控等信息与此类似),包括遥信结构体内编号,与遥信值参数一一对应,具体转发值等参数。
struct YX_ZF_STRUCT
{
int yx_id;
int zf_addr;
//转发号
unsigned char value;
};
3 装置实现
基于AM335x通信网关装置的实现包括硬件实现和软件实现两部分,总体实现如图3所示,装置实现共分三层,分别为接口层、协议层和支撑层等。接口层包括串口和网口两类,串口提供链路和驱动,其主要实现数据的转入(接入)功能,网口提供链路和驱动,其主要实现数据的转出功能;协议层主要运行多种协议,实现报文的收发和解析;支撑层包括装置运行所需的配置信息、内存管理及数据传输转换功能,确保数据的流转正常。
图3 装置总体实现框图
3.1 装置硬件实现
装置硬件主要实现AM335x主控对串口、网口、NandFlash及状态指示灯的控制和通信,装置本身设计为1U标准机箱,前面板为状态指示灯展示和装置名称,后面板为RJ45网络接口,RS485端子及电源端子等,且接口和端子一层布局,串口实现不同速率的收发数据,网口实现10/100 MB的收发数据,状态指示灯实现串口通信、电源、软件运行等状态指示。
3.2 装置软件实现
装置软件主要通过不同协议获得数据,经过加工处理后,再通过统一标准的IEC104或61850把信息转发出去,装置的软件为模块化设计,每个基本功能都是一个进程,如创建共享内存、串口通信、网口通信、不同协议及数据流转等模块都是独立的进程,进程间主要通过共享内存[9-10]实现数据交互,具体的软件实现模块主要包括如下几个部分。
3.2.1 支撑层的功能实现
包括装置运行所需配置的结构体信息的录入和读取,有创建共享内存区和共享内存的映射,便于其他进程的共用,相关函数如下:
config_mem_id = create_shm(CONFIG_BUF_KEY, sizeof(CONFIG_STRUCT));功能为根据指定地址创建共享指定大小的内存区,成功后返回一个共享内存ID,第一个参数为指定地址,第二个参数为指定大小。
config_buf=(CONFIG_STRUCT *)map_shm(config_mem_id);功能为根据共享内存ID映射相应的结构体参数指针,第一个参数为创建好的共享内存ID。
3.2.2 接口层的功能实现
该层的进程模块主要有串口通信和网口通信两个模块,这两个进程模块也是通过一个接口进程进行管理,主要根据配置信息启动串口或网口进程,同时监视串口和网口进程的运行情况,如串口或网口进程遇意外退出则重新启动该进程。串口通信模块主要根据配置信息初始化串口通信参数,根据通信地址进行串口数据的收发;另一网口通信模块主要根据配置信息初始化网口通信参数,包括建立TCP或UDP,进行网络数据的收发,监视网络链路的状态,相关函数如下,功能是启动某个通信接口进程。
execl(path,name,para1,para2,para3,(char*)0);功能为启动进程并传入指定参数,path为进程的目录,name为进程名,para1为接口编号,para2为通过该接口的设备数,para3为通过该接口的第一个设备ID。
3.2.3 协议层的功能实现
该层的进程模块有管理各个协议进程的主进程、各个协议进程。协议管理进程根据配置启动对应的协议进程,同时监视各个协议进程的运行情况,意外退出后重新启动退出的协议进程;各个协议进程主要完成协议报文的组帧和解析,并把解析好的数据存入共享内存区,为转发进程进行数据转发提供基础功能。
execl(path, proc_name, (char *)0);该函数功能是协议管理进程启动具体一个协议进程的函数,path为协议进程的目录,proc_name为具体协议进程名称。
4 结 语
通信网关装置的开发实现了通信规约转换功能,具体通过串口进行的通信规约数据采集后通过网口进行网络IEC104或61850规约输出,实现规约输出的标准化。下一步本装置的系列开发将着重在硬件和软件两个方面,硬件重点在接口的数量增加和种类的增加,可增加无线接口通信模块和其他通信总线接口开发;软件重点在增加适应不同通信总线类型的规约等。
[1] 过其峰,刘群,田小锋,等.基于Cortex-M0采集控制设备的设计与实现[J].工业控制计算机,2016,29(2):24-25.
[2] 陈云国,戴胜,杨乘胜,等.基于IEC61850的智能分布式馈线自动化系统建模[J].电力自动化设备,2016,36(6):189-193.
[3] 凌秀泽,周俊,王俊仁.基于AM335X的液晶显示控制系统设计[J].计算机测量与控制,2015,23(1):96-98.
[4] 林培杰,朱安南,程树英.Android数据库SQLite性能优化[J].计算机系统应用,2014,23(4):193-196.
[5] 满莎,杨恢先,彭友,等.基于ARM9的嵌入式无线智能家居网关设计[J].计算机应用,2010,30(9):2541-2544.
[6] 左岩,赵建玉,张红,等.基于Linux的嵌入式数据采集装置的TCP/IP通信[J].济南大学学报(自然科学版),2014(3):194-197.
[7] 方冬蓉,张秋余,董瑞洪,等.Android系统删除数据恢复方法研究[J].计算机工程,2014,40(10):275-280.
[8] 方勇军,苏尚文,王胜军,等.基于ARM的嵌入式Linux系统在便携式医学仪器开发中的应用[J].中国医学物理学杂志,2005,22(3):545-547.
[9] 江涛,周华,刘建辉,等.一种Linux数据库应用定制引擎LADE的设计[J].网络新媒体技术,2008,29(1):54-59.
[10] Yzelman A N,Bisseling R H,Roose D,et al.MulticoreBSP for C:A High-Performance Library for Shared-Memory Parallel Programming[J].International Journal of Parallel Programming,2014,42(4):619-642.
DESIGNANDIMPLEMENTATIONOFCOMMUNICATIONGATEWAYDEVICEBASEDONAM335x
Liu Qun Guo Qifeng Yang Jianxu Liu Hongtao Liu Jinjin
(StateGridElectricPowerReasearchInstitute,NariGroupCorporation,Nanjing211000,Jiangsu,China) (AnhuiNanriJiyuanPowerTechnologyCo.,Ltd.,Hefei230088,Anhui,China)
We present a communication gateway device based on the AM335x series chips, covering hardware and software from theory to practice. The device aims to achieve the protocol conversion function. First, much front-end information of intelligent terminal equipment scattered around is collected through serial port or Ethernet port. Moreover, the collected information is processed by the device. The information will be forwarded to backend device or system by IEC104 or 61850 protocol. Finally, control commands will be sent from back-end to front-end equipment to achieve all kinds of gateway conversion function of communication information. It is proved that the device is suitable for the power system transformer substation and other intelligent building. It also can be applied to similar application system as the system of pre-communication devices.
AM335x Communication gateway 61850 SQLite
TP3
A
10.3969/j.issn.1000-386x.2017.09.034
2016-10-21。刘群,高工,主研领域:电力系统继电保护。过其峰,工程师。杨建旭,工程师。刘鸿涛,工程师。刘进进,工程师。