Разница между аппаратной и программной реализацией I2C заключается в том, как реализована шина I2C на физическом уровне:
- Аппаратная шина I2C — это шина, реализованная на физическом уровне внутренними блоками микроконтроллера, такая шина имеет заранее определённые выводы. 3 Например, на платах Arduino UNO и Piranha UNO есть только одна аппаратная шина I2C, использующая выводы: A4 — SDA и A5 — SCL. 3
- Программная шина I2C — это шина, реализованная программно. 3 Такая шина занимает память программ и часть ОЗУ, использует вычислительные ресурсы микроконтроллера. 3 Но у неё есть два преимущества: можно создать несколько шин I2C, даже если их не было у микроконтроллера, и можно выбрать любые выводы для создания шины I2C. 3
Таким образом, аппаратная реализация обеспечивает работу шины на физическом уровне, с заранее определёнными выводами, в то время как программная реализация позволяет реализовать шину программно, определяя выводы для линий SDA и SCL во время выполнения программы. 13