APP下载

冷藏集装箱微环境控制系统的串行通信设计*

2016-01-26阳军军张兵曹广忠张保祥周受钦

单片机与嵌入式系统应用 2015年12期

阳军军,张兵,曹广忠,张保祥,周受钦

( 1.深圳大学 深圳市电磁重点控制实验室,深圳 518052;2.深圳中集智能科技有限公司)

* 基金项目:国家科技支撑计划(2014BAH23F04);深圳市科技计划项目(JCYJ20140418182819160)。



阳军军1,张兵1,曹广忠1,张保祥2,周受钦2

( 1.深圳大学 深圳市电磁重点控制实验室,深圳 518052;2.深圳中集智能科技有限公司)

* 基金项目:国家科技支撑计划(2014BAH23F04);深圳市科技计划项目(JCYJ20140418182819160)。

摘要:针对传统冷藏集装箱环境控制系统的各种参数与环节由单一控制器集中控制,系统结构复杂、非模块化、安装维护困难等问题,设计了基于STM32微控制器的冷藏集装箱微环境控制系统的串行通信子系统。介绍了该串行通信子系统的构成,分析了基帧识别、收发处理、轮询机制、有限状态机等设计方法及程序实现。测试结果表明,该系统实现了冷藏集装箱环境控制系统的分散控制与集中管理,简化了系统结构,方便维护,且效果良好。

关键词:冷藏集装箱微环境控制;串行通信;STM32微控制器;分散控制集中管理

引言

传统冷藏集装箱环境控制系统中各种参数与环节由单一控制器集中控制,系统结构复杂、非模块化、安装维护困难[1]。现代工业提倡分散控制、集中管理,现场总线技术应运而生,其中串行通信因其占用资源少、布线方便被广泛应用于工业控制中[2]。将串行通信技术与冷藏集装箱环境控制系统相结合,实现冷藏集装箱内各参数的分散控制与集中管理,可降低控制系统的复杂度,使系统模块化,利于安装维护。STM32系列微控制器是意法半导体公司生产的基于ARM Crotex-M3 内核的32位微控制器,它具有接口资源丰富、内部存储容量大、最高时钟频率达72 MHz等特点[3],适合用作基于串行通信控制系统的控制器。

1系统结构

冷藏集装箱微环境控制系统即实现对冷藏集装箱内部温度、湿度、空调风量、内部气压进行调节的系统,它的串行通信网络部分系统结构图如图1所示。

该控制系统以STM32F103VET6(以下简称STM32)微控制器为通信与控制的核心,使用STM32微控制器的4个串行通信接口组成了控制网络。其中串行通信接口UART1用于与车载通信机进行通信,以实现远程后台监控功能;串行通信接口UART2用于与温湿度、压力风量传感器通信以获取传感器数据;串行通信接口UART3用于与压力风机驱动器和风量控制变频器通信以实现对压力和风量的控制;串行通信接口UART4用于与开利冷机通信,以实现对温度的控制。

图1 冷藏集装箱微环境控制系统的串行通信结构图

STM32微控制器与车载通信机使用RS485总线连接,通信协议为私有协议。微控制器与传感器、压力风机驱动器、风量控制变频器均使用RS485总线连接,使用ModBus RTU协议。微控制器与开利冷机使用RS232总线连接,通信协议是开利冷机私有协议。可见冷藏集装箱微环境控制系统为典型的多总线、多协议、主从机一体的通信控制系统。

2通信的帧识别与组装

串行通信中使用的通信协议决定了通信帧的格式,通信帧的识别就是根据通信协议,判断识别接收到的数据是否为一个完整有效的通信帧。因冷藏集装箱微环境控制系统中串行通信的通信协议种类繁多,存在私有协议(如冷藏集装箱微环境控制系统中的开利冷机与车载通信机)。为了不涉及具体某种通信协议和方便描述,本文将串行通信帧格式描述为如图2所示的一般格式[4]。

图3 数据帧识别状态转移图

图2串行通信帧的一般结构

通信数据段是顺序连续被发送和接收的,因而对于数据帧的识别过程,就是按照图2所示的数据帧格式分段,从帧头到帧尾依次识别的过程。状态转移图如图3所示,整个识别过程分为7个状态进行。

对于STM32微控制器帧识别处理,则是放在接收中断程序中,可以方便进行接收一段、识别一段,实现图3所示的状态转移关系。同时,由图3所示的转移关系可知,只有当接收数据从帧头到帧尾都符合要求,接收的数据才算一帧完整有效的数据,而接收帧内任意一段数据有误,则之前接收到的数据都会被抛弃,接收状态会从帧头处重新开始。

通信帧的组装,即将需要发送的数据按照协议格式组成一帧或多帧数据。对于STM32微控制器来说,通信帧的组装就是编程将帧头到帧尾的数据段按照帧格式填充到发送缓冲区。

3收发处理

3.1主机模式下的收发处理

在上述冷藏集装箱微环境控制控制系统中,STM32微控制器作为主控制器与传感器、开利冷机、变频器、风机驱动器等通信时,STM32微控制器是通信主机,主持通信的收发调度。在冷藏集装箱微环境控制系统设计中,因通信从机数量多而且协议多样,为保证通信有序的同时提高控制器效率,本设计中控制器对从机的通信收发完全采用中断加有限状态机方式。

图4 数据发送操作流程图

对于数据发送的具体操作:当控制器需发送数据给从机时,在STM32微控制器的主程序中启动数据第一字节的发送,并填写应发送的字节数。随即打开发送完成中断,后续字节将在发送完成中断中发送并计数,直至发送计数值等于应发送数据值。数据发送操作的流程图如图4所示。

数据接收操作与帧识别操作一起进行,都是在STM32微控制器的接收中断中完成。具体为:STM32微控制器接收到从机发来的数据而发生接收中断,中断程序中暂存接收到的数据并进行帧识别,即判断此次接收到的数据是否符合通信协议要求的数据帧段格式,如果符合,则接收计数值加1,并保存此次接收的数据;否则接收计数值清0,并抛弃此前保存的数据,帧识别从帧头处重新开始,如此直至接收到计数值等需要接收的数据量。

图5 数据接收操作流程

应注意的是,这里需要接收的数据量一般是根据接收到的数据长度段的值计算出来的。数据接收操作流程如图5所示。

对于整个通信收发的调度,本设计采用有限状态机的方式。状态转移图如图6所示,通信收发过程被分为6个状态,分别是发送准备状态、发送中状态、接收状态、通信故障处理状态、接收处理状态、间隔等待状态。

图6 主机模式下通信收发调度状态转移图

主机模式下默认状态就是发送准备状态,此状态下STM32微控制器需要发送数据时可以进入发送中状态;发送完成后微控制器开始等待接收从机的回应,即进入接收状态;此时如果STM32微控制器接收到有效数据(即接收完成),若STM32微控制器接收的数据无效或者接收等待时间超时,则STM32微控制器进入通信故障处理状态,通信故障处理完成,则进入发送准备状态开始下一轮数据发送。接收完成后,STM32微控制器处理从机回应的数据,然后进入间隔等待状态直到等待计时完成,STM32微控制器又进入发送准备状态,开始下一轮收发过程。

在主机模式下通信收发状态中,数据接收超时计时是由定时器完成的。定时器在发送完成后开始计时,STM32微控制器接收到有效数据则停止,否则一直计时到超时。间隔等待状态的插入是为了在每次收发中加入等待延时,防止主机发送数据帧过快使从机无法响应,等待间隔时间可以根据从机需要进行调整。

3.2从机模式下的收发处理

在上述冷藏集装箱微环境控制控制系统中,STM32微控制器与车载通信机通信时,微控制器是通信从机,车载通信机是通信主机。作为通信从机,微控制器只需接收通信主机命令然后做出相应的回应即可。从机模式下微控制器通信处理可分如下3个状态:接收状态、接收处理状态、发送状态等。其状态转移如图7所示,从机模式下默认状态为接收状态,STM32微控制器此时收到主机发送的有效数据便进入接收处理状态以处理接收到的数据。完成接收数据的处理后STM32微控制器进入发送状态,发送数据响应主机,发送完成,STM32微控制器再次进入接收状态开始下一轮收发处理。

图7 从机模式下通信收发调度状态转移图

4通信轮询机制

图8 通信轮询操作流程图

在冷藏集装箱微环境控制系统串行通信中,单个串行通信接口并不仅与一个执行器或者传感器通信(如串行通信接口2与10个传感器通信,串行通信接口3与两类执行器通信),且单个传感器或执行通信数据不只一帧,因而微控制器必须有适当的轮询机制才能保证每个传感器或执行器均能正常通信连接。

在上述冷藏集装箱微环境控制系统中,采用了内部通信帧轮询与外部设备轮询相结合的轮询机制。轮询操作流程如图8所示,即STM32微控制器先按每个传感器或者执行器通信一次需要的数据帧数,完成收发单个设备通信的所有数据,即实现设备内部的帧轮询。单个设备通信数据收发完成则进入下一个设备,如此直至单个通信接口上的所有设备完成通信便开始下一轮轮询操作。

5程序实现

从机模式下的收发状态机调度程序略——编者注。

收发状态机调度程序主要实现图6 所示的主机模式下通信收发调度状态转移:

void SCI2_SensorTask(void){

static uint16_t u8_cnt = 0;

//SCI2传感器通信调度

SCI2_CommScheduleMachine();

//SCI2收发调度

switch(u8_SCI2_StateMachine){

//发送准备状态

case SCI2_TXREADLY:

SCI2_TxTask();

break;

//接收失败状态(超时或者出错)

case SCI2_RXFAILED:

SCI2_FailureTask();

break;

//接收成功状态

case SCI2_RXOK:

SCI2_RxTask();

break;

//接收转发送中间状态

case SCI2_RXTOTX:

u8_cnt++;

if(u8_cnt >= 20000){

u8_cnt = 0;

u8_SCI2_StateMachine

= SCI2_TXREADLY;

}

break;

default:

break;

}

}

6现场应用

如图9所示,本文所述的基于STM32微控制器的冷藏集装箱微环境控制系统最终以控制箱的形式外挂在冷藏集装箱的前端。控箱内设备安装布局略——编者注。

图9 冷藏集装箱微环境控制箱箱内设备

在整个系统的测试、应用中,基于STM32微控制器的串行通信子系统能正常获取传感器数据、向执行器发送命令数据,且通信质量良好,无丢帧、中断等现象,实现了冷藏集装箱微环境控制系统的分散控制集中管理。

结语

以STM32微控制器为核心的冷藏集装箱微环境控制系统串行通信设计,在实际测试、应用中通信质量及速度都取得了令人满意的效果。同时,本文所述的帧识别、收发处理、轮询机制等设计方法对于其他基于串行通信控制、监测场合均适用,可以很好地移植应用。基于ARM Crotex-M3内核的STM32微控制器在串行通信控制中的应用为冷藏集装箱环境控制系统的集散控制提供了一种新方案。

参考文献

[1] 赵晓峰,朱瑞祥,马辉,等.基于ARM的农产品冷藏车环境检测系统设计[J].传感器与微系统,2009(2):98-100.

[2] 孙汉卿,吴海波.现场总线技术[M].北京:国防工业出版社,2014.

[3] 黄智伟,王兵,朱卫华.STM32F32位ARM微控制器应用设计与实践[M].北京:北京航空航天大学出版社,2014.

[4] 张爱民,王云沼,龚松显.STM32微控制器可靠串口通信技术研究[J].单片机与嵌入式系统应,2013(10):21-23.

[5] 蒋明柯,皮佑国.数控系统中RS485串行通信协议的设计[J].组合机床与自动化加工技术,2013(5):23-26.

[6] 王艳春,王宜怀.嵌入式应用开发中通用串行通信程序的设计方法[J].现代电子技术,2006(11):146-148.

[7] 李明伟,郭广峰,黄鸽.PIC单片机与触摸屏串行通信的modbus协议实现[J].电子技术应用,2005(9):40-42.

阳军军、张兵、张保祥(硕士),主要研究方向为嵌入式计算机技术;曹广忠(教授),主要研究方向为先进控制理论及其应用、磁悬浮技术、嵌入式计算机技术;周受钦(博士),主要研究方向为物联网技术、嵌入式技术。

Yang Junjun1,Zhang Bing1,Cao Guangzhong1,Zhang Baoxiang2,Zhou Shouqin2

(1.Shenzhen Key Laboratory of Electromagnetic Control,Shenzhen University,Shenzhen 518052,China;

2.CIMC Intelligent Technology Co.,Ltd.)

Abstract:The various parameters and the links centrally are controlled by a single controller in the traditional reefer container environment control system,so the system structure is complex,non modular,and is difficult to install and maintain.So a serial communication subsystem of the micro environmental control system in reefer container based on STM32 microcontroller is designed.In the paper,the structure of the system is introduced,the design methods and program implementation of frame identify,sending and receiving processing,polling mechanism,finite state machine of the communication subsystem is analyzed.The test results prove that the system achieves decentralized control and centralized management in the environmental control system in reefer container,it simplifies the system architecture and makes it more convenient to maintain.

Key words:micro environmental control system in reefer container;serial communication;STM32 microcontroller;decentralized control and centralized management

收稿日期:(责任编辑:杨迪娜2015-07-10)

中图分类号:TP23

文献标识码:A