|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
摘要:设计了基于高速单片机智能消抖算法的位移测量系统,给出了该系统的流程图和部分关键程序。) I# b$ a9 n: }) F0 b% R' z( ^- u
该系统解决了一般控制系统中存在抖动误差的问题,实现了无抖动误差的控制,具有很高的测量精度,适用
* o' V7 \" A0 ~- p1 T4 g于测井仪和数控机床等要求精度比较高的场合。
+ T9 ^5 z, h9 j0 \( c7 h0引言
2 n# t! K4 @$ w! @. X, ^% ~+ ^数控测井地面仪是一个由计算机实时控制的数
$ }! ~4 S9 T/ Q5 c; U* t据采集系统。在数控测井地面系统中设置了深度子9 _% ~9 p! t! U) S, X3 G- L
系统,用以产生深度中断信号控制测井数据采集,以
8 Z' }- P$ t {使测井数据曲线的显示、记录和深度一一对应起来。
- K) g: n) a! f p2 O除了提供深度同步控制以外,深度子系统对下井仪
& `2 d+ X) o; J _ X u3 r器提供仪器升降运动的方向、速度、下井深度等信1 H) S, d7 q2 r8 v
息。该仪器主要由电缆运动测量头、信号的检测处1 v5 B5 w8 X8 h
理和显示等设备组成。
# i- k2 M8 [, @, s# p6 Q8 E一般位移子系统采用数字逻辑电路进行仪器升" w( }/ t* x, Y4 u) y! {& E; H
降运动的方向判别、抖动消除、速度、下井深度的运
0 F# v9 p4 B1 }# m算,结构复杂,适应性差(深度采样间隔变化或测量- k/ E9 x# g0 r. I/ J9 y. r
轮磨损需要校深时),尤其对抖动消除的效果不佳。
& f; ^& C. Y C5 w) g" G本仪器采用软件的方法进行仪器运动方向判别、抖
' J, q2 @( Z$ H7 U$ z) H1 }" c动消除、速度、下井深度的运算及深度校正等,取得
3 f" o7 s) y* {2 d# @# d了较好的效果。8 u1 c* q0 g" K! l
1设计方案的实现
9 D7 k+ F4 h: x, W! ?1.1 高速单片机简介
7 V2 o9 M+ u6 Q6 a- D9 ?2 q本仪器选用W77E58高速单片机作为位移测# K3 U" X/ v3 h) H
量控制核。高速单片机W77E58是WINBOND公0 K2 s* u9 f; n Y% h* j# F" b/ {( A7 d
司生产的与MCS一51/52引脚和指令兼容的高速/ t7 f" t) d, U% v& t7 l K" n
单片机,主要有以下特性:
- ]: j' c! U! k6 L J' F(1)内部集成了高速结构,将12周期/指令缩减为5 l3 G: y) I# y0 w1 z- v. H
4周期/指令,使CPU的响应速度提升了1.5~3倍;
6 A+ K4 u- M, `" _(2)最高工作时钟频率为40 MHz;! @, l; E; W7 q; b2 w
(3)集成了256 B可直接读取的RAM和1 KB! m8 E2 Z4 `" m) E7 s9 E
用MoVx读取的内置SRAM;
1 p9 c" S3 |2 z$ P. {(4)内部有32 K的FI。ASH程序存储器;
+ R4 h) V9 x, s2 s9 u(5)有2个全双工串行通信口,支持UART(通$ N, b1 q4 A( ^: ]
用异步通信接收和发送器)和同步移位寄存器,不仅7 M& u0 V1 j$ s0 Z
如此,该芯片的串口还增加了帧结构错误探测' U) i, g) [9 O
(FED)和地址自动识别(AAR)功能;
9 K! H1 u( y, q, S* k(6)内部集成了看门狗复位电路。
2 c! j" i6 W# A7 C1 v1.2 位移测量原理
; m# H G3 X4 ~$ C9 L当下井仪器在测井电缆的带动下沿井筒上(下)
( d+ q. k D s$ y4 r. S7 ]8 G2 b, h运动时,电缆带动测量头上的测量轮顺(逆)时针转9 d+ s5 Y' f* t! Y
动,安装在测量轮上的光栅编码器也随之转动,光栅3 G5 F& u& N) [2 l
编码器输出A、B两相正交的方波信号,如图1所
+ O8 k! i M# B2 O2 F# ~示。当编码器顺时针转动时,A相信号前沿超前
0 i8 H5 ~$ g! }" j4 Z0 tB相信号1/4周期;编码器逆时针转动时,A相信号% m: S/ P" s1 z2 C! B9 P/ V
滞后B相信号1/4周期。要正确计测深度位置,必3 f: O: }6 ` s. V
须根据2路脉冲相位关系进行方向判别。
0 }, u2 z0 P. f6 m7 d) j' H根据A相和B相信号的正交特性,可判别仪8 i( v2 ~8 S9 k/ Y8 Y# ], A
器的运动方向,根据信号的频率计算出仪器的运动
% `, m1 z1 D! O0 }速度和仪器下井深度。0 p ?+ Z1 r) Q: L5 i6 Q
需要注意的是光栅编码器的抖动问题,光栅编
7 W7 }* o/ h& m7 G9 y) {码器的抖动会引起深度测量误差。在一般逻辑电路+ T8 V6 d' m6 O1 U+ N, ^1 y) ~
的消抖电路中,无法真正地消除误差。
+ `7 J' F& k! X1.3硬件设计0 V# C u1 F3 X$ n f
位移测量子系统要完成下井仪器运动方向判) }5 ?5 x: H' B
别、抖动消除、速度、下井位移的运算及位移校正,因. L. R y: @! @ J: s# n
此,该系统由信号整形电路、控制器、显示电路、通信
. h( t5 U( {& b& d接口电路等组成,如图2所示。
6 w/ z2 j. `/ k p( F8 ]0 ^
# J: D1 ~: X4 W. b* L9 j9 W4 k由测量头监测到信号后传递给光栅编码器,输
9 F3 l2 m) o8 M! H* \9 R出信号的幅度为5~12 V,来自编码器的信号首先
Y+ T4 ~ B9 L; g$ ~& N经过整形电路处理,变成与控制器兼容的电平信号,
% k2 B& C2 v0 Z5 r! _" B$ V整形后的信号APP和BPP送控制器进行深度、速7 F6 V+ O8 r9 y7 n- x/ _% F9 p
度测量及方向鉴别。单片机将测量到的当前深度、
8 m2 v6 g. p( Z" _0 f2 c+ ^速度及运动方向锁存到显示电路显示。6 ?9 T6 f W( p6 p2 O* i) F# p; I
采用快速处理器高速单片机W77E58后,深度
: i- k3 }1 G! V( q) u# C4 O# u4 Y% T$ i% f处理电路非常简洁,提高了系统的可靠性。/ ~: w( E' g2 _, k& s0 G
1.4软件部分设计$ b/ a* E1 o& l; T7 h5 d5 @* M
程序主要有主程序和中断处理程序。主程序完
) c& w; M9 F) v& @9 r0 _成实时性不高的任务,如速度计算、与主机的通信、1 K0 p4 [; q0 c: w6 y) _
深度、速度及状态显示等。中断处理程序完成实时
C; m! k, {% G6 f性高的任务,如方向判别、深度脉冲计数、消除抖动
7 e( }, s' M, v+ E* o1 a等。TO和INTl中断优先级设为最高优先级,确保3 L' d: J/ ?) ^* V
不会丢失深度脉冲信号。
5 c" s$ l- M2 n2 A+ r5 M4 P主程序流程图如图3所示,TO中断处理程序流
3 T8 o$ m3 f4 a, F# }0 b8 A5 V程图如图4所示,INTl中断处理程序流程图如图5
5 T. J ^- {2 G$ n& u; F所示。
7 _# \+ m" G% ]+ |为了进行深度、速度的计算,需要浮点运算,采用
$ y+ F1 v6 y. _# G+ tC51编程。由于W77E58的高速处理能力以及优化
9 ~ B) z( j, _/ r& v算法,用C语言编程也能满足深度系统的实时性。
{# ~( o7 N! \APP信号一路直接送W77E58的TO,同时将
$ l( n$ [0 Z9 @APP反相后送W77E58的INTl。这样做的目的是5 Z6 t. `9 K1 u! x- \
让单片机能够感知APP的上升沿和下降沿。在
0 ^5 ]2 y9 ~( a, L4 X3 y6 p+ Y1个周期的上升沿对BPP信号检测,进行运动方向- b* w9 |- f5 P) k6 D+ K( ^, G1 t4 D6 X
鉴别,而在下降沿则根据BPP信号的状态决定是否
" Q- n+ U2 p/ f3 q/ K3 U进行深度计数(下井仪器向上运动,减计数;下井仪0 b& F& W" O0 B) ?) \9 \8 n
器向下运动,加计数),若为抖动,则不计数,从而消
0 z# J2 y) A8 f& p- Z7 f除了抖动对深度测量的影响。当深度到达预定间隔
9 }/ F5 K7 P0 I* y5 V
$ l5 _( t) f; L' O附件下载: 6 X @& n* f/ ^( r! d
$ t5 H: m( l! B+ c
1 ~* @7 n! U: S; w
" g, e+ J, [8 Q* L7 M# f. F- k( T
|
|