范春健,韩 斌,林永才,周根成
(1. 江苏科技大学 计算机科学与工程学院,镇江 212003;2. 江苏合丰机械制造有限公司,张家港 215628 )
随着工业机器人在企业中的不断迅速发展,运动控制器控制多个伺服驱动系统的能力在不断地提高,电机驱动的精度以及远距离传输通信影响了整个机器人运动操作。
传统的工业机器人控制系统采用的是专用的计算机加多单片机、多控制封闭回路的体系结构,但此种技术存在制造成本高,开发周期长,升级困难,无法添加系统新功能等一系列缺点。随着技术的发展,采取了通用PC机和运动控制卡实现控制功能的方案[1]。PC机具有编程简单、友好的人机交互界面、在线操作和使用方便等特点。但是,通用计算机缺点在于系统体积大,功耗大,难以应用于工业现场,而且难以实现实时性要求较高的远距离传输通信。
针对现有控制器的不足,本文采用了嵌入式集成处理器TI公司的DM 3730作为工业机器人控制系统的核心单元。数字媒体微处理器DM 3730集成了1GHz的ARM Cortex™-A 8内核,800MHz的TMS320C64x +™DSP 内核,超低功耗的供电及丰富的多通道传输接口提供给Xilinx FPGA多I/O输入,利用内部逻辑资源,通过LVDS I/O输出达到异步差分通信。
在工业机器人控制通讯的现场总线中,实现远端I/O通讯的协议有Ethernet、CAN、Modbus、Profibus、DeviceNet等,其中各协议的传输速率、传输距离都相对比较慢、短,且传输数据格式和转换延时比较复杂[2],现针对工业通讯的不足和设计接口的特点,采用了LVDS的伺服控制系统进行设计。总体设计结构如图1所示,系统包括控制器与FPGA通讯模块,并将编码器、光栅尺反馈信号至控制器处理,实现在10米外的驱动器上LVDS通讯过程中传输100Mbps的比特率信号。
图1 系统总体结构图
硬件部分包括主控电路、电源管理电路、电源转换电路、时钟电路、LVDS差分通讯电路等。如图2所示,工业机器人控制器主板系统结构图。
图2 控制器主板系统结构图
为了减少设计成本和提高稳定性以及利于开发升级,采用TI公司具有1GHz 的ARM Cortex™-A 8和800MHz的TMS320C64x +™DSP架构的低功耗芯片DM 3730,提供了32KB的指令及数据寄存器、64KB SRAM和256KB的L2 ROM,可有效地缓存数据。内部I/O具有4个USB、2个UART、4个SPI、4个BSP以及4个I2C的多功能复用管脚输出,处理器配合Xilinx FPGA Spartan-6系列的XC6SLX4中的3840个逻辑单元、600个配置逻辑块(CLB)、4个数字时钟管理器(DCM)组成倍频计数时钟电路,在DDR SDRAM存储器进行读写和功能配置,电源管理器TPS65930将实时控制时钟和电源驱动。
在DM 3730内部存储结构运行状态下,为达到芯片系统工作的高速频率,要求为内部电路提供稳定的定时器,使用了26MHz的有源晶振,其内部经过一系列的锁相环(PLL)和信号驱动器产生多个处理器的内部时钟。为了产生内核CPU的时钟,通过由PRCM寄存器控制的数字锁相环来运行26MHz信号。DM 3730的外部晶振时钟32.768KHz的晶体必须直接与电源管理器TPS65930相连,为的是对CPU启动和实时时钟模块提供参考时钟。
图3 主控有源和无源时钟电路
本设计中采用具有PWM控制的3A降压转换器作为DC转换芯片AP1510,输入电压范围在3.6V-23V,输出电压范围在0.8V-Vcc,PWM调节在0%-100%之间,在输入为12V,工作温度在25°C时,反馈电压VFB为0.8V,带负载时输出电流为0.2A,电源效率达到91%。
图4 12V转5V直流开关转换
如图4所示,芯片AP1510输入电压为12V,范围在12V+500m V, 在OCSET端串接一个5.6KΩ电阻,限流为90uA, 当使能为高电平时,正常工作,内部的MOSFET 栅极输出一个开关电压,经外部稳压管蓄流,电感电容储能改变原先的方波为正弦波,并经电解电容滤波减少电磁干扰,通过改变外部电阻的分压比实现输出的大小,并将分压值反馈给VFB,通过与内部基准电压比较,再送给PWM控制电路,匹配输出,由这一原理得出输出电压的公式:
低压差分信号(LVDS)是适应高速数据传输和低功耗的一种用通用点对点物理接口技术。LVDS物理接口使用1.2V偏置电压作为基准,摆幅提供大约350mV,发送和接收信号最大延时时间为2.7ns。LVDS比RS-485能提供更高的传输速率(一般为155Mbps)、更低的功耗,特别适合工业控制、电信基础设施和计算机的外围设备接口应用。
本论文主要设计并实现FPGA产生百兆比特率在LVDS标准串行差分下远距离传输,而尽量减少信号传输衰减,利用专用收发均衡器CLC001和CLC012将之在双绞屏蔽线上损耗给予补偿,由于输出数据的压摆率和幅度可解决在PCB上减少很大一部分的电磁干扰[3]。如图5所示,从FPGA内部逻辑电路向I/O端口输出要达到十几米的差分信号必须加均衡器芯片CLC001,通过调节Rref的电阻值,输出可高达2V左右,调控电缆内的各信号电平。在接收器的DI+和DI-两端必须接一个100Ω的终端匹配电阻,这样有效地抑制噪音干扰。
图5 LVDS收发均衡电路
本设计采用FPGA Spartan-6系列XC6SLX 4内的一个数字时钟管理器DCM、两个独立的吉比特收发器电路、一个先进先出FIFO和串行数据输入DIN完成并串数据发送再接收恢复的LVDS传输通讯。每个收发器具有高达3.2Gb/s的数据率,分隔的PLL复用参考频率30MHz,并且具有大量用户自定义的特征参数。如图6所示,整个设计的流程发送接收图,在DCM给出的信号输入SQ创建了0°和90°相位与DIN给出信号输入SC创建了0°和45°相位的通用互连[4],通过可配置逻辑块(CLB)形成转接矩阵优化进位通道,在时钟周期内发送串行数据至FIFO缓存处理,零延时输出信号。接收时首先8次密集采样起始位,采样到的起始位为周期的某一时刻Tn,然后在Tn+5=Tm采样数据D0位,依次在下一个周期采样点Tm+8采样下一位数据,共有10位数据,包括起始位和停止位。经时延处理在每一个CP下降沿来临时接收得到LVDS串行数据。
图6 LVDS通讯传输流程图
发送模块根据流程图的设计要求,利用VHDL语言描述了CP 为PLL的60M输入信号2倍频时钟输入,SQ 为DCM创建的90°时间间隔信号,SC为DIN创建的45°时间间隔信号,时钟管理管道中的PLL 提供时钟相位为防止DCM的time0 和 time90输出的抖动[5]。
根据流程图的要求,下面VHDL接收模块对有效数据进行判断,采用多次密集型电平区间采样方法,在接收过程中当初始位在CP时钟8个等分点T1时刻采样得到8位反复采样起始位信号b[2..0],接着采样数据位在T5时刻有每隔8个采样点采样的信号b[7..3],经数据恢复单元DRU读入地址[6],最后接收有效的8位串行数据LVDS信号d[7..0]。
控制器与驱动器的LVDS通讯决定整个系统信号处理和反馈控制的高精度传输。通过VHDL语言生成得到,如图7所示的LVDS输入输出的Quartus II仿真图,FPGA实现实时时钟120MHz,其中CP为周期性方波信号,SQ、SC在周期内不同相位的变化,b[2..0]采样起始位以密集快速采样方式[7]检测到起始状态是否为低电平,然后以Tn+5的间隔在高电平稳态时采集b[7..3]信号,最后输出数据d[7..0]。
图7 波形仿真图
在实际的LVDS传输环境中,存在许多干扰噪声,现把外来干扰视为各频谱分量服从均匀分布且幅度服从高斯分布的加性高斯白噪声(AWGN),对其信号加载到传输通道中,得到不同信噪比下的数据位误码率,图8所示,信噪比在0-30dB之间误码率比较高,当信噪比增大时,系统的误码率就降低。
为使得差分数据在时钟周期内能无误地传送每一位,达到零延迟传输数据。首先在LVDS收发器两端增加均衡器,减少噪音信号;其次在硬件PCB上差分线应等长、等间距、少过孔走蛇形线,LVDS接口用滤波器和粗双绞线对信号进行处理;最后在传输8位数据后打包检查CRC校验,用2个ROM查表方法实现,即用高低4位二进制数在乘法器中相乘直接得到一个8位的补码,重新发送本段内容,这样如图9所示,误码率几乎为零。
图8 LVDS受加性高斯白噪声的误码率
图9 LVDS两端加均衡器的误码率
[1] 王天然,曲道奎.工业机器人控制系统的开放体系结构[J]. 机器人.2002,5(3):256-261.
[2] 黄涛,程鑫.FPGA在高速高精运动控制系统中的应用[J].武汉理工大学学报.2007.2:28-31.
[3] 高同海,宋明,丁晓明.自适应均衡器在LVDS总线长距离传输中的应用[J].单片机与嵌入式系统应用.2005,11:11-12.
[4] John F.Snow.使用IDELAY实现高效8倍过采样异步串行数据恢复[N].单片机与嵌入式系统应用,2007,9.
[5] Davor Glisic.LVDS转发器与交叉点开关延长FPDLink II接口的传输距离[N].美国国家半导体公司http://www.national.com.2008:1-7.
[6] 尤 扬, 陈 岚.一种应用于8B/10B编码串并转换电路的低功耗LVDS接收器设计[J].电子器件.2008,6(3):915-918.
[7] 王小艳,张会新,孙永生,杨倩.Cam er a Link 协议和FPGA的数字图像信号源设计[J].国外电子元器件.2008.7:59-61.