实用新型内容
针对上述现有技术中存在的问题,本实用新型要解决的技术问题是:如何解决TTCAN总线过分依赖主节点容易产生同步失败,时间漂移造成同步误差过大。
为了解决TTCAN总线过分依赖主节点容易产生同步失败,时间漂移造成同步误差过大,本实用新型提出了一种时间周期控制元件,其包括:
包括:计数器,和含有可编程的n个状态信息的状态机;其中,状态机随着计数器的每次计数依次改变状态信息编码,并通过输出端(SB0)依次输出所述状态信息编码至CPU。
进一步,所述状态机还包括含有4个相位信息编码的相位机,并通过另一个输出端(SB1)依次输出所述相位信息编码至CPU。
进一步,所述状态信息编码构成具有可编程的n个周期的外部时钟信号。
进一步,所述状态信息编码和相位信息编码构成具有n*4个周期的外部时钟信号
本实用新型还提出了一种TTCAN控制通讯模块,其特征在于,包括:CPU,接口模块,以及根据上述的时间周期控制元件;其中:CPU分别连接时间周期控制元件和接口模块;时间周期控制元件用于周期性地向CPU发送所述外部时钟信号,CPU将该外部时钟信号作为CPU时间周期调度表的时序触发信号触发事件,且通过接口模块与CAN总线和***设备进行数据交换。
本实用新型还提出了一种车辆的TTCAN控制通讯***,包括CAN网络,数个***设备以及与所述***设备一一对应的数个所述的TTCAN控制通讯模块;其中,数个所述的TTCAN控制通讯模块都采用相同的时间周期控制元件,且提供相同周期的外部时钟信号;所述***设备通过TTCAN控制通讯模块与CAN网络相连,组成TTCAN通讯网络。
该模块采用外部时间周期控制元件发送周期性节拍信号给TTCAN网络控制网络全局时间周期和局部时间周期,基本消除TTCAN网络节点产生的时间漂移,由于时间同步完全由外部硬件元件控制,因此,网络时间同步不受主节点的运行状态的影响。
具体实施方式
参见图1,为本实用新型的TTCAN控制通讯模块的模块连接图。其包括:CPU,接口模块,以及时间周期控制元件。CPU分别连接时间周期控制元件和接口模块;CPU通过接口模块与CAN总线和***设备进行数据交换。
接口模块的配置如下:
1)模块CAN端口:由模块CPU内置两路CAN控制器连接两个外部隔离型CAN驱动器组成,当两路CAN单独使用时可以提供更宽的数据带宽,也可以联合使用互为备份。
2)SPI通讯口:模块CPU内置两路SPI通讯口,通过SPI通讯口可以和上位***CPU通讯交换消息,再送到CAN口。两路SPI即可以单独使用,也可以采用联合使用互为备份方式。
3)RS232通讯口:模块CPU内置两路RS232通讯口(LVTTL电平),通过RS232通讯口也可以和上位***CPU通讯交换消息,再送到CAN口。同样两路RS232即可以单独使用,也可以联合SPI口使用。
4)I/O输入输出线:可以用来和上位***CPU作握手用。
该TTCAN控制通讯模块采用特定的外部时间周期控制元件发送周期性节拍信号给CPU,从而控制网络全局时间周期和局部时间周期。
作为一个优选的实施例,该外部时间周期控制元件的周期性时序触发信号由16条状态周期输出线和2条周期内相位输出线组成,最大可以组成16*4=64个局部时间周期。
该外部时间周期控制元件主要由计数器和状态机构成。
作为示意性的实施例,本实用新型采用了模块减计数器:减计数器由24位D触发器组成,当模块复位时,减计数器被预置分频常数n。工作时,每输入一个脉冲,减计数器减一,当计算器被减到0时输出状态触发信号,每触发一次,模块状态机进入下个状态。
状态机采用16位有限状态机,16条状态输出线:
状态表:
上述16位状态由SB0引脚输出。
作为优选实施例,该外部时间周期控制元件还包括两条相位输出线,构成4个相位信息。
上面16个状态,每个状态周期被等分为4个相位等部分:
上述4位状态由引脚SB1输出。由此,构成16*4=64个局部时间周期输出至CPU(参见图2)。
输出线TINT:每个状态转换时发送一个宽度为几微秒宽正脉冲,该信号可以作为测试全局同步的时标,也可以作为送给CPU的中断请求信号或锁存信号。
该TTCAN控制通讯模块采用外部时间周期控制元件发送周期性节拍信号给CPU控制网络全局时间周期和局部时间周期。周期性时序触发信号有16条状态周期输出线和2条周期内相位输出线组成,最大可以组成16*4=64个局部时间周期,当一条网络上全部采用该TTCAN控制通讯模块时,因为每个模块有统一参数的时钟,各模块统一设计的完全由硬件控制的相同全局时间周期和局部时间周期,因此模块间产生的时间漂移可以忽略不计。另外,总线网络的全局时间和子周期时间完全由外部硬件元件控制,因此,网络时间同步不受主节点的运行状态的影响。
现在介绍外部时间周期控制元件的工作过程:
***上电后模块内部复位,时间周期控制元件的输入线RST#、同步输入线ST#,这两条线分别连接到模块上电检测复位,同步输入端。当这两条引脚其中有一条为低电平时状态机进入状态0并初始化时钟分频器。当复位或同步后,状态机输出线输出0000 00000000 0001同时相位输出线输出为00,输出线TINT输出为0。当RST#、ST#线同时为高,模块开始工作。状态输出线,相位线,模块内部TINT线周期性的输出脉冲信号。
CPU接收到上述局部时间周期信号后,对信号进行识别,并将循环调度表中的时序次序安排数据帧到局部时间周期,按次序传送,即实现TTCAN网络调度。
当多模块联网工作的情况下,复位电路一般由电路中看门狗触发,每个芯片的TINT线输出脉冲相对时间差表示了每个RST#输入端时间延迟的情况,ST#线输入一个负脉冲后,每个模块内部的TINT线输出脉冲相对时间差基本就消失了,达到多模块联网同步的目的。
参见图3,为车辆的TTCAN控制通讯***,包括CAN网络,数个***设备以及与所述***设备一一对应的数个TTCAN控制通讯模块;其中,所有的TTCAN控制通讯模块都采用相同的时间周期控制元件,且提供相同周期的外部时钟信号;所述***设备通过TTCAN控制通讯模块与CAN网络相连,组成TTCAN通讯网络。
在正常工作状态下,TTCAN控制通讯模块会在特定的时间段,由数个控制通讯模块的其中一个自动地向CAN网络发送复位信号,从而初始化所有控制通讯模块的所述时间周期控制元件,以便统一所有发送至CPU的外部时钟信号。可以通过循环周期调度表自动地分配某个模块在特定的时间段发送上述复位信号。
同时,CPU会根据特定时序触发信号监控识别网络上传送的特定ID消息帧,当发现该消息帧时间节拍异常、当设备上电复位时、网络运行时再随时投入一台设备,则网络需要再同步,这时只需要给时间周期控制元件的ST#线一个负脉冲就可以使网络达到全局同步。该负脉冲可以通过不同的分布式模块(通过软件)根据模块的工作状态(有效与否),自动地由某个模块施加,或从总线上(硬件)直接施加。
当某台设备运行时看门狗复位,CPU重启,这时由于CPU重启并不会引起外部的总线时间触发同步元件复位,因此CPU重新工作后可以不需要重新识别外部时序触发周期。
本***为模块化结构,在构成网络时容易实现从顶端开始设计,模块只负责管理通讯,与设备部件的使用功能无关。
当TTCAN控制通讯***的网络上全部采用该TTCAN控制通讯模块时,因为每个模块有统一参数的时钟,各模块统一设计且完全由硬件控制的相同全局时间周期和局部时间周期,因此模块间产生的时间漂移可以忽略不计。模块的时标输出线作为状态锁存信号或中断触发信号送给通讯CPU,表示一个局部时间周期的开始,也可以在模块作为一个测试时标信号,测试模块之间时间延迟,该时间延迟反映了模块在网络通讯中全局同步的性能。用硬件方法时间延迟小于2个时钟脉冲,而用通讯CPU(软件)从总线送信令方法产生的模块时间延迟应该小于一个CAN位时间。
构建的TTCAN网络解决了总线过分依赖主节点容易产生同步失败,时间漂移造成同步误差过大等问题。
以上所述仅为本实用新型的较佳实施例而已,并非用于限定本实用新型的保护范围。凡在本实用新型的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本实用新型的保护范围内。