一种CAN收发方法和CAN收发系统与流程

文档序号:35983397发布日期:2023-11-10 03:20阅读:60来源:国知局
一种CAN收发方法和CAN收发系统与流程

本发明属于数字信息传输,尤其涉及一种can收发方法和can收发系统。


背景技术:

1、收发器是指用于进行信号转换的一种装置, 通常指的是光纤收发器,即用于实现光信号和电信号之间的相互转换,以确保数据包在两个网络之间能顺畅传输。

2、现有技术中常用的收发器为can(控制器局域网络)收发器,其主要是基于arm(risc微处理器)和fpga的microblaze(risc处理器软核)或者zynq(可扩展处理平台zynq系列)来实现,上述方案存在的缺陷是:

3、(1)目前常见的can收发器都是单通道的收发,只能够实现一对一的通信,或者是多个设备挂在一条总线上,带宽速率有限制。

4、(2)fpga的microblaze需要使用大量的fpga硬件资源,模拟成arm进行工作,其性能仅仅只能和低端arm相比,采用的是c语言编码,其运行方式是串行运行,如果有其他程序拥塞,就会导致can收发系统拥塞,从而性能不稳定。

5、因此,基于现有技术实现的can收发器,由于其处理模块的自身性能限制,导致了can收发器的性能不稳定,且无法实现多路can通信。


技术实现思路

1、本发明实施例提供了一种can收发系统,旨在解决现有技术中can收发系统的性能不稳定,且无法实现多路can通信的问题。

2、本发明实施例提供了一种can收发方法,应用于can收发系统;所述can收发系统包括现场可编程门阵列的顶层模块、串口发送模块、串口接收模块、串口解析模块、多个can控制器以及多个fifo模块,所述fifo模块的数量与所述can控制器的数量相同;所述串口发送模块、所述串口接收模块、所述串口解析模块、多个所述can控制器以及多个所述fifo模块分别连接至所述顶层模块;所述串口接收模块还分别连接至所述串口发送模块以及所述串口解析模块;每个所述fifo模块还分别一一对应地连接至一个所述can控制器;所述顶层模块为现场可编程门阵列的pl端;所述方法,包括如下步骤:

3、通过串口接收模块将接收到的串口信息转化为字节流,并将所述字节流传输至所述串口解析模块;

4、通过所述串口解析模块解析所述字节流形成的串口命令,并根据所述串口命令配置对应的标识符场、can总线的分组信息以及波特率;

5、通过现场可编程门阵列的顶层模块中的bram总线引脚将所述标识符场、所述分组信息以及所述波特率写入所述现场可编程门阵列中的bram;

6、通过串口发送模块根据所述串口命令读出所述bram中的所述标识符场、所述分组信息以及所述波特率并进行打印。

7、优选地,所述方法还包括:

8、串口接收模块检测每个can控制器的帧起始,根据每个can控制器的帧起始调整当前位的同步段,以在每个can控制器的发送频率有所偏差时,能够正常识别数据。

9、优选地,所述串口接收模块检测每个can控制器的帧起始,根据每个can控制器的帧起始调整当前位的同步段的步骤,包括:

10、串口接收模块获取每个can控制器的波特率;

11、根据can控制器的波特率,计算每个can控制器的数据发送时长;

12、根据每个can控制器的数据发送时长,和每个can控制器的帧起始,确定每个can控制器的数据中段采样时间;

13、在每个can控制器的数据中段采样时间,对can控制器进行数据采样。

14、优选地,所述数据中段采样时间的计算公式如下:

15、;

16、;

17、其中,为第i个can控制器的波特率,,i为can控制器的数量;为第i个can控制器的数据发送时长;为第i个can控制器在第j个数据帧的帧起始时间,;为第i个can控制器在第j个数据帧的数据中段采样时间;为第i个can控制器的设定采样偏移常数;

18、在发送第1个数据帧时,为初始值,等于0;

19、在发送第2个数据帧开始,根据各个can控制器的数据中段采样时间偏差校正,校正方式参照如下公式:

20、;

21、k为第k个数据帧,;为第i个can控制器在第k个数据帧的帧起始时间,为第i个can控制器在第k-1个数据帧的帧起始时间。

22、优选地,所述通过串口接收模块将接收到的串口信息转化为字节流的步骤,包括:

23、通过所述串口接收模块接收各所述can控制器发出的串口信息,所述串口信息包括发送串口信息的can控制器对应的标识符、can控制器的波特率,以及can控制器的配置信息,所述配置信息包括can总线的分组信息、串口信息的目标接收can控制器,以及过滤信息;

24、通过所述串口接收模块将接收到的串口信息转化为字节流。

25、优选地,所述方法,还包括:

26、在所述串口解析模块中配置寄存器;

27、通过寄存器获取can总线的分组信息,并获取分组转发调整指令,以根据所述分组转发调整指令,修改所述can总线的分组信息;

28、通过寄存器获取发送串口信息的can控制器的波特率,并获取串口信息的目标接收can控制器的波特率,以进行波特率动态适配。

29、优选地,所述方法还包括:

30、在can控制器设置过滤器;

31、根据用户的设定,形成can总线的分组信息;

32、通过所述can控制器根据发送串口信息的can控制器、can总线的分组信息、以及串口信息的目标接收can控制器,对串口信息进行转发或过滤。

33、优选地,所述方法,还包括:

34、获取发送串口信息的can控制器和目标接收can控制器的目标通信协议;

35、所述寄存器根据目标通信协议,调整当前通信协议类型。

36、为实现上述目的,本发明还提出一种can收发系统,应用所述can收发方法;所述can收发系统包括现场可编程门阵列的顶层模块、串口发送模块、串口接收模块、串口解析模块、多个can控制器以及多个fifo模块,所述fifo模块的数量与所述can控制器的数量相同;所述串口发送模块、所述串口接收模块、所述串口解析模块、多个所述can控制器以及多个所述fifo模块分别连接至所述顶层模块;所述串口接收模块还分别连接至所述串口发送模块以及所述串口解析模块;每个所述fifo模块还分别一一对应地连接至一个所述can控制器;所述顶层模块为现场可编程门阵列的pl端。

37、优选地,所述串口发送模块连接至所述顶层模块的rs232串口发送引脚;所述串口接收模块连接至所述顶层模块的rs232串口接收引脚;所述串口解析模块分别连接至所述顶层模块的bram总线引脚以及所述顶层模块的can配置信息引脚;每个所述can控制器分别连接至所述顶层模块的一个can串口发送引脚和一个can串口接收引脚。

38、本发明所达到的有益效果:通过采用现场可编程门阵列的顶层模块实现can收发系统的收发功能,本发明中的顶层模块使用fpga的纯pl端实现,直接使用硬件资源实现can收发器的功能,而不是模拟成arm再去实现can收发器的功能,从而can收发系统中程序按并行运行,其他的程序不会影响can收发系统的功能。因此,可以使can收发系统的性能更稳定。进一步的,本发明设计多个can控制器以及多个verilog(一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模)的fifo模块,每个所述fifo模块还分别一一对应地连接至一个所述can控制器,因此,本发明中的多路can总线都能挂设备,且之间能够实现任意路互相转发、通信,每个通道都是独立的,实现了多路can通信。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1