一种提高控制器局域网报文滤波效率的装置及方法与流程

文档序号:37755352发布日期:2024-04-25 10:42阅读:4来源:国知局
一种提高控制器局域网报文滤波效率的装置及方法与流程

本发明涉及一种提高控制器局域网报文滤波效率的装置,同时也涉及相应的方法,属于数据通信。


背景技术:

1、控制器局域网(controller area network,简写为can)是一种能够实现分布式实时控制的串行通信网络,目前被广泛地应用于工业自动化、船舶、医疗设备等领域。典型的can总线包括4层结构,具体功能如下:

2、·物理层规定了节点的全部电气特性,为数据通信提供了物理连接,而实际的数据通信在其他3层中完成。在一个控制器局域网中,要实现不同节点之间的数据传输,所有节点的物理层必须是相同的。

3、·传输层描述了can通信协议的内核,它负责位时序(bittiming)、同步、仲裁、应答、错误探测等。

4、·对象层负责报文的滤波和控制。

5、·应用层用于完成用户指定的数据传输任务。

6、can总线作为数字串行通信技术,与其他同类技术相比,在可靠性、实时性和灵活性方面具有独特的技术优势。其中,can总线以多主机方式工作,任意一个节点均可以在任意时刻主动向can网络上的其他节点发送信息而不分主从,通信方式灵活自由。can总线通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送数据,无需专门的调度机制。但是,随着can总线上的节点越来越多,实现报文滤波需要越来越大的运算量,导致其滤波效率受到严重的不利影响。

7、在专利号为zl 201710743658.5的中国发明专利中,公开了一种can报文滤波解析方法。该方法将ram_code_seg代码段对应的flash空间中的程序复制到对应的ram空间中,当mcu运行can报文接收、滤波和解析函数时,程序计数器自动指向ram_code_seg所在的ram空间,在ram内运行所述程序;在ram中执行can报文接收、滤波和解析函数,这样不仅能够降低中断服务程序的运行时间,还可以降低对系统堆栈的要求。同时,将报文匹配算法放在中断服务程序中进行,降低了报文接收缓冲区和can报文解析任务消息队列对ram资源的要求。


技术实现思路

1、本发明所要解决的首要技术问题在于提供一种提高控制器局域网报文滤波效率的装置。

2、本发明所要解决的另一技术问题在于提供一种提高控制器局域网报文滤波效率的方法。

3、为实现上述技术目的,本发明采用以下的技术方案:

4、根据本发明实施例的第一方面,提供一种提高控制器局域网报文滤波效率的装置,包括总线控制逻辑单元、静态随机存取存储器和滤波器逻辑单元;其中,

5、所述总线控制逻辑单元接收控制器局域网总线信号,将其转换为对静态随机存取存储器读取/写入的控制信号;

6、所述滤波器逻辑单元从控制器局域网总线上接收报文,并向控制器局域网总线反馈相应的接收完成信号;

7、所述滤波器逻辑单元利用内置的状态机对所述报文进行滤波和控制,相应的报文滤波结果由所述静态随机存取存储器读取,并反馈回所述总线控制逻辑单元中。

8、其中较优地,所述滤波器逻辑单元的内部设置有通过数字电路实现的状态机,用于按照预先设置的报文滤波逻辑对控制器局域网总线传来的报文进行滤波,并将符合滤波要求的报文传输到所述静态随机存取存储器中保存以供后续使用。

9、其中较优地,当所述滤波器逻辑单元不被使用时,所述静态随机存取存储器的读取接口供控制器局域网总线使用。

10、其中较优地,所述状态机由异或门、非门和或门串联组成,多个所述状态机的输出结果进行与操作,操作后的比较结果对外输出。

11、其中较优地,读取报文和接收报文输入异或门,掩码数据输入或门,进行按位逻辑操作。

12、根据本发明实施例的第二方面,提供一种提高控制器局域网报文滤波效率的方法,包括如下步骤:

13、s1:将滤波器逻辑单元内部的状态机设置为初始状态;

14、s2:当状态机接收完成一包数据后,进行随机存取存储器的地址设置;

15、s3:滤波器逻辑单元从静态随机存取存储器中读取随机存取存储器的预设地址的报文数据;

16、s4:滤波器逻辑单元从静态随机存取存储器中读取随机存取存储器的预设地址的掩码数据;

17、s5:滤波器逻辑单元对报文数据和掩码数据进行比较;

18、若比较结果为一致,则认为比较成功,对外输出高电平,接着进入s6;若比较结果为不一致,则认为比较失败,在随机存取存储器的地址加2,并读取下一组报文数据和掩码数据,重复上述步骤s2~s5;若读取完随机存取存储器中的所有预设地址仍然没有比较成功,则直接进入步骤s6;

19、s6:执行完成后返回步骤s1,等待下一个控制器局域网的报文接收完成。

20、其中较优地,所述步骤s2中,一包数据包括从静态随机存取存储器中读取的读取报文,来自控制器局域网的接收报文和接收完成信号。

21、其中较优地,所述步骤s5包括如下子步骤:

22、s51:将所述读取报文和所述接收报文进行异或操作;

23、s52:将步骤s51得到的异或结果进行非操作;

24、s53:将经过非操作后的结果和对应的掩码数据进行或操作;

25、s54:将步骤s53得到的结果进行与操作;

26、s55:输出与操作后的比较结果。

27、与现有技术相比较,本发明中实现can报文滤波仅需要3个机器周期,即地址设置、读取报文数据、读取掩码数据,即可完成can报文的滤波过程,从而大幅降低了can总线上的数据通信所需要耗费的时间,显著提升了can总线的数据传输效率。



技术特征:

1.一种提高控制器局域网报文滤波效率的装置,其特征在于包括总线控制逻辑单元、静态随机存取存储器和滤波器逻辑单元;其中,

2.如权利要求1所述的装置,其特征在于:

3.如权利要求2所述的装置,其特征在于:

4.如权利要求2所述的装置,其特征在于:

5.如权利要求4所述的装置,其特征在于:

6.一种提高控制器局域网报文滤波效率的方法,基于权利要求1~5中任意一项所述的装置实现,其特征在于包括如下步骤:

7.如权利要求6所述的方法,其特征在于所述步骤s2中,一包数据包括从静态随机存取存储器中读取的读取报文,来自控制器局域网的接收报文和接收完成信号。

8.如权利要求7所述的方法,其特征在于所述步骤s5包括如下子步骤:


技术总结
本发明公开了一种提高控制器局域网报文滤波效率的装置及方法。该装置包括总线控制逻辑单元、静态随机存取存储器、滤波器逻辑单元;其中,总线控制逻辑单元接收CAN总线信号,将其转换为对静态随机存取存储器读取/写入的控制信号。另一方面,滤波器逻辑单元从CAN总线上接收报文,并向CAN总线反馈相应的接收完成信号。滤波器逻辑单元利用内置的状态机对报文进行滤波和控制,相应的报文滤波结果由静态随机存取存储器读取,并反馈回总线控制逻辑单元中。本发明大幅降低了CAN总线上的数据通信所需要耗费的时间,显著提升了CAN总线的数据传输效率。

技术研发人员:叶海荣,何代明,贾莹莹
受保护的技术使用者:天津兆讯电子技术有限公司
技术研发日:
技术公布日:2024/4/24
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1