风向传感器为何使用格雷码
CAWS600型自动气象站的风向传感器就是一个光电传感器,其风向信号是由一个经风标带动的格雷码光码盘,以及与之相适应的光电耦合器件输出的20、21、22、23、24、25、(26、27),6-8位格雷码信号,每个格雷码信号代表一个风向。
那么,什么是格雷码呢?格雷码就是典型循环码。其代表码对应十进制如表所示:
典型循环码表示法
十进制数 典型循环码
0 0000
1 0001
2 0011
3 0010
4 0110
5 0111
6 0101
7 0100
8 1100
9 1101
10 1111
11 1110
12 1010
13 1011
14 1001
15 1000
由上表可知它具有两个基本特点,其一是代码的“相邻性”,即取任意两个相邻代码其中只有一位数符不同,其余数符都相同。如十进制的8和9,在格雷码中对应为1100和1101,只有第一位数符不同。而8与7的格雷码为1100和0100,只有第四位数符不同。其二是代码的“循环性”,即格雷码最后一个代码与第一个代码也是相邻的,如表中的1000与0000也只有一位数符不同。可见,这种代码形成了一个按相邻性进行循环的封闭系统。所以典型循环码也称格雷反射码。
那么为什么要在风向感应器上使用格雷码而不用其它代码呢?这是因为格雷码可以避免出现瞬间错误。众所周知,在计数器中,数的计算是按一定顺序进行的,其相应代码也按一定顺序变化,由于格雷码的相邻性特点,从一个数变到相邻的另一个数时,不会瞬间出现别的代码,这样就保证了计数的正确性。如从7进到8,格雷码由0100变1100,右边三位数码不变,只需第四位由0变1即可。但若使用别的代码,如8421BCD码则情况就可能不同了,同样以7进到8而言,相应的8421BCD码为0111变到1000,可见四位二进制码都要变化,而实际的线路运作中,每位的变化总是有先后之差,假如最低位变得快,结果就有可能由0111瞬间跳变到0110(数6),显然造成了误差。这是不能允许的。因此,在一些自动控制的“模/数”转换及其它数字电路中,格雷码的应用非常广泛。
2006年5月27日