当前位置:文档之家› 基于STM32单片机的HJ/T212通信协议的实现

基于STM32单片机的HJ/T212通信协议的实现

基于STM32单片机的HJ/T212通信协议的实现

【摘要】HJ/T212通信协议是污染源在线自动监控(监测)系统数据传输标准,是由国家环保行业的标准协议之一,用于规范数据采集、传输、存储和管理,保证各种环境监测仪器、监控设备、传输网络和环保部门应用软件系统之间的连通。本文主要讨论HJ/T212通信协议在高性能、低成本、低功耗的STM32系列单片机上的实现。

【关键词】STM32;单片机;嵌入式;数据通信;HJ/T212

1.引言

近年来,随着环保意识的增强,各种各样的环保采集、传输、监控等设备被广泛使用,为了指导各个城市污染源在线自动监控(监测)系统的建设,规范数据采集、传输、存储和管理,保证各种环境监测仪器、监控设备、传输网络和环保部门应用软件系统之间的连通,国家环保行业制定了数据传输标准协议HJ/T212。

STM32系列单片机基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的,采用STM32F103系列ARM Cortex-M3内核。时钟频率72MHz时,STM32功耗36mA,是32位市场上功耗最低的产品,相当于0.5mA/MHz。该系类单片机集成功能丰富、以8位机的价格提供32位的性能,现已广泛应用于多种领域,比如嵌入控制、消费电子产品、家用电器以至及工业设备等。

STM32系列单片机这些特点适合在环保数据的采集和传输环节作为主控MCU使用,本文介绍了HJ/T212在以STM32F103C8T6单片机为主控MCU的环保数据传输设备中的实现方法。

2.HJ/T212协议包组成

3.HJ/T212协议在STM32F103C8T6中的实现

STM32F103C8T6处理器内的通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率。支持查询、中断和DMA三种方式,当选择使用DMA方式,可以实现高速数据通信。

从协议可以看出,当接收到两个字符时可以判断一个完整的协议包接收完成。进而对该协议数据帧进行解析协议解析部分可以用C语言实现,下面的程序流程图1为STM32F103C8T6响应HJ/T212协议数据帧函数,主要功能是判断协议包包头是否有效,校验码是否正确,如果校验码正确的则把数据包的内容按照项目内容进行分割处理协议包的内容。由于从上位机发送的协议包通常都是一包发送完成,所以协议单片机段的协议解析可以忽略总包号和包号,如果系统设置访问密码,则解析协议时需要判断密码是否正确,只有密码有效才能认为是有效数据包,这个密码的使用可以对数据的传输是一种安全措施。设备唯一标识MN也是一个必要参数,上位机通过网络可能同时与多台终端相连,此时上位机下发的指令需要根据设备标识符MN判断上位机要操作的终端设备。

STM32F103C8T6单片机接收并解析数据包后,需要根据协议的应答要求分步骤进行应答。通常收到一包完整数据包后,现场机立刻进行请求应答,然后返回操作执行结果。

4.CRC算法及其实现

CRC即循环冗余校验码(Cyclic Redun-dancy Check):是数据通信领域中最

常用的一种差错校验码,该校验算法的特点是信息字段和校验字段的长度可以任意选定。CRC校验码的两个字节,包含一16位的二进制值。它由传输设备计算后加入到数据包中。接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。

①装一个16位寄存器,所有数位均为1。

②取被校验串的一个字节与16位寄存器的高位字节进行“异或”运算。运算结果放入这个16位寄存器。

③把这个16寄存器向右移一位。

④若向右(标记位)移出的数位是1,则生成多项式1010000000000001和这个寄存器进行“异或”运算;若向右移出的数位是0,则返回③。

⑤重复③和④,直至移出8位。

⑥取被校验串的下一个字节

⑦重复③~⑥,直至被校验串的所有字节均与16位寄存器进行“异或”运算,并移位8次。

⑧这个16位寄存器的内容即2字节CRC错误校验码。

5.结束语

STM32F103C8T6为开发人员提供了高性能的数字解决方案,通过在该MCU 上实现HJ/T212协议使得系统具有很好的开放性和通用性,同时在别的嵌入式系统的串口通信的实现上也有很好的借鉴意义。

参考文献

[1]曹圆圆.基于STM32的温度测量系统[J].仪器仪表与分析监测,2010,1:16-18.

[2]ST.datasheet:STM32F103x8/B DS5319.pdf,2006.

[3]国家环境保护总局.数据手册:HJT212-2005污染源在线自动监控(监测)系统.pdf,2006.

相关主题