HELP - basics of coding a 3 wire TTL Serial system

I'm trying to learn how to write basic serial communication stuff with the Arduino requesting data, then reading it and spitting it out to an LCD and/or SD card. I've spent hours searching but I can't find anything that does a line by line explanation of how this sort of thing works. Where do I even start? I know I need to set the baud rate but where do I go from there?

Here is exactly what I want to do.

Ask a specific address to send me information.
Read that information and store it.
Ask another address for info, then read and store.

At the end of asking multiple addresses write all that data to a microSD card (I think I can manage that) and display it on an LCD (also something I can do).

Then do all that over again. I want to be able to read everything (around 6-10 addresses) 50 times a second or more.

So what are the steps in code I need to go through to read all the data I want then clear it and read everything over again? Lets say the addresses I want to read are 0x21, 0x29, and 0x1A.

Are we talking async serial here? That doesn't have addresses.

Or I2C?

Or something else?

I want to be able to read everything (around 6-10 addresses) 50 times a second

So how will you be able to see a display on an LCD being refreshed at that speed?

I've spent hours searching but I can't find anything that does a line by line explanation of how this sort of thing works

That sounds an advanced project, once you get on to those it is assumed you have learn't enough so as not to need line by line explanations, the code is the explination.

As Nick says you need to be more specific about what you are trying to do.

Thank you for the responses. I haven't had any easy serial projects I've needed to tackle before this so I haven't learned the basics. From what I've heard this system isn't too bad to though. What I'm reading is the engine diagnostic codes from a 90-94 Mitsubishi. The details on an existing logger using a Palm Pilot are here:

http://mmcdlogger.sourceforge.net/

Serial communication is done using 1953 baud, 8 bit, 1 stop bit, no parity, TTL(?) levels.

I only plan on refreshing the display once or twice per second. The real concern is logging it all to a MicroSD card.

More info I got from a friend on this: he suggested writing it as event driven(?) as that is wat the ECM in the car will work with.

The circuit in that link takes the serial data from the car and converts it into RS232 for the Palm. The arduino will not take RS232 so you would have to convert it into TTL levels before you can use it. Putting a RS232 to TTL levels after that circuit seems a bit of a waste of time, you are better off trying to design a car to TTL levels converter circuit, that in the end will be much simpler.

Once you have the data is is quite easy to save it to an SD card:-

It has been a while since I could work on this.

I won't be building the RS232 circuit in the link. I'll just use the TTL level circuit. The SD card stuff is very easy. My problem is not knowing anything about serial communications. I tried doing my own research on it but I couldn't find a good primer to get me going on this.

eclipsh:
It has been a while since I could work on this.

I won't be building the RS232 circuit in the link. I'll just use the TTL level circuit. The SD card stuff is very easy. My problem is not knowing anything about serial communications. I tried doing my own research on it but I couldn't find a good primer to get me going on this.

The primer is in the link you posted. You send one char get one back they have a table as to what each one does/is. This is not really a question of serial bits that's just baud rate how many bits per word etc. Your looking for a primer on talking to mitsubishi pre obdii ecu's. That sort of stuff if often fairly particular to each year make and model of car the whole point of odbii was to standardize it. I would suggest pulling apart the code from the project you linked to to get the details.

I don't know anything about serial comm though such as, how do I send, receive, format received data etc. I've read through the link I posted but it is still Greek to me.

You send with Serial.write() you recieve with Serial.read once there is something to recieve, so use Serial.avaliable() first.
You don't format.