在《龙芯2k0300 - 走马观碑组第21届智能汽车竞赛软硬件设计》中我们使用了LQ_1024线方向mini编码器。
一、LQ_1024线方向mini编码器
龙邱科技mini系列编码器具有以下特点:
● 分辨率有:A/B相正交输出256线、A/B相正交输出1024线、步进脉冲 + 方向输出512线、......;
●旋转速度高,最高转速可达10000rpm;
● 宽广的工作温度范围:-40℃ ~ +125℃。
● 抗扰性好。本产品采用霍尔检测技术,属于无接触检测,传感器运行不受灰尘或其它杂物影响,很好克服了基于光学检测原理的缺点;
● 体积小巧。直径D:14mm、高H:18mm、轴径:3mm。
如果你对编码器一点都不了解的话可以先参考这篇文章:《STM32F103霍尔编码器测速》。
龙邱科技提供的编码器,有带方向输出引脚和不带方向输出引脚两种,这里我使用的是正交A/B相1024线方向mini编码器,也就是说我使用的这个编码器除了有A/B输出引脚外,还有单独的方向输出引脚,这样我们就不用通过A/B相信号变化的先后顺序来判断运动方向。

1.1 工作原理
编码器的线数,是说编码器转一圈输出多少个脉冲,如果一个编码器是1024线,说明这个编码器转一圈对应的信号线会输出1024个脉冲,A/B两相转一圈发出的脉冲数一样的,不过存在90°相位差。
由于我使用的编码器带有方向输出引脚,因此:
- 通过对
A相脉冲计数,通过读取单位时间t的脉冲信号的数量,就可以计算出转速; - 通过判断方向引脚的高低电平,就可以知道是正转还是反转。
编码器码盘旋转一周A/B相输出的脉冲数目为N,在时间T内统计到的有效脉冲数目为S,那么转速为:
\[n = \frac{S}{NT} \times 60 \]
1.2 硬件接线


1.2.1 左电机编码器
编码器一共引出6个引脚,左电机编码器与龙芯2K0300开发板的连接关系需严格对应,连接表如下:
| 引脚编号 | 编码器引脚 | 含义 | 连接的龙芯GPIO |
|---|---|---|---|
| PIN1 | GND | 必须可靠接地,否则可能出现显示异常 | GND |
| PIN2 | 3.3~5V | 直流供电 | 3.3V |
| PIN3 | A | A 相输出,CMOS 电平 | GPIO67(SPI2_CS) |
| PIN4 | Dir | 方向输出 | GPIO72(CAN2_RX) |
| PIN5 | B | B 相输出,CMOS 电平 | ------ |
| PIN6 | nc | 悬空 | ------ |
1.2.2 右电机编码器
右电机编码器与龙芯2K0300开发板的连接关系需严格对应,连接表如下:
| 编码器引脚 | 含义 | 连接的龙芯GPIO | |
|---|---|---|---|
| PIN1 | GND | 必须可靠接地,否则可能出现显示异常 | GND |
| PIN2 | 3.3~5V | 直流供电 | 3.3V |
| PIN3 | A | A 相输出,CMOS 电平 | GPIO64(SPI2_CLK) |
| PIN4 | Dir | 方向输出 | GPIO73(CAN2_TX) |
| PIN5 | B | B 相输出,CMOS 电平 | ------ |
| PIN6 | nc | 悬空 | ------ |
二、编码器设备驱动
2.1 编码器驱动
2.2 新增设备节点
三、应用程序
3.1 源码
3.2 Makefile
3.3 编译应用程序
四、测试
4.1 烧录设备树
4.2 烧录驱动
4.3 应用程序测试
参考文字
[1] 龙邱科技Mini编码器.pdf