бесплатно рефераты
 

Кодирующее устройство для кода Файера

DD13.5 на вход регистра DD1. Запись в регистр происходит последовательно

со сдвигом влево, в соответствии с тактируемыми импульсами. В схеме девять

регистров (Степень образующего многочлена). Каждый регистр выполняет

задержку на один такт. Пока триггер DD15.1 находится в нуле в регистрах

за K-тактов вычисляются проверочные символы.

Триггер DD15.2 управляет работой счетчиков и триггером DD15.1.

Как только счетчики досчитали до k ,т.е. прошло k символов то DD15.1

перебрасывается в единицу, ключи DD13.5, DD13.4 открываются, а DD13.3

закрывается и из регистров на вход поступают проверочные символы за n-k

тактов. Когда счетчик досчитает до n триггер DD15.2 перебросится в единицу

и произойдет обнуление регистров, счетчиков и триггера DD15.1, т. е. схема

готова принимать новую комбинацию.

Временные диаграммы работы кодера приведены в приложении .

ВЫВОДЫ. В данной главе была подробна описана работа принципиальной схемы.

Далее будет рассмотрена отдельные элементы принципиальной схемы и их

описание.

5.Выбор узлов принципиальной схемы.

5.1. Расчет генератора тактовых импульсов

Генератор тактовых импульсов на ИМС DD1 К555АГ3. Принципиальная схема

генератора приведена на рис.5.1. Период колебаний импульсов получаемых с

автогенератора Т = 1 мс.

Длительность импульса: tи = 0.5Т = 0.5 мс.

Длительность паузы: tп = 0.5Т = 0.5 мс.

Рассчитаем параметры RC элементов генератора:

[pic];

[pic];

Задаваясь С1 = С2 = 0.1 мкФ, имеем:

R1 = 5 кОм; R2 = 5 кОм.

5.2. Счетчик К555 ИЕ10

Для подсчета числа импульсов используем два счетчика К555 ИЕ10.

Микросхема К555 ИЕ10 - это синхронный, четырехразрядный, реверсивный,

двоично-десятичный счетчик с предварительной записью и выходом переноса.

Условное обозначение и цоколевка даны на рис. 5.2.

Особенностью данного счетчика является его построение по синхронному

принципу, т. е. все триггеры переключаются одновременно от одного

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

тактового импульса, подаваемым на вход синхронизации С. Сброс всех

триггеров в нулевое состояние асинхронный по общему входу сброса R, т.

е. осуществляется напряжением низкого уровня, независимо от сигналов

действующих на входах С, РЕ, СЕР, СЕТ.

Счетчик устанавливается в предварительное состояние при наличии на

входе параллельной загрузки РЕ напряжения низкого уровня. В этом случае

разрешена подача сигналов на триггер через входы параллельной установки

D0 - D3 в момент прихода положительного перепада на вход С.

Для синхронного каскадирования микросхема имеет два входа разрешения

СЕР и СЕТ, а также выход ТС (окончания счета). Счетчик считает тактовые

импульсы если на входах СЕТ и СЕР напряжения высокого уровня.

Вход СЕТ последующего счетчика соединяется с выходом ТС предыдущего. На

выходе ТС появится напряжение высокого уровня, если выходной код счетчика

1111=15, а на входе СЕТ присутствует напряжение высокого уровня. Состояния

счетчика приведены в таблице 1.

Таблица 1.

|Режим работы |Входы |Выходы |

| |R |C |CЕР |СЕТ |РЕ |Dn |Qn |ТС |

|Сброс |0 |Х |Х |Х |Х |Х |0 |0 |

|Параллельная |1 |( |Х |Х |0 |0 |0 |0 |

|загрузка | | | | | | | | |

| |1 |( |Х |Х |0 |1 |1 |1 |

|Счет |1 |( |1 |1 |1 |Х |Счет |1 |

|Хранение |1 |Х |Х |0 |1 |Х |Qn |1 |

| |1 |Х |0 |Х |1 |Х |Qn |1 |

5.3. Триггер К555 ТВ6

Микросхема К555 ТВ6 содержит два J-K триггера с общим входом питания и

изображена на Рис .5.3 . Вход синхронизации С у всех триггеров инверсный

динамический, поэтому данные со входов J и K переносятся на выход Q по

отрицательному перепаду импульса С. Когда импульс переходит от высокого

уровня к низкому сигналы на входах J и K не должны меняться. Состояния

для триггера приведены в таблице 2 .

Таблица 2. Состояния триггера К555 ТВ6.

|Режим работы |Входы |Выходы |

| | R | J |K |C |[pic] |[pic] |

|Асинхронный сброс |0 |Х |Х |Х |0 |1 |

|Переключение |1 |1 |1 | |[pic]=1|[pic]=0|

|Хранение |1 |0 |0 | |1 |0 |

|Загрузка 1 |1 |1 |0 | |1 |0 |

|Загрузка 0 |1 |0 |1 | |0 |1 |

5.4. Регистр К155ИР13.

Микросхема К155ИР13 является универсальным восьмиразрядным регистром

сдвига с большими функциональными возможностями. Регистр может работать в

следующих режимах: последовательного ввода информации с о сдвигом вправо;

последовательного ввода информации с о сдвигом влево; параллельного ввода;

хранение; установка нулей (очистка, сброс).

Микросхема имеет следующие выводы (рис. 5.4): информационные входы

последовательного ввода информации – DR при сдвиге вправо и DL при сдвиге

влево; восемь входов D0-D7 для параллельного ввода; тактовый вход С;

управляющие входы S0 и S1 для выбора режима; вход R для установки триггеров

в нулевое состояние и восемь выходов от разрядов Q0-Q7.

Рис. 5.4. Регистр К155ИР13.

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

происходит при S1=0 и S0=1. Информация в последовательном коде подается на

вход, начиная с младших разрядов. Ввод и сдвиг всего числа на один разряд

происходит с каждым перепадом 0,1 тактовых импульсов.

Последовательный ввод со сдвигом влево осуществляется при S1=1 и S0=0.

Входная информация должна поступать на вход DL со старших разрядов.

Для параллельного ввода со входов D0-D7 на обоих управляющих входах

должно быть S1=S0=1. Информация со входов D0-D7 будет записана в триггеры и

появится на выходах Q0-Q7 по перепаду 0,1 тактового импульса.

Во избежание сбоев, смена состояний управляющих входов S1 и S0 должна

происходить при С=1. Когда на обоих управляющих входах S1= S0=0, триггеры

не переключаются, т. е. имеет место режим хранения. Установка нулей

(очистка регистра ) осуществляется импульсом U0 на входе R. Очистка

регистра происходит независимо от состояния остальных входов. Во время

действия импульса R=0 регистр бездействует. При выполнении всех остальных

операций необходимо поддерживать R=1. Работа регистра приведена в таблице

3.

Таблица 3.

|Входы |Выходы |Режим работы |

|R|C |S0 |S1 |DR |DL |Di |Q0 |Q1-Q6 |Q7 | |

|1|( |1 |1 |1 |X |Dni |Dn0 |Dn1... |Dn7 |Параллельный |

| | | | | | | | |Dn6 | |ввод. |

| | | | | | | | | | |Хранение |

|1|( |0 |0 |X |X |X |Qn0 |Qn1... |Qn7 | |

| | | | | | | | |Qn6 | | |

|1|( |1 |0 |X |0 |X |Qn1 |Qn2... |0 |Сдвиг влево |

| | | | | | | | |Qn7 | | |

|1|( |1 |0 |X |1 |X |Qn1 |Qn2... |1 | |

| | | | | | | | |Qn7 | | |

|1|( |0 |1 |0 |X |X |0 |Qn0... |Qn6 |Сдвиг вправо |

| | | | | | | | |Qn5 | | |

|1|( |0 |1 |1 |X |X |1 |Qn0... |Qn6 | |

| | | | | | | | |Qn5 | | |

|0|x |x |x |X |x |X |0 |0 ... 0 |0 |Сброс |

ВЫВОДЫ. В данной главе были описаны основные элементы, применяемые

при реализации принципиальной схемы кодера. Также была дана их краткая

характеристика и способы включения элементов. Все используемые элементы

-ТТЛ. В следующих главах будет рассмотрена программная реализация

кодирующего устройства (его математическая модель).

6. Описание разработки системы.

6.1. Модульная структура системы.

Как уже говорилось во второй главе программа состоит из пяти модулей:

- Основная программа.

- Модуль ввода.

- Модуль вывода.

- Интерфейс.

- Модуль обработки ошибок.

Модульная структура программы представлена на рисунке 6.1

Рис 6.1 Модульная структура программы.

Пользователь ведёт диалог с программой через интерфейс. От интерфейса

управление передаётся в Основную программу, где анализируются команды

пользователя и выполняется передача управления соответствующим модулям.

Если пользователь выбрал пункт меню и пункт подменю , то

управление от Основной программы передаётся в Модуль ввода и дальше

пользователь ведет диалог с этим модулем. Как только нажата клавиша

, то управление берёт Модуль обработки ошибок. Данный модуль

проверяет выполнение ограничений и выявляет ошибки при вводе. Если ошибок

нет, то управление передаётся в Основную программу и дальше в Модуль

вывода. А иначе пользователю предоставляется шанс ещё раз ввести данные.

6.2. Описание пользовательского интерфейса.

6.2.1. Меню системы.

Интерфейс системы выполнен в графическом режиме с соблюдением всех

установленных ГОСТОВ. Экран разбит на три части: верхняя часть -

горизонтальное меню с выпадающими окнами; нижняя часть - строка состояния;

средняя часть - окно диалога.

Горизонтальное меню состоит из трёх пунктов:

V Работа.

В этом пункте предусмотрено выпадающее меню для облегчения

поиска соответствующего пункта. В подменю находятся следующие

пункты:

V Ввод.

V Вывод

V Выход.

V О программе.

V Помощь.

Передвижение по меню осуществляется с помощью клавиш управления

курсором. Каждый пункт меню активизируется при нажатии клавиши .

Обработку пунктов меню осуществляет Основная программа. В неё передаётся

управление и соответствующие координаты пунктов на выполнение.

В пункте меню , в подпункте осуществляется ввод

данных, необходимых для работы программы. При этом в Модуле ввода

предусмотрено редактирование вводимого результата. В подпункте

происходит выполнение алгоритма и вывод образующей матрицы на экран в

удобном для визуализации виде.

В подпункте происходит предупреждение пользователя о выходе из

программы с соответствующими запросами.

В пункте дана краткая аннотация программы.

В пункте представлена помощь по обработке пунктов меню и по

соответствующим клавишам.

6.2.2. Обработка ошибочных ситуаций.

В программе предусмотрена защита от ввода нестандартных данных, а

также защита от нажатия различных клавиш. Для обработки этих ситуаций

предусмотрен Модуль обработки ошибок. Пользователь может вводить только 0

или 1.

Если пользователь ввел по ошибке неправильные данные, то у него есть

возможность исправиться на стадии ввода. Для этих целей в программе

предусмотрен повторный ввод с предыдущими данными.

6.3. Спецификация на программные модули.

Процедура initgrf.

Входные параметры:Нет.

Выходные параметры:Нет.

Выполняемые функции:Инициализация графики.

Особенностей:Нет.

Функция Sum(F,P : Byte) : Byte;

Входные параметры: F,P : Byte

Выходные параметры: Sum

Выполняемые функции: Суммирование по модулю 2

Особенностей:Нет.

Процедура Dopoln(Var F : Mass1);

Входные параметры: F : Mass1

Выходные параметры: F : Mass1

Выполняемые функции: Умножение на старшую степень

образующего многочлена .

Особенностей: НЕТ .

Процедура Delenye(F : Mass1;P : Mass2);

Входные параметры: F : Mass1;P : Mass2

Выходные параметры: нет.

Выполняемые функции: Деление многочлен на многочлен

Особенностей:Имеет свои особенности.

Процедура Ed_Matrix(Var A : Two_Matrix);

Входные парамеры: Var A : Two_Matrix

Выходные параметры: Var A : Two_Matrix

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

Особенности: нет.

Процедура Obr_Matrix(Var A : Two_Matrix);

Входные параметры A : Two_Matrix

Выходные параметры: A : Two_Matrix

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

Особенностей: нет.

Процедура Visual(Var sa:mass);

Входные параметры: Var sa:mass

Выходные параметры: Var sa:mass

Выполняемые функции: Ввод информационных символов.

Особенностей: нет

Процедура OutPutObr_Matrix(x,y : Integer;Obr_Matr :

Two_Matrix );

Входные параметры: x,y : Integer;Obr_Matr :

Two_Matrix );

Выходные параметры:Нет.

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

Особенностей:Является универсальной.

Процедура OutPut(x,y : Integer;F,A : Mass1);

Входные параметры: x,y : Integer;F,A : Mass1.

Выходные параметры:Нет.

Выполняемые функции: Вывод полученной кодовой

комбинации.

Особенностей: нет.

Функция _Exit(Fon,Color : Integer;Col_Simv : Byte) :

integer;

Входные параметры Fon,Color : Integer;Col_Simv : Byte

Выходные параметры: _Exit : integer.

Выполняемые функции: выход из программы

Особенностей: нет

Основная программа

Входные параметры:нет.

Выходные параметры:Нет.

Выполняемые функции:Обьединяет в себя все процедуры и

управляет работой.

Особенностей:Нет.

ВЫВОДЫ. В данной главе были описаны принципы разработки программы и

интерфейса. Дана модульная структура программы и межмодульные связи. Описан

принцип работы программы и дана спецификация на программные модули. Если

это всё объединить, то нетрудно будет разобраться в отдельных деталях

программы. Дальше будет рассмотрено одно из основных мероприятий при

программировании - тестирование.

7. Тестирование.

7.1. Выбор методики тестирования.

Без тестирования программ невозможно создать правильно работающую

программу, так как всегда существуют какие-то граничные условия, за

пределами которых программа даёт ошибки. При этом не следует путать

отладку программ и тестирование.

Отладка программ - используется при неправильной работе программы.

Тестирование - ищет ошибки.

Существует много методов тестирования:

1) Статическое тестирование является наиболее формализованным и

автоматизируемым методом проверки программ. В качестве эталонов

применяются правила структурного построения программных модулей и

обработки данных. Проверка степени этих правил проводится без

использования объектного кода программы путем формального анализа

текста программы на языке программирования. Операторы и операнды

текста программ при этом анализируется в символьном виде, поэтому

такой метод называют символьным тестированием.

2) Детерминированное тестирование является наиболее трудоёмким и

детализирующим. При детерминированном тестировании контролиру-

естся каждая комбинация исходных эталонных данных и

соответствующая ей комбинация результатов функционирования

программы. Это позволяет выявлять отклонение результатов от эталона и

реализующих данных, при которых это отклонение произошло.

3) Стохастическое тестирование применяется в тех случаях, когда

невозможно в сложных задачах перебрать все комбинации исходных

данных и проконтролировать результаты функционирования программы

на каждом из них. При этом исходные тестовые данные задаются

множеством случайных величин с соответствующими распределениями и

для сравнения полученных результатов используются также

распределения случайных величин. Стохастическое тестирование

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

4) Тестирование в реальном масштабе времени. В процессе такого

тестирования проверяется исполнение программ и обработка исходных

данных с учетом времени их поступления , длительности и

приоритетности обработки , динамика использования памяти и т.д.

5) При восходящем тестировании прежде всего проверяются модули нижних

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

их модули. При этом обеспечивается работоспособность вызываемых

компонент и функции группы программ проверяются в их естественном

исполнении. Основные трудности состоят в необходимости полного

обновления тестовых наборов при подключении каждой новой программы

более высокого уровня.

6) При нисходящем тестировании проверки начинаются с программ

управления и организации вычислительного процесса. Первоначально

тестируется управляющее ядро комплекса программ и программы решения

функциональных задач, размещенных на высших иерархических уровнях.

К ним постепенно подключаются для тестирования программы

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

такого метода является возможность сохранения и развития наборов

тестовых данных по мере подключения программ нижних уровней.

На практике обычно используются три стратегии тестирования:

1) Тестирование программ как "Чёрного ящика ". Имеет цель выяснения

обстоятельств, в которых поведение программ не соответствует

спецификации. Тестовые данные составляются и используются без учета

знаний о внутренней структуре программы.

2) Тестирование программ как "Белого ящика ". Тестовые наборы данных

проектируются на основе внутренней логики программы. Цель тестирования

- проверить каждую ветвь, каждый путь и каждый оператор. Спецификация

программы при этом не используется.

3) Реальная стратегия обычно сочетает оба метода. При помощи метода

"чёрного ящика" делается:

V Проверка в нормальных условиях.

V Анализ граничных значений.

V Проверка в исключительных ситуациях.

V Предположение об ошибке.

При помощи метода "Белого ящика" делается:

V Покрытие операторов.

V Покрытие решений.

V Покрытие условий.

7.2. Результаты тестирования

При тестировании программы был использован восходящий метод

тестирования. С помощью этого метода сначала были протестированы отдельные

модули программы, а затем и вся программа. Результаты тестирования показаны

на рисунке Приложения.

Тестирование системы включало в себя:

- тестирование ввода различных набора данных;

- получение комбинаций для кода с любым образующим многочленом;

Тестирование ввода различных наборов кодовых комбинаций не показало ни

одной исключающей ситуации.

ВЫВОДЫ. В данной главе был выбран метод тестирования системы. В

результате тестирования были обнаружены ошибки, которые впоследствии были

устранены. В результате тестирования было получено, что программа является

Страницы: 1, 2, 3


ИНТЕРЕСНОЕ



© 2009 Все права защищены.