DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 460|回复: 0
打印 上一主题 下一主题

基于NiosII的光栅细分电路系统设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 14:01:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                      1 概述
  目前,光栅的电子细分技术是提高光栅位移传感器分辨率的主要途径,可分为软件细分法和硬件细分法。软件细分法虽然可以达到较高的细分数,但由于受到A/D器件转换精度和转换时间的限制,一定程度上影响了测量的实时性。硬件细分法一般用在细分数不太高的场合,而且随着细分数的提高,电路会变得更加复杂。本文使用专用插值芯片(IC-NV)对前端输出的正交信号进行插值细分,利用FPGA对插值细分后的信号进行二次细分;同时利用QuartusII中的Component Editor工具设计了二次细分辨向组件、测速组件及LCD控制组件,并通过Avalon总线与NiosII软核处理器进行连接,实现了系统的集成和模块化。
  2 莫尔条纹及四倍频直接细分的原理
  莫尔条纹的电子细分是提高光栅位移传感器分辨率的主要途径之一。莫尔条纹是光栅位移传感器工作的基础。莫尔条纹间距近似为光栅栅距的1/θ倍(θ为主副光栅之间的夹角),并且方向近似与栅线方向垂直。当其中任一光栅沿垂直于刻线方向移动一个栅距时,莫尔条纹就在栅线方向上移动条纹间距,因此可以通过检测莫尔条纹的移动来计算指示光栅移动的距离。
  对于横向莫尔条纹,为了判定指示光栅的位移方向进行可逆计数以及削弱直流电平漂移对测量精度的影响,可在一个莫尔条纹内等距放置4个光电收发元件。当条纹依次扫过这4个光电收发元件时,便会产生4路相位分别为0°、90°、180°、270°的信号,通过运放差动放大电路即可实现四细分。但是,实际应用中要实现4个光电收发元件的等距排列是非常困难的。目前,大多数的光栅位移传感器都采用光闸莫尔条纹来实现四细分,如图1所示。






  3.2 光电转换及前置放大电路
  光电二极管的光电流一般为μA级别,而放大电路中反馈电阻一般采用MΩ量级的电阻。因此,运放的输入偏置电流的影响不能忽略,要选用输入偏置电流小的FET输入型运算放大器。本文选用TI公司的4路LinCMOS运放TLC279CN。它具有输入失调电压低、输入电阻高、噪声低的特点,25°时的典型输人偏置电流为60 pA,远小于光电二极管的光电流。光电二极管可以工作在零偏置或反向偏置方式。在反向偏置方式下,光电二极管可以实现较高的切换速度;但要以牺牲线性为代价,并且在无光条件下仍有很小的电流,称为“暗电流”。零偏置电路受暗电流的影响较小,对于微小照度,可以保持照度与输出成线性比例关系。
  图3采用反向并接光电二级管的方式。该方式可以有效地削弱直流电平和偶次谐波。由于后端插值芯片单端输入时对输入信号直流电平和峰峰值有限制,因此在正相输入端设置可变电阻调节输出的直流电平至2.5 V,同时通过调节反馈电阻使输出电压的峰峰值为1 V。






  3.4? 差值电路的实现
  IC-NV是IC-HAUS公司的单片A/D转换芯片,能够对输入的sinθ/cosθ信号进行插值,从而输出增量的正交编码信号。IC-NV芯片的内部结构及外围电路如图5所示。其内部集成了高速的比较器和毛刺滤波器,以保证信号的高速转换和完整性;输入/输出引脚具有ESD防护,且与TTL、CMOS电平兼容,接口简单可靠。






  使用SOPC Builder中的Component Editor工具添加相应的硬件描述文件、信号接口和软件文件,便可以方便地将用户自定义组件集成到系统元件库中去。为了实现NiosII处理器与自定义组件之间交换数据,首先需要定义一组寄存器,并对寄存器进行地址分配,同时根据Avalon总线的时序对寄存器进行存取操作。本组件中定义的脉冲计数寄存器Countnum_reg[31:0]和方向寄存器Dir_reg均为只读寄存器,且相对地址分别为0和1。
  任务逻辑设计是自定义组件设计过程中最重要的部分,主要实现插值芯片输出正交信号的四细分,同时更新Countnum_reg和Dir_reg的值。如图7所示,正交信号A2/B2的相位关系随着光栅位移传感器运动方向的不同而改变。当光栅读数头正向移动时,A2相信号超前于B2相信号90°,A2/B2两信号的电平变化规律为00→10→11→01→00。当光栅读数头反向移动时,A2相信号滞后于B2相信号90°,A2/B2两信号的电平变化规律为00→01→11→10→00。这样,就可以通过判断电平之间的状态变化来决定是否对计数器进行操作。当状态变化为00→10→11→01→00时,对Countnum_reg进行加1操作,并将Dir_reg置1;而当变化为00→01→11→10→00时,则对Countnum_reg进行减1操作并将Dir_reg置0。若状态保持不变,则计数器和方向值保持不变。其余状态之间的变化,规定为无效。






  若记录相邻两次Countnum_reg的差值,便可通过以下的公式计算光栅读数头移动的距离:





  式中:d为光栅栅距,f为插值芯片输出正交信号的频率,N为插值芯片的插值因子,n为t时间内正交信号的个数。由此可知,只要测出频率f即可求得移动速度。
  寄存器描述文件中定义了4个寄存器,如表1所列。





  该方法可能会产生±1个标准脉冲的测量误差,由于系统标准频率与待测正交信号相比为高频信号,因此能实现高精度的频率测量。
  4.4 LCD控制组件的设计
  本系统中使用的LCD为128×64的点阵黑白屏,其内嵌控制器为KS0107/KS0108。该液晶模块的D/I引脚用于指示模块处理数据/命令;R/W引脚控制读/写操作;EN引脚为使能信号,CS1/CS2为屏幕的左右半屏控制器片选信号。
  本系统在NiosII IDE开发环境中设计应用程序,其程序流程如图9所示。






  5? 结? 论
  ①与传统的分立元件细分电路相比,本系统中使用了专用的插值芯片IC-NV,不但提高了系统集成度,而且在简化PCB设计的同时提高了细分数。NiosII嵌入式处理器使用,既提高了系统性能,又降低了费用。利用Component Editor工具设计的二次细分辨向模块、测速模块及LCD控制模块,可以随时根据需要更改驱动程序并可重复利用,实现了系统的集成和模块化。
  ②仿真结果表明,该系统设计简单灵活,稳定性高,实时性强,可通过调节插值芯片的插值数实现高达64倍的细分。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-7-22 16:10 , 耗时 0.111600 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表