Интерфейсы периферийных устройств. Ключев А.О - 271 стр.

UptoLike

270
Изменение состояния одного из 12 DIP-переключателей (SW3-1 и SW3-2 на рис.
126) с указанием номера и положения вкл./выкл.;
Нажатие кнопки клавиатуры (одной из 16) с указанием символа.
На запись о произведенном действии в EEPROM выделяется 4 байта, причем формат
записи следующий:
1 и 2 байтвременная (секундная) метка события, выставляемая по таймеру;
3 байт
код события;
4 байт – CRC8 по предыдущим трем байтам.
При запуске системы таймер (переменная, отвечающая за системное время)
инициализируется значением последней временной метки, присутствующей в журнале
событий, если таковая есть. Должны быть реализованы механизмы по определению начала
журнала событий (для его вычитывания) и конца (для дополнения новой записью).
Необходимо предусмотреть возможность изменения размера журнала событий, т.е. журнал
может занимать не всю память EEPROM. Журнал (буфер) является циклическим, т.е. в случае
записи события в последние 4 байта журнала, следующая запись производится в его первые 4
байта. Кроме того, нужно предусмотреть возможность стирания всей памяти EEPROM.
Реализация системы меню из двух пунктовчтение журнала событий и очистка
EEPROM – на стороне персонального компьютера (терминальная программа). Перемещение
по этому меню реализуется при помощи клавиатуры ПК.
Необходимо реализовать возможность передачи содержимого журнала событий по
последовательному каналу в персональный компьютер в любой момент. Отображение
считанной информации в терминальной программе должно быть выполнено в формате:
временная меткасобытие. Каждому событиюновая строка. При чтении журнала событий
проверка CRC8 для каждой записи является обязательной. В случае ошибки обмена по
каналу I
2
C, несовпадения циклического кода прочитанной из журнала записи и др.
некорректных ситуаций сообщение об этом должно выводиться в терминал во время чтения
журнала.
Последнее произведенное действие (в формате записи в журнале событий), сообщения
о выполненных операциях (чтение журнала и очистка памяти), об ошибках в работе должны
отображаться на ЖКИ контроллера SDK-1.1. После
запуска системы на ЖКИ выводится
последняя запись журнала событий.
В рамках задания необходимо реализовать:
драйвер DIP-переключателей;
драйвер таймера;
драйвер последовательного канала;
драйвер клавиатуры (может быть реализован без переповторов, т.е. по принципу
«кнопка нажата или нет»);
драйвер ЖКИ;
драйвер I2C;
драйвер EEPROM;
функцию расчета CRC8
с использованием полинома x8 + x5 + x4 + 1.