![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Программные средства foundation Таблица выхода
(left + RIGHT+HAZ) ![]() Рис. 7.62. Первоначальный вариант диаграммы состояний и таблица выхода для автомата, управляющего задними огнями автомобиля марки Ford Thunderbird В диафамме состояний, представленной нарис. 7.62, остается нерешенной одна существенная проблема; в ней не предусмофена обработка случаев, когда одновременно действует несколько входных сигналов. Например, что произойдет, если автомат находится в состоянии IDLE и поступают оба сигнала LEFT и HAZ? Согласно диафамме состояний автомат переходит в два состояния L1 и LR3, что невозможно. На практике автомат перешел бы только в одно следующее состояние, которым могло бы быть L1, LR3 или вообще какое-то фетье (возможно неиспользуемое) состояние, не имеющее никакого отношения к данной ситуации, в зависимости от того, как именно реализован конечный автомат (см., например, задачу 7.58). Эта проблема преодолена в диафамме состояний, показанной на рис 7.63, где более высоким приоритетом наделен входной сигнал HAZ Кроме того, одновременное включение сигналов LEFT и RIGHT воспринимается как требование аварийного режима, поскольку водитель явно смущен и ему нужна помощь. В новой диафамме состояний нет неоднозначности, поскольку выражения переходов, надписанные у сфелок, выходящих из каждого состояния, являются взаимно исключающими и исчерпывающими в совокупности. Другими словами, для каждого состояния нет двух выражений, которые равнялись бы 1 при одной и той же комбинации входных сигналов, и при каждой входной комбинации какое-то одно из выражений равно 1. В этом можно убедиться алгебраически, выполнив в отношении этой или любой другой диафаммы состояний следующие два шага: (LEFT + RIGHT + HAZY ![]() Рис. 7.63. Исправленная диаграмма состояний для автомата, управляющего задними огнями автомобиля марки Ford Thunderbird 1. Взаимное исключение (mutual exclusion). Для каждого состояния показать, что все возможные попарные логические произведения выражений переходов у стрелок, выходящих из данного состояния, равны 0. Если имеется п стрелок, то вычислить нужно п(п - 1)/2 логических произведений. 2. Исчерпывающее включение (all inclusion). Для каждого состояния показать, что логическая сумма выражений переходов у всех стрелок, выходящих из данного состояния, равна 1. Когда имеется много переходов из каждого состояния, эти шаги, особенно первый из них, очень трудно выполнимы. Однако в типичном случае, даже при наличии у конечного автомата большого числа состояний и входов, число переходов из каждого состояния невелико, потому что большинство разработчиков вообще не в состоянии вообразить себе такие сложные автоматы. Именно в этом проявляются относительные достоинства и недостатки таблиц состояний и диаг-тмм состояний. При составлении таблицы состояний указанные два шага не нужны так как сама структура таблицы состояний гарантирует взаимное исключение переходов и полный охват всех возможностей. Но при большом числе входов у таблицы состояний слишком много столбцов. Проверка диаграммы состояний на однозначность может быть трудной в принципе, но не очень страшной на практике в случае небольших диафамм состояний. На рис, 7.63 из большинства состояний выходит единственная стрелка, у которой в качестве выражения перехода указана 1; в этом случае проверка тривиальна. На самом деле, требует проверки только состояние IDLE, из которого возможно четыре перехода. Это можно сделать на черновике, перечислив восемь комбинаций трех входных сигналов и убедившись, что каждая из них покрьшается тем или иным выражением перехода. Каждая входная комбинация должна давать 1 точно в одном вьфажении. В качестве упражнения можно рассмотреть диаграммы состояний на рис. 7.44 и 7.46: обе они проверяются в уме. Вернемся к автомату, управляющему задними огнями автомобиля марки Ford Thunderbird. Теперь, если есть желание, мы можем приступить к синтезу схемы по диафамме состояний. Однако в случае, если мы хотим чуть изменить поведение автомата, то сейчас самое время это сделать до синтеза схемы. В частности, обратите внимание на следующее: если автомат начнет выполнять цикл правого или левого поворота, то, согласно диаграмме состояний на рис. 7.63, этот цикл будет вьшолнен до конца даже в том случае, если появится сигнал HAZ. Может быть это и хорошо с точки зрения эстетики рисунка, но для тех, кто находится в автомобиле, было бы безопаснее заставлять автомат переходить в аварийный режим возможно скорее. Видоизмененная диафамма состояний, в которой сделано это уточнение, приведена на рис. 7.64. Теперь мы окончательно готовы синтезировать схему автомата. В диаграмме имеется восемь состояний, поэтому нам необходимы, как минимум, три триггера, чтобы хранить коды состояний. Очевидно, что кодирование состояний можно выполнить многими способами (8! способами, если быть точным); мы воспользуемся тем из них, который указан в табл. 7.16, по следующим причинам: 1. Код ООО присваивается начальному состоянию (незанятости), поскольку большинство триггеров и регистров легко устанавливаются в 0. 2. Две переменные состояния Q1 и Q0 позволяют при выполнении левого поворота осуществлять счет в последовательности, задаваемой кодом Грея (IDLE -> L1 -> L2 -> L3 -> IDLE). Это сводит к минимуму число изменяющихся переменных состояния при переходе от одного состояния к другому, а это часто упрощает логику возбуждения. 3. В силу симметрии переменные Q1 и Q0 проходят ту же самую последовательность значений и при правом повороте. За различие между левым и правым поворотами отвечает переменная Q2. Остающаяся комбинация переменных состояния используется для обозначений состояния LR3. ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |