光栅莫尔信号四倍频细分电路模块的设计与仿真研究

news/2024/5/5 21:05:43/文章来源:https://blog.csdn.net/Ablities/article/details/128124009

笔者电子信息专业硕士毕业,获得过多次电子设计大赛、大学生智能车、数学建模国奖,现就职于南京某半导体芯片公司,从事硬件研发,电路设计研究。对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验,共同互勉!全套资料领取扫描文末二维码


 温馨提示:学而不思则罔,思而不学则殆。实践是检验真理的唯一标准!

目录

1 四倍频电路设计原理

2 传统模拟细分电路

3 基于CPLD实现的光栅四细分、辨向电路及计数器的设计

3.1 CPLD芯片的选择

3.2 四细分与辨向电路

4 四倍频细分电路模块的仿真


光栅位移传感器是基于莫尔条纹测量的一种传感器,要提高其测量分辨率,对光栅输出信号进行细分处理是必要环节.在实际应用中,通常采用四倍频的方法提高定位精度.四倍频电路与判向电路设计为一个整体,称为四倍频及判向电路。能够实现四倍频的电路结构很多,但在应用中发现,由于某些四倍频电路的精度或稳定性不高,使传感器整体性能下降.作者在分析几种常见四倍频电路的基础上,针对不同的应用,设计了两种不同的四倍频电路实现方案,并对这两种方案的结构和使用方法进行了比较和仿真.

1 四倍频电路设计原理

光栅传感器输出两路相位相差为90的方波信号A和B.如图l所示,用A,B两相信号的脉冲数表示光栅走过的位移量,标志光栅分正向与反向移动.四倍频后的信号,经计数器计数后转化为相对位置。计数过程一般有两种实现方法:一是由微处理器内部定时计数器实现计数;二是由可逆计数器实现对正反向脉冲的计数.

 

光栅信号A,B有以下关系.

①当光栅正向移动时,光栅输出的A相信号的相位超前B相90,则在一个周期内,两相信号共有4次相对变化:00→10→11→01→00.这样,如果每发生一次变化,可逆计数器便实现一次加计数,一个周期内共可实现4次加计数,从而实现正转状态的四倍频计数.

②当光栅反向移动时,光栅输出的A相信号的相位滞后于B相信号90,则一个周期内两相信号也有4次相对变化:00→01→11→10→00.同理,如果每发生一次变化,可逆计数器便实现一次减计数,在一个周期内,共可实现4次减计数,就实现了反转

状态的四倍频计数.

③当线路受到干扰或出现故障时,可能出现其他状态转换过程,此时计数器不进行计数操作.

综合上述分析,可以作出处理模块状态转换图(见图2),其中“+”、“-”分别表示计数器加/减1,“0”表示计数器不动作.

 

2 传统模拟细分电路

传统的倍频计数电路如图3所示,它由光栅信号检测电路,辨向细分电路,位置计数电路3部分组成.光栅信号检测电路由光敏三极管和比较器LM339组成.来自光栅的莫尔条纹照射到光敏三极管Ta和Tb上,它们输出的电信号加到LM339的2个比较器的正输入端上,从LM339输出电压信号Ua,Ub整形后送到辨向电路中.芯片7495的数据输入端Dl接收Ua,D0接收Ub,接收脉冲由单片机的ALE端提供.然后信号经过与门Y1,Y2和或门E1,E2,E3组成的电路后,送到由2片74193串联组成的8位计数器.单片机通过P1口接收74193输出的8位数据,从而得到光栅的位置.

 采用上述设计方案,往往需要增加较多的可编程计数器,电路元器件众多、结构复杂、功耗增加、稳定性下降.

3 基于CPLD实现的光栅四细分、辨向电路及计数器的设计

采用CPLD实现光栅传感器信号的处理示意图如图4所示,即将图3中3个部分的模拟逻辑电路全部集成在一片CPLD芯片中,实现高集成化。由于工作现场的干扰信号使得光栅尺输出波形失真,所以将脉冲信号通过40106施密特触发器及RC滤波整形后再送入CPLD,由CPLD对脉冲信号计数和判向,并将数据送入内部寄存器.

 

3.1 CPLD芯片的选择

CPLD芯片选用ALTERA公司的MAX7000系列产品EPM7128S,该芯片具有高阻抗、电可擦、在系统编程等特点,可用门单元为2 500个,管脚间最大延迟为5μs工作电压为+5 V.仿真平台采用ALTERA公司的QUARTUSⅡ进行开发设计.

3.2 四细分与辨向电路

四细分与辨向模块逻辑电路如图5所示,采用10MB晶振产生全局时钟CLK,假设信号A超前于B时代表指示光栅朝某一方向移动,A滞后于B时表示光栅的反方向移动.A,B信号分别经第一级D触发器后变为A',B'信号,再经过第二级D触发器后变为A″,B″信号.D触发器对信号进行整形,消除了输入信号中的尖脉冲影响,在后续倍频电路中不再使用原始信号A,B,因而提高了系统的抗干扰性能.在四倍频辨向电路中,采用组合时序逻辑器件对A'A″,B'B″信号进行逻辑组合得到两路输出脉冲:当A超前于B时,ADD为加计数脉冲,MIMUS保持高电平;反之,当A滞后于B时,ADD保持高电平,MINUS为减计数脉冲.

对比图5和图2可以看出,新型设计方法使用的器件数较传统方法大大减少,所以模块功耗显著降低。系统布线在芯片内部实现,抗干扰性强。由于采用的是可编程逻辑器件,对于系统的修改和升级只需要修改相关的程序语句即可,不用重新设计硬件电路和制作印刷电路板,使得系统的升级和维护的便捷性大大提高。

4 四倍频细分电路模块的仿真

根据图2所示的状态转换图,利用硬件描述语言Verilog HDL描述该电路功能,编程思想为将A,B某一时刻的信号值的状态合并为状态的判断标志state,并放入寄存器prestate.当A,B任一状态发生变化时,state值即发生改变,将此时的state值与上一时刻的prestate进行比较,则能根据A,B两个脉冲的状态相对变化确定计数值db的加减,得出计数器输出值的加减标志.

仿真结果如图6所示.当信号A上跳沿超前于B时,计数值db进行正向计数;当A上跳沿滞后于B时,计数值db进行反向计数.即db将细分、辨向、计数集于一身,较好地实现了光栅细分功能.

比较图3和图5可以看出,用FPGA设计信号处理模块,设计过程和电路结构更加简洁。另外,在应用中需注意FPGA时钟周期应小于光栅信号脉冲的1/4.

 5 结论

①新型设计方法结构简单,集成度高,比传统设计方法所用器件数大大减少.

②集成化设计使系统功耗降低,抗干扰性增强.

③用Verilog HDL设计电路,改变电路结构只需修改程序即可,且系统维护和升级的便捷性提高.

关注回复【更多资料】海量嵌入式资料赠送

笔者电子信息专业硕士毕业,获得过多次电子设计大赛、大学生智能车、数学建模国奖,现就职于南京某半导体芯片公司,从事硬件研发,电路设计研究。对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验,共同互勉!     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_228480.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google单元测试框架gtest之官方sample笔记3--值参数化测试

1.7 sample7--接口测试 值参数不限定类型,也可以是类的引用,这就可以实现对类接口的测试,一个基类可以有多个继承类,那么可以测试不同的子类功能,但是只需要写一个测试用例,然后使用参数列表实现对每个子类…

天宇优配|GDR海外发行热情高 资本市场互联互通提速

圆桌评论:“对话交易所——上海,为中欧互联互通提速” “2022上海全球资产管理高峰论坛”11月29日在上海举办。在题为“对话交易所——上海,为中欧互联互通提速”的圆桌评论环节,来自全球各大证券交易所、证券公司、上市公司的多…

https加密解密过程二、名词解析及文件生成

https加密解密过程二、名词解析及文件生成 密钥仓库keystore文件 Keytool是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中 keystore文件的内容其实就是把私钥、公钥以及公钥对应的地址等信息输出为json格式的…

[附源码]Python计算机毕业设计Django二手书店设计论文

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

13.前端笔记-CSS-盒子样式应用(圆角、阴影)

1、圆角边框 border-radius属性,用于设置元素的外边框圆角 原理:(椭)圆和矩形的两条边相切(圆的半径就是length),形成圆角效果 属性: border-top-left-radius;左上 border-top-right-radius:右上 border…

一起学时序分析之建立/保持时间裕量

何为裕量? 裕量,英文名称叫做“Slack”。我们在Vivado实现后的报告中常常能看到这样一栏: 因为都是缩写,所以我们来解释一下前四栏的含义: WNS,即Worst Negative Slack,最差负时序裕量。这个表…

(四) 共享模型之管程【Monitor 概念】

一、Java 对象头(P75) 二、原理之 Monitor(锁) Monitor 被翻译为监视器或管程。 每个 Java 对象都可以关联一个 Monitor 对象,如果使用 synchronized 给对象上锁(重量级)之后,该对象头的 Mark Word 中就被设…

基于改进萤火虫算法的图像分割的应用(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

【信管2.4】项目运行环境与项目经理

项目运行环境与项目经理加餐加餐来了哦,今天的内容在 《信息系统项目管理师教程》 这本教材里是没有的,而且在 PMBOK 第五版中也是没有的。这部分内容是 PMBOK 第六版中新加的两个独立章节,不过内容不多,非常轻松,重点…

01 - 进阶操作系统(BIOS)

---- 整理自狄泰软件唐佐林老师课程 1. BIOS - Base input & Output system BIOS是上电后第一个运行的程序 BIOS首先检测硬件状态,检测通过后立即进行硬件初始化工作 BIOS会在内存中建立中断向量表(提供硬件访问的方法) BIOS最后将控制…

[附源码]计算机毕业设计JAVA校园飞毛腿系统

[附源码]计算机毕业设计JAVA校园飞毛腿系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis …

前后端分离项目的https加密解密过程二、名词解析及文件生成

前后端分离项目的https加密解密过程二、名词解析及文件生成 密钥仓库keystore文件 Keytool是一个Java数据证书的管理工具 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中 keystore文件的内容其实就是把私钥、公钥以及公钥对应的地址等信息…

【附源码】计算机毕业设计JAVA众筹平台网站

【附源码】计算机毕业设计JAVA众筹平台网站 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JAVA mybati…

leetcode:1579. 保证图可完全遍历【并查集思路】

目录题目截图题目分析ac code总结题目截图 题目分析 从删除比较难,考虑增加增加的过程中无用的边就可以删除考虑alice和bob各自的联通分量最后希望都是1,一开始都是n如果将两个独立的联通分量连起来了,那么连通分量个数减1这里很明显就是用并…

Kafka集群环境搭建及基本使用

前提条件 操作系统:CentOS7服务器:3台Java环境:JDK1.8。安装教程参考JDK1.8安装Zookeeper环境 搭建教程参考Zookeeper集群环境搭建及使用Kafka基础知识参考Kafka角色及功能概览 搭建步骤 下载 执行下载命令wget https://archive.apache.o…

全程软件自动化测试

软件自动化测试的概念 “什么是软件自动化测试?”也许很多人的回答是:“使用自动化测试工具或者编写自动化脚本来自动化测试软件”,还有一些权威网站,比如 WikiPedia 是这样定义的: “在软件测试中,自动化…

(三) 共享模型之管程【共享带来的问题】

一、共享带来的问题 1. 临界区 (1)一个程序运行多个线程本身是没有问题的 (2)问题出在多个线程访问共享资源 1️⃣多个线程读共享资源其实也没有问题 2️⃣在多个线程对共享资源读写操作时发送指令交错,就会出现问题 …

清朝盛衰的六个时间点!

清朝盛衰的整个过程经历了六个时间节点: 一六六一年﹙顺治十八年﹚是第一个时间节点。 正月初六夜半时分,顺治帝预感生命垂危,急命太监传呼麻勒吉与王熙两人赶赴养心殿。帝对王熙说:“朕出痘,势将不起,尔…

三、【react-redux】数据共享

文章目录1、优化项目结构2、添加一个新容器组件2.1、新项目结构2.2、CODE2.2.1、reduc/constant.js2.2.2、redux/actions/person.js2.2.3、redux/reducers/person.js2.2.4、redux/store.js2.2.5、Count.jsx2.2.6、Person.jsx2.3、Result3、总结本示例修改自 上一章 求和Demo 1、…

前端js传入Long类型精度丢失解决办法

目录 问题背景 解决过程 1.对比数据库数据 2.查询资料 解决方法 问题背景 在进行业务开发的 时候发现更新数据库中的一条数据没有成功,查看SQL日志发现SQL正常执行无错误信息,但是受影响行数为0,但是数据是从前端传过来的 ,一…