0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术EM9280与光电编码器的接口及应用简介

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-16 09:48 次阅读

增量式光电编码器是工业自动化领域最常用的转速测量传感器。针对转速测量的应用需求,我们在EM9280的硬件基础上,设计了相应的驱动程序并提供标准的流式驱动程序API,为客户应用程序增加转速测量功能提供了一种快速低成本的实现途径。本文主要介绍英创工控主板EM9280与增量式光电旋转编码器的软硬件接口

接口硬件说明

鉴于本应用主要是监测转速信号,因此只需要接入增量式光电旋转编码器的A、B两相脉冲信号即可。典型的A、B相信号的关系如下图所示:

上图的左面是A、B相在电机顺时针方向旋转时的波形,其特点是A相脉冲超前B相脉冲90º相位。而图的右边是点击逆时针旋转时的波形,此时B相超前A相90º相位。

一般说来,光电编码器的A、B相信号需要经过隔离及电平转换电路,方可接入EM9280的相应管脚。隔离整形后的A、B相输出信号必须是3.3V的TTL信号,与EM9280连接如下表所示:

光电编码器 EM9280管脚 简要说明
A相信号 GPIO23 3.3V TTL电平信号
B相信号 GPIO22 3.3V TTL电平信号

由于内部电路对A、B相信号进一步做了去抖动处理,因此要求输入信号频率不能高于5KHz,方能保证后续计数结果的正确。

从应用编程的角度看,光电编码器的基本指标包括:(1)每分钟最大转速,(2)每转输出的脉冲数,也就是光电编码器的分辨率。

接口软件说明

光电编码转速测量的驱动程序已内置在EM9280的内核中,其设备文件名为”ROT1:”。当打开该设备文件后,EM9280的对应管脚(GPIO23和GPIO22)将自动转为相应的脉冲输入状态。当然这两个管脚不能再作为通用GPIO或I2C接口使用。

当调用CreateFile(_T(”ROT1:”), ….)打开设备文件后,可通过WriteFile设置光电编码器的参数,参数包含在以下数据结构:

typedef struct _ROTARY_ENCODER_INFO
{
BYTE ucSize; // 填入本结构的字节数 = 21
DWORD dwMaxRotary; // 正常工况每分钟旋转圈数,单位为rpm
DWORD dwResolution; // 每转输出的脉冲数
DWORD dwAlarmRotaryHigh; // 转速报警高限值,单位rpm,= 0: 禁止该功能
DWORD dwAlarmRotaryLow; // 转速报警低限值,单位rpm,= 0: 禁止该功能
DWORD dwPeriod; // 采样周期,单位为ms,= 0:自动设置采样周期
} ROTARY_ENCODER_INFO, *PROTARY_ENCODER_INFO;

在上述数据结构中,dwMaxRotary设置的上限是编码器的最高转速,也可根据实际应用设置为正常工况的最高转速。本驱动程序支持的采样间隔共10档,分别为1ms、2ms、5ms、10ms、20ms、50ms、100ms、200ms、500ms、1000ms。采样周期与编码器参数的关系为:

N =(dwMaxRotary×dwResolution / 60)× dwPeriod / 1000

上式中N表示在一个采样间隔所采集的脉冲数,当N为正时,表示顺时针旋转,N为负数时,表示逆时针旋转。在本驱动程序中,采集输出的数据即为N,数据类型为带符号的16-bit整型量。具体设置并启动测量的API调用为:

ROTARY_ENCODER_INFO Info; //定义结构对象
DWORD dwReturnWritten; //实际写入的字节数
//填写数据结构参数
Info.ucSize = sizeof(ROTARY_ENCODER_INFO);
// … …
WriteFile(hROT, &Info, sizeof(ROTARY_ENCODER_INFO), &dwReturnWritten, 0);

上面调用中的hROT是CreateFile返回的文件句柄。若dwPeriod设置为自动(= 0),则可通过以下API读取驱动实际使用的采样周期:

ReadFile(hROT, &Info, sizeof(ROTARY_ENCODER_INFO), &dwReturnRead, 0);

若应用程序设置自动采样周期,驱动程序将根据光电编码器的基本参数(转速和分辨率),选取满足一定精度的最小采样周期。

当通过WriteFile设置并启动了转速测量后,还可通过ReadFile随时读取当前转速或截止当前时刻的转速数据序列(即转速曲线),具体调用方式为:

int short DBuf[1024]; // 16-bit 带符号整型量数据buffer
DWORD dwBufLen; // buffer长度,必须两字节对齐
DWORD dwReturnRead; // 返回的字节数
DWORD dwNbSamples;
dwBufLen = 20 * sizeof(int short); // 采集20个样点
dwReturnRead = 0; // 必须置0
ReadFile(hROT, DBuf, dwBufLen, &dwReturnRead, 0);
dwNbSamples = dwReturnRead / sizeof(int short);

注意实际采集的点数有可能小于希望采集的点数。在驱动程序内部缓冲的最大数据点数为32K,即32768个样点。上面调用中特别要注意的是dwBufLen必须为两字节对齐,这是因为16-bit 带符号整型量占用2个字节。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35198
收藏 人收藏

    评论

    相关推荐

    编码器类型详解:探索不同编码技术的奥秘

    编码器类型详解:探索不同编码技术的奥秘 在自动化、机器控制和数据处理等领域,编码器作为关键的传感组件,扮演着至关重要的角色。它们通过将物理
    的头像 发表于 11-19 08:58 111次阅读
    <b class='flag-5'>编码器</b>类型详解:探索不同<b class='flag-5'>编码</b><b class='flag-5'>技术</b>的奥秘

    二进制编码器与绝对编码器的区别

    编码器是工业自动化和机器人技术中不可或缺的组件,用于将机械位置或运动转换为电信号。二进制编码器和绝对编码器是两种常见的编码器类型,它们各自有
    的头像 发表于 11-06 09:54 301次阅读

    磁电式编码器好还是光电编码器

    够提供非常准确的位置反馈。这使得它在需要高精度和分辨率的应用中表现尤为出色。 技术成熟 :光电编码器在市场上已经存在多年,技术相对成熟,应用广泛。因此,用户更容易找到适合其应用需求的
    的头像 发表于 10-12 10:01 293次阅读

    磁电编码器光电编码器的区别

    磁电编码器光电编码器是两种不同类型的编码器,它们在原理、结构、性能和应用领域上都有所不同。 磁电编码器
    的头像 发表于 10-12 09:54 645次阅读

    光电编码器码盘和狭缝设计的区别

    光电编码器是一种将机械位置或运动转换为电信号的传感,广泛应用于自动化控制、机器人技术、精密测量等领域。光电
    的头像 发表于 10-12 09:51 363次阅读

    光电编码器的结构和类型

    光电编码器,作为一种高精度的传感,主要通过光电转换原理将输出轴上的机械几何位移量转换成脉冲或数字量。它广泛应用于工业自动化、机器人技术、数
    的头像 发表于 09-03 10:53 463次阅读

    模块式编码器原理 精度与分辨率

    。 模块式编码器一般采用光电或磁电原理进行工作。在光电编码器中,光根据光栅盘的缝隙照射到光电传感器上,产生脉冲信号;而磁电
    的头像 发表于 08-12 11:13 269次阅读
    模块式<b class='flag-5'>编码器</b>原理 精度与分辨率

    MT6501在线编程磁编码IC:光电编码器的理想替代品

    在现代工业控制和自动化领域,编码器是一种常见的传感,用于将机械运动转化为电信号,以实现位置、速度和方向的检测和控制。传统的光电编码器虽然技术
    的头像 发表于 07-31 17:18 468次阅读

    光电编码器是什么?它具有什么特征?

    数字信号输出。光栅刻痕一般采用光学加工技术进行制造,其刻痕数目越多,测量时精度就越高。 光电编码器主要应用在工业自动化,机床控制等方面,用于测量转速、角度、位置和位置误差等重要参数,可以实现高精度和高速度的测量。
    的头像 发表于 07-26 18:00 949次阅读
    <b class='flag-5'>光电</b><b class='flag-5'>编码器</b>是什么?它具有什么特征?

    怎么用编码器控制变频速度?

    和步骤。 1、编码器的工作原理 编码器是一种将机械位置转换为电信号的传感,它能够实时监测电机的转速、位置等信息编码器的工作原理是利用
    的头像 发表于 06-23 15:22 2315次阅读
    怎么用<b class='flag-5'>编码器</b>控制变频<b class='flag-5'>器</b>速度?

    怎么用编码器控制变频速度

    和步骤。 编码器的工作原理 编码器是一种将机械位置转换为电信号的传感,它能够实时监测电机的转速、位置等信息编码器的工作原理是利用
    的头像 发表于 06-17 15:11 1186次阅读

    绝对值编码器结构简介

    绝对值编码器结构简介 绝对值编码器由一个带有光栅的码盘构成,码盘能够自由旋转。当码盘旋转时,由光电检测系统检测到的光栅信号会发生变化,这些变化转化为电信号,根据信号处理后,可以获得与码
    的头像 发表于 03-14 09:33 922次阅读
    绝对值<b class='flag-5'>编码器</b>结构<b class='flag-5'>简介</b>

    编码器好坏怎么判断,编码器原理

    编码器(Encoder)是将输入数据转化为特定编码表示的一种技术。对于不同类型的编码器,评判其好坏可以从多个方面进行考量,包括编码质量、速度
    的头像 发表于 01-23 10:58 1794次阅读

    光电编码器的工作原理 光电编码器分为哪两种

    光电编码器是一种用于测量和探测位置、速度和角度的装置。它利用了光电传感器编码盘之间的相互作用,将物理位置转化为数字信号。光电
    的头像 发表于 01-22 15:39 2186次阅读

    磁性编码器光电编码器的比较

    伺服电机编码器是一种关键的反馈装置,用于测量和控制电机的转速和位置。在选择伺服电机编码器时,常常面临一个选择:使用磁电编码器还是光电编码器
    的头像 发表于 01-18 10:29 2952次阅读