采用 FPGA 将绝对位置数据转换为正交编码脉冲的设计
2010-12-18 11:40:57
来源:《半导体器件应用》2009年03月刊
点击:2243
1引言
随着近年来绝对式编码器发展迅速,越来越多性价比较高的高精度绝对式编码器正应用于伺服电机当中,而传统的全闭环数控系统接收的是装备在伺服电机上的增量式编码器的正交编码脉冲信号。因此装备在伺服电机上的绝对式编码器欲与传统的全闭环数控系统通信,则需要将绝对式编码器的绝对位置数据转换为正交编码脉冲。本文将介绍如何使用FPGA将绝对式编码器的绝对位置数据转换为正交编码脉冲A、B信号和零点Z信号。
2 硬件设计
本设计硬件主要由FPGA、存储器、有源晶振、差分驱动电路、MAX485电路、绝对式编码器接口、JTAG接口和DSP接口等电路组成,如图1所示。
2.1 FPGA
FPGA芯片在本硬件电路中十分重要,它不仅是实现了控制MAX485与绝对式编码器通信,读取绝对位置数据,而且更重要的是实现了将绝对式编码器的绝对位置数据转换为正交编码脉冲的功能。FPGA采用ALTER公司推出的EP1C3T144C8,此芯片属于ALTER公司推出的Cyclong系列,Cyclong系列成本低,功耗小,内部自带有一个锁相环,可分别倍频出3种不同的频率。EP1C3T144C8有2910个逻辑单元数,芯片的管脚数目为144个,其中可用的I/O口有104个,因此该芯片的资源已经满足需要。
2.2 存储器
存储器采用EPCS1芯片,主要用于存储FPGA软件代码,因为FPGA芯片EP1C3T144C8只有内部RAM无内部FLASH,掉电以后软件代码会消失,所以需要外置FLASH存储器来存储软件代码。当系统上电时FPGA会自动向外置存储芯片读取软件代码到FPGA内部RAM中,并重新布线生成各个逻辑电路使FPGA开始工作,整个读取和重新布线的时间只花几十毫秒,因此对整个系统没有任何影响。
2.3 有源晶振
有源晶振主要是为FPGA提供20MHz基准时钟。在20MHz基准时钟下产生2.5M波特率与绝对式编码器进行通信,FPGA使用内部锁相环将20MHz的时钟倍频产生100MHz时钟供FPGA内部逻辑产生正交编码脉冲转换使用,有源晶振需要电源提供3.3V的直流电压。
2.4 差分驱动电路
差分驱动电路主要采用的芯片是AM26LS31,其主要作用是将FPGA发来的正交编码脉冲A、B和零点Z信号转变为差分信号发给全闭环数控系统。
2.5 MAX485电路
MAX485芯片用于数据电平与差分信号的转换,它是FPGA与绝对式编码器通信的桥梁。
2.6 绝对式编码器接口
绝对式编码器接口是一个连接安装在伺服电机上的绝对式编码器的端口。
2.7 JTAG接口
FPGA和存储器编程下载接口电路(JTAG接口)主要用于下载软件代码到FPGA或存储器里。
2.8 DSP接口
DSP接口电路用于与FPGA并行通信,读取存放在FPGA内存中的编码器位置数据和其他信息。
3 软件设计
本软件设计核心部分在于如何将绝对式编码器的绝对位置数据转换为正交编码脉冲A、B信号和零点Z信号。软件设计分两个部分的工作,一是算法设计,二是软件编写。
3.1 算法设计
算法设计是整个软件设计最核心部分,装在伺服电机上的绝对式编码器转送给FPGA的数据是编码器的轴承的绝对位置值,要把它转换成增量式的正交编码脉冲,要分几个部分来完成:①将本次读到的位置数据x2与上一次读到的位置数据x1比较,即本次与上一次的位置偏差Δx=x2-x1;②放大位置偏差,即放大后的位置偏差Δx=Δx×D1,D1由绝对式编码器单圈需要输出脉冲数除以一个公约数得到,这个公约数C1是绝对式编码器单圈的最大位置值和绝对式编码器单圈需要输出脉冲数的公约数;③根据绝对式编码器单圈需要输出脉冲数取放大后的位置偏差Δx的高位数作为本次需要发出的脉冲数p1,去掉位置偏差高位数后的低位数将作为余数r1,加到下一次放大后的位置偏差Δx;④根据位置偏差Δx的正数或负数,来决定输出正交编码脉冲A信号超前B信号90°还是B信号超前A信号90°;⑤算出输出每个脉冲所需要的时间,即脉冲周期t1,t1=T÷p1,T为读取编码器位置数据的周期(一般为固定的周期);⑥零点Z信号是根据位置偏差Δx绝对值的大小来得出的,当位置偏差Δx的绝对值大于装有绝对式编码器电机的最高转速所产生的位置偏差Δxmax时,则说明绝对式编码器转轴已经过了零点,此时应该马上输出零点Z信号,一般取位置偏差大于Δxmax的2倍再输出零点Z信号。
3.2 软件编写
使用VHDL语言来编写FPGA软件。首先编写出读取绝对式编码器的位置数据程序,再根据以上3.1所述算法设计方案编写程序,计算出所需的各个数据,然后将算出的需要发出的脉冲数p1和脉冲周期t1送至正交编码脉冲模块(此模块由FPGA软件实现),正交编码脉冲模块采用100MHz时钟对读取编码器位置数据的周期和需要发出脉冲周期t1进行计数,要求将脉冲数p1在读取编码器位置数据的周期内全部转变为正交编码脉冲并全部发送至差分驱动电路。
4 结论
本设计经过测试,可以将绝对式编码器的位置数据转换为正交编码脉冲A、B信号和零点信号Z,转换出的正交编码脉冲数准确无误不会多出也不会减少,而且可以将17位的绝对式编码器位置数据任意转换为32~131072个正交编码脉冲数。将本设计集成到我公司的高精高速伺服单元中,可与我公司的GSK983系统和GSK928GE系统构成全闭环控制,可实现2500线至32768线的精度,在机床上加工精度明显提高,特别是与我公司的GSK928GE系统配套,可以与安川伺服单元配套安川16位精度的伺服电机相媲美。
参考文献
[1] 侯伯亭,顾新.VHDL硬件描述语言与数字逻辑电路设计.西安:西安电子科技大学出版社,1998.
[2] 徐志军,徐光辉.CPLD/FPGA的开发与应用.北京:电子工业出版社,2002.
[3] TS5667N120 spec, SA35[1].TIF(多摩川17位绝对式编码器电子文档).
随着近年来绝对式编码器发展迅速,越来越多性价比较高的高精度绝对式编码器正应用于伺服电机当中,而传统的全闭环数控系统接收的是装备在伺服电机上的增量式编码器的正交编码脉冲信号。因此装备在伺服电机上的绝对式编码器欲与传统的全闭环数控系统通信,则需要将绝对式编码器的绝对位置数据转换为正交编码脉冲。本文将介绍如何使用FPGA将绝对式编码器的绝对位置数据转换为正交编码脉冲A、B信号和零点Z信号。
2 硬件设计
本设计硬件主要由FPGA、存储器、有源晶振、差分驱动电路、MAX485电路、绝对式编码器接口、JTAG接口和DSP接口等电路组成,如图1所示。
2.1 FPGA
FPGA芯片在本硬件电路中十分重要,它不仅是实现了控制MAX485与绝对式编码器通信,读取绝对位置数据,而且更重要的是实现了将绝对式编码器的绝对位置数据转换为正交编码脉冲的功能。FPGA采用ALTER公司推出的EP1C3T144C8,此芯片属于ALTER公司推出的Cyclong系列,Cyclong系列成本低,功耗小,内部自带有一个锁相环,可分别倍频出3种不同的频率。EP1C3T144C8有2910个逻辑单元数,芯片的管脚数目为144个,其中可用的I/O口有104个,因此该芯片的资源已经满足需要。
2.2 存储器
存储器采用EPCS1芯片,主要用于存储FPGA软件代码,因为FPGA芯片EP1C3T144C8只有内部RAM无内部FLASH,掉电以后软件代码会消失,所以需要外置FLASH存储器来存储软件代码。当系统上电时FPGA会自动向外置存储芯片读取软件代码到FPGA内部RAM中,并重新布线生成各个逻辑电路使FPGA开始工作,整个读取和重新布线的时间只花几十毫秒,因此对整个系统没有任何影响。
2.3 有源晶振
有源晶振主要是为FPGA提供20MHz基准时钟。在20MHz基准时钟下产生2.5M波特率与绝对式编码器进行通信,FPGA使用内部锁相环将20MHz的时钟倍频产生100MHz时钟供FPGA内部逻辑产生正交编码脉冲转换使用,有源晶振需要电源提供3.3V的直流电压。
2.4 差分驱动电路
差分驱动电路主要采用的芯片是AM26LS31,其主要作用是将FPGA发来的正交编码脉冲A、B和零点Z信号转变为差分信号发给全闭环数控系统。
2.5 MAX485电路
MAX485芯片用于数据电平与差分信号的转换,它是FPGA与绝对式编码器通信的桥梁。
2.6 绝对式编码器接口
绝对式编码器接口是一个连接安装在伺服电机上的绝对式编码器的端口。
2.7 JTAG接口
FPGA和存储器编程下载接口电路(JTAG接口)主要用于下载软件代码到FPGA或存储器里。
2.8 DSP接口
DSP接口电路用于与FPGA并行通信,读取存放在FPGA内存中的编码器位置数据和其他信息。
3 软件设计
本软件设计核心部分在于如何将绝对式编码器的绝对位置数据转换为正交编码脉冲A、B信号和零点Z信号。软件设计分两个部分的工作,一是算法设计,二是软件编写。
3.1 算法设计
算法设计是整个软件设计最核心部分,装在伺服电机上的绝对式编码器转送给FPGA的数据是编码器的轴承的绝对位置值,要把它转换成增量式的正交编码脉冲,要分几个部分来完成:①将本次读到的位置数据x2与上一次读到的位置数据x1比较,即本次与上一次的位置偏差Δx=x2-x1;②放大位置偏差,即放大后的位置偏差Δx=Δx×D1,D1由绝对式编码器单圈需要输出脉冲数除以一个公约数得到,这个公约数C1是绝对式编码器单圈的最大位置值和绝对式编码器单圈需要输出脉冲数的公约数;③根据绝对式编码器单圈需要输出脉冲数取放大后的位置偏差Δx的高位数作为本次需要发出的脉冲数p1,去掉位置偏差高位数后的低位数将作为余数r1,加到下一次放大后的位置偏差Δx;④根据位置偏差Δx的正数或负数,来决定输出正交编码脉冲A信号超前B信号90°还是B信号超前A信号90°;⑤算出输出每个脉冲所需要的时间,即脉冲周期t1,t1=T÷p1,T为读取编码器位置数据的周期(一般为固定的周期);⑥零点Z信号是根据位置偏差Δx绝对值的大小来得出的,当位置偏差Δx的绝对值大于装有绝对式编码器电机的最高转速所产生的位置偏差Δxmax时,则说明绝对式编码器转轴已经过了零点,此时应该马上输出零点Z信号,一般取位置偏差大于Δxmax的2倍再输出零点Z信号。
3.2 软件编写
使用VHDL语言来编写FPGA软件。首先编写出读取绝对式编码器的位置数据程序,再根据以上3.1所述算法设计方案编写程序,计算出所需的各个数据,然后将算出的需要发出的脉冲数p1和脉冲周期t1送至正交编码脉冲模块(此模块由FPGA软件实现),正交编码脉冲模块采用100MHz时钟对读取编码器位置数据的周期和需要发出脉冲周期t1进行计数,要求将脉冲数p1在读取编码器位置数据的周期内全部转变为正交编码脉冲并全部发送至差分驱动电路。
4 结论
本设计经过测试,可以将绝对式编码器的位置数据转换为正交编码脉冲A、B信号和零点信号Z,转换出的正交编码脉冲数准确无误不会多出也不会减少,而且可以将17位的绝对式编码器位置数据任意转换为32~131072个正交编码脉冲数。将本设计集成到我公司的高精高速伺服单元中,可与我公司的GSK983系统和GSK928GE系统构成全闭环控制,可实现2500线至32768线的精度,在机床上加工精度明显提高,特别是与我公司的GSK928GE系统配套,可以与安川伺服单元配套安川16位精度的伺服电机相媲美。
参考文献
[1] 侯伯亭,顾新.VHDL硬件描述语言与数字逻辑电路设计.西安:西安电子科技大学出版社,1998.
[2] 徐志军,徐光辉.CPLD/FPGA的开发与应用.北京:电子工业出版社,2002.
[3] TS5667N120 spec, SA35[1].TIF(多摩川17位绝对式编码器电子文档).
本文为哔哥哔特资讯原创文章,未经允许和授权,不得转载,否则将严格追究法律责任;
暂无评论