由于现阶段在一仪表公司,仪表的需求,接触到Hart。竟发现这一国外的工业标准,在国内的资料少得可怜。PS:起码想在网上搜到所有资料是相当困难的。以下就近些时间来收集到的一些资料作适当整理,贴出来。一是记录,二是给需要的人。
第一天拿到Hart模块时,看起来就像是24L01无线模块似的小东西,对其毫无概念,细细品读 Hart简介 <提取码 63b8>,好吧,现如今的分享略显的难了一些。工作中多用同步盘,个人先用的360网盘,还算顺手,资料多在于此,就不换了。 回到正题,先是大概了解下Hart是什么东西,HART(Highway Addressable Remote Transducer),可寻址远程传感器高速通道的开放通信协议,Hart协议比较大的特点在于支持模拟信号和数字信号同时传递。
接下来便是深入Hart协议。其实看协议的时候简直就是一头雾水,跟本不知道是什么东西,先是看了Hart的通信格式,<这里确实花了不少时间>,先后几次回过头来看,都有收获,下面是我整合得比较完整一版:
首先定义字节的概念,在HART中,发送一个字节需要11位二进制数据,第一位起始位,第二到九位共八位是要发送的数据,第十位是校验位<奇校验>,第十一位是停止位。如下图所示:
PREAMBLE START ADDR COM BCNT STATUS DATA PARITY
序文 定界符 地址 命令号 数据长度 响应码 数据字节 奇偶校验
以上便是一个完整的Hart通信数据帧格式,其中Status(通信状态)只有在从机对主机通信时才会加入的。
PREAMBLE 前导字符,作为通信同步的需要,是5到20个字节的0XFF,通常采用5个字节;
START 起始字节符,将告之使用的结构为“长”还是“短”,消息源是否是“突发”模式消息。主机到从机为短结构时,起始位为 0X02,长帧时为 0X82。从机到主机的短结构值为 0X06,长结构值为0X86。而为“突发”模式的短结构值为 0X01,长结构为 0X81。一般设备进行通讯接收到 2 个0XFF 字节后,就将侦听起始位。
ADDR 地址字符,包含了主机地址和从机地址,短结构中占 1 字节,长结构中占 5 字节。无论长结构还是短结构,因为 HART 协议中允许 2 个主机存在