一种TTCAN总线对时及发送数据的方法.pdf

上传人:1520****312 文档编号:4436986 上传时间:2018-10-01 格式:PDF 页数:9 大小:1.05MB
返回 下载 相关 举报
一种TTCAN总线对时及发送数据的方法.pdf_第1页
第1页 / 共9页
一种TTCAN总线对时及发送数据的方法.pdf_第2页
第2页 / 共9页
一种TTCAN总线对时及发送数据的方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种TTCAN总线对时及发送数据的方法.pdf》由会员分享,可在线阅读,更多相关《一种TTCAN总线对时及发送数据的方法.pdf(9页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 104035901 A (43)申请公布日 2014.09.10 C N 1 0 4 0 3 5 9 0 1 A (21)申请号 201410283192.1 (22)申请日 2014.06.23 G06F 13/38(2006.01) H04L 29/06(2006.01) (71)申请人中国北方车辆研究所 地址 100072 北京市丰台区槐树岭4号院 (72)发明人刘娇娜 门义双 刘树林 蒋明军 侯毅 王雪涛 刘斌 高云琨 苗秋实 周婧 郭亮 王光辉 徐静 (74)专利代理机构中国兵器工业集团公司专利 中心 11011 代理人刘东升 (54) 发明名称 一种TTC。

2、AN总线对时及发送数据的方法 (57) 摘要 本发明属于信息通讯技术领域,具体涉及一 种TTCAN总线对时及发送数据的方法。本发明技 术方案所提供的方法应用于TTCAN总线时间从节 点接收时间主节点定时消息,并在矩阵周期内定 时发送消息的过程中,可合理分配系统工作时间, 实现总线节点准确对时和在规定时间片内周期发 送总线数据,在空闲时间片内完成系统其它功能。 本发明采用单片机或DSP内部中断优先级较高的 定时器T0中断,因此在该中断执行时不会被其它 低优先级的中断打断而使总线定时时间产生误 差,并且仅在T0中断过程中完成总线对时和按照 矩阵周期发送总线数据功能,同时实现在空闲时 间片内完成系统。

3、的其它功能。减少中断个数,避免 中断嵌套较多而产生的系统逻辑混乱。 (51)Int.Cl. 权利要求书1页 说明书5页 附图2页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书5页 附图2页 (10)申请公布号 CN 104035901 A CN 104035901 A 1/1页 2 1.一种TTCAN总线对时及发送数据的方法,其特征在于,该方法基于TTCAN总线对时 及发送数据系统来实施,该系统以单片机或DSP为核心,配合CAN总线通信模块的嵌入式系 统,有外部时钟信号,内部可产生精确的定时中断;该系统具体包括:中断控制器、CAN总线 收发器、定时器; 具。

4、体而言,上述方法具体包括如下步骤: 步骤S1:预设定CAN总线网络的总线波特率,确定最小时间间隔,即一个时间片时间, 由多个分别定义有序号的时间片构成一个基本周期,再由基本周期确定矩阵周期;同时,确 定各个时间从节点各自发送时间所在的时间片序号或时间片序号组; 步骤S2:关闭所有中断,配置时间从节点的中断控制器、初始化时间从节点的CAN总线 收发器; 步骤S3:定时器选用中断优先级最高的T0定时器,对T0定时器初始化,将T0定时周 期T设定为TTCAN总线的一个时间片时间,根据外部时钟频率及内部分频方式计算第一中 断计数值,将该第一中断计数值装载到T0定时器的计数寄存器; 步骤S4:启动CAN。

5、总线收发器,根据CAN总线的总线波特率和接收到的时间主节点定 时数据帧长度来计算接收定时数据时间T1,获得接收定时数据时间T1与T0定时器定时周 期T之间的时间差T-T1,根据外部时钟频率及内部分频方式计算第二中断计数值; 步骤S5:计算完成一个矩阵周期内,需要进入T0定时器定时中断的次数N;其中,N 一个矩阵周期/一个时间片; 步骤S6:定义当前进入T0定时器的中断累计次数为N S ,将其初始化为0;定义成功接 收时间主节点的定时消息的状态值R CT ,将其值定义为:成功接收信息时,其值设为1,未接 收信息时,其值设为0;将该状态值R CT 初始化为0; 步骤S7:开启中断,中断控制器启动T。

6、0定时器; 步骤S8:判断是否进入T0定时器中断;若是,则转入步骤S9;若否,则判断是否接收到 定时消息;当判断为接收到定时消息时,将步骤S4的第二中断计数值装载到T0定时器的计 数寄存器;设置N S 0;设置R CT 1,表示接收到定时消息,然后重新执行步骤S8;当判断 为没有接收到定时消息时,则重新执行步骤S8; 步骤S9:每进入一次定时器T0中断,中断累计次数N S 数值加1; 步骤S10:根据中断累计次数N S 的当前数值,判断当前时间从节点发送数据的时间片 序号是否与步骤S1中确定的该时间从节点发送时间所在的时间片序号相一致,或属于步 骤S1中确定的该时间从节点发送时间所在的时间片序。

7、号组;若判断结果为相一致或属于, 则进入步骤S11;若判断结果为不一致或不属于,则进入步骤S12; 步骤S11:判断R CT 是否为1,若为1,则发送总线数据;不为1,则不处理,转至步骤S13; 步骤S12:判断当前时间片为空闲时间片,转为执行其它数据计算或处理其它接口数 据,然后转至步骤S13; 步骤S13:判断N S 值是否达到N,若是,则重置N S 0,R CT 0,一个矩阵周期结束,回到 步骤S8;若否,则直接回到步骤S8。 权 利 要 求 书CN 104035901 A 1/5页 3 一种 TTCAN 总线对时及发送数据的方法 技术领域 0001 本发明属于信息通讯技术领域,具体涉及。

8、一种TTCAN总线对时及发送数据的方 法。 背景技术 0002 自20世纪80年代德国BOSCH公司发明CAN总线技术以来,CAN总线作为一种网 络通讯控制方式,广泛应用在汽车、航空、工业控制、自动控制等领域。随着分布在通信网络 中的节点逐渐增多,总线的优先级仲裁机制导致的通信延迟时间增大,为解决总线通信的 实时性要求,国际标准ISO 11898-4在CAN协议栈的会话层中提出了一种利用时间触发的 通信协议TTCAN。在TTCAN通信网络中,时间主节点周期性的发送定时消息,其它时间从节 点接收定时消息作为时钟同步信号,使本地时钟与时间主节点的时钟同步,每个节点都有 一个消息调度表称为矩阵周期,。

9、该表指明了此节点发送或接收某个特定消息的时刻,矩阵 周期又可分为多个基本周期,基本周期再由一系列最小固定时间片组成,总线上的消息交 换就在这个时间片内完成。因此相对传统的CAN协议,TTCAN具有实时性高、可靠性好,数 据量大,避免总线拥塞,大大提高网络利用率等特点。 0003 在工业领域,尤其是汽车行业,TTCAN总线节点的硬件实现一般以单片机或DSP为 核心,配合CAN总线控制器,设计双冗余通道(A通道和B通道)完成。单片机和DSP都具有 外部时钟信号,内部有定时器可产生精确的定时中断,并且中断优先级较高。目前普遍采用 的定时方式是在接收到主节点定时消息后,设置一个专用定时器时钟产生定时中。

10、断对时, 而单片机或DSP除了处理对时和周期发送数据,内部还要处理接收数据,准备发送数据,以 及其它计算,外部还会有其它接口的信号采集和发送等。若CAN总线的双冗余通道A通道 和B通道对时分别需要占用一个专用定时中断,接收CAN总线数据也会产生中断,加之程序 中实现其他功能需要定时,则程序中产生的中断较多,程序会在未知的情况被打断,在多重 中断嵌套下会导致定时不准,严重会使程序逻辑混乱。 发明内容 0004 (一)要解决的技术问题 0005 本发明要解决的技术问题是:如何避免TTCAN总线中断嵌套较多而产生的系统逻 辑混乱。 0006 (二)技术方案 0007 为解决上述技术问题,本发明提供一。

11、种TTCAN总线对时及发送数据的方法,该方 法基于TTCAN总线对时及发送数据系统来实施,该系统以单片机或DSP为核心,配合CAN 总线通信模块的嵌入式系统,有外部时钟信号,内部可产生精确的定时中断;该系统具体包 括:中断控制器、CAN总线收发器、定时器; 0008 具体而言,上述方法具体包括如下步骤: 0009 步骤S1:预设定CAN总线网络的总线波特率,确定最小时间间隔,即一个时间片 说 明 书CN 104035901 A 2/5页 4 时间,由多个分别定义有序号的时间片构成一个基本周期,再由基本周期确定矩阵周期;同 时,确定各个时间从节点各自发送时间所在的时间片序号或时间片序号组; 00。

12、10 步骤S2:关闭所有中断,配置时间从节点的中断控制器、初始化时间从节点的CAN 总线收发器; 0011 步骤S3:定时器选用中断优先级最高的T0定时器,对T0定时器初始化,将T0定 时周期T设定为TTCAN总线的一个时间片时间,根据外部时钟频率及内部分频方式计算第 一中断计数值,将该第一中断计数值装载到T0定时器的计数寄存器; 0012 步骤S4:启动CAN总线收发器,根据CAN总线的总线波特率和接收到的时间主节 点定时数据帧长度来计算接收定时数据时间T1,获得接收定时数据时间T1与T0定时器定 时周期T之间的时间差T-T1,根据外部时钟频率及内部分频方式计算第二中断计数值; 0013 步。

13、骤S5:计算完成一个矩阵周期内,需要进入T0定时器定时中断的次数N;其中, N一个矩阵周期/一个时间片; 0014 步骤S6:定义当前进入T0定时器的中断累计次数为N S ,将其初始化为0;定义成 功接收时间主节点的定时消息的状态值R CT ,将其值定义为:成功接收信息时,其值设为1, 未接收信息时,其值设为0;将该状态值R CT 初始化为0; 0015 步骤S7:开启中断,中断控制器启动T0定时器; 0016 步骤S8:判断是否进入T0定时器中断;若是,则转入步骤S9;若否,则判断是否接 收到定时消息;当判断为接收到定时消息时,将步骤S4的第二中断计数值装载到T0定时器 的计数寄存器;设置N。

14、 S 0;设置R CT 1,表示接收到定时消息,然后重新执行步骤S8;当 判断为没有接收到定时消息时,则重新执行步骤S8; 0017 步骤S9:每进入一次定时器T0中断,中断累计次数N S 数值加1; 0018 步骤S10:根据中断累计次数N S 的当前数值,判断当前时间从节点发送数据的时 间片序号是否与步骤S1中确定的该时间从节点发送时间所在的时间片序号相一致,或属 于步骤S1中确定的该时间从节点发送时间所在的时间片序号组;若判断结果为相一致或 属于,则进入步骤S11;若判断结果为不一致或不属于,则进入步骤S12; 0019 步骤S11:判断R CT 是否为1,若为1,则发送总线数据;不为1。

15、,则不处理,转至步骤 S13; 0020 步骤S12:判断当前时间片为空闲时间片,转为执行其它数据计算或处理其它接 口数据,然后转至步骤S13; 0021 步骤S13:判断N S 值是否达到N,若是,则重置N S 0,R CT 0,一个矩阵周期结束, 回到步骤S8;若否,则直接回到步骤S8。 0022 (三)有益效果 0023 本发明技术方案所提供的方法应用于TTCAN总线时间从节点接收时间主节点定 时消息,并在矩阵周期内定时发送消息的过程中,可合理分配系统工作时间,实现总线节点 准确对时和在规定时间片内周期发送总线数据,在空闲时间片内完成系统其它功能。 0024 本发明采用单片机或DSP内部。

16、中断优先级较高的定时器T0中断,因此在该中断执 行时不会被其它低优先级的中断打断而使总线定时时间产生误差,并且仅在T0中断过程 中完成总线对时和按照矩阵周期发送总线数据功能,同时实现在空闲时间片内完成系统的 其它功能。减少中断个数,避免中断嵌套较多而产生的系统逻辑混乱。 说 明 书CN 104035901 A 3/5页 5 附图说明 0025 图1为本发明实施例的对时和发送数据方法流程图。 0026 图2为某车辆TTCAN总线的矩阵周期图。 具体实施方式 0027 为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的 具体实施方式作进一步详细描述。 0028 本发明使用DS。

17、P或单片机中断优先级最高的定时器T0,根据TTCAN总线协议基本 周期上的最小时间间隔,即一个时间片为定时器T0的初始定时周期T,在接收到总线时间 主节点发送的定时消息后,根据波特率和数据帧长度计算接收主节点发送的对时数据帧产 生的时间T1,T-T1为当前一次定时器T0产生中断的时间,之后的T0定时器时间,恢复初始 定时周期T。一个矩阵周期发送数据完成,只需要T0产生中断次数N,N(一个矩阵周期 时间)/(一个时间片时间)。这样,循环T0产生的中断N次,即可完成对时和一个矩阵周期 内数据的发送。同时在空闲时间片,还可以处理系统需要实现的其它功能。 0029 具体而言,为解决现有技术的问题,本发。

18、明提供一种TTCAN总线对时及发送数据 的方法,参照图1,该方法基于TTCAN总线对时及发送数据系统来实施,该系统以单片机或 DSP为核心,配合CAN总线通信模块的嵌入式系统,有外部时钟信号,内部可产生精确的定 时中断;该系统具体包括:中断控制器、CAN总线收发器、定时器; 0030 具体而言,上述方法具体包括如下步骤: 0031 步骤S1:预设定CAN总线网络的总线波特率,确定最小时间间隔,即一个时间片 时间,由多个分别定义有序号的时间片构成一个基本周期,再由基本周期确定矩阵周期;同 时,确定各个时间从节点各自发送时间所在的时间片序号或时间片序号组; 0032 步骤S2:关闭所有中断,配置时。

19、间从节点的中断控制器、初始化时间从节点的CAN 总线收发器; 0033 步骤S3:定时器选用中断优先级最高的T0定时器,对T0定时器初始化,将T0定 时周期T设定为TTCAN总线的一个时间片时间,根据外部时钟频率及内部分频方式计算第 一中断计数值,将该第一中断计数值装载到T0定时器的计数寄存器; 0034 步骤S4:启动CAN总线收发器,根据CAN总线的总线波特率和接收到的时间主节 点定时数据帧长度来计算接收定时数据时间T1,获得接收定时数据时间T1与T0定时器定 时周期T之间的时间差T-T1,根据外部时钟频率及内部分频方式计算第二中断计数值; 0035 步骤S5:计算完成一个矩阵周期内,需要。

20、进入T0定时器定时中断的次数N;其中, N一个矩阵周期/一个时间片; 0036 步骤S6:定义当前进入T0定时器的中断累计次数为N S ,将其初始化为0;定义成 功接收时间主节点的定时消息的状态值R CT ,将其值定义为:成功接收信息时,其值设为1, 未接收信息时,其值设为0;将该状态值R CT 初始化为0; 0037 步骤S7:开启中断,中断控制器启动T0定时器; 0038 步骤S8:判断是否进入T0定时器中断;若是,则转入步骤S9;若否,则判断是否接 收到定时消息;当判断为接收到定时消息时,将步骤S4的第二中断计数值装载到T0定时器 说 明 书CN 104035901 A 4/5页 6 的。

21、计数寄存器;设置N S 0;设置R CT 1,表示接收到定时消息,然后重新执行步骤S8;当 判断为没有接收到定时消息时,则重新执行步骤S8; 0039 步骤S9:每进入一次定时器T0中断,中断累计次数N S 数值加1; 0040 步骤S10:根据中断累计次数N S 的当前数值,判断当前时间从节点发送数据的时 间片序号是否与步骤S1中确定的该时间从节点发送时间所在的时间片序号相一致,或属 于步骤S1中确定的该时间从节点发送时间所在的时间片序号组;若判断结果为相一致或 属于,则进入步骤S11;若判断结果为不一致或不属于,则进入步骤S12; 0041 步骤S11:判断R CT 是否为1,若为1,则发。

22、送总线数据;不为1,则不处理,转至步骤 S13; 0042 步骤S12:判断当前时间片为空闲时间片,转为执行其它数据计算或处理其它接 口数据,然后转至步骤S13; 0043 步骤S13:判断N S 值是否达到N,若是,则重置N S 0,R CT 0,一个矩阵周期结束, 回到步骤S8;若否,则直接回到步骤S8。 0044 下面结合具体实施例来详细描述。 0045 实施例 0046 本实施例提供一种应用在某车辆上的TTCAN总线的矩阵周期如图2所示,CAN总 线的波特率为1M,6字节的标准帧数据格式。一个时间片占用175us,一个基本周期由8个 时间片组成,一个矩阵周期由5个基本周期组成,则一个矩。

23、阵周期占用的时间为7ms。时间 主节点为ECU1,当前时间从节点为ECU2。该节点的控制核心为DSPTMS320LF28335,内部时 钟150M。T0寄存器初始化定时周期为T175us。计算接收时间主节点ECU1的对时消息 需要占用T1110us的时间。则T-T165us,N7ms/175us40。 0047 如图1所示,本实施例的工作过程如下: 0048 1、初始化DSP系统控制; 0049 2、关闭所有中断; 0050 3、配置DSP中断T0和Receive_can;按照TTCAN总线协议初始化CAN控制器; 0051 4、初始化T0定时器,将175us设定为T0定时器的初始定时周期; 。

24、0052 5、初始化程序变量,其中进入T0中断次数N S 0,成功接收定时消息变量 Receive_Can_Timer0; 0053 6、打开中断; 0054 7、若接收到ECU1的定时消息,将65us设定为当前一次定时器T0的定时周期,其 它次定时器T0的定时周期仍为初始定时周期;设置N S 0;设置Receive_Can_Timer1, 表示接收到定时消息; 0055 8、每次进入定时器T0中断,N S 加1; 0056 9、ECU2发送数据的时刻分别为N S 2,10,18,26,34时。 0057 10、若为发送数据时刻,判断Receive_Can_Timer是否为1,若为1,则发送E。

25、CU2数 据;不为1,则不处理; 0058 11、若不是发送数据时刻,在其它的剩余时间片内,处理程序需要完成的其它功 能。 0059 12、判断当N S 等于40时,则N S 0,Receive_Can_Timer0,一个矩阵周期结束。 说 明 书CN 104035901 A 5/5页 7 0060 其中,系统中如果需要其它定时时间T T ,可计算N T T T /T,再由每次进入T0中断 后N T 加1来计算。 0061 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形 也应视为本发明的保护范围。 说 明 书CN 104035901 A 1/2页 8 图1 说 明 书 附 图CN 104035901 A 2/2页 9 图2 说 明 书 附 图CN 104035901 A 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1