基于FlexRay的飞行仿真计算机1553B单元设计
扫描二维码
随时随地手机看文章
MIL—STD—1553B(以下简称1553B)总线标准是美国于20世纪70年代提出的飞机内部电子系统联网标准,由于具有可靠性高、实时性好、使用灵活等优点,广泛应用在军用有人和无人机中。我国于1987年建立了与1553B相应的国家军用标准《数字式时分制指令/响应型多路传输数据总线》(GJB 289-1987),并于1997年对原标准进行扩充和修订(GJB 289A-1997),一直沿用至今。
FlexRay总线是一款新型时间总线,具有高速率,时间确定性,信道容错冗余功能,完全满足新型分布式结构飞行仿真计算机内部总线数据通信需求。根据分布式结构飞行仿真计算机对1553B通信接口的需求,本文设计了基于FlexRay总线的飞行仿真计算机1553B接口单元。
1 分布式飞行仿真计算机简介
典型的基于FlexRay总线的分布式飞行仿真计算机由中央处理单元、串口量单元、模拟量单元、开关量单元及1553B接口单元组成。其中CPU单元是分布式飞行仿真计算机的核心主控单元,其功能主要通过CAN总线接收其余四个功能模块的上行数据,经控制律解算及逻辑管理后,将数据下行传输给各功能板。其结构图如图1所示,本文设计研究一种基于FlexRay新型总线的1553B接口单元。
2 1553B节点硬件电路设计
基于FlexRay总线的飞行仿真计算机1553B接口单元以FPGA作为主控制芯片,FPGA采用Altera公司Cvclone III系列的EP3C25Q240芯片。选择该芯片的原因是由于FPGA硬件连接灵活,编写程序简单,且该芯片IO口资源丰富。
图2为基于FlexRay的飞行仿真机1553B节点硬件总体设计。如图2所示,本设计采用BU-61580S3作为1553B主控芯片。BU-61580集成了双通道1553B信号的收/发器,内部有4K字的RAM用于1553B消息存储,简化了用户程序设计。采用B3226作为1553B总线变压器,B3226主要功能是将1553B总线电平标准转换为TTL电平。而由于BU-61580的IO接口为5 V电平接口,而EP3CQ240的IO电平为3.3 V,故在FPGA与BU-61580之间需要通过一个电平转换模块进行电平匹配。
FlexRay节点有3种架构方式,分别为微处理器(MCU)+通讯控制器(CC)+总线驱动器(BD),微处理器+总线驱动器,微处理器3种。其中前两种架构已经实现,本设计采用微处
理器+通信控制器+总线收发器的架构模式,其中通信控制器采用MFR4310,它是飞思卡尔半导体公司推出的一款面向汽车的FlexRay设备,它的物理层通道有两个独立的发送/接收通道,每个通道的传输速率可达10Mbit/s。通信控制器两路通道的总线控制器采用TJA1080,TJA1080是恩智浦半导体公司推出的FlexRay收发器,它提供了1Mbit/s到10Mbit /s的传输率,可以配置成主动星型或者节点收发器。
为了保证系统正确无误运行及调试方便考虑,本设计还增加了供电系统、时钟系统、调试及测试接口、外部存储器系统、复位及复位配置系统、RS232总线电路6个模块作为辅助功能。
2.1 1553B接口设计
2.1. 1 BU-61580与FPGA接口设计
BU-61580芯片为DDC公司使用最为广泛的控制芯片,拥有多种操作模式,如透明模式、缓冲模式,本设计采用缓冲模式。如图3所示,通过将BU-61580的16/8引脚连接至VCC,TRANSPARENT/BUFFERED、ZEROWAIT引脚连接至GND,将BU-61580的工作模式设置为16位零等待缓冲模式,具体管脚配置见表1。
由于BU-61580的输入高电平阈值为2 V,输出高电平为5 V,而FPGA的工作电平为3.3 V,故FPGA的输出电平可用于驱动BU-61580,但BU-61580输出信号至FPGA过程中需要外加电平转换芯片。本设计采用的是SN74ALVC164245作为电平转换芯片,该芯片拥有十六位电平转换长度。
BU-61580的时钟采用外部有源晶振,CLOCK引脚接16M有源晶振,根据GJB 289A-97要求,晶振的长期稳定性为0.1%,短期稳定性为0.01%。
2.1. 2 BU-61580与收发器接口设计
本设计采用的隔离变压器芯片为B-3226,该芯片每个通道通信可以达到1 Mbit/s,可以提供很好的通信带宽,具有强大的容错传输功能。耦合变压器与BU-61580硬件连接如图4所示,BU-61580内部拥有两路1553B收发器分别与隔离变压器B-3226相连,B-3226将1553B电平逻辑转换为TTL逻辑电平,进而将处理后的信号送入BU-61580内部的收发器中,实现一次1553B接收通信。
2.2 FlexRay接口设计
本设计中,选择MFR4310作为FlexRay总线主控芯片,该芯片具有两条通信通道,每条通道速率可配置为:2.5,5,8,10Mbit/s;TJA1080作为独立的FlexRay收发器,具有低电磁辐射特性。外界传感器数据通过1553B总线传输至本板卡后,经FPGA预处理后通过FlexRay总线发送至CPU单元中,从而实现一次CPU读取外部传感器信息。
2.2.1 通信控制器与处理器接口设计
MFR4310与处理器拥有3种连接模式,分别为:异步存储器接口(AMI)、MPC接口、HCS12接口。硬件设计通过配置IF_SEL0和IF_SEL1两个引脚来选择哪种接口模式。按照飞思卡尔官方推荐连接电路,MPC接口主要为MFR4310与PowerPC处理所设计的接口,而HCS12接口主要为MFR4310与HCS12系列处理器所设计的接口,由于本设计采用的处理器为FPGA,故采用异步存储器接口。具体硬件连接图如图5所示,AMI接口将通信控制器配置为异步存储器从设备,进而能够与多种处理器进行数据交互,在AMI接口模式下,处理器通过控制CE#、0E#、WE#等信号实现与MFR4310数据交换。
图5为通信控制器引脚配置连接图,如图5所示,由于本设计采用AMI模式,需要设置IF_SEL[0:1]为{2’h10},该值可通过将IF_SEL0引脚下拉、IF_SEL1引脚上拉来实现。
2.2.2 通信控制器与收发器接口设计
通信控制器与收发器硬件连接图如图6所示,FlexRay模块内部主要由由控制主机接口(CHI)与协议引擎(PE)等部分组成,主机可通过CHI模块访问FlexRay功能模块的配置、控制和状态信息机消息缓冲区的配置、控制和状态信息。这些消息缓冲区位于FlexRay模块内存(FRM)中,用于存储发送和接收的帧头、有效负载数据、时序消息等。而PE模块有TxA和TxB两个发送单元及RxA、RxB两个接收单元,分别用于两个FlexRay通道发送和接收帧信息。
通信控制器通过信号引脚TxD、RXD、TXEN与总线收发器进行连接,正常高速通信模式下,当MFR4310通讯控制器的TJXEN [1:2]#引脚为高电平时,TJA1080的发送使能引脚TXEN有效,这时TJA1080的TXD输入引脚把从通讯控制器TXD_BG[1:2]引脚输入的数字位流,转换成相应的模拟总线信号再输出到FlexRay总线上;同时,TJA1080将FlexRay总线上的模拟总线信号转换成相应的数字位流,从TJA1080的RXD引脚输送到通讯控制器MFR310的RXD_BG2引脚上,完成总线与MFR4310通信控制器的数据通信。
3 软件驱动程序设计
3.1 1553B总线软件驱动设计
本设备1553B协议芯片工作于BC模式下,而其他传感器模块工作于RT模式,即:本设备工作于主模式,传感器设备工作于从模式。当本设备需要传感器信息时,发送数据请求帧,传感器模式将相应数据发送至本设备。本设备要求接受的传感器信息频率如表2所示。
从上表可看出,各个传感器的频率并非完全一致。而BU-61580可以通过使用大小周期来支持多种频率的数据传输,在自动发送模式下,可以通过设置小周期为100 Hz、大周期为50 Hz,进而实现数据帧按要求的速率进行传输。
BU-61580的程序初始化流程如下所示:
1)将该模块设置为增强型BC模式,设置中断屏蔽寄存器,初始化配置寄存器、时间标签寄存器;
2)初始化内存空间,为3个传感器分配内存初始地址及内存空间;
3)配置复位寄存器,启动BC。
3.2 FlexRay总线软件驱动设计
本设备接收外部传感器信息,通过内部总线FlexRay发送至CPU板卡中,进而实现一次总线收发。FlexRay总线收发主要由总线控制器实现的,FlexRay总线控制器具体的通信流程如下。
总线控制器MFR4310的信息缓冲器(Message Buffer,简称MB)是用来存储帧数据、配置、控制、状态数据的结构。当总线通信时,MB是暂时存储数据的物理介质,当数据发送时,应用程序将数据存储于MB中,当周期轮转至发送时槽时,硬件节点将数据从MB中取出发送至另一接收节点的相应MB中,实现一次数据通信。
MB在使用前,必须经过初始化。FlexRay网络节点的初始化包括初始化节点自身和初始化网络。初始化自身由3步组成:
1)初始化FlexRay模块。完成FlexRay模块基地址存储映射,重启FlexRay通信控制器,进入配置状态(POC:config),由函数Fr_module_init()完成;
2)FlexRay协议初始化。该步定义相关数据结构,实现网络配置和节点通信任务分配,由函数Fr_poc_configuration()完成;
3)消息缓冲器初始化。初始化FlexRay通信控制器消息缓冲器与通信数据报文的对应关系,由函数Fr_buffers_init()完成。节点初始化自身完成后就进入通信就绪状态(PO C:ready)。之后,进入初始化网络阶段,这阶段通过发送启动帧完成网络启动。根据表2的配置,节点ECU1和ECU2分别在时槽1和时槽4发送启动信息帧,同时侦听网络中的启动帧个数,直到网络中有足够的启动帧启动网络,数据在正常主动状态下(POC:nomal active)完成节点间通信。详细流程图如图7所示。
4 总线网络通信测试与结果分析
最后对所设计的基于FlexRay总线的1553B节点进行测试,其测试平台如图8所示。通过NI测试设备对传感器数据进行模拟,进而产生一组传感器数据,实现1553B总线通信。
系统上电后,CPU板卡及1553B板卡进行寄存器配置,实现自身初始化,然后CPU板卡作为冷启动节点发送10个冷启动帧至FlexRay总线上,进行总线组网,1553B板卡接收到冷启动帧后,立即加入FlexRay总线集群中,至此,总线准备完成。待总线准备完成,节点间开始通信,图9为CPU节点与1553B节点间通信波形。
如图9所示,FlexRay通信周期为16 ms,静态时隙长度为50μs,将CPU板卡与1553B板卡进行通信实验6小时,实验结果如表3所示。
通过实验结果可以得出,节点设计合理,本设备可准确接收外界1553B传感器信息,并进行数据处理功能,可为新型分布式无人机飞行仿真计算机提供1553B通信接口。
5 结束语
1553B作为航空内部电子系统联网标准,可设计为飞行仿真计算机的外部总线,而FlexRay为新型总线,具有速率快,多冗余等特点,可设计为飞行仿真计算机外部总线。这两种总线各展所长,为飞行仿真计算机提供了快速、稳定的数据传输链路。本文设计了基于FPGA的1553B总线节点,通过与NI设备进行数据通信,结果正确,能够满足飞行仿真计
算机数据链路要求,为以后先进飞行仿真计算机新型总线FlexRay与1553B总线的应用打下了基础。