ccTalk (pronunciado ver-ver-hablar) es un protocolo en serie de uso generalizado en toda la industria de transacciones monetarias y puntos de venta . Los periféricos como los detectores de monedas y billetes que se encuentran en una amplia gama de equipos de pago automático, como transporte, emisión de billetes, teléfonos públicos, máquinas recreativas y gestión de efectivo minorista, utilizan ccTalk para hablar con el controlador anfitrión.
El protocolo ccTalk es uno de los 2 protocolos especificados por BACTA para su uso en todas las máquinas AWP con aceptadores de monedas en serie. (El otro es el protocolo Host Intelligent Interface desarrollado por Mars Electronics International ). [1] : 20
El protocolo se desarrolló en una empresa llamada Coin Controls (de ahí que coin-controls-talk, más tarde llamada Money Controls y desde 2010 Crane Payment Solutions) en las afueras de Manchester, en el noroeste de Inglaterra, principalmente por el ingeniero Andrew William Barson. La primera publicación del protocolo fue en 1996. [2]
El protocolo ccTalk es un estándar abierto . [1] : 13
El protocolo utiliza una transferencia asincrónica de tramas de caracteres de manera similar a RS232. La principal diferencia es que utiliza una única comunicación bidireccional línea de datos para la comunicación semidúplex en lugar de separadas de transmisión y recibe líneas. Funciona con voltajes TTL y es "multipunto", es decir, los periféricos se pueden conectar a un bus común y están separados lógicamente por una dirección de dispositivo. Cada periférico del bus ccTalk debe tener una dirección única.
El protocolo original operaba a 4800 baudios con versiones posteriores estandarizadas en 9600 baudios. Varios fabricantes ofrecen ahora chips de puente de bajo costo para permitir que ccTalk se ejecute a través de USB a velocidades en baudios de al menos 1 Mbit / s.
Se han implementado pilas de protocolos ccTalk en una variedad de dispositivos, desde pequeños microcontroladores Microchip con 512 bytes de ROM hasta potentes procesadores ARM7 de 32 bits. [1] : 12-13
El protocolo admite todas las operaciones estándar para dispositivos electrónicos, como la actualización flash del firmware, la transferencia segura de datos y la información de diagnóstico detallada.
Las ventajas de ccTalk incluyen tecnología UART de bajo costo , una estructura de paquetes fácil de entender, una interfaz de comando fácilmente expandible y sin requisitos de licencia. Este último otorga al protocolo una gran popularidad en un campo concurrido y altamente competitivo similar al software de código abierto.
En 2010, se agregó el cifrado DES a ciertos comandos para que pudiera ser más resistente a los ataques al bus. [2] Cada periférico tiene su propia clave DES única. [3] [4]
Ejemplo de paquete de mensajes ccTalk
Datos TX = 2 0 1245 8
- 2 = dirección de destino
- 0 = bytes de datos cero
- 1 = dirección de origen
- 245 = encabezado de comando 'Solicitar identificación de categoría de equipo'
- 8 = suma de comprobación (2 + 0 + 1 + 245 + 8 = 256 = 0 mod 256)
Este es un mensaje de la dirección 1 (el host) a la dirección periférica 2 para averiguar cuál es.
Datos de RX = 1 13 2 0 671111105110 32 65 99 99101112116111114 22
- 1 = dirección de destino
- 13 = 13 bytes de datos
- 2 = dirección de origen
- 0 = encabezado de respuesta
- 67… 114 = ASCII para 'Aceptador de monedas'
- 22 = suma de comprobación (la suma de todos los bytes del paquete es cero)
La respuesta de la dirección 2 a la dirección 1 lo identifica como un aceptador de monedas.
Detalles
El protocolo ccTalk es un protocolo orientado a bytes . La serie de bytes en un mensaje, representada arriba como una serie de números decimales, se transmite como 8-N-1 .
Muchos dispositivos tienen un solo conector eléctrico que transmite energía (típicamente +12 V o +24 V) y los datos de ccTalk a través de un total de 4 cables.
Para reducir el costo, para distancias de interconexión cortas, CPI recomienda enviar datos ccTalk a través de una interfaz de colector abierto multipunto no balanceada : tanto los mensajes de transmisión como los de recepción ocurren en la misma línea de DATOS serie bidireccional a nivel TTL , conducida a través de un colector abierto NPN transistor. La resistencia pull-up en el host tira de la línea DATA a +5 V, por lo que el 1 lógico (e inactivo) es nominalmente +5 V, y el 0 lógico (y el bit de inicio) es nominalmente 0 V. [1] : 15,17 Para distancias más largas, CPI recomienda enviar datos ccTalk a través de una interfaz de controlador RS-485 balanceada multipunto , también nominalmente +5 V y 0 V. [1] : 17
Los periféricos seguros requieren que se cifren todos los bytes de un mensaje, excepto los dos primeros bytes; el byte de la dirección de destino y el byte de longitud de datos nunca se cifran para permitir que los periféricos estándar y seguros se mezclen en el mismo bus. [1] : 26
La longitud total de un paquete de mensajes puede variar desde un mínimo de 5 bytes (byte de longitud de datos igual a 0) a 260 bytes (byte de longitud de datos igual a 255). Las transferencias más largas requieren una serie de paquetes de mensajes. [1] : 28
Nombramiento de monedas y billetes
A lo largo de los años, han surgido varios estándares asociados dentro de la especificación ccTalk. Por ejemplo, las etiquetas globales para identificar las monedas y billetes en constante cambio del mundo.
En ccTalk, una moneda tiene un identificador de 6 caracteres con el formato
El código de país cumple con la norma ISO 3166 . El código de emisión se asigna a diferentes fechas de emisión o variaciones especiales de acuñación de la misma moneda.
p.ej
- US025A Estados Unidos 25c
- GB010B Gran Bretaña 10p
- EU200A Euro 2 €
Los billetes de banco siguen el mismo patrón, pero se asignan 4 caracteres al valor y hay un factor de escala asociado, generalmente x100, con el país.
p.ej
- US0001A Estados Unidos $ 1
- GB0020A Gran Bretaña £ 20
- EU0005A Euro 5 €
Referencias
- ^ a b c d e f g "Protocolo de comunicación serial ccTalk: especificación genérica" Archivado el 16 de octubre de 2017 en la Wayback Machine . Edición 4.7
- ^ a b "Controles de dinero"
- ^ " " Cifrado DES para aceptadores de monedas y validadores de billetes " " . Archivado desde el original el 8 de agosto de 2017 . Consultado el 8 de agosto de 2017 .
- ^ " " Cifrado DES para tolvas " " . Archivado desde el original el 21 de julio de 2017 . Consultado el 8 de agosto de 2017 .
enlaces externos
- https://web.archive.org/web/20070329093914/http://www.cctalk.org/