搜索
热搜: 活动 交友 discuz
查看: 211|回复: 1

TTCANopen应用层协议简介

[复制链接]

10

主题

14

回帖

70

积分

管理员

积分
70
发表于 2026-6-30 18:25:36 | 显示全部楼层 |阅读模式
      TTCANopen是由国人打造的一款拥有自主知识产权的CAN应用层协议,与以往的应用层协议不同, TTCANopen 实际上是一个开放的协议框架。它是由众多的“基本子协议”和“应用子协议”构成,用户可以 根据自己的专业应用特点,去选择“应用子协议”;也可以使用“基本子协议”去生成新的“应用子协议”;
      TTCANopen协议在应用层界面直接兼容最新的CAN-FD。TTCANopen 应用层协议以连续寄存器空间为信息载体,使用了两个不同的CAN标识符划分的方式分别传递过程变量和非过程变量,巧妙的解决了寄存器空间分层管理与其指令优先级分配不平衡的矛盾。TTCANopen还特别规范了设备内部多条指令的发送原则,这是其它应用层协议所不具备的。TTCANopen引入了系统心跳的概念,用以同步总线上的设备,使系统拥有统一的时钟,并使用时间相位矩阵取代了传统的指令查询矩阵,提高了总线带宽的利用率,大大的减小了浪涌出现的概率,使应用系统实现了由传统的指令驱动到现代的时间驱动的跨越。
      TTCANopen应用层协议对CAN 标识符的划分及其物理含义的分配,如:优先级段、寄存器基地址段、设备编号段、功能码段都具有明确的应用层协议指令含义,据此设计的应用层协议具有很好的直读性,易于解析,大大降低了学习入门的难度。是一款非常适合推广和普及的应用层协议。
      另外,TTCANopen有着类modbus特性,使其能够非常容易的和市面上大多数组态软件完美对接。为用户构建应用系统提供了极大的便利。

10

主题

14

回帖

70

积分

管理员

积分
70
 楼主| 发表于 2026-7-1 16:48:48 | 显示全部楼层

TTCANopen协议概略

        一种使用两个CAN标识符划分的应用层分配方法 ,应用层以连续寄存器空间为信息载体,并将其十六位寄存器寻址空间平分为两部分,其中:0x0000~0x7FFF用于存放、传递过程变量;0x8000~0xFFFF用于存放、传递非过程变量;应用层根据CAN总线传递变量特性的不同,即过程变量或非过程变量,使用两个不同的CAN标识符划分分别传递上述两种变量,从而为两种变量提供了不同的总线竞争途径,并为应用层协议实施生产者-消费者模型和主机-从机模型提供了明确的对象指向,有效的提高了CAN总线的总体效能;传递过程变量的CAN标识符划分,采用了在CAN标识符中抽取多个位片段,并重新排列拼接组合的方式,构成应用层传递过程变量的寄存器基地址段,从而可以在过程变量寄存器基地址空间构成多个等价竞争层,很好的解决了变量分段(层)管理与总线竞争分配不平衡的矛盾。传递过程变量的CAN标识符划分,将CAN2.0b或CAN-FD协议扩展帧格式中29位CAN标识符划分为六段,即:优先级段、子段1、子段3、设备编号段、功能码段和子段。
其中:子段1、子段2和子段3排列拼接组合构成寄存器基地址段,各段组成说明如下:
       优先级段:由CAN标识符的最高位第28位组成;
       子段1:由CAN标识符的第27位组成;
       子段3:由CAN标识符的第 26~19位组成;
       设备编号段:由CAN标识符的第18~12位组成;
       功能码段:由CAN标识符的第11~7位组成;
       子段2:由CAN标识符的第6~0位组成;
       寄存器基地址段:由子段1、子段2和子段3排列拼接组合而成,即:由CAN标识符的第27位、6~0位和 26~19位组成十六位的寄存器基地段。当CAN标识符的第27位(即:寄存器基地址段的最高位)为0时,寄存器基地址空间指向过程变量空间(即:0x0000~0x7FFF),由于十六位寄存器基地址段的低八位(26~19位)处于CAN标识符的较高端MSB,而其次高七位(6~0位)处于CAN标识符的低端LSB,由此过程变量寄存器空间变量的竞争能力由其十六位寄存器基地址段的低八位决定,从而在过程变量寄存器地址空间形成了128个等价竞争层,每层包含256个地址空间,在每层相同位置上的过程变量具有相同的总线竞争能力,在同层中,低地址变量的竞争能力优于高地址变量。
        传递非过程变量的CAN标识符划分,将CAN2.0b或CAN-FD协议扩展帧格式中29位CAN标识符划分为四段,即:优先级段、寄存器基地址段、设备编号段和功能码段,各段组成说明如下:
      优先级段:由CAN标识符的最高位第28位组成;
      寄存器基地址段:由CAN标识符的第27~12位组成;
      设备编号段:由CAN标识符的第11~5位组成;
      功能码段:由CAN标识符的第4~0位组成;
一般非过程变量的实时性要求不高,在应用层通常适用主机-从机模型,主机和从机间采用问答方式通讯,变量分段管理与其总线竞争能力没有突出的矛盾,因此从CAN标识符的高端直接截取十六位(27~12位)构成寄存器基地址段,当CAN标识符的第27位(即:寄存器基地址段的最高位)为1时,寄存器基地址空间指向非过程变量空间(即:0x8000~0xFFFF),非过程变量的总线竞争能力整体低于过程变量,这是应用层所期望的,由于CAN标识符的高七位不能连续出现高电平1,当优先级位(28位)为1时,非过程变量实际有效的地址空间为0x8000~0xFBFF,也就是在0xF000段的尾部集中有1024个地址空间(0xFC00~0xFFFF)不能使用,如果对非过程变量采用和过程变量一样的寄存器拼接组合的方法构成寄存器基地址段,势必将这1024个不可用地址空间分散到各等价层中,这对非过程变量寄存器空间的使用和管理无益,因此应用层对过程变量和非过程变量分别采用不同的CAN标识符划分进行总线传递是非常必要的。
      本协议对CAN标识符的划分及其物理含义的分配,如:优先级段、寄存器基地址段、设备编号段、功能码段都具有明确的应用层协议指令含义,据此设计的应用层协议具有很好的直读性和开放性,使应用层协议易于解析,便于用户在框架内构建适合其使用环境的应用
层子协议。
      本协议应用层以连续寄存器空间为信息载体,应用层协议指令是对该连续寄存器空间的读写访问,由此使其能够顺延的兼容CAN-FD协议对数据场长度的扩充。
寄存器空间分配.jpg
两个划分.jpg
过程变量划分.jpg
非过程变量划分.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X5.0|© 2001-2026 Discuz! Team.

Archiver|手机版|小黑屋|TTCANopen技术 ( 京ICP备2026038698号|京公网安备11010602202837号 )| GMT+8, 2026-8-15 02:41 , Processed in 0.025445 second(s), 30 queries .

快速回复 返回顶部 返回列表