基于RS485总线设计的多处理器RS485通信网络Word格式文档下载.docx
《基于RS485总线设计的多处理器RS485通信网络Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于RS485总线设计的多处理器RS485通信网络Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
飞机自动配电系统包括一次配电系统和二次配电系统,其中,一次配电系统的核心控制部件是汇流条功率控制器BPCU(BusPowerControlUnit);
二次配电系统的控制部件是二次配电控制单元RPDU(RemotePowerDistribuTIonUnit)。
本文所涉及的飞机配电系统通信网络如图1所示。
其中,BPCU通过1553B总线与上位机通信,向上位机传递飞机配电系统的运行状况;
BPCU与RPDU及发电机控制器GCU(GeneratorControlUnit)之间通过RS485总线及其它通信总线(如CAN总线或429总线等)进行通信。
BPCU根据GCU和RPDU反馈的信息对配电系统进行监控和管理,实现汇流条切换、大功率负载的自动管理,完成飞机电能的分配。
由图1可知,飞机电网结构较复杂,飞机一次配电系统中共有2个BPCU同时工作,分别为左(L)BPCU和右(R)BPCU。
因此,该配电系统构成了一个含有多处理器的RS485总线通信网络。
该通信网络需实现的功能如下:
2个BPCU之间需定时通信,交换数据并监控对方是否正常运转;
2个BPCU需定时与所有GCU和RPDU通信,监控电网运行状态;
正常情况下GCU、RPDU之间则不需通信。
3.RS485总线及其总线冲突问题
RS485总线标准是美国电气工业联合会制定的以双绞线作传输线的通信标准,采用平衡发送和差分接收,允许双绞线上一个发送器驱动32个负载设备[3]。
RS485以半双工方式通信,用于多站互连时,便于组建可靠性高及分布范围较广的总线网络[4]。
然而,由于RS485总线的通信方式是半双工,即同一时刻总线上只能有一个节点成为主节点,如果同时有两个或以上的节点处于发送状态,将导致所有发送方的数据发送失败,这就是总线冲突[5]。
当通信网络中存在2个以上的节点时,解决其总线冲突问题就成了提高其工作可靠性、稳定性的关键和前提[6]。
4.总线冲突的解决方法
在图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一致。
5.多处理器RS485总线的实现
5.1RS485总线接口电路的设计
本文中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总线上的共模干扰等问题,需将总线上各个节点的地线连接起来,形成共同的低阻抗信号地。
5.2多主通信的软件设计
本文中所涉及的RS485总线通信网络包括2个主处理器LBPCU及RBPCU,多个从处理器RPDU及GCU。
软件设计主要包括:
主处理器发送,主处理器接收,主处理器自检测,从处理器发送,从处理器接收。
由于从处理器不涉及优先级改变及总线监听等过程,只是常规的指令响应和数据发送,本文只给出主处理器发送、接收及自检测的流程。
主处理器发送数据或指令前,需侦听总线是否空闲,完成一次数据或指令发送后,需修改优先级。
其软件流程如图7所示,图中Pri表示主处理器当前的优先级,t为等待时间,其计算方法如式
(1)所示。
据的发送和接收过程,串口SCIB监控串口SCIA是否正常,实现通信的自检测。
串口SCIB实现自检的过程如下:
在主处理器发送数据时,串口SCIB将串口SCIA发送的数据读回,若与发送的数据相同,则表明串口SCIA发送正常;
在主处理器接收数据时,若串口SCIB接收的数据与串口SCIA相同,则表明串口SCIA接收正常。
自检测的流程如图9所示。
5.3实验结果
本文利用DSP及收发器构成了如图1所示的通信网络,并进行了相关实验。
图10为LBPCU的串口SCIA发送数据时,引脚SCIATXD及控制信号485CA的波形,由图10可知接口电路能够正常工作。
图11为LBPCU运行时,串口SCIA的数据发送引脚SCIATXD及接收引脚SCIARXD上的电压波形,由图11可知,系统运行时没有发生总线冲突现象。
6.结束语
本文针对飞机配电系统通信网络的要求及RS485总线的特点,设计了一套带有多处理器的RS485通信网络。
文章着重研究了避免RS485总线冲突的方法,提出了一种适用于飞机配电系统通信网络的避免总线冲突方法,并用实验验证了方法的正确性,实验结果表明本文设计的方法能够实现飞机配电系统的通信,并避免总线发现冲突。
该方法同样适用于其他含有少数主处理器和多数从处理结构的通信网络。
技术专区
·
一文看懂CAN总线
说说那些音乐设备上接口和插头的事
采用了菊花链的SPI接口不仅可以节省空间还不会对系统造成不利
一个含有JTAGDebug接口模块的CPU
-全文完-