接口/总线/驱动
飞机配电系统的功能是实现飞机电能的输送、分配及保护控制。随着航空、电子以及计算机技术的高速发展,机载设备的数量大幅增加,供电系统容量迅速增长[1],飞机配电系统逐步向着以通信总线为基础的自动配电系统发展。RS485 总线以其协议简单、配置灵活等特点,常作为一种余度总线,用于含有多种数据总线的飞机自动配电系统中[2]。本文主要探讨多处理器模式下 RS485 总线在飞机配电系统中的应用。
飞机自动配电系统包括一次配电系统和二次配电系统,其中,一次配电系统的核心控制部件是汇流条功率控制器 BPCU(Bus Power Control Unit);二次配电系统的控制部件是二次配电控制单元 RPDU(RemotePower Distribution Unit)。 本文所涉及的飞机配电系统通信网络如图 1 所示。其中,BPCU 通过 1553B 总线与上位机通信,向上位机传递飞机配电系统的运行状况;BPCU 与 RPDU 及发电机控制器 GCU(GeneratorControl Unit)之间通过 RS485 总线及其它通信总线 (如CAN 总线或 429 总线等)进行通信。BPCU 根据 GCU和 RPDU 反馈的信息对配电系统进行监控和管理,实现汇流条切换、大功率负载的自动管理,完成飞机电能的分配。
由图 1 可知,飞机电网结构较复杂,飞机一次配电系统中共有2个BPCU同时工作, 分别为左(L)BPCU和右(R)BPCU。因此,该配电系统构成了一个含有多处理器的 RS485 总线通信网络。该通信网络需实现的功能如下:2 个 BPCU 之间需定时通信,交换数据并监控对方是否正常运转;2 个 BPCU 需定时与所有GCU 和 RPDU 通信,监控电网运行状态;正常情况下GCU、RPDU 之间则不需通信。
RS485 总线标准是美国电气工业联合会制定的以双绞线作传输线的通信标准,采用平衡发送和差分接收,允许双绞线上一个发送器驱动 32 个负载设备[3]。RS485 以半双工方式通信,用于多站互连时,便于组建可靠性高及分布范围较广的总线网络[4]。然而,由于 RS485 总线的通信方式是半双工,即同一时刻总线上只能有一个节点成为主节点,如果同时有两个或以上的节点处于发送状态,将导致所有发送方的数据发送失败,这就是总线冲突[5]。当通信网络中存在 2 个以上的节点时,解决其总线冲突问题就成了提高其工作可靠性、稳定性的关键和前提[6]。
在图 1 所示的通信网络中共有 2 个 BPCU 和多个RPDU 及 GCU 进行通信, 构成了一个含有多处理器的RS485 通信网络, 由于数据的交流和传输均是双向的,因此存在总线冲突问题。解决总线冲突最常见的方法是主从通信协议法。主从协议的原理如图 2 所示,该方法将通信网络中某一终端定为主处理器,主处理器依次向各从处理器发出指令(Cmd) ,从处理器根据指令将数据(Data)发送至主处理器。 该方法的缺点是若从处理器个数较多,系统的实时性会降低,且若主处理器出现故障,则整个通信网络无法正常工作。文献[7]以主从通信协议为基础,提出了如图 3 所示的从处理器传递数据法,该方式节省了主处理器询问从处理器的时间,提高了通信的实时性。文献[8]提出了按从处理器优先级发送数据的方法,其原理如图 4 所示。该方法由主处理器发出优先级上报指令(Cmdp),从处理器逐个上报优先级(PRI),扫描完一轮优先级后,主处理器向优先级最高的从处理器 k 发出指(Cmdk)询问数据。优先级法数据量小,系统的实时性得到了提高,然而该方法中从处理器计算优先级的算法较复杂,且整个系统中仍然只能有一个主处理器,无法实现 RS485 的多主处理器通信。
除采用主从通信协议的方法解决总线冲突问题外,还有总线监听的方式。文献[9]介绍了一种利用硬件电路监听总线的方法,该方法实现了 RS485 总线的多主通信,缺点是额外增加的硬件电路会对 RS485 总线阻抗造成影响。 文献[10]提出了一种由软件实现总线侦听、差别延时来解决 RS485 总线冲突的方法。该方法中每个节点由于侦听时间的不同而具有不同的优先级,因而能够很好的实现 RS485 总线多主通信,但由于优先级的限制,某些时刻对个别紧急数据的处理实时性较差。
本文所涉及的RS485通信网络中, 共由2个BPCU同时对飞机配电系统进行控制,形成了一个存在 2 个主处理器和多个从处理器的通信网络。2 个主处理器的存在使整个网络无法依靠主从协议避免总线冲突;而侦听总线的方式则会使只需做应答的从处理器GCU 和 RPDU 的通信算法复杂化。针对该网络含有 2个主处理器及多个从处理器的特点,本文提出一种融合了主从通信原理和时差侦听的方式来解决总线冲突。其原理如下:根据主从协议适合询问-应答模式的特点,将每个 GCU 及 RPDU 作为从处理器,等待命令进行响应;根据时差侦听法不受 RS485 主处理器个数限制的特点, 将通信网络中的 LBPCU 及 RBPCU 作为主处理器,由时差侦听法来确定由哪一个 BPCU 来占用总线。
本文首先在文献[8]提出的基于主从通信协议的优先级上报法的基础上进行改进。由于从处理器优先级算法复杂,本文中主处理器仅询问从处理器是否有数据上报,即询问从处理器的 Y/N 状态,从处理器上报完一轮 Y/N 状态后,由主处理器确定向哪些从处理器询问数据,无论哪个 BPCU 发送 Y/N 状态询问指令或数据询问指令,2 个 BPCU 均能收到所有从处理器Y/N 状态或数据反馈。
针对通信网络中共有 2 个主处理器的特点,本文采取时差侦听总线的方式来实现确定以哪一个 BPCU为主处理器。其原理是给 2 个 BPCU 设置不同的优先级,具有较高优先级的 BPCU 能够抢占到总线的控制权。具体方法如下:首先假定 LBPCU 有最高的优先级,需要发送数据时需先侦听总线,若发现总线空闲,则开始进行延时侦听,由于优先级最高,LBPCU 延时侦听需要的时间比 RBPCU 短,经过一段时间若总线始终保持空闲状态,则 LBPCU 可以发送数据或指令,发送完成后,LBPCU 优先级降低,同时 RBPCU 优先级提高,RBPCU 占有最高的优先级。
结合主从通信原理和差别延时侦听总线的方法,整个通信网络的运行方式如下:设某时刻 RS485 总线空闲,LBPCU 为最高级别主处理器,则 LBPCU 监听总线后可发送三种数据:一是向所有 GCU 及 RPDU发送 Y/N 状态询问指令 cmdY/N, 二是向部分 GCU 及RPDU 发送数据上报指令 cmdk,三是向 RBPCU 发送数据,这三种发送过程如图 5 所示。若 LBPCU 发送了 Y/N 状态询问指令 cmdY/N,则 RBPCU 及 LBPCU均可得知所有 GCU 及 RPDU 是否有数据上报要求;若 LBPCU 发送了数据上报指令 cmdk, 该指令中包含需上报数据的所有从处理器的地址,这些从处理器进行数据轮报,在这个过程中,LBPCU 及 RBPCU 均接收所有数据的上报; 若LBPCU向RBPCU发送了数据,则数据中应当包含 LBPCU 的工作状态。
无论 LBPCU发送了哪种数据,在动作完成后都降低优先级,同时RBPCU 提高优先级, 此时 RBPCU 的优先级变为最高。此后,当总线空闲时,则可由 RBPCU 控制总线,其动作方式与 LBPCU 一致。
本文中 RS485 总线终端由 TI 公司的 DSPTMS320F2812 及 RS485 收发器 SN65HVD11 构成。DSP 内自带了 2 个串口模块 SCIA 和 SCIB,这两个模块均有串口接收引脚 SCIRXD 及串口发送引脚SCITXD。RS485 总线接口电路如图 6 所示,其中,两个 SN65HVD11 输出端 A 端及 B 端均分别连接至RS485 总线 A、 B, 从而形成了总线终端的双余度接口;SN65HVD11的RE端与DE端并联后, 与主处理器DSP的控制信号 485C 相连,构成一个半双工的总线接口,因此在任意时刻,该收发器只能处于接收状态(485C为低电平) 或发送状态 (485C 为高电平) ; SN65HVD11的 R 端及 D 端分别与 DSP 的串口模块接口 SCIRXD及 SCITXD 相连;R1 为 120Ω,是 RS485 总线的匹配电阻,在图 1 所示的通信网络中,仅有 2 个总线接口处需加入该电阻, 以满足 RS485 总线的阻抗匹配要求;R2 为串口 SCIB 接收端的上拉电阻, 由于 DSP 的该引脚内部没有上拉,需外接上拉电阻保证该引脚在总线空闲时始终为高。需要注意的是,为提高通信网络的可靠性,减小 RS485 总线上的共模干扰等问题,需将总线上各个节点的地线连接起来,形成共同的低阻抗信号地。
本文中所涉及的 RS485 总线通信网络包括 2 个主处理器 LBPCU 及 RBPCU,多个从处理器 RPDU 及GCU。软件设计主要包括:主处理器发送,主处理器接收,主处理器自检测,从处理器发送,从处理器接收。由于从处理器不涉及优先级改变及总线监听等过程,只是常规的指令响应和数据发送,本文只给出主处理器发送、接收及自检测的流程。主处理器发送数据或指令前,需侦听总线是否空闲,完成一次数据或指令发送后,需修改优先级。其软件流程如图 7 所示, 图中 Pri 表示主处理器当前的优先级,t 为等待时间,其计算方法如式(1)所示。
据的发送和接收过程, 串口 SCIB 监控串口 SCIA 是否正常,实现通信的自检测。串口 SCIB 实现自检的过程如下:在主处理器发送数据时,串口 SCIB 将串口SCIA 发送的数据读回,若与发送的数据相同,则表明串口 SCIA 发送正常;在主处理器接收数据时,若串口 SCIB 接收的数据与串口 SCIA 相同,则表明串口SCIA 接收正常。自检测的流程如图 9 所示。
本文利用 DSP 及收发器构成了如图1 所示的通信网络, 并进行了相关实验。 图10为LBPCU的串口SCIA发送数据时,引脚 SCIATXD 及控制信号 485CA 的波形,由图 10 可知接口电路能够正常工作。图 11 为LBPCU 运行时, 串口 SCIA 的数据发送引脚 SCIATXD及接收引脚 SCIARXD 上的电压波形,由图 11 可知,系统运行时没有发生总线冲突现象。
本文针对飞机配电系统通信网络的要求及 RS485总线的特点,设计了一套带有多处理器的 RS485 通信网络。文章着重研究了避免 RS485 总线冲突的方法,提出了一种适用于飞机配电系统通信网络的避免总线冲突方法,并用实验验证了方法的正确性,实验结果表明本文设计的方法能够实现飞机配电系统的通信,并避免总线发现冲突。该方法同样适用于其他含有少数主处理器和多数从处理结构的通信网络。
全部0条评论
快来发表一下你的评论吧 !