
HART通信协议VCCC.doc
45页H A R T 通 信 协 议VER1.6一.概述HART( HighwayAddressableRemoteTransducer)协议采用基于 Bell202 标准的 FSK频移键控信号,在低频的 4-20mA 模拟信号上叠加幅度为 0.5mA 的音频数字信号进行双向数字通讯,数据传输率为 1200bps由于 FSK 信号的平均值为 0,不影响传送给控制系统模拟信号的大小,保证了与现有模拟系统的兼容性在 HART 协议通信中主要的变量和控制信息由 4-20mA 传送,在需要的情况下,另外的测量、过程参数、设备组态、校准、诊断信息通过 HART 协议访问在应用层, HART? 规定了一系列命令,按命令方式工作它有三类命令,第一类称为通用命令,这是所有设备都理解、执行的命令;第二类称为普通应用命令,所提供的功能可以在许多现场设备(尽管不是全部)中实现;第三类称为设备专用命令,以便于工作在某些设备中实现特殊功能, 这类命令既可以在基金会中开放使用, 又可以为开发此命令的公司所独有二.含义1、主机( Master ):分为第一主机和第二主机,它能连接在 HART 网络上,发出命令与从机通讯;2、从机( FieldDevice ):连接在过程控制现场中,具有测量、计算多种变量功能,并能与主机进行 HART 通讯的设备;3、 长帧( LongFrame ):地址 Address由 5 字节组成的 HART 数据帧,所有的HART 命令都支持长帧数据帧。
长帧地址各字节含义如下图所示:制造商 ID 号( ManufacturerID)由 HART 基金会分配;在生产中,同类型设备序列号唯一,并且永不重复广播地址使用长帧结构,低38BIT 全为 0厂商指定的设备类型( DeciveType)与制造商 ID 满足下表要求;4、短帧( ShortFrame ):地址 Address由 1 字节组成的 HART 数据帧,短帧只有通用命令 Command0 能够使用,短帧字节含义如下: 所有的 HART 从机都支持长、短帧5、请求帧( STX ):由主机(如手抄器)向从机(现场设备)发出请求数据命令;6、应答帧( ACK ):从机回复给主机的数据;7、前导符( Preamble ):发起命令(数据)传输的设备在传输数据帧前发送的 0xFF 字符,发送该字符的数量一般为 5— 20 个,该数量可以通过命令来改变;前导符的使用是为了使数据接收端在硬件电路上产生 CD 载波检测信号,以实现数据通讯的同步8、定界符( Delimiter ):表示数据帧传输的开始,指明数据的传输方向、物理层类型,同时它也指定了数据帧的帧类型(长、短帧),其含义内容如下:定界符 Delimiter 字节含义9、 地址(Address ):由定界符 Delimiter 指定为短帧( 1 字节)或长帧(5 字节)两种类型,长、短帧释义如前述;10、 扩展字节( ExpansionBytes ):本公司目前的 HART 协议版本保留,为0;11、 命令( Command ):功能码,指明一个数据帧的具体实现功能,命令有通用命令、普通应用命令、设备专用命令三大类;12、 数据字节数( BytesCount ):指实际的数据 Data 的数量;13、 数据( Data ):设置或读取指定从机的参数数据(通信的最终结果);14、 校验字节( CheckByte ):从定界符( Delimiter )到数据( Data)的所有字节的‘异或’值,即纵向校验。
三. HART 通讯规范1、通信帧格式: 由前导符和数据帧构成,各数据域释义如上前导符数 据 帧PreambleDelimiterAddressExpansionCommandBytesDataCheckbytesCountByte+ 定界符5-20 字节地址扩展字节命令数据个数数据校验字节短帧 1字节固定为1字节长帧 5字节0— 3字节1字节1 字节n字节1 字节( 0xFF )通信帧格式2、通讯速率: 1200Bps;3、 通讯信号 :Bell202 标准的 FSK 频移键控信号,‘ 1200Hz ’代表数字 1,‘ 2200Hz’代表数字 0;4、 数据格式( 11 位):1 位起始位、 8 位数据位、 1 位停止位、 1 位校验位,字节奇( Odd)校验;5、应答数据帧的数据个数 ( BytesCount)至少为 2 字节,这两个字节分别为响应码( ResponseCode)和设备状态码( FieldDeviceStatus);6、响应码格式 :从机回复给主机的命令执行情况代码,当通讯出错时,响应吗最高位 bit7=1,这时设备状态码无实际意义;当 bit7=0 时,表示通讯正常,余下 6bits 表示命令执行情况的响应。
7、通讯正常时响应码 (bit7=0,低 6bits):* 具体含义因不同命令而定,可查看相关的HART 命令资料响应代响应码含义响应代响应码含义码码0x00执行成功0x02错误的命令0x03设置参数太大0x04设置参数太少0x05接收的数据太少0x06专用命令错0x07处于写保护模式0x081、更新失败 2、设置为接近值 3、延时响应0x091、低限范围值太大2、不正确的电流模0x0a1、低限范围值太小2、无效的就地锁定式0x0b1、上限范围值太大2、多从机模式 3、0x0c1、上限范围值太小2、无效单位代码 3、无效设备变量代码4、调整超范围 5、不无效的模式选择4、无效的插槽号能就地锁定0x0d1、上、下限范围值超标 2、计算错误 3、0x0e1、量程太小 2、设置的下限值引起上限无效的命令号值改变而超出传感器极限0x0f无效的模拟通道号0x10访问受限0x11无效的设备变量索引0x12无效的单位代码0x13设备变量的应用不合理0x14无效的扩展命令号0x1c不支持的单位代码0x20忙0x21延迟响应开始0x22延迟响应进行中0x40命令不能执行8、通讯出错时响应代码 (bit7=1)含义如下:响应代码通讯出错含义0xc0接收字节字节奇校验出错0xa0接收缓冲区数据覆盖错0x90没有接收到停止位出错0x88校验字节出错0x82接收缓冲区溢出9、设备状态码 :含义如下响应代码设备状态含义0x80设备故障0x40配置参数改变0x20设备冷启动0x08环路电流固定模式0x04环路电流饱和0x02设备变量(没有映射到主变量)超限0x01主变量超出极限10、数据类型 :HART通讯协议支持以下类型的数据: 字符串 Str、日期 Date、单或双精度浮点数 Float、无符号整型数 Unsigned、有符号整型数 Signed、联合体 Enum 或位 Bit 。
数据传输顺序: MSB 至 LSB 1)字符串 :字符串支持标准的拉丁字母 Latin 和封装格式 Packed的 ASCII 码,拉丁字符每个字母占 1 个字节;封装格式的 ASCII 码每字母占 1 个字节的 6 位,因此,每 4 个字母封装在 3 个字节中,在使用过程中需要打包和解包操作2)浮点数 :满足 IEEE754标准要求,单精度浮点数用 4个字节表示,双精度浮点数用 8个字节表示不可识别的浮点数用 0x7f 、0xa0、0x00、0x00 表示11、 设备变量状态( DeviceVariableStatus ):所有需要周期处理的数据(如设备变量和动态变量)都包含一个设备变量状态字节,其内容定义如下:默认 0xc0设备变量状态字节含义四. HART 应用命令命令有通用命令、普通应用命令、设备专用命令三大类,通用命令是所有的 HART现场设备都必须响应的命令; 普通应用命令只被设备部分应用; 设备专用命令是生产商根据需要制定的命令一)通用命令1. Command0:读唯一标识1)短帧请求帧 STX:DelimiteAddressExpansioCommanBytesDataCheckrndCountByteBytes0x020x00|00xxxxxxNULL00NULLXOR响应帧 ACK :DelimiterAddressExpansioCommandBytesDataChecknCountByteBytes正常响应0x060x00|00xxxxxNULL019状态 数XOR+x据异常响应0x060x00|00xxxxxNULL02状态XORx注:状态 =通讯状态 +设备状态,其含义如前述,以下不再赘述。
2)长帧请求帧 STX:DelimiteAddressExpansioCommanBytesDataCheckrndCountByteBytes0x820x00|38bitsIDNULL00NULLXOR响应帧 ACK :DelimiterAddressExpansioCommandBytesDataChecknCountByteBytes正常响应0x860x0。












