基于CPLD的编码器解码接口、PWM输出方案
扫描二维码
随时随地手机看文章
引言
在数控机床或其他数控设备中,往往都会用到光栅尺或编码器等位置传感部件,用以来测量机械运动部件的实际运动位置及速度信息。那么光栅尺或编码器测量到的数值,就需要专门的接收部件来处理。一般的编码器输出的信号是AB(或ABZ)相正交编码信号,之所以这样编码也是为了将方向信息加入码流,同时也有利抗干扰等方面的处理。因此在接收这个信号时就需要专门的解码接口电路,将所得的数据也就是实际运动位置/位置信息传递给处理单元,或通过总线(比如 PCI)传递给数控设备的中央控制系统中,让控制系统的软硬件根据测来的实际信息与理想(逻辑)信息进行对比,然后根据比较的误差结果再去调节运动部件的位置和速度,或做其他中断、开关性的输出动作以达到控制机械运动的目的。甚至,通过一套完整的算法来把位置、速度、力矩等信息纳入体系中来,做实时反馈处理,这也就是我们所说的闭环(半闭环)处理,我们常见的算法就是PID(或PI)算法。这样以来,就比较方便于让机械设备在全自动的运行下达到快、准、柔的特性。
1 、用CPLD来实现编码器解码接口及PWM输出功能
现在市面上已经有专用的编码器信号/AB相正交编码信号解码接口芯片,主要是欧美等国家提供的芯片,比如HCTL-2016/HCTL-2020等产品。但是这些产品性能价格比还是比较差,功能不够丰富,使用起来也不灵活方便,很难适合广大客户的需求。
而用中规模的CPLD来完成AB相正交编码信号解码功能的设计,就成了一个选择,加之CPLD的可塑性,及日益走好的性价比趋势,这种方案甚至成为了唯一的最优选择。
一般情况,Altera/Lattice/Xilinx的市面主流的CPLD都可以满足设计的需求,逻辑在中等规模,约500-1000宏单元,就可以完成1-4通道解码AB相正交编码信号解码功能,并且可以外加1-4通道的PWM发生,以及多路数字量I/O的扩展功能。或者完成1-4轴AB相解码外加可编程脉冲发生功能。
而要充分利用CPLD的资源,并且达到一个高性能、高可靠性的设计,是需要足够的技术力量保障的,这样才会有高性加比的产品出现。
深圳市斯迈迪科技发展有限公司正式这样的公司,专业从事运动控制SOPC(即CPLD、 FPGA)的芯片级技术方案和平台级技术方案开发,并向市场推出多款运动控制SOPC芯片产品。其中SM2100系列就是1-4路的ABZ相编码器信号的解码及PWM输出功能SOPC产品。
以下是2100系列的功能介绍
1.1 SM2100特点简介
SM2100提供了1-4通道的ABZ相解码、4倍频、16位的编码器计数范围和16位的PWM脉冲发生的功能。同时在芯片内部附加了8路通用输入和8路通用输出。由于芯片是SOPC技术方案,因此还可以根据客户的具体需求做定向化的设计。
图1是其功能框图。下面是其性能指标:
输入时钟CLK频率最高到80MHz,标准输入频率40MHz;
PWM的占空比调节范围0~4095,频率调节范围150Hz~150KHz;
16位编码器计数器,可达计数范围为:1~ 65535;
AB相输入可4倍频,AB相输入内接3阶数字低通滤器,滤波带宽4级可调。
图1:SM2100功能框图
1.2 SM2100的设计应用说明
SM2100是一个SOPC方案,它的应用特点如同常见的ASIC一样方便,通过8位CPU接口与主控器件接口,通过内部寄存器来设置其工作状态及功能。
其中CPU接口非常简单:
8根双向数据总线:D0~7;
7根地址总线:A0~6;
1根片选线:CS_n;
1根读允许线:RD_n;
1根写允许线:WR_n。
也可以根据用户需要,提供16位总线接口。除了数据总线增加到16根外,其它信号与8位总线接口相同。
下面是主要的功能设置寄存器介绍。通过这些寄存器的描述,应用工程师们可以一目然地看清了SM2100的具体功能及如何使用。
1.3 SM2100的主要功能原理及应用介绍
A、编码器解码计数功能
下图2是解码计数部分的原理:[!--empirenews.page--]
图2:解码计数部分的原理
SM2100芯片有1-4通道16位ABZ相编码器计数器。通过读取各通道的计数寄存器(CNT*)可以得到该通道当前的计数值。对各通道的计数清零寄存器(CNT*_CLR)的写操作将把该道的计数寄存器清零。
每道计数器的输入端都有4倍频电路和3阶数字滤波器电路。数字滤波器的带宽分4档可调,分别是10M,5M,2.5M,625K,分别可以滤除ABZ 相信号上的宽度小于300ns、600ns、1.2us、4.8us的干扰。对模式寄存器(MODE)的写操作可以分别设定各通道的滤波器带宽。
在Z相信号的上升沿,会把当前的编码器计数值锁存在索引寄存器(CNT*_IDX)中,同时把状态寄存器(STATUS)中的对应标志位置1。CPU 芯片可以依据SM2103的状态寄存器和索引寄存器的值进行回零点处理。状态寄存器的索引标志位在状态寄存器读操作后自动清零。
B、PWM输出
SM2100芯片有1-4通道16位PWM输出。用于产生互补(差分)的脉宽调制信号有死区控制功能。可以用来对3相位晶体管的控制完成电机控制中的功率驱动和3相逆变器功能,也可以或结合低通滤波完成DA转换功能。
PWM输出脉冲的周期可以通过往控制寄存器PWM_TL、PWM_TH写入数据来设置。有效数据为16位,即PWM_TL的8位和PWM_TH的低4位。
第n通道的脉冲宽度可以通过往控制寄存器PWM_WnL、PWM_WnH写入数据来设置。有效数据为16位,即PWM_WnL的8位和PWM_WnH的低4位。
往PWM_EN寄存器的最低位写入1时,使能PWM;写入0时,禁止PWM输出(输出0电平)。
当PWM脉冲宽度的设置大于脉冲周期的设置值时,输出脉冲的占空比保持为100%。
C、通用IO应用
对SM2100芯片的通用输入输出的操作,直接对GPI 、GPO寄存器进行读写即可。这项功能可以用来完成对系统中的开关量控制,或类似于PLC中的I/O点控制。
2、 2100的应用方案举例介绍
2.1 SM2100芯片在运动控制卡中的应用:基于PCI的读数卡SMP330
SMP330卡是利用SM2103及PCI接口芯片设计出的32位PCI总线的3通道AB相解码计数和PWM输出卡。该卡适用于电机控制,数控机械系统中的位置监测。它体现了上述SM2100系列芯片的一切功能特点,包括3通道16位A/B相编码计数器,3个16位的PWM信号输出,和多路通用的数字输入、输出通道。
因为是板卡级别的产品,因此还做了系统性质电路调理处理。例如编码器信号接口采用差分输入接收,高速光电隔离;PWM输出经过74LS06芯片OC输出;数字量的输出输入都经过光电隔离,其中输出还经过达林顿管增加驱动电流;此外还在板上增加了隔离电源模块,用以增加系统的抗干扰性。
下图3是SMP330的系统功能框图:
SMP330卡可以用到多个应用领域:电机控制、过程监视、工业过程控制。具体的有:抄数机、测量分析仪器、半自动化定位机器、PC机数显等。它可以完成系统中的读数功能,也就是对实际位置/速度信息的测量,还有利用PWM功能对电机进行控制,同时数字GPI/O功能也可以用来对系统进行I/O扩展。
比如抄数机。我们在实际工件的设计生产中,对一些较复杂或不规则工件的机械外型设计比较困难,同时也特别消耗时间。这种情况下,如果有实际的参考实物,利用抄数机的位置探测部位对实物的外壳的实际位置信息快速而又精准的测得,直接利用测得的数据恢复出其“外貌”来,则设计就是一个快速高效的仿制了。那么这个抄数机设备中主要的处理部件就可以利用SMP330卡来实现。
图3:是SMP330的系统结构框图
2.2 SM2100芯片在数字伺服驱动器中的应用
已经有部分客户利用SM2100芯片方案来实现其伺服驱动器产品了,在产品里担当速度与位置的接口处理功能,以及对PWM输出产生的功能。
此处以无刷直流数字伺服驱动器为例。一个无刷直流电机的控制原理框图可以用下图4来表示。
图4:无刷直流电机的控制框图
我们如果对上图3进行深一步的全数字化电路设计性细分,可以得到如下的图5数字直流伺服系统功能框图:
图5:数字直流伺服系统框图
那么,在上图5中兰色框体部分就可以用SM2100系列芯片方案来实现,灰色框范围内的功能则可以用DSP或FPGA来实现,这样就形成一个全数字伺服系统方案。当然在这个系统中,SM2100只是成但部分的功能及接口,主体的闭环算法处理是在DSP或FPGA实现(用FPGA方案实现也是深圳市斯迈迪科技发展有限公司的产品之一,它囊括了2100在内,更主要的是新型FPGA的特点使得比起DSP方案来有独到的优势,此处不再赘述)。
这样的方案里面,结合SM2100来实现,优点是增加系统可靠性、性能好。
综上所述,一个数字直流伺服系统(驱动器)的处理部分实现,就可以用一个DSP结合一个SM2100芯片就完成了。