图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芯片就完成了。