I2C және SPI арасындағы екі негізгі сериялы байланыс опцияларын таңдау қиынға соғуы мүмкін және жобаны жобалауға айтарлықтай әсер етуі мүмкін, әсіресе қате байланыс протоколы пайдаланылса. SPI және I2C екеуі де өздерінің артықшылықтары мен шектеулерін коммуникациялық хаттамалар ретінде келтіріп, олардың әрқайсысы нақты қосымшаларға сай келеді.
SPI
SPI немесе Peripheral Interface сериялы - өте төмен қуат, IC контроллері мен перифериялық құрылғылары үшін бір-бірімен байланысуға арналған төрт сымды сериялық байланыс интерфейсі. SPI шинасы - негізгі құрылғыдан бір мезгілде 10 Мбит / с дейінгі жылдамдықпен байланысуға мүмкіндік беретін толық дуплексті шина. SPI жылдамдығы жоғары жылдамдықтағы жұмыс, әдетте, бөлек PCB-ларда компоненттер арасында байланыс орнату үшін пайдаланылады, бұл сигнал жолдарына ұзағырақ қашықтық байланысын қосатын сыйымдылықтың ұлғаюына байланысты. PCB сыйымдылығы SPI байланыс желілерінің ұзындығын шектей алады.
SPI бекітілген хаттама болғанымен, үйлесімділік мәселелеріне әкелуі мүмкін бірнеше нұсқалар мен SPI теңшелімдеріне әкелетін ресми стандарт емес. Өнімнің дамуына әсер ететін күтпеген байланыс проблемалары болмауы үшін, SPI іске асыруларын әрқашан мастер контроллерлерімен және құл перифериялары арасында тексеріп отыру керек.
I2C
I2C - стандартты сериялық байланыс протоколы, ол тек PCB арналған чиптер арасындағы байланыс үшін жасалған екі сигнал сызығын талап етеді. I2C әуелгіде 100 километрлік байланыс үшін жасалған, бірақ деректерді берудің жылдам режимдері 3.4 Мбит / с жылдамдыққа жету үшін жылдар бойы дамыды. I2C протоколы ресми стандарт ретінде белгіленді, ол I2C нұсқалары арасында жақсы үйлесімділікті қамтамасыз етеді және кері кері сыйысымдылықты қамтамасыз етеді.
I2C және SPI арасында таңдау
I2c және SPI арасындағы екі негізгі сериялық байланыс хаттамалары I2C, SPI және қосымшаларыңыздың артықшылықтары мен шектеулерін жақсы түсінуді талап етеді. Әрбір байланыс протоколында сіздің артықшылықтарыңыз болады, олар сіздің қосымшаңызға қолданылатындай, өзін ерекшелендіруге бейім болады. I2C және SPI арасындағы негізгі айырмашылықтар:
- I2C тек екі сымды талап етеді, ал SPI үш немесе төрт талап етеді
- SPI жоғары жылдамдықты толық дуплекс байланысын қолдайды, ал I2C баяуырақ болады
- I2C SPI-ге қарағанда әлдеқайда күш жұмсайды
- I2C бірдей автобуста көптеген құрылғыны қосымша байланыс сигналының желілерін байланыс құралдарының мекен-жайы арқылы бағыттайды, ал SPI сол шинадағы бірнеше құрылғыларды басқару үшін қосымша сигнал жолдарын қажет етеді
- I2C жіберілген деректерді slave құрылғысымен қамтамасыз етеді, ал SPI деректері дұрыс алынғанын тексермейді
- I2C байланыс шинасын босатпайтын бір құрылғы арқылы бұғатталуы мүмкін
- SPI PCB таратпайды, ал I2C деректерді беру жылдамдығы аз болса да мүмкін
- I2C SPI коммуникациялық хаттамасына қарағанда арзанырақ
- SPI тек I2C бірнеше шебер құрылғыларға қолдау көрсеткен кезде автобусқа бір басты құрылғыны қолдайды
- I2C SPI қарағанда шуылға азырақ сезімтал
- SPI қысқа қашықтықты ғана және ПХД-дан сирек кетеді, ал I2C деректерді әлдеқайда үлкен қашықтықта жібере алады,
- Ресми стандарттың болмауы SPI протоколының бірнеше вариациясына әкелді, I2C протоколымен айтарлықтай аулақ болған өзгерістер
SPI мен I2C арасындағы бұл айырмашылықтар сіздің қолданбаңызды жеңілдету үшін ең жақсы байланыс опциясын таңдау керек. SPI және I2C екеуі де жақсы байланыс нұсқалары болып табылады, бірақ олардың әрқайсысында бірнеше артықшылығы бар және артықшылықты қосымшалар бар. Тұтастай алғанда, SPI жоғары жылдамдықты және төмен қуат қосымшалары үшін жақсы, ал I2C перифериялы құрылғылардың көптігі мен коммуникациялық байланыс үшін ыңғайлы және I2C автобусындағы перифериялық құрылғылар арасында негізгі құрылғы рөлін динамикалық өзгерту үшін қолайлы. SPI және I2C екеуі де ендірілген әлем үшін қолайлы енгізілген бағдарламалар үшін сенімді, тұрақты байланыс хаттамалары.