一种高稳定性的高速CAN通信方法与流程

文档序号:25089119发布日期:2021-05-18 19:25阅读:188来源:国知局
一种高稳定性的高速CAN通信方法与流程
一种高稳定性的高速can通信方法
技术领域
1.本发明涉及医疗器械技术领域,更具体涉及一种高稳定性的高速can通信方法。


背景技术:

2.在ct的整机控制系统中往往有许多控制器的通信要求速度较高,这时使用各个控制器直接组成一个局域网使用高速can进行通信是一种不错的解决方案,但是由于高速can的理论通信距离也不是很长,遇到ct各个控制器安装位置的特殊情况,使得通信距离更加受限,比如操作台的控制盒有时因为医院的线槽等原因需要绕道布线,甚至能达到距离电气柜30米的距离,这时如果使用高速can时,很容易出现偶发通信故障导致系统瘫痪。现有的技术方案往往采用增加can中继器、使用高规格无氧铜线缆等can通信方案或者使用以太网通信等方案,增加了成本,而且使本来就比较狭小的电气柜变得更加拥挤。


技术实现要素:

3.针对现有技术的不足,本发明提供了一种高稳定性的高速can通信方法,解决了由于通信距离较长时使用高速can在复杂的布局时偶发的can通信故障,无需外加中继器,无需使用高规格的无氧铜线缆即可实现稳定通信的效果。
4.为实现上述目的,本发明提供了如下技术方案:一种高稳定性的高速can通信方法,使用电气柜的一个音频控制板增加一路can收发器,将原来的长短不一的布线分为两个子网络,然后将第一个网络里面需要发送给第二个网络的数据转发,第二个网络的数据如果要发送给第一个子网络的控制器时,该音频控制板根据收到的can id判断后转发给第一个子网络的控制器。
5.进一步,包括控制器id和群组id,第二个网络里面各节点均设置有can id过滤机制,能够过滤掉无需关心的消息,使得参与can通信的控制器获得的消息是需要的。
6.进一步,各个子节点的canid过滤寄存器可以使用多个过滤器组合,其中一个是仅发送给自己节点id的过滤器,其他消息屏蔽,其他过滤器是发送给包含自己的群组id,其他消息屏蔽。
7.进一步,两个子网络都是用500k的通信波特率,can通信采样点统一设置为87.5%。
8.本申请通过在音频控制板上增加一路can收发器,实现将复杂的布线简化为两个相对简单的布线子网络,从而实现两个子网络都能够稳定通信,第一子网络和第二子网络如果需要通信,则由音频控制板通过can id判断后实现转发,对于各个控制器之间相互通信的情况较多,部分消息是同时发送给好几个控制板,但是群发时部分控制板对该消息又无需关心的情况,将需要一起关心的消息定义成群组类消息,并给目标控制板定义出目标id群组,然后将群组id作为扩展帧id的一部分一起发送,其他只需要单独发给某个id的消息使用固定好的id消息发送,无需关心的消息通过can id过滤掉,以免耗费资源。这样发送类似的消息给好几个控制器的时候只需要单独向该群组发送一条消息即可。通过这种方式便实现了总线资源和各个控制器资源的最小化浪费,便实现了高稳定地高速can通信,而且
由于分割后的两个子网络布线都不复杂,无需增加中继器,且对线缆材质也要求不是很苛刻,实现了低成本、高可靠性地通信。
9.综上所述,本发明通过将网络分割为两部分,解决了由于通信距离较长时使用高速can在复杂的布局时偶发的can通信故障,可以达到无需外加中继,无需使用高规格的无氧铜线缆即可实现稳定通信的效果。
附图说明
10.图1为本发明实施例实现原理框图;图2为本发明实施例子节点设置can id屏蔽过滤器通用流程图;图3为本发明实施例can收发器应用电路;图4为本发明实施例音频控制板提供的can总线接口电路。
具体实施方式
11.参照图1至图4对本发明一种高稳定性的高速can通信方法的具体实施方式作进一步的说明。
12.如图1所示,本申请的控制方法高速can通信部分控制板包括:操作台控制盒、音频控制板、运动控制板、扫描控制板、按键板1、按键板2、按键板3、按键板4等。其中操作台控制盒到音频控制板距离较远,最远时可以达到30米,所以本方案将音频控制板的第1路can和操作台控制盒放在同一个子网络,两边各加一个120欧姆终端电阻。这个子网络虽然距离较长,但是由于中间无节点走线,所以can的差分信号能够稳定地在该子网络传输。
13.由于除了操作台控制盒较远外其他通信终端都比较近,最远端走线也不超过8米,所以这几个控制板与音频控制板的第2路can组成子网2。该子网络走线较短,虽然布线时有星形和手拉手共存的拓扑结构,但是由于星形的子节点较少,而且距离音频控制板都比较近,所以我们把星形的部分也简化为手拉手走线,这样这个子网络也可以按照手拉手方式进行阻抗匹配保证稳定通信。最远端的终端是按键板4,所以在按键板4处放一个120欧姆终端电阻,另外在距离按键板4最远的运动控制板处也放一个终端电阻,使总线也是60欧姆的阻抗。
14.两个子网络都是用500k的通信波特率,can通信采样点统一设置为87.5%。这样从硬件上将通信距离问题可以达到该通信速度的理论距离之内且属于比较稳定的环境了,但是由于can网络中的消息太多,简单地发送接收时会造成总线负载很大,让can控制器频发仲裁和重复发送还会造成不稳定因素。这样统一采样点后使重同步时各个can收发器更加可靠地进行通信。由于子网络2中的消息发送很多情况下都是相互需要关心的消息,为了使参与can通信的控制器获得的消息是自己需要的,不因为其他无需关心的消息的接收而造成耗费时间资源去处理。这里还需要配套使用can id过滤机制,由于相互通信的情况较多,11位的标准帧进行处理十分吃力,这里本方案采用扩展帧定义can id完成通信的id过滤。
15.为了实现部分群发消息不影响到总线上的每一个节点,而是定向给需要的几个控制器,本发明定义了5bit的数据作为控制器id和群组id,并将发送源id(5bit)和目的id(5bit)作为29bit的扩展帧的一部分发送,这样就可以将群组消息和非群组消息都只发送给目的id,而每个节点都可以通过can id过滤掉无需关心的消息。从而实现总线负载处于
一种较低的状态。各个子节点的canid过滤寄存器可以使用多个过滤器组合,其中一个是仅发送给自己节点id的过滤器,其他消息屏蔽,其他过滤器是发送给包含自己的群组id,其他消息屏蔽。各个子节点对消息过滤的处理都可以用图2所示的流程设置过滤器。
16.本实施例优选的,音频控制板需要使用2路can控制器,优选地,本发明使用stm32f767系列的mcu作为音频控制板的主控单元,该mcu的两路can控制器分别接到两个子网络中。优选地,本发明使用tja1050芯片作为can控制器和物理总线的电平接口芯片。为了抑制总线传输时传到骚扰,本发明使用了51uh的共模电感,且各个子节点都使用共模电感。
17.本实施例优选的,音频控制板的第2路can接入第2子网络,并为附近的运动控制板和扫描控制板及第一路按键板提供can总线的合并接口,按键板2、3、4分别再单独手拉手布线,最终实现手拉手的总线布线,其中线缆使用普通双绞线。音频控制板为其他控制板提供的接口电路如图3所示。
18.本实施例优选的,各个can子网络中,通信速率为 500k的波特率,can通信的采样点设定为87.%,通信速率为 1mbps,每条消息由一条或者多条 can 扩展帧组成,can 扩展帧由29bit id域和64bit data域组成,并且定义了如下两种消息类型:1) 命令(command)此消息是双向的,例如节点a向节点b发送cmd1,节点b必须向节点a返回相应的返回消息cmd1_fdb。
19.2) 事件(event)此消息是单向的,例如节点a向节点b发送 evt1,节点b不必回复。一般用来传递实时性要求高的信息,例如门的开关,曝光的启停等消息。
20.本发明定义了群组消息和非群组消息,其中群组分为全局广播和非全局广播两种,其中全局广播id的消息对每个控制板都要用,非全局广播群组只是向该群组内的控制板通信,不在该群组内的控制板无需关心该类消息。
21.为了使本发明的id更加容易理解,这里将5bit的id类型举例列成表格如下:其中控制板1、2、3等都是非群组id,群组1、群组2类的都是群组id,他们是非群组id根据控制需要结合成的小组。0x0全局广播id0x1控制板10x2控制板20x3控制板30x4控制板40x5控制板50x6控制板60x7控制板70x8控制板80x9群组1(控制板1、控制板2)0xa群组2(控制板1、控制板2、控制板4)0xb群组3(控制板1、控制板2、控制板5)0xc群组4(控制板2、控制板4、控制板5)
......0x1d备用0x1e备用0x1f备用
[0022] 本实施例优选的,为了使总线负载降低,减少发送命令的条数,并方便各个节点控制板通过硬件过滤,将29bit的扩展帧can id分为了10部分,具体如下表所示:bit field28~24destinationid23~19sourceid18~15internalmodulecode14eventflag13~7commandcode6messagestartflag5messageendflag4errorcodeflag3~1messageindex0reserved其中对应的id块的作用简述如下:destination id:目标节点 id,消息接收者的 id。source id:源节点 id,消息发送者的 id。internal module code:目标节点内部模块码。event flag:0 表示此消息是一条命令(command),1 表示此消息是一条事件(event)command code:目标节点每个内部模块内的命令码。message start flag & message end flag:startbit = 1, endbit = 0 表示:本条扩展帧是一条由多条扩展帧组成的消息中的起始帧。startbit = 0, endbit = 1 表示:本条扩展帧是一条由多条扩展帧组成的消息中的结束帧。startbit = 0; endbit = 0 表示:本条扩展帧是一条由多条扩展帧组成的消息中的中间帧。startbit = 1, endbit = 1 表示:此消息仅由一条扩展帧组成。error code flag:1 表示本条消息的 data 域中包含错误码。message index:消息序号,接收者用来区别两条相同的命令(command)的回复消息和哪一条命令消息对应。
[0023]
每个子节点的can id过滤时只需要通过destination id部分即可过滤,将destination id为当前节点或者当前节点所在的群组部分保留,其他部分屏蔽,如图2所示,可以通过设定多个过滤器,每个过滤器只筛选一个符合destination id部分为需要的节点,其他bit无需关心,这样设置好can id的过滤器后,即可实现只将需要的消息放到消息邮箱,其他消息被屏蔽的效果。
[0024]
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1