6) Ask the other IC to ACKNOWLEDGE (using one
bit) that it recognized its address and is ready to
communicate.
7) After the other IC acknowledges all is OK, data
can be transferred.
8) The first IC sends or receives as many 8-bit words
of data as it wants. After every 8-bit data word the
sending IC expects the receiving IC to
acknowledge the transfer is going OK.
9) When all the data is finished the first chip must
free up the bus and it does that by a special
message called 'STOP'. It is just one bit of
information transferred by a special 'wiggling' of
the SDA/SCL wires of the bus.
The bus rules say that when data or addresses are being
sent, the DATA wire is only allowed to be changed in
voltage (so, '1', '0') when the voltage on the clock line is
LOW. The 'start' and 'stop' special messages BREAK
that rule, and that is how they are recognized as special.
How are the connected devices
recognized?
• Master device ‘polls’ used a specific unique identification or
“addresses” that the designer has included in the system
• Devices with Master capability can identify themselves to
other specific Master devices and advise their own specific
address and functionality
– Allows designers to build ‘plug and play’ systems
– Bus speed can be different for each device, only a maximum limit
• Only two devices exchange data during one ‘conversation’
Any device with the ability to initiate messages is
called a ‘master’. It might know exactly what other
chips are connected, in which case it simply addresses
the one it wants, or there might be optional chips and it
then checks what’s there by sending each address and
seeing whether it gets any response (acknowledge).
An example might be a telephone with a micro in it. In
some models, there could be EEPROM to guarantee
memory data, in some models there might be an LCD
display using an I2C driver. There can be software
written to cover all possibilities. If the micro finds a
display then it drives it, otherwise the program is
arranged to skip that software code. I2C is the simplest
of the buses in this presentation. Only two chips are
involved in any one communication - the Master that
initiates the signals and the one Slave that responded
when addressed.
But several Masters could control one Slave, at
different times. Any ‘smart’ communications must be
via the transferred DATA, perhaps used as address info.
The I2C bus protocol does not allow for very complex
systems. It’s a ‘keep it simple’ bus. But of course
system designers are free to innovate to provide the
complex systems - based on the simple bus.
Most Philips CAN devices are not plug & play. That is
because for MOST chips the system needs to be fixed
and nothing can be added later. That is because an
added chip is EXPECTED to take part in EVERY data
conversation but will not know the clock speed and
cannot synchronize. That means it falsely reports a bus
timing error on every message and crashes the system.
Philips has special transceivers that allow them listen to
the bus without taking part in the conversations. This
special feature allows them to synchronize their clocks
and THEN actively join in the conversations. So, from
Philips, it becomes POSSIBLE to do some minor
plug/play on a CAN system.
USB/SPI/MicroWire and mostly UARTS are all just
'one point to one point' data transfer bus systems. USB
then uses multiplexing of the data path and forwarding
of messages to service multiple devices
Only CAN and I2C use SOFTWARE addressing to
determine the participants in a transfer of data between
two (I2C) or more (CAN) chips all connected to the
same bus wires. I2C is the best bus for low speed
maintenance and control applications where devices
may have to be added or removed from the system.