The ones with clocks are called synchronous because the clock transition syncronizes the behavior between the two systems, but protocols without a bus are asynchronous and generally use recognizable transitions on the data lines to synchronize along with a pre-negotiated timing that tells a uart for instance that it should expect so many bits in the time after the start bit, i.e. the systems without clocks depend on having a common time measurement and they expect the "bits" to be a certain width. That's why it's important to establish a baud rate for those kinds of systems where not so much for the I2C and SPI other than limiting the maximum detection frequency. Since there are likely never two systems with exactly the same clock rates, there is always an oversampling done on a UART to not just look at the signal received once during the expected bit time, but to sample 8 or more times, and assume that the dominant state is the one intended. That's a start anyway. Tony solarwind wrote: > I've gotten used to the types of busses such as I2C and SPI and > parallel where you have one or more data lines, an optional chip > select line AND A CLOCK LINE. It's so easy to understand - you set the > bit and strobe the clock. The underlying hardware electronics was also > so simple that I was even able to make my own very simple SPI device. > I like to believe that these types of busses are simple, compact, very > stable, fast, and efficient and more immune to errors. > > However, the other types of busses which don't use a clock line are > the ones that confuse me. For example, I have no idea how UART > (although I use it all the time), USB and 1-wire work. I would really > like to know how these busses work on the signaling level but I can't > find much information. > > If anyone would please enlighten me on the topic or provide some > links, I would very much appreciate it. > > -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist