Независимо дали става дума за компютърни периферни устройства, интелигентни уреди, устройства за Интернет на нещата (IoT) или електронни измервателни инструменти, всички те използват протоколи за серийна комуникация за свързване на различни електронни компоненти заедно.
Тези компоненти обикновено се състоят от микроконтролер и подчинени модули като сензор за пръстови отпечатъци, ESP8266 (Wi-Fi модул), сервоприводи и серийни дисплеи.
Тези устройства използват различни видове комуникационни протоколи. По-долу ще научите за някои от най-популярните протоколи за серийна комуникация, как работят, техните предимства и защо остават в употреба.
Какво е серийна комуникация?
Протоколите за серийна комуникация са тук още от изобретяването на морзовата азбука през 1838 г. Днес съвременните протоколи за серийна комуникация използват същите принципи. Сигналите се генерират и предават по един проводник чрез многократно късо съединение на два проводника. Това късо действие действа като превключвател; той се включва (високо) и изключва (ниско), предоставяйки двоични сигнали. Как се предава и получава този сигнал ще зависи от типа на използвания протокол за серийна комуникация.
С изобретяването на транзистора и иновациите, които последваха, инженерите и майсторите направиха процесорите и паметта по-малки, по-бързи и по-енергийно ефективни. Тези промени изискват комуникационните протоколи на шината да бъдат толкова технологични, колкото и компонентите, които се свързват. Така изобретяването на серийни протоколи като UART, I2C и SPI. Въпреки че тези серийни протоколи са на няколко десетилетия, те все още са предпочитани за микроконтролери и програмиране на гол метал.
UART (универсален асинхронен приемник-предавател)
Протоколът UART е един от най-старите, но най-надеждните протоколи за серийна комуникация, които все още използваме днес. Този протокол използва два проводника, известни като Tx (предаване) и Rx (Получаване), за да комуникират двата компонента.
За да предават данни, както предавателят, така и приемникът трябва да се съгласят с пет общи конфигурации, които са:
- Скорост на предаване: Скоростта на предаване на това колко бързо трябва да се предават данните.
- Дължина на данните: Договореният брой битове, които приемникът ще запише в своите регистри.
- Начален бит: Нисък сигнал, който позволява на приемника да знае кога данните предстои да бъдат прехвърлени.
- Стоп бит: Висок сигнал, който позволява на приемника да знае кога е изпратен последният бит (най-важният бит).
- Бит за четност: Или висок или нисък сигнал, използван за проверка дали изпратените данни са правилни или повредени.
Тъй като UART е асинхронен протокол, той няма собствен часовник, който да регулира скоростта на предаване на данни. Като алтернатива, той използва скоростта на предаване за време, когато се предава бит. Обичайната скорост на предаване, използвана за UART, е 9600 бодове, което означава скорост на предаване от 9600 бита в секунда.
Ако направим математиката и разделим един бит на 9600 бод, можем да изчислим колко бързо един бит от данни се предава към приемника.
1/9600 =104 микросекунди
Това означава, че нашите UART устройства ще започнат да отчитат 104 микросекунди, за да знаят кога ще предаде следващия бит.
Когато UART устройствата са свързани, сигналът по подразбиране винаги се повишава до висок. Когато открие нискочестотен сигнал, приемникът ще започне да брои 104 микросекунди плюс още 52 микросекунди, преди да започне да записва битовете в своите регистри (памет).
Тъй като вече беше договорено, че осем бита трябва да бъдат с дължина на данните, след като запази осем бита данни, той ще започне да проверява за четност, за да провери дали данните са нечетни или четни. След проверката за четност, стоп битът ще повиши висок сигнал, за да уведоми устройствата, че целите осем бита данни са били успешно предадени към приемника.
Като най-минималистичният сериен протокол, използващ само два проводника, UART обикновено се използва днес в смарт карти, SIM карти и автомобили.
Свързани: Какво е SIM карта? Неща, които трябва да знаете
SPI (сериен периферен интерфейс)
SPI е друг популярен сериен протокол, използван за по-бързи скорости на данни от около 20Mbps. Той използва общо четири проводника, а именно SCK (серийна тактова линия), MISO (Master Out Slave In), MOSI (Master In Slave Out) и SS/CS (Chip Select). За разлика от UART, SPI използва формат master-to-slave за управление на множество подчинени устройства само с един главен.
MISO и MOSI действат като Tx и Rx на UART, използвани за предаване и получаване на данни. Избор на чип се използва за избор с кое подчинено устройство главният иска да комуникира.
Тъй като SPI е синхронен протокол, той използва вграден часовник от главния, за да гарантира, че и главното, и подчинените устройства работят на една и съща честота. Това означава, че двете устройства вече не трябва да договарят скорост на предаване.
Протоколът започва с главен избор на подчинено устройство, като понижава сигнала му до конкретния SS/CK, свързан към подчинено устройство. Когато ведомото устройство получи слаб сигнал, то започва да слуша както SCK, така и MOSI. След това главният изпраща начален бит, преди да изпрати битовете, които съдържат данни.
И MOSI, и MISO са пълен дуплекс, което означава, че могат да предават и получават данни едновременно.
Със своята способност за свързване към множество подчинени устройства, пълна дуплексна комуникация и по-ниска консумация на енергия от другите синхронни протоколи като I2C, SPI се използват в устройства с памет, цифрови карти с памет, ADC към DAC преобразуватели и кристали дисплеи с памет.
I2C (междуинтегрална схема)
I2C е още един синхронен сериен протокол като SPI, но с няколко предимства пред него. Те включват възможността да имате множество главни и подчинени, просто адресиране (няма нужда от чип Изберете), работещи с различни напрежения и използвайки само два проводника, свързани към две издърпвания резистори.
I2C често се използва в много IoT устройства, промишлено оборудване и потребителска електроника.
Двата извода в I2C протокол са SDA (Serial Data Line), който предава и получава данни, и SCL (Serial Clock Line), който функционира като часовник.
- Протоколът започва с изпращане на главен бит (ниско) от своя щифт SDA, последван от седем-битов адрес, който избира подчинения, и един бит до за избор на четене или запис.
- След като получи стартовия бит и адреса, подчиненият след това изпраща бит за потвърждение на главната и започва да слуша SCL и SDA за входящи предавания.
- След като главният получи това, той знае, че връзката е осъществена с правилния подчинен. Сега главният ще избере кой конкретен регистър (памет) от подчинения, до който иска да получи достъп. Той прави това, като изпраща още осем бита, указващи кой регистър да се използва.
- След като получи адреса, подчиненият вече подготвя регистъра за избор, преди да изпрати друго потвърждение на главния.
- След като е избрал кой конкретен подчинен и кой от неговите регистри да използва, главният накрая изпраща бит за данни на подчинения.
- След като данните бъдат изпратени, последният бит за потвърждение се изпраща на главния, преди главният да завърши със стоп бит (висок).
Свързани: Най-добрите Arduino IoT проекти
Защо серийните комуникации са тук, за да останат
С нарастването на паралелните и много безжични протоколи, серийните комуникации никога не са изпадали от популярност. Обикновено използвайки само два до четири проводника за предаване и получаване на данни, серийните протоколи са основен начин на комуникация за електрониката, която има само няколко свободни порта.
Друга причина е неговата простота, която се изразява в надеждност. Само с няколко проводника, изпращащи данни веднъж наведнъж, серийният доказал своята надеждност за изпращане на пълните пакети данни без загуба или повреда при предаване. Дори при високи честоти и комуникация на по-дълъг обхват, серийните протоколи все още надминават много съвременни паралелни комуникационни протоколи, налични днес.
Въпреки че мнозина може да мислят, че серийните комуникации като UART, SPI и I2C имат недостатъка че са стари и остарели, остава фактът, че те са доказали своята надеждност над няколко десетилетия. Това, че протоколите са толкова стари без реална замяна, само предполага, че те всъщност са незаменими и ще продължат да се използват в електрониката в обозримо бъдеще.
Объркани между SBC като Raspberry Pi и микроконтролери като Arduino и Raspberry Pi Pico? Ето какво трябва да знаете.
Прочетете Следващото
- Обяснена технология
- Използване на данни
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!
Щракнете тук, за да се абонирате