基于TMS320LF2407的变频器串行通信设计
2019-05-09李阳
李 阳
(山西欣奥特自动化工程有限公司,山西 太原 030012)
0 引言
变频器因具备运行可靠、稳定和强抗干扰等特性,在现代工业生产中被广泛使用,是电机交流调速的一种重要方法之一。变频器设备本身带有显示面板具备操作简单、快捷的特点,但却有不够专业化,数据显示不够直观的缺点,而且在控制数据的计算、处理、保存等诸多方面存在着不足。通过设计实现串行通信控制,变频器数据上传与上位机下载,实现控制程序的数据交互,充分发挥上位机数据处理和操作方便的优势。
1 Modbus协议
1.1 Modbus协议原理
Modbus串行链路协议是一个主从协议,作为通信行业的通信标准,广泛应用于工业设备控制中。在同一时间内,只有一个设备主机连接于通信总线,同一个串行总线可连接一个或多个从机设备(最多为247)。采用Modbus通信总是由设备主机发起,从机只有在收到来自主机的请求时,才主动向主机发送数据。两个从机之间没有互相通信功能。主机在同一时刻只会发起一个Modbus事务处理。主机以单播模式和广播模式两种模式对从机发出Modbus请求。单播模式是一问一答式,设备主机以设定地址寻找某一从机,从机接到寻访并处理完请求工作后,将一个应答返回主机;广播模式是主机同时向在线的所有从机发送请求,从机不需要返回应答。
1.2 传输模式和帧格式
Modbus协议有ACSII和RTU两种通信传输模式。本论文设计的Modbus串行通信采用RTU模式,RTU模式构成如图1所示。
图1 RTU模式
在RTU模式,不同的两个报文帧之间至少包含3.5个字符时间的时间间隔,用以程序区分不同帧数据。其中,报文帧发送时必须以连续的字符流发送,如果一个报文帧中两个字符发送的空闲时间间隔大于1.5个字符时间,则该报文会被处理程序认为不完整,从机会将收到的报文帧丢弃。RTU报文帧格式如表1所示。
表1 RTU报文帧
Modbus串行通信协议定义了串行通信中异步传输的帧内容及使用格式。其中包括:主机轮询及广播帧、从机应答帧的格式;主机组织的帧内容包括:广播地址(或从机地址)、执行功能的命令码、命令数据内容和CRC校验等。从机的响应也是采用相同的结构,内容包括:执行功能确认,返回主机的应答数据和CRC校验等。如果从机未能从主机接收到正确的帧数据,或不能执行主机下发的控制动作,它将组织一个故障帧作为响应反馈给主机。
2 硬件设计
本方案中应用MAX483E,将RS485通信接口的电平转换为适合DSP芯片的输入电平,硬件电路设计结构简单、清晰明了,DSP控制芯片的SCITXD(传输)和SCIRXD(接收)管脚分别接TXD和RXD。硬件电路图如图2所示。
图2 硬件电路原理图
3 软件设计
本文Modbus串行通信设计选用的是德州仪器TI公司生产的DSP控制芯片,型号为TMS320LF2407,程序编写采用汇编语言。本文分为3个部分介绍实现串行通信功能,即SCI初始化程序、SCI中断程序和SCI数据处理程序。
3.1 SCI初始化程序
本部分主要是对SCI寄存器进行相应的控制位设置。下面为DSP控制芯片的部分寄存器设置实现代码:
LDP #0E0H
SPLK #07H,SCICCR,数据位8,停止位1,无校验
LDP #0E01H;装载数据页
SPLK #0003H,MCRA;SCI引脚选择
SPLK #02H,SCICTL2;TX中断disable、RX中断enable
SPLK #03H,SCICTL1;使能发送接收及时钟管脚
SPLK #02H,SCIHBAUD
SPLK #08H,SCILBAUD;波特率9600bps
SPLK #023H,SCICTL1;复位
LDP #0
SPLK #0,GPR0;等待状态发生器设置
3.2 SCI中断
中断程序主要功能是数据中断接收和中断发送。中断接收,当检测到与上一帧数据末尾字符的时间间隔大于3.5个字符时间的第一字节开始记录,通过中断循环接收,直到全部数据接收完毕。中断发送,程序记录发送的数据长度,直至数据发送完毕。SCI数据中断程序处理流程图如图3所示。
图3 SCI中断流程图
3.3 SCI数据处理程序
本部分主要功能是DSP芯片识别上位机通过Modbus通信发送过来的动作命令码并且根据接收到的命令码控制变频器进行功能动作。当变频器收到完整的一帧数据后,首先对帧数据分析,进行地址判断,确定是广播地址还是本机地址,并进行命令码合法性判断和CRC校验计算,当满足所有条件,命令码正确后,变频器执行命令操作。数据处理流程图如图4所示。
4 软件测试
测试过程中,变频器主要命令码数据由上位机的串口调试工具进行发送。
1) 命令码:03H,读取N个帧数据(word)。
测试示例:从机变频器地址设置为01H,寄存器内存起始地址为0006,读取2个字,则命令帧和应答帧数据如表2,表3。
图4 SCI数据处理流程图
起始间隔标志>3.5个字符时间间隔设备地址01H命令码03H起始地址H位00H起始地址L位04H数据个数H位00H数据个数L位02HCRC校验L位85HCRC校验H位CAH结束间隔标志>3.5个字符时间间隔
表3 从机回应信息(RTU)
2) 命令码:06H,写入一个帧数据(word)。
测试示例:为变频器02H的0008数据地址写入1388H,则命令帧和应答帧数据如表4,表5。
表4 主机命令信息(RTU)
表5 从机回应信息(RTU)
5 结论
本文所设计的Modbus串行通信是通用变频器控制设计的关键一步,程序通过下载至TMS320LF2407芯片上控制设备运行,其结测试结果令人满意,变频器运行稳定,完全符合设计需求。