[发明专利]一种双通道CAN总线通信的控制系统有效
| 申请号: | 202111268087.7 | 申请日: | 2021-10-29 |
| 公开(公告)号: | CN113965432B | 公开(公告)日: | 2022-10-14 |
| 发明(设计)人: | 李洋;李相赞 | 申请(专利权)人: | 华清科盛(北京)信息技术有限公司 |
| 主分类号: | H04L12/40 | 分类号: | H04L12/40;H04L5/00;H04L5/14 |
| 代理公司: | 北京安瑞克专利代理事务所(特殊普通合伙) 11902 | 代理人: | 郭红梅 |
| 地址: | 100176 北京市大兴区北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 双通道 can 总线 通信 控制系统 | ||
本说明书实施例提供了一种双通道CAN总线通信的控制系统。主站与从站间实现了真正意义上的全双工通信,解决了收发的碰撞问题。并在主站针对两端通信口的速率差进行了二级缓存以及收发线路切换的功能,提升了系统的相应速度。
技术领域
本说明书实施例涉及通信技术领域,尤其涉及一种双通道CAN总线通信的控制系统。
背景技术
使用RS485总线通信的控制系统,采用总线型的拓扑结构,大部分采用主从式多址轮询(poling)方式实现多址接入。即所有通信节点(单主多从)共享一条通信线路,主节点按照地址依次轮流查询每一个从节点,被查询从节点返回相应的数据或空操作。还有一部分采用主设备发送广播指令,从设备根据自身唯一地址时分复用总线资源。
上述现有技术存在如下技术问题:
1、轮询或者广播周期随着从节点数的增加而增加,系统反应变慢。
2、为了应对收发信息碰撞,丢包重发等异常情况,被动的接受了偶发的不可控延时,并牺牲了总线的通信带宽。
发明内容
本说明书实施例提供一种双通道CAN总线通信的控制系统,应用于仓储智能拣选系统,包括一个主站和多个从站;
主站和从站均包括CAN A通道控制器、CAN A通道收发器、CAN B通道控制器、CAN B通道收发器和四根信号线;四根信号线构成两路独立的CAN通信链路,其中,两对CAN-High和CAN-Low分别与从站采取菊花链的形式连接。
主站的CAN A通道与所有从站的CAN B通道相连,主站的CAN B通道与所有从站的CAN A通道相连。
当前发送周期到来后,主站的CAN发送线程执行如下操作:
步骤1,判断一级缓存的重发队列中是否有数据需要发送,如果有,执行步骤2,否则,等待下一次发送周期到来,返回步骤1;
步骤2,判断主站的二级缓存是否已满,若未满,执行步骤3,否则,执行步骤4;
步骤3,向主站的CAN A通道控制器内部的二级缓存写入重发队列中需要发送的数据并启动主站CAN A通道发送(即启动发送后,由CAN A通道控制器通过CAN A通道收发器发送数据),执行步骤6;
步骤4,判断主站的CAN_B通道控制器内部的二级接收/发送缓存是否为空(CAN B通道控制器内部有二级接收缓存和二级发送缓存,这两个缓存都要是空;CANB从理论上只应该进行接收操作,只有接收缓存与发送缓存皆为空时,表示此路CAN线空闲,才承担报文下发的工作,降低系统整体响应时间),若为空,执行步骤5,否则,等待下一次发送周期到来,返回步骤1;
步骤5,向主站的CAN_B通道控制器的二级发送缓存写入重发队列中需要发送的数据并启动主站CAN_B通道发送,执行步骤6;
步骤6,发送完成之后,将数据报文写至重发队列中。
其中,主站还包括MCU,主站的CAN发送线程运行在MCU。具体的,采取HLK7688模块,运行Openwrt嵌入式linux系统。
其中,一级缓存设置在MCU的RAM中,为一个先进先出的队列,大小动态可扩展。
其中,二级缓存在CAN控制器内部实现,只可以存储三个报文数据。
从站执行如下操作:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华清科盛(北京)信息技术有限公司,未经华清科盛(北京)信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111268087.7/2.html,转载请声明来源钻瓜专利网。





