Класс проверки знаний

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Аннотация

В данном проекте разработан автоматизированный комплекс проверки знаний, позволяющий производить одновременный контроль знаний до 127 рабочих мест. Основой комплекса является система сбора и обработки информации на основе локальной микросети на базе микропроцессорных контроллеров, выполняющая функции по управлению работой автоматизированных рабочих мест, сбору, отображению и хранению информации. Функции обработки информации возложены на ЭВМ, которая после окончания времени контроля знаний, собирает информацию, обрабатывает ее и выдает результаты проверки.

Введение

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

автоматизированный знание проверка контроллер

1. Замысел проекта

В основу данного проекта была положена идея создания автоматизированного класса проверки знаний. Автоматизированный класс проверки знаний — это совокупность аппаратных и программных средств, реализующих функции одновременного контроля знаний нескольких человек. В качестве аппаратных средств используется ЭВМ типа IBM PC совместимый компьютер и система сбора и обработки информации на однокристальных микроконтроллерах типа МК-51, соединенных в локальную вычислительную сеть. В функции каждого микроконтроллера входит управление соответствующим автоматизированным местом (сбор информации и передача ее в ЭВМ). В функции ЭВМ входит обработка информации полученной от микроконтроллеров и выдача результатов текущей проверки.

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

2. Техническое задание

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

опрос автоматизированных рабочих мест;

хранение полученной информации;

передача информации в ЭВМ;

обработка информации;

выдача результатов.

3. Описание принципиальной схемы автоматизированного класса проверки знаний

3.1 Описание функциональной схемы

Типовая функциональная схема автоматизированного класса проверки знаний представлена на рисунке 1.

Основой разрабатываемого автоматизированного класса является локальная микросеть, организованная на базе микропроцессорных контроллеров типа ОМК-51.

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

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

Рисунок 1. Функциональная схема

3.2 Описание принципиальной схемы

Принципиальная схема отдельного рабочего места, разработанная в соответствии с функциональной схемой, представлена на рисунке 2.

Основой схемы является микропроцессорный контроллер семейства MCS-51, выполненный на базе микросхемы типа АТ89С51. Данная микросхема представляет собой однокристальный микроконтроллер, имеющий встроенный универсальный асинхронный приемопередатчик (УАПП), 32 линии ввода-вывода, два таймера-счетчика, два источника внешних прерываний, 4К внутренней флэш-памяти и 128 байт ОЗУ. Именно он выполняет функции по управлению рабочим местом.

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

Конденсаторы С12 и С13 совместно с кварцевым резонатором ZQ1 составляют генератор тактовых импульсов, необходимый для синхронизации контроллера. Номиналы приборов выбираются в соответствии с рекомендациями фирм-изготовителей, приведенными в руководстве по эксплуатации, и составляют:

С12 = С13 = 27 пФ;

ZQ1 = 22,118 МГц.

Резистор R1 и конденсатор С11 образуют схему начальной установки МПК, то есть обеспечивают сброс микроконтроллера при включении напряжения питания. Их номиналы определяются исходя из рекомендаций фирм-изготовителей, приведенных в руководстве по эксплуатации, что для корректного сброса прибора на входе «RESET» микроконтроллера должен обеспечиваться низкий уровень сигнала в течение времени, соответствующего двум машинным циклам МПК и определяемого постоянной времени заряда конденсатора С11.

R1 = 8,2 кОм;

С11 = 12 мкФ.

Резисторная сборка Е1 представляет собой набор подтягивающих резисторов, необходимых для корректного осуществления операций ввода-вывода посредством порта Р0 микроконтроллера. Номинал, входящих в ее состав резисторов также определяется рекомендациями по эксплуатации фирм-изготовителей и составляет 5,1 кОм.

На микросхемах DD4 и DD5 реализуется типовая схема подключения микросхем внешней памяти к микроконтроллеру, которая выполняет функцию устройства хранения сигнала.

Микросхема DD5 типа 6264 представляет собой ОЗУ объемом 8 Кбайт, имеющее восьмиразрядную шину данных, используемую как для записи, так и для считывания информации.

Микросхема DD4 типа К1533ИР33 представляет собой восьмиразрядный однонаправленный регистр сдвига, обеспечивающий «защелкивание» младшего байта адреса на время считывания или записи информации.

Основным требованием при выборе микросхем является обеспечение требуемого быстродействия и необходимого объема памяти (для микросхемы DD5).

Микросхема DD1 типа SP232IP представляет собой стандартную схемотехническую реализацию устройства согласования уровней ТТЛ-логики и уровней интерфейса RS-232 последовательного порта компьютера.

Конденсаторы С2, С4, С8, С9, С10 образуют типовую схему включения микросхемы DD1. Их номиналы выбираются из справочного руководства по эксплуатации фирмы-изготовителя и составляют:

С2 = С4 = С8 = С10 = 0,1 мкФ;

С9 = 47 мкФ.

Конденсаторы С1, С3, С5, С6, С7 являются фильтрующими для уменьшения высокочастотных помех по питанию с целью обеспечения корректной работы цифровых микросхем устройства. Их номиналы выбираются в соответствии с рекомендациями фирм-изготовителей, приведенными в руководстве по эксплуатации, и составляют:

С1 = С3 = С5 = С6 = С7 =0,1 мкФ.

На микросхеме DD6 типа КР580ВД79 выполнен контроллер клавиатуры и дисплея (ККД). Использование ККД позволяет разгрузить микроконтроллер от рутинных операций опроса клавиатуры и поддержания (рефреша) изображения на однострочном дисплее.

Микросхема HG1 типа BQ-M326RD представляет собой однострочный дисплей, состоящий из четырех семисегментных индикаторов. Данная микросхема содержит также встроенные буферные схемы для обеспечения требуемых токов нагрузки.

Для сканирования клавиатуры и дисплея дополнительно используется инвертирующий дешифратор на четыре выхода, выполненный на микросхеме DD2.1 типа КР1533ИД14.

Локальная микросеть организуется посредством встроенного в микропроцессорный контроллер универсального асинхронного приемопередатчика (УАПП) через разъем ХР2 по последовательному интерфейсу RS-232C. В качестве структуры используемой локальной сети выбрана моноканальная, поскольку является более удобной для рассматриваемого класса управляющих микросетей, так как допускают простую наращиваемость и модифицируемость системы. Кроме того, в моноканальной микросети время доставки сообщения не зависит от общего числа микропроцессорных контроллеров, и они обладают большей живучестью и надежностью.

4. Описание программного обеспечения автоматизированного класса проверки знаний

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

На такую сеть возлагаются обычно простые функции передачи сообщений за гарантированное время. Протяженность линии связи обычно не превышает десятков метров, размер сообщения — нескольких десятков байтов, а время доставки сообщения — в пределах от 0,01 до 1,0 с.

Типичными являются два режима информационного обмена в сети: широковещательный, когда передаваемое сообщение предназначается для всех остальных подсистем (микроконтроллеров сети), и абонентский, когда сообщение предназначается только одному МК.

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

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

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

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

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

1. При нулевой загрузке в канале периодически появляется маркер, генерируемый одним из микроконтроллеров сети. Маркер содержит номер микроконтроллера, являющегося ведущим. Главная обязанность ведущего — поддерживать синхронизм в сети путем периодической выдачи маркера в канал.

2. Период генерации маркера состоит из определенного числа «окон», равного числу микроконтроллеров в сети. Каждое окно имеет свой номер и принадлежит одной из подсистем.

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

Рисунок 3. Диаграмма одного периода сети

4. После выдачи сообщения микроконтроллер генерирует свой маркер и становится новым ведущим. Старый ведущий микросети, распознав, что моноканал захвачен, освобождается от этой роли.

5. Отсчет момента времени от маркера до своего окна производится по следующему правилу. Длительность окна принимается равной времени передачи одного байта данных. Если ведущий имел номер l, то первое окно будет принадлежать микроконтроллеру с номером l+1, затем МК с номером l+2 и так далее. Время ожидания своего окна Т можно определить как

,

где — время передачи одного байта, то есть длительность окна.

Число Х определяется следующим образом:

где k — номер микроконтроллера, пытающегося захватить канал,

;

l — номер ведущего,

;

n — число микроконтроллеров в сети.

6. Если самому ведущему необходимо выдать сообщение, то он может захватить канал во время своего окна, то есть вместо генерации очередного маркера начать передавать свое сообщение.

7. Выдав маркер, ведущий микроконтроллер запускает таймер на время, а если в это время никто не захватит канал, то весь цикл повторяется еще раз и так далее.

8. Каждый М К принимает все байты, передаваемые по каналу. Для контроля пропажи маркера каждый МК после приема каждого байта запускает таймер на задержку. Таким образом, пропажа маркера (а следовательно, и синхронизма сети) фиксируется, если за время не было передано ни одного байта.

9. При обнаружении пропажи маркера для восстановления синхронизма в микросети каждый МК выполняет следующие простые действия: выдерживает паузу длительностью

,

где i — собственный номер МК;

если во время паузы вновь не было принято никакой информации, то данный МК становится ведущим и генерирует новый маркер.

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

10. При интервально-маркерном методе удается избежать любых конфликтов в канале в силу следующих причин:

контроль пропажи маркера ведется постоянно всеми МК сети и полностью синхронно, так как счетчики паузы корректируются примерно одновременно при приеме каждого байта и, следовательно, все МК обнаружат пропажу маркера одновременно;

одновременно начинается отсчет паузы всеми микроконтроллерами;

микроконтроллер с меньшим номером первым генерирует маркер и восстановит синхронизм в микросети.

Последовательный порт микроконтроллера АТ89С51 допускает передачу 9-битных кодов. Используя это, можно легко ввести признак маркера таким образом, что байт маркера будет отличаться от любого информационного байта. На рисунке 4 представлена структура маркера; старший бит является признаком маркера (для маркера — 1). Бит 7 используется для простейшего контроля по паритету. Семибитное поле адреса позволяет иметь в системе до 127 подсистем с номерами от 0 до 126. Адрес 127 зарезервирован для широковещательной передачи.

Рисунок 4. Структура маркера

Рисунок 5. Формат сообщения

Используемый формат сообщения представлен на рисунке 5 и предусматривает следующие поля:

Ап — адрес получателя;

Ао — адрес отправителя;

L — длина поля данных (0 — 255);

CRC — байт контрольной суммы.

Можно определить четыре состояния, в которых будет находиться каждый МК микросети:

приемник ® — в этом состоянии МК прослушивает канал, принимает сообщения и выбирает из них необходимую информацию;

передатчик (W) — в этом состоянии МК, захватив канал, передает свое сообщение;

ведущий (H) — МК является ведущим и поддерживает синхронизм в сети;

специальное состояние (RM) — МК реализует процедуру восстановления синхронизма в сети.

Граф состояний МК представлен на рисунке 6.

Запрос на передачу сообщения формируется в МК прикладной программой управления объектом (рабочим местом) и обозначен RQ. Задержки, реализуемые таймером, имеют следующий смысл:

ТМ1 — контроль пропажи маркера, задержка равна;

ТМ2 — ожидание своего окна;

ТМ3 — ожидание окончания периода сети;

ТМ4 — пауза перед выдачей маркера при восстановлении синхронизма, задержка равна.

Для реализации подсистемы (рабочего места) требуются следующие ресурсы: УАПП, таймер, два уровня прерываний. Этими ресурсами располагает МК51, позволяющий вести передачу и прием данных со скоростью до 375 кбит/с. Время передачи одного байта, обрамленного стартовым и стоповым битами (плюс 9-й разряд), составляет 58,7 мкс. Пропускная способность микросети при этом равна примерно 17 кбайт/с.

Рисунок 6. Граф состояний микроконтроллера микросети.

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

; - constants —

st equ 060h; стек

; - variables —

tau equ 030h; время передачи одного байта

T equ 031h; времz ожидания своего окна

N equ 032h; число МК сети

command equ 033h; принятый байт

; - bit’s —

Flag bit 20 h. 0; окончание приема байта

FlgEnd bit 20 h. 1; окончание операци контроля

; - code —

org 00h

sjmp start

; - Interrupt Vector Table —

; - UART —

org 023h

lcall UART_ISR

reti

; - End of UART —

; - End of Interrupt Vector Table —

; - Start —

start: mov SP,#st

mov P0,#0ffh

mov P1,#0ffh

mov P2,#0ffh

mov P3,#0ffh

mov psw,#00h

mov TMOD,#022h; 10 0010b: 8-bit auto-reload Timer1 and Timer0

mov SCON,#050h; 101 0000b 8-bit uart, baud rate — variable

mov PCON,#080h; 1 000 0000b select double baud rate, select SM0 bit in Scon

mov TCON,#000h; clear TCON

mov TH1,#0f4h

mov TL1,#0f4h

mov countl,#00h

mov counth,#00h

mov R2,#34h; low byte of last address of current signal data

mov R3,#35h; high byte of last address of current signal data

mov command,#00h

mov current,#00h

mov DPTR,#00h

setb TR1; turn on Timer1

setb ES; enable serial interrupt

clr Flag; clear bit Flag

clr FlgM; clear bit FlgM

setb EA; вкл. прерывания

Init: clr P3. 2

setb P3. 0

mov a,#00h

movx @r0, a

mov a,#(20h+20)

movx @r0, a

loop: jnb Flag, loop

mov a, command

clr Flag

jb FlgEnd, Trans

cjne a,#10h, l1

; маркер

sjmp loop

l1: cjne a,#01h, l2

; команда 01 — вывод данных из памяти на ЦАП

call DAC

sjmp loop

l2: cjne a,#02h, l3

; команда 02 — импульсный сигнал

call Pulse

sjmp loop

l3: cjne a,#03h, l4

; команда 03 — изменение намагничивающего тока

call Change

sjmp loop

l4: cjne a,#04h, loop

; - Finish —

; - Interrupt Routine —

; - UART Interrupt —

UART_ISR:

push psw

mov psw,#08h; register bank 0 from 08h to 0Fh

push acc

jb TI, ti0

jb RI, ri0

uart_exit:

pop acc

pop psw

ret

; transmit command

ti0: clr TI

sjmp uart_exit

; receive command

ri0: clr RI

mov a, SBUF

anl a,#0FFh; A and 1 111 1111b

mov command, a

setb Flag

sjmp uart_exit

; - End of UART Interrupt —

Mem_Fill:

call Wr_M

sjmp uart_exit

; - End of Interrupt Routine —

; запись информации в память

Wr_M:

; 1 байт — старший байт адреса последнего байта сигнала

mov a, SBUF; read SBUF

anl a,#0FFh; A and 1 111 1111b

mov counth, a

mov R3, counth

sjmp Wr_M_Exit

; 2 байт — младший байт адреса последнего байта сигнала

ri1:

mov a, SBUF; read SBUF

anl a,#0FFh; A and 1 111 1111b

mov countl, a

mov R2, countl

sjmp Wr_M_Exit

; 3-ий и остальные байты

ri2: mov a, SBUF

anl a,#0FFh; A and 1 111 1111b

movx @DPTR, a

inc DPTR

dec countl; decrement countl

mov a, countl; проверка countl на нуль

jnz Wr_M_Exit;

mov a, counth; проверка counth на нуль

jnz ri3;

mov countl, R2; восстановление исходных

mov counth, R3; значений

mov DPTR,#00h;

sjmp Wr_M_Exit

ri3:

dec counth

Wr_M_Exit:

ret

; передача информации в ЭВМ

Trans: mov TL0,#T; ожидание

mov TH0,#T; своего

setb TR0; окна

jnb TF0, trans_end; канала перехвачен

clr TF0; канал захвачен

aus: mov DPTR,#00h; устанавливаем начальный адрес области памяти

aus1: movx a,@DPTR; считываем первый байт из внешней памяти

mov SBUF, a; передаем первый байт

inc DPTR; инкрементируем счетчик адреса

djnz R2, aus1; проверка на окончание

djnz R3, aus1; передачи

trans_end:

ret

; ввод кода нажатой клавиши

Input: jnb P1. 1, Input

setb P1. 0

mov a,#40h

movx @r0, a

clr P1. 0

movx a,@r0

ret

; вывод информации на индикаторы

Output: setb P1. 0

mov a,#90h

movx @r0, a

clr P1. 0

movx a,@r0

ret

END

ПоказатьСвернуть
Заполнить форму текущей работой