定时器之编码器模式

news2025/1/4 20:04:15

1.什么是编码器

编码器(encoder)是将信号或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。编码器把角位移或直线位移转换成电信号,前者称为码盘,后者称为码尺。

2.分类

按照读出方式编码器可以分为接触式和非接触式两种;按照工作原理编码器可分为增量式(光编)和绝对式(磁编)两类。增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。绝对式编码器的每一个位置对应一个确定的数字码,因此它的示值只与测量的起始和终止位置有关,而与测量的中间过程无关。

1.光电编码器(增量式编码器):

 增量式编码器:增量式编码器通常有3个信号输出,分别为A相、B相、Z相(有些也标称为C相)输出,A相与B相之间相互延迟1/4周期(90度)的脉冲输出,根据延迟关系可以区别正反转,而且通过取A相、B相的上升和下降沿可以进行2或4倍频;Z相为单圈脉冲,即每圈发出一个脉冲。 增量测量法的光栅由周期性栅条组成。位置信息通过计算自某点开始的增量数(测量步距数)获得。由于必须用绝对参考点确定位置值,因此圆光栅码盘还有一个参考点轨。将位移转换成周期性的电信号,再把这个电信号转变成计数脉冲,用脉冲的个数表示位移的大小。

 当A相的上升沿B相对应是低电平就是正转, 当A相的上升沿B相对应是高电平就是反 转,

2.磁编码器(绝对式编码器):

绝对式编码器:就是对应一圈,每个基准的角度发出一个唯一与该角度对应二进制的数值,通过外部记圈器件可以进行多个位置的记录和测量。 通过读取编码盘上的二进制的编码信息来表示绝对位置信息的。 编码盘是按照一定的编码形式制成的圆盘。如中a)是二进制的编码盘,b)是格雷码编制,图中空白部分是透光的,用“0”来表示;涂黑的部分是不透光的,用“1”来表示。通常将组成编码的圈称为码道,每个码道表示二进制数的一位,其中最外侧的是最低位,最里侧的是最高位。如果编码盘有4个码道,可形成16个二进制数,因此就将圆盘划分16个扇区,每个扇区对应一个4位二进制数,如0000、0001、…、1111。

格雷码说明:于制造和安装精度的影响,码盘回转在交替码段过程中会产生读数误差,该误差可用格雷码盘形式避免,该盘特点:任意相邻的两个代码间只有一位代码变化。 编码器通电时就可立即得到位置值并随时供后续信号处理电子电路读取。无需移动轴执行参考点回零操作。绝对位置信息来自圆光栅码盘,它由一系列绝对码组成。单独的增量刻轨信号通过细分生成位置值,同时也能生成供选用的增量信号。 单圈编码器的绝对位置值信息每转一圈重复一次。多圈编码器也能区分每圈的位置值。

3.增量式编码器和绝对式编码器区别

在增量编码器的情况下,位置是从零位标记开始计算的脉冲数量确定的;而绝对型编码器的位置是由输出代码的读数确定的,在一圈里,每个位置的输出代码的读数是唯一的,因此当电源断开时,绝对型编码器并不与实际的位置分离。如果电源再次接通,那么位置读数仍是当前的、有效的,不像增量编码器那样,必须去寻找零位标记。

 3.编码器几个重要概念:

1.分辨率:编码器的轴每转一圈所输出的脉冲数。编码器以每旋转360度提供多少的通或暗刻线称为分辨率,也称解析分度、或直接称多少线,一般在每转分度5~10000线。

2.最大响应频率:编码器在1秒钟内能响应的最大脉冲数。其公式为: 最高响应频率(Hz) =  编码器分辨率 × 轴的转速(r/min)/60  另称PPS

3.最大转速:是指编码器机械系统能够承受的最高转速。

4.绝对编码器信号传输方式:并行、串行输出或总线型输出。输出电路与增量编码器相似,有集电极开路PNP、NPN型、差分驱动、推挽式。

增量式编码器信号接口:由于A、B两相相差90度,可通过比较A相在前还是B相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。 单相(线)连接,单端信号,用于单方向计数,单方向测速。 A、B两相连接,单端信号,用于正反向计数、判断正反向和测速。 A、B、Z三相连接,单端信号,用于带参考位修正的位置测量。 A、A-,B、B-,Z、Z-连接,差分信号,由于带有对称负信号的连接,电流对于电缆贡献的电磁场为0,衰减最小,抗干扰最佳,可传输较远的距离。

4.STM32的编码器接口:

高级控制定时器和通用定时器有专用编码器接口模式 两个输入TI1和TI2被用来作为编码器的接口,设置TIMx_SMCR寄存器中SMS=001,则计数器只在TI2的边沿计数;设置SMS=010,只在TI1的边沿计数;设置SMS=011,则计数器同时在TI1和TI2边沿计数。 通过设置TIMx_CCER寄存器中的CC1P和CC2P位,可以选择TI1和TI2极性;结合SMS位控制,可以实现2、4倍频检测。CC1NP和CC2NP必须保持低电平。 如果需要,还可以对输入滤波器编程。

TI1和TI2两个输入用于连接增量编码器。如果使能计数器(在TIMx_CR1寄存器的CEN位中写入“1”),则计数器的时钟由TI1FP1或TI2FP2上的每次有效信号转换提供。TI1FP1和TI2FP2是进行输入滤波器和极性选择后TI1和TI2的信号,如果不进行滤波和反相,则TI1FP1=TI1,TI2FP2=TI2。将根据两个输入的信号转换序列,产生计数脉冲和方向信号。

根 据该信号转换序列,计数器相应递增或递减计数,同时硬件对TIMx_CR1寄存器的DIR位进行相应修改。任何输入(TI1或TI2)发生信号转换时,都会计算DIR位,无论计数器是仅在TI1或TI2边沿处计数,还是同时在TI1和TI2处计数。 编码器接口只能是TI1和TI2,TI3和TI4是不具备编码器功能的。

 编码器接口模式就相当于带有方向选择的外部时钟。这意味着,计数器仅在0到 TIMx_ARR寄存器中的自动重载值之间进行连续计数(根据具体方向,从0递增计数到ARR,或从ARR递减计数到0)。因此,在启动前必须先配置TIMx_ARR。同样,捕获、比较、预分频器、重复计数器及触发输出功能继续正常工作。编码器模式和外部时钟模式2不兼容,因此不能同时选择。

 在此模式下,计数器会根据增量编码器的速度和方向自动进行修改,因此,其内容始终表示编码器的位置。计数方向对应于所连传感器的旋转方向。

外部增量编码器可直接与MCU相连,无需外部接口逻辑。不过,通常使用比较器将编码器的差分输出转换为数字信号。这样大幅提高了抗噪声性能。用于指示机械零位的第三个编码器输出可与外部中断输入相连,用以触发计数器复位。

 5.实例

实例:显示了计数信号的产生和方向控制。它还显示了当选择了双边沿时,输入抖动是如何被抑制的;抖动可能会在传感器的位置靠近一个转换点时产生。

配置如下:

1。CC1S=“01”(TIMx_CCMR1寄存器,TI1FP1映射到TI1上)。 CC2S=“01”(TIMx_CCMR1寄存器,TI2FP2映射到TI2上)。

2.CC1P=“0”,CC1NP=“0”,且IC1F=“0000”(TIMx_CCER寄存器,TI1FP1未反相,TI1FP1=TI1)。

3.CC2P=“0”,CC2NP=“0”,且IC2F=“0000”(TIMx_CCER寄存器,TI2FP2未反相,TI2FP2=TI2)。

4.SMS=“011”(TIMx_SMCR寄存器,两个输入在上升沿和下降沿均有效)。

5.CEN=“1”(TIMx_CR1寄存器,使能计数器)。

 就算从正转到反转或者反转到正转产生的抖动对于计数是不会有影响的。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++学习笔记(面向对象部分开始6500字复习总结)

函数重载 1.对象属性 对象方法 和 类属性 类方法 2.const函数read only,不会修改任何数据 3.class默认private,struct默认public 4.!!!!C编译器优化!!!《个人理解》当…

单细胞分析:数据整合(九)

导读 本文将学习跨条件执行单细胞整合,以识别彼此相似的细胞。 1. 目标 跨条件对齐相同的细胞类型。2. 挑战 对齐相似细胞类型的细胞,这样就不会因为样本、条件、模式或批次之间的差异而在后续分析中进行聚类。 3. 推荐 建议先不整合分析,再决…

2020下半年软件设计师上午题错题总结

2020下半年 1、以下关于两个浮点数相加运算的叙述中,正确的是 (3) 。 A. 首先进行对阶,阶码大的向阶码小的对齐 B. 首先进行对阶,阶码小的向阶码大的对齐 C. 不需要对阶,直接将尾数相加 D. 不需要对阶…

[附源码]java毕业设计网上购物商城

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

33.nacos客户端读取多配置文件实例(springcloud)

1.配置文件的读取方式【重点】nacos 配置中心通过 namespace、dataId 和 group 来唯一确定一条配置。 Namespace:即命名空间。默认的命名空间为 public,我们可以在 Nacos 控制台中新建命名空间;dataId:即配置文件名称 Group &…

比 O(nlog(n)) 做得更好——创造合适的条件

我们可以比 O(nlog(n)) 更快地排序。 长按关注《Python学研大本营》,加入读者群,分享更多精彩 扫码关注《Python学研大本营》,加入读者群,分享更多精彩 介绍 我将介绍一种我称之为 groupSort 的排序方法。我没有直接解决排序问题…

基于小波变换编码的纹理图像分割

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 我们使用11或13维特征向量表示图像中的每个像素。两个特征用于表示像素之间的空间关系;由图像尺寸规格化的x和y像素坐标。对于灰度图像,一个特征是低通表示&#…

Python编程从入门到实践 第十一章:测试代码 练习答案记录

Python编程从入门到实践 第十一章:测试代码 练习答案记录 练习题导航Python编程从入门到实践 第十一章:测试代码 练习答案记录11.1 测试函数11.1.1 单元测试和测试用例11.1.2 可通过的测试11.1.3 未通过的测试11.1.4 测试未通过时怎么办11.1.5 添加新测试…

Flutter/Dart 中的 extension 方法

Flutter Dart 中的 extension 方法 前言 我们将讨论 extension 方法如何对我们有用,以及为什么您的代码因为它们而变得更加精确和可读的原因。 简介 在本文中,我们将学习 Dart 中的 extension 方法。也许你想知道那是什么,它是如何工作的&…

HIve数仓新零售项目DWS层的构建(Full join)模型

HIve数仓新零售项目 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kaf…

全自动调节灯光强度的实现(仿真+程序+文档)

目 录 摘 要 I Abstract II 绪论 1 1.1 选题背景及意义 1 1.2 国内外研究现状 1 1.3 研究主要内容 3图书馆学习桌台灯智能控制系统简介与方案分析 4 2.1 大学图书馆照明控制现状 4 2.2 图书馆学习桌台灯智能控制系统简介 4 2.3 系统控制方案分析 4 2.4 本章小节 5系统硬件设计…

JavaScript练手小技巧:我破解了原神官网全屏滚动的秘密

这个标题有点夺人眼球,哈啊哈~骗点击率的。 “原神”官网当真的做的很漂亮,虽然我没玩过这个游戏,但是禁不住喜欢这个网站啊。 https://ys.mihoyo.com/ 最近居家教学上网课。除了上课,实在不想做学校安排的其它任务&#xff0c…

热量衡算习题课

第一部分 --- 传热计算综合例题 1.qm是质量流量,T1,2和 t1,2对应的是热流体和冷流体分别在管道进口和出口的温度 2.吊塔tm是传热温差 3.α1是热流体的对流传热系数,α2是冷流体的对流传热系数,K是整个对流传热过程的总的传热系…

【Linux】在Xilinx平台上实现UVC Gadget(2)- 解决dwc3驱动bug

【Linux】在Xilinx平台上实现UVC Gadget(2)- 解决dwc3驱动bug一、bug描述二、具体修改方法1. 找到内核源码位置并复制到其他目录2. Petalinux里面设置使用自定义内核源码1) 选第2个Linux Components Selection2) 选linux-kernel,回车&#xf…

【笔试题】【day22】

文章目录第一题(循环队列的元素个数)第二题(二叉排序树插入规则)第三题(线性探测的平均查找长度)第四题(关键字比较次数与初始序列无关的)第一题(循环队列的元素个数&…

m短波宽带通信系统的信道建模matlab仿真

目录 1.算法概述 1.1 Watterson信道模型理论简介 1.2 Nakagami信道模型 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 宽带短波信道的研究是设计宽带大容量短波通信的基础,但是传统的短波信道的研究仅限于窄带信号传输,这已经…

论文阅读-Whisper语音识别(OpenAI)

一、论文信息 论文名称:Robust Speech Recognition via Large-Scale Weak Supervision 代码地址:https://github.com/openai/whisper 官方博客:https://openai.com/blog/whisper 作者团队:OpenAI 二、介绍 Whisper是一个通用…

HAProxy实现负载均衡

目录 一、HAProxy介绍 二、环境准备 三、实验拓扑 四、HAProxy部署 五、配置HAProxy状态页面 一、HAProxy介绍 ha-proxy是一款高性能的负载均衡软件,主要是做7层负载均衡,也可以做4层负载均衡。因为其专注于负载均衡这一些事情,因此与ng…

8、如何使用FactoryBean向Spring容器中注册bean?

📫作者简介:zhz小白 公众号:小白的Java进阶之路 专业技能: 1、Java基础,并精通多线程的开发,熟悉JVM原理 2、熟悉Java基础,并精通多线程的开发,熟悉JVM原理,具备⼀定的线…

openEuler快速入门-openEuler命令行基础操作

系列文章目录 第一章 openEuler快速入门(一)-openEuler操作系统介绍 文章目录系列文章目录前言一、shell是什么二、Linux命令行操作技巧三、基础命令3.1、Linux命令分类3.2、目录和文件3.2.1 相对路径和绝对路径3.2.2 处理目录的常用命令ls:cd:pwd&…