Теоретические основы принципа передачи данных по шине UART.
Пікірлер: 106
@mrBostoneSash2 жыл бұрын
Сколько уже изучаю низкоуровневое программирование, впервые мне попадается настолько доходчивый, приятный и детальный урок. Большое Вам спасибо, было интересно и здорово!
@ivan17444 Жыл бұрын
Творческий подход к материалу. Предельно ясно и доступно. Молодец.
@user-wt2yw8bm1t3 ай бұрын
После такой информаций о UART.! Не сложно создать свое программное уарт!👍
@denkazakov48984 жыл бұрын
когда человек на пальцах может объяснить сложные вещи, это значит, что он не просто ориентируется в теме, это значит что он может обучить этому других. этому нужно поучиться профессорам в универах.
@BWha1e_13372 жыл бұрын
Качественное объяснение, большое спасибо!
@ANDRII_FR Жыл бұрын
Красавчик Реально понимаешь свое нелегкое дело, я понял 80% инфы с первого просмотра
@user-xu2sw2iy2g2 жыл бұрын
Спасибо тебе, добрый человек. Где ж ты был раньше)))
@avr_stm_pro29552 жыл бұрын
Классный канал 👍 спасибо что делитесь своими знаниями
@M_a_k_0_s6 ай бұрын
Спасибо за разжевывание темы, все понятно 👍
@ivolco86675 жыл бұрын
Все понятно, на пальцах объяснил. Спасибо.
@Speed_runner_666 Жыл бұрын
Великопный ролик. Автор, большое спасибо)
@vladimirstar97456 жыл бұрын
Спасибо, великолепно, осветил тему очень понятно! )
@daniil81504 жыл бұрын
Огромное спасибо. Очень хорошо преподнесено.
@user-hn4ef7ek4n Жыл бұрын
Хорошее объяснение для ламеров
@genadimanoilenko14664 жыл бұрын
спасибо за объяснения. начало положенно!
@x_mouzzer_x5 жыл бұрын
спасибо, стало многое понятно
@San4ik62 Жыл бұрын
Здравствуйте, вот смотрите если сигнал будет 1011111, как приемник поймет что передача не закончилась? и что это передается все еще 1 пакет?
@user-om3gz5if1v6 ай бұрын
В протоколе описано. Программисты руководствуются протоколом. Это официальное соглашение как писать обработку физического уровня. Если ты программист-перехватчик, то придется перебирать протоколы на соответствие перехваченным данным, если программист пишет и передатчик и ( или) приемник, он руководствуется выбранному протоколу с определенными набором параметров, программист другой стороны должен знать какой протокол и какие параметры надо использовать.
@user-nh4vg7lg7z Жыл бұрын
Супер видео!!!! Спасибо!!!
@nikpugaev5 жыл бұрын
Спасибо, все разложил понятно и доходчиво. Ждём продолжения.
@flexoalex41685 жыл бұрын
А продолжение уже есть. Программный uart для закрепления.
@volodymyr26654 жыл бұрын
Молодец! Нового я ничего не взял... надеялся больше о регистрах речь будет но на х1.5 скорости смотрится отлично
@user-jl5yi5tz2t10 ай бұрын
Благодарствую 🤝🤝🤝
@TheDanil1234567897 жыл бұрын
Спасибо!!!
@TheLuter896 жыл бұрын
Хорошо объяснил
@2-garin_snake5 жыл бұрын
Чуть не уснул . Вася с петей утомили... концовка сумбур и думать не надо ,:))))))))))
@user-mp6ge7kf2y4 жыл бұрын
СПАСИБО
@sanek7629 Жыл бұрын
Thanks!
@evgenyvaltorin53302 жыл бұрын
Очень доходчиво. Спасибо! А вот такой момент- Есть bms плата от шуруповвёртного аккумулятора ( известного бренда))) которая была первоначально залита смолой, которую я благополучно расковырял тонким паяльником всего лишь за две недели))) На плате стоит контролер mega 168 pa. Так же jst разъемы два штуки. И две площадки с контактами по 3 штуки ( без инициалов) Но подозреваю одна из них uart. Вопрос: есть способ определить на них tx и rx? И можно ли через них, если же это uart скопировать прошивку контроллера. Не выпаевая его?
@liftoman_7772 жыл бұрын
Классное видео! Спасибо! А не подскажете, если посылка 14 байт, то будет 14 стартовых импульсов?
@flexoalex41682 жыл бұрын
Да
@iMatveich9 ай бұрын
Шина же это когда может быть больше двух устройств? Кроме феди может быть и андрей и сергей и другие города?
@ANTON5152917 жыл бұрын
Представим что в конце передается 0101111 устройство как поймет что оно не на постоянку врубилось 1, а что это еще данные идут, или идет договоренность сколько бит ждать?
@flexoalex41687 жыл бұрын
Антон Кузнецов на каждый бит выделен квант времени. 1/битрейт.
@BAYAN-qq1tt6 жыл бұрын
как понять приемнику что сеанс окончен, если будет сигнал 01010111?
@flexoalex41686 жыл бұрын
Жарас Капашев Читаем выше...
@iam96956 жыл бұрын
Здравствуйте! У меня тоже возник подобный вопрос, но Вы, видимо, его не правильно поняли (или мы что-то не понимаем)... Вы объясняли, что количество бит приёма-передачи может быть не фиксированным значением, т.е. 7-9 бит. Как устройство понимает, что 8-й (к примеру) бит - стоповый, а не продолжение пакета?
@flexoalex41686 жыл бұрын
Перед общением устройства оговаривают стратегию, сколько бит данных, сколько стоповый и есть ли бит четности. Из этих договоренностей ведется расчет времени на один бит.
@user-cv6hi1mm7z6 жыл бұрын
Спасибо за объяснение. А если вдруг не пройдет проверку на четность? И получается этот способ по четности только 50 на 50 сможет определить целостность пакета?
@flexoalex41686 жыл бұрын
Что значит не пройдет? Если проверку не пройдет, значит байт пришел битый. А более точную проверку нужно проводить на уровне протокола общения. Например MODBUS
@user-lt3ro2gb9z2 жыл бұрын
Про какой форум Вы говорите в начале?
@user-fr9sn4cf6h6 жыл бұрын
спасибо)то есть я могу связать свой контроллер по уарту с контроллером холодильника и обмениваться данными?,-например
@flexoalex41686 жыл бұрын
Владислав Иванов Да, если известен протокол обмена.
@Magomed86 Жыл бұрын
краткость талант
@va.leriai39894 жыл бұрын
Приветствую автора видео. Не понятно в какой момент и как указываем битрейт
@chertopoloh1704 жыл бұрын
Обьясни пожалуйста как распознать уарт или другой протокол. Фишка в том, что два устройства связываются по беспроводной связи. Частота неизвестна. Имеется только одно устройство и хочется к нему подконнектиться. Можно ли обойти это или распознать какие сигналы.
@flexoalex41684 жыл бұрын
Частотомер и анализ импульсов.
@constantinzzz85626 жыл бұрын
шина это принцип связи когда на линии подключено БОЛЕЕ ДВУХ устройств, когда два устройства это связь по принципу точка-точка, так вот уапп это УЗЕЛ в микроконтроллере(и не только) который изначально предоставлял связь по принципу точка-точка и только с развитием появилась возможность использовать связь по принципу ОБЩАЯ ШИНА когда стали подключать несколько устройств. вообще понятие шина относится к внутренним связям на материнской плате пк, так же ее применяют к внутренним связям внутри микроконтроллера, как то шина адреса, шина данных. уапп "забирает" данные с шины данных шина uart в природе не существует определения!
@rootandriell5 жыл бұрын
Так сколько проводов нужно для uart? Как устройство понимает что этот пакет был для него? Как устройства решают какое из них будет говорить теперь?
@flexoalex41685 жыл бұрын
Для UART нужно три провода. Это RX-для приема, TX-для передачи и GND для разницы потенциалов. Кто из устройств начинает передачу решает программист. UART независем, так как имеет отдельные линии для передачи и приема. Пакет начинается со старт бита. По UART общаются только два устройсва не более. Для больше устройств нужен RS485
@romaromanov5381 Жыл бұрын
@@flexoalex4168 Спасибо!Значит только Вася и Федя .ага ясно
@user-sp6qs4to3u5 жыл бұрын
Скажите пожалуйста. Как предается двухбайтовые данные по UART? Допустим мне нужо передать 16 битное число Uint16_t. А данные передаются по 8 бит?
@flexoalex41685 жыл бұрын
Разбить на два байта и передать по очереди, а на приемной стороне собрать обратно.
@vika_papa7 жыл бұрын
Что такое регистры в микроконтроллере и как их искать? Они указаны в прошивке? А если мне нужно считать прошивку из контроллера?
@flexoalex41687 жыл бұрын
Регистры - это ячейки памяти получаемые в момент производства кристалла. Отсюда они имеют фиксированное расположение в памяти. То есть каждый регистр расположен по строго фиксированному адресу. К примеру если посмотреть регистр настройки направления передачи данных порта B у Atmega8, то он будет равен 0x17. Для того чтобы не запоминать все эти адреса, создают константы директивой препроцессора. Например фирма Атмел в своих средах разработки уже заранее прописала все константы и константа адреса данного регистра выглядит так: #define DDRB _SFR_IO8(0x17). Теперь нам не нужно запоминать адрес регистра, а достаточно написать DDRB = 0xFF; тем самым настроив весь порт на вывод данных. С UART дела обстоят так же. Например регистр приема передачи UDR расположен по адресу 0x0C и объявлен константой #define UDR _SFR_IO8(0x0C). Все регистры кроме защитных энергозависимые и после рестарта или обесточивания МК сбрасываются в состояния по умолчанию. Если интересно узнать адреса других регистров, то это можно сделать почитав документацию на МК. В описании любого регистра всегда указан его адрес.
@vika_papa7 жыл бұрын
Flexo Alex, Спасибо. Пока сложно, буду изучать дальше
@hamletayvazyan76874 жыл бұрын
немного не понял момент с двумя стопбитами
@vitfed9334 ай бұрын
Спасибо, только не понял в чем отличие между rs232 или 485 или др вроде там то же самое
@flexoalex41684 ай бұрын
RS-232 это относительный интерфейс, то есть данные передаются относительно линии GND, а RS-485 дифференциальный интерфейс. Передача данных идёт относительно обеих линий. Последний более защищён от наводок.
@Vadik111114 жыл бұрын
Ну разжевал))
@Whatf-7-2 жыл бұрын
Я просто сказал аурт случайно, и появилось это видео.
@GeberLukum Жыл бұрын
Доброго времени суток скажите под заказ сможете написать драйвер на шине uart ?
@flexoalex4168 Жыл бұрын
Нет
@romaromanov5381 Жыл бұрын
Удивительный и непостижимый для меня этот электронный мир !Меняют прошивку к примеру,как кристаллы меняют свои параметры,свойства?.Если микроконтроллер состоит грубо из миллионов транзисторов ,пол миллиона превращаются в NPN из PNP и наоборот ,и сохраняют своё состояние,?Охренеть, как можно было такое придумать,фантастика!!!
@ElenaPonomareva6663 жыл бұрын
33:55 "- Четыре единицы - это четное число ? - Нет". Со стоповым битом тоже непонятно - как приемник отличает стоповый бит, имеющий высокий потенциал от бита данных с таким же высоким потенциалом ?
@flexoalex41683 жыл бұрын
Четыре единицы это чётное число. Дело в том что в UART ведется подсчет количества единиц, а не их значение в бинаре. Четыре единицы, это четыре штуки, а не число 15. Стоповый бит отлавливается получением уровня в определенное время исходя из таймслотов самих бит. Мы же можем определить 59-ю секунду минуты)
@pavelsanych29603 жыл бұрын
получается что сперва смотрим какая шина, затем выбираем протокол?
@flexoalex41683 жыл бұрын
Почему. Например MODBUS, может работать по линиям UART, UTP, WiFi, bluetooth и тд.
@pavelsanych29603 жыл бұрын
@@flexoalex4168 в галаве бардак)))
@pavelsanych2960 Жыл бұрын
@@flexoalex4168 пересматриваю)))
@exRW-6 жыл бұрын
СПАСИБО :-)
@user-ki5pv2yq1s6 жыл бұрын
на 30 минуте обманул. приемник ставит в начале таймер на чтение данных не на 52 микросекунды, а на 156 микросекунд, потому что стартовый бит.
@user-ns5rd1uh4u4 жыл бұрын
Нет, не обманул, потому что приёмник действительно должен попасть в середину старт бита (отсчитать 52 мкс) для подавления шумов. То есть он проверяет, действительно ли линия находится в нуле, и если да, то отсчитывает 104 мкс для считывания 1-го инфо бита и т.д.
@star-ik7 жыл бұрын
Спасибо за старания, но тема не раскрыта. Все смазано...
@pavelsanych29603 жыл бұрын
даль что объясняя разницу протоколов и шины, человек и там и там приводит в пример с машинкой, и в чём разница, и там машинка и там
@Devid2413 жыл бұрын
Про JTAG пожалууууса)))
@flexoalex41683 жыл бұрын
А что про него рассказать?
@MegaKMC123 Жыл бұрын
Как сделать два передающих устройства и один слушает?
@flexoalex4168 Жыл бұрын
RS485
@kirman71872 жыл бұрын
Спасибо всё супер. Но мне кажется или автор путает рисуя шину в виде камаза, поезда и самолета? Шина это дорога-(трасса, ж/д, маршрут самолета), т. е то что соединяет точки маршрута? А вот как раз самолет, поезд и машина это сами байтики которые бегают по шине (сигналы которые устройство посылает в шину на одном конце и которые принимаются на другом)? А протокол описывает как расшифровать эти сигналы-это физический уровень, а информационный как из этих сигналов собирать сообщение и как передавать данные, т. е работа с последовательностью значений или парсинг? Я не прав?
@ekd1774 жыл бұрын
да полный эпизодец , ьььььььь
@RonyKassini3 жыл бұрын
почему аудио моно только в левом канале?
@flexoalex41683 жыл бұрын
Наверное потому что я стоял слева.
@RonyKassini3 жыл бұрын
@@flexoalex4168 блин, по ходу и отраженного звука в правом не слышно. чудеса звукоакустические !
@AgattagA10 ай бұрын
ниче про RX TX не сказано....
@mifcorp16 жыл бұрын
общие понятия понятны а с подробностями уже можно и википедии посмотреть .... в общем толково
@aiwashiwanov44633 жыл бұрын
Я не понимаю от Васи к Феди. Неужели просто нельзя сказать про величину пакета без автобусов и велосипедов!?
@flexoalex41683 жыл бұрын
Не все понимают, многим проще на автобусах понимать.
@aiwashiwanov44633 жыл бұрын
@@flexoalex4168 возможно. наверное просто привык :)
@user-qk7il7eb4b3 жыл бұрын
Water, water, water .....
@grifan3 жыл бұрын
а в чем проблема? Человек своими словами, на доступном языке доносит принцип, в названии же нет такого "Самое полное и точное описание работы..." Мне для общего понимания очень зашло, очень креативно показано как "железо" определяет следующий бит, никогда нигде так инфу не преподносили.
@matveiq6 жыл бұрын
Непонятно
@Kazahnot6 жыл бұрын
Занудное видео вы умеете тянуть резину
@taxizztop60524 жыл бұрын
Как раз для таких тормозов как я, это идеальное видео.
@kostya13065 жыл бұрын
Нудятина.... Лекция для детского сада что ли?
@flexoalex41685 жыл бұрын
Да, это лекция для детского сада. Нужна сухая и прямая теория, топай в ВУЗ.
@konteiner8434 жыл бұрын
интересно было
@oruelmaiklmaikl21795 жыл бұрын
срана советов . сам плохо услышал и не понял , но учу других . прогресс .