ПЦУСБ/Лекция 4 — различия между версиями
Материал из Wiki
< ПЦУСБ
ANA (обсуждение | вклад) м (→Слайд: Таблица переходов :step) |
ANA (обсуждение | вклад) м (→Слайд: Тоже самое в виде графа) |
||
| Строка 128: | Строка 128: | ||
|- | |- | ||
|} | |} | ||
| + | |||
| + | == Слайд: Алгоритм == | ||
| + | |||
| + | <graph> | ||
| + | digraph G { | ||
| + | |||
| + | node[color="red",shape="rectangle",style="rounded",fontsize=12]; | ||
| + | edge[fontsize=10]; | ||
| + | |||
| + | Start -> InputOldPassword0 [label="Смена\n пароля"] | ||
| + | Start -> InputPasswordCompare [label="Ввод\n пароля"] | ||
| + | #Start -> Start [label="Esc", color="blue", style="dashed"] | ||
| + | |||
| + | InputPasswordCompare -> Open [label="Правильный\n пароль"] | ||
| + | InputPasswordCompare -> InputPasswordNotCompared [label="Неправильный\n пароль"] | ||
| + | |||
| + | Open -> Start | ||
| + | # [label="Delay3s"] | ||
| + | |||
| + | InputOldPassword0 -> InputOldPasswordCompare [label="Ввод старого\n пароля"] | ||
| + | |||
| + | InputPasswordNotCompared -> Start. | ||
| + | # [label="Delay05s"] | ||
| + | |||
| + | InputOldPasswordCompare -> InputOldPasswordCompareOk [label="Правильный\n пароль"]. | ||
| + | InputOldPasswordCompare -> InputPasswordNotCompared [label="Неправильный\n пароль"]. | ||
| + | |||
| + | InputOldPasswordCompareOk -> InputNewPassword3 [label="Ввод\n пароля"] | ||
| + | |||
| + | InputNewPassword3 -> Start | ||
| + | |||
| + | edge [color="blue", style="dashed", fontsize=10]; | ||
| + | #InputOldPassword0 -> Start [label="Esc | Delay5s"] | ||
| + | |||
| + | #{rank = same; "Модель" "Верификация модели" } | ||
| + | |||
| + | |||
| + | Start [label="Ожидание ввода"] | ||
| + | Open [label="Доступ открыт на 3 с"] | ||
| + | InputNewPassword3 [label="Установка\n нового пароля"] | ||
| + | InputPasswordCompare [label="Сравнение пароля"] | ||
| + | InputOldPasswordCompare [label="Сравнение\n пароля"]. | ||
| + | InputOldPassword0 [label="Режим смены\n пароля"] | ||
| + | InputPasswordNotCompared [label="Неверный пароль\n звуковой сигнал 0.5 c"] | ||
| + | InputOldPasswordCompareOk [label="Режим ввода\n нового пароля"] | ||
| + | |||
| + | } | ||
| + | </graph> | ||
== Слайд: Тоже самое в виде графа == | == Слайд: Тоже самое в виде графа == | ||
| + | |||
<graph> | <graph> | ||
digraph G { | digraph G { | ||
| − | node[color="red",shape="rectangle",style="rounded",fontsize=10]; | + | node[color="red",shape="rectangle",style="rounded",fontsize=12]; |
| + | edge[fontsize=10]; | ||
| + | |||
| + | Start -> InputOldPassword0 [label="SetPassword = '1'", style="bold"] | ||
| + | Start -> InputPassword1 [label="DigitalKey[9:0]", style="bold"] | ||
| + | Start -> Start [label="Esc", color="blue", style="dashed"] | ||
| + | |||
| + | InputPassword1 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | ||
| + | #InputPassword1 -> Start [label="Delay5s", color="blue", style="dashed"] | ||
| + | InputPassword1 -> InputPassword2 [label="DigitalKey[9:0]"] | ||
| + | |||
| + | InputPassword2 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | ||
| + | #InputPassword2 -> Start [label="Delay5s", color="blue", style="dashed"] | ||
| + | InputPassword2 -> InputPasswordCompare [label="DigitalKey[9:0]"] | ||
| + | |||
| + | InputPasswordCompare -> Open [label="InCode = Password"] | ||
| + | InputPasswordCompare -> InputPasswordNotCompared [label="InCode /= Password"] | ||
| + | |||
| + | Open -> Start [label="Delay3s"] | ||
| + | |||
| + | InputPasswordNotCompared -> Start [label="Delay05s"] | ||
| + | |||
| + | InputOldPassword0 -> InputOldPassword1 [label="DigitalKey[9:0]"]. | ||
| + | |||
| + | InputOldPassword1 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | ||
| + | #InputOldPassword1 -> Start [label="Delay5s", color="blue", style="dashed"] | ||
| + | InputOldPassword1 -> InputOldPassword2 [label="DigitalKey[9:0]"]. | ||
| + | |||
| + | InputOldPassword2 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | ||
| + | #InputOldPassword2 -> Start [label="Delay5s", color="blue", style="dashed"] | ||
| + | InputOldPassword2 -> InputOldPasswordCompare [label="DigitalKey[9:0]"]. | ||
| + | |||
| + | InputOldPasswordCompare -> InputOldPasswordCompareOk [label="InCode=OldPassword"]. | ||
| + | InputOldPasswordCompare -> InputPasswordNotCompared [label="InCode /= OldPassword"]. | ||
| + | |||
| + | InputOldPasswordCompareOk -> InputNewPassword1 [label="DigitalKey[9:0]"] | ||
| + | |||
| + | InputNewPassword1 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | ||
| + | #InputNewPassword1 -> Start [label="Delay5s", color="blue", style="dashed"] | ||
| + | InputNewPassword1 -> InputNewPassword2 [label="DigitalKey[9:0]"] | ||
| + | |||
| + | InputNewPassword2 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | ||
| + | #InputNewPassword2 -> Start [label="Delay5s", color="blue", style="dashed"] | ||
| + | InputNewPassword2 -> InputNewPassword3 [label="DigitalKey[9:0]"] | ||
| + | |||
| + | InputNewPassword3 -> Start | ||
| − | + | edge [color="blue", style="dashed", fontsize=10]; | |
| − | + | InputOldPassword0 -> Start [label="Esc\n Delay5s"] | |
| − | + | #InputOldPassword0 -> Start [label="Delay5s"] | |
| − | + | ||
| − | + | ||
| − | + | ||
#{rank = same; "Модель" "Верификация модели" } | #{rank = same; "Модель" "Верификация модели" } | ||
Версия 00:19, 13 октября 2013
- Заголовок
- Цифровые автоматы
- Автор
- Авдеев Н.А.
- Нижний колонтитул
- ПЦУСБ/Лекция 4
- Дополнительный нижний колонтитул
- Авдеев Н.А., 18:44, 25 марта 2014
Слайд: Провести анализ схемы (1)
Слайд: Провести анализ схемы (2)
Слайд: Автомат Мили
- Следующее состояние = F (текущее состояние, вход)
- Выход = G (текущее состояние, вход)
Слайд: Автомат Мура
- Следующее состояние = F (текущее состояние, вход)
- Выход = G (текущее состояние)
Слайд: Граф состояний и переходов
Слайд: Словесное описание автомата
Панель ввода пароля
- обеспечить возможность задания нового пароля по нажатию специальной кнопки и ввода старого пароля (пароль по умолчанию 000), а затем ввода нового. При неправильном вводе переходит в начальное состояние (ожидание ввода). При правильном старом пароле включить сигнал "доступ открыт", а после ввода нового пароля отключить сигнал "доступ открыт".
- ввод пароля с клавиатуры (3х значное десятичное число от 000 до 999). Предусмотреть кнопку сброса введённого пароля (при неправильный вводе).
- после ввода 3 цифр система проверяет введённый пароль с внутренним значением:
- если пароли совпадают, то включается светодиод "Доступ открыт" на 3 сек., после чего система переходит в режим ввода пароля
- если пароли не совпадают, то включается звуковой сигнал "Доступ закрыт" на 0.5 сек., после чего система переходит в режим ввода пароля
- если после ввода 1й или 2й цифры, следующая цифра (т.е. 2-я или 3я соответственно) не введены более чем через 5 секунд, то включается звуковой сигнал "Доступ закрыт" на 0.5 секунды
Слайд: Таблица переходов :step
Элементы системы и управляющие сигналы (входы/выходы)
- Входы
- кнопка ввода пароля - сигнал SetPassword
- цифровые кнопки 0-9 - сигналы DigitalKey[8 downto 0]
- кнопка отмены ввода - сигнал Esc
- сигналы (со счетчика) отсчитывающие 0.5, 3, 5 с - Dalay05s, Dalay3s, Dalay5s
- сигнал синхронизации - clk (активный положительный фронт)
- асинхронный сброс - RST
- Выходы
- управление трехразрядным семисегментным индикатором - Digits2[6:0], Digits1[6:0], Digits0[6:0] (реально Digits[6:0] и Index[2:0])
- светодиод "Доступ открыт" - сигнал Open
- Динамик - сигнал Speaker
- Сигнал запуск отсчета паузы - StartCount
Слайд: Таблица переходов
| Текущее состояние | Событие (входы) | Следующее состояние |
|---|---|---|
| Любое | RST = 1 | Начальное состояние (ожидание ввода) |
| Начальное состояние | Нажата кнопка ввода пароля | Режим смены пароля: ввод старого пароля |
| Начальное состояние | Нажата цифровая кнопка | Режим ввода пароля (для доступа) (1) |
| Начальное состояние | Нажата кнопка Esc | Начальное состояние |
| Режим смены пароля: ввод старого пароля (0) | Ввод первой цифры | Режим смены пароля: ввод старого пароля (1), отобразить введённую цифру |
| Режим смены пароля: ввод старого пароля (0) | Прошло 5 с | Начальное состояние |
| Режим смены пароля: ввод старого пароля (1) | Ввод второй цифры | Режим смены пароля: ввод старого пароля (2), отобразить введённую цифру |
| Режим смены пароля: ввод старого пароля (1) | Прошло 5 с | Начальное состояние |
| Режим смены пароля: ввод старого пароля (2) | Ввод третьей цифры | Режим смены пароля:
|
| Режим смены пароля: ввод старого пароля (0-2) | Нажата кнопка Esc | Начальное состояние |
Слайд: Таблица переходов (2)
| Текущее состояние | Событие (входы) | Следующее состояние |
|---|---|---|
| Режим ввода пароля (для доступа) (1) | Ввод второй цифры | Режим ввода пароля (для доступа) (2) |
| Режим ввода пароля (для доступа) (2) | Ввод третьей цифры | Переход в состояние:
|
| Режим ввода пароля (для доступа) (1 или 2) | Прошло 5 с | Начальное состояние |
| доступ открыт | Прошло 3 с | Начальное состояние |
| Доступ закрыт | Прошло 0.5 с | Начальное состояние |
Слайд: Алгоритм
Слайд: Тоже самое в виде графа




