[发明专利]一种双通道CAN总线通信的控制系统有效
| 申请号: | 202111268087.7 | 申请日: | 2021-10-29 |
| 公开(公告)号: | CN113965432B | 公开(公告)日: | 2022-10-14 |
| 发明(设计)人: | 李洋;李相赞 | 申请(专利权)人: | 华清科盛(北京)信息技术有限公司 |
| 主分类号: | H04L12/40 | 分类号: | H04L12/40;H04L5/00;H04L5/14 |
| 代理公司: | 北京安瑞克专利代理事务所(特殊普通合伙) 11902 | 代理人: | 郭红梅 |
| 地址: | 100176 北京市大兴区北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 双通道 can 总线 通信 控制系统 | ||
1.一种双通道CAN总线通信的控制系统,其特征在于,包括一个主站和多个从站;
主站和从站均包括CAN A通道控制器、CAN A通道收发器、CAN B通道控制器、CAN B通道收发器和四根信号线;
主站的CAN A通道与所有从站的CAN B通道相连,主站的CAN B通道与所有从站的CAN A通道相连;
当前发送周期到来后,主站的CAN发送线程执行如下操作:
步骤1,判断一级缓存的重发队列中是否有数据需要发送,如果有,执行步骤2,否则,等待下一次发送周期到来,返回步骤1;
步骤2,判断二级缓存是否已满,若未满,执行步骤3,否则,执行步骤4;
步骤3,向主站的CAN A通道控制器内部的缓存写入重发队列中需要发送的数据并启动主站CAN A通道发送,执行步骤6;
步骤4,判断主站的CAN_B通道控制器内部的二级接收/发送缓存是否为空,若为空,执行步骤5,否则,等待下一次发送周期到来,返回步骤1;
步骤5,向主站的CAN_B通道控制器的二级发送缓存写入重发队列中需要发送的数据并启动主站CAN_B通道发送,执行步骤6;
步骤6,发送完成之后,将数据报文写至重发队列中。
2.根据权利要求1所述的系统,其特征在于,从站执行如下操作:
步骤7,从站经由CAN_B通道的过滤器过滤CAN帧之后,如果是主站发送的ACK数据则对比重发队列中协议指纹,一致则删除队列中的数据报文;如果主站发送的是数据报文,则进行相关控制处理,若需要从站回复ACK报文,则跳至步骤9,并启动发送;
步骤8,从站经由CAN_A通道的过滤器过滤CAN帧之后,如果是主站发送的ACK数据则对比重发队列中协议指纹,一致则删除队列中的数据报文;如果主站发送的是数据报文,则进行相关控制处理,若需要从站回复ACK报文,则跳至步骤9,并启动发送;
步骤9,从站判断CAN_B控制器缓存是否已满,已满则启动定时器等待,未满则写入并发送,如果发的数据需要主站回复ACK,则放至重发队列;
步骤10,主站接收线程阻塞等待CAN_B通道,若有ACK报文接收到则对比重发队列中的数字指纹,一致则将ACK报文与重发队列中的控制报文拼接后上传上位机表示本次控制成功,并删除重发队列中的数据;若有数据报文接收到则直接上传给上位机。
3.根据权利要求1或2任一项所述的系统,其特征在于,所述系统应用于仓储智能拣选系统。
4.一种基于权利要求1所述系统的双通道CAN总线通信的控制方法,其特征在于,包括:
当前发送周期到来后,主站的CAN发送线程执行如下操作:
步骤1,判断一级缓存的重发队列中是否有数据需要发送,如果有,执行步骤2,否则,等待下一次发送周期到来,返回步骤1;
步骤2,判断二级缓存是否已满,若未满,执行步骤3,否则,执行步骤4;
步骤3,向主站的CAN A通道控制器内部的缓存写入重发队列中需要发送的数据并启动主站CAN A通道发送,执行步骤6;
步骤4,判断主站的CAN_B通道控制器内部的二级接收/发送缓存是否为空,若为空,执行步骤5,否则,等待下一次发送周期到来,返回步骤1;
步骤5,向主站的CAN_B通道控制器的二级发送缓存写入重发队列中需要发送的数据并启动主站CAN_B通道发送,执行步骤6;
步骤6,发送完成之后,将数据报文写至重发队列中。
5.根据权利要求4所述的方法,其特征在于,从站执行如下操作:
步骤7,从站经由CAN_B通道的过滤器过滤CAN帧之后,如果是主站发送的ACK数据则对比重发队列中协议指纹,一致则删除队列中的数据报文;如果主站发送的是数据报文,则进行相关控制处理,若需要从站回复ACK报文,则跳至步骤9,并启动发送;
步骤8,从站经由CAN_A通道的过滤器过滤CAN帧之后,如果是主站发送的ACK数据则对比重发队列中协议指纹,一致则删除队列中的数据报文,如果主站发送的是数据报文,则进行相关控制处理,若需要从站回复ACK报文,则跳至步骤9,并启动发送;
步骤9,从站判断CAN_B控制器缓存是否已满,已满则启动定时器等待,未满则写入并发送,如果发的数据需要主站回复ACK,则放至重发队列;
步骤10,主站接收线程阻塞等待CAN_B通道,若有ACK报文接收到则对比重发队列中的数字指纹,一致则将ACK报文与重发队列中的控制报文拼接后上传上位机表示本次控制成功,并删除重发队列中的数据,若有数据报文接收到则直接上传给上位机。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华清科盛(北京)信息技术有限公司,未经华清科盛(北京)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111268087.7/1.html,转载请声明来源钻瓜专利网。





