数控系统中RS485 串行通信协议的设计*

2013-12-23 04:46蒋明柯皮佑国
组合机床与自动化加工技术 2013年5期
关键词:通信协议数控系统上位

蒋明柯,皮佑国

(华南理工大学 自动化科学与工程学院,广州 510640,China)

0 引言

随着数控系统的开放化与小型化,以主从控制器总线通讯模式为核心的计算机数控系统成为数控系统的重要发展方向[1]。串行通信由于传输线少,通信简单,传输距离远,是工业控制领域,尤其是分布式控制系统中的传统通信方式[2],因此将串行通信作为数控系统中主从控制器间的通信方式,在某些应用场合具有不可比拟的优势。

目前,在数控系统中常见的串行通信方式主要有:基于RS-232/RS-485 总线标准和CAN 总线。由于RS-232 串行通信数据传输速率低、传输距离短、传输信号易受环境干扰,难以满足数控机床恶劣的工作环境对系统高可靠性的要求,更难以满足中高档数控系统在很短的时间内传输大量数据的要求。而在“运动控制器+嵌入式处理器”数控系统中,运动控制器主要用于单机数控系统,因此,基于现场总线(如CAN 总线)的通信方式在此显然不适用,也没有必要。因此,将RS-485 运用于数控系统中具有积极的应用意义。

RS-485 标准只是一个物理的通信接口规范,它只是规定了物理接口的机械、电气特性等,没有对通信中的链路连接、网络访问等做出规定[3],而在实际应用中,往往要考虑到数据传输的安全性、可靠性、规范性、通信速率等因素。为了满足这些特殊要求,本文结合实验室自行研制的数控系统,设计了一种基于RS-485 总线标准的串行通信协议,并讨论了其软硬件的实现。

1 系统的串行通信机制

本串行总线数控系统采用ARM 作为主控制器、DSP 为从控制器,构成主从式二级控制总体结构,系统硬件组成如图1 所示。系统以ARM 为上位机,上位机程序提取轮廓信息后转化为G 代码,进行相应的数据处理后通过串口向下位机发送数据和指令,而DSP 根据通信协议通过不停地读取FPGA 中fifo 的数据,从而获得运动控制器所需的运动控制指令,实现轨迹规划、插补计算、位置控制、主机命令处理和控制器IO 管理,同时下位机通过该串口向上位机发送运动控制器的当前状态和相关控制参数。运动控制器通过伺服接口与伺服驱动器连接,通过脉冲输出控制三相交流永磁同步电机实现系统要求的运动,并通过编码器接口获得运动位置反馈信息,再通过串口把信息传到上位机,在液晶显示模块上显示出刀具的实时坐标位置。

图1 数控系统框图

2 串行通信硬件设计

RS-485 是工业界使用最为广泛的双向、平衡传输线标准接口,具有传输距离远(最大传输距离为1200m),传输速率快(1200m 时为100kbit/s),开发成本低等优点,将RS-485 总线接口用于数控系统控制面板I/O 数据传输可在满足数控系统的实时性要求下大大降低开发成本[4]。

本系统的主处理器ARM 与从处理器DSP 之间的串行通信采用RS-485 总线标准,其串口硬件线路如图2 所示。为了满足数控系统的实时性要求,系统采用FPGA 芯片代替传统专业通信芯片,发挥FPGA 可编程、灵活定制电路的优点,将通用异步收发器(UART)的核心功能集成到FPGA 内部,不仅满足数控系统数据传输高速性要求,而且硬件结构简单,可灵活设置接收和发送先进先出存储器(FIFO)的大小,满足不同应用场合的需求[5]。

图2 串口硬件框图

RS-485 标准采用平衡发送和差分接收方式来实现通信:在发送端TXD 将串行口的TTL 电平信号转换成差分信号A、B 两路输出,经传输后在接收端将差分信号还原成TTL 电平信号。两条传输线通常使用双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高,并能实现多点互连,非常便于多器件的连接,可以实现全双工通信,而且在短距离情况下具有比RS232 标准高得多的传送速度[6]。为了满足RS-485 电平标准,考虑到数控系统工业场合的电磁干扰,设计电路时选用电平接口芯片:Maxim 公司的Max3490 将FPGA 中IO 口3.3V 的电平转换为RS-485 标准电平。通过FPGA 和Max3490 芯片,可方便地实现高速串行通信硬件电路。根据以上的串口硬件电路,本文设计了一种数控系统中基于RS485 标准串行通信协议。

3 串行通信协议的设计

上位机和下位机之间如何进行数据传输,怎样提高通信的效率与可靠性,以及对通信过程中数据格式的约定、故障处理等都需要一套规范的通信协议。而一套规范的通信协议要从多个方面加以考虑,既要求功能完备、结构简单,又要求具有兼容性和可扩充性,并且尽量标准化。本系统采用的通信协议是在充分考虑数控系统本身功能特点的基础上制定的,采用基于帧的协议设计思想,严格规定了数据帧格式与帧格式中的位数。

3.1 协议格式设计

数据帧中包含了多个组成部分,包括帧头、地址号、帧长度、帧类型、命令码、数据序列、校验码及帧尾。根据具体的场合帧内容可以有所删减。在本系统中串行通信协议帧格式如表1 所示。

表1 通信协议帧格式

帧头:表示本数据帧属于串口通信协议,帧头触发通信,用于同步控制,并为是否接收此数据帧的标志,本系统约定值为0xAA。

地址号:表示与上位机进行串口通信的下位机号,适用于主从式分布系统。在本系统中,只有一个下位机,所以直接约定地址号为1。在协议中引入地址号主要是为了方便通信协议的移植和扩展。

帧长度:除帧头和帧尾外数据帧中所有的字节数,该标志可以方便ARM 与DSP 在数据传输过程中对所要发送或接收的数据个数进行识别,以便能准确地收发数据信号。

帧类型:表明当前帧的类型,是数据帧的识别标志,详细内容如表2 所示,如需要可进行适当扩展。

命令号:上位机要求运动控制器执行的函数代号,即G 代码操作的标志码,如0x01 代表进行直线插补的功能码。

数据序列:通信中需要传输的数据内容。数据序列的内容因命令号的不同而有所不同。由于串口通信中只能一个个字节的发送,所以发送方发送浮点数和多字节整数数据时,需先把它们拆分成多个字节,然后对每个字节进行发送;同理,接收方收到数据后,可以根据浮点数和整数的数据格式将其转换成实际的数值。

校验码:这是对前面数据内容的校验结果,接收方通过判断校验码来确定传送的数据是否正确。在本系统中,对除帧头和帧尾外的所有字节进行CRC16 校验。

帧尾:表示本帧数据的结束,本系统约定值为0xBB。

表2 帧类型表

控制帧:实现上位机对运动控制器的控制。

反馈帧:运动控制器向上位机回发对应于相同命令号的反馈信息。

响应帧:运动控制器接收到上位机发送的控制帧后需回发响应帧,如果数据接收正确,要求上位机发送下一帧数据;否则要求重发上一帧数据。

3.2 数据格式

本系统采用标准异步通信模式,该通信模式的数据格式如图3 所示。

图3 标准异步通信数据格式

每帧数据由10 位组成,即1 位起始位,8 位数据位,1 位停止位。

3.3 差错控制

差错控制用于传输数据的错误检查和错误纠正,以保证数据传输的准确性。在信息的传递过程中,由于硬件或软件的种种原因,传送的信息发生错误在所难免。因此,要检查和修复数据传输错误,就必须引入额外的冗余信息,程序通过比较数据中的冗余信息来发现错误,协议中的这部分冗余信息就是校验码。该协议采用CRC16 校验作为串行检测纠错的一种手段。

本系统采用应答方式进行差错控制,即接收方向发送方发回响应帧,作为传输的正确或错误确认,发送方接收到确认后就可决定是否重发。但有可能会出现这种情况,传输中响应帧丢失,发送方会无休止的等待接收方的确认。我们在软件中引入定时器来解决这个问题,超过一定时间,发送方认为帧丢失,需要重发。本系统约定重发次数超过3 次,则认为串行通信出现故障,上位机进行通信故障报警。

4 串行通信协议的软件设计

4.1 下位机通信软件设计

TMS320C6713 是美国TI 公司于1997 年推出的C6000 系列中的一款32 位高速浮点型DSP。本系统选用TMS320C6713BGDP-225 作为从控制器,其工作主频可达225Mhz,单指令执行周期为4.4ns,具有强大的定点浮点运算能力,运算速度高达1800MIPS/1350MFLOPS[7],适用于高速高精度机床控制系统的实时控制。

DSP 和FPGA 作为运动控制器是数控系统实现各种运动控制的核心部件。它通过串行通信接收主控制器经过译码、编译程序等所得的功能号数据,进行相应的直线和圆弧的精插补、加减速控制,并通过与各类伺服系统的位置、速度反馈信号比较,从而控制机床加工中心的各个动作并进行协调。因此下位机通信软件的设计主要由初始化程序和循环查询程序组成,各部分软件组成及其功能描述如表3 所示。

表3 软件功能描述

本系统中TMS320C6713 微处理器的串行通信采用查询的方式进行,通过DSP/BIOS 设置主循环周期为0.2ms。在每个主循环周期中,DSP 查询来自通信接口FPGA 中接收fifo 的空信号标志,若不为空,则读取fifo 中的数据,并进行相应的操作;若为空,则处于查询等待状态。其中DSP 串行通信中循环查询主程序的流程图如图4 所示。

图4 DSP 串行通信循环查询主程序流程图

4.2 上位机通信软件设计

随着嵌入式技术的日益成熟,嵌入式数控机床已经在数控领域初露锋芒,除了具有成本低、体积小的特点外,还有高集成度和高可靠性的优势。本实验室自行研制的嵌入式数控系统采用“ARM+DSP”主从式双CPU 模式,其中主控制器选用S3C2440A 芯片,它是SAMSUNG 公司推出的一款ARM9 微控制器,最高频率可达400Mhz,内部集成SDRAM 和FLASH 等存储器,功能接口丰富,是一款高速、低功耗、高性能的处理器[8]。上位机经过加工代码编译、轨迹规划等预处理,通过串行通信向DSP 发送控制命令,要求运动控制器实时的完成轨迹插补、加减速控制等任务;同时ARM需要及时检查接收DSP 反馈回来的机床各部分状态信息和故障信息,以实现对机床和刀具状态的显示。上位机的串行通信程序流程图如图5 所示。

图5 上位机串行通信程序流程

5 串行通信协议的调试及仿真

在本实验室自行研制的嵌入式数控系统中,使用屏蔽双绞线实现人机接口(HMI)板和运动控制板之间的硬件连接,测试上位机ARM 与下位机DSP 间串行通信协议的可行性,其实验平台如图6 所示。其中,HMI 板通过JTAG 接口与调试主机1 相连,运动控制板通过JTAG 接口与调试主机2 相连,从而搭建ARM 与DSP 之间串行通信协议的调试平台。

图6 串行通信协议实验平台

HMI 板经ARM 处理器翻译一段G 代码获得功能号代码等数据,并按照规定的协议格式,通过RS-485总线发送给运动控制器,运动控制器执行相应的插补操作。通过CCS 软件读取相关变量和利用示波器采集运动控制器的输出脉冲波形来检验通信协议的准确性。运动控制器中设置插补中断周期为1ms,脉冲当量为1um,使用常规的梯形加减速曲线执行直线插补。

为检验系统的传输性能,经过多次实验,主从控制器以3.125Mbps 的波特率进行通信,HMI 板翻译1000 条G 代码后传送给运动控制板进行直线插补,通过CCS 软件读取相关变量可知运动控制板正确接收的G 代码条数为1000,即误码率或丢包率为0%。运动控制器对接收到的其中一条G 代码命令G1X12.334Y-10.854Z-7.925F2000 进行插补运算,读取各个插补周期计算得到的速度,绘制成曲线如图7 所示;利用示波器采集运动控制板的三轴输出脉冲波形如图8 所示。由此验证了ARM 与DSP串行通信协议的可行性。

图7 梯形加减速进给速度曲线图

图8 三轴脉冲输出波形图

6 结论

本文讨论了一种基于RS-485 总线标准的ARM 与DSP 串行通信协议的设计,并分别介绍了其硬件连接和软件设计。利用现场可编程逻辑门阵列,实现了串行通信接口电路硬件功能的集成化,缩短了开发周期;使整个系统结构简单,灵活开放、成本低廉。该串行通信协议已成功运用于本实验室自行研制的嵌入式数控系统。实验结果表明,该通信协议数据传输可靠稳定,实时性强,检错效果好,达到了预期的设计要求。

[1]吴星明,陈伟海,于守谦,等. 基于PCI 总线的主从式多轴控制器开发[J]. 北京航空航天大学学报,2008,34(1):112-116.

[2]曹豪英. 基于RS-485 串行通信标准的数控系统运动控制器的设计[D]. 北京:北京交通大学,2006.

[3]阳宪惠. 工业数据通信与控制网络[M]. 北京:清华大学出版社,2003.

[4]谢剑,金永乔,等. 高档数控系统中的RS485 串行总线接口研究与开发[J]. 组合机床与自动化加工技术,2010(5):22-25.

[5]范德和,皮佑国. 基于DSP 和FPGA 的运动控制器高速串行通信设计[J]. 组合机床与自动化加工技术,2011(9):58-62.

[6]叶健敏,高志,等. 基于单片机控制小型开放式数控平台设计[J]. 机械设计与制造,2010(8):183-184.

[8]S3C2440A 32-bit CMOS Microcontroller User’s Manual.Samsung Electronic,2004.

猜你喜欢
通信协议数控系统上位
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
要攻城略地关键要有好筹码,这匹水产动保“黑马”如何能迅速上位?
特斯拉 风云之老阿姨上位
基于FANUC 32i A数控系统的外部测量设计
西门子840D sl数控系统在SC125大型车铣镗床技术改造中的应用
基于FANUC Oi mate TD数控系统的手动功能开发
车载网络通信协议标准化问题研究
数控系统中GUI软件平台设计和实现
电动汽车充电接口及通信协议新国标发布
基于ZigBee和VC上位机的教室智能监测管理系统