[发明专利]一种汽车CAN总线网关的报文收发方法及系统有效
申请号: | 201611178709.6 | 申请日: | 2016-12-19 |
公开(公告)号: | CN106534368B | 公开(公告)日: | 2019-09-10 |
发明(设计)人: | 马建辉;郭坤;胡代荣;侯冬冬;刘源杨;孙常青 | 申请(专利权)人: | 山东省科学院自动化研究所 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L12/40 |
代理公司: | 济南圣达知识产权代理有限公司 37221 | 代理人: | 黄海丽 |
地址: | 250014 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种汽车CAN总线网关的报文收发方法及系统;定义软件接收缓冲区和软件发送缓冲区,软件接收缓冲区由报文接收中断服务程序和软件接收缓冲区管理子模块管理;软件发送缓冲区由报文发送函数、报文发送中断服务程序和软件发送缓冲区管理子模块管理;软件发送缓冲区管理子模块和软件接收缓冲区管理子模块组成软件缓冲区管理模块;在软件缓冲区管理模块中,若接收到信号,判断信号是否是接收到新报文,若是则进入软件接收缓冲区管理子模块;如果否则判断接收到的信号是否是硬件发送缓冲区未满,若是就进入软件发送缓冲区管理子模块。本发明以软件缓冲区配合CAN控制器的硬件缓冲区,能够实时地接收报文,保证报文不丢失。 | ||
搜索关键词: | 一种 汽车 can 总线 网关 报文 收发 方法 系统 | ||
【主权项】:
1.一种汽车CAN总线网关的报文收发方法,其特征是,包括:步骤(1):针对CAN报文的接收和发送分别定义软件接收缓冲区和软件发送缓冲区,所述软件接收缓冲区由报文接收中断服务程序和软件接收缓冲区管理子模块管理;所述软件发送缓冲区由报文发送函数、报文发送中断服务程序和软件发送缓冲区管理子模块管理;软件发送缓冲区管理子模块和软件接收缓冲区管理子模块组成软件缓冲区管理模块;步骤(2):在软件缓冲区管理模块中,若接收到信号,首先判断信号是否是接收到新报文,若是则进入软件接收缓冲区管理子模块;如果否,则进入步骤(3);步骤(3):进一步判断接收到的信号是否是硬件发送缓冲区未满,若是就进入软件发送缓冲区管理子模块;若否就结束;所述步骤(1)与步骤(2)之间还有步骤(10);所述步骤(10)包括:步骤(101):当发送报文时,根据CAN控制器的寄存器判断硬件发送缓冲区是否已满,若未满,则将待发送的报文填充到硬件发送缓冲区,CAN控制器自动完成报文发送任务;若已满,则将待发送报文存入软件发送缓冲区,将存入索引加一,同时开启CAN报文发送中断;若存入索引值等于接收数组的长度,则将存入索引值置零;当CAN控制器成功发送报文后,触发报文发送中断,在CAN报文发送中断服务程序中,向软件缓冲区管理模块发送硬件发送缓冲区未满信号;步骤(102):当接收报文时,在CAN报文接收中断服务程序中,将CAN控制器硬件接收缓冲区中的数据存入由存入索引寻址的软件接收缓冲区,向软件缓冲区管理模块发送接收到新报文的信号,同时将存入索引加一,若存入索引值等于接收数组的长度,则将存入索引值置零;所述软件接收缓冲区和软件发送缓冲区均为结构体数组,结构体数组包括报文ID、报文长度和报文数据;软件接收缓冲区对应的结构体数组为接收数组;软件发送缓冲区对应的结构体数组为发送数组;数组元素通过索引进行寻址,接收数组和发送数组均分别包括两个索引:存入索引和取出索引;将索引加一时,判断索引值是否等于数组长度,如果索引值等于数组长度,将索引值置零。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东省科学院自动化研究所,未经山东省科学院自动化研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201611178709.6/,转载请声明来源钻瓜专利网。