[发明专利]一种多级通讯下多路CAN总线消息实时处理方法有效
申请号: | 201911157572.X | 申请日: | 2019-11-22 |
公开(公告)号: | CN111030904B | 公开(公告)日: | 2021-12-14 |
发明(设计)人: | 王雨龙 | 申请(专利权)人: | 天津津航计算技术研究所 |
主分类号: | H04L12/40 | 分类号: | H04L12/40 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 刘二格 |
地址: | 300308 天津*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多级 通讯 下多路 can 总线 消息 实时处理 方法 | ||
1.一种多级通讯下多路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模块的通道号、CANID值、RTL值、msgMode值、baudrate值以及MASKCODE和ACCCODE值,然后直接操作寄存器完成对应端口的CAN总线初始化操作;
所述步骤S4中,解析协议计算出数据发送的CAN ID值、RTL值、msgMode值、准备发送数据的长度Len和准备发送数据的内容,对数据发送的信息进行处理,然后通过直接操作寄存器完成CAN总线数据的发送操作;
所述步骤S5中,硬件芯片SJA1000将数据发送出去的过程为:
S51:SJA1000收到CAN总线发送的CAN数据后,在中断服务函数中接收到数据后,将接收到CAN数据在中断中直接放入缓冲区中,消息队列从中断中发出,发出到CAN数据上行任务TaskUP中;
S52:通过消息队列将接收到标志RecvFlag和通道号chan,以及CAN总线数据,在VxWorks系统中使用recvfrom函数接收中断发送过来的数据,接收到数据后填充UDP协议数据;
S53:使用sendto函数将将网络报文将UDP协议数据发送到主板中;
S54:主板中底层收到UDP数据后产生readready信号,在主板中采用QT中信号与槽的操作,ready信号触发数据接收槽函数DataTackle();此函数将解析出来的CAN数据存放到环形缓冲区中,等待QT调用接收函数将CAN总线数据取出。
2.如权利要求1所述的多级通讯下多路CAN总线消息实时处理方法,其特征在于,所述步骤S6中,使用CAN数据接收函数,在底层数据缓冲区中取出通道号chan、CAN ID值、远程帧标志RTL、扩展帧标志msgMode、波特率信息baudrate和CAN数据值完成CAN数据的传输。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津津航计算技术研究所,未经天津津航计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911157572.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种低温阀
- 下一篇:扬声器模组及电子装置