GeoffS
I thought about rolling my own with a micro a while back but after researching, I ended up just getting an ELM327 interface instead. I'd spend a lot of time implementing the single protocol my car used and would be SOL if I bought a different car or wanted to use it on the wife's care.
If you decide to not roll your own decode, for $30 or so you can get an ELM327 module that does these protocols:
SAE J1850 PWM (41.6 kbaud)
SAE J1850 VPW (10.4 kbaud)
ISO 9141-2 (5 baud init, 10.4 kbaud)
ISO 14230-4 KWP (5 baud init, 10.4 kbaud)
ISO 14230-4 KWP (fast init, 10.4 kbaud)
ISO 15765-4 CAN (11 bit ID, 500 kbaud)
ISO 15765-4 CAN (29 bit ID, 500 kbaud)
ISO 15765-4 CAN (11 bit ID, 250 kbaud)
ISO 15765-4 CAN (29 bit ID, 250 kbaud)
It is accessible via RS232 with an modem AT command set. There are other interface types available besides RS232 such as bluetooth. Most of the already available software out there uses the AT command set via a serial port.
The "standard" information available via the interface is rather limited. Commonly available "standard" items:
Coolant Temp, Intake Air Temp, MAF, Oxygen sensor, RPM, TPS, VSS, Spark advance, Load calcs. Diagnostic Trouble Codes (DTC's) are standard of course.
Even common items may not show under the "standard" PID's and only show in the "extended" PID's.
Extended information is, as mentioned above, accessible if you know the PID's (Parameter Identification) values. I still haven't found a list of extended PID's for my vehicle (Dodge SRT-4) yet and unfortunately the items I'm currently interested in are only available in the extended PID's
I don't think the "ELM" units are single IC's that can be purchased but there may be equivalent ones out there that are.
I've attached the PDF that describes the programming of the ELM327 for you to take a look at.