CODIGOS BINARIOS
Los Encoders de valor Absoluto trabajan en Sistema Binario (números escritos con una combinación de “1s” y “0s”.
La información de la posición en la que están la suministran con unos de los siguientes Códigos Binarios:
- Binario puro
- BCD
- Gray
- Gray Exceso
Vamos a ver cada uno de estos Códigos:
Código Binario Puro:
Es un sistema de numeración igual que el decimal pero en Base 2. Esta formado por una sucesión de “1s” y “0s”.
Veamos como se obtiene el número binario de un número decimal:
Supongamos que queremos convertir el número decimal 75 a binario: Dividiremos el número 75 por 2 y el cociente lo volveremos a dividir por 2. Procederemos así sucesivamente hasta que el cociente sea “0”. Entonces, el número binario está compuesto por la sucesión de “1s” y “0s” que se han obtenido como resto de cada operación.
Veamos el proceso:
Hay que tener en cuenta que el resto de la primera división es el dígito de menor peso de la expresión binaria (el primer dígito de la derecha) y así sucesivamente hasta el último resto, que será el dígito de mayor peso del número binario (el primer dígito de la izquierda).
Veamos, ahora, el proceso contrario. Vamos a convertir un número binario a su expresión en el sistema decimal. La fórmula que hay que aplicar es la siguiente:
En donde: D = Número en decimal
Bn = Bits de número en binario ( coeficiente de la potencia de 2 )
n = Número de bits
Supongamos que tenemos el siguiente número binario: 00110111 .Vamos a convertirlo en decimal:
Código BCD (Decimal Codificado en binario):
En este Código se representa en Binario puro cada cifra del número decimal. Es decir con 4 bits se codifica cada cifra independientemente del resto de cifras.
La forma más clara de verlo es con un ejemplo:
Tenemos el número en decimal 358, su representación en BCD es la siguiente:
Así pues, los cuatro primeros bits de la derecha son la unidades; los cuatro segundos bits son las decenas y los cuatro últimos bits son las centenas.
Por lo tanto, para escribir en BCD un número de 3 cifras (en decimal) se necesitan 12 bits. Si el número en decimal tiene 5 cifras, se necesitaran 20 bits, Etc. Etc.
Código Gray
Este sistema de codificación no corresponde con una representación matemática real de los números. Se trata de una combinación de “1s” y “0s” que son las posibles combinaciones que puede adoptar una variable.
Partiendo de un número de bits determinado, se realizan las combinaciones de acuerdo a las normas de Gray.
La principal característica de este código es que dos números consecutivos, cualquiera que sean, se diferencian solo en un bit (tienen distancia «1»).
Además, es un código cíclico. Es decir, el primer número y el último también son adyacentes, es decir, solo se diferencian en un bit.
Hasta ahora parece un poco complejo, pero vamos a insistir en la explicación para tratar de aclararlo totalmente.
A continuación viene una tabla con la confección, en código Gray, de los números del 0 al 31 usando hasta 5 bits:
Como se puede apreciar en la tabla anterior, el código Gray es simétrico con respecto a la línea discontínua, en todos sus bits, excepto en el de la izquierda (Gn). En este último bit los de arriba de la línea discontinua son “0” y los de abajo son “1”.
Vamos a ver como se ha ido formando dicha tabla:
Como con un bit solo se tiene dos posibilidades (vale “0” ó vale “1”) podemos codificar el Nº 0 y el Nº 1. Para poder codificar del Nº 0 al Nº 3 necesitamos dos bits. Según la regla de Gray se procede de la siguiente manera:
Para poder codificar desde el Nº 0 al Nº 7 se necesitan 3 bits y se procede igual que en el paso anterior:
De esta forma se procede sucesivamente añadiendo cada vez un bit más.
Como el Código Gray no es una expresión matemática de los números, siempre hay que convertir las lecturas que da el Encoder en este código a binario puro para poder realizar las operaciones matemáticas que sean necesarias para la aplicación donde esté trabajando dicho Encoder.
Para realizar la conversión hay que aplicar la formula siguiente para calcular el valor de cada bit:
Bit (n) = Bit (n+1) XOR G(n)
En donde:
Bit(n) es el bit enésimo en Binario
Bit(n+1) es el bit siguiente
G(n) es el bit enésimo en Gray
XOR es la operación lógica que se realiza entre los bits.
NOTA: La operación XOR es una puerta lógica de dos entradas que suministra un “1” a la salida, solo, cuando las dos entradas son distintas. Si las dos entradas son iguales (tanto “1” como “0”) se tiene a la salida un “0”. El esquema es el siguiente:
También se puede encontrar el siguiente esquema:
A continuación vamos a aplicar esta función para convertir un número en Código Gray a Binario Puro:
Veamos este mismo esquema con un ejemplo. Vamos a convertir la expresión del Nº 4 en código Gray (0110) a código Binario (0100):
NOTA: La entrada Nº2 de la puerta Xor del Bit más significativo (M.S.B.) debe estar fija a nivel lógico “0”.
Código Gray Exceso
El código Gray, visto en el apartado anterior, es un sistema de codificación en el que la distancia entre dos números consecutivos es 1 (esto quiere decir que solo se diferencian en un bit). Lo que significa que para pasar de un número al siguiente solo cambia un bit.
Además, es un código cíclico porque la distancia entre la última lectura y la primera es 1.
Veamos un ejemplo:
Con 4 bits se puede codificar los números del 0 a 15. Las expresiones en código Gray de ambos son: 0= 0000 y 15= 1000
Como vemos, solo se diferencian en el bit de más peso (izquierdo). Para pasar de 15 a 0 solo hay que poner a 0 dicho bit. Por lo tanto la distancia es uno y además es cíclico pues del último número se pasa al primero cambiando, tan solo, un bit.
Cuando el disco que lleva el encoder es un múltiplo binario exacto (256, 512, 1024, 4096 ó 8192) ocurre como hemos explicado.
Pero cuando la aplicación donde se quiere usar el encoder no es un múltiplo exacto, por ejemplo 360 pasos (control de posición angular), no se puede poner un disco de 360 lecturas en código Gray pues no sería un disco cíclico ya que la distancia entre la posición 359 y 0 no es igual a 1, como podemos ver a continuación:
La diferencia entre los dos números es más de un bit, luego la distancia no es 1 y no podemos pasar del 359 a 0 cambiando solo un bit.
Para resolver este inconveniente se ideó el Código Gray-Exceso. Este código es tambien un código Gray, pero desplazado un número determinado de pasos: E
Vamos a calcular este desplazamiento, E, y comprobaremos si se cumplen las dos condiciones imprescindibles de Distancia 1 y de ser Cíclico.
La fórmula a aplicar es:
Con un ejemplo lo veremos más claro:
Supongamos que queremos calcular el factor E para un rango de medición de 360 º. En este caso el parámetro “n” es:
n = 9
por lo tanto
2 9 = 512 (512>360)
El factor R es 360, por lo tanto podemos calcular E:
Así pues, el desplazamiento para este caso es 76. Por lo tanto el rango de medida será desde 76 hasta 435 (que son 360 divisiones; igual que de 0 a 359).
El receptor de la señal del Encoder (que llevará el disco Gray – Exceso 76 de 360 divisiones) tendrá que restar 76 a cada lectura que haga para saber la lectura correcta.
Lo sentimos, no hay comentarios todavía.