Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПС2 Проектирование аппаратного и программного...doc
Скачиваний:
43
Добавлен:
02.09.2019
Размер:
1.67 Mб
Скачать

3.4.2. Точная постановка задачи и формулировка требований к программе

Этот этап присутствует в той или иной форме в любой деятельности, направленной на разработку какой-либо системы. Здесь вырабатываются требования, определяющие, какими характеристиками должно обладать проектируемое изделие.

При создании программы на этом этапе, в частности, должны быть определены:

1) функции программы;

2) функциональный смысл входной и выходной информации;

3) типы устройств ввода/вывода и форма представления информации;

4) диапазон изменения и точность представления входной и выходной информации;

5) системные требования (допустимое время решения задачи, особенности ввода/вывода информации и т. д. и т.п.);

6) необходимость контроля и типы обнаруживаемых ошибок;

7) особые случаи и реакция на них, допустимое время реакции.

Приведенный перечень вопросов для определения требований к программе является типовым и отнюдь неисчерпывающим в общем случае. Он может пополняться и расширяться для каждой конкретной задачи.

Последовательно отвечая на поставленные вопросы, можно сформулировать требования к программе, т. е. определить "Что делать?" При этом должно быть учтено множество факторов. Формулировке требований следует уделять большое внимание. Практика показывает, что примерно 60% ошибок в программе появляется из-за недостаточно полных и четких спецификаций. Ошибки этого типа исправлять наиболее трудно, т. к. они пронизывают весь проект.

На данном этапе целесообразно использовать графическое (различные диаграммы, графики) и табличное представление материала, дающее максимальную наглядность. После полного определения требований к устройству, целесообразно изобразить эскиз его лицевой панели, позволяющий наглядно представить элементы, с которыми должна взаимодействовать программа с точки зрения оператора.

Постановка задачи ввода данных в озу

Пример 3.1.

Сформулировать требования к программе работы устройства для ввода данных в ОЗУ.

Перед проектированием программы для ввода данных необходимо сформулировать предъявляемые к ней требования. Сделаем это, последовательно отвечая на типовые вопросы.

1. Функции программы.

Программа должна обеспечивать:

1) работу в двух режимах  ввод данных и просмотр данных в ОЗУ;

2) запись заданных данных в ячейку по заданному адресу (в режиме ввода);

3) отображение данных из ячейки по заданному адресу (в режиме просмотра);

4) модификацию адреса путем его инкрементирования/декременти­рования.

Функции программы, как правило, определяются необходимостью создания устройства с высокими эксплуатационными свойствами с точки зрения пользователя.

2. Функциональный смысл входной и выходной информации.

Входная информация имеет следующий смысл:

1) числовая информация об адресе или данных;

2) тип числовой информации (адрес или данные);

3) режим работы (ввод или просмотр данных);

4) направление модификации текущего адреса (инкрементирование или декрементирование).

Выходная информация имеет следующий смысл:

5) область данных, введенных в ОЗУ;

6) визуальное отображение адреса и данных.

Состав входных данных должен быть достаточным, чтобы исключить неопределенность в работе системы. Состав выходных данных определяется требуемым результатом и обеспечением удобства эксплуатации устройства.

3. Типы устройств ввода/вывода и форма представления информации.

В качестве устройств ввода использовать:

1) для ввода числовой информации  шестнадцатиричную клавиатуру типа "матрица сухих контактов";

2) для ввода режима работы тумблер;

3) для ввода типа числовой информации и направления модификации адреса  кнопки без фиксации.

Выбор устройств ввода определяет форму представления входной информации. В данном случае вся информация представляется в цифровом виде.

В качестве устройств вывода использовать:

4) для индикации адреса и данных  семисегментные знакосинтезирующие индикаторы;

5) для индикации типа числовой информации  двоичные индикаторы (светодиоды).

Для удобства эксплуатации потребуем, чтобы адрес и данные отражались одновременно.

4. Диапазон изменения и точность представления входной и выходной информации.

Считая, что при ручном вводе данных их объем не может быть очень велик, получим требования к диапазону изменения входной и выходной информации:

1) объем вводимых данных не более 64 Кбайт;

2) разрядность адреса  2 байта;

3) разрядность данных  1 байт;

4) сигналы о типе числовой информации, режиме работы и направлении модификации адреса  однобитные.

Точность представления информации в данной задаче не имеет смысла.

5. Системные требования.

Эти требования уточняют вспомогательные характеристики решаемой задачи: различные временные параметры, особенности ввода/вывода информации и т. д. и т.п.

В данной задаче в качестве системных требований определим следующие:

1) ввод числовой информации  в режиме бегущей строки справа налево в пределах выбранного поля (адреса или данных);

2) период следования числовых значений при вводе не менее 0,1 с.

Выбранный вариант ввода числовой информации наиболее удобен. При этом очередная введенная цифра отображается в младшем разряде соответствующего поля, а все предшествующие цифры сдвигаются на одну позицию влево. Это позволяет корректировать ошибочно введенную информацию путем дальнейшего ввода. Значение, отображаемое на индикаторах, в момент подачи управляющих сигналов считается достоверным и фиксируется в памяти.

6. Необходимость контроля и типы обнаруживаемых ошибок.

Как правило, в любой системе необходим какой-либо контроль, свидетельствующий о достоверности ее функционирования.

В данной задаче потребуем следующие контрольные функции:

1) контроль работоспособности ОЗУ для размещения вводимых данных по шине адреса и данных;

2) контроль одновременного включения двух или более клавиш клавиатуры.

7. Особые случаи и реакция на них.

Как правило, под особым случаем понимается ситуация возникновения некоторой ошибки. При этом необходимо определить реакцию на ошибку и способ выхода из этого состояния.

В данной задаче потребуем следующее:

1) при обнаружении любой из контролируемых ошибок на семисегментный дисплей выводится соответствующее сообщение:

 отказ ОЗУ (по шине адреса)  ErОП А;

 отказ ОЗУ (по шине данных)  ErОП d;

одновременное включение нескольких клавиш клавиатуры  Err НБ.

2) выход из состояния ошибки  путем устранения причин ошибки;

3) при возникновении ошибки состояние введенных в ОЗУ данных должно сохраняться.

При выборе формы сообщения необходимо учитывать информативные возможности используемых индикаторов. В данной задаче первое слово сообщений об ошибках Err, характеризующее факт ошибки, будем отображать в поле "Адрес" (ОП  оперативная память), а второе слово, характеризующее тип ошибки  в поле "Данные" (А  адрес, d  данные, НБ  набор).

Анализируя сформулированные требования, не представляет труда изобразить эскиз лицевой панели устройства, приведенный на рис. 3.5.

Рис. 3.5. Лицевая панель устройства для ввода данных в ОЗУ

Этот эскиз наглядно представляет элементы ввода/вывода, с которыми должна взаимодействовать программа, и позволяет четко определить порядок работы с разрабатываемым устройством.

Работа с устройством ввода данных в ОЗУ начинается с выбора режима работы тумблером "Режим" (например, "Ввод").

Для ввода данных прежде всего необходимо указать начальный адрес, с которого они будут размещаться в памяти. Для этого нажимается кнопка "Адрес" блока "Тип ввода". Устройство подготавливается к вводу адреса, о чем свидетельствует зажигающийся при этом двоичный индикатор, расположенный над кнопкой "Адрес".

Далее вводится адрес с 16-ричной клавиатуры. Вводимые цифры отображаются на знакосинтезирующем дисплее "Адрес" в режиме бегущей строки справа налево.

После установки необходимого адреса нажимается кнопка "Данные" блока "Тип ввода". Устройство переходит в режим ввода данных, о чем свидетельствует зажигающийся двоичный индикатор, расположенный над кнопкой "Данные". При этом индикатор над кнопкой "Адрес" гаснет.

Далее вводятся данные с клавиатуры. Вводимые цифры отображаются на знакосинтезирующем дисплее "Данные" в режиме бегущей строки справа налево.

После установки необходимых данных нажимается кнопка " +1" или "1" блока "Адрес". При этом данные записываются в формируемый массив ОЗУ, после чего адрес изменяется на единицу в указанную сторону.

В случае возникновения какой-либо из контролируемых ошибок на знакосинтезирующих дисплеях отображается сообщение о соответствующей ошибке.

После устранения причин ошибки сообщение о ней снимается, и на индикаторах отображается та же информация, что и до ошибки. Если отказ ОЗУ имеет устойчивый, а не сбойный характер, то для восстановления работоспособности необходим его ремонт.

Работа в режиме "Просмотр" аналогична работе в режиме "Ввод". При этом становится невозможным лишь ввод данных, а модификация адреса кнопками "+1" и "1" не вызывает записи данных в память.

Кнопка "Сброс" служит для аппаратного перезапуска программы с самого начала.