Вот мы и подошли к наиключевейшему моменту нашей
В этой статье рассказывается и показывается, к каким линиям DTB как подключен слэйв, как выглядят циклы записи и чтения, и что нам нужно сделать для их корректного осуществления.
Подключение слэйва к шине DTB
Вот как сидит слэйв на шине DTB. // Удивительно, но в англоязычной спецификации нет этой картинки, как будто ее просто забыли вставить... при верстке, чтоли, потеряли?
Мы видим, что к слэйву аккуратненько подключены все линии DTB (подробно о назначении линий я рассказывал в прошлой статье). Наше устройство должно контролировать и/или возбуждать эти линии. Здесь же стало видно, что не было печали, да апдейтов накачали - нам придется обрабатывать сигналы еще и на IACK* и SYSTEMRESET*. Наверное, вы уже догадались, что по низкому уровню на линии IACK* устройство должно совершать какие-то действия по обработке прерывания, а при низком уровне на SYSTEMRESET* должен происходить КОНЕЦ ВСЕМУ ПЛАТЫ ОТРУБАЮТСЯ ПАМЯТЬ СТИРАЕТСЯ ДВЕРЬ ВЫШИБАЕТСЯ КРЕЙТ ВЫНОСИТСЯ!!!
Циклы записи и чтения
Поймем алгоритм чтения и записи.
Для совершения циклов чтения или записи мастер и слэйв поочередно производят какие-то манипуляции с различными линиями. В общих чертах запись выглядит так:
- мастер высталяет адрес и модификатор адреса на линии адреса и говорит всем слэйвам: всем привет посоны, зачитайте новый классный адрес.
- все слэйвы радостно читают адрес и сравнивают его со своим.
- мастер пока подготавливается к раздаче слонов - выставляет данные на линии данных и говорит: тили-тили теста, на кого попал A01-Axx, тот может уже записывать данные себе.
- слэйв, узнавший в этих речах себя, машет ручкой (кстати, скорее ножкой) мастеру, скачивает данные себе в память и говорит: я все!
- мастер говорит: ок, пока!
- слэйв тоже говорит: пока!
...по человечески это выглядит так. А железки вынуждены между собой общаться унылым поднятием и опусканием уровней сигналов на линиях.
Ниже я привел табличку, в которой расписывается цикл записи двухбайтной посылки.
Мое мнение насчет принципиальной важности понимание этого общения совпадает с мнением г-на Зензина, который приводит в своей книжке следующую картинку цикла чтения для одного байта. Посмотрите, насколько цикл чтения похож на цикл записи и чем они отличаются.
Прочитайте несколько раз и осознайте, что происходит. Вспомните о назначения каждой линии из предыдущей статьи.
P.S.
Это была одна из самых принципиальных частей, надеюсь, я смог показать всю ее прелесть достаточно доступно. Однако, если у вас все равно возникли какого-либо рода недопониямая, не стесняйтесь задавать вопросы в комментариях.
Список статей
Часть 1. Введение. Евромеханика
Часть 2. Шины и устройства
Часть 3. Шина DTB
Часть 4. Slave-устройство на шине DTB. Циклы записи и чтения
Часть 5. Чтение адреса slave-устройством. Типы адресации. Регистр-защелка и компаратор
Часть 6. Программное управление slave-устройством. Дешифратор, D-триггер и свичи
Часть 7. Прерывания, прерыватели, шина приоритетных прерываний,вектор прерывания
Часть 8. Шинные формирователи
Часть 9. Рисуем схему по ЕСКД. Schemagee. Автоматическое создание списка элементов
Часть 10.Добавляем собственную микросхему в Schemagee
Часть 11. Импорт микросхемы из P-CAD в SchemaGee с последующим допиливанием
Комментариев нет:
Отправить комментарий