The low level protocol is described by the LINK state machine. It is responsible for driving the physical hardware (bit banging) and knows about the I2C two wire hardware protocol.The following states are used by the LINK state machine
0 invalid --- 1 read_idle 2 read_start 3 read 4 read_ack_start 5 read_ack_end 6 read_ack_complete --- 7 write_idle 8 write_start 9 write 10 write_end 11 write_ack_start 12 write_ack_end 13 write_ack_complete --- 14 ignore 15 abort 16 complete The PCOL state machine drives the high level protocol that sits on top of this low level protocol.