编码器接入电脑:从 A/B 脉冲到串口坐标

2026-09-28

编码器买回来,一头是几根线,一头是展厅主机。中间差的那一段——把脉冲数成坐标、再把坐标送进电脑——恰恰是滑轨屏项目里最容易”外包给厂家”、出了问题又没人说得清的环节。这篇把这段链路拆开讲。

为什么不能把编码器直接插电脑

常见情形:软件工程师拿到一个增量式编码器,问硬件同事”这个怎么接到电脑上”,得到的回答是”接个 USB 转串口就行”。接上以后,串口里什么也读不到,或者读到一堆乱码。

原因很简单:增量式编码器输出的是 A、B 两路方波脉冲,它不是串口数据,没有起始位、没有字节格式,就是高低电平在不停翻转。电脑的串口、USB 口都是按协议收发数据的,它们不会替你”数脉冲”。所以编码器和电脑之间,一定要有一个计数环节:负责实时盯着 A、B 两相的每一次翻转,累加成计数值,再把计数值按电脑能读的格式发出去。

整条链路可以画成这样:

编码器 → 电平匹配 → 计数器(四倍频) → 通信接口 → 上位机软件

编码器本身怎么选(滚轮、拉线还是测距),见滑轨屏编码器怎么选;本文只管从编码器出线之后的事。

第一段:电平匹配,先把信号接对

编码器的输出类型决定了这一段怎么接。拿欧姆龙 E6B2-C 系列规格书当例子学读法:它的供电范围是 5–24 VDC,输出分两类——

  • 集电极开路输出:编码器内部只负责把信号线”拉低”,高电平要靠外部的上拉电阻接到逻辑电平来提供。不接上拉电阻,计数器那边读到的就是悬空信号,时有时无。上拉电阻接到哪个电压,要和计数器能接受的输入电平一致,不能随手接到编码器的电源上就完事——编码器用较高电压供电、计数器输入却只能接受较低电平时,直接上拉到电源会把输入口顶坏。
  • 线驱动输出(RS-422A 差分):每一相用两根线传一对相反的信号,接收端看两根线的差值。它抗干扰强,适合长线缆,但规格书写明线驱动版必须用 5 VDC 供电。接收端要用差分接收芯片把它还原成普通逻辑电平,不能只接其中一根线凑合用。

这里只是借这份规格书演示该看哪几栏:供电范围、输出类型、分辨率(P/R)、以及”哪个转向计数增加”。换任何一款编码器,看的都是这几项。器件本身的原理,见旋转编码器图鉴。

线缆怎么走

滑轨屏现场最常见的干扰源,是电动轨道的电机动力线。编码器信号线和电机线同槽敷设,电机一启动计数就乱跳。能做到的几条:

  • 编码器信号线用屏蔽线,屏蔽层按一端接地的原则处理;
  • 信号线和动力线分槽走,实在要同走拖链,也尽量分开隔离;
  • 线长、干扰大时,优先选线驱动差分输出。

如果编码器装在移动的小车上(滚轮编码器就是这样),信号线要跟着屏跑,走拖链时还要考虑弯曲寿命。走线方式对照滑轨屏供电与信号怎么走。

第二段:计数器,把脉冲数成位置

三种常见的计数硬件

计数方式大致做法适合的情况要留意的地方
单片机用带正交编码接口或外部中断的单片机数脉冲,自己写串口输出集成商有嵌入式开发能力,想完全掌握协议软件轮询太慢会漏计数,要用硬件接口或中断
专用计数模块市售的编码器计数模块,一般直接输出串口或网口数据不想自己开发硬件协议以厂商手册为准,要问清数据格式和回零接口
PLC 高速计数用 PLC 的高速计数输入口,上位机通过通信读寄存器电动轨道本来就用 PLC 控制上位机读取周期受通信影响,画面跟随可能有延迟

无论哪种,核心都是一件事:四倍频计数。

四倍频是怎么数出来的

A、B 两相相位差 1/4 周期,把两相的上升沿和下降沿都拿来计数,每个脉冲周期就能得到 4 个计数。1000 P/R 的编码器,四倍频后每圈 4000 个计数。

实现上最稳的做法是状态表法:把 A、B 两相当前的电平组合看成一个状态(共 4 种),每次任意一相翻转时,用”旧状态”和”新状态”去查一张表,表里直接写着这一步是加一、减一还是无效。下面是示意性的伪代码:

// 示意代码:四倍频状态表法
// 状态 = (A << 1) | B,取值 0~3
// 表下标 = (旧状态 << 2) | 新状态
const int8 TABLE[16] = {
   0, +1, -1,  0,
  -1,  0,  0, +1,
  +1,  0,  0, -1,
   0, -1, +1,  0
};

int32 count = 0;
uint8 oldState = 读取AB();

// 在 A 或 B 任一相电平变化时调用(中断或硬件接口)
void onEdge() {
    uint8 newState = 读取AB();
    count += TABLE[(oldState << 2) | newState];
    oldState = newState;
}

表里为 0 的格子有两种含义:状态没变,或者 A、B 同时翻转。后者在正常转动时不该出现,出现了往往说明信号有干扰或者采样太慢漏掉了中间状态——调试时可以专门统计这类”非法跳变”的次数,它是判断信号质量的好指标。

哪个方向算”加”,取决于接线和安装方向。屏往正方向推、计数却在减小,交换 A、B 两相接线或者把整个结果取反即可。

原点开关也接在这里

原点开关最好和编码器接在同一个计数器上:开关动作时,由计数器自己把计数清零,而不是等上位机收到”原点到了”的消息再清。上位机那边有通信延迟,屏在这段时间里已经又走了一截,清零位置就不准了。回零的动作要领,见滑轨定位精度怎么调整。

第三段:通信,把坐标送进电脑

发什么:计数还是坐标

计数器可以直接发原始计数,也可以发换算好的坐标。建议发原始计数,换算放在上位机做:换算系数、分段校正表都在上位机配置里,现场复标时只改配置,不用给单片机重新烧程序。

数据格式怎么定

自己定协议时,几条原则比具体格式更重要:

  1. 有帧头、有结束符:上位机中途接入时能找到一帧的起点;
  2. 带校验:长线传输偶尔会出错,错帧直接丢掉;
  3. 带状态位:比如”是否已回零”、“是否检测到非法跳变”,上位机据此决定显示待机还是正常画面;
  4. 主动上报还是一问一答:主动按固定周期上报,上位机处理简单;一问一答便于多个设备共用一条总线。滑轨屏只有一个编码器时,主动上报更常见。

一个便于调试的文本格式示意:

$POS,<计数>,<回零标志>,<校验>\r\n

文本格式用串口调试工具就能直接看懂,现场排查方便;二进制格式更紧凑,但调试时得配解析工具。串口参数(波特率、校验位等)两端设成一致即可,具体取值看计数硬件的手册和上报频率的需要。

USB、串口还是网口

  • USB 转串口:主机就在屏旁边、线很短时最省事;但 USB 线不适合拉长,也怕热插拔后端口号变化,软件要能按设备识别重新连接。
  • RS485:差分传输,适合较长距离,主机那头需要一个 RS485 转换器。
  • 网口:计数器本身有网口,或者经串口服务器把串口转成网口。主机可以放在机房,通过交换机拿数据,距离不再是问题。串口服务器一般提供虚拟串口和 TCP 两种用法,上位机软件改动很小。

第四段:上位机,读坐标时别踩的坑

上位机读到计数后,还要做几件事才能驱动画面:

  • 单独线程读串口:别在渲染线程里阻塞读取,否则串口一卡画面就卡;
  • 按帧解析,校验不过就丢:别把半帧数据当坐标用;
  • 判断数据是否中断:一段时间收不到数据,说明线断了或者计数器掉电,画面应停在最后可信位置并记录报警;
  • 合理性过滤:相邻两帧坐标差出”屏物理上走不了那么快”的范围,当作干扰丢掉。

上位机按位置播放的三种实现方式,见滑轨屏软件开发;坐标跳动引起的画面反复切换,处理方法见滑轨屏触发区间与防抖。

接好之后的调试步骤

  1. 断开主机,先测电平:用万用表或示波器看 A、B 两相,手转编码器时能看到高低翻转;集电极开路的,确认上拉后高电平正常。
  2. 手转一整圈,看计数:四倍频下应该接近 4 × P/R,明显偏少说明漏计数,要查采样方式。
  3. 正反转各转一圈:计数能回到原值,说明方向判断正确、没有丢步。
  4. 打开串口工具看原始帧:确认格式、校验和上报频率符合预期。
  5. 装上轨道推一个来回:坐标方向和墙面方向一致,回到原点时计数回零。
  6. 开电机再推:电动轨道要在电机运行时再测一遍,排查动力线干扰。

常见问题

能不能用普通的 USB 数据采集卡数脉冲? 要看它有没有硬件计数功能。只能定时采样电平的采集卡,采样跟不上脉冲翻转时就会漏计数,而且判向也不可靠。选之前确认手册里写明支持正交编码或高速计数。

编码器装在移动小车上,信号线太长怎么办? 一种思路是把计数器也装到小车上,就近数脉冲,再用串口或网口把坐标送出去,长线上走的是抗干扰更好的通信信号;另一种是主机随屏移动,只需要给小车供电。两种都要结合供电方案一起考虑。

上位机收到的坐标偶尔跳一下,是编码器坏了吗? 先别换编码器。统计一下计数器里的非法跳变次数,如果和电机启停同步出现,多半是走线干扰;如果只在上位机侧出现,查串口校验和帧解析。编码器真坏的情况,通常是某一相完全没有信号,而不是偶尔跳。

延伸阅读

编码器、拉线、测距三种方案怎么选,看滑轨屏编码器怎么选;点位感应和连续定位的整体取舍,看滑轨屏定位方式对比;电动轨道里电机侧的位置反馈怎么用,看电动滑轨怎么控制;接好之后怎么标定和回零,看滑轨定位精度怎么调整;整套软硬件链路的全景,看互动滑轨屏系统组成。

参考资料:欧姆龙 E6B2-C 增量式旋转编码器规格书(PDF,英文,含输出类型与相位关系)。


编码器已经到手,却卡在怎么接进电脑、怎么定协议?把编码器型号、主机位置和走线条件发给我们,联系我们一起过接线方案。更多滑轨屏的结构、定位与内容做法,逛滑轨屏技术方案。

需要展厅软硬件方案或定制开发?

加微信,把这一页发到你手机上

扫码加站长企业微信,会自动把这一页的链接发给你。问软件授权、报价,或者现场遇到问题,也可以直接聊。

去留微信

留言讨论

评论发布后会被人工复核,违规内容将被删除。

    还没有人评论,来说说你的看法

    如果发表没有反应,可以前往联系我们告诉我们。

    这个页面有问题?

    提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。