La especificación básica de CAN no define los canales. Esencialmente, una red CAN es una facilidad para pasar mensajes a un grupo de dispositivos. Un mensaje puede ser transmitido por cualquier dispositivo, y está disponible para todos los dispositivos. Un mensaje tiene dos partes: su identificador y algunos datos. Eso puede en pocas palabras.
Hay protocolos de nivel superior creados sobre la CAN (por ejemplo, CANopen) que dan significado a los mensajes: definen qué tipo de datos contienen, y cómo y cuándo estos mensajes entran en la red. Estos protocolos generalmente agregan funciones, como direcciones de nodo, maestros de red y transferencias de datos en bloque, que no forman parte de la especificación básica de CAN.
"Canal" es un término un tanto equívoco; Su significado depende del contexto. En términos generales, un canal es algún tipo de conducto para los datos. Por ejemplo, los mensajes entrantes pueden dirigirse a canales que son utilizados por diferentes procesos. De esta manera, un proceso no tendría que buscar en todos los mensajes recibidos para buscar mensajes relevantes, solo tendría que buscar mensajes en su canal.
No estoy familiarizado con Microchip Harmony, pero en la descripción de la interfaz CAN parece que "canal" significa esencialmente "búfer". Parece que los mensajes recibidos se clasifican en canales (buffers de mensajes) según el filtro de aceptación por el que pasan. Por lo tanto, puede dirigir los mensajes a diferentes buffers según el identificador del mensaje. Los canales también se utilizan para transmitir, como un mecanismo para almacenar en búfer y establecer la prioridad relativa de los mensajes salientes. El canal no forma parte del mensaje real, por lo que no tiene ningún significado a nivel de red.