《应用于CAN总线多主设备通讯间时间同步的方法.pdf》由会员分享,可在线阅读,更多相关《应用于CAN总线多主设备通讯间时间同步的方法.pdf(9页珍藏版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202010137957.6 (22)申请日 2020.03.03 (71)申请人 南京科远智慧科技集团股份有限公 司 地址 211100 江苏省南京市江宁区秣陵街 道清水亭东路1266号 (72)发明人 陈闯张继淮陈刚峰芮正新 (74)专利代理机构 南京汇盛专利商标事务所 (普通合伙) 32238 代理人 陈扬 (51)Int.Cl. H04L 12/40(2006.01) H04J 3/06(2006.01) (54)发明名称 一种应用于CAN总线多主设备通讯间时间同 步的方。
2、法 (57)摘要 本发明公开了一种应用于CAN总线多主设备 通讯间时间同步的方法, 该方法并不需要额外的 时间通信总线, 将时间同步报文的传输同数据报 文的传输统一在一条物理总线上, 总线仍然是多 主架构, 并且可以根据每一次传输的实时性, 动 态计算传输补偿时间偏差, 实时进行补偿, 节省 了额外一条总线造成的浪费, 有效降低成本, 解 除了对通讯速率的依赖, 具有灵活性、 实时性。 权利要求书1页 说明书4页 附图3页 CN 111030909 A 2020.04.17 CN 111030909 A 1.一种应用于CAN总线多主设备通讯间时间同步的方法, 其特征在于: 包括 1) 在一条C。
3、AN总线上设有多个节点设备, 各个节点设备之间基于CAN总线进行数据通 讯, 设定具有对时报文发送权的节点设备为同步主节点; 2) 当所述同步主节点的对时周期到来, 同步主节点首先读取同步主节点在这个时刻的 时间基准值TB, 并且同步主节点启动同步主节点的计时功能, 然后同步主节点将时间基准 值组成时间同步报文, 最后同步主节点启动CAN控制器将时间同步报文广播发送; 3) 同步主节点完成时间同步报文发送后进入同步主节点的发送完成中断, 此时同步主 节点的计时功能将同步主节点从读取时间基准值TB时刻到同步主节点时间同步报文发送 完成时刻之间的动态时间偏差t计算出; 4) 在同步主节点发送完成中。
4、断的处理函数中, 同步主节点将启动CAN控制器的第二次 发送, 第二次发送的报文为时间补偿报文, 时间补偿报文的内容为同步主节点计时功能计 算的动态时间偏差t; 5) 被同步节点首先接收到同步主节点第一次发送的时间同步报文后, 将同步主节点下 发的时间基准值TB保存下来, 同时被同步节点启动被同步节点的计时功能, 被同步主节点 的计时功能用于计算被同步节点收到同步主节点第一次发送的时间同步报文的时刻至被 同步节点收到同步主节点第二次发送的时间补偿报文的时刻的时间偏差t2; 6) 在被同步节点的超时周期内, 被同步节点如果接收到同步主节点第二次发送的时间 补偿报文, 被同步节点停止被同步节点的计。
5、时功能, 并且被同步节点设置的被同步节点的 新时间值为TB+t+t2; 被同步节点如果未收到同步主节点第二次发送的时间补偿报文, 那么被同步节点将认为同步主节点的第二次时间补偿报文发送超时, 被同步节点不执行此 次同步主节点的时间同步。 2.如权利要求1所述的应用于CAN总线多主设备通讯间时间同步的方法, 其特征在于: 所述时间差t包括同步主节点从读取时间至同步主节点时间同步报文发送完成进入同步 主节点发送完成中断的全部时间偏差。 3.如权利要求1所述的应用于CAN总线多主设备通讯间时间同步的方法, 其特征在于: 所述同步主节点发送完成中断等效同步主节点的CAN控制器从真正能够发送一帧报文到同。
6、 步主节点的CAN控制器一帧报文发送完成之后能够立即触发同步主节点软件处理逻辑进入 到同步主节点的发送完成处理函数。 权利要求书 1/1 页 2 CN 111030909 A 2 一种应用于CAN总线多主设备通讯间时间同步的方法 0001 技术领域: 本发明属于通讯设备时间同步领域,涉及一种应用于CAN总线多主设备通讯间时间同 步的方法。 0002 背景技术: 为了满足工业生产的需求, 一般的工业生产过程控制系统, 如DCS、 PLC等往往是由一系 列不同功能的模块组成, 这些功能模块协同化工作一起来满足复杂的控制逻辑。 由于这些 功能模块都是相对独立, 如果每个模块都各自维持一个自己的时间,。
7、 那么整个控制系统的 时间将杂乱无章。 尤其是电力系统控制等一些重要的工业控制领域中, 包含事件顺序记录 系统功能, 要求在系统联调或生产运行过程中, 一旦发生停机停车等异常事故, 需要控制系 统能够及时按照时间顺序将这些异常输入记录下来, 以便后续可以回溯查找事故原因, 这 就需要整个控制系统都能够在一定的精度范围内保证严格的时间同步。 0003 严格的时间同步需要有具有时间源的功能模块定周期下发时间同步报文给其他 功能模块。 在多主设备的总线架构, 通常的做法是在数据通信总线的基础上, 专门使用一条 总线用于拥有时间源的功能模块定周期的广播时间报文, 其他功能模块作为接收节点, 在 这条时。
8、间通信总线上仅有同步主节点定周期下发报文, 其他节点均作为从设备接收报文, 这样一条报文在总线上的传输时间可以根据通讯速率计算出来, 具有确定性, 从而可以确 定主设备下发报文时刻到其他从设备接收到报文的时间偏差。 0004 上述方法存在明显的局限性。 首先, 系统需要使用专门的时间通信总线用于时间 报文的下发, 即需要一条额外的物理总线载体, 同时每一个功能模块都需要专门准备一个 对应的MAC层和链路层芯片, 未免造成浪费; 其次, 针对不同的通讯速率, 都需要重新计算补 偿时间偏差, 并且这种偏差时间的计算仅是理论计算, 具有一定的误差。 0005 针对上述的局限1, 很容易想到将时间报文。
9、的发送统一到数据通信的总线上, 但是 由于数据通信总线是多主结构, 即总线上任何一个节点都可以在取得总线使用权的情况下 发送数据, 那么很有可能在同步主节点的对时周期到来, 组好时间同步报文, 准备往总线上 发送的时候, 总线已经被其他节点占用, 同步主节点无法发送数据, 并且这时, 总线是何时 被占用, 又何时能够被解除占用是不确定的, 所以无法事先计算这一偏差以及实现精确补 偿, 从而造成系统对时存在偏差, 并且同时存在上述局限2。 0006 发明内容: 本发明提供一种应用于CAN总线多主设备通讯间时间同步的方法, 该方法并不需要额 外的时间通信总线, 将时间同步报文的传输同数据报文的传输。
10、统一在一条物理总线上, 总 线仍然是多主架构, 并且可以根据每一次传输的实时性, 动态计算传输补偿时间偏差, 实时 进行补偿, 节省了额外一条总线造成的浪费, 有效降低成本, 解除了对通讯速率的依赖, 具 有灵活性、 实时性。 0007 本发明所采用的技术方案有: 一种应用于CAN总线多主设备通讯间时间同步的方法, 包括 1) 在一条CAN总线上设有多个节点设备, 各个节点设备之间基于CAN总线进行数据通 说明书 1/4 页 3 CN 111030909 A 3 讯, 设定具有对时报文发送权的节点设备为同步主节点; 2) 当所述同步主节点的对时周期到来, 同步主节点首先读取同步主节点在这个时刻。
11、的 时间基准值TB, 并且同步主节点启动同步主节点的计时功能, 然后同步主节点将时间基准 值组成时间同步报文, 最后同步主节点启动CAN控制器将时间同步报文广播发送; 3) 同步主节点完成时间同步报文发送后进入同步主节点的发送完成中断, 此时同步主 节点的计时功能将同步主节点从读取时间基准值TB时刻到同步主节点时间同步报文发送 完成时刻之间的动态时间偏差t计算出; 4) 在同步主节点发送完成中断的处理函数中, 同步主节点将启动CAN控制器的第二次 发送, 第二次发送的报文为时间补偿报文, 时间补偿报文的内容为同步主节点计时功能计 算的动态时间偏差t; 5) 被同步节点首先接收到同步主节点第一次。
12、发送的时间同步报文后, 将同步主节点下 发的时间基准值TB保存下来, 同时被同步节点启动被同步节点的计时功能, 被同步主节点 的计时功能用于计算被同步节点收到同步主节点第一次发送的时间同步报文的时刻至被 同步节点收到同步主节点第二次发送的时间补偿报文的时刻的时间偏差t2; 6) 在被同步节点的超时周期内, 被同步节点如果接收到同步主节点第二次发送的时间 补偿报文, 被同步节点停止被同步节点的计时功能, 并且被同步节点设置的被同步节点的 新时间值为TB+t+t2; 被同步节点如果未收到同步主节点第二次发送的时间补偿报文, 那么被同步节点将认为同步主节点的第二次时间补偿报文发送超时, 被同步节点不。
13、执行此 次同步主节点的时间同步。 0008 进一步地, 所述时间差t包括同步主节点从读取时间至同步主节点时间同步报 文发送完成进入同步主节点发送完成中断的全部时间偏差。 0009 进一步地, 所述同步主节点发送完成中断等效同步主节点的CAN控制器从真正能 够发送一帧报文到同步主节点的CAN控制器一帧报文发送完成之后能够立即触发同步主节 点软件处理逻辑进入到同步主节点的发送完成处理函数。 0010 本发明具有如下有益效果: 1) 可以运用在多主设备通讯中, 从软件层面提出一种解决方法, 无需额外硬件支持, 具 有较好的兼容性; 2) 将对时通道和数据通道统一, 将多主设备数据通信和同步主从节点统。
14、一, 减少硬件 接口和对应芯片的需求, 有效节省经济成本; 3) 能够动态计算并且补偿每次多主设备冲突竞争及时间同步报文在总线传输的时间 偏差, 无论偏差是确定的或是不确定的, 具备较好的灵活性和对时准确性。 0011 附图说明: 图 1 为本发明中CAN总线多主设备通讯架构示意图; 图 2 为本发明中多主设备冲突竞争及时间同步报文在总线传输的时间偏差示意图; 图 3 为本发明中同步主节点对时处理流程图; 图 4 为本发明中被同步节点对时处理流程图。 0012 具体实施方式: 下面结合附图对本发明作进一步的说明。 0013 本发明一种应用于CAN总线多主设备通讯间时间同步的方法, 如图1, C。
15、AN总线多主 说明书 2/4 页 4 CN 111030909 A 4 设备通讯架构示意图所示, 在一条总线上有多个节点设备, 每一个设备都可以在获得总线 的情况下发送数据, 即总线上存在多主设备, 设定节点1具有对时报文的发送权, 即节点1为 同步主节点。 0014 如图2, 节点1的对时周期到来时, 节点1开始读取时间基准值组成时间同步报文, 该时刻准确的时间基准值为TB, 节点1的时间同步报文发送完成的时刻为TR,t = TR - TB。 0015 如图3, 首先明确, 发送完成中断等效CAN控制器从真正能够发送一帧报文到CAN控 制器一帧报文发送完成之后能够立即触发节点软件处理逻辑进入。
16、到节点发送完成处理函 数; 并且计时功能等效能够准确记录时间流逝的功能, 不限定具体的实现方法。 0016 正常情况下, 总线上各个节点设备之间进行数据通讯, 当节点1的对时周期到, 节 点1读取此时刻节点的时间基准值TB, 并且启动计时功能, 节点1将读取的时间基准值TB组成 时间同步报文, 最后启动CAN控制器发送, 节点1真正发送完成后进入发送完成中断, 这时候 计时功能就能够准确将节点1从读取时间到节点1真正发送完成期间的时间偏差t计算出 来, 这段时间除了因为总线距离导致的时延外, 包含了节点1从读取对时时间到被同步节点 收到时间同步报文的全部时间偏差。 0017 在节点1的发送完成。
17、中断处理函数中, 节点1将启动CAN控制器的第二次发送, 此次 发送时间补偿报文, 报文内容为计时功能计算的动态计算偏差t, 主要包括多主设备冲突 竞争时间及时间同步报文在总线传输的时间。 0018 如图4, 被同步节点首先接收到同步主节点第一次发送的时间同步报文后, 被同步 节点将同步主节点下发的时间TB保存下来, 被同步节点启动被同步节点得计时功能等待同 步主节点第二次发送的时间补偿报文, 在被同步节点的超时周期内被同步节点接收到时间 补偿报文t, 设定被同步节点计时功能计时的时间为t2, 那么被同步节点设置的新时间 值为TB+t+t2, 如果超时周期内被同步节点未收到报文, 那么视为同步。
18、主节点时间补偿 超时, 被同步节点不执行此次时间同步。 0019 本发明中总线上为多主设备通讯, 从软件层面提出一种解决方法, 无需额外硬件 支持, 具有较好的兼容性, 将对时通道和数据通道统一, 减少硬件接口和对应芯片的需求, 有效节省经济成本, 并且每次能够实时动态计算并且补偿多主设备冲突竞争时间及时间同 步报文在总线传输的时间偏差, 无论偏差是确定的或是不确定的, 具备较好的灵活性和对 时准确性。 0020 附图1所述的总线架构的物理载体以CAN总线为例, 并且节点的数量符合CAN的电 气规范即可, 不作限定。 同步主节点不限于节点1, 按照实际的总线架构需求, 可选择其他节 点甚至多节。
19、点; 发送完成中断等效CAN控制器从真正能够发送到一帧报文发送完成之后能够立即触发 节点软件处理逻辑进入到发送完成处理函数。 0021 计时功能等效能够准确记录时间流逝的功能, 不限定具体的实现方法, 能够实现 上述功能的方法都属于计时功能范畴。 0022 本发明方法以CAN总线的多主设备间通讯为例, 包含但不限于CAN总线, 可以是 CANFD总线或是其他多主总线架构, 如果其他多主架构也运用此方法, 也在此专利保护范围 内。 说明书 3/4 页 5 CN 111030909 A 5 0023 以上所述仅是本发明的优选实施方式, 应当指出, 对于本技术领域的普通技术人 员来说, 在不脱离本发明原理的前提下还可以作出若干改进, 这些改进也应视为本发明的 保护范围。 说明书 4/4 页 6 CN 111030909 A 6 图1 图2 说明书附图 1/3 页 7 CN 111030909 A 7 图3 说明书附图 2/3 页 8 CN 111030909 A 8 图4 说明书附图 3/3 页 9 CN 111030909 A 9 。