旋转编码器与单片机的通用接口

旋转编码器与单片机的通用接口

ID:37265378

大小:168.50 KB

页数:9页

时间:2019-05-20

旋转编码器与单片机的通用接口_第1页
旋转编码器与单片机的通用接口_第2页
旋转编码器与单片机的通用接口_第3页
旋转编码器与单片机的通用接口_第4页
旋转编码器与单片机的通用接口_第5页
资源描述:

《旋转编码器与单片机的通用接口》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、机械测量中旋转编码器与单片机的通用接口在准备”Freescale”杯全国大学生智能车比赛中我们开始的时候是采用红外传感器来测量速度,但是它受环境的干扰很大,且响应频率很小,还达不到1KHz,为了提高速度测量精度和响应频率,减小环境的干扰,决定采用了旋转编码器,我们成功地开发了单片机与旋转编码器的最简硬件接口。  旋转编码器及其工作原理  旋转编码器是用来测量角度的装置。它分为单路输出和双路输出两种。单路输出是指旋转编码器的输出是一组脉冲,而双路输出的旋转编码器输出两组相位差90度的脉冲,通过这两组脉冲不仅可以测量转速

2、,还可以判断旋转的方向。  它将测量到的角度量转换为数字脉冲信号输出,用来检测被检对象的角位移、角速度、角加速度、线位移、线速度和线加速度等,因而,应用十分广泛。旋转编码器有绝对式和增量式两种。绝对式所测量到的角位置是绝对位置;而增量式所测量的是转动体角位移的累计量。  旋转编码器有一个中心有轴的光电码盘,其上有环形通、暗的刻线,有光电发射和接收器件读取,获得四组正弦波信号组合成A、B、C、D,每个正弦波相差90度相位差(相对于一个周波为360度),将C、D信号反向,叠加在A、B两相上,可增强稳定信号;另每转输出一个

3、Z相脉冲以代表零位参考位。  由于A、B两相相差90度,可通过比较A相在前还是B相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位。  信号输出有正弦波(电流或电压),方波(TTL、HTL),集电极开路(PNP、NPN),推拉式多种形式,其中TTL为长线差分驱动(对称A,A-;B,B-;Z,Z-),HTL也称推拉式、推挽式输出,编码器的信号接收设备接口应与编码器对应。编码器的脉冲信号一般连接计数器、PLC、计算机,PLC和计算机连接的模块有低速模块与高速模块之分,开关频率有低有高。如单相联接,用

4、于单方向计数,单方向测速。B两相联接,用于正反向计数、判断正反向和测速。A、B、Z三相联接,用于带参考位修正的位置测量。A、A-、B、B-、Z、Z-连接,由于带有对称负信号的连接,电流对于电缆贡献的电磁场为0,衰减最小,抗干扰最佳,可传输较远的距离。  为方便用户使用,旋转编码器信号有电压、NPN、PNP、T、D多种输出方式。不同输出方式的抗电磁干扰的能力也不同。因而,可根据使用的具体要求选择恰当输出形式的旋转编码器。本设计采用旋转编码器的单相联接输出方波。  旋转编码器与单片机的接口  由于工程实践和比赛的需要,我

5、们研究开发了一种单片机与旋转编码器直接接口的方法。此方法就是直接将旋转编码器信号端与Freescale的S12的单片机的输入捕捉/输出比较通道(IOC)极为简洁,由此构成的系统极为简单而可靠性很高。旋转编码器A相输出信号,故可使用单片机的IOC1(IOC0~IOC7任意一个都可以)与之相接。实际使用时,根据旋转编码器信号线的长度及电磁干扰的程度,可以在旋转编码器与单片机之间增加光电耦合器,或整形门电路,以抵抗干扰,调理旋转编码器的输入信号。我们在使用中采用了电压输出形式的旋转编码器,而且信号线很短,接口电路见图1。图

6、1旋转编码器与单片机的接口电路  图1上拉电阻R是因为我们的编码器是NPN型集电极开路的。在这个接口方式中,将旋转编码器的A相与单片机的IOC1/PT1引脚相连,输出端需接1KΩ的上拉电阻,这个电阻是我们通过实验得到的结果,其空载输出脉冲频率为0~10KHz。  实物图见图2,我们采用齿轮啮合的原理将电机的齿轮和编码器的齿轮啮合,当电机旋转带动编码器的旋转,编码器就在接上拉电阻的信号线A上产生方波。图2智能车上旋转编码器的安装  接口程序  上述接口方法是利用了S12单片机的ECT模块的外部输入捕捉/输出比较工作方式

7、。单片机也仅仅使用外部输入捕捉的来处理旋转编码器数据,只要将旋转编码器的A相(或B相)接至外部输入捕捉口IOC1(IOC0~IOC7任意一个都可以),程序如下:  用PT1(IOC1)通道作为速度脉冲信号输入,ECT模块初始化步骤如下:  1)设置TIOS寄存器,设置PT1通道为输入;2)设置TCTL4寄存器,使得上升沿和下降沿(任何沿)均能得到捕捉;3)设置ICOVW_NOVW寄存器,保护脉冲累加器的数据;4)置位ICPAR_PA1EN,使能脉冲累加器。设置此寄存器之后,脉冲累加器开始计数;5)通过读取PACN1寄

8、存器,即可以获取当前的脉冲累加值。 初始化程序为:voidECT_initial(void)//ECT初始化{DDRT_DDRT1=0;//置PT1(IOC1)脚为输入TIOS_IOS0=0;TIOS_IOS1=0;//通道1为输入捕捉TCTL4=0b00001101;//通道1为任何沿捕捉TSCR1_TEN=1;//计数器1使能ICOVW_N

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。