Hay varios protocolos y cables para el tema, si es europeo o si es americano o depende el
año del coche (ahora se standarizo bastante el tema si hablamos de coches > 2000).
Para mi vehículo por ejemplo (Moto europea)
El conector es un J1962
El protocolo de comunicaciones que utiliza es: ISO 9141-2 ISO 9141-4
El que quiera leer los códigos de error en principio solo necesita esto (referenciando mi centralita):
Un cable con conector J1962 por un lado in RS232 por otro.
Un cable RS232->RS232 o RS232->USB
Y hacerse el convertido por el precio de pongamos 20 euros
http://www.planetfall.com/~jeff/obdii/
Un programa (hay varios gratuitos), o hacerse uno que tampoco es difícil sabiendo programación y como se comunica la centralita (standard hay documentos con todos los detalles en internet) y listo.
Los cables con convertidor también los venden por ahi a precios de 100 a 200 euros (Ver enlaces abajo).
Lo de subir mapas de inyección es otro tema que personalmente no tengo ni idea como va a la hora de programar algo pero hay hay varios hechos ya por ahi, todo es cuestión de un wrapper para saber como funciona.
Hay maquinas para leer OBDII desde 100 euros a 300 pero para la inyección ya tienes que ir a cables con convertidores y un programa informaciónrmatico por que maquinatas para eso suelen ser ya especializadas para marcas y de precios sobre los 3000 euros.
Enlaces:
http://www.planetfall.com/~jeff/obdii/
http://www.scantool.net/
http://www.obdii.com/
http://www.myscantool.com/Documentation/Topics/Hardware/Determine_Protocol.htm
http://www.digimoto.com/
Con esto y algunos enlaces de dentro de estos tienes toda la información.
Un saludo.