HCF_SPEC-99应用层基础规范:数据格式

主要记录对HART7.1官方协议文档的阅读学习与代码实现。HART7.1协议文档HCF_LIT-18是一个现场设备规范模板,其中在参考文档部分列举了相关文档:
在这里插入图片描述
应该先看SPEC-12,但是这个文档没找到。对于编写程序而言,物理层也可以先不看,我们先看SPEC-99,应用层的命令规范,这个文档是所有其他HART应用层规范文档的基础。
HART协议七层模型当前关注的是有线HART协议,FSK,物理层为4~20mA环路;数据链路层为二进制,字节,令牌传递方式,主从协议。物理层有专门的HART芯片实现,暂时无需关注。应用层是命令组织形式,事先定义好的数据类型和应用功能。

允许使用的数字类型:单精度/双精度浮点数、整型、无符号整型;
字符串使用Packed-ASCII 或者 ISO Latin-1传输;
Common Tables Specification中有对数据类型使用的举例。
本文档指定了所有HART命令的规则,并分配命令编号(例如Universal命令、Common命令、DeviceFamily命令)。规范定义了命令的行为。制造商开发的特定于某设备的命令应该符合这个规范。
从设备向主设备的反馈包含:设备健康信息;命令执行结果反馈;通信错误探测(数据链路层)
本文档主要规定:
1)数据传输格式
2)所有现场设备的修订规则
3)不同命令的编码分配(Universal命令、Common命令、DeviceFamily命令、Devicce-Specific命令)
4)所有HART命令的构造要求
5)所有命令需要返响应返回的命令状态字节
6)现场设备变量的使用
7)主设备识别现场设备和管理HART网络的流程

1.数据类型

HART协议支持的数据类型如下:
1)使用SO Latin-1或Packed-ASCII 格式的字符串
2)Date
3)Time
4)单精度或双精度浮点数
5)有符号整型
6)无符号整型
7)使用枚举或者比特图的 Table Based Data
多字节数据传输时由MSB开始,LSB结束。
所有数据项的长度是固定的。

1.1 字符串格式

参考:https://blog.csdn.net/weixin_53403301/article/details/130367350
字符串格式支持两种:ISO Latin-1 和 Packed-ASCII
字符串是固定长度。

1.1.1 Packed ASCII

压缩ASCII是一个HART协议特定使用的6 bit的字符代码,是ASCII码的子集。四个字符是3字节,Packed ASCII必须是3字节的倍数,末尾用空格填充。例如4个空格为:0x82 0x08, 0x20。
未初始化的Packed ASCII字符串为“?”字符,四个问号字符为:0xFF 0xFF 0xFF
压缩ASCII字符

1.1.2 ISO Latin-1

https://blog.csdn.net/heimabuhei/article/details/78668557

1.2 Dates

date使用三个8bit二进制无符号整型表示,分别是日,月,年-1900。传输顺序为日,月,年。

1.3 Time

time使用一个无符号的32位整型表示,最小可表示1/32毫秒。

1.4 浮点数

所有设备都必须支持单精度浮点数。符合IEEE754的规定。
在这里插入图片描述
先传符号位,再传指数,最后传有效数字。
有四个特殊值,正无穷,负无穷,NaN,Denormalized。
见下表
在这里插入图片描述

1.4.1 Normalized numbers

Normalized numbers表示浮点数格式最大最小值之间的值,这个值可以直接用于计算或与一个HART现场设备通信。

1.4.2 Denormalized numbers

IEEE标准允许向下溢出时平滑过渡。非0可以通过逐渐损失精度接近0。Denormalized numbers的指数部分为0,有效数字的整数部分为0,小数部分不为0。

1.4.3 0

指数部分和有效数字部分都为0。

1.4.4 无穷

指数部分为最大值255,有效数字整数和小数部分都为0,使用符号位区分正无穷和负无穷。

1.4.5 NaN

指数部分为最大值255,有效数字整数部分为0,小数部分不为0使用符号位区分正负。
Non=Signaling NaN 是由于一个计算结果没有数学解释生成的,Signaling NaN允许定义特殊的数据。例如一些命令规范用于并表示现场设备不支持某个数据类型。

1.5 无符号整数

1.6 有符号整数

可以是1到24位。

1.7 查找表格式

使用table时,数据含义需要事先定义。table可以用枚举或比特图编码。

  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值