Разработка системы сбора и обработки данных. Курсовая работа (т). Информационное обеспечение, программирование.

⚡ 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻
Информационное обеспечение, программирование
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!
Похожие работы на - Разработка системы сбора и обработки данных
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Скачать Скачать документ
Информация о работе Информация о работе
Нужна качественная работа без плагиата?
Не нашел материал для своей работы?
Поможем написать качественную работу Без плагиата!
Министерство образования и науки
Российской Федерации
Новосибирский государственный
технический университет
РАЗРАБОТКА СИСТЕМЫ СБОРА И ОБРАБОТКИ
ДАННЫХ
2. Разработка структурной схемы системы
3. Выбор и обоснование не указанных в задании элементов
4. Анализ временных параметров системы
5. Разработка файла конфигурации для системы сбора-обработки данных
на языке AHDL
6. Моделирование цифровой части системы
В отличие от обычных цифровых микросхем, логика работы ПЛИС не
определяется при изготовлении, а задаётся посредством программирования (проектирования
<#"784760.files/image001.jpg">
Рис. 1 - Структурная схема системы сбора и обработки данных
Аналоговые сигналы приходят на АЦП, которые преобразует их в
14-разрядную кодовую комбинацию. Кодовые комбинации с обоих АЦП передаются в
ПЛИС. При внутренней+ синхронизации данные с АЦП постоянно сравниваются с
порогом. Если сигнал превышает порог, при этом предыдущее значение меньше
порога, то запускается запись данных в ОЗУ.
При внешней+ синхронизации в какой-то момент времени приходит
внешний цифровой сигнал синхронизации, который можно считать идеальным. Если
внешняя +, то с приходом фронта synchinput сигнал из АЦП записывается в
запоминающее устройство. При переключении режима записи на чтение и
переполнении счётчика адреса ОЗУ данные из ОЗУ поступают на интерфейс.
Интерфейс RS-485 (EIA/TIA-485) - один из наиболее
распространённых стандартов физического уровня связи. Физический уровень - это
канал связи и способ передачи сигнала (1й уровень модели взаимосвязи открытых
систем OSI).
Сеть, построенная на интерфейсе RS-485, представляет собой
приёмопередатчики, соединённые при помощи витой пары. В основе интерфейса
RS-485 лежит принцип дифференциальной (балансной) передачи данных. Суть его
заключается в передаче одного сигнала по двум проводам. Причём по одному
проводу (условно A) идет оригинальный сигнал, а по другому (условно B) - его
инверсная копия. Другими словами, если на одном проводе "1", то на
другом "0" и наоборот. Таким образом, между двумя проводами витой
пары всегда есть разность потенциалов: при "1" она положительна, при
"0" - отрицательна.
Рис. 2 - Принцип работы интерфейса RS 485
485 - полудуплексный интерфейс. Приём и передача
идут по одной паре проводов с разделением по времени.
Микросхема драйвера интерфейса RS485
Лидером в разработке и выпуске микросхем драйверов является
фирма MAXIM.
Все микросхемы драйверов можно условно разделить на 4 группы:
микросхемы с расширенным диапазоном питания от 3 до 5.5 В;
низковольтные микросхемы с питанием 3.3 В;
микросхемы со встроенной оптической изоляцией.
В курсовой работе будем выбирать микросхему с питанием 5
Вольт.
Определим критерии отбора микросхем для последующего
рассмотрения. Мы ставим своей целью ознакомление с широко используемыми
микросхемами интерфейса RS485, т.е. с микросхемами, работающими в
полудуплексном режиме. У этих микросхем входы приёмника объединены с выходами
передатчика и образуют две линии приёма/передачи, "A" и
"B". Мы будем рассматривать только микросхемы, выпускаемые в корпусе
с восемью выводами (кроме микросхем со встроенной оптической изоляцией и
микросхем в корпусе 6/5/SO), как наиболее распространённые и используемые.
Выберем микросхему драйвера MAX3082E из семейства
MAX3082/3085/3088, которая по выводам полностью совместима со стандартным
семейством MAX481/483/485/487/1487. Основными отличиями этой группы являются:
повышенная нагрузочная способность выходов, что позволяет
объединять в сеть до 256 станций;
наличие защиты от электростатики для микросхем с буквой
"E";
наличие режима экономии, в который микросхемы переходят при
закрытии приёмника, т.е. при RE/=1;
Таблица 2 - Микросхема драйверов интерфейса RS485 с питанием
+5 В
В приведённой таблице приняты следующие обозначения:
В колонке "Состояние RxD": P - обозначает, что
управляющий вход приёмника переключает его либо в открытое состояние, либо
переводит его в режим энергосбережения.
"Режим": H - означает полудуплексный режим, т.е.
интерфейс RS485.
Разработка формата протокола обмена
Обмен данными разрабатываемого устройства
с внешним устройством осуществляется посредством последовательного порта RS 485
в асинхронном режиме. Количество бит равно 7 для одного канала. Скорость
передачи согласно техническому заданию на курсовой проект равна 300 кбит/с.
В курсовой работе мы используем два 14-разрядных
одноканальных АЦП.
Рис. 3 - Передача данных по каналам АЦП
В соответствии со стандартными протоколами передача данных
через данный порт начинается со старт-бита (start bit) и заканчивается
стоп-битом (stop bit). Стартовый бит всегда равен 0 (GND), стоповый - 1 (VCC).
Послав один за другим стартовый бит, байт данных и стоповый бит, передатчик
может повторять стоп-бит до тех пор, пока приемник не будет готов получить
следующий байт. Тогда посылается стартовый бит, служащий сигналом начала новой
порции данных.
Поэтому к 14-битной посылке добавятся ещё 2 стоповых и 2
стартовых бита.
Так как элементарная посылка имеет длину 7 бит (без учёта
старт-стоп бит), а передать нужно 28 информационных бит по 14 на каждый канал,
то необходимо поделить эти 28 бит на 4 посылки по 7 бит.
Определим однозначно способ разделения посылки: пусть сначала
будут передаваться 7 старших бит (MSB) 1 канала, за ними 7 младших бит (LSB) 1
канала, затем по 7 старших (MSB) и младших (LSB) бит второго канала. Это нам
нужно для того, чтобы, принимая с АЦП данные, мы смогли "прочитать"
информацию.
Рис. 4 - Формат протокола обмена данных
Мы должны выбрать ОЗУ с объёмом не менее 16 ksample на 1
канал (так как согласно заданию канала два, то нам нужно ОЗУ с объёмом памяти
не менее 32 ksample) не менее, чем на 14 бит.
Выбираем ОЗУ AS7C3513B с объёмом памяти 32K×16.
При программировании ПЛИС возможны появление критических
временных соотношений, сбой и набеги сигналов. В тех случаях, когда это влияет
на правильность работы системы, были использованы задержки нужной длительности.
Также необходимо добиться, чтобы такие сигналы, как we, oe, имели длительность
не меньшую, чем указано на временных диаграммах работы ОЗУ as7c34098.
Таблица 3 - Временные параметры для режима чтения
Временная диаграмма для режима чтения представлена ниже:
Рис. 5 - Временная диаграмма для режима чтения
Таблица 4 - временные параметры для режима записи
Временная диаграмма для режима записи представлена ниже:
Рис. 6 - Временная диаграмма для режима записи
Так как интерфейс работает намного медленнее, чем АЦП, то
ориентироваться при выборе тактовой частоты генератора будем на последний.
В данном разделе курсовой работы приведём функциональную
блок-схему и временную диаграмму для АЦП AD6644AST-40.
Рис. 7 - Функциональная блок-схема АЦП AD6644AST-40
Рис. 8 - Временная диаграмма для АЦП AD6644AST-40
Для моделирования системы в среде MAX+plusII необходимо
разработать файл конфигурации на языке AHDL. В него войдут такие мега-функции,
как:
lpm_counter - счетчик, необходимый для деления
частоты, счета номеров адресов и для формирования сигнала переполнения адреса в
памяти.
lpm_compare - для сравнения цифровых данных,
поступающих от АЦП, с порогом.
lpm_bustri - для моделирования двунаправленной
шины данных.
lpm_shiftreg - для преобразования параллельного кода в
последовательный.
busmux - для реализации функции мультиплексора, для
передачи данных на выход интерфейса.
lpm_counter - счетчик, необходимый для деления
частоты, счета номеров адресов и для формирования сигнала переполнения адреса в
памяти.
lpm_compare - для сравнения цифровых данных,
поступающих от АЦП, с порогом.
lpm_ram_dq - для моделирования внутренней памяти
ПЛИС.
lpm_shiftreg - для преобразования параллельного кода в
последовательный.
busmux - для реализации функции мультиплексора, для
передачи данных на выход интерфейса.
Также использованы примитивы триггеров, таких как DFF, TFF.
Найдет свое применение неудаляемый буфер LCELL, для формирования нужных
задержек, для синхронизации в появлении сигналов записи/чтения и сигнала на
шине адреса. В секции Variable будут прописаны сигналы, которые используются
только ПЛИС, в виде внутренних узлов (node). В секции Variable будут
использованы узлы с тремя видами состояний (tri_state_node) для моделирования шины,
по которой будут считываться данные из ОЗУ в ПЛИС.
Текст программы для ПЛИС содержится в приложении 1
Программа упакована после компиляции в микросхему семейства
ACEXK50 TQFP144.
Данная система в процессе своей работы попеременно выполняет
циклы записи и чтения в память. Цикл записи начинается после прихода в ПЛИС от
АЦП 28-разрядной кодовой комбинации (считаем, что в ПЛИС приходит объединённый
сигнал с двух каналов).
При передаче на интерфейс же возможен выбор нужного канала.
Была реализована синхронизация для двух случаев: внешняя+ и
внутренняя+, - как указано в задании, и при помощи логического "ИЛИ"
выбран тот вариант, где синхронизация сработала быстрее. D-триггером
зафиксирован выбранный вариант.
В результате работы мы разработали систему сбора и обработки
информации на языке AHDL. Разбили структурную схему на блоки и промоделировали.
.
Техническая документация Analog Devices.
.
Техническая документация Texas Instruments.
.
Конспект лекций по курсу "Основы построения микропроцессорных
систем".
.
Описание языка AHDL в электронном виде.
Текст файла конфигурации "lpm_counter.
inc";"mux. inc";"lpm_ram_dq. inc";"lpm_mux.
inc";"lpm_shiftreg. inc";"lpm_compare.
inc";"lpm_add_sub. inc";"lpm_bustri";MODEL
(: input; - -входная тактовая частота 16МГц
делитель частоты[2.0]: input;res,clk16res,clk32res,ADclockMUX
[2.0],ADclock: output;
ОЗУ_addr [1.0],cout_addr,address_ram [4.0],ram_full,clk_address,WR:
output;: output;
синхронизация внутренняя_in [27.0], compare [27.0]: input;:
output;
Вход синхронизации внешняя: input;,synch12, synchres: output;
Управляющие сигналы ОЗУ,OE,WE,WEres: output;
),clk16,clk32,ADread: node; - -деление частоты на 2,16,32
Первый шаг - реализация делителя частоты. Коэффициенты
деления
определяем из условий задания. Входную частоту clock
принимаем
равной выходной частоте АЦП - 40 МГц=lpm_counter (.
clock=clock) with (lpm_width=2, lpm_modulus=3)(. cout);res=dff (clk2,! clock,
vcc, vcc);=lpm_counter (. clock=clock) with (lpm_width=5, lpm_modulus=17)(.
cout);res=dff (clk16,! clock, vcc, vcc);=lpm_counter (. clock=clock) with
(lpm_width=6, lpm_modulus=33)(. cout);res=dff (clk32,! clock, vcc, vcc);[2.0] =
(clk32res,clk16res,clk2res);= mux (. data [] =ADclockMUX [],. sel [] =clkchoose
[]) with (width=3, widths=3)(. result);
Второй шаг - реализация ОЗУ. На входе модуля ОЗУ присутсвуют
2 шины
шина адреса и шина данных. ША определяет режим работы модуля
- запись или
ШИНА АДРЕСА= lpm_counter (. clock=clock) with (lpm_width=2,
lpm_modulus=2)(. cout);_addr [1.0] = (ADread, ADclock);_address=mux (. data []
=clk_addr [],. sel=WR) with (width=2, widths=1)(. result);
sinh внутренняя=lpm_compare (. dataa [] =ram_in [],. datab []
=compare [])(lpm_width=28) returns (. ageb);
синхронизация внешняя + - -= tff (vcc,synchinput,vcc,vcc);=
synh or synchinput1;= dff (synch12,synch12,vcc,vcc);
------------------------------= tff (vcc,WR,lcell (! (! (!
counterclearinp))),vcc);_ram [] =lpm_counter (. clock=clk_address,. cnt_en =
synchres,. aclr = counterclearinp)(lpm_width=5, lpm_modulus=17)(. q []);
Сигнал переполнения_addr = lpm_counter (. clock=clk_address,.
cnt_en = synchres) with (lpm_width=5, lpm_modulus=17)(. cout);_full=dff
(cout_addr,! clk_address, vcc, vcc);
Данные направляются из АЦП в ОЗУ, а с ОЗУ на интерфейс при
переполнении ОЗУ. За это отвечает bustri
Lmp_bustri ZZZZZ это значение которые считываются с ОЗУ, так
как программно мы их не задаем,
то в симуляторе не можем их видеть[] =lpm_bustri (. data []
=ram_in [],. enabledt=! WR)(LPM_WIDTH=28) RETURNS (. tridata []);
Управляющие сигналы ОЗУ= b"0";=! tff
(vcc,WR,vcc,vcc);= dff (vcc,! clk_address,lcell (! (! (! (! (! WE and
OE))))),vcc);=! WE;;
Рис. 1 - Выбор частоты и синхронизация
Рис. 2 - Счётчик адреса и управляющие сигналы ОЗУ
Текст файла - конфигурации, описывающий работу
интерфейса RS485 "lpm_shiftreg";"lpm_mux";"busmux";"lpm_counter";"mux.
inc";RS485
( _out [13.0],clock, sel: input;[8.0],data2 [8.0],data
[17.0],clkRS485,clkread,clkRS485res,out,load1, out2, outrez, MUXout [1.0]:
output; _out2 [13.0]: input; [8.0],data22 [8.0],data2rez [17.0]: output;
),clkposled: node;= lpm_counter (. clock=clock) with
(lpm_width=8, lpm_modulus=134)(. cout);res = dff
(clkRS485,clock,vcc,vcc);=lpm_counter (. clock=clkRS485res) with (lpm_width=5,
lpm_modulus=19)(. cout);= (gnd,ram_out [6.0],vcc);= (gnd,ram_out
[13.7],vcc);[8.0] = data1 [8.0];[17.9] = data2 [8.0];= clkread;= (gnd,ram_out2
[6.0],vcc);= (gnd,ram_out2 [13.7],vcc);rez [8.0] = data12 [8.0];rez [17.9] =
data22 [8.0];= lpm_shiftreg (. data [] =data [],. clock=clkRS485res,. load =
load1)(lpm_width=18) returns (. shiftout);= lpm_shiftreg (. data [] =data2rez
[],. clock=clkRS485res,. load = load1)(lpm_width=18) returns (. shiftout);[1.0]
= (out,out2);= mux (. data [] =MUXout [],. sel [] =sel) with (width=2,
widths=1)(. result);;
Рис. 4 - Описание работы приемника интерфейса RS485
Похожие работы на - Разработка системы сбора и обработки данных Курсовая работа (т). Информационное обеспечение, программирование.
Доклад по теме Искаженное восприятие сексуальной реальности
Самообразование Как Основа Успешности Человека Эссе
Курсовая работа по теме Электропривод фрикционного бездискового пресса
Реферат Город Герой Керчь
Производственная Практика Заполнение Дневника Автомеханик
Дипломная работа по теме Анализ финансового состояния предприятия на примере ЗАО "Тотус"
Реферат: Новое государство израиль – выживет?
Верещагина 3 Класс Контрольные Работы
Контрольная работа: Процесс маркетинговых исследований. Организационные структуры службы маркетинга. Скачать бесплатно и без регистрации
Реферат: Основные звездные характеристики. Рождение звезд. Скачать бесплатно и без регистрации
Как Пишется Введение В Курсовой Работе
Контрольная Работа Номер 9 Средняя
Новые Угрозы В Сфере Национальной Безопасности Курсовая
Горе Рыбак И Рыбачка Сочинение Рассказ
Проверка Эссе На Оригинальность
Реферат: Проблема абсолютности – относительности научного познания и единый метод обоснования
Контрольная работа: Уклонение от уплаты налогов Обман потребителей
Реферат На Тему Кризис Крепостного Права И Развитие Капиталистических Отношений В России
Реферат: Нестандартні підходи до вивчення української мови і літератури
Как Писать Сочинение Егэ Критерии
Реферат: Звіт по виробничій практиці в туристичних підприємств
Похожие работы на - Психологічне дослідження особливостей спілкування з однолітками у підлітковому віці
Реферат: Edenic Myth In The Great Gatsb Essay