comandos de forma rápida. El protocolo Mini SSC transmite un
primer byte de comando seguido del byte de numero de servo y otro de bits con el destino a realizar.
El paquete sería el siguiente:
0xFF, byte numservo, byte destinoservo
Por ejemplo si estas buscando ajustar el destino del servo 0 a la posición neutral, debes enviar la
secuencia siguiente:
en hex:
en decimal: 255, 0, 127
Maestro puede configurarse para responder a bloques contiguos de servos numerados de 0 a 254.
Maestro identifica los protocolos Pololu, Compact y Mini-SSC en el acto y no es necesario usar
parámetros para detectar el protocolo. Incluso puedes mezclar comandos de los tres.
5.d. Control de redundancia cíclica (CRC) Detección de errores
Para algunas aplicaciones es importante la verificación de la integridad de los datos que se envían o
reciben. Maestro puede realizar un chequeo de 7-bit CRC, que es algo similar a un checksum pero
mas robusto y que puede detectar errores que quizás no afectarían a un checksum, como un byte 0
extra o bytes fuera de orden. La verificación se realiza habilitando la casilla
pestaña
"Serial Settings"
recepción de un byte extra añadido al final del paquete de comandos (excepto en los de Mini SSC).
El bit más significativo de este byte se pone a 0 y los siete bits menos significativos corresponden a
los siete bit de control. Si el byte CRC es incorrecto, Maestro puede activar un bit de error Serial
CRC al registro e ignorar el comando. Maestro no anexa un byte CRC a los datos que transmite en
respuesta a los comandos. Una lista detallada de cómo hace la comprobación se puede encontrar en
Wikipedia. Maestro utiliza CRC-7, lo que significa utiliza un polinomio de 8 bits y como resultado
produce un resto de 7 bits. En notación binaria el número 0x91 es 10010001. Sin embargo los bits
se transmiten en este orden: 1, 0, 0, 0, 1, 0, 0, 1, por lo que utilizamos 10001001 para el cálculo.
Pasos 1 & 2 (escribe binario, primero bit menos significativo añade 7 ceros al
final del mensaje):
CRC-7 Polynomial = [1 0 0 0 1 0 0 1]
mensaje = [1 1 0 0 0 0 0 1] [1 0 0 0 0 0 0 0] 0 0 0 0 0 0 0
Pasos 3, 4, & 5:
1 0 0 0 1 0 0 1 ) 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
shift
Luego el paquete total para el comando que se envía con el CRC habilitado es:
0xFF, 0x00, 0x7F
de Maestro Control Center. En modo CRC, Maestro espera la
_______________________________________________
XOR 1 0 0 0 1 0 0 1 | | | | | | | | | | | | | | |
--------------- | | | | | | | | | | | | | | |
1 0 0 1 0 0 0 1 | | | | | | | | | | | | | |
----> 1 0 0 0 1 0 0 1 | | | | | | | | | | | | | |
_______________ | | | | | | | | | | | | | |
1 1 0 0 0 0 0 0 | | | | | | | | | | |
1 0 0 0 1 0 0 1 | | | | | | | | | | |
_______________ | | | | | | | | | | |
1 0 0 1 0 0 1 0 | | | | | | | | | |
1 0 0 0 1 0 0 1 | | | | | | | | | |
_______________ | | | | | | | | | |
1 1 0 1 1 0 0 0 | | | | | | |
1 0 0 0 1 0 0 1 | | | | | | |
_______________ | | | | | | |
1 0 1 0 0 0 1 0 | | | | | |
1 0 0 0 1 0 0 1 | | | | | |
_______________ | | | | | |
1 0 1 0 1 1 0 0 | | | |
1 0 0 0 1 0 0 1 | | | |
_______________ | | | |
1 0 0 1 0 1 0 0 | |
1 0 0 0 1 0 0 1 | |
_______________ | |
1 1 1 0 1 0 0 = 0x17
20
(255 en decimal) como
0xFF
"Enable CRC"
0x83, 0x01, 0x17
de la
.