0 导言
光伏发电站运用很多的光伏电池板完结从光能到直流电能的转化,再将直流电能运用逆变器转化为50 Hz的交流电,输送到电网中。整个光伏电站中电能操控及转化设备需求量巨大。通讯办理机作为电站中衔接各个设备和电站中控台的设备,经过操控渠道操控下行的Rtu设备,完结遥信、遥测、遥控等信息的收集,将音讯反应回调度中心,然后操控中心办理员经过对音讯的处理剖析,挑选将履行的指令,到达远动输出调度指令的方针 。
现在广泛选用的通讯办理机完结计划首要有3种:PowerPC处理器+串口扩展芯片架构、ARM处理器架构、ARM处理器+FPGA架构。其间:(1)PowerPC处理器+串口扩展芯片架构运用带通讯协处理器的PowerPC处理器作为体系的中心,运用串口通讯扩展芯片为PowerPC扩展出最多16个串口 。一切数据处理和运算悉数由PowerPC处理器完结,在一切串口悉数运用的情况下,整个体系运转较为缓慢,数据的实时性难以确保。(2)运用独自ARM处理器作为中心完结的通讯办理机结构简略,可是可以支撑的串口数量遭到ARM处理器自身集成的串口数量约束,一般都不超越6个 ,无法满意光伏电站中海量设备的需求。(3)ARM处理器+FPGA架构运用FPGA完结串口扩展,依据ARM处理器完结数据的处理和网络协议的完结,它本质上和依据PowerPC+串口扩展芯片的计划共同。该种计划增加了体系的复杂度,但单功用上进步并不显着。以上3种计划都存在的问题是体系有且仅有一个中心单元,一旦体系宕机,就不得不重启体系,在体系未康复的情况下,整个体系与电站中心操控台处于彻底断开的状况,无法接纳中心操控台的操控指令。
本文依据Intel全新的SoC FPGA芯片,将本来选用分立的FPGA和ARM处理器完结的体系运用单一的SoC FPGA芯片完结,并在FPGA上搭建了冗余监控体系。在进步体系功用的一起,确保了体系的在线可康复性。
1 体系建模
Intel Cyclone V SoC FPGA芯片5CSEMA4U23C6芯片是一款在单一芯片上集成了高功用的双核ARM Cortex-A9 CPU和FPGA的SoC芯片,它是本体系的中心单元。
在本体系中,SoC FPGA芯片上的FPGA部分首要担任UART接口的扩展以及MODBUS协议的加快。
在电力体系中,简直一切设备都支撑规范的RS485接口,并运用MODBUS协议与其他设备进行通讯。光伏电站中,因为设备多、数据量大,通讯办理机的一个RS485端口在同一时间只能和一台设备通讯,因而导致数据传输速度呈现瓶颈。为了处理这个问题,往往选用多个MODBUS网络端口来完结很多设备的办理[2]。
很多电力设备的数据在被通讯办理机收集之后终究需求经过以太网接口与电站的中控后台进行数据交互,该数据交互首要经过IEC104协议完结,而IEC104协议的完结是经过SoC FPGA中的硬件处理体系(Hard Process System,HPS)运转老练的Linux操作体系来完结的。
2 硬件电路计划规划
2.1 SoC FPGA 装备电路规划
为了使体系支撑长途在线晋级,本体系设置SoC FPGA的FPGA部分接纳HPS部分的装备数据。HPS部分可以接纳串口或许网口传输的FPGA装备文件。运转时SoC FPGA的HPS部分先发动并运转Linux操作体系,Linux操作体系发动完毕之后进行FPGA部分的装备。假如需求长途更新FPGA的装备数据,只需求经过网口将新的FPGA装备内容传输到操作体系所办理的磁盘上替换本来的装备文件,则体系下一次发动时就可以运用新的装备文件来装备FPGA。
2.2 SoC FPGA发动电路规划
SoC FPGA中的HPS部分运转Linux操作体系,HPS支撑从SD卡、QSPI Flash、NAND Flash存储器中发动。NAND Flash和QSPI Flash存储器一般都选用焊接的方法安装在电路板上,而SD卡则是可拆卸并独自在PC上读写的。在工业现场,假如设备体系一旦损坏,需求从头烧录体系时,QSPI Flash和NAND Flash因为焊接在PCB板上,只能运用PC在线烧写,而SD卡则可以选用预先烧录好体系的SD卡进行替换,因而节省了现场修理的作业量。
2.3 RS485接口电路规划
通讯办理机作为一个工业设备,其通讯接口或许接受各种冲击,包含强共模电压、高压静电、雷击等 ,因而通讯接口的防护办法至关重要。在本体系中,运用RSM3485模块完结TTL电平到RS485电平的双向转化。RSM3485模块完结规范RS485接口,具有ESD维护、短路或断路失效维护功用,内置120 kΩ上下拉电阻,双绞线输出,供给触摸情况下±4 kV和空气放电情况下±8 kV的ESD放电功用,一起规划防雷电路,防备在雷击的情况下损坏通讯接口 ,该接口电路图如图1所示。
2.4 以太网接口计划规划
电力体系通讯办理机都要求供给主备双网口,以确保在其间一个网口呈现毛病时,另一个网口可以持续传输必要数据。5CSEMA4U23C6芯片默许供给了两个千兆以太网MAC,可是这两个MAC都是由HPS部分办理的,为了确保网口的牢靠性,即便在ARM部分体系宕机的情况下,备用网口也能正常作业,规划时仅运用一个MAC层,并由HPS驱动,另一个网口运用NIOS II软核操控集成的以太网通讯芯片W5500完结。
W5500芯片是一个全硬件完结的单芯片TCP/IP协议芯片,支撑8个Socket端口,运用十分便利牢靠。运用NIOS II 操控W5500完结以太网传输,即便HPS作业反常,FPGA中的NIOS II CPU还可以持续经过W5500进行数据的收发,确保备用网口的安稳运转。
3 SoC FPGA运用架构规划
因为SoC FPGA作为一种立异的架构,集成了FPGA和高功用HPS,因而在规划时,可以充分运用HPS强壮的数据处理才能、FPGA侧灵敏的定制特性以及HPS和FPGA之间高速通讯桥,将各种作业依据其特性合理分配给FPGA或许HPS,经过两者协作,以完结最高的功用。
FPGA侧首要完结UART通讯接口的扩展和依据NIOS II 处理器的备用体系。HPS端首要完结很多数据处理和通讯规约之间的转化。图2为SoC FPGA上的功用区分框图。
3.1 FPGA逻辑规划
FPGA侧逻辑部分完结16个支撑MODBUS帧主动辨认的UART通讯操控单元,如图3所示。每个单元由CRC校验逻辑、串口数据收发缓存、中心操控状况机和MODBUS帧辨认逻辑组成。各单元在中心操控状况机的操控下主动完结MODBUS数据帧的收发和数据校验码的生成,并经由Avalon MM Slave接口与HPS传输MODBUS接纳和需求发送的数据。
图4为支撑MODBUS帧主动辨认的增强型UART通讯操控单元接纳数据时的作业状况搬运图。整个状况机由闲暇状况(IDLE)、接纳数据状况(GET_DATA)、接纳超时状况(TIMEOUT)、接纳字节数据完结状况(GET_BYTE)、帧传输完结状况(FRAME_DONE)组成。
当主机宣布MODBUS恳求帧后,本模块进入接纳数据状况(GET_DATA),每接纳到一个字节,就跳转进入接纳字节完结状况(GET_BYTE),当帧完毕断定信号有用时,标明一帧数据接纳完结,此刻进入帧接纳完结状况。经过比对接纳到的数据帧中CRC数据字段和FPGA中CRC校验单元对该帧发生的校验数据,承认当时帧是否正确。然后经过FPGA与HPS互联桥向HPS宣布中止恳求,并陈述当时帧的校验成果,HPS侧的Linux驱动程序则会依据校验成果完结相应的处理,假如校验正确,则读取该帧数据并递交给上层MODBUS协议层进行进一步解析处理,假如该帧过错,则丢掉该帧,并进入过错处理程序。
3.2 Linux软件规划
SoC FPGA芯片中的HPS运转Linux操作体系,在Linux体系上运转通讯办理机的运用程序。该运用程序首要包含三大部分,分别为MODBUS协议主站、IEC104协议从站、MODBUS和IEC104协议间规约转化程序。其间,MODBUS协议主站运转开源的Libmodbus协议栈,完结MODBUS指令和数据的收发。
Libmodbus协议栈是一个免费开源的MODBUS协议栈,支撑MODBUS协议主站和从站功用。因为本体系在FPGA侧运用硬件逻辑电路现已完结了MODBUS协议的部分功用,如帧完毕断定、CRC校验等。因而,对Libmodbus协议栈进行了必定的删减优化,去掉了底层数据帧接纳和校验的部分,仅运用其指令和数据解析部分,这也是本体系的优势,经过FPGA侧硬件完结MODBUS协议底层内容,降低了处理器的作业量,使得处理器可以轻松完结对多达16个依据MODBUS协议的端口的支撑。
为了便利完结对FPGA侧的16端口个MODBUS加快器的操控,在Linux侧独自开设一个进程用于16端口MODBUS加快器的操控,当该使命被调度并得到履行机会后,开端顺次查询当时端口的状况,然后依据得到的端口状况履行相应的处理代码。该程序流程如图5所示。
闲暇态:当查询到一个端口的状况为闲暇时,标明此端口现已正确地完结了一轮数据收发,在新的通讯指令到来之前,该端口将处于闲暇状况,即不需求发送数据,也不需求接纳数据,MODBUS端口是处于闲暇状况的。
接纳成功:当查询到某个端口成功接纳到回来的数据后,则开端进行接纳数据的处理作业,完结之后,进入下一个端口的状况查询作业。
接纳超时:当查询到某个端口在设定的呼应时间内无呼应时,则回来接纳超时状况。若检测到超时状况,体系开端进行超时处理作业。接纳超时处理完结后,进入下一个端口的状况查询作业。
接纳过错:当查询到某个端口接纳数据犯错时,则进行接纳过错处理作业。当接纳过错处理完结后,进入下一个端口的状况查询作业。该部分使命代码结构如下所示:
for(i=0;i《=15;i++)
{
port_state=mdp_state_read(port_num);//读取指定端口状况
switch(port_state)
{
case NO_STATE:break;//无安排妥当端口
case RX_DONE://接纳数据成功
…//接纳到数据处理代码模块
break;
case RX_TIMEOUT://接纳超时
…//接纳超时端口处理代码模块
break;
case RX_ERROR://接纳过错
…//接纳过错端口处理代码模块
break;
default:
printf(“default %d\n\n”,port_num);//默许为读错
误处理,将状况寄存器设置为过错标志
FPGA_WR16((port_num《《8 | 128), 1);
}//读到第16个端口后,回到0号口读取
if(port_num == 15) port_num = 0;
else port_num ++; //端口号自加1
}
usleep(30000); //开释CPU权限
3.3 NIOS II备用体系软件规划
一般状况下NIOS II CPU处于待机状况,若NIOS II CPU在设定的时间内没有接纳到状况音讯,则标明HPS体系侧软件体系溃散,NIOS II CPU再经过和HPS互联的状况指示信号承认当时是操作体系宕机或运用程序反常。假如是运用程序反常,则触发Linux侧安全监督软件重启运用程序;假如是操作体系反常,则发动备用网口上报当时体系毛病信息到电站中心操控台,并经过硬件复位来重启HPS。图6为NIOS II 备用体系的程序流程图。
4 体系功用剖析
表1为以16个RS485端口,每个端口每500 ms完结一次对总线上设备的数据读取,每次通讯数据帧长度平均为64 B为例,剖析1 s内本体系计划(简称SoC FPGA计划)和PowerPC+串口扩展芯片ST16C2550计划(简称PowerPC计划)在串口芯片数量、CPU的CRC运算业务、CPU处理中止次数、备用网口的独立性等几个方面的差异。
5 定论
本文规划的依据Intel SoC FPGA的光伏电力通讯办理机体系充分发挥了FPGA在处理多路并行数据通讯方面的优势,极大地降低了传统计划中嵌入式处理器在办理通讯业务时的中止开支,并进步了单个体系中支撑MODBUS协议的RS485端口总量,能有用简化光伏电站的通讯网络布局布线。一起,因为FPGA的可编程特性,在不改变硬件电路的前提下,经过对FPGA从头编程的方法,完结了体系的晋级,处理了光伏电力体系中多设备、大数据量的难题,增加了体系的运用规模。