前言 现场总线 CAN[1]-bus 是由 Bosch[2]公司 1986 年 2 月在 SAE[3](汽车工程人员协会) 大会上提出的一种新型的串行总线——控制器局域网(Control Area Network,CAN),其具 有多主和无破坏性仲裁的特点以及优秀的错误检测机制,总线的实时性和可靠性普遍被业界 认同,广泛应用在汽车制造领域和工业控制生产领域,并不断在扩展,现在每年都有亿计的 CAN 芯片投入使用。 现场总线 CAN-bus 只定义了 OSI[4]参考模型中的物理层和数据链路层,而没有定义应 用层,为此一些机构和组织针对不同应用领域定义了多种应用层协议,其中,使用最广泛的 有CANopen[5] 和DeviceNet[6],我国也在2002年发布了兼容DeviceNet协议的国标GB/T 18858.3。由于这两个协议都使用了 11 位 CAN 标识,其 ID 资源受限,迫使协议编制的非常 复杂,难于解析,对许多初学者是一个很大的负担,对一些简单应用门槛过高。 随着电子制造技术的不断发展,越来越多的单片机、处理器将 CAN 作为标准外设配置, CAN 的硬件应用成本进一步降低,而 CAN 的应用层协议成本凸显出来,成为 CAN 普及的瓶 颈,阻碍了 CAN 在各行业的应用和发展。CANopen 和 deviceNet 功能虽强大,但解析困难, 使用成本高,迫使很多用户自定义应用层协议,出现互相不通气、不公开、不兼容、测试验 证不到位、重复开发等问题,造成社会总应用成本的无序增加,迫切需要研发一个开放的、易于解析的 CAN 应用层协议,以降低 CAN 应用的门槛。为此,我产生了研发新协议 (TTCANopen)的想法,并获得了北京中铁航机电公司总经理王剑宇先生的支持,王先生表 示愿意承担协议的部分测试工作,我深为感激。 其实,早在 2007 年,以周立功为代表的国内工控界的精英已经开始了这项工作,并开发 了适用于工业控制领域的《iCAN 协议规范》[7]和相关产品,为 CAN 在国内的普及做出了巨大贡献。 时隔多年,自主 CAN 应用层协议在国内没有得到进一步发展,主要是开放度不够没能 够让更多领域的人参与进来,因此要求新开发的 TTCANopen 协议不是一个封闭的协议,而 是一个开放型的协议框架,准许用户根据其领域特点生成多种多样的应用子协议。 TTCANopen 协议设计目标就是直读性强,易于解析,可最大限度的使用户将精力和智 慧用于系统设计,而非协议本身。 2012 年 Bosch 公司正式发布了 CAN FD[8],到 2015 年提交国际标准化 ISO 11898-1,沉寂了几十年的 CAN 通讯标准,开启了一个新的纪元。CAN FD 在传统 CAN 总线上对数据传输速率和数据传输长度做了大幅度的性能提升,被视为下一代主流 CAN 总线。 使用 CAN FD 的应用层协议还在酝酿之中,如:CANopen FD 和 DeviceNet FD。由于 CAN FD 对传输数据长度的扩展,势必带来其与原 CANopen 和 DeviceNet 兼容性问题。 一张白纸,好画更新更美的图画,作为应用层协议新成员 TTCANopen 没有沉重的历史 包袱,在协议制定的起始阶段就将传统的 CAN 和最新的 CAN FD 包容在内。 目前 TTCANopen 协议只现出冰山的一角,大量的后续内容有待于广大读者和“仁人志士”扩充发展,俗语云:众人拾柴火焰高。 我从来不认为自己是一个“智者”,更不是一个“一呼而天下应”的英雄,之所以不量力在 CANopen 和 DeviceNet 巨日下点起烛火,是因为我相信“星星之火,可以燎原”,会给在黑暗中探索的人们带来希望,在我“抛砖”之后,真“智者”真“英雄”会显现。 本书主要针对 CAN 应用层协议进行阐述,较少涉及物理层和链路层的相关知识以及现 场总线的基本原理,国内出版的许多关于 CAN 总线的书籍对这些方面都有详细的介绍,读者可以选择参考。 本书第一章“提纲挈领”介绍 TTCANopen 应用层协议框架和基本指令集;第二章“乘前启后”介绍 TTCANopen 应用层协议的“主从”模式实现;第三章“蜕变化蝶”介绍由“主从”模式到“多主”模式的初级演化;第四章“脱胎换骨”介绍全触发模式的演绎过程; 第五章“整装待发”介绍设备内部多条指令的发送规则;第六章“步调一致”将时间系统和 时间矩阵引入 TTCANopen 网络,系统完成从指令驱动到时间驱动的转变;第七章 “USB,CAN”介绍 TTCANopen 专有的 USB 转 CAN 模块的设计;第八章“组态为王”介 绍 TTCANopen 与组态软件的对接和驱动程序的开发;第九章“柳暗花明”介绍 TTCANopen 生产者-消费者模型的实现;第十章“雪中送炭”解决寄存器分段管理与其总线竞争不平衡的矛盾;第十一章“规矩方圆”介绍 TTCANopen 设备工作状态与网络管理;第十二章“雏 鹰展翅”介绍 TTCANopen 通用可编程设备,引进“类”概念;第十三章“亚当夏娃”介绍TTCANopen 亚当模块的设计;第十四章“业余码农”介绍 TTCANopen 协议编程;第十五章 “左邻右舍”介绍 TTCANopen 网关;第十六章“勇攀高峰”介绍迷你 TTCANopen 的设计; 第十七章“华山论剑”介绍 TTCANopen 论坛;第十八章“巾帼英雄”TTCANopen 突破惯性思维壁垒,开启双 ID 时代。 本书内容从简入繁,环环相扣,循序渐进地将 TTCANopen 协议逐步展现给读者,建议读者按顺序阅读,一定会有所收获。 感谢吴先生、江先生参与审阅,并提出了宝贵的意见。 由于本书作者并不是从事工控专业的技术人员,书中不可避免的会出现错误,甚至犯一些低级别错误,希望广大读者予以批评指正,让我们协起手来共同把这项工作做好。 TTCANopen 协议是拥有自主知识产权的对非量产用户免费提供的 CAN 应用层协议。 本书特邀顾问:邓先生 陈平 2017年10月于北京 获取最新 TTCANopen 应用层协议内容,请访问 www.ttcanopen.com 注: [1] 控制器局域网(Control Area Network,CAN)。 [2] 德国 Bosch 公司。 [5] CANopen 由 CiA(国际用户与制造商团体)进行维护。 [6] DeviceNet 由美国 Rockwell 公司开发应用。 [8] CAN With Flexible Date-Rate。 |