|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
摘要:设计了基于高速单片机智能消抖算法的位移测量系统,给出了该系统的流程图和部分关键程序。
8 u4 x! P* m4 C8 I该系统解决了一般控制系统中存在抖动误差的问题,实现了无抖动误差的控制,具有很高的测量精度,适用! ~! O9 `" F; B6 v* ] V& @& ~
于测井仪和数控机床等要求精度比较高的场合。
2 k, n/ G; Y4 f' s0引言1 M" e2 o) @7 D
数控测井地面仪是一个由计算机实时控制的数
; r% j: T# P0 a, K据采集系统。在数控测井地面系统中设置了深度子0 O8 }, K$ y [5 {+ x
系统,用以产生深度中断信号控制测井数据采集,以
" i4 L2 A5 b3 P% q F/ U使测井数据曲线的显示、记录和深度一一对应起来。" R8 N0 `7 Y0 R, ~
除了提供深度同步控制以外,深度子系统对下井仪
1 K- k2 q4 n d% \器提供仪器升降运动的方向、速度、下井深度等信* P) Q' |2 F$ ]5 y8 ]& f% p; j
息。该仪器主要由电缆运动测量头、信号的检测处. o; Q1 d: R4 e
理和显示等设备组成。; U- l8 O- Y( N0 o9 Z& U6 {5 H3 ?! B
一般位移子系统采用数字逻辑电路进行仪器升4 V& C+ ~" K4 x/ \- `
降运动的方向判别、抖动消除、速度、下井深度的运/ Q6 v$ D8 U" H0 c5 p
算,结构复杂,适应性差(深度采样间隔变化或测量! H; f' m( O7 ?9 e* o J9 v
轮磨损需要校深时),尤其对抖动消除的效果不佳。/ Y. C1 R6 }6 y0 |* {) g* \. V2 [
本仪器采用软件的方法进行仪器运动方向判别、抖
x6 M" h* R7 b8 X! Y# y动消除、速度、下井深度的运算及深度校正等,取得, I; X/ w* R" k" n* D
了较好的效果。
+ V- P- H/ y! a: T7 O1设计方案的实现
1 \( D1 W- e/ X1.1 高速单片机简介; ]2 t; U1 ^6 ~5 y0 Z# L) I
本仪器选用W77E58高速单片机作为位移测
& }9 \/ G0 I* X* H! j量控制核。高速单片机W77E58是WINBOND公
5 |1 V7 M6 i3 W司生产的与MCS一51/52引脚和指令兼容的高速
: ]( [6 `2 a6 w6 m/ I" H% o' o单片机,主要有以下特性:
5 b+ W% r p8 g! s(1)内部集成了高速结构,将12周期/指令缩减为
; ]5 Z+ Z$ i% k" C+ |$ j/ |7 w1 V4周期/指令,使CPU的响应速度提升了1.5~3倍;
' b( N$ ^7 _% V! U. D(2)最高工作时钟频率为40 MHz;: z% X8 S4 `; y' f) V: Y1 M, O2 j7 m1 E
(3)集成了256 B可直接读取的RAM和1 KB
1 v$ m$ c* K2 C7 I" O6 s用MoVx读取的内置SRAM;! I$ G, \9 b+ L! a% g
(4)内部有32 K的FI。ASH程序存储器;; @' p( k: B' X5 c c# s( p
(5)有2个全双工串行通信口,支持UART(通7 k* }4 `) j% Q$ r/ F
用异步通信接收和发送器)和同步移位寄存器,不仅
" R+ J5 N; p1 p! J# Y( m如此,该芯片的串口还增加了帧结构错误探测
- J. Y. m8 |/ z(FED)和地址自动识别(AAR)功能;
8 w( g0 p% A& \. `(6)内部集成了看门狗复位电路。
4 A9 e% n0 w/ \: T0 I) ^1.2 位移测量原理
7 K2 ~$ \' {1 T+ u& E当下井仪器在测井电缆的带动下沿井筒上(下)
+ Y$ Q8 ^4 A5 ]. I8 s- B运动时,电缆带动测量头上的测量轮顺(逆)时针转
1 s4 }7 y6 H& }3 U/ H3 y5 E动,安装在测量轮上的光栅编码器也随之转动,光栅
/ M8 }3 D R% V; x, o7 Y6 S: X编码器输出A、B两相正交的方波信号,如图1所6 w. _, o% w, H2 B
示。当编码器顺时针转动时,A相信号前沿超前( f1 w8 W; D! ^, _5 S
B相信号1/4周期;编码器逆时针转动时,A相信号
' {. L: W8 u- T7 b1 W1 f- Y滞后B相信号1/4周期。要正确计测深度位置,必
2 S' d- m/ T! @; t( f& B: ]; _% h* `须根据2路脉冲相位关系进行方向判别。
r# k$ H; y7 S. N0 K: f: X根据A相和B相信号的正交特性,可判别仪+ |3 _7 c8 M2 v' z
器的运动方向,根据信号的频率计算出仪器的运动: P* s9 p3 y# W" a" @& v/ X- `5 U
速度和仪器下井深度。( J* |( _$ X u4 D* ?
需要注意的是光栅编码器的抖动问题,光栅编# r- d4 n6 F; Z( q; K- l
码器的抖动会引起深度测量误差。在一般逻辑电路* K; S( D& u, e7 Z) n- Q: _
的消抖电路中,无法真正地消除误差。! q; b: R2 L+ N! p# h
1.3硬件设计2 J7 r N! y: [) V
位移测量子系统要完成下井仪器运动方向判
1 ^( g4 q* l" F+ T别、抖动消除、速度、下井位移的运算及位移校正,因
6 ^" z* s$ f3 b4 Y此,该系统由信号整形电路、控制器、显示电路、通信1 W7 P% _- |: ]$ B t, Y; d1 {. w
接口电路等组成,如图2所示。
6 H. B' }. ~/ ~- [3 L3 @. K& W. a ?+ N& l" S: N( l5 h% h& t
由测量头监测到信号后传递给光栅编码器,输# N) L1 ]4 Q: a4 O
出信号的幅度为5~12 V,来自编码器的信号首先+ b! i* y% x1 A7 Y9 p
经过整形电路处理,变成与控制器兼容的电平信号,4 x6 G. A2 L l f% d
整形后的信号APP和BPP送控制器进行深度、速
) w6 `) e7 M5 z3 F度测量及方向鉴别。单片机将测量到的当前深度、
4 y) ] F8 }! s; [5 c/ s* G' I速度及运动方向锁存到显示电路显示。6 j' R) P+ f9 F& V1 z# E
采用快速处理器高速单片机W77E58后,深度
3 `6 z7 w) t" X' w8 }( G4 P处理电路非常简洁,提高了系统的可靠性。
; ^: I/ B1 }5 G* ~& s2 J* k1.4软件部分设计* Z* v( [2 d `4 z" M E: d
程序主要有主程序和中断处理程序。主程序完
0 w( U+ o k @* A5 ^成实时性不高的任务,如速度计算、与主机的通信、
: b( J$ n( v7 A' [7 A4 a" [6 q' A深度、速度及状态显示等。中断处理程序完成实时
D' o: M# K8 a: u2 T性高的任务,如方向判别、深度脉冲计数、消除抖动8 |2 M( l# h6 _. [/ V2 w3 O( J1 p
等。TO和INTl中断优先级设为最高优先级,确保( T. Q7 {. D: C2 C! H
不会丢失深度脉冲信号。' w" ~; F) h0 p* k7 K
主程序流程图如图3所示,TO中断处理程序流 R& z/ T6 A& L2 a
程图如图4所示,INTl中断处理程序流程图如图5. p y7 X; W6 e+ c/ e
所示。
0 K+ Z+ a0 J% y7 m. g% h5 k) j- @为了进行深度、速度的计算,需要浮点运算,采用. Q# ^+ Z7 }0 g2 a. a
C51编程。由于W77E58的高速处理能力以及优化
: {5 S+ w) i# z5 Y- f8 q算法,用C语言编程也能满足深度系统的实时性。
# D2 s0 f" t/ pAPP信号一路直接送W77E58的TO,同时将: \: g: a0 W/ R# A3 A: d3 q
APP反相后送W77E58的INTl。这样做的目的是; e' E: i- b. X9 y" }) `; i x1 n, s6 ?. `
让单片机能够感知APP的上升沿和下降沿。在
. G, @- X: t; k; O7 H1个周期的上升沿对BPP信号检测,进行运动方向
" y7 H8 k4 m7 d5 K: [; I3 p) r# v( v鉴别,而在下降沿则根据BPP信号的状态决定是否. D" r# m9 b2 [9 z
进行深度计数(下井仪器向上运动,减计数;下井仪% N7 t: x7 u$ R& n* g1 D4 @- t
器向下运动,加计数),若为抖动,则不计数,从而消" B4 q# |9 B/ p( |( u) N
除了抖动对深度测量的影响。当深度到达预定间隔
. d; Y7 ]; s3 [" {: t( p( v0 E7 h; i" [3 v
附件下载: - v0 _" ~9 z) V1 [3 }/ C
% B$ S" d7 e- K* s0 ]7 O% M. {8 u
; V8 ~ h, l- X9 w- d
) |. A, l' h6 V. c- z2 X
|
|