基于TMS320F2812 的RS485 通信系统设计
2023-05-23秦家正黄炎田斌胡亦恒
秦家正,黄炎,田斌,胡亦恒
(1.江苏亚威机床股份有限公司,江苏 扬州 225200;2.江苏省金属板材智能装备重点实验室,江苏 扬州 225200)
工业自动化控制实时数据传输系统是目前工业智能化发展的一个重要领域。本系统基于RS485 串口通讯协议开发,相较于传统的RS232 标准,具有传输速率高,抗噪声干扰性好,以及传输距离长等优点。此外,通讯数据帧基于ModBus 通讯数据帧进行二次设计,帧功能性强,且配备数据校验与出错重发处理机制。因此本文在工业自动化设备的专用系统上,对实时数据传输技术进行了深入研究和开发,以能够提供成熟的应用解决方案。
本文基于TMS230F2812 型DSP 芯片开发,针对机床数控系统的上下位通信实现,进行了一些探索和研究。
1 设计原理与需求分析
HMI 通过RS485 串口通信协议实现从机床运动控制系统获取机床实时状态信息,监控机械结构加工过程中轴位置以及运动状态标志位,控制各模拟量、数字量模块的输入输出信号,以此来完成人机交互,响应远端和近端的操作。
RS485 是一个定义平衡数字多点系统中的驱动器和接收器的电气特性的标准,使得连接本地网络以及多支路通信链路的配置成为可能。本系统是以DSP 为核心的通用RS485 数据通信系统,系统整体设计在保证了通讯稳定性的前提下,具有实用面广、通用性强以及可自由扩展等优点。整体RS485 通信系统结构原理如图1 所示。
图1 RS485 通信结构图
Serial Communication Interface 简称“SCI”,即串行通信接口。SCI 是一个双线的异步串口,具有接收和发送两根信号线,一般可以看作是UART(通用异步接收/发送装置)。TMS230F2812 的内部具有两个相同的SCI 模块,SCIA 和SCIB。每一个模块都各有一个接收器和发送器,SCI 模块可以产生两个中断:SCIRXINT 和SCITIINT,即接收中断和发送中断。本系统使用SCIA 模块以中断方式实现数据收发,具有系统占用内存低、实现效率高等优点。
在机床实际应用中,DSP 将传感器/编码器反馈数据进行处理后通过SCI 模块将实时状态信息发送给HMI,同样以此来接收HMI 发送的运动控制与状态信息处理指令,并传达给最终的执行机构。
2 方案设计与实现
2.1 需求分析
工业自动化机床通常需要通过对加工过程运动控制规划进行采样,来监控实际加工过程中机床运动状况,以及HMI 需实时正确显示机床必要加工状态信息。因此此通信系统应能够解决以下几点主要需求:①数据校验功能:数据帧出错检验与出错处理重发机制;②数据接收/发送数据处理功能:对结构体进行数据处理,精简传输信息,提高传输效率;③采样数据存储功能:对采样数据进行周期性存储,用于绘制运动规划曲线。
2.2 方案设计思路
整体软件控制方案包含三部分:①SCIA 数据接收/发送中断模块;②接收/发送数据处理模块;③采样数据处理模块。
软件架构示意图如图2 所示。
图2 软件架构示意图
(1)数据接收:接收中断收取到数据后,DSP 将接收到的数据从接收缓冲寄存器SCIRXBUF 中移出,经由数据接收处理模块处理后存放至专用数据输入接口。
(2)数据发送:DSP 将HMI 所需数据通过数据发送处理模块对数据输出接口内数据进行处理,并通过发送中断将数据发送。
大葱采收晾干,叶子萎蔫,然后将葱捆成捆,放在敞棚空屋或室外阴处干燥,选温度变化小的地方用黄墒土埋住葱白贮放。这种方法既防冻保暖,又通风良好,不易腐烂变质,但贮量小,脱水严重,葱白外层的葱肉易干枯,皮层加厚,自然损耗量较大。
(3)采样数据处理:为保证运动控制完整性,运动过程中无法进行采样数据传输。因此需开辟专用内存区块,周期性将采样数据进行保存,运动控制结束后将存储数据发送给HMI 用于曲线绘制。
2.3 实现方案
2.3.1 数据帧设计
采用类似ModBus 通讯的ASCII 消息帧格式,单帧数据组成如表1 所示。
表1 数据帧
(1)序号:本次数据帧序号,若发送一帧通讯未得到应答后,则会对相同数据帧进行再次发送,对应序号加1。
(2)功能代码:表示数据用途,或代表具体指令,详细设计如表2 所示。
表2 功能代码
(3)数据大小:占用2 个字节,值表示数据段字节数,因此单帧能够传输的数据最多为65535 个字节。
(4)校验位:占用2 个字节,采用BCC 校验(即数据位按位异或),存放校验结果。
(5)结束位:占用两个字节,使用回车+换行(ASCII 码0x0D,0x0A)表示数据帧传输结束;
DSP 从SCIARXBUF 寄存器中读取数据后,进行数据帧头检测,检测到帧头后对数据帧序号、功能代码、数据大小和数据进行获取。数据获取完成会进行数据校验,校验未通过,则丢弃该次读取的数据,并且重新获取,连续数据出错3 次后报警并向HMI 进行反馈。程序流程如图3 所示。
图3 数据接收流程图
2.3.2 采样数据处理
在机床运动过程中,为防止发送数据进入中断打断主运动控制进程,开辟专用内存区块用于存储采样数据,机床运动结束后将采样数据发送给HMI。为保证采样精度,在接收到HMI 的采样请求报文“0x00A1”后,DSP 会启动采样数据记录函数每5ms往采样数据存储区域内记一次数据,采样存储区域设计为48KB。
采样数据结构体设计为8 个Uint16 变量,即每记一次数据便会占用16 个字节存储空间。每5ms 采样一次,15s 后即会占满48KB 的存储空间,因此本系统设计最大采样时长即为15s。
机床运动结束或到达采样最大时长15s 后,DSP会返回采样结束标志位,此时上位会下发请求采样数据报文“0x00AB”。DSP 收到后使用采样数据处理函数将存储区域内数据按位读出并发送给上位。采样流程如图4 所示。
图4 采样流程图
3 测试和验证
测试程序设置每1000ms 发送一次数据,并将各参数打印出来。测试结果如图5、6 所示。
图5 第一次采样数据
图6 第二次采样数据
对比可知,打印数据准确无误,且第二次成功接收到DSP 发送数据并打印距离第一次时差为1001ms,减去设置的1000ms 间隔,可知单次数据帧发送耗时为1ms。
连续运行一天再次采样,数据如图7、8 所示。
图7 第三次采样数据
图8 第四次采样数据
对比可知,连续运行一天后,数据打印仍准确无误,且数据帧发送耗时为1ms,系统稳定性无问题。
4 结论
本系统有效地将DSP 的高速处理能力和RS485通讯协议的高性能、高可靠性的优点结合在一起,使DSP 能高效、准确地将机床获取到的各项数据信息实时发送到上位机HMI,以便用户进行状态监控与指令下达。
经验证,本方案对于工业自动化控制领域各应用场合具有参考意义,并且通过移植和改进调整,具有一定的实用价值。