ПЦУСБ/Лекция 4 — различия между версиями
Материал из Wiki
< ПЦУСБ
ANA (обсуждение | вклад) м (→Слайд: Словесное описание автомата) |
ANA (обсуждение | вклад) м (→Слайд: Тоже самое в виде графа) |
||
| Строка 182: | Строка 182: | ||
<graph> | <graph> | ||
| + | |||
digraph G { | digraph G { | ||
| − | node[color="red",shape="rectangle",style="rounded",fontsize=12]; | + | #rankdir=LR; |
| + | |||
| + | node[color="red",shape="rectangle",style="rounded",fontsize=12 ]; | ||
edge[fontsize=10]; | edge[fontsize=10]; | ||
| + | splines=spline | ||
| + | #splines=true | ||
| + | |||
| + | |||
| + | # subgraph cluster1 { | ||
| + | # node [style=filled]; | ||
| + | # label = "Ввод старого пароля"; | ||
| + | # color=blue | ||
| + | # clusterrank=global | ||
| + | # InputOldPassword0 | ||
| + | # InputOldPassword1 | ||
| + | # InputOldPassword2 | ||
| + | # } | ||
| + | |||
| + | # subgraph cluster2 { | ||
| + | # node [style=filled]; | ||
| + | # label = "Ввод пароля"; | ||
| + | # color=blue | ||
| + | # InputPassword1 | ||
| + | # InputPassword2 | ||
| + | # } | ||
| + | |||
| + | # subgraph cluster3 { | ||
| + | # node [style=filled]; | ||
| + | # label = "Ввод нового пароля"; | ||
| + | # color=blue | ||
| + | # InputNewPassword1 | ||
| + | # InputNewPassword2 | ||
| + | # } | ||
| + | |||
| + | { rank = same InputOldPassword0 InputPassword1 } | ||
| + | { rank=min Start } | ||
Start -> InputOldPassword0 [label="SetPassword = '1'", style="bold"] | Start -> InputOldPassword0 [label="SetPassword = '1'", style="bold"] | ||
Start -> InputPassword1 [label="DigitalKey[9:0]", style="bold"] | Start -> InputPassword1 [label="DigitalKey[9:0]", style="bold"] | ||
| − | Start -> Start [label="Esc", color="blue", style="dashed"] | + | #Start -> Start [label="Esc", color="blue", style="dashed"] |
| + | InputPassword1 -> InputOldPassword0 [label="SetPassword = '1'", style="dashed"] | ||
InputPassword1 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | InputPassword1 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | ||
#InputPassword1 -> Start [label="Delay5s", color="blue", style="dashed"] | #InputPassword1 -> Start [label="Delay5s", color="blue", style="dashed"] | ||
InputPassword1 -> InputPassword2 [label="DigitalKey[9:0]"] | InputPassword1 -> InputPassword2 [label="DigitalKey[9:0]"] | ||
| + | InputPassword2 -> InputOldPassword0 [label="SetPassword = '1'", style="dashed"] | ||
InputPassword2 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | InputPassword2 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | ||
#InputPassword2 -> Start [label="Delay5s", color="blue", style="dashed"] | #InputPassword2 -> Start [label="Delay5s", color="blue", style="dashed"] | ||
| Строка 206: | Строка 243: | ||
InputPasswordNotCompared -> Start [label="Delay05s"] | InputPasswordNotCompared -> Start [label="Delay05s"] | ||
| − | InputOldPassword0 -> InputOldPassword1 [label="DigitalKey[9:0]"] | + | InputOldPassword0 -> InputOldPassword1 [label="DigitalKey[9:0]"] |
| + | InputOldPassword1 -> InputOldPassword0 [label="SetPassword = '1'", style="dashed"] | ||
InputOldPassword1 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | InputOldPassword1 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | ||
#InputOldPassword1 -> Start [label="Delay5s", color="blue", style="dashed"] | #InputOldPassword1 -> Start [label="Delay5s", color="blue", style="dashed"] | ||
| − | InputOldPassword1 -> InputOldPassword2 [label="DigitalKey[9:0]"] | + | InputOldPassword1 -> InputOldPassword2 [label="DigitalKey[9:0]"] |
| + | InputOldPassword2 -> InputOldPassword0 [label="SetPassword = '1'", style="dashed"] | ||
InputOldPassword2 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | InputOldPassword2 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | ||
#InputOldPassword2 -> Start [label="Delay5s", color="blue", style="dashed"] | #InputOldPassword2 -> Start [label="Delay5s", color="blue", style="dashed"] | ||
| − | InputOldPassword2 -> InputOldPasswordCompare [label="DigitalKey[9:0]"] | + | InputOldPassword2 -> InputOldPasswordCompare [label="DigitalKey[9:0]"] |
| − | InputOldPasswordCompare -> InputOldPasswordCompareOk [label="InCode=OldPassword"] | + | InputOldPasswordCompare -> InputOldPasswordCompareOk [label="InCode=OldPassword"] |
| − | InputOldPasswordCompare -> InputPasswordNotCompared [label="InCode /= OldPassword"] | + | InputOldPasswordCompare -> InputPasswordNotCompared [label="InCode /= OldPassword"] |
InputOldPasswordCompareOk -> InputNewPassword1 [label="DigitalKey[9:0]"] | InputOldPasswordCompareOk -> InputNewPassword1 [label="DigitalKey[9:0]"] | ||
| + | InputNewPassword1 -> InputOldPassword0 [label="SetPassword = '1'", style="dashed"] | ||
InputNewPassword1 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | InputNewPassword1 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | ||
#InputNewPassword1 -> Start [label="Delay5s", color="blue", style="dashed"] | #InputNewPassword1 -> Start [label="Delay5s", color="blue", style="dashed"] | ||
InputNewPassword1 -> InputNewPassword2 [label="DigitalKey[9:0]"] | InputNewPassword1 -> InputNewPassword2 [label="DigitalKey[9:0]"] | ||
| − | InputNewPassword2 -> Start [label="Esc\n Delay5s", color="blue", style="dashed"] | + | InputNewPassword2 -> InputOldPassword0 [label="SetPassword = '1'", style="dashed"] |
| + | InputNewPassword2 -> Start [label="Esc\n Delay5s", color="blue", style="dashed", constraint=false] | ||
#InputNewPassword2 -> Start [label="Delay5s", color="blue", style="dashed"] | #InputNewPassword2 -> Start [label="Delay5s", color="blue", style="dashed"] | ||
InputNewPassword2 -> InputNewPassword3 [label="DigitalKey[9:0]"] | InputNewPassword2 -> InputNewPassword3 [label="DigitalKey[9:0]"] | ||
| Строка 238: | Строка 279: | ||
} | } | ||
| + | |||
</graph> | </graph> | ||
== Слайд: NEW == | == Слайд: NEW == | ||
Версия 11:20, 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 с | Начальное состояние |
Слайд: Тоже самое в виде графа




