CN106771326A - 一种基于增量式光电编码器测量速度的方法 - Google Patents
一种基于增量式光电编码器测量速度的方法 Download PDFInfo
- Publication number
- CN106771326A CN106771326A CN201611015300.2A CN201611015300A CN106771326A CN 106771326 A CN106771326 A CN 106771326A CN 201611015300 A CN201611015300 A CN 201611015300A CN 106771326 A CN106771326 A CN 106771326A
- Authority
- CN
- China
- Prior art keywords
- counter
- signals
- timer
- state
- rising edge
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01P—MEASURING LINEAR OR ANGULAR SPEED, ACCELERATION, DECELERATION, OR SHOCK; INDICATING PRESENCE, ABSENCE, OR DIRECTION, OF MOVEMENT
- G01P3/00—Measuring linear or angular speed; Measuring differences of linear or angular speeds
- G01P3/42—Devices characterised by the use of electric or magnetic means
- G01P3/50—Devices characterised by the use of electric or magnetic means for measuring linear speed
Abstract
本发明具体涉及基于增量式光电编码器精确测量速度的方法,包括如下步骤:对增量式光电编码器的A相、B相信号进行异步信号同步化;对同步后的A相、B相信号进行滤波,生成滤波后的信号A1、B1;设置4bit的状态寄存器ab_state;设置A1信号、B1信号的正交采样个数为N;计数器开始计数,计时器开始计时:当ab_state等于0010、1011、1101或0100时,计数器递加1,当计数器计数值等于N时,计时器锁存计时时间T,同时计数器和计时器清零;由正交采样计数值N和计时时间T算出编码器正转的速度。本发明测量速度的方法,计数器和计时器都在同一个时钟信号的上升沿处理,速度测量准确度更高。
Description
技术领域
本发明涉及运动控制系统的速度测量领域,尤其涉及基于增量式光电编码器精确测量速度的方法。
背景技术
在工业设备上,增量式光电编码器是一种使用非常广泛的速度传感器。工作时,可以输出两路相位差为90°的正交脉冲信号A和B,正转时,A超前B 90°;反转时,B超前A 90°;通过对A、B信号的脉冲计算,即可得出机械设备的速度信息,从而对其进行精确控制。
目前,对增量式光电编码器的速度测量一般有两种方法。第一种方法是用DSP或ARM的正交脉冲采集模块先对编码器的AB脉冲进行采集,然后计算出在一定采样时间内采集到的脉冲个数或者计算出采集固定脉冲个数所需要的时间,从而根据光电编码器的分辨率计算出速度。但由于DSP或ARM本身固有的缺陷,在采样时间的开头和结尾可能有不完整的脉冲,所以计算一定采样时间内采集到的脉冲个数最大可能有2个脉冲的误差;而计算采集固定脉冲个数所需要的时间也可能有最大1个时间单位的偏差问题。
第二种方法是用FPGA先对编码器AB脉冲进行解码,解出正交脉冲的方向和脉冲,然后再计算出一定采样时间内采集到的脉冲个数,其中采集到的脉冲个数为采样时间内的整数个脉冲加上在采样时间头和尾多出来的不是整数个的脉冲,其中不是整数个脉冲的算法为采样开始到第一个脉冲的上升沿计时T1,采样结束到最后一个脉冲的上升沿计时T2,第一个脉冲上升沿到第二个脉冲上升沿计时T0,则采样时间内不是整数个脉冲的个数为(T1+T2)/T0,然后再根据光电编码器的分辨率计算出速度。但这种方法要用FPGA对编码器的AB脉冲先进行解码,而这个解码过程本身比较繁琐,比较占用FPGA的资源;解码后算出的采样开头和结尾的不是整数个的脉冲的个数只有在编码器匀速运转的情况下才准确,在加减速的情况下就非常不准确了。虽然比第一种方法有所改进,但还是有很大的局限性。
发明内容
为了克服现有技术中存在的缺点和不足,本发明的目的在于提供一种基于增量式光电编码器测量速度的方法,在高速、低速或者变速时都能高精度的测量出速度,速度测量的准确度更高。
本发明的技术方案如下:
一种基于增量式光电编码器测量速度的方法,包括如下步骤:
S1:对增量式光电编码器的A相、B相信号进行异步信号同步化;
S2:对同步后的A相、B相信号进行滤波,生成滤波后的信号A1、B1,消除可能出现的干扰信号;
S3:设置4bit的状态寄存器ab_state,其中bit[0]表示当前时钟信号上升沿B1信号的状态值,bit[1]表示当前时钟信号上升沿A1信号的状态值,bit[2]表示上一时钟信号上升沿B1信号的状态值,bit[3]表示上一时钟信号上升沿A1信号的状态值;
S4:设置A1信号、B1信号的正交采样个数为N;
S5:计数器开始计数,计时器开始计时:当ab_state等于0010、1011、1101或0100时,表示编码器正在正向运转点,计数器开始计数且同时计数器开始计时,每遇到ab_state等于0010、1011、1101或0100时,计数器递加1,当计数器计数值等于N时,计时器锁存计时时间T,同时计数器和计时器清零;
S6:由正交采样计数值N和计时时间T算出编码器正转的速度。
其中:步骤S5中,当ab_state等于0001、0111、1110或1000时,表示编码器正在反向运转点,计数器开始计数且同时计数器开始计时,每遇到ab_state等于0001、0111、1110或1000时,计数器递加1,当计数器计数值等于N时,计时器锁存计时时间T,步骤S6中由正交采样计数值N和计时时间T算出编码器反转的速度。
其中:所述异步信号同步化是将A相、B相信号同步到FPGA模块所在的时钟域里,消除可能出现的亚稳态。
其中:所述4bit的状态寄存器ab_state在FPGA模块的时钟信号上升沿进行更新。
其中:所述计数器和计时器在FPGA模块的时钟信号上升沿进行更新。
本发明的有益效果:
本发明一种基于增量式光电编码器测量速度的方法,计数器和计时器都在同一个时钟信号的上升沿处理,即在时钟CLK的某一上升沿,例如当上升沿为m时,ab_state更新了计数器加1的点,且此时计数器等于了设定的正交采样个数N,由于计时器也是在CLK的上升沿更新,所以在上升沿m,计时器发现计数器已经计数到N,会锁存计时器的值T,则此时计时值T就是计数值到达N所用的时间,且这个T不论编码器在高速、低速或者变速时候都是准确的,消除了理论上的测量误差,故本发明是一种非常精确的增量式光电编码器速度测量方法,解决了DSP和ARM算法误差大的问题,测量速度的准确度更高,同时也解决了FPGA算法在加减速时候测量不准的弊端,并且不需要对AB信号进行解码,从而解决了FPGA算法繁琐和资源浪费的问题。
附图说明
图1是本发明一种基于增量式光电编码器测量速度的方法的原理图。
具体实施方式
为了便于本领域技术人员的理解,下面结合实施例及附图对本发明作进一步的说明,实施方式提及的内容并非对本发明的限定。
如图1所示,本发明速度测量方法的原理图,A1、B1是经过异步信号同步化和滤波后的AB信号,A1信号和B1信号的上升沿和FPGA的时钟信号CLK的上升沿保持了完全一致。由图可知,编码器正转时,当ab_state等于0010、1011、1101或0100时,即是编码器计数器递加1的点,同时也是计时器计时开始和结束的点;编码器反转时,当ab_state等于0001、0111、1110或1000时,即是编码器计数器递加1的点,同时也是计时器计时开始和结束的点。在计数器等于N的那个CLK上升沿锁存计时时间T,这两点由于都在CLK的同一个时钟的上升沿处理,从而消除了理论上的误差,再根据编码器的分辨率即可精确计算出增量式光电编码器的速度。
本发明一种基于增量式光电编码器测量速度的方法包括如下步骤:
S1:对增量式光电编码器的A相、B相信号进行异步信号同步化;
S2:对同步后的A相、B相信号进行滤波,生成滤波后的信号A1、B1,消除可能出现的干扰信号;
S3:设置4bit的状态寄存器ab_state,其中bit[0]表示当前时钟信号上升沿B1信号的状态值,bit[1]表示当前时钟信号上升沿A1信号的状态值,bit[2]表示上一时钟信号上升沿B1信号的状态值,bit[3]表示上一时钟信号上升沿A1信号的状态值;
S4:设置A1信号、B1信号的正交采样个数为N;
S5:计数器开始计数,计时器开始计时:当ab_state等于0010、1011、1101或0100时,表示编码器正在正向运转点,计数器开始计数且同时计数器开始计时,每遇到ab_state等于0010、1011、1101或0100时,计数器递加1,当计数器计数值等于N时,计时器锁存计时时间T,同时计数器和计时器清零;
S6:由正交采样计数值N和计时时间T算出编码器正转的速度。
其中:步骤S5中,当ab_state等于0001、0111、1110或1000时,表示编码器正在反向运转点,计数器开始计数且同时计数器开始计时,每遇到ab_state等于0001、0111、1110或1000时,计数器递加1,当计数器计数值等于N时,计时器锁存计时时间T,步骤S6中由正交采样计数值N和计时时间T算出编码器反转的速度。
其中:所述异步信号同步化是将A相、B相信号同步到FPGA模块所在的时钟域里,消除可能出现的亚稳态。
其中:所述4bit的状态寄存器ab_state在FPGA模块的时钟信号上升沿进行更新。
其中:所述计数器和计时器在FPGA模块的时钟信号上升沿进行更新。
本发明一种基于增量式光电编码器测量速度的方法,计数器和计时器都在同一个时钟信号的上升沿处理,即在时钟CLK的某一上升沿,例如当上升沿为m时,ab_state更新了计数器加1的点,且此时计数器等于了设定的正交采样个数N,由于计时器也是在CLK的上升沿更新,所以在上升沿m,计时器发现计数器已经计数到N,会锁存计时器的值T,则此时计时值T就是计数值到达N所用的时间,且这个T不论编码器在高速、低速或者变速时候都是准确的,消除了理论上的测量误差,故本发明是一种非常精确的增量式光电编码器速度测量方法,解决了DSP和ARM算法误差大的问题,测量速度的准确度更高,同时也解决了FPGA算法在加减速时候测量不准的弊端,并且不需要对AB信号进行解码,从而解决了FPGA算法繁琐和资源浪费的问题。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细地说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。
Claims (5)
1.一种基于增量式光电编码器测量速度的方法,其特征在于:包括如下步骤:
S1:对增量式光电编码器的A相、B相信号进行异步信号同步化;
S2:对同步后的A相、B相信号进行滤波,生成滤波后的信号A1、B1;
S3:设置4bit的状态寄存器ab_state,其中bit[0]表示当前时钟信号上升沿B1信号的状态值,bit[1]表示当前时钟信号上升沿A1信号的状态值,bit[2]表示上一时钟信号上升沿B1信号的状态值,bit[3]表示上一时钟信号上升沿A1信号的状态值;
S4:设置A1信号、B1信号的正交采样个数为N;
S5:计数器开始计数,计时器开始计时:当ab_state等于0010、1011、1101或0100时,计数器递加1,当计数器计数值等于N时,计时器锁存计时时间T,同时计数器和计时器清零;
S6:由正交采样计数值N和计时时间T算出编码器正转的速度。
2.根据权利要求1所述的一种基于增量式光电编码器测量速度的方法,其特征在于:步骤S5中,当ab_state等于0001、0111、1110或1000时,计数器递加1,当计数器计数值等于N时,计时器锁存计时时间T,步骤S6中由正交采样计数值N和计时时间T算出编码器反转的速度。
3.根据权利要求1或2所述的一种基于增量式光电编码器测量速度的方法,其特征在于:所述异步信号同步化是将A相、B相信号同步到FPGA模块所在的时钟域里。
4.根据权利要求1或2所述的一种基于增量式光电编码器测量速度的方法,其特征在于:所述4bit的状态寄存器ab_state在FPGA模块的时钟信号上升沿进行更新。
5.根据权利要求1或2所述的一种基于增量式光电编码器测量速度的方法,其特征在于:所述计数器和计时器在FPGA模块的时钟信号上升沿进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611015300.2A CN106771326B (zh) | 2016-11-18 | 2016-11-18 | 一种基于增量式光电编码器测量速度的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611015300.2A CN106771326B (zh) | 2016-11-18 | 2016-11-18 | 一种基于增量式光电编码器测量速度的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106771326A true CN106771326A (zh) | 2017-05-31 |
CN106771326B CN106771326B (zh) | 2019-04-23 |
Family
ID=58968807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611015300.2A Active CN106771326B (zh) | 2016-11-18 | 2016-11-18 | 一种基于增量式光电编码器测量速度的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106771326B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108535507A (zh) * | 2018-02-08 | 2018-09-14 | 威科达(东莞)智能控制有限公司 | 用于增量式编码器测速的计算机存储介质 |
CN111337702A (zh) * | 2020-03-24 | 2020-06-26 | 深圳市微秒控制技术有限公司 | 一种光学增量编码器数据处理系统及方法 |
CN113495054A (zh) * | 2021-09-09 | 2021-10-12 | 广州永士达医疗科技有限责任公司 | 一种oct导丝传输同步性检测方法、装置及系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61120968A (ja) * | 1984-11-19 | 1986-06-09 | Matsushita Electric Ind Co Ltd | 回転方向パルスの発生回路 |
CN87100273A (zh) * | 1986-01-13 | 1987-07-29 | 株式会社日立制作所 | 速度检测装置 |
JPH0368869A (ja) * | 1989-08-08 | 1991-03-25 | Toyota Central Res & Dev Lab Inc | 速度検出装置 |
CN1205773A (zh) * | 1995-11-20 | 1999-01-20 | 轨道工程有限公司 | 位置与速度电子传感器 |
CN101825484A (zh) * | 2010-02-04 | 2010-09-08 | 哈尔滨工业大学 | 增量式编码器的故障检测方法 |
CN102495226A (zh) * | 2011-10-26 | 2012-06-13 | 深圳市三艾科技有限公司 | 基于增量式光电编码器的速度测量方法及速度测量系统 |
CN102759633A (zh) * | 2012-07-05 | 2012-10-31 | 上海交通大学 | 基于fpga的伺服电机实时转速检测模块 |
CN103616839A (zh) * | 2013-12-13 | 2014-03-05 | 广西大学 | 基于fpga的速度自适应检测装置 |
CN204597934U (zh) * | 2015-05-26 | 2015-08-26 | 合康变频科技(武汉)有限公司 | 一种正交光电编码器的任意整数分频电路 |
CN105008934A (zh) * | 2012-12-26 | 2015-10-28 | 株式会社沙夫特 | 速度测定装置以及速度测定方法 |
CN205484398U (zh) * | 2015-12-25 | 2016-08-17 | 罗伯特·博世有限公司 | 传感装置、传感系统及转向系统 |
-
2016
- 2016-11-18 CN CN201611015300.2A patent/CN106771326B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61120968A (ja) * | 1984-11-19 | 1986-06-09 | Matsushita Electric Ind Co Ltd | 回転方向パルスの発生回路 |
CN87100273A (zh) * | 1986-01-13 | 1987-07-29 | 株式会社日立制作所 | 速度检测装置 |
JPH0368869A (ja) * | 1989-08-08 | 1991-03-25 | Toyota Central Res & Dev Lab Inc | 速度検出装置 |
CN1205773A (zh) * | 1995-11-20 | 1999-01-20 | 轨道工程有限公司 | 位置与速度电子传感器 |
CN101825484A (zh) * | 2010-02-04 | 2010-09-08 | 哈尔滨工业大学 | 增量式编码器的故障检测方法 |
CN102495226A (zh) * | 2011-10-26 | 2012-06-13 | 深圳市三艾科技有限公司 | 基于增量式光电编码器的速度测量方法及速度测量系统 |
CN102759633A (zh) * | 2012-07-05 | 2012-10-31 | 上海交通大学 | 基于fpga的伺服电机实时转速检测模块 |
CN105008934A (zh) * | 2012-12-26 | 2015-10-28 | 株式会社沙夫特 | 速度测定装置以及速度测定方法 |
CN103616839A (zh) * | 2013-12-13 | 2014-03-05 | 广西大学 | 基于fpga的速度自适应检测装置 |
CN204597934U (zh) * | 2015-05-26 | 2015-08-26 | 合康变频科技(武汉)有限公司 | 一种正交光电编码器的任意整数分频电路 |
CN205484398U (zh) * | 2015-12-25 | 2016-08-17 | 罗伯特·博世有限公司 | 传感装置、传感系统及转向系统 |
Non-Patent Citations (2)
Title |
---|
于庆广等: ""光电编码器选型及同步电机转速和转子位置测量"", 《电气传动》 * |
程为彬: ""无计算误差的速度测量计算方法"", 《西安石油大学学报(自然科学版)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108535507A (zh) * | 2018-02-08 | 2018-09-14 | 威科达(东莞)智能控制有限公司 | 用于增量式编码器测速的计算机存储介质 |
CN111337702A (zh) * | 2020-03-24 | 2020-06-26 | 深圳市微秒控制技术有限公司 | 一种光学增量编码器数据处理系统及方法 |
CN113495054A (zh) * | 2021-09-09 | 2021-10-12 | 广州永士达医疗科技有限责任公司 | 一种oct导丝传输同步性检测方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106771326B (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111693785B (zh) | 一种数字脉冲信号宽度测量电路及测量方法 | |
CN102495912B (zh) | 一种具有同步校正功能的多通道高速数据采集系统 | |
CN100575965C (zh) | 一种单片机测量频率的方法 | |
CN100516898C (zh) | 一种高精度时钟检测方法及检测装置 | |
CN102680728B (zh) | 一种用于精密机电设备中的电机转速测量方法 | |
CN102680726B (zh) | 一种用于电机转速测量的高精度自适应装置 | |
CN106771326A (zh) | 一种基于增量式光电编码器测量速度的方法 | |
CN103941622A (zh) | 基于fpga的高精度秒脉冲倍频出采样脉冲的方法 | |
CN109945819B (zh) | 一种永磁同步电机转子位置测量方法 | |
CN105245203B (zh) | 高精度低速时钟占空比检测系统及方法 | |
CN201615907U (zh) | 一种旋转台低角速率检测装置 | |
CN102928677A (zh) | 一种纳米级脉冲信号采集方法 | |
CN106645780B (zh) | 一种基于dsp的转速检测方法及系统 | |
CN105738642A (zh) | 一种四路并行采样的t法电机测速方法 | |
CN108181482A (zh) | 基于虚拟正弦波的实时低速检测装置 | |
CN101038295A (zh) | 转台速率等精度测量方法和测量装置 | |
CN107728460B (zh) | 一种高分辨率的时间间隔测量方法 | |
CN104535918B (zh) | 一种跨时钟域同步器内部常数测试电路和方法 | |
CN108155910A (zh) | 一种基于fpga的高速正余弦编码器解码方法 | |
CN101029900A (zh) | 新型利用脉冲测量旋转轴转速的装置及方法 | |
CN110879298B (zh) | 基于通讯式编码器的速度获取方法 | |
CN109283354A (zh) | 一种基于增量式光电编码器的变m/t测速方法 | |
CN103940398B (zh) | 回转角度测量方法、装置、系统及工程机械 | |
CN110133316B (zh) | 一种光电编码器精密测速系统及方法 | |
CN105092876B (zh) | 速度传感器抗干扰脉冲计数方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |