TECLADO DE PC PARA PALM
Introducción:
La idea es construir un interface para poder usar un teclado estándar de PC en un PDA PALM.
Después de analizar varias posibilidades me he decantado por realizarlo a través del puerto de infrarrojos ya que así se puede usar el driver que la propia PALM suministra y emplear el teclado de PALM. Además no es necesario realizar ninguna conexión física con la PDA lo que elimina el riesgo de dañarla.
Protocolos:
Por una parte tenemos el del teclado del PC, que es bastante confuso pero está bien documentado. Basta con hacer una búsqueda en google para encontrar información al respecto, así que en esa parte no voy a entrar.
Por el otro lado está el protocolo IR de PALM. Como primera aproximación usé un fotodiodo IR para ver como era la señal.

De esto se deduce que se trata de 9600 bps sin paridad.
A continuación MauriTX, un compañero del foro PDAEXPERTOS desarrolló una pequeña aplicación para ver que es lo que se está transmitiendo.
Protocolo IR del teclado:
El teclado envía cadenas de seis bytes dos de los cuales son cabecera FF C0 y uno es de cierre C1
La última trama de seis bytes siempre se repite al final.
Cada tecla simple emite una trama de dos paquetes de 6 bytes mas el segundo que se repite, en total 18 bytes.
Si se pulsan dos teclas como por ejemplo shift-a o alt-b la trama queda como sigue:
Primero el primer paquete de 6 bytes de la tecla shift o ctrl, a continuación los dos paquetes de 6 bytes de la tecla correspondiente sin que se repita el segundo paquete y por últimoel segundo paquete de 6 bytes de la tecla shift repetido.
|
TRAMA |
Explicación |
|||||
|---|---|---|---|---|---|---|
|
Cabecera |
Paquete |
Cola |
||||
|
FF |
C0 |
58 |
B5 |
2E |
C1 |
Primer paquete de SHIFT |
|
FF |
C0 |
11 |
70 |
F1 |
C1 |
Primer paquete de A |
|
FF |
C0 |
91 |
78 |
75 |
C1 |
Segundo paquete de A |
|
FF |
C0 |
A4 |
B5 |
AA |
C1 |
Segundo paquete de SHIFT |
|
FF |
C0 |
A4 |
B5 |
AA |
C1 |
Segundo paquete de SHIFT repetido |
Relaciones:
Además de las cabeceras y colas y de que el último paquete se repite, la única relación que he encontrado es que hay una correspondencia entre el primer y segundo paquete de cada tecla:
91 = 11 xor 80 , 78 = 70 xor 08 , 75 = F1 xor 84
Esta relación se repite para todas las teclas.