В съвременните домакински уреди, индустриална електроника и различно телекомуникационно оборудване често могат да се намерят подобни решения, въпреки че продуктите може да са практически несвързани. Например, почти всяка система включва следното:
- определен "интелигентен" контролен блок, който в по-голямата част от случаите е микрокомпютър с един чип;
- компоненти с общо предназначение като LCD буфери, RAM, I/O портове, EEPROM или специални преобразуватели на данни;
- специфични компоненти, включително цифрова настройка и схеми за обработка на сигнали за видео и радио системи.
Как да оптимизираме приложението им?
За да се възползват максимално от тези общи решения в полза на дизайнерите и производителите, както и да подобри цялостната производителност на различния хардуер и да опрости приложените компоненти на веригата, Philips се зае да разработи най-простата двупроводна двупосочена шина, която осигурява най-продуктивния междучипконтрол. Тази шина осигурява трансфер на данни чрез I2C интерфейс.
Днес продуктовата гама на производителя включва повече от 150 CMOS, както и биполярни устройства, съвместими с I2C и проектирани да работят във всяка от изброените категории. Трябва да се отбележи, че I2C интерфейсът първоначално е вграден във всички съвместими устройства, поради което те могат лесно да комуникират помежду си с помощта на специална шина. Благодарение на използването на такова дизайнерско решение беше възможно да се решат доста голям брой проблеми при свързване на различно оборудване, което е доста типично за развитието на цифрови системи.
Основни предимства
Дори ако погледнете кратко описание на интерфейсите UART, SPI, I2C, можете да подчертаете следните предимства на последните:
- За да работите, ви трябват само два реда - синхронизация и данни. Всяко устройство, което се свързва с такава шина, може да бъде програмно адресирано до напълно уникален адрес. Във всеки един момент има проста връзка, която позволява на главните да действат като главен предавател или главен приемник.
- Тази шина предоставя възможността да има няколко главни наведнъж, осигурявайки всички необходими средства за определяне на колизии, както и арбитраж за предотвратяване на повреда на данните в случай, че два или повече главни устройства започнат да предават информация едновременно. В стандартен режимосигурява се само серийно 8-битово предаване на данни със скорост не повече от 100 kbps, а в бърз режим този праг може да бъде увеличен четири пъти.
- Чиповете използват специален вграден филтър, който ефективно потиска пренапреженията и гарантира максимална цялост на данните.
- Максималният възможен брой чипове, които могат да бъдат свързани към една шина, е ограничен само от неговия максимален възможен капацитет от 400 pF.
Предимства за конструктори
Интерфейсът I2C, както и всички съвместими чипове, могат значително да ускорят процеса на разработка, от функционална диаграма до нейния окончателен прототип. В същото време трябва да се отбележи, че поради възможността за свързване на такива микросхеми директно към шината без използване на всякакви допълнителни вериги, се осигурява пространство за по-нататъшна модернизация и модификация на прототипната система чрез изключване и свързване на различни устройства от автобус.
Има много предимства, които отличават I2C интерфейса. Описанието по-специално ви позволява да видите следните предимства за конструкторите:
- Блоковете на функционалната диаграма напълно съответстват на микросхемите и в същото време се осигурява доста бърз преход от функционален към основен.
- Не е необходимо да се разработват интерфейси за шина, защото шината вече е интегрирана в специални чипове.
- Интегрирани комуникационни протоколи иадресирането на устройството позволява на системата да бъде напълно софтуерно дефинирана.
- Едни и същи типове микросхеми, ако е необходимо, могат да се използват в напълно различни приложения.
- Общото време за разработка е значително намалено поради факта, че дизайнерите могат бързо да се запознаят с най-често използваните функционални блокове, както и различни микросхеми.
- Ако желаете, можете да добавяте или премахвате чипове от системата и в същото време да нямате голям ефект върху друго оборудване, свързано към същата шина.
- Общото време за разработка на софтуер може да бъде значително намалено, като се позволи библиотека от софтуерни модули за многократна употреба.
Наред с други неща, заслужава да се отбележи изключително простата процедура за диагностициране на възникнали повреди и по-нататъшно отстраняване на грешки, която отличава I2C интерфейса. Описанието предполага, че при необходимост дори малки отклонения в работата на такова оборудване могат да бъдат незабавно наблюдавани без никакви затруднения и съответно да се вземат подходящи мерки. Също така си струва да се отбележи, че дизайнерите получават специални решения, които по-специално са доста привлекателни за различно преносимо оборудване и системи, които осигуряват захранване на батерията с помощта на интерфейса I2C. Описанието на руски език също така показва, че използването му ви позволява да предоставите следните важни предимства:
- Достатъчно висока степен на устойчивост на всякакви нововъзникващи смущения.
- В крайна сметканиска консумация на енергия.
- Най-широк обхват на захранващото напрежение.
- Широк температурен диапазон.
Предимства за технолозите
Заслужава да се отбележи, че не само дизайнерите, но и технолозите напоследък започнаха да използват доста често специализиран I2C интерфейс. Описанието на руски език показва доста широк спектър от предимства, които тази категория специалисти предоставя:
- Стандартна двупроводна серийна шина с този интерфейс минимизира връзките между ИС, което означава, че са необходими по-малко изводи и по-малко писти, което прави печатните платки по-евтини и много по-малки.
- Напълно интегриран I2C интерфейс LCD1602 или някаква друга опция напълно елиминира нуждата от адресни декодери и друга външна малка логика.
- Възможно е да се използват няколко главни на такава шина едновременно, което значително ускорява тестването и последващата настройка на оборудването, тъй като шината може да бъде свързана към компютър на поточна линия.
- Наличието на ИС, съвместими с този интерфейс в VSO, SO и персонализирани DIL пакети може значително да намали изискванията за размера на устройството.
Това е само кратък списък от предимства, които отличават I2C интерфейса на LCD1602 и други. В допълнение, съвместимите чипове могат значително да увеличат гъвкавостта на използваната система, осигурявайкиизключително опростен дизайн на различни опции за оборудване, както и относително лесни надстройки за по-нататъшна подкрепа на развитието на текущото ниво. По този начин е възможно да се разработи цяло семейство от различно оборудване, като се използва определен основен модел като основа.
По-нататъшна модернизация на оборудването и разширяване на функциите му може да се осъществи чрез стандартна връзка към шината на съответната микросхема с помощта на интерфейса Arduino 2C или всеки друг от наличния списък. Ако се изисква по-голям ROM, тогава ще бъде достатъчно само да изберете друг микроконтролер с увеличен ROM. Тъй като актуализираните чипове могат напълно да заменят старите, ако е необходимо, можете лесно да добавите нови функции към оборудването или да увеличите цялостната му производителност, като просто изключите остарелите чипове и след това ги замените с по-ново оборудване.
ACCESS.bus
Поради факта, че шината има двупроводна природа, както и възможността за програмно адресиране, една от най-идеалните платформи за ACCESS.bus е I2C интерфейсът. Спецификацията (описанието на руски е представено в статията) на това устройство го прави много по-евтина алтернатива на активно използвания по-рано интерфейс RS-232C за свързване на различни периферни устройства към компютри с помощта на стандартен четири-пинов конектор.
Въведение в спецификацията
За съвременни приложения8-битов контрол, който използва микроконтролери, е възможно да се зададат някои критерии за проектиране:
- пълната система включва предимно един микроконтролер и други периферни устройства, включително памет и различни I/O портове;
- общите разходи за комбиниране на различни устройства в една система трябва да бъдат сведени до минимум, доколкото е възможно;
- системата, която контролира функциите, не предвижда необходимостта от осигуряване на високоскоростен трансфер на информация;
- общата ефективност е пряко зависима от избраното оборудване, както и естеството на свързващата шина.
За да проектирате система, която напълно отговаря на изброените критерии, трябва да използвате шина, която ще използва I2C сериен интерфейс. Въпреки че серийната шина няма честотната лента на паралелната шина, тя изисква по-малко връзки и по-малко изводи за чип. В същото време, не забравяйте, че шината включва не само свързващи проводници, но и различни процедури и формати, необходими за осигуряване на комуникация в системата.
Устройствата, които комуникират чрез софтуерна емулация на I2C интерфейса или съответната шина, трябва да имат специфичен протокол, който ви позволява да предотвратите различни възможности за сблъсъци, загуба или блокиране на информация. Бързите устройства трябва да могат да комуникират с бавните и системата не трябва да зависи от тяхот свързаното към него оборудване, тъй като в противен случай няма да могат да се използват всички подобрения и модификации. Необходимо е също така да се разработи процедура, с помощта на която е реалистично да се установи кое конкретно устройство в момента осигурява управление на шината и в кой момент. Освен това, ако към една и съща шина са свързани различни устройства с различни тактови честоти, трябва да вземете решение за източника на нейната синхронизация. Всички тези критерии отговарят на I2C интерфейса за AVR и всички други от този списък.
Основна концепция
I2C шината може да поддържа всяка използвана технология за чип. Интерфейсът I2C LabVIEW и други подобни на него предвиждат използването на две линии за пренос на информация – данни и синхронизация. Всяко устройство, свързано по този начин, се разпознава по своя уникален адрес, независимо дали е LCD буфер, микроконтролер, памет или интерфейс на клавиатурата и може да действа като приемник или предавател, в зависимост от това за какво е предназначено за това оборудване.
В по-голямата част от случаите LCD буферът е стандартен приемник и паметта може не само да приема, но и да предава различни данни. Освен всичко друго, според процеса на преместване на информация, устройствата могат да бъдат класифицирани като подчинени и главни.
В този случай главен е устройството, което инициира трансфера на данни и също така генерирасинхронизиращи сигнали. В този случай всички адресируеми устройства ще се считат за подчинени по отношение на тях.
Комуникационният интерфейс I2C осигурява присъствието на няколко главни наведнъж, тоест повече от едно устройство, способно да управлява шината, може да се свърже към него. Възможността за използване на повече от един микроконтролер на една и съща шина означава, че повече от един главен може да бъде препратен във всеки даден момент. За да се елиминира потенциалният хаос, който рискува да се появи при възникване на такава ситуация, е разработена специализирана арбитражна процедура, която използва I2C интерфейс. Разширителите и другите устройства осигуряват свързване на устройства към шината съгласно така нареченото правило за окабеляване.
Генерирането на тактовия сигнал е отговорност на главния и всеки главен генератор генерира свой собствен сигнал по време на трансфера на данни и той може да се промени само по-късно, ако бъде "изтеглен" от бавен подчинен или друг главен, когато възникне сблъсък
Общи параметри
И SCL, и SDA са двупосочни линии, които се свързват към положително захранване с издърпващ резистор. Когато гумата е абсолютно свободна, всяка линия е във висока позиция. Изходните стъпала на устройствата, които са свързани към шината, трябва да са с отворен дренаж или отворен колектор, за да може да се осигури функцията И. Информацията през I2C интерфейса може да се предава със скорост не повече от 400 kbpsбърз режим, докато стандартната скорост не надвишава 100 kbps. Общият брой устройства, които могат да бъдат едновременно свързани към шината, зависи само от един параметър. Това е капацитетът на линията, който е не повече от 400 pf.
Потвърждение
Потвърждението е задължителна процедура в процеса на трансфер на данни. Главният генератор генерира подходящия синхронизиращ импулс, докато предавателят освобождава SDA линията по време на този синхронизиращ импулс като потвърждение. След това приемникът трябва да гарантира, че линията SDA се поддържа стабилна по време на високото състояние на часовника в стабилно ниско състояние. В този случай не забравяйте да вземете предвид времето за настройка и задържане.
В по-голямата част от случаите е задължително адресираният приемник да генерира потвърждение след всеки получен байт, с единственото изключение, когато началото на предаването включва CBUS адрес..
Ако приемникът-подчинен няма начин да изпрати потвърждение за собствения си адрес, линията за данни трябва да бъде оставена високо и тогава главният ще може да издаде сигнал "Стоп", който ще прекъсне изпращането на цялата информация. Ако адресът е потвърден, но подчиненият не може да получи повече данни за дълго време, главният също трябва да прекъсне изпращането. За да направи това, подчиненият не потвърждава следващия получен байт и просто напуска редависоко, което кара главния да генерира стоп сигнал.
Ако процедурата на прехвърляне предвижда присъствието на главен-получател, то в този случай той трябва да информира подчинения за края на предаването и това става като не се потвърждава последния получен байт. В този случай подчинения предавател незабавно освобождава линията за данни, така че главният може да издаде сигнал „Стоп“или да повтори отново сигнала „Старт“.
За да проверите дали оборудването работи, можете да опитате да въведете стандартни примери за скици за I2C интерфейса в Arduino, както е на снимката по-горе.
Арбитраж
Мастерите могат да започнат да изпращат информация само след като шината е напълно освободена, но два или повече главни могат да генерират стартов сигнал при минимално време на задържане. Това в крайна сметка води до специфичен сигнал "Старт" на автобуса.
Арбитражът работи на SDA шината, докато SCL шината е високо. Ако един от главните устройства започне да предава ниско ниво на линията за данни, но в същото време другият е високо, тогава последният е напълно изключен от него, тъй като състоянието на SDL не съответства на високото състояние на неговата вътрешна линия.
Арбитражът може да продължи за няколко бита. Поради факта, че първо се предава адресът, а след това данните, арбитражът може да продължи до края на адреса и ако капитаните ще адресиратедно и също устройство, тогава различни данни също ще участват в арбитража. Поради тази арбитражна схема няма да бъдат загубени данни, ако възникне сблъсък.
Ако капитана загуби арбитража, тогава той може да издава тактови импулси в SCL до края на байта, по време на който достъпът е загубен.