精密运动控制器LM628的应用设计(图)
关键词:精密运动控制器 pid lm628
引言
神经网络技术是自动控制方法发展的重要方向之一,目前已广泛地应用于过程控制、机器人控制、生产制造、模式识别等领域。由于神经网络理论的计算量较大,对硬件的要求较高,神经网络理论系统一般十分昂贵。近年来随着集成电路飞速发展,基于神经网络理论的控制系统可以用微处理器和专用的大规模集成电路来实现。这样就大大降低了系统的成本。大规模集成芯片lm628是美国国家半导体公司生产的专用精密运动控制器,具有16位的可编程数字pid调节器,可经增量码盘反馈构成位置闭环,并能对位置误差实行pid运算。利用lm628和微处理器可实现低成本、高精度神经元pid伺服系统。
lm628主要特点如下:32bit位置、速度、加速度寄存器;16bit的可编程数字化pid调节器;可编程微分采样周期;8bit或12bit dac输出;8bit pwm输出;内部梯形速度特性产生器;在运动期间速度、目标位置和滤波器参数可以改变;具有位置和速度两种操作模式;实时可编程的中断;8bit异步并行接口;用于积分增量编码器标准脉冲输入接口。
表1 lm628引脚说明
引脚号 | 引脚名称 | 功能 |
1 | index(in) | 积分增量编码器标准脉冲输入选择端,如该引脚不用必须保持为高 |
2 | a | 编码器信号输入 |
3 | b | 编码器信号输入 |
4~11 | d7~d0 | 用于与微处理器接口的双向数据总线. |
12 | cs | 片选端,低有效 |
13 | rd | 读许,低有效 |
14 | gnd | 电源地 |
15 | wr | 写许,低有效 |
16 | ps | 端口选择,低为命令状态,高为数据状态 |
17 | hi | 中断输出 |
18~25 | dac7~dac0 | 输出端口 |
26 | clk | 系统时钟 |
27 | rst | 复位端,低有效 |
28 | vdd | 电源 |
内部结构及工作机理 lm628为28脚双列直插封装形式,引脚功能如表1所示,图1所示为其内部功能框图。
lm628通过8bit并行i/o口与微处理器进行数据交换,微处理器可以以命令的形式对lm628的梯形速度特性和pid数字滤波器进行参数设定。用于检测电机旋转位置的增量编码器的输出信号通过编码器输入接口送入lm628,在lm628中与设定的位置信号相减,形成位置误差信号,该信号送入pid数字滤波器进行处理后形成控制信号,通过8bitdac并行接口以数字化的形式输出,然后就可以通过数模转换器和功率放大电路驱动伺服电机完成精密的运动。
微处理器通过命令的方式对lm628进行控制和参数设定和读取,在这些命令中,一般可分为两大类,一类只有命令代码,而另一类在命令代码后还要加上相应的数据代码(例如:设定的参数值)。lm628的命令集如表2所示。
lm628主要参数为:最高工作电压7v;最大功耗为605mw;工作温度范围是-40℃~+85℃;电源电压为:4.5~5.5v;存储温度范围为-60℃~+150℃。
表2 lm628命令集
命令 | 类型 | 说明 | 对应的16进制数 | 数据字节数 |
reset | 初始化 | 复位lm628 | 00 | 0 |
port8 | 初始化 | 选择8bit输出 | 05 | 0 |
dfh | 初始化 | 定义原始位置 | 02 | 0 |
sip | 中断 | 设定标志位置 | 03 | 0 |
lpei | 中断 | 错误时中断 | 1b | 2 |
lpes | 中断 | 错误时停止 | 1a | 2 |
sbpa | 中断 | 设置绝对断电 | 20 | 4 |
sbpa | 中断 | 设置相对断电 | 21 | 4 |
mski | 中断 | 屏蔽中断 | 1c | 2 |
rsti | 中断 | 复位中断 | 1d | 2 |
lfil | 滤波器 | 装载轨迹线 | 1f | 2~10 |
udf | 滤波器 | 更新滤波器 | 04 | 0 |
ltrj | 轨迹 | 装载轨迹线 | 1f | 2~14 |
stt | 轨迹 | 开始运动 | 01 | 0 |
rdstat | 报告 | 读状态字节 | 无 | 1 |
rdsigs | 报告 | 读信号寄存器 | 0c | 2 |
rdip | 报告 | 读标志位置 | 09 | 4 |
rddp | 报告 | 读期望位置 | 08 | 4 |
rdrp | 报告 | 读实时位置 | 0a | 4 |
rddv | 报告 | 读期望速度 | 07 | 4 |
rdrv | 报告 | 读实时速度 | 0b | 2 |
rdsum | 报告 | 读积分和 | 0d | 2 |
lm628在神经元pid伺服系统中的应用
以89c52单片机为核心的伺服系统如图2所示,在该系统中89c52实现用户的接口,如显示、键盘等,并完成神经元的学习算法及在线调整lm628的参数。lm628作为伺服控制调节器,接收89c52单片机传送的控制指令及位置、速度、加速度三个运动参数和数字滤波器的参数kp,ki,kd,n(微分采样周期),同时lm628对码盘输出的信号进行处理,获得位置信号,经数字pid运算后,由dac端口以8bit方式输出,经数模转换器dac0800转换为模拟信号,再经lm12cl组成的放大电路输出,用于驱动电动机完成精密的运动。lm628的输出与误差的关系式如下式所示。
上式中,u(n)为第n个采样周期的控制输出;e(n)为第n个采样周期的位置误差;n为正常采样周期;n为微分采样周期;kp为比例增益;ki为积分比例增益;kd为微分比例增益。
比例增益kp提供了一个与位置误差成正比的输出,积分比例增益ki提供了随时间增长的输出,因此保证了静态位置误差为0。微分比例增益kd提供了与位置变化率成正比的输出,起到了超前控制的作用,减小了系统的超调,保证了系统的动态特性良好。式(1)与神经元pid算法的表达形式一致,因此在lm628中实现了神经元的状态量变换,状态量加权求和的功能,也就是实现了神经元pid伺服系统。
结束语
本文设计的基于lm628神经元pid伺服系统具有性能稳定可靠,成本低廉等一系列优点。系统的动态性能好,启动速度快,超调良好,具有较高的实用价值。
1. lm628 data sheet,1995
2. 陈粤初等,单片机应用系统设计与实践,北京航空航天大学出版社,1992
3. 王修才、刘祖望,单片机接口技术,复旦大学出版社,1995
评论