APP下载

小卫星载荷PeliCAN模式总线协议设计

2019-06-17

计算机应用与软件 2019年6期
关键词:点对点报文滤波器

杨 璋

(中国西南电子技术研究所 四川 成都 610036)

0 引 言

CAN总线作为现场总线中的重要代表,最早由Bosch公司提出并应用在汽车领域,CAN总线的组网简单、性能可靠、实时性好、功耗较低,并自带校验机制和纠错机制,使其逐渐在工业、医疗、航空、航天等诸多行业中得到了广泛的应用[1-5],小卫星平台上普遍采用CAN总线作为数据通信的主要手段[6-7]。近年来速率更高的CAN FD被提出用以升级替换CAN[8-10],但由于其兼容性、成本、可靠性等问题仍待完善[11],目前CAN FD还未得到大规模应用,CAN总线依然是各类工程应用的主流。按照网络分层结构的定义,CAN总线网络分为三层:物理层、数据链路层和应用层,其中标准的CAN网络架构仅定义了物理层和数据链路层,应用层需要用户自行定义[12]。一些行业标准陆续出台,如CAN总线应用层协议(CAL)、汽车工程协会协议(SAE)等。各小卫星平台也根据其系统设计特点,形成了各自独特的CAN总线应用层协议标准[13-14],开展了星载标准接口的研究[15]。载荷搭载卫星平台时,其分系统内部的CAN总线协议设计普遍参照平台协议标准执行。随着载荷设备低成本、小型化、智能化、快速响应的趋势,载荷数量急增,系统功能更复杂,数据交互方式更灵活,开发周期更短,完全参照平台协议很难满足现有设计需求,本文针对小卫星载荷工作特点,设计了基于PeliCAN模式的载荷CAN总线协议。该协议支持灵活的通信方式,能满足较为复杂的节点组网方式,具备一定的通用性,网络负载满足载荷组网要求。

1 CAN总线应用层协议设计

1.1 协议模式选择

小卫星平台普遍选用CAN控制器芯片SJA1000,支持两种CAN总线模式,一种是BasicCAN模式,支持CAN2.0A协议,采用11 bit报文标识符的标准帧;另一种是PeliCAN模式,支持CAN2.0B协议,可采用29 bit报文标识符的扩展帧。小卫星平台的通信总线采用分层多级的方式设计,与星务平台直接通信的设备较少,因此基于BasicCAN模式的CAN总线设计已经能够满足需求,各个小卫星平台均有标准的CAN应用层协议,搭载的载荷总线普遍参照执行。近年来载荷分系统功能复杂度逐渐增加,使载荷分系统内部CAN总线节点数量急增,采用BasicCAN模式进行应用层协议设计,已经不能很好地满足载荷内部通信组网的需求。

PeliCAN模式作为BasicCAN模式的改进版本,增加了报文标识符的位数,支持双滤波器设置(屏蔽和验收滤波器),并增强了对CAN总线错误的检测(可操作的错误计数器),使得基于PeliCAN模式扩展帧进行载荷分系统内部CAN总线协议设计支持更多的节点数量,节点之间的通信方式更灵活。本设计选用PeliCAN模式扩展数据帧作为信息传输模式。

1.2 PeliCAN模式数据帧定义

PeliCAN模式下的扩展数据帧中用户可编程的数据帧共13字节,分为6部分:帧格式(FF);帧类型(RTR);保留位(XX);帧长度(DLC);报文标识符(ID);数据场(DATE)。本设计中,FF=1表示扩展帧,RTR=0表示数据帧,具体定义如表 1所示,其中用户主要通过设计报文标识符和滤波器来控制总线各个节点之间的通信方式。

表1 PeliCAN模式扩展数据帧格式

1.3 报文标识设计

PeliCAN模式下扩展数据帧的报文标识符(ID)共29 bit(ID.28-ID.0),通过对报文标识的分段设计,能够实现数据帧优先级仲裁,点对点、广播、组播、子播通信模式。报文分段设计具体格式如表 2所示,分别对标识符各段进行设计。

表2 报文标识分段设计格式

1.3.1信息优先级

信息优先级(PRI)共3 bit,定义数据帧的优先级,最多支持7种信息优先等级(全1不使用),数值越小优先级越高,当多种类型的数据帧同时发送时,优先级高的数据帧最先获得总线使用权。将指令参数等重要数据类型设为最高优先级,遥测轮询次之,广播设为相对低优先级,具体设置如表 3所示。

表3 优先级分类格式

1.3.2源节点ID

源节点ID(SID)共5 bit,定义总线上各节点发送数据帧的优先级,最多支持32种节点优先等级,数值越小优先级越高,当出现总线冲突时,优先级高的节点最先获得总线使用权。主控机优先级最高,分控机优先级次之,前端机优先级低,测试机优先级最低,分控机、前端机和测试机等同类型多台设备间按照业务重要等级设置同类设备优先级,源节点优先级格式如表 4所示。

表4 源节点分类格式

1.3.3目标节点ID

目标节点ID(DID)共5 bit,定义节点站地址,最多支持32个节点地址。目标节点ID配合各节点的屏蔽和验收滤波器参数,实现总线上各节点对数据帧的筛选接收。点对点通信时,用于指示滤波器只接收本节点数据帧,目标节点ID的具体格式定义与源节点ID定义类似。非点对点模式时,用于指示滤波器区分组播内的子播组,最多支持10个子播组,具体定义如表 5所示。

表5 目标节点分类格式(非点对点通信)

1.3.4通信类型

通信类型(BTYPE)共3 bit,定义数据帧是否为点对点通信,最多支持3种通信分类,点对点通信。非组播类型数据帧由节点的滤波器1匹配,组播类型数据帧由节点的滤波器2匹配,能够实现节点同时筛选多种组播和非组播类型的数据帧。具体定义如表6所示。

表6 通信类型定义

1.3.5数据类型

数据类型(TITLE)共8 bit,定义每个数据帧的信息类型,当总线上进行多主通信时,可能出现不同信息类型帧混合,接收节点可根据帧TITLE区分不同信息类型数据帧,从而分别缓存拼接,实现混合帧解析。

1.3.6帧类型

帧类型(SRE)共2 bit,定义数据帧为多帧还是单帧,节点接收到数据帧后,将多帧或单帧恢复为完整的信息数据包。

1.4 接收滤波器设计

总线上各节点在接收数据帧时,使用自身滤波器参数与数据帧报文标识进行匹配,只有通过匹配的数据帧才能被节点接收,从而实现节点对CAN总线上大量数据的选择性接收。数据帧中的ID.28-ID.13共16 bit作为滤波仲裁位参与筛选。接收滤波包括2种:验收屏蔽滤波器定义哪些ID位需要进行仲裁;验收代码滤波器定义ID位的具体仲裁值。

本设计中为满足系统要求的多种组合通信方式,总线节点全部采用双滤波器模式,滤波器1接收点对点的通信数据,滤波器2接收非点对点的通信数据。数据帧中的报文标识符ID只要通过任意1个滤波器的仲裁,就能被节点接收。双滤波器的配置如图1所示。

图1 节点双滤波器模式配置示意图

通过各个节点的滤波器配置结合各种数据帧的报文标识符,总线节点之间同时实现点对点、广播、组播、子播等多种通信模式,系统非点对点的通信模式示意图如图 2所示。

图2 非点对点通信模式示意图

1.5 数据包结构设计

CAN总线上传输的有效数据包设计为单帧数据包和多帧数据包2种,其通用格式设计如表 7、表 8所示。为区分结束帧,多帧数据包的最后一包必须小于8字节,若最后一帧刚好8字节,则需要发送一帧空帧(只包含Index,无数据内容),其中DLC表示帧长度,ID表示报文标识符,Index表示帧序号,Len表示数据长度,Title表示数据类型,W1-Wn表示数据内容,SUM表示校验位。

表7 单帧数据格式

表8 多帧数据格式

2 总线网络负载

为保证CAN总线上数据通信稳定,总线网络负载须限制在30%以内,CAN总线的网络负载表示为:

(1)

式中:Sc表示单位时间实际传输数据的位数,Sa表示单位时间理论可传输数据的位数,Sstd表示1帧扩展帧的位数,nperiod表示单位时间周期型数据的帧数,nevent表示单位时间事件型数据的帧数,总线采用500 kb/s的速率,多帧间隔200 μs,总线负载情况如表9所示,总线负载峰值为24.05%,满足设计规范要求。

表9 总线负载情况

3 结 语

随着小卫星载荷集成化与智能化水平不断提高,载荷设备数量急剧增加,总线数据交互更加灵活,采用BasicCAN模式的协议设计逐渐不能满足要求。本文设计了一种基于PeliCAN模式的载荷CAN总线协议,相比于传统总线协议,能容纳更多的网络节点,能同时实现点对点、广播、组播和子播多种通信方式。通用帧格式便于实现多主通信和混合帧解析,具有一定通用性。通过对总线网络负载分析,基于本协议实现的总线网络负载峰值满足行业要求,该设计方法已经在小卫星型号项目上得到成功应用。

猜你喜欢

点对点报文滤波器
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
浅谈有源滤波器分析及仿真
基于多模谐振器的超宽带滤波器设计
“点对点”帮2万名农民工返岗
基于虚拟电厂能量管理的点对点市场交易模型分析
农民工返岗复工点对点服务微信小程序上线
浅析反驳类报文要点
从滤波器理解卷积
借力行业指导创建校企合作新模式