基于DSP和FPGA的信息化发射平台多协议网关设计
2019-03-19,,,,
, , , ,
(北京航天发射技术研究所,北京 100076)
0 引言
在信息化发射平台控制系统中,为了优化网络结构、避免无关数据交叉干扰,提高通信可靠性和实时性,将网络架构划分为多个网段,包括测发控网段、车控网段、供配电网段和底盘网段等。测发控网段采用以太网通信方式,车控网段、供配电网段、底盘网段采用现场CAN总线通信方式,其中车控网段和供配电网段的CAN总线均为双冗余CAN总线。
要实现各个网段间的互联互通,完成以太网数据、车控CAN总线数据、底盘CAN总线数据和供配电CAN总线数据之间的双向数据解析、过滤及转发,需要支持以太网协议、CAN协议等多种协议的网关。网关连接在各个网段上,接收各网段的数据,按照特定的策略,将数据进行解析,并将数据封装成另外的协议格式,转发到其它的网段中,网关在系统中应用原理图如图1所示。
图1 网关在系统中应用原理图
目前,多通道CAN网关多采取内部自带多路CAN控制器的CPU,如英飞凌的XC2287m自带六路CAN控制器,通过外扩隔离电路和CAN收发器来实现,如文献[1]和文献[2]。但是,在此基础上外扩以太网控制器,实现CAN和以太网的转发难度较大。而以太网-CAN网关多采用ARM等CPU芯片外扩以太网和CAN控制器的方式实现,如文献[3]和文献[4],但是,该方案能实现的CAN通道数量有限。
由于本应用中CAN网段的数量较多,且部分CAN网段采用双CAN总线进行冗余,对网关的CAN总线接口数量提出了较高要求;并且,系统对网关的转发实时性要求较高。因此,文献中的网关不能满足需求,需重新设计网关。
本文实现了一种应用于信息化发射平台的多协议网关,该网关具有如下特点:
(1)具有六路CAN总线接口,一路以太网接口,一路RS232接口,能够实现上述多种通信接口的多种协议数据的解析、过滤及转发。通信接口种类多、数量多。
(2)核心控制器采用DSP(Digital Signal Processor,数字信号处理器)+FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)架构,依靠核心控制器内部运行的嵌入式软件实现网关功能,数据转发实时性强,可靠性高,在高总线负载时仍能可靠转发数据。
(3)数据解析、转发策略可编程设定,灵活性高,能够适应不同的应用需求。
1 硬件设计
多协议网关内部组成框图如图2所示,采用DSP+FPGA的核心控制器架构,通过在核心控制器外围扩展相应功能的元器件实现各项功能需求。DSP+FPGA 的构架较为灵活,两种器件相互配合,灵活性和扩展性很高,能够满足系统需求。
图2 多协议网关组成框图
以DSP芯片为控制核心,通过FPGA芯片扩展CAN控制器、以太网控制器LAN8740AI。能够接收CAN总线及以太网数据,并完成数据的过滤和转发。
DSP采用TMS320F28335,完成控制和任务协调,包括RS232总线通信,外部信号采集等,并外扩SRAM芯片。FPGA采用Xilinx公司Virtex4系列FPGA,例化异步总线接口与DSP相连,各模块同时控制CAN、以太网的通信。
多协议网关由①对外接插件、②电源转换电路、③DSP控制器及其外围电路、④FPGA控制器及其外围电路、⑤CAN总线收发电路、⑥以太网收发电路、⑦RS232收发及串口BOOT配置电路七部分组成。
1.1 对外接插件
对外接插件为多协议网关与系统的电气接口,实现网关内外的信号连接,主要信号包括24 V直流输入电源信号,六通道CAN总线信号、一通道以太网信号、一通道RS232异步串行通信信号及串口BOOT配置信号。
1.2 电源转换电路
多协议网关由20~30 V直流电源供电,电源转换电路完成输入电源的滤波、电压变换,将24 V直流输入电源经过滤波后进行转换,输出其它电路需要的1.2 V、1.8 V、2.5 V、3.3 V、隔离5 V等二次电源。
1.3 DSP控制器及其外围电路
DSP控制器及其外围电路主要包括DSP控制器及其工作必须的晶振、复位电路等,是网关的控制核心。DSP控制器采用了TI公司的TMS320F28335芯片,是一款高性能的32位浮点DSP处理器,最大主频可达150 MHz[5]。
DSP控制器通过自身的XINTF接口与FPGA控制器进行数据交互,调用FPGA实现的驱动函数,将FPGA接收到的数据读入到DSP中,或者将需要发送的数据写入到FPGA中,实现以太网和CAN总线数据的收发。
DSP控制器通过其内部嵌入式软件实现了网关数据解析、过滤、转发的策略,根据其内部策略,对接收的CAN或以太网数据进行解析,并对需要转发的数据进行封包处理,再转发到特定的CAN或以太网通道,实现网关功能。
采用MAX706产生上电复位信号,FPGA DONE输出引脚也连接至MAX706/MR引脚,当配置FPGA结束后DONE引脚置高电平,MAX706经过200 ms后将/RESET引脚置高电平使DSP开始运行。
1.4 FPGA控制器及其外围电路
FPGA 控制器及其外围电路主要包括FPGA控制器及其工作必须的晶振、复位、配置电路、JTAG电路等,实现CAN总线、以太网总线基本的收、发功能。FPGA控制器采用了Xilinx公司的XC4VLX60,为Xilinx Vertex-4系列FPGA,含有59904个逻辑单元(logic cell),2880Kb RAM存储空间[6]。
FPGA控制器内部例化了6个CAN IP核,实现了六路CAN总线控制器,CAN IP核在功能与接口方面与SJA1000芯片相同。通过CAN IP的方式可以减少芯片数量,降低成本,并且降低印制板布线的难度,提高可靠性。通过FPGA的相应对外引脚与CAN总线收发电路相连,实现六路CAN总线功能。
FPGA控制器内部实现了一路Microblaze软核,运行lwIP以太网协议栈,实现以太网的MAC层(Media Access Control,介质访问控制层)功能,通过MII接口(Media Independent Interface,介质独立接口)与以太网收发电路相连,实现以太网总线接口功能。
LwIP是瑞士计算机研究院的一种开源的TCP/IP协议栈实现,其实现重点是在保持TCP/IP协议主要功能的基础上减少对内存的占用,数十KB的RAM和Flash便可使其良好运行,这样就可以让Lwip适用于资源有限的小型平台。LwIP支持的主要协议有ARP、IPv4、ICMP、TCP、UDP等[7]。
1.5 CAN总线收发电路
CAN总线收发电路主要包括隔离电路、CAN收发器电路、TVS保护电路等,将FPGA控制器的CAN接收和发送信号转换为符合CAN协议要求的CAN差分信号,是CAN控制器和物理总线之间的接口。采用磁隔离电路可以将FPGA控制器与总线信号电气隔离,结合TVS保护电路可以使FPGA控制器在静电和瞬态高电压等情况下不受损坏。
CAN总线驱动器选用TJA1050驱动芯片,具有更高的ESD能力、更高的共模工作电压、更高的CAN总线速度等优点[8];隔离芯片选择磁隔离技术,ADuM1402芯片为2发2收结构,适合通讯需要[9]。
磁隔离电路和CAN总线收发电路如图3所示。
图3 磁隔离电路和CAN总线收发电路
1.6 以太网收发电路
以太网收发电路包括以太网PHY 及变压器隔离电路,以太网PHY芯片选择SMSC公司的LAN8740A,该芯片是物理接口收发器,发送数据时,将 MAC层发送过来的并行数据转化为模拟信号发送出去,收数据时的流程反之。PHY也能实现载波监听多点接入/碰撞检测功能[10]。
隔离变压器通过电磁场的转换将PHY的差分信号耦合到网线的另外一端,对内部电路起到隔离、保护的作用。
1.7 RS232收发及串口BOOT配置电路
RS232收发及串口BOOT配置电路包括磁隔离电路、RS232收发器电路、TVS保护电路以及串口BOOT配置电路。通过串口BOOT配置电路,可以将DSP控制器配置为串口BOOT模式,然后使用SDFlash软件,通过RS232通信接口,即可更新DSP控制器内的应用软件,从而对网关的数据解析、过滤、转发策略进行重新编程和配置。
2 软件设计
2.1 FPGA软件设计
FPGA软件运行在FPGA控制器上,主要实现基本的数据收、发功能,具体如下:
(1)CAN数据收发:FPGA软件内部例化6个CAN总线控制器IP核,并产生CAN IP核的读写时序,实现FPGA读取CAN IP核内部寄存器、写CAN IP核内部寄存器、接收一帧CAN数据和向IP核发送一帧CAN数据四个CAN总线控制功能,同时向DSP提供CAN数据的接收和发送中断信号。
(2)以太网数据收发:FPGA软件内部例化一个MicroBlaze 32位处理器软核,软核中运行以太网控制器的驱动和LwIP TCP/IP协议栈。软核上还运行以太网执行程序,用于在DSP和LwIP之间传递数据。网关以太网收发的软件架构如图4所示,应用层的数据由运行在DSP上的以太网代理程序经由XINTF和comregs交给运行在MicroBlaze上的以太网执行程序,以太网执行程序再调用lwip协议栈将数据发送到网络上,网络上的数据则通过相反的路径交给应用层。
图4 网关以太网收发的软件架构
(3)XINTF总线接口:FPGA软件实现了和DSP的XINTF总线接口逻辑,完成DSP和FPGA之间的数据交互。
2.2 DSP软件设计
DSP控制器作为多协议网关的控制核心,调用FPGA实现的收发驱动函数实现以太网和CAN数据的接收,并根据特定的转发策略对接收数据进行解析、过滤和转发。
DSP软件架构采用轮询加中断方式:轮询方式用于处理数据接收,如图5所示,在主循环中依次调用车控网段接收处理、供配电网段接收处理、底盘网段接收处理和以太网段接收处理,如果查询到有数据接收则进行相应过滤和转发,CAN数据接收处理流程图如图6所示;中断方式用于处理数据周期发送,利用定时器中断周期发送部分传感器数据。
图5 DSP软件主循环流程图
图6 CAN数据接收处理流程图
3 试验结果与分析
3.1 转发实时性
向多协议网关的CAN通道或以太网通道发送数据,转发到其它的CAN通道或以太网通道,通过示波器测量转发的延时时间,验证多协议网关的转发实时性,具体结如见表1所示。
表1 转发实时性
其中:通过一个CAN通道接收数据,经过处理后转发到另一个CAN通道的波形图如图7所示,上方波形为接收数据波形,下方波形为发送数据波形。
图7 CAN总线转CAN总线转发波形
3.2 高负载率压力测试
向多协议网关的单个CAN通道循环发送CAN数据,同时转发到其它CAN通道和以太网通道,不断调整CAN总线发送的负载率,并监测网关转发的CAN和以太网数据,当负载率接近上限100%(2 000~2 500帧/秒)时,网关可靠转发数据。
向多协议网关的多个CAN通道同时循环发送CAN数据,同时转发到其它CAN通道和以太网通道,不断调整CAN总线发送的负载率,并监测网关转发的CAN和以太网数据,当各CAN通道负载率均接近上限100%(2 000~2 500帧/秒)时,网关仍可靠转发数据。
向多协议网关的以太网通道循环发送不同字节长度的数据,并不断调整发送数据的速度,测试以太网高速接收的可靠性,测得在不同字节长度下,以太网接收极限性能如图8所示。
图8 以太网接收的极限性能
4 结论
本文实现的多协议网关具有六路CAN总线接口,一路以太网接口,一路RS232接口,能够接收多种通信接口的多种协议的总线数据,并根据协议或策略进行解析、过滤及转发。该多协议网关具有通信接口种类多、数量多的特点。由于核心控制器采用了DSP+FPGA架构,并使用嵌入式软件编程实现网关功能,数据转发实时性强,可靠性高,在高总线负载时仍能可靠转发数据。并且数据解析、转发规则可编程设定,灵活性高,能够适应不同的应用需求。