SSI通信接口的单圈绝对式编码器的使用

2019-10-12 13:36发布

SSI通信接口的单圈绝对式编码器的使用因实验室项目的要求,需要利用绝对式编码器以及stm32做一个摇臂的闭环控制,之前也发现stm32内部也有相应的增量式编码器的读取模式,现将做出的绝对式编码器的一些经验跟大家分享一下。编码器是将角度或者位移等物理信号转化为可以用以通讯、传输、存储的信号形式的设备,按照工作原理常见的编码器的种类有增量式编码器和绝对式编码器。增量式编码器是将角度转化为周期性的电信号,再将这个电信号转化为脉冲,用脉冲的个数表示位移的大小;绝对式编码器内部的码盘的每一个位置对应一个确定的数字码,因此它的测量值只跟起始与终止位置有关,与测量过程无关。绝对式编码器因其每个位置绝对唯一、抗干扰、无需掉电记忆的优点,已经广泛的用于各种工业控制系统当中,实现角度、长度的高精度测量和定位控制。本文将以具有SSI接口的ROTARY单圈编码器为例,介绍单圈编码器的工作原理、接口与通讯方式、以及信号处理过程等内容,完成实验测量并评估编码器性能的工作。单圈绝对式编码器的工作原理如上图所示,单圈绝对式编码器内部装有一个码盘,码盘上有若干个码道,码道上有通孔和暗孔(不透光),对于光电类的编码器,码盘位于光源与光电接收器件中间,当某一个码道处于光源处(或者称之为测量接口电路位置),光电接收器接收到穿过通孔的光信号置一,没有接收到光信号(暗孔)置零,这样一个固定角度位置就可以被编码,十进制角度被编制成n位二进制;如图所示位4位,位数越高,码道数越多,编码器的测量分辨率也就越大,比如12位的编码器,分辨率位360/4096=0.087890625°。编制而成的二进制数据在接收到触发信号(对于SSI信号模式来说,就是一个上升沿),数据被送入移位寄存器,接下来,在接收控制器同步时钟脉冲下,每个上升沿发送一位数据到数据线,控制器对其进行读取。SSI信号模式及其接收读取方法SSI信号采用6线制,两组时钟线和两组数据线以及电源线与地线,时钟线与数据线通常采用RS422或485模式即差分输入输出,数据通讯方式如下图。数据线与时钟线在空闲时都处于高电平状态,当控制器需要读取编码器位置时,将处于空闲时的高电平拉低,这时编码器内部转换而成的角度二进制数据储存在移位寄存器,当给出一个上升沿时,信号开始传送一位,控制器在高电平时进行读取操作,n位编码器就需要给出n个时钟脉冲,数据由高位到低位进行传输,直至发送完成拉高数据线和时钟线。(注意,不同厂家的编码器要求的时钟周期以及高低电平的建立时间不同,需严格按照要求)其次,硬件连接时如何将差分信号转换为TTL单端信号也是一个重点,之前做硬件时,查到的资料大都采用MAX488转换模块,实际应用时发现490也同样适用,实际读取精度也较高。在编写程序的过程中,利用stm32的通用IO口以及SSI信号时序,写出了该信号的读取驱动,并将读取以及转换为10进制以后的角度数据发送到虚拟串口,具体程序见附件。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。