- Разлика између УАРТ и РС485 комуникације
- Компоненте потребне
- Кружни дијаграм за жичну комуникацију на даљину
- МАКС485 УАРТ-РС485 претварачки модул
- Етхернет ЦАТ-6Е кабл
- Објашњење Ардуино кода
- Закључак
Већ дуже време користимо развојне плоче за микроконтролере попут Ардуино, Распберри Пи, НодеМЦУ, ЕСП8266, МСП430 итд. У нашим малим пројектима, у којима најчешће размак између сензора и плоче није већи од неколико центиметара и макс. на овим удаљеностима, комуникација између различитих сензорских модула, релеја, актуатора и контролера може се лако обавити преко једноставних жица краткоспојника, а да нас не брине дисторзија сигнала у медијуму и електрични шумови који се у њега увлаче. Али ако градите систем управљања са овим развојним плочама на растојању већем од 10 до 15 метара, тада бисте требали узети у обзир снагу шума и сигнала, јер ако желите да ваш систем ради поуздано, не можете себи приуштити да изгубите података током преноса.
Постоји много различитих типова серијских комуникационих протокола попут И2Ц и СПИ који се лако могу применити са Ардуином, а данас ћемо размотрити још један најчешће коришћени протокол назван РС485 који се врло често користи у индустријским окружењима са великом буком за пренос података преко велика удаљеност. У овом упутству ћемо научити о РС485 комуникацијском протоколу и како га имплементирати са два Ардуино Нано-а која имамо са собом и како користити МАКС485 РС485 у УАРТ модул за конверзију. Раније смо такође обављали МАКС485 комуникацију са Ардуином и такође МАКС485 комуникацију са Распберри пи, такође их можете проверити ако су заинтересовани.
Разлика између УАРТ и РС485 комуникације
Већина јефтиних сензора и других модула попут ГПС-а, Блуетоотх-а, РФИД-а, ЕСП8266 итд. Који се обично користе са Ардуином, Распберри Пи на тржишту користи УАРТ ТТЛ комуникацију јер захтевају само 2 жице ТКС (предајник) и РКС (Пријемник). То није стандардни комуникацијски протокол, али то је физичко коло помоћу којег можете преносити и примати серијске податке са другим периферним уређајима. Податке може преносити / примати само серијски, тако да прво претвара паралелне податке у серијске, а затим их преноси.
УАРТ је асинхрони уређај за пренос, стога не постоји сигнал такта за синхронизацију података између два уређаја, већ користи битове старт и стоп на почетку и на крају сваког пакета података, како би означио крајеве података који се преносе. УАРТ пренесени подаци су организовани у пакете. Сваки пакет садржи 1 почетни бит, 5 до 9 битова података (у зависности од УАРТ-а), опционални бит парности и 1 или 2 зауставна бита. Веома је добро документован и широко се користи, а такође има и бит парности који омогућава проверу грешака. Али постоје нека ограничења, јер не може да подржи више робова и више господара а максимални оквир података је ограничен на 9 бита. За пренос података, брзине преноса података и Мастер и Славе морају бити између 10%. Испод је приказан пример како је лик предајник преко УАРТ линије података. Високи и најнижи ниво сигнала мере се у односу на ниво ГНД-а, па ће померање нивоа ГНД имати катастрофалан ефекат на пренос података.
С друге стране, РС485 је више индустријска комуникација која је развијена за мрежу више уређаја који се могу користити на великим удаљеностима и при већим брзинама. Ради на методи диференцијалне сигнализације мерења, уместо на мерењу напона са ГНД пином. РС485 сигнали лебде и сваки сигнал се преноси преко Сиг + линије и Сигналне линије.
Пријемник РС485 упоређује разлику напона између обе линије, уместо апсолутног нивоа напона на сигналној линији. Ово добро функционише и спречава постојање петљи уземљења, уобичајеног извора проблема у комуникацији. Најбољи резултати постижу се ако су Сиг + и Сигнал-ови увијени док увијање поништава ефекат електромагнетног шума индукованог у каблу и пружа много бољи имунитет против буке који омогућава РС485-у да преноси податке до опсега 1200м. Уплетени пар такође омогућава да брзине преноса буду много веће од могућих код равних каблова. На малим растојањима преноса могу се са РС485 остварити брзине до 35Мбпс, мада ће се брзина преноса смањивати са растојањем. На 1200м брзине преноса можете да користите само 100кбпс брзине преноса. За реализацију овог комуникационог протокола потребан вам је посебан Етхернет кабл. Постоји много категорија Етхернет каблова које можемо користити као ЦАТ-4, ЦАТ-5, ЦАТ-5Е, ЦАТ-6, ЦАТ-6А итд. У нашем упутству ћемо користити ЦАТ-6Е кабл који има 4 уврнута пара 24АВГ жица и може да подржи до 600МХз. На оба краја завршава се РЈ45 конектором. Типични нивои линијског напона од линијских покретача су најмање ± 1,5 В до максимално око ± 6 В. Улазна осетљивост пријемника је ± 200 мВ. Бука у опсегу од ± 200 мВ је у основи блокирана услед поништавања шума у уобичајеном режиму. Пример како се бајт (0к3Е) преноси преко две линије РС485 комуникације.
Компоненте потребне
- 2 × претварачки модул МАКС485
- 2 × Ардуино Нано
- 2 × 16 * 2 алфанумерички ЛЦД
- 2 × 10к потенциометри брисача
- Цат-6Е Етхернет кабл
- Бреадбоардс
- Јумпер Вирес
Кружни дијаграм за жичну комуникацију на даљину
Слика испод приказује дијаграм кола предајника и пријемника за Ардуиноову жичану комуникацију на даљину. Имајте на уму да и предајнички и пријемнички кругови изгледају идентично, једино што се разликује је код уписан у њега. Такође за демонстрацију користимо једну плочу као предајник и једну плочу као пријемник, али лако можемо програмирати плоче да раде и као предајник и као пријемник са истом поставком
Дијаграм повезивања за горњи круг је такође дат у наставку.
Као што видите горе, постоје два приближно идентична пара кола, од којих сваки има Ардуино нано, 16 * 2 алфанумерички ЛЦД и МАКС485 УАРТ у РС485 претварач ИЦ повезан на сваки крај Етхернет Цат-6Е кабла преко РЈ45 конектора. Кабл који сам користио у туторијалу дугачак је 25 м. Послаћемо неке податке са стране предајника преко кабла од Нано-а који се претвара у РС485 сигнале преко МАКС РС485 модула који ради у главном режиму.
На крају пријема, претварачки модул МАКС485 ради као славе, и преслушавајући пренос од Мастер-а, поново претвара податке РС485 које је примио у стандардне 5В ТТЛ УАРТ сигнале које чита Нано који их прима и приказује на 16 * 2 алфанумеричка ЛЦД-а повезана са њим.
МАКС485 УАРТ-РС485 претварачки модул
Овај УАРТ-РС485 модул претварача има уграђени чип МАКС485 који је примопредајник мале снаге и ограничен на брзину коришћења за РС-485 комуникацију. Ради на појединачном + 5В напајању, а називна струја је 300 μА. Ради на полудуплексној комуникацији да би имплементирао функцију претварања нивоа ТТЛ у ниво РС-485, што значи да може или преносити или примати било кога, а не обоје, може постићи максималну брзину преноса од 2,5 Мб / с. Примопредајник МАКС485 црпи струју напајања између 120μА и 500μА у неоптерећеним или потпуно оптерећеним условима када је возач онемогућен. Погонски склоп је ограничен на струју кратког споја и излази драјвера могу се поставити у стање високе импедансе кроз круг термичког искључивања. Улаз пријемника има функцију за заштиту од кварова која гарантује логички висок излаз ако је улаз отворен.Поред тога, има јаке перформансе против сметњи. Такође има уграђене ЛЕД диоде које приказују тренутно стање чипа, тј. Да ли се чип напаја или његов пренос или пријем података олакшава отклањање грешака и употребу.
Дијаграм кола који је дат горе објашњава како је уграђени МАКС485 ИЦ повезан са разним компонентама и пружа 0,1-инчне стандардне заглавља за размак који ће се користити са плочом ако желите.
Етхернет ЦАТ-6Е кабл
Када помислимо на пренос података на велике удаљености, одмах помислимо на повезивање на Интернет путем Етхернет каблова. Данас углавном користимо Ви-Фи за повезивање са Интернетом, али раније смо користили Етхернет каблове који су ишли до сваког личног рачунара да бисмо га повезали на Интернет. Главни разлог иза којих се користе ови Етхернет каблови преко нормалних жица је тај што пружају много бољу заштиту од увлачења шума и изобличења сигнала на великим удаљеностима. Преко изолационог слоја имају заштитну јакну која штити од електромагнетних сметњи, а такође је сваки пар жица увијен заједно како би се спречило стварање струјних петљи, а самим тим и боља заштита од буке. Често се завршавају 8-полним РЈ45 конекторима на оба краја. Постоје многе категорије Етхернет каблова које можемо користити као ЦАТ-4, ЦАТ-5,ЦАТ-5Е, ЦАТ-6, ЦАТ-6А, итд. У нашем упутству ћемо користити ЦАТ-6Е кабл који има 4 уплетена пара 24АВГ жица и може да подржи до 600МХз.
Слика која приказује како је пар жица увијено унутар изолационог слоја кабла ЦАТ-6Е
РЈ-45 конектор намењен за ЦАТ-6Е Етхернет кабл
Објашњење Ардуино кода
У овом пројекту користимо два Ардуино Нано, један као предајник и Један као пријемник, сваки од којих има 16 * 2 алфанумерички ЛЦД за приказ резултата. Дакле, у Ардуино коду фокусираћемо се на слање података и приказивање послатих или примљених података на ЛЦД екрану.
За страну предајника:
Почињемо са укључивањем стандардне библиотеке за управљање ЛЦД-ом и декларишемо Д8 пин Ардуино Нано-а као излазни пин који ћемо касније користити за декларацију МАКС485 модула као предајника или пријемника.
инт енаблеПин = 8; инт потвал = 0; #инцлуде
Сада долазимо до дела за подешавање. Повући ћемо високо омогућни пин како бисмо МАКС485 модул пребацили у режим предајника. Како је реч о полудуплексном ИЦ-у, стога не може истовремено преносити и примати. Такође ћемо овде иницијализовати ЛЦД и одштампати поруку добродошлице.
Сериал.бегин (9600); // иницијализација серијског на баудрате 9600: пинМоде (енаблеПин, ОУТПУТ); лцд.бегин (16,2); лцд.принт ("ДИГЕСТ ЦИРЦУИТ"); лцд.сетЦурсор (0,1); лцд.принт ("Трансмиттер Нано"); кашњење (3000); лцд.цлеар ();
Сада у петљи записујемо непрекидно растућу целобројну вредност на серијске линије која се затим преноси на други нано. Ова вредност је такође отиснута на ЛЦД-у за приказ и отклањање грешака.
Сериал.принт ("Послана вредност ="); Сериал.принтлн (потвал); // Серијски запис ПОТвал на РС-485 Бус лцд.сетЦурсор (0,0); лцд.принт ("Послана вредност"); лцд.сетЦурсор (0,1); лцд.принт (потвал); кашњење (1000); лцд.цлеар (); потвал + = 1;
Страна пријемника:
Овде поново почињемо са укључивањем стандардне библиотеке за управљање ЛЦД-ом и проглашавамо Д8 пин Ардуино Нано излазним пином који ћемо касније користити за декларацију МАКС485 модула као предајника или пријемника.
инт енаблеПин = 8; #инцлуде
Сада долазимо до дела за подешавање. Повући ћемо високо омогућни пин да бисмо модул МАКС485 ставили у режим пријемника. Како је реч о полудуплексном ИЦ-у, стога не може истовремено преносити и примати. Такође ћемо овде иницијализовати ЛЦД и одштампати поруку добродошлице.
Сериал.бегин (9600); // иницијализација серијског на баудрате 9600: пинМоде (енаблеПин, ОУТПУТ); лцд.бегин (16,2); лцд.принт ("ДИГЕСТ ЦИРЦУИТ"); лцд.сетЦурсор (0,1); лцд.принт ("Рецеивер Нано"); кашњење (3000); дигиталВрите (енаблеПин, ЛОВ); // (Пин 8 увек ЛОВ за примање вредности од Мастер-а)
Сада у петљи проверавамо да ли је нешто доступно на серијском порту, а затим читамо податке и пошто су долазни подаци цели број, рашчлањујемо их и приказујемо на повезаном ЛЦД-у.
инт пвмвал = Сериал.парсеИнт (); // примање ИНТЕГЕР вредности од Мастер-а преко РС-485 Сериал.принт ("Имам вредност"); Сериал.принтлн (пвмвал); лцд.сетЦурсор (0,0); лцд.принт ("Примљена вредност"); лцд.сетЦурсор (0,1); лцд.принт (пвмвал); кашњење (1000); лцд.цлеар ();
Закључак
Постављање теста које смо користили за овај пројекат налази се у наставку.
Комплетан рад овог пројекта може се наћи у видео линку доле. Ова метода је једна од једноставних и једноставних за примену метода преноса података на велике удаљености. У овом пројекту смо користили само брзину преноса од 9600, што је знатно испод максималне брзине преноса коју можемо постићи са МАКС-485 модулом, али ова брзина је погодна за већину тамошњих сензорских модула и заправо нам није потребна све максималне брзине док радите са Ардуином и другим развојним плочама, осим ако не користите кабл као етернет везу и ако вам је потребан сав пропусни опсег и брзина преноса које можете добити. Покушајте сами са брзином преноса и пробајте и друге типове етернет каблова. Ако имате било каквих питања, оставите их у одељку за коментаре испод или користите наше форуме, а ја ћу се потрудити да на њих одговорим. До тада, адиос!