Основы цифровой схемотехники #1

Итак, продолжим погружение в г.. глубинные тайные знания :)


Для изображения электронных устройстви их узлов применяют три основных типа схем:

принципиальную, структурную, функциональную. В чем разница?


Принципиальная схема самая точная. Ее целью является возможность полного повторения устройства. Именно поэтому здесь наиболее полно указываются все используемые элементы, связи, входы и выходы микросхем и т.д. Обозначения в такой схеме жестко стандартизированны (привет ГОСТ 2.702-2011, все желающие могут самостоятельно ознакомиться)


Структурная схема самая простая. Позволяет выделить наиболее главные блоки системы и основные связи между ними. Применяется для общего представления, что вообще происходит. Часть обозначений стандартна, часть может быть произвольной.


Функциональная схема - нечто среднее между принципиальной и структурной. Фактически, часть наиболее простых блоков указывается, как в структурном виде, остальное- как на принципиальной схеме. По функциональной схеме вы сможете понять всю логику работы устройства (ага, прям всю и сразу) , но без доработки повторить его не получится.


Теперь пару слов про самые-самые нужные обозначения. Все узлы, блоки, части, элементы, микросхемы обозначают прямоугольниками. Все связи, по которым передаются сигналы, обозначают линиями. Все входы микросхем обычно рисуют слева прямоугольника, а выходы- справа. Но это не точно правило иногда нарушают для простоты и удобства рисунка.


Далее, введем еще несколько базовых понятий.


Положительный сигнал- сигнал, положительный уровень которого- логическая единица. Еще раз для самых тупеньких маленьких: есть сигнал-1, нет сигнала-0.

Понятие отрицательного сигнала попробуйте осмыслить сами :)

Основы цифровой схемотехники #1 Схемотехника, Электроника, Логика, Микросхема, Длиннопост

Активный уровень - уровень сигнала, при котором выполняется некое действие. При пассивном уровне сигнал не выполняет никакой функции.


Инвертирование - изменение уровня сигнала на противоположный.


Инверсный выход - выход, выдающий инверсный по сравнению с входным сигнал.


Прямой выход выдает сигнал такой же полярности, что и у входного.


Положительный фронт-переход сигнала из 0 в 1, отрицательный фронт -наоборот.


Передний фронт - переход из пассивного уровня в активный, задний фронт - наоборот.


Тактовый сигнал определяет своим приходом момент выполнения узлом его функции (помните, как мамка начинала ругаться, и вы тут же садились делать уроки?:) )


Ну и вспомним, что такое шина. Это группа объединенных по какому-то принципу линий передачи сигналов. (Нет, объединять по принципу "Хай буде так як хочеш ти" не стоит.) В шину, например, удобно объединять сигналы всех разрядов двоичного кода.


Посмотрим еще на кружочки, черточки, крестики и ромбики. Обозначения хорошие, писать я про них, конечно же, не буду.

Основы цифровой схемотехники #1 Схемотехника, Электроника, Логика, Микросхема, Длиннопост
Основы цифровой схемотехники #1 Схемотехника, Электроника, Логика, Микросхема, Длиннопост
Основы цифровой схемотехники #1 Схемотехника, Электроника, Логика, Микросхема, Длиннопост

Пару слов о неинформационных выводах. Сделано так просто для удобства восприятия, что данные выводы логические сигналы не принимают и не выдают.

На микросхеме так же принято обозначать значком выполняемую функцию и сокращенно указывать входные и выходные сигналы. Сами микросхемы обычно обозначаются подписью DD с порядковым номером. Например, DD1, DD2, DD3.1, DD3.2, DD4...(После точки номер элемента внутри микросхемы, т.к. иногда на схемах удобно выносить частичную функциональность за пределы одного корпуса)

Основы цифровой схемотехники #1 Схемотехника, Электроника, Логика, Микросхема, Длиннопост

Для осознания, как это все смотрится вместе, смотрим ниже:

Основы цифровой схемотехники #1 Схемотехника, Электроника, Логика, Микросхема, Длиннопост

Также не буду вас особо грузить цифро-буквенными обозначениями микросхем, просто посмотрите картинки. Я вот совсем не люблю писать, но люблю картинки. Особенно когда за меня их кто-то нарисовал :)

Основы цифровой схемотехники #1 Схемотехника, Электроника, Логика, Микросхема, Длиннопост
Основы цифровой схемотехники #1 Схемотехника, Электроника, Логика, Микросхема, Длиннопост

Обычно микросхемы разных серий легко спрягаются, так как работают со стандартизированными уровнями сигналов. Но и тут не без исключений. КМОП- микросхемы иногда требуют особого сопряжения с ТТЛ. Почему? Я решил, что тут следует вставить очень наглядную картинку от наших забугорных товарищей. (Кстати, отметьте, у них совсем другие обозначения)

Основы цифровой схемотехники #1 Схемотехника, Электроника, Логика, Микросхема, Длиннопост
Основы цифровой схемотехники #1 Схемотехника, Электроника, Логика, Микросхема, Длиннопост

Думаю, теперь станет ясно назначение резистора в следующей картинке. Он просто несколько поднимает выходной логический уровень ТТЛ, чтобы с ним могла корректно работать КМОП-микросхема.

Основы цифровой схемотехники #1 Схемотехника, Электроника, Логика, Микросхема, Длиннопост

Тут есть всякие нюансы сопряжения, но вам пока достаточно помнить, что за вас уже давно все придумали и готовую схему сопряжения всегда вам готов подсказать всемогущий гугл :)

На этом первую часть я заканчиваю, а для тех, кому интересно, сслыка на нулевую часть:

https://pikabu.ru/story/osnovyi_tsifrovoy_skhemotekhniki_0_5651718

TECHNO BROTHER

1.7K поста12.5K подписчика

Добавить пост

Правила сообщества

1-Мы А-политическое сообщество. 2-Запрещено оскорбление: Администрации Пикабу, сообщества, участников сообщества а также родных, близких выше указанных.

3-Категорически запрещается разжигание межнациональной розни или действий, направленных на возбуждение национальной, расовой вражды, унижение национального достоинства, а также высказывания о превосходстве либо неполноценности пользователей по признаку их отношения к национальной принадлежности или политических взглядов. Мат - Нежелателен. Учитесь выражать мысли без матерщины

Вы смотрите срез комментариев. Показать все
6
Автор поста оценил этот комментарий

Хм... А зачем здесь всё это ?

Хотите понмиать цифровую схемотехнику ?
Тогда читайте книги:

Угрюмов Е. П. - Цифровая схемотехника.

Уэйкерли Дж.Ф. - Проектирование цифровых устройств.

Дэвида Харриса и Сары Харрис - Цифровая схемотехника и архитектура компьютера

Потом изучайте теорию конечных автоматов.

Потом плавно подходите к программированию FPGA.

После этого изучайте спецификации на интерфейсы:

SDR SDRAM, DDR SDRAM, I2c, SDI, UART, ISA, PCI, Ethernet, USB, AXI, Avalon и многое другое.

В общем если вы ходите стать специалистом - данный пост не поможет никак.

Если хотите побаловаться - то программируйте ардуинку. Там этого знать практически не надо...

раскрыть ветку (17)
6
Автор поста оценил этот комментарий

Цель поста - заинтересовать кого-нибудь на дальнейшее самостоятельное обучение. Я прекрасно понимаю, что по серии постов с пикабу получить диплом нереально.

А за список годной литературы и советов- спасибо. Он тут очень к месту.

раскрыть ветку (6)
4
Автор поста оценил этот комментарий

А никому это не нужно, если честно. Слишком уж сложная и узконаправленная тематика.  Ардуинка проще ^_^.

А сложные узконаправленные посты типа : проектирование контроллера SDRAM памяти на языке Verilog\VHDL, или транзакции на шине PCI - будут практически никому не интересны. Хотя я бы с радостью почитал как работают с памятью в режиме интерливинга банков, или как работает какой-нибудь DMA контроллер...

раскрыть ветку (2)
Автор поста оценил этот комментарий

добро пожаловать в минский рти, конечно про SDRAM и PCI нам не рассказывали, но это перестанет казаться черной магией, а потом устраивайтесь ко мне на работу, вот тут вы и с dram'ом и с pcie поебетесь) кароч, велком)

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну с SDR/DDR SDRAM я уже "налюбился" - для меня это давно не черная магия.

Хотя про режимы с интерливингом банков было бы интересно узнать.

PCI - с ним пока работать не приходилось.

А вот с DVI я "налюбился" по самое не могу. Но за то имею собственный софтовый приёмник DVI внутри FPGA, работающий на частотах до 800 Mbs.

Сейчас "люблю" UART16с550 c полной регистровой моделью.

1
Автор поста оценил этот комментарий
А мне понравилось!.Кому в охотку тот с интересом почитает,а нет,пройдёт мимо!.Подписался!
Автор поста оценил этот комментарий

Что, когда по существу сказать нечего, остается только исподтишка ставить пидорские минусы? :)

ещё комментарий
1
Автор поста оценил этот комментарий

Очень жаль, что годных книг по FPGA раз-два и обчелся. А по Virolog`у или VHDL и того меньше. В плане понимания - это как русскую классику в 7 классе школы осваивать.

Собственно из-за недостатка этого большинство делает все на ардуине

раскрыть ветку (9)
1
Автор поста оценил этот комментарий

А ещё мк (ардуины) тупо достать проще в личное пользование. Плисы штуки достаточно дорогие и слишком узко направленные если честно.

раскрыть ветку (3)
Автор поста оценил этот комментарий

3300.00 руб. Марсоход2bis. - это не так дорого...

Автор поста оценил этот комментарий

Не сказал бы, что узконаправленные. Если хорошо знать,  то на нормальной плисине можно реализовать то,  что люди делают на 3-4 МК.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Можно. Но не всегда нужно )

Каждая задача индивидуальна

Автор поста оценил этот комментарий

Есть форум electronix.ru, где сидят грамотные специалисты, которые не откажут в помощи.

Но тут вот какое дело. Чтобы что-то проектировать на FPGA  надо уметь думать категориями: регистр, счетчик, мультиплексор, компаратор, демультиплекоср, шифратор, дешифратор, конечный автомат, память и др. Т.е ты должен понимать, как при помощи этих блоков получить то или иное поведение схемы.

На самом деле сам язык VHDL/Verilog достаточно простой в плане синтаксиса. Вполне реально за пару месяцев изучить HDL языки и уметь ими кодировать схемы. Самое сложное представить схему в виде базовых блоков(счетчик, автомат, регистр и пр.). И лишь когда будет такая схема готова, лишь тогда надо браться за  VHDL/Verilog. Фактически - язык HDL применяется для описания уже придуманной тобой схемы.

Самое сложное в FPGA - знания интерфейсов. Приведу пример: чтобы записать что-то в SDRAM память - необходимо разработать контроллер этой памяти. А чтобы его разработать, ты должен прекрасно понимать принципы работы памяти, все её задержки, и пр. лабуду. Можно конечно готовый контроллер взять. Но это тупиковый подход.

раскрыть ветку (2)
Автор поста оценил этот комментарий

Да,  я это понимаю. Для меня самое сложное во всем этом - это тайминги, и, порой,  сложные конечные автоматы вообще не получаются. Я имею базовые понятия и способен чтото простое сделать или написать,  как допустим, 1-wire, uart и прочее, но вот дальше не идет,  путаюсь в синхронизации :/

раскрыть ветку (1)
Автор поста оценил этот комментарий

А сложные конечные автоматы делать не нужно. Необходимо разбивать большой автомат, на кучу маленьких и простых.

Автор поста оценил этот комментарий

по Verilog есть много иностранной литературы, можно сидеть с переводчиком)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Один черт,  как будто классику читаешь х)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку