En el nivel más simple, se podría decir que un simple protocolo de comunicación tiene tres capas: física, transporte y aplicación. (Hay modelos con más como OSI con 7 o TCP/IP con 4. El número de capas no es muy importante en el contexto de esta pregunta).
La capa de aplicación es la capa que tratar directamente en el código, y el foco de la cuestión. Tan lejos como el de la capa de transporte se refiere, el byte que pasa en send_data es sólo un patrón binario, pero se puede interpretar en el código de la aplicación, como la letra 'A'. El CRC o de la suma de comprobación de cálculo será la misma independientemente de si usted se considera el byte a ser 'A', 0x41, o 0b01000001.
La capa de transporte es el nivel de paquetes, donde usted tiene su encabezados de los mensajes, y la comprobación de errores, ya sea de CRC o básico de una suma de comprobación. En el contexto de firmware, usted puede tener una función como send_data, donde se pasa de un byte a enviar. Dentro de esa función, se pone en un paquete que dice: "Hola, este es un mensaje normal, requiere de un reconocimiento, y la suma de comprobación es 0x47, el tiempo actual es la X." Este paquete se envían a través de la capa física para el nodo receptor.
La capa física es donde la electrónica y la interfaz se definen: los conectores, los niveles de voltaje, el tiempo, etc. Esta capa puede variar desde un par de trazas de ejecución de señales TTL para una UART en un PCB, totalmente aislado par diferencial como en algunos PUEDE implementaciones.
En el nodo receptor, el paquete viene en la capa física, es descomprimido en la capa de transporte, y, a continuación, su patrón binario está disponible para la capa de aplicación. Es hasta el nodo receptor de la capa de aplicación para saber si ese patrón debe ser interpretado como 'A', 0x41, o 0b01000001, y qué hacer con él.
En conclusión, es casi siempre aceptable para enviar caracteres ASCII, si eso es lo que necesita la aplicación. Lo importante es entender su esquema de comunicación, y que incluyen un mecanismo de comprobación de error.