格雷码( gray code ,又称作葛莱码 ,二进制循环码) 是一种具有反射特性和循环特性的单步自补码 ,它的反射、自补特性使得求反非常方便。同时 ,格雷码是一种可靠性编码 ,是一种错误最小化的编码。这种编码相邻两个码组之间只有一位不同 ,因而在用于模2数转换中 ,当模拟量发生微小变化而可能数字量发生变化是 ,格雷码仅改变一位 ,这样与其它码同时改变两位或多位的情况相比更为可靠 ,即可减少出错的可能性 ,本文正是利用了格雷码的这一特性和循环特性 ,以工业污水检测中的磁致伸缩液位传感器研制为例 ,系统地论述了格雷码在工业检测中的应用原理及范围、精度、误差等的分析方法。
1 传感器原理及设计
1. 1 格雷码和二进制相互转换
(1) 格雷码( g) →二进制码( b) 的逻辑表达式 :
b4 = g4
b3 = b4 g3
b2 = b3 g2
b1 = b2 g1
(2) 二进制码( b) →格雷码( g) 的逻辑表达式 :
g4 = b4
g3 = b4 b3
g2 = b3 b2
g1 = b2 b1
(3) n 位格雷码和二进制码相互转换的逻辑表达式如下 :格雷码( g) →二进制码( b) 二进制码( b) →格雷码( g)
b n = gn gn = b n
b n - 1 = b n gn - 1 gn - 1 = b n b n - 1
………… …………
b3 = b4 g3 g3 = b4 b3
b2 = b3 g2 g2 = b3 b2
b1 = b2 g1 g1 = b2 b1
1. 2 模2数转换方法
选用硒土磁性材料(简称磁元) 和霍尔集成电路(简称霍尔元件) ugn3040 构成了传感器的模 - 数转换部分。其中磁元是一种磁体分为两面 ,一面为 s 极 ,一面为 n 极 ;霍尔元件是一种无触点、无磨损、长寿命、高可靠 ,无火花、无自激振荡、不产生干扰噪声 ,抗力强、抗污染能力强 ,除了磁体外 ,任何物体的存在都不影响其正常工作的集成电路 ;输出可以直接驱动 ttl 和mos 电路 ,输出信号数字化 ,可以直接与计算机接口 ,实现了传感器的数字化输出。
为了加工上的方便 , 码盘的有效周长 与码盘的实际周长是不同的 (见精度分析部分) 。码盘是经过2 n 等分的 ,其中 n 为格雷码的位数 , n 的确定请按照精度的要求给出(见精度分析部分) ,阴影部分为s 极 ,非阴影部分为 n 极。在这里 ,取 n = 6。当液面升高时 ,浮子上升 ,重锤下落;当液面降低时 ,浮子下降 ,重锤上升 ,从而带动码盘一起转动 , 码盘中的格雷码由霍尔元件读出 , 直接送给单片机。
1. 3 传感器电气逻辑图
传感器电气选用嵌入式单片机 89c2051 作为传感器的 cpu ,将霍尔元件的输出直接送到 p1. 0~p1. 7 ,p3. 2~p3. 5 ,p3. 7 (共 13 位) ,实际中的范围和精度要求超过 13 位格雷码时 ,可以利用单片机中 i/ o 口 (2 位) 串行扩展 (如 ttl74ls165) 多片并入串出的 i/ o 口加以解决。利用单片机 89c2051 中自带的布尔处理机 ,可以按照格雷码和二进制码相互转换的逻辑表达式将格雷码转换成二进制码 ,减少了硬件成本 ,增加了系统的可靠性。
2 测量范围、精度及误差分析
(1) 测量范围
设计中小盘是作为计数用的 ,它用了两个霍尔元件 ,一位格雷码。用于计数。在 cpu 中设定一个计数器 ,当为顺时针时加 1 ,否则减 1。设计数器的计数值为 k( k> = 0) 转 ,设码盘的有效周长为l 毫米 ,则测量的范围为 :0~kl (毫米) 。
(2) 精度分析
测量的精度主要取决于码盘的有效周长和码盘所使用的格雷码位数 ,这里设码盘的有效周长为 l ,格雷码位数为 n ,则其测量精度为 :
q = l/ (2n)
例如 :l = 20 mm ,n = 8 则 q≈0. 078 mm ;
l = 20 mm ,n = 10 则 q≈0. 019 mm ; l = 10 mm ,n = 10 则 q≈0. 009 mm。
从以上例子可以看出 ,为了提高精度 ,可有两种方法可用 :一种是减少码盘的有效周长l ,一种是增加码盘所使用的格雷码位数 n。当然 ,两种也可以同时采用。
(3) 误差分析
利用以上原理制作的液位传感器 ,其误差主要由等分码盘与磁元之间带来的误差以及连接浮子、滑轮、重锤的细绳带来的误差 (主要是误差) ,一但制作好后 ,它是一定的 ,在一定的范围内 ,可以通过单片机加以补偿的 ,比如可以通过测量码盘转一圈的误差 ,计算出每位格雷码的误差 ,从而加以逐位补偿。
3 结束语
本文所研制的液位传感器 ,已在工业污水检测中 ,得到了很好的应用。
关键词:液位传感器 传感器