[发明专利]一种多级通讯下多路CAN总线消息实时处理方法有效
申请号: | 201911157572.X | 申请日: | 2019-11-22 |
公开(公告)号: | CN111030904B | 公开(公告)日: | 2021-12-14 |
发明(设计)人: | 王雨龙 | 申请(专利权)人: | 天津津航计算技术研究所 |
主分类号: | H04L12/40 | 分类号: | H04L12/40 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 刘二格 |
地址: | 300308 天津*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多级 通讯 下多路 can 总线 消息 实时处理 方法 | ||
本发明属于通信领域,公开了一种多级通讯下多路CAN总线消息实时处理方法,适用于非实时操作系统的主机板和实时操作系统的CAN模块板之间通信,运行QT程序的主机板和运行VxWorks系统的CAN模块板通过UDP协议连接,主机板发出的CAN端口初始化操作和发送数据操作通过UDP通信在CAN模块板直接进行寄存器读写操作达到实时处理效果,CAN总线数据的接收则通过在CAN模块板中断接收服务函数中触发消息传输,在高优先级的发送任务中通过UDP将数据实时发送到主机板中,供应用层使用。本发明采用的方法实时性好,可靠性高。
技术领域
本发明属于通信技术领域,涉及一种多级通讯下多路CAN总线消息实时处理方法。
背景技术
在通用型的Intel X86主机板中较多配备的接口为网口、串口、USB,CAN总线是一种实时通讯型总线,一般用在实时操作系统中或者裸机中,但是在某些应用中,X86主机板也需要使用CAN总线通讯,而直接在集成度较高的主机板上设计CAN总线电路,往往会破坏原有成熟的主机板产品,虽然通过USB外挂CAN模块板是一个常用选择,但是USB总线特性不适合工业现场使用,因此替代方案可以采用以太网外挂CAN模块板,传统上主机板编程多采用TCPIP,主机板和CAN模块板建立TCP连接,主机发送命令后,CAN板响应命令,这种以太网外挂CAN模块板存在下述两个缺点:(1)TCPIP需要建立连接,中途断连需要重连,TCPIP断网重连严重影响了系统的实时性;(2)主机发送命令后,CAN板响应命令,对于数据接收的延时较长。
发明内容
(一)发明目的
本发明的目的是:提供一种多级通讯下多路CAN总线消息实时处理方法,以解决主机板和CAN模块板间数据的实时处理问题。
(二)技术方案
为了解决上述技术问题,本发明提供一种、一种多级通讯下多路CAN总线消息实时处理方法,其包括以下步骤:
S1:进行CAN总线的初始化工作;
S2:建立主板和CAN模块板间的UDP链接关系;
S3:CAN模块板收到初始化指令,进行协议的解析计算;
S4:CAN模块收到数据发送指令,解析协议计算出数据发送信息,对数据发送的信息进行处理,然后通过直接操作寄存器完成CAN总线数据的发送操作。
S5:通过硬件芯片SJA1000将数据发送出去。
S6:使用CAN数据接收函数,在底层数据缓冲区中取出数据信息,完成CAN数据的传输。
所述步骤S1中,CAN总线的初始化工作包括:在QT中进行CAN总线参数初始化,包括CAN模块的通道号chan、CAN ID值candid、远程帧标志RTL、扩展帧标志msgMode、波特率信息baudrate、CAN节点的掩码MASKCODE和CAN节点的过滤器ACCCODE;CAN数据的发送包括CAN模块的通道号以及要发送的CAN帧数据。
所述步骤S2中,将要发送的CAN数据和初始化命令使用writeDatagram函数发送到CAN模块板,在CAN模块板中高优先级网络任务使用recvfrom网络接收函数等待主板发送指;CAN模块板中接收到的指令和数据在下行任务TASKDOWN中处理,如果将初始化指令发送到CAN模块板,则转到S3;如果发送数据到CAN模块板,则转到S4。
所述步骤S3中,协议解析计算,计算出CAN模块的通道号、CAN ID值、RTL值、msgMode值、baudrate值以及MASKCODE和ACCCODE值,然后直接操作寄存器完成对应端口的CAN总线初始化操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津津航计算技术研究所,未经天津津航计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911157572.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种低温阀
- 下一篇:扬声器模组及电子装置