老规矩,这里排版不是最佳,并且下文有个别误字太麻烦去改(这里保持第一版 2021.7.14,方便的话请移步 Github/Gitee 页面看最新的,或下载下来用 markdown 编辑器看排版更佳:Github仓库,Gitee仓库。

记录经过阅读十几篇介绍文章、PPT和论文后的一点粗浅的感悟(发现)。标准的初心是大家都遵守的规范,用得越多越好,这样大家都能互识、互联和互通。本文中许多中文名词为作者本人翻译自英文源文,非官方。成文辛苦,图片高达 44 张。本文所用到的图片侵删。如有没看懂的地方可在评论区留言,帮助进行通俗化改进;如有错误也请直言不讳。

写标准就是画饼,画饼是快乐的,读起来就能感觉到;技术路线确定后,实现就是个稍显无趣的体力活了。


目录

名词/概念释义

标准簇/标准模型

NCAP 与 TIM 通讯标准

通讯要素

消息 的格式

命令消息

响应/回复消息

初始化完毕消息

TEDS 的格式

Meta-TEDS 格式

TransducerChannel TEDS 格式

User’s Transducer Name TEDS 格式

PHY TEDS 格式

TEDS 头

TEDS 属性

TIM/传感器 的状态图

1451.5 标准

1451 标准的局限性

引用 & 参考
​​​​​​​​​​​​​​


名词/概念释义

  1. 一个传感器(或叫变送器,Transducer)主动或者被动的采集数据并以一定格式上传到中控参与控制或以图表形式显示,这是采集系统最简单的形式的表述。

  2. 一个传感器称得上为智能,有以下特征(标准 1451.0 定义的):1、以数字的形式传递数据和命令,2、有统一的协议,3、提供触发、状态切换等可控制的功能;在作者看来,即传感器端加上一个微控制器(MCU,即漫威宇宙,啊不,即单片机)或者传感器端加上一个较复杂的 ASIC 专用逻辑芯片,实现以上功能,就算“智能”了。题外话,若更进一步,如果传感器的数据比较珍贵而且处理的计算量很大,传感器端可以上微处理器(MPU,或唤作 SoC),运行 Linux,该 SoC 带 GPU 等,再跑一些人工智能、深度学习算法,这算“边缘计算”的概念了。

    下图为一种“智能传感器”的释义。

    更多的,智能传感器具有的特征如下(实际无必要全囊括):

    • 自描述;自识别;

    • 自诊断;自校准;

    • 定位信息,时间信息;

    • 数据聚合、处理和提取特征进行推理;

    • 报警通知;

    • 标准通讯接口和标准通讯协议。

    下图为工业现场背景下的一个智能传感器的示例(此图是通过无线的方式将数据发送出去),传感器会有成百上千个,而且类型也很多。

  3. 现在 处理器平台 和 通讯/数据传输的接口 的繁多性,如下图。

  4. 现在要很多个各式各样的智能传感器都可以连接到中控,要考虑两个方面:

    1. 制定标准的数据和命令的上下传输的协议;

    2. 制定一个智能标准的传感器“身份证”,让一个智能传感器接入系统后先发送这个亮明自己身份的“身份证”,上面有我是谁(传感器 ID、类型等)、我有啥、我能干啥等等信息。

    对于第一个方面,标准的数据和命令上下传输协议,在IEEE 1451标准中,数据和命令的传输都属于消息传输范畴,分为传达控制命令的命令消息帧和采集数据用来上传的数据消息帧,数据消息帧以回复消息帧形式发送和接收,消息帧均以以字节形式高位先传(MSB),消息帧都有严格的发送和接收格式,后文会具体表述。

    对于第二个方面中所讲的智能传感器的“身份证”,在IEEE 1451标准中为传感器电子数据表格(TEDS,Transducer Electronic Data Sheet),有严格的格式。这些协议或者叫格式的具体定义下文会引用标准源文讲到。下图为智能传感器带着TEDS的示例。

  5. 连接传感器(也叫变送器)的模块,与传感器通讯拿到其数据,并以1451标准定义的协议上传这些数据的模块,这里叫做传感器接口模块(源文翻译)(Transducer Interface Module,TIM)。TEDS 存在于 TIM 中,实现自描述。

  6. 上文的传感器接口模块(TIM)通过有线或者无线的形式以1451标准定义的协议上传上来的数据会首先送到一个应用处理模块,该模块经过分析处理这些数据再通过网络发出去,这个应用处理模块当作中间件起到中间转发和管理的作用,在这里叫做联网应用处理器(源文翻译)(Network Capable Application Processor,NCAP)。NCAP 接收 TIM 发送上来的 TEDS 并作解析,实现自识别,还有控制/管理各个 TIM 的用处。

    NCAP 先接收 TIM 发送上来的 TEDS 并作解析,实现自识别,再通过命令消息控制和管理各个 TIM,比如控制 TIM 启、停变送器采集数据等等,TIM 再通过回复消息帧上传采集到的数据,这样完成传感器的整个采集工作,但不同的是可以忽视智能传感器设备的主控架构和通讯接口等的不同,整个传感器系统拥有了上电自识别、自组网的“即插即用”特性和自启动、互操作的特性。

标准簇/标准模型

IEEE 1451 标准制定了 TEDS 的格式以及 联网应用处理器端(NCAP) 和 智能传感器端(TIM) 之间的通讯规范等。1451 协议簇:

下图可以让系统的结构清晰起来,一个 1451 模型的简略示意图,各个子标准分别描述了该模型各个部分的规范。

简单描述各个子标准:

  • IEEE 1451.0 描述 NCAP 和 TIM 包含的必要和可选的通用功能、通讯协议(数据/命令的请求/响应的协议)以及 TEDS 的格式等(Common functions, communication protocols, and TEDS formats),这个要在 TIM 和 NCAP 中实现,例如 TIM 中实现 TEDS 用于自描述,那么 NCAP 中要对应实现 TEDS 的解析,这样才能发现新设备的接入,即自识别,另外还有管理和控制 TIM 的实现,如通知/数据/命令的上下传输。

  • 1451.2 描述 NCAP 和 TIM 之间以点对点(point-to-point)方式通讯如串口的UART TTL/232/485、TII(该标准新定义的通讯接口,类 SPI 的 10 线接口)、SPI 等的相关标准,此时的 TIM 唤作 STIM(Smart Transducer Interface Module)。

  • 1451.3 描述分布式多点总线(Multidrop)的总线方式通讯(各种 Bus,多个设备共享物理总线),此时的 TIM 唤作 TBIM(Transducer Bus Interface Modules)。

  • 1451.4 描述数模混合接口的方式通讯,为传统的模拟传感器增加支持,TIM上电后通过一根数字线先发送 TEDS 给 NCAP,然后传感器用模拟线传递数据信息,此时与传统模拟传感器无异。

  • 1451.5 描述无线(Wireless)的方式通讯(如 WLAN、BT、ZigBee 等),此时的 TIM 唤作 WTIM(Wireless Transducer Interface Module)。

  • 1451.6 描述在 CAN 总线物理层上利用 CANopen 协议进行通讯。

  • 1451.7 描述利用 FRID 进行,扩展 RFID 系统的应用。

  • 1451.1 描述 NCAP 与上面网络(Network)部分通讯的一种规范,是可选项,NCAP 入网的协议可以采用其它如 Web/HTTPS/MQTT 等。

于是一张细节丰富一点的 1451 整体模型逐渐清晰,如下图。可以发现,1451.4 接口的智能传感器 通常挂在 TIM 之下。

举一个例子,此时如果要根据这个图的架构搭建一个简易的测试用的 传感器采集并上传 的系统,如下图所示。橘色和绿色的部分是采用 1451.2 点对点的方式使 TIM 和 NCAP 通讯,这里使用 串口(UART),右边浅靛色部分是采用 1451.5 无线的方式实现 TIM 与 NCAP 通讯,多对一,各个 NCAP 上面都通过有线(网线)或者无线(WLAN)入网,下面的 TIM 可以实现灵活的接入自识别/自组网。

最后,1451 标准给出完整的整体模型,如下图。

可以看出 NCAP 与 TIM 之 间的接口被定义为 IEEE 1451.X 物理接口规范,根据不同的应用需求选择不同的子标准接口规范。1451.x 主要做数据中转,1451.0 主要做信息(message)和 TEDS 服务,上图中标注 Optional 的部分为可选的。

由标准给出的架构图可知,NCAP 和 TIM 之间通过 1451.x(x = 2、3、5、6 等)进行交互,在 1451.x(做数据中转) 之外再加一层 1451.0(做信息(message)和 TEDS 服务) 。若 1451.0 中提供的功能等足够系统,可以只用 1451.0,即直接用于 NCAP 和 TIM 之间的交互,如下图所示(引自论文《IEEE_1451网络化智能传感器接口技术_王石记》)。

另外,一个 TIM 下面可以挂接多个 传感器,每一个传感器称为 一个传感器通道(Transducer Channel),一个 TIM 也可以挂接多个 执行器(Actuator,比如电机等),一个 TIM 下面也可以 连接多个 TIM,形成总分结构。

NCAP 对多个 TIM 的动态管理需要用户根据具体应用场景考虑,TIM 的接入、移出、命令/信息的收发等等。

NCAP 与 TIM 通讯标准

通讯要素

模型 梳理好了,架构 在大脑中也形成了,就差它们中间流动的数字的通讯协议的规范。1451标准描述它们的通讯要素有以下方面:

  • TEDS 的传递(递名片),TIM 自己的 TEDS 描述自己的信息(自描述),TIM 给 NCAP 发送自己的 TEDS(自识别),NCAP 可以发命令/数据来控制/读/写 TIM 的 TEDS。传感器自识别是 IEEE 1451 智能传感器的主要特点之一,TEDS 定义与配置是实现传感器自描述、自识别(即插即用)的核心技术。

  • 数据的传递(干正事),以字节形式,高位先传(MSB),格式为用户自定(推荐使用“响应(Peply or Response)”的格式回传数据);传输模式被定义为以下几种:1、NCAP 要时再给,2、TIM 缓存满时再给,3、TIM 固定周期性给,4、用户自定其它传输模式。

  • 控制命令的传递(管一管),NCAP 和 TIM 可以相互发 控制命令消息(Command message)做请求(Request),接收方收到后必须予以响应(Response)。

除了数据传递,TEDS 和控制命令的发送都需要等待 响应/回复/应答,若超过 1s 不响应则以 1s 周期循环发送和等待,直到收到正常响应,如果超过一定次数还未收到响应则断连。

1451.0 标准主要针对自描述名片和消息(TEDS and message)的具体规范,以下开始具体介绍。

消息 的格式

TIM、NCAP 任一方接收到对方消息帧后须返回应答/响应/回复帧,若发送方在规定时间内没接收到对方确认应答帧则重新发送数据,直至发送成功或发送次数达到最大值。

刨除数据的传递,消息(message)分为以下三种类型:

  1. 命令(command);

  2. 响应/回复(Peply or Response);

  3. TIM 初始化完毕(TIM initiated)。

命令消息

命令消息(Command message)一般为 NCAP 向 目标 TIM 的特定 通道(Destination TransducerChannel)发送一帧数据来请求(Request)TEDS(就是问,你谁啊?) 或者控制命令(就是下达命令)。TIM 接收到后予以响应(Response),响应的格式详见“响应/回复消息”一节。

Command message 格式如下表所示。

具体释义如下:

  1. 前两个字节(Dest Channel Number)指示 目标 TIM 的 目标 通道标号(具体如何分配标号 在 1451.0 标准的 “5.3 Addresses” 一节给出);或者第一个字节表示目标 TIM 编号,第二个字节表示 传感器通道编号;

  2. 第三个字节(Command class)指示命令类别(Command class),具体值如下表,按需填入;

  3. 第四个字节(Command function)指示具体的命令是什么,根据第三个字节的命令类别分为几大类。

  • 当第三个字节的命令类别(Command class)为 1,为通用命令(CommonCmd),则第四个字节填入下表中的标号以表示想要发送的具体命令。

  1. 发送编号为 1 的 Query TEDS command(请求 TEDS 信息表命令) 命令,该命令带一个参数,即请求的 TEDS 的类型编号,详见下文 “TEDS 的格式” 一节的 Table-17。需要 TIM 响应/回应自己的 TEDS 的信息表,详见下表。响应/回复格式按照 “响应/回复消息” 一节描述的格式,下表为响应信息格式中 回复附带参数(Reply-dependent)部分的具体格式。

    该表具体释义如下:

    1. 第一个字节 为自己的 TEDS 属性,详见 “TEDS 属性” 一节;

    2. 第二个字节 为 TEDS 状态,详见下表;

    3. 第三、四、五、六个字节指示目前 TEDS 的字节数;

    4. 第七、八个字节为 TEDS 的校验值;

    5. 最后四个字节为 TEDS 的最大字节数。

  2. 发送编号为 2 的 Read TEDS segment command(读 TEDS 命令)命令,参数为 Table-21 所示,如下图。需要 TIM 回应自己的 TEDS,具体格式为:按照 “响应/回复消息” 一节描述的格式,其第 4 个字节开始的 附带信息 的格式为 Table-22 定义,如下图。TEDS 的格式具体见 “TEDS 的格式” 一节。

    上表中, TEDSOffset 为 TIM 传回信息中 TEDS 数据开始的偏移量,如果 TIM 回应 纯的 TEDS 数据,那么该值为 0 即可。

  3. 发送编号为 3 的 Write TEDS segment command(写 TEDS 命令) 命令,可以用于改写 目标 TIM 的 TEDS 的 某个部分。具体见标准 1451.0 的 7.1.1.3 一节。(太多了不想翻了,搞的那么繁杂)。

  4. 编号 4 的 Update TEDS command(更新 TEDS 命令),即使用 Write TEDS segment command(写 TEDS 命令)命令之后,再用该命令让 TIM 保存其刚接收到的新的 TEDS 到其非易失存储器(FLASH 或 EEPROM 等)内。命令参数为 TEDS 类型编号(Table-17),TIM 响应信息格式同Query TEDS command(请求 TEDS 信息表命令) 命令的回复格式。

    下面不一个一个细说了。

  5. 编号 5 的 Run self-test command(运行自测命令)。

  6. 编号 6 的 Write service request mask(写 NCAP 请求目标地址的掩码)。

  7. 编号 7 的 Read service request mask(有写就有读...)。以下编号依次类推。

  8. Read status-event register(读目标 TIM 或者 TIM 的传感器通道(Transducer Channel)的状态码)。

  9. Read status-condition register。

  10. Clear status-event register。

  11. Write status-event protocol state。

  12. Read status-event protocol state。

  13. 编号 128~255 的命令为用户保留,用户可自定义。

  • 前置定义,TIM 和传感器通道 的状态分类以及状态图定义,详见 “TIM/传感器 的状态图” 一节。当第三个字节的命令类别(Command class)为 2,即 传感器 空闲状态命令(XdcrIdle,Transducer idle state commands),该命令在 传感器 为 空闲状态(Idle)时才有效,其他状态无效。此时,第四个字节填入下表中的标号以表示想要发送的具体命令:

不一一详细介绍了,具体看 1451.0 标准源文的 7.1.2 一节。

编号 1 为设置 TIM 的传感器通道的数量。

编号 2 为 设置 TIM 的某一个传感器通道能否在 free-running 状态下被设置为 pre-trigger 模式(关于 TIM 和 传感器通道的 状态和模式 定义详见 1451.0 标注源文的 5.10 一节)。

编号 3 This command assigns a TransducerChannel to an AddressGroup.

编号 4 设置 TIM 的某一个传感器通道的采集模式。

编号 5 设置 TIM 数据传输模式。

等等,太繁琐了。

  • 当第三个字节的命令类别(Command class)为 3,即 传感器 空闲状态命令(XdcrOperate,Transducer operating state commands),该命令在 传感器 为 工作状态(operational state)时才有效,其他状态无效。此时,第四个字节填入下表中的标号以表示想要发送的具体命令:

编号 1 为 Read TransducerChannel data-set segment(读传感器通道数据集)命令,带一个命令参数为返回的数据集中读数据起始位置的偏移,TIM 回应数据以 “响应/回复消息” 一节描述的格式,响应/回复参数为 1451.0 标准 Table-32 指定。

后面略。

  • 当第三个字节的命令类别(Command class)为 4,即 传感器 空闲状态或工作状态命令(XdcrEither,Transducer either idle or operating state commands),此命令类下的具体命令见 1451.0 标注源文的 Table-34。

  • 当第三个字节的命令类别(Command class)为 5,即 TIM 睡眠状态命令(TIM sleep state commands),该命令只在 TIM 睡眠状态下有效,此命令类下的具体命令见 1451.0 标注源文的 Table-35,用于唤醒,目前只此一个命令,其他均作保留。

  • 当第三个字节的命令类别(Command class)为 6,即 TIM 激活状态命令(TIM active state commands),该命令只在 TIM 激活状态下有效,此命令类下的具体命令见 1451.0 标注源文的 Table-36。

  • 当第三个字节的命令类别(Command class)为 7,即 TIM 任何状态命令(TIM any state commands),此命令类下的具体命令见 1451.0 标注源文的 Table-37,用于复位 TIM,目前只此一个命令,其他均作保留。

4. 第五、六个字节(Length)指示 附带的命令参数的字节数,接收方可据此判断何时接收完毕从而得到完整数据;

5. 往后(Command dependent)为根据具体的附带的命令的参数。

响应/回复消息

一方接收到消息(Message)后予以响应/回应/回复(Peply or Response),其具体的的消息格式如下表所示。

具体释义如下:

  1. 第一个字节(Flag):0 表示失败,其它值 表示成功;

  2. 第二、三个字节(Length):指示 Reply-dependent 部分的字节数,接收方可据此判断何时接收完毕从而得到完整数据;

  3. 往后为 Reply-dependent 内容,根据收到的特定命令回应相应的信息。

初始化完毕消息

TIM 初始化完毕后给 NCAP 发送一个 初始化完毕信息(TIM initiated message),其具体的的消息格式如下表所示。

具体释义如下:

  1. 前两个字节指示 本 TIM 的哪个通道 在发 此信息,即指示哪个通道初始化完毕了;

  2. 其他格式 同 “命令消息”,具体详看同名小节。

TEDS 的格式

TEDS 包含一个仪器设备或测量系统,可对传感器进行识别、校正、连接及传感器数据信息的正确使用。具体信息有:厂商信息、模块编号、版本信息、产品序列号、灵敏度、测量范围、电气输出范围、功率要求、物理单位、校准信息、维护信息、位置信息以及用户数据等。

TIM 一旦上电或接受了 请求 TEDS 的命令,TEDS 信息就上传到 NCAP。TEDS 简化了传感器的安装/部署,一个被损坏的传感器可以直接被替换而不需要更改任何设置。

TEDS 的所有类型如下图,第三列是该类型的名称。第一列的代号为 10 进制表示。

一个 TIM 必要有的四个 TEDS 类型如下,其他 TEDS 为可选。

  • Meta-TEDS(描述所在 TIM 的基本信息、,传感器通道数、分组情况,详见 1451.0 标准的 8.4 小节);

  • TransducerChannel TEDS(描述 TIM 中特定传感器通道的详细信息,比如物理上实际的采集量、被控量,工作模式等,详见 1451.0 标准的 8.5 小节);

  • User’s Transducer Name TEDS(存储所在智能传感器的名称用于系统识别,用于,详见 1451.0 标准的 5.5.1.3 小节和 8.11 小节);

  • PHY TEDS(描述 TIM 与 NCAP 之间的物理连接的媒介,格式具体见 1451.x 标准源文,如果选择用无线方式传输,则 PHY TEDS 格式定义在 1451.5 中)。

所有 TEDS 类型的格式如下(General format for TEDS)。

如上图所示,一帧数据的构建:

  1. TED 长度(TED Length),包括 DATA BLOCK 和 CHECKSUM,字节为单位 (占 4 个字节);

  2. 数据区(DATA BLOCK):

    1. 第一个域类(Field type)(占 1 个字节);

    2. 第一个域类的 值的长度(Length of Value),字节为单位(占一个字节);

    3. 第一个域类的值(Value)(占 值的长度 个字节);

    4. 第二个域类(占 1 个字节);

    5. 第二个域类的 值的长度,字节为单位(占一个字节);

    6. 第二个域类的值(占 值的长度 个字节);

      ...

    7. 以此类推。

  3. 校验值(CHECKSUM),从 TED Length 到 DATA BLOCK 的最后一个字节加和,再用 0xFFF 减去该加和值(占两个字节)。

TEDS 的一些注意的点:

  • TEDS 有 实TEDS 和 虚TEDS 之分,对于那些不能包含非易失存储器器件来保存 TEDS 的 TIM 就是用 虚TEDS,虚TEDS 保存在某个网络节点上,NCAP 索要 TEDS 的时候由该节点提供 TIM 的 TEDS ,实 TEDS 即 TEDS 信息真实的保存在 TIM 内部的非易失存储器。

  • TEDS 的内容 在 TIM 执行器件可以根据传感器通道等的变化进行改动,或者接收到 NCAP 的改动 TEDS 的控制命令消息进行改动。

  • 可以根据应用场景和开发限制来适当删减 TEDS 中一些冗长繁杂的格式。

Meta-TEDS 格式

描述所在 TIM 的基本信息、传感器通道数和分组情况等等,详见 1451.0 标准的 8.4 小节。

该 TEDS 可以如何访问到:The Meta-TEDS is accessed using a Query TEDS command, a Read TEDS segment command, a write TEDS segment command, or an Update TEDS command.从 Table-17 可知该 TEDS 代号 01(10 进制)。该表的第一列 域类 号均为 10 进制表示。

上表的各个域类不必全部给出,标好域类好就行。其具体说明如下:

  • 开头为 TED 长度(TED Length),包括 DATA BLOCK 和 CHECKSUM,字节为单位,占 4 个字节;

  • 数据区(DATA BLOCK)的第一个域类为 TEDSID,即 TEDS identification header,详见 本文 “TEDS 头” 一节;

  • 第二个域类 UUID,全局独特身份码(名片上的大名),举例(16 进制):04 0a 8d 4d 9d a6 52 81 f7 00 00 00,释义如下。

    UUID 的定义如下。

  • 紧跟着三个域类分别是 操作超时时间、低速访问超时时间和自测试时间,举例如下。

    Float32 占用四个字节,具体编码描述: A single-precision real number is a 32 bit binary sequence that encodes real numbers as specified in IEEE Std 754-1985.

  • 来到域类13,MaxChan,本智能传感器 TIM 下边连着几个 传感器通道(“传感器通道(Transducer Channel)” 这里英文缩写表示为 TCH)(比如采集三路模拟量),举例(16 进制):0d 02 00 03,表示本 TIM 有 三个传感器通道。

  • 其他域类...

  • 最后两个字节做校验位,从 TED Length(最开头) 到 DATA BLOCK 的最后一个字节(本域类的上一个字节) 的加和,再用 0xFFFF 减去该加和值。

上面的进行组合,这就是一帧 Meta-TEDS。

再举一个具体的例子(已经保姆级详尽了),如下图所示一个完整 Meta-TEDS。

TransducerChannel TEDS 格式

该 TEDS 是为了确保 TIM 的所有 传感器通道(TCH)有必要信息从而可以被寻址和被操作。该 TEDS 描述 TIM 中特定传感器通道的详细信息,比如物理上实际的采集量、被控量,工作模式等,详见 1451.0 标准的 8.5 小节。

该 TEDS 可以如何访问到:The TransducerChannel TEDS is accessed using a Query TEDS command, a Read TEDS segment command, a write TEDS segment command, or an Update TEDS command.从 Table-17 可知该 TEDS 代号 03(10 进制)。该表的第一列 域类 号均为 10 进制表示。域类3 TEDSID 详见 “TEDS 头” 一节。

信息特别多了,以上每项的具体说明见 1451.0 标准的 “8.5.2 Data block” 章节。

User’s Transducer Name TEDS 格式

存储所在智能传感器的名称用于系统识别,用于,详见 1451.0 标准的 5.5.1.3 小节和 8.11 小节。

The User’s Transducer Name TEDS may be associated with the TIM or a TransducerChannel. It is accessed using a Query TEDS command, a Read TEDS segment command, a write TEDS segment command, or an Update TEDS command.从 Table-17 可知该 TEDS 代号 12。该表的第一列 域类 号均为 10 进制表示。域类3 TEDSID 详见 “TEDS 头” 一节。

上表中域类4,即 format 详见下表(下表中 Field Name 一栏为 16 进制的 10,即 十进制的 4)。

域类5,即 content,详见下表,内容用户自定, TIM 的名字,规范根据 域类 4 的 format 的值(0 为用户自定,1 为按照 标准中 8.9 Text-based TEDS 的规范来(又是一大堆))。

PHY TEDS 格式

1451.0 的一页源文。

PHY TEDS 的具体格式定义在 1451.x(x = 2,3,4,5...)标准里,比如对于 1451.5 无线方式通讯,PHY TEDS 格式定义在其 5.3 一节。

TEDS 头

即 TEDS identification header,这是一个域类,定位于 Meta-TEDS 格式表中的 域类3 中,具体定义详见 1451.0 标准 8.3 小节,格式如下表所示。

上表具体说明如下:

  • 前面三个一般不变,为 03 04 00;需要说明,Family 域的值随着 使用 1451.x(x = 0,2,3,4,5...)标准而变,比如使用 1451.5,Family 域的值变为 05;

  • 第四个域(Class 那里)为当前 TEDS 的类型编号,其具体值见上面 “TEDS 的所有类型” 的表(Table 17);

  • 第五个域(Version 那里)的具体值见下表(Table 42);

  • 第六个域(Tuple Length 那里)的具体值,即上面所说的“数据区(DATA BLOCK)”里面的“第 x 个域类的 值的长度(Length of Value)”这个域类所占几个字节,一般为 1。

则 TEDS identification header 这个域类的最终合成如右(举例,十六进制):03 04 00 01 01 01,具体释义如下。

TEDS 属性

每个 TEDS 都有属性,在 请求 TEDS 命令(Query TEDS command)之后 TIM 响应 TEDS 时带着 该 TEDS 的属性信息。

TEDS 的属性可以设置为 只读,这样 NCAP 的修改 TEDS 的命令不会起作用。源文:TEDS may be implemented as a read-only TEDS to prevent changes from being made in the field because changes could cause unpredictable behavior. If it is implemented as a read-only TEDS, the TransducerChannel write TEDS segment and TransducerChannel Update TEDS commands shall not apply.

TEDS 属性具体定义如下表所示。

TIM/传感器 的状态图

根据 1451.0,TIM 的状态分为两个部分,TIM 自己的状态以及 TIM 下面接的每一个传感器通道的模式状态,TIM 讲模式,传感器讲模式。

智能传感器的 TIM 状态转换图。

智能传感器 TIM 每一个传感器通道(TCH)的状态转换图(模式转换图)。

1451.5 标准

1451.5 标准中对于 1451.0 标准的一些新增/兼容部分,参考于 1451.5 标准源文。

1451.5 标准的变化之处举例:

  • TIM 与 NCAP 的连接拓扑关系有新定义(5.1、5.2 小节);

  • NCAP 和 TIM 状态图新定义(5.4、5.5 小节);

  • 服务质量定义(5.6 小节);

  • 错误代号定义(5.7 小节);

  • message 不变;

  • TEDS 除了 PHY TEDS,其他一样(5.3 小节);

  • WLAN 章节的一些特别定义(第 9 章)。

关于具体的 1451.5 标准的情况的介绍会在下一篇【读标准02】文章。

1451 标准的局限性

以下记录一些推广上的局限性 和 一些疑问。

  1. 把网络化智能传感器系统分为 NCAP 和 TIM 两个模块,而这两个模块都需要有微控制器(或微处理器),增加上手门槛和使用的复杂性。

  2. 1451.x 标准 只能放在一起使用,与现有其他标准或者协议差异巨大,需要全新的重新开发。

  3. 一个 NCAP 连接多个 TIM ,NCAP 该如何区分不同的 TIM,1451.5 定义吗?,还是用户自定?

  4. 连续发了三个命令,陆续收到三个响应,三个收到的响应如何与三个命令一一对应起来?作者在此认为,响应/回复信息中的回复附带参数部分(Reply-dependent)首先填入接收到的命令的类(class)和具体命令这两个编号,然后才是真正的附带参数,这样 NCAP 可以区分该 回复是针对哪个命令的,NCAP 可以据此差异性解析,提高交互并发性,而不用发出一个命令后只能先等。不过标准也许有对这一块的定义,可能源文几百页太长了作者没注意到。

  5. TEDS 在尽量包含所有传感器类型的描述信息,但不可能穷举所有传感器类型;对于应用层没有对数据格式做规范。简而言之,本文作者认为综合性、一般性模型的目标不算尽善尽美的达到。

  6. 与一般标准的一样,体系庞大,内容非常复杂 ,人们理解起来非常费时费力;如今嵌入式处理器应用越来越广,低成本和低功耗的考虑越来越多,因此人们可能只能执行标准的一部分。

  7. 制定标准时不容易或者没有处理好与已有标准协议的关系。(6、7 条引自论文《海洋观测网络化智能接口标准的研究_张帅》)

引用 & 参考

[0] IEEE 1451 协议培训,IEEE-1451-介绍 - 百度文库 (baidu.com),IEEE 1451 介绍ppt课件 - 百度文库 (baidu.com),IEEE 1451 介绍课件 (renrendoc.com)。

[1] 孔勇,杨志强,张溪溪,杨吉宇,李继明,程学珍.基于IEEE1451标准的称重传感器实验系统设计ADXL355加速度计在强振动环境中的应用[J].电子测试,2020(15):11-13+42.DOI:10.16520/j.cnki.1000-8519.2020.15.003.

[2] 解宇. 海洋仪器网络化平台智能船载终端研发[D].济南大学,2019.DOI:10.27166/d.cnki.gsdcc.2019.000446.

[3] 杨吉语. 基于IEEE1451.5标准网络传感器的研发[D].山东科技大学,2018.DOI:10.27275/d.cnki.gsdku.2018.000570.

[4] 陈耿新,黄锦胜.基于IEEE 1451.5的高精度智能称重传感器系统[J].自动化与信息工程,2017,38(05):5-11.

[5] 赵常. 基于IEEE1451标准的加速度智能传感器的研究[D].沈阳理工大学,2016.

[6] 陶星珍,蒋廷彪,崔更申.基于IEEE 1451.5标准的物联网体系结构设计[J].计算机测量与控制,2014,22(09):2960-2961+2966.DOI:10.16526/j.cnki.11-4762/tp.2014.09.039.

[7] 朱志伟.遵循IEEE1451标准的传感器即插即用研究[J].单片机与嵌入式系统应用,2014,14(09):3-6.

[8] 张小廷. 基于IEEE1451标准的无线智能传感网的设计与实现[D].哈尔滨工业大学,2014.

[9] 张帅,张锁平,齐占辉.海洋观测网络化智能接口标准的研究[J].电子设计工程,2013,21(09):183-187.DOI:10.14022/j.cnki.dzsjgc.2013.09.003.

[10] 王石记,周庆飞,安佰岳.IEEE 1451网络化智能传感器接口技术[J].计算机测量与控制,2012,20(10):2600-2602+2616.DOI:10.16526/j.cnki.11-4762/tp.2012.10.076.

[11] 郑培亮. 基于ARM的IEEE 1451智能称重传感器设计[D].华南理工大学,2011.

[12] 张韵. 基于IEEE1451标准中间件的研究和实现[D].大连理工大学,2007.

[13] 黄永忠,李正晓.IEEE 1451标准族智能传感器技术发展浅析[J].仪器仪表标准化与计量,2005(04):24-27.

[14] 童利标,徐科军,梅涛.IEEE1451网络化智能传感器标准的发展及应用探讨[J].传感器世界,2002(06):25-32.


首发 知乎 Github 于 2021.7

读标准01-IEEE1451-智能传感器接口标准介绍相关推荐

  1. 读标准03-IEEE1451.5标准协议尝鲜实现

    读标准03-IEEE1451.5标准协议尝鲜实现 前面两个文章里面已经详细描述了 TEDS 和 Message 的组成,这里 C 的实现分两个部分:分别对 TEDS 和 Message 的 数据结构实 ...

  2. 读标准02-IEEE1451.5-智能无线传感器标准介绍

    惯例,方便的话请移步 Github/Gitee 仓库来看,或下载下来用 markdown 编辑器看排版更佳:Github仓库,Gitee仓库. 这里介绍 1451.5 标准中对于 1451.0 标准的 ...

  3. 设计一个智能传感器只需要4步

    第一步--传感器信号数字化 当工程师设计带有传感器的系统时,他们首先会建立传感器对被测物理量的响应的数学模型,以及信号调理电路对传感器输出信号的期望响应的数学模型,然后用电路实现这些数学模型.尽管上述 ...

  4. 详细介绍如何从零开始制作51单片机控制的智能小车(二)———超声波模块、漫反射光电管、4路红外传感器的介绍和使用

       我会通过本系列文章,详细介绍如何从零开始用51单片机去实现智能小车的控制,在本系列的上一篇文章中介绍了如何让小车动起来,本文作为本系列的第二篇文章,主要介绍让小车实现自动避障所涉及的一些传感器, ...

  5. 清华大学精密仪器系:智能传感器太重要了!

    来源:科技导报 整理:由动感传感 论文原标题:<智能传感器技术的研究进展及应用展望> 作者:清华大学精密仪器系 | 尤政 本文是来自清华大学精密仪器系的一篇关于智能传感器技术研究和发展探索 ...

  6. MEMS智能传感器技术的新进展

    来源:MEMS 引言 信息社会已步入智能时代发展阶段,智能手机.智能可穿戴设备.无线智能网络.智能汽车.智能无人机和智能机器人等智能设备的创新与发展正在或将要改变信息社会的各个方面,而作为智能时代发展 ...

  7. 高通SDM450 Android9上调试RS485接口温湿度传感器调试介绍

    高通SDM450 Android9上调试RS485接口温湿度传感器调试介绍 1.初步确认硬件电路工作正常 2.确认主控端串口可以正常工作 3.调试主控串口经过RS485连接电脑可以正常收发 4.单独调 ...

  8. 手机、AI、VR、无人机、智能汽车等8大行业中的智能传感器是怎样运作的?

    http://mp.weixin.qq.com/s/2OkeTcJcQeCVi3tAfU52sQ 1.智能手机中的传感器 2.人工智能/机器人中的传感器 3.AR/VR中的传感器 4.无人机中的传感器 ...

  9. 智能传感器深度报告:未来机器感官的百亿美元市场【附下载】

    来源:智东西内参 概要:2019年,国内智能传感器市场规模预计将达到137亿美元,本土化率将从2015年的13%提升到27%. 2019年,国内智能传感器市场规模预计将达到137亿美元,本土化率将从2 ...

最新文章

  1. ALL ABOUT CIRCUITS 的资源整理
  2. 第四十五课:MVC,MVP,MVVM的区别
  3. python用户输入算式并计算_Python 70行代码实现简单算式计算器
  4. 运放电路的工作原理_图文讲解!教你看懂7款经典运放电路
  5. android scrollview焦点,scrollview里面的edittext,当它获得焦点时如何滚动到edittext
  6. 【安全】Kerberos相关问题进行故障排除| 常见错误和解决方法
  7. lisp读点坐标绘多义线_AutoCAD中多义线的坐标标注
  8. 数据结构括号匹配代码_栈:如何实现有效括号的判断?
  9. js数组的sort排序(获取中位数)
  10. Bitmap缩放(二)
  11. js执行拼接变量的方法字符串
  12. 【产品功能】配置网卡从此与关机无缘,弹性网卡支持热插拔功能
  13. SpringBoot整合Mybatis_plus学习笔记
  14. Sprite和Texture的区别
  15. python视频教程推荐it教程网_Python视频教程之入门基础篇_IT教程网
  16. 博图14软件安装顺序_博图v14安装顺序和教程
  17. openmediavault安装
  18. python 如何创建文件夹(新建文件夹)
  19. linux pps驱动实现gps授时
  20. 安卓动态调试七种武器之长生剑 - Smali Instrumentation

热门文章

  1. File.separator是什么?
  2. Messaging——WebSocket
  3. linux多线程调用同一个函数解析
  4. Mybatis-Plus用纯注解搞定一对多查询
  5. 多智能体中的图论——图论中的定义(一)
  6. osgEarth使用笔记4——加载矢量数据
  7. CUDA编程: GPU与CPU之间使用全局统一内存的完整代码及编译
  8. Linux 禁用笔记本触摸板
  9. 关于汇编语言中cmp指令的小笔记
  10. linux 流量监控利器:iftop