Автор работы: Пользователь скрыл имя, 03 Мая 2015 в 21:06, дипломная работа
Роль и значение компьютеров в современной жизни общеизвестны. Аппа¬ратные методы решения задач также важны и в ряде случаев незаменимы. Многие приложения, такие как моделирование динамических объектов, управление движением (особенно управление движением совокупности объ¬ектов), обработка сигналов и изображений в реальном времени, реалистичная компьютерная графика, связаны с многократным выполнением сравнительно простых операций, причем требуют выполнения до нескольких миллиардов операций в секунду.
Введение 5
1 Аналитический раздел 7
1.1 Анализ оборудования 8
1.2 Постановка задачи проектирования 8
1.3 Сравнительный анализ 9
2 Конструкторский раздел 15
2.1 Построение функциональной модели 15
2.2 Построение структурной схемы 16
2.3 Выбор программного обеспечения 18
3 Проектный раздел 20
3.1 Проектирование основных компонентов блока Cnt_ADC 20
3.2 Проектирование управляющего автомата Avt_ADC 22
3.3Тестирование программного описания автомата 25
3.4 Разработка общей структуры блока Cnt_ADC 26
3.5 Проектирование общей схемы сборки проекта из отдельных фрагментов 27
4 Экономический раздел 30
4.1 Исходные данные для проекта 30
4.2 Нормы затрат на проектирование и внедрения микропроцессорной системы 31
4.3 Расчет эксплуатационных расходов 34
4.4 Расчет и построение диаграммы общей стоимости системы 35
4.5 Расчет прибыли разработчика системы 36
4.6 Расчет затрат, связанных с покупкой, внедрением и использованием системы и их окупаемости 36
5 Раздел безопасности и жизнедеятельности и охраны труда 39
5.1 Организация рабочего места. 39
5.2 Рекомендации по организации труда и отдыха 40
5.3 Параметры микроклимата 41
5.4 Вентиляция и отопление 42
5.5 Организация освещения 42
5.6 Расчет освещения в помещении 43
5.7 Расчет искусственного освещения 44
5.8 Нормирование шума и вибрации 45
5.9 Электробезопасность и пожаробезопасность 45
5.10 Статическое электричество и молниезащита 46
5.11 Электромагнитное излучение 46
Заключение 47
Список используемой литературы. 48
Блок Cnt_Adc отвечает за управление отдельными циклами преобразования и запись одиночных данных от аналого-цифрового преобразователя в промежуточном регистре. Блок обеспечивает прием блока данных заданной длины и формирует сигналы, требуемые для записи принимаемых от АЦП данных в ОЗУ МП.
Блок Cnt_cmp обеспечивает процедуру сравнения сигналов, поступающих в порты МП А и В, и формирует необходимые внешние сигналы управления "больше", "меньше" или "равно". Выбор рабочего канала определяется входным сигналом В/С.
Следующим шагом является обоснованный выбор средств, при помощи которых будут проектироваться отдельные фрагменты проекта. Как правило, специфические характеристики, свойственные проектируемым фрагментам, позволяют определить рациональность применения того или иного проектного средства. Для данного проекта, в аппаратной части Е5 можно выбрать ряд блоков, реализация которых целесообразна с привлечением различных средств.
Для реализации блока управления приемом информации от аналого-цифрового преобразователя (блок cnt_Adc) будем ориентироваться на возможности, предоставляемые компилятором Synplify фирмы Synplicity. Окончательным результатом работы компилятора при этом будет импортируемый модуль на языке EDIF. Поскольку в качестве входной информации для Synplify должен использоваться текстовый файл на языке VHDL, то для подготовки текстового описания этого блока будут применяться программные пакеты фирмы Mentor Graphic. Представляется следующая последовательность работ: графический ввод и составление тестовой процедуры Test-Bench с использованием САПР HDL Designer, а затем верификация полученного VHDL -описания с помощью САПР Model Technology.
Важное значение в реализации проекта имеет принятое решение об привлекаемых средствах проектирования. На этапах проектирования практически всегда приходится обращаться к базовой САПР фирмы-производителя кристалла SOPC. Для выбранного типа БИС SOPC семейства Е5 фирмы Triscend необходимо ориентироваться на САПР под названием FastChip. Допустимые для проектирования в САПР FastChip направления проектного потока приведены на рисунке 7.
Рисунок 7 – Проектный поток в FastChip
Существование альтернативных вариантов выполнения проектного потока связано с возможностью или необходимостью привлечения на определенных ветвях проектирования САПР сторонних фирм. Так как в состав FastChip не включены компиляторы для МК типа 8051, то подготовка программной части проекта обязательно требует привлечения каких -либо систем проектирования, ориентированных на разработку программного обеспечения для MCS -51. Формально, проектирование может выполняться на любой системе проектирования, но наилучшая стыковка с FastChip выполняется для небольшого числа систем проектирования. Наилучшее и гарантированное согласование обеспечивается при использовании инструментальных средств разработки фирмы Keil Software (www.keil.com) для семейства микроконтроллеров 8051. Средства проектирования фирмы Keil поддерживают все стадии разработки программного обеспечения. Программные средства включают средства компиляции с языков ассемблера и С, интегрированную среду разработки, содержащую отладчик и моделировщик. Для разработки однопроцессорных многозадачных систем могут привлекаться средства операционной системы реального времени RTX 51, входящей в состав САПР Keil Software.
Функционально блок СNT_АDС решает следующую задачу — обеспечивает управление процедурой получения блока данных от АЦП и передачу ее в память МП, опираясь на ресурсы контроллера ПДП, встроенного в микропроцессорную часть кристалла. Решение этой задачи сопровождается решением двух вложенных подзадач:
Общая структура блока Cnt_ADC приведена на рисунке 8. Ключевым элементом схемы является автомат управления Avt_ADC. Операционная часть фрагмента содержит два регистра Reg_Buf1 и Reg_Buf2 для промежуточного хранения 8 - и 4 -разрядных частей данных от АЦП, мультиплексор мuх, счетчик Count, отвечающий за длину принимаемого блока данных.
Триггеры Т1 и Т2 введены в схему устройства для синхронизации сигналов асинхронно работающих блоков — АЦП и автомата. Функциональное назначение управляющих сигналов очевидно. Сигналы, квитирующие обмен блока данных, — start, Busy. Сигналы, квитирующие управление одиночным циклом преобразования АЦП, — nconvst, nЕОС. Сигналы, обеспечивающие передачу данных от АЦП, — ncs, nRD и сигнал Load, обеспечивающий запись данных Data в регистры промежуточного хранения Reg_Buf1 и Reg_Buf2. Сигнал Load используется одновременно для наращивания значения счетчиком count числа принятых слов. Начальный сброс счетчика осуществляется сигналом Res_count. Состояние сигнала End_count указывает заполнение буфера памяти.
Разбиение передачи 12 -разрядных кодов на две посылки потребовало разбиения регистра на две части (8 и 4 разряда) и введения сигнала ОЕ, управляющего съемом информации из этих частей. Мультиплексор мuх обеспечивает подключение выхода выбранного промежуточного регистра (Reg_Buf) к МП для передачи данных в память. Для одиночной передачи данных по каналу прямого доступа к памяти (DMA) служит система квитирующих сигналов Req _ DMAИAck _ DMA.
Автомат синхронный — тактовый сигнал clk, сигнал асинхронного сброса — Rst.
Рисунок 8 - Структура блока Cnt_ADC
Возможный алгоритм работы автомата Avt_Aoc блока cnt_ADС, отвечающий протоколу, необходимому для правильной работы БИС AD7892 фирмы Analog Devices, может иметь вид, соответствующий схеме переходов автомата, приведенной на рисунке 9. Схема переходов при помощи графического редактора пакета HDL Designer Series фирмы Mentor Graphics была занесена в соответствующий диаграммный файл.
Автомата Avt_ADC, управляющего считыванием данных из АЦП во временный регистр Reg_Buf и записью этих данных в память МП, и поддерживающего для этих обменов требуемое взаимодействие квитирующих сигналов.
Основу алгоритма образует циклическая последовательность смены состояний, определяющая выполнение 128 циклов обрабатываемого блока.
Исходно (по сигналу Rst и по завершении цикла записи блока данных) автомат находится в состоянии IDLE_ST. В этом состоянии автомат формирует сигнал Busy, сигнализирующий о готовности к приему блока данных от АЦП, и сигнал Res_count, обнуляющий счетчик числа циклов записи count, и продолжает находиться в состоянии IDLE_ST до появления сигнала start, который приводит к переходу автомата в последующее состояние START_ST. В этом состоянии формируется сигнал запуска процедуры преобразования: сигнал nconvst устанавливается в 0.
В состоянии WAIT1_ST автомат остается до тех пор, пока не поступит сигнал готовности данных от ADC — сигнал nЕОС не станет равным нулю.
В состоянии LOAD_ST формируются сигнал квитирования nRD для АЦП, сигнал запуска записи данных Load от ADC в промежуточный регистр и сигнал запроса DMА_Req к контроллеру ПДП. Одновременно с запросом подготавливается передача в МП старшего байта данных из регистра, для чего формируется сигнал ОЕ.
В состоянии WАIТ2_sт формируется сигнал ОЕ. В этом состоянии автомат остается до тех пор, пока не появится сигнал ACK_DMA, подтверждающий готовность МП к приему данных по каналу ПДП. По этому сигналу выходные данные Reg_Buf1, находящиеся на выходе мультиплексора, переписываются в ОЗУ.
В состоянии DMA_ST формируются новый сигнал запроса Req _ DMA к контроллеру ПДП и подготавливается передача в МП младших 4 -х разрядов данных из регистра Reg_Buf2, для чего снимается сигнал ОЕ.
Автомат безусловно переходит из состояния DMA_ST в состояние WAIT3_ST. В этом состоянии он остается до тех пор, пока не появится сигнал ACK_DMA, подтверждающий готовность МП к приему данных по каналу ПДП.
В состоянии ENDTR_ST анализируется сигнал End_Count. Если сигнал End_count равен 1, что соответствует завершающему 128 циклу приема оцифрованных данных от АЦП, то автомат переводится в начальное состояние IDLE_ST, в противном случае автомат переходит в состояние START_ST, запускающее новый цикл преобразования.
Рисунок 8 – Граф-схема переходов автомата управления Avt_ADC
Для автомата с помощью программы пакета HDL Designer Series фирмы Mentor Graphics была выполнена трансляция диаграммы.
USE ieee.std_logic_l164.all; USE ieee.std_logic_ariht.all;
ENTITY Avt_ADC IS
PORT(Clk, Start, Rst, nEOC, Ack_DMA, End_Count : in std_logic; nConvSt, Busy, Load, Req_DMA, OE, nRD, Res_Count: out std_logic); END Avt ADC;
hds interface_end LIBRARY ieee;
USE ieee.std_logic_1164.all; USE ieee.std_logic_ariht. all;
ARCHITECTURE fsm of Avt_ADC IS
— Architecture Declarations
TYPE state_values IS (IDLE_ST, START_ST, WAIT1_ST, LOAD_ST, WAIT2_ST, DMA_ST, WAIT3_ST, ENDTR_ST,);
SIGNAL current_state, next_state: state_values; BEGIN
cloced: process (Clk, Rst) BEGIN
IF Rst = '1' THEN
current_state <= IDLE_ST; — Reset Values ELSIF rising_edge(Clk) then
current_state <= next_state; — Default Assignment To Internals END IF; END PROCESS cloced;
NEXTSTATE: PROCESS (current_state, Start, nEOC, Ack_DMA, End_Count) BEGIN
— Defaults Assignment
nConvSt <= '1';
Busy <= ' 1'; Load <= '0'; ReqDMA <= '0'; OE <= '0'; nRD <= '0'; Res_Count <= '0';
— Combined Actions
CASE current_state IS
WHEN IDLE_ST =>
Busy <= '0';
Res_count <= '1';
IF Start = '1' THEN
next_state <= START_ST;
END IF; WHEN START_ST =>
nConvSt <= '0';
next_state <= WAIT1_ST; WHEN WAIT1 ST =>
IF nEOC = 'О' THEN
next_state <= LOAD_ST; END IF; WHEN LOAD_ST => Load <= '1'; nRD <= '0'; Req_DMA <= '1'; OE <= '1';
next_state <= WAIT2_ST; WHEN WAIT2_ST => OE <= '1'; IF Ack_DMA = '1' THEN
next_state <= DMA_ST; END IF; WHEN DMA_ST =>
Req_DMA <= '1'; next_state <= WAIT3_ST; WHEN WAIT3_ST =>
IF Ack_DMA = '1' THEN
next_state <= ENDTR_ST; END IF; WHEN ENDTR_ST =>
IF End_Count = '1' THEN
next_state <= IDLE_ST; ELSE
next_state <= START_ST; END IF; WHEN OTHERS =>
next_state <= IDLE_ST; END CASE; END PROCESS nextstate; — Concurrent Statements END fsm;
Для проверки правильности составления и работоспособности автоматов необходимо проведение тестовых испытаний. Возможны разные подходы к организации тестирования. Наибольшее распространение получили следующие варианты:
1) программа САПР, создающая текстовое описание автомата (такая как, например, программа StateCAD), проверяет наличие комбинаций входных сигналов, соответствующих неопределенному направлению перехода автомата, и поэтому требует формирования полного перечня входных сигналов, однозначно определяющих направления переходов.
2) САПР может обеспечивать так называемый режим анимации. В этом режиме САПР последовательно проходит по всем состояниям автомата. Переход в очередное активное состояние осуществляется путем установки желаемых значений входных сигналов. Таким образом, в интерактивном режиме разработчик может проверить все нужные состояния, переходы и значения выходных переменных, меняя на каждом шаге значения входных переменных.
В общем случае проверка работоспособности автомата (созданного любым способом) может осуществляться на основании традиционных методов создания тестирующих программ (Test -Bench). Современные САПР упрощают этот подход, предлагая автоматическое создание тестового блока Test -Bench. Возможности автоматизации изменяются в достаточно широких пределах: от автоматического формирования только интерфейса блока Test -Bench до автоматического формирования последовательности входных сигналов, обеспечивающей перебор всех возможных состояний автомата. Для рассматриваемого примера проектирования было целесообразно ориентироваться на возможности пакета HDL Designer в части формирования тестирующих программ Test -Bench. Поэтому пакет был запущен на создание Test-Bench и автоматически сформировал ENTITY для тестирующей программы. Для заполнения архитектурного тела можно использовать любые редакторы, входящие в состав HDL Designer, например графический редактор описания потоков Flow Chart или редактор таблиц истинности Truth Table.
Описание блока Cnt_ADC может, ориентироваться на различные возможности и средства описания, предоставляемые САПР HDL Designer. Наиболее компактным и быстрым способом спецификации блока является создание его текстового описания. Для демонстрации возможностей САПР HDL Designer воспользуемся структурным редактором САПР и будем ориентироваться на использование элементов стандартных библиотек пакета. Структурная схема блока cnt_ADC приведена на рисунке 9. При ее составлении использовались стандартные элементы библиотеки HDL Designer ModuleWare:
Необходимость подключения ко входу мультиплексора четырехразрядной константы нуля диктуется требованием выравнивания разрядностей, записываемых по каналу данных ПДП.
В состав блока включен и ранее разработанный и протестированный модуль автомата Avt_Adc.
Рисунок 9 – Структурная схема блока управления Cnt_ADC
На верхнем уровне иерархии для реализации рассматриваемого устройства рисунок 10 из библиотеки элементов САПР FastChip можно использовать следующий набор библиотечных настраиваемых модулей:
- Три группы восьмиразрядных элементов (в результате образующих традиционные входные порты МП -ядра):
- Две группы восьмиразрядных элементов (в результате образующих традиционные выходные порты МП -ядра):
- Для организации ввода данных в ОЗУ по линии ПДП требуется использование входного буфера Reg _ DMA и связанного с ним селектора адреса DMA.
Кроме библиотечных модулей в схему необходимо импортировать файлы EDIF, определяющие конструкцию блоков Cnt _ ADC и Cnt_cmp. Для подключения управляющих сигналов к входам автомата Cnt_ADC используется модуль входных контактов — Inp_cnt.
Информация о работе Проектирование операционных устройств с микропрограммным управлением