Изборот помеѓу I2C и SPI, двете главни сериски опции за комуникација, може да бидат доста предизвик и да имаат значително влијание врз дизајнот на проектот, особено ако се користи погрешен протокол за комуникација. И SPI и I2C ги донесуваат своите предности и ограничувања како комуникациски протоколи кои ги прават секој од нив соодветни за специфични апликации.
SPI
SPI или Serial to Peripheral интерфејс, е многу ниска моќност, четирижилен сериски комуникациски интерфејс дизајниран за IC контролери и периферни уреди да комуницираат едни со други. SPI-шина е целосна дуплекс-автобус, кој овозможува комуникација да тече кон и од главниот уред истовремено со брзина до 10Mbps. Операцијата со голема брзина SPI генерално го ограничува користењето да комуницира помеѓу компонентите на одделни PCBs поради зголемувањето на капацитивноста што повеќе комуникација со далечина ги зголемува сигналните линии. ПХБ капацитетот, исто така, може да ја ограничи должината на SPI комуникациските линии.
Додека SPI е воспоставен протокол, тој не е официјален стандард кој води до неколку варијанти и прилагодувања на SPI што може да доведат до проблеми со компатибилноста. SPI имплементациите треба секогаш да се проверуваат помеѓу главните контролори и периферните уреди на робот за да се обезбеди дека комбинацијата нема да има неочекувани проблеми во комуникацијата што ќе влијаат на развојот на производот.
I2C
I2C е официјален стандарден сериски протокол за комуникација, кој бара само две сигнални линии кои се дизајнирани за комуникација помеѓу чипови на ПХБ. I2C првично беше дизајниран за 100kbps комуникација, но побрзи начини за пренос на податоци беа развиени во текот на годините за да се постигне брзина до 3.4Mbps. Протоколот I2C е воспоставен како официјален стандард, кој обезбедува добра компатибилност помеѓу имплементациите на I2C и добрата компатибилност за назад.
Избирање меѓу I2C и SPI
Изборот помеѓу I2c и SPI, двата главни сериски протоколи за комуникација, бара добро разбирање на предностите и ограничувањата на I2C, SPI и вашата апликација. Секој протокол за комуникација ќе има различни предности, кои ќе имаат тенденција да се разликуваат како што се однесува на вашата апликација. Клучните разлики помеѓу I2C и SPI се:
- I2C бара само две жици, додека SPI бара три или четири
- SPI поддржува целосна дуплексна комуникација со поголема брзина, додека I2C е побавен
- I2C привлекува повеќе енергија отколку SPI
- I2C поддржува повеќе уреди на истата шина без дополнителни линии за избирање сигнали преку адресирање на комуникацискиот уред додека SPI бара дополнителни сигнални линии за управување со повеќе уреди на истата шина
- I2C гарантира дека испратените податоци се примаат од роботниот уред додека SPI не потврди дека податоците се добиваат правилно
- I2C може да се заклучи со еден уред што не ја ослободи комуникациската шина
- SPI не може да го пренесува исклучувањето на ПХБ додека I2C може, иако при ниски брзини на пренос на податоци
- I2C е поефтино да се имплементира од SPI комуникацискиот протокол
- SPI поддржува само еден главен уред на автобусот, додека I2C поддржува повеќе главни уреди
- I2C е помалку осетлив на бучава од SPI
- SPI може да патува само кратки растојанија и ретко исклучени од ПХБ, додека I2C може да пренесува податоци на многу поголеми растојанија, иако при ниски стапки на податоци
- Недостатокот на формален стандард резултираше со неколку варијации на протоколот SPI, варијации кои во голема мера беа избегнати со протоколот I2C
Овие разлики помеѓу SPI и I2C треба да направат избор на најдобра комуникациска опција за вашата апликација полесно. И SPI и I2C се добри опции за комуникација, но секој од нив има неколку различни предности и најпосакувана апликација. Општо земено, SPI е подобар за апликации со голема брзина и со ниска моќност, додека I2C е подобар за прилагодени за комуникација со голем број периферни уреди и динамична промена на улогата на главниот уред меѓу периферните уреди на I2C магистралата. И SPI и I2C се стабилни, стабилни комуникациски протоколи за вградени апликации кои се добро прилагодени за вградениот свет.