Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Верифікація послідовного порту

Тип Реферат
Предмет Информатика и программирование
Просмотров
727
Размер файла
149 б
Поделиться

Ознакомительный фрагмент работы:

Верифікація послідовного порту

Верифікація ПОСЛІДОВНОГО ПОРТА

(курсова робота)


АНОТАЦІЯ

Опис програми містить загальний опис алгоритмів головної програми та процедур запису і зчитування повідомлень на рівні блок-схем, а також більш детальний опис розробленої програми на рівні програмного коду.


ЗМІСТ

ВСТУП

1. Опис процедур запису і зчитування повідомлень

1.1 Опис процедури запису повідомлення Write_Message

1.2 Опис процедури зчитування повідомлення Read_Message

2. Опис процедури відображення стану регістрів

3. ОПИС ЕКРАННИХ ФОРМ ПРОГРАМИ

Висновки

Список використаної літератури


ВСТУП

Метою розробленої програми є ознайомлення з принципами і форматами прийому та передачі даних через послідовний порт. Оскільки аналізувати стан бітів даних при реальній передачі через послідовний порт є досить складною задачею, тому доцільно використати програмне моделювання обміну даними.

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


1. Опис процедур запису і зчитування повідомлень

1.1 Опис процедури запису повідомлення Write_Message

Розглянемо блок – схему алгоритму процедури Write_Message (рис. 1.1) для кодування повідомлень. Після зчитування символів з форми визначаються їх коди (масив mCod_bit). Далі коди символів mCod_bit перетворюються у масив бітів mBit. Значення кожного біту з масиву mBit перетворюються в аналогову напругу сигналу mU, а значення напруги записуються в текстовий файл.

Рис.1.1. Блок-схема процедури Write_Message


Розглянемо процес запису повідомлення у файл на рівні програмного коду. Спочатку зчитується з форми текст повідомлення

Str:=Edit1.Text;

та опції СОМ-порта

case Form5.RadioGroup2.ItemIndex of //Визначення довжини слова

0:DovjSlova:=7;

1:DovjSlova:=8;

end;

case Form5.RadioGroup3.ItemIndex of //Визначення к-сті стопових бітів

0:KilStopBit:=1;

1:KilStopBit:=2;

end;

Далі в циклі знаходяться коди розміром 1 байт (цілі числа від 0 до 255) для всіх символів, які записуються у масив mCod

for i:=1 to length(Str) do

begin

mCod[i]:=ord(Str[i]);

Edit3.Text:=Edit3.Text+IntToStr(mCod[i])+' ';

end;

Отримані коди символів відображаються на формі в компоненті Edit3. Код кожного символа перетворюється у двійкове представлення за допомогою процедури наступного коду програми, який перетворює байт у масив з 8 біт. Отримане бітове представлення записується у масив mCod_bit.

repeat

n:=Data div 2;

mCod_bit[i,ii]:=Data mod 2;

Data:=n;

dec(ii);

until Data<2;

mCod_bit[i,ii]:=Data;

Найскладніша частина процедури – перетворити бітове представлення символів у послідовне повідомлення. Згідно з форматом послідовної передачі даних перед кожним байтом даних потрібно вставити біти паузи (1-10 бітів) і старт-біт, а після бітів даних (кодів символів з масиву mCod_bit) – біт контролю і стоп-біт. Довжина інформаційного слова, кількість стопових бітів, парність та швидкість передачі даних встановлюється у пункті меню “Опції СОМ-порта”(Рис. 1.2).

Рис. 1.2. Форма опцій СОМ-порта

fori:=1 tolength(Str) do

begin

iii:=random(9)+1; //Діапазон бітів паузи: 1-10

ii:=iii+DovjSlova;

Data:=mCod[i];

Parnist:=0;

repeat//Перетворення у 2-ву СЧ

n:=Data div 2;

mCod_bit[i,ii]:=Data mod 2;

if mCod_bit[i,ii]=1 then //Підрахунок одиниць

Parnist:=Parnist+1;

Data:=n;

dec(ii);

until Data<2;

mCod_bit[i,ii]:=Data;

if mCod_bit[i,ii]=1 then //Підрахунок одиниць

Parnist:=Parnist+1;

n:=iii+DovjSlova+KilStopBit;

if Form5.RadioGroup5.ItemIndex<>0 then //Якщо є біт парності,то n+1

inc(n);

ii:=0;

repeat

if ii<iii then

mCod_bit[i,ii]:=1; //Запис бітів паузи

if ii=iii then

mCod_bit[i,ii]:=0; //Запис біту старту

if ii=(n-KilStopBit) then //Запис біту парності

begin

case Form5.RadioGroup5.ItemIndex of

1:begin //непарна

if (Parnist mod 2)<>0 then

mCod_bit[i,ii]:=0

else mCod_bit[i,ii]:=1;

end;

2:begin //парна

if (Parnist mod 2)=0 then

mCod_bit[i,ii]:=0

else mCod_bit[i,ii]:=1;

end;

3:mCod_bit[i,ii]:=1; //постійно 1

4:mCod_bit[i,ii]:=0; //постійно 0

end;

end;

if ii=(n-KilStopBit)+1 then //Запис бітів стопу

begin

for j:=1 to KilStopBit do

begin

mCod_bit[i,ii]:=1;

inc(ii);

end;

end;

inc(ii);

until ii>n;

end;

Відповідно до рівнів напруги для логічних 0 та 1 на основі масиву mBit потрібно отримати масив напруг mU та побудувати графік залежності напруги від номеру біту на основі масиву mU (компонент DBChart). Для моделювання шумової складової напруги використано функцію Random, наприклад: mU[n]:=8.5+(Random-0.5)*2.

n:=1;

Str2:='';

Memo1.Clear;

for i:=1 to length(Str) do

begin

iii:=21;

repeat

dec(iii);

if mCod_bit[i,iii]=1 then

break;

until 1=2;

for ii:=0 to iii do

begin

Str2:=Str2+IntToStr(mCod_bit[i,ii]); //Запис до Str2 масиву mCod_bit

if mCod_bit[i,ii]=0 then

begin

mU[n]:=8.5+(Random-0.5)*2;

inc(n);

end

else begin

mU[n]:=-8.5+(Random-0.5)*2;

inc(n);

end;

end;

end;

Отримана послідовність бітів відображається на формі

Memo1.Lines.Add(Str2); //Запис у поле mBit

Масив напруг відображається у вигляді діаграми і записується у файл.

DBChart1.Series[0].Clear; //Очисткаграфіка

for i:=1 to n-1 do //Побудоваграфіка

DBChart1.Series[0].Add(mU[i],IntToStr(i),clRed);

if SaveDialog1.Execute then //Записуфайл

begin

AssignFile(f,SaveDialog1.FileName);

Rewrite(f);

for i:=1 to n-1 do

writeln(f,mU[i]:3:1);

CloseFile(f);

end;


Рис. 1.3.Форма організації обміну даними через послідовний порт

1.2 Опис процедури зчитування повідомлення Read_Message

Розглянемо процедуру Read_Message для декодування повідомлень (зчитування з файлу). Спочатку значення аналогової напруги сигналу mU зчитується з текстового файлу і відображаються у вигляді діаграми (рис.4). Значення аналогової напруги сигналу mU перетворюються у масив бітів mBit, а на основі масиву бітів визначаються коди символів mCod_bit. За кодами символів визначаються самі символи, тобто текст повідомлення.

Розглянемо процес зчитування повідомлення з файлу на рівні програмного коду. Спочатку потрібно відкрити один з попередньо створених файлів і зчитати значення напруги в масив mU. На основі масиву mU будується графік залежності напруги від номеру біту.

Відповідно до рівнів напруги для логічних 0 та 1 на основі масиву напруг mU отримується масив логічних значень mBit.

for i:=1 to n-1 do

begin

if (mU[i]>=5)and(mU[i]<=12) then

mBit[i-1]:=0;

if (mU[i]<=-5)and(mU[i]>=-12) then

mBit[i-1]:=1;

Str2:=Str2+FloatToStr(mBit[i-1]);

end;

Значення елементів масиву mBit відображаються на формі:

Memo1.Lines.Add(Str2);

Згідно з форматом послідовної передачі даних декодуються значення масиву mBit, тобто послідовність бітів розділяється на байти, видаляються службові біти, а значення бітів даних записуються в масив mCod_bit. Для цього проводиться послідовний аналіз усіх бітів масиву mBit. Згідно з фор-матом передачі даних послідовність бітів починається з паузи, після якої слідує старт-біт. Закінчується послідовність бітів даних бітом контролю і стоп-бітом.

j:=1;

for i:=1 to KilSymv do //Відокремлення службових бітів

begin

repeat

if Str2[j]='0' then //Після 0 йдуть інформаційні символи

begin

for iii:=0 to DovjSlova-1 do

begin

inc(j);

mCod_bit[i,iii]:=StrToInt(Str2[j]);

end;

j:=j+KilStopBit; //Стрибок на біт паузи наступного повідомлення

if Form5.RadioGroup5.ItemIndex<>0 then

inc(j);

break;

end

else inc(j);

until 1=2;

end;

На основі бітів даних (масив mCod_bit) для кожного символу отримується його код (масив mCod), перетворенням набору з 8 біт у десяткове число. Коди символів відображаються на формі.

fori:=1 toKilSymvdo//Перетворення у 10-ве число

begin

mCod[i]:=0;

for ii:=0 to DovjSlova-1 do

mCod[i]:=mCod[i]+mCod_bit[i,ii]*trunc(power(2,(DovjSlova-1)-ii));

end;

Edit3.Clear;

for i:=1 to KilSymv do

Edit3.Text:=Edit3.Text+IntToStr(mCod[i])+' '; //Запис коду символів у поле mCod

Значення байтів даних (код символу з mCod) перетворюються у сим-воли повідомлення (Message_In – зчитування з файлу), яке й відображається на формі.

fori:=1 toKilSymvdo//Перетворення коду у символ

begin

Str2:=chr(mCod[i]);

Str:=Str+Str2;

end;

Edit2.Text:=Str; //Запис у поле Message_In


Рис. 1.4. Блок-схема процедури Read_Message


2. Опис процедури відображення стану регістрів


Рис. 2.1. Блок-схема процедури відображення стану регістрів


Продовження рис. 2.1.

Роботу процедури показу стану регістрів можна прослідкувати використовуючи, наприклад, регістр формату даних.

За допомогою цього регістра можна сконфігурувати параметри СОМ-порта, а саме: дозвіл на встановлення швидкості, паритет, довжину інформаційного слова та кількість біт паузи.

Даний регістр буде змінювати числове значення своїх бітів тоді, коли будуть конфігуруватися опції СОМ-порта. Наприклад, нехай в регістрі буде записано число 11011010. В даному випадку нас цікавлять останні два біти. Зараз вони рівні 10. Це означає, що довжина інформаційного повідомлення рівна 7. Вибравши довжину слова рівною 8 біт, ми тим самим змінимо значення регістру на наступне: 11011011.


3. ОПИС ЕКРАННИХ ФОРМ ПРОГРАМИ

Рис. 3.1. Комп'ютерне моделювання роботи послідовного порта

На рис. 3.1. показана головна форма програми. У меню даної екранної форми є лише один пункт, обробник якого викликає та показує інформацію про розробника даної програми.

Рис. 3.2. Інформація про автора

На головній формі можна здійснити виклик двох обробників різних за суттю операцій. TForm1.Button1Click – викличе метод Form4.Show, тобто здійснить виклик форми “Організація обміну даними через послідовний порт”. Її вигляд можна побачити на рис. 1.3 TForm1.Button2Click – застосує метод Form2.Show, для здійснення показу інформативного відносно користувача зображення, яке матиме наступний вигляд:


Рис. 3.3. Форма блок-схеми UART

На представленій екранній формі (рис. 3.3.) також є меню. Але воно вже на відміну від попередньої виконуватиме дві дії:

1) покаже довідку відносно користування блок-схемою (рис. 3.5.);

2) здійснить вихід.

Ну а зараз потрібно згадати про рис. 1.3, а точніше трошки розтлумачити принцип його дії.

Основною задачею даної програми є емулювання роботи послідовного порта. За допомогою цього вікна, виклик якого можна здійснити на головній формі, можна передати чи прийняти інформаційне повідомлення. Принцип прийому та передачі викладений вище.

Меню складається з трьох пунктів:

1) опції СОМ-порта(викликає вікно конфігурування порта(рис. 1.2));

2) довідка(показує довідку по коректній експлуатації даної форми екрану(рис. 3.4.));

3) закрити(виконує закриття активного вікна).

Рис. 3.4. Довідка по експлуатації форми “Організація обміну даними через послідовний порт”

Рис. 3.5. Довідка по формі блок-схеми UART


Висновки

В описі програми розглянуто алгоритм процедур запису і зчитування повідомлень на рівні блок-схеми та на рівні програмного коду. Програма має простий інтерфейс, але виконує складні задачі. Однією з її головних задач є запис/зчитування даних через послідовний порт. Дивлячись на текст програми, можна сказати, що послідовний порт має доволі складний формат даних, які передаються/приймаються, але все ж таки плюси СОМ-порта дещо виділяють його з-поміж інших і тому він є досить поширеним.


Список використаної літератури

1. Гофман В.Э., Хомоненко А.Д.Delphi 6. СПб.: БХВ-Петербург, 2001. – 1135 с.

2. Агуров П.В. Последовательные интерфейсы ПК. Практика программирования. –СПб.: БХВ-Петербург, 2004.– 496с.


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

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

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

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

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

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

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
63 457 оценок star star star star star
среднее 4.9 из 5
Филиал государственного бюджетного образовательного учреждения высшего образования Московской област
Спасибо Елизавете за оперативность. Так как это было важно для нас! Замечаний особых не бы...
star star star star star
РУТ
Огромное спасибо за уважительное отношение к заказчикам, быстроту и качество работы
star star star star star
ТГПУ
спасибо за помощь, работа сделана в срок и без замечаний, в полном объеме!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

решить 6 практических

Решение задач, Спортивные сооружения

Срок сдачи к 17 дек.

только что

Задание в microsoft project

Лабораторная, Программирование

Срок сдачи к 14 дек.

только что

Решить две задачи №13 и №23

Решение задач, Теоретические основы электротехники

Срок сдачи к 15 дек.

только что

Решить 4задачи

Решение задач, Прикладная механика

Срок сдачи к 31 дек.

только что

Выполнить 2 задачи

Контрольная, Конституционное право

Срок сдачи к 12 дек.

2 минуты назад

6 заданий

Контрольная, Ветеринарная вирусология и иммунология

Срок сдачи к 6 дек.

4 минуты назад

Требуется разобрать ст. 135 Налогового кодекса по составу напогового...

Решение задач, Налоговое право

Срок сдачи к 5 дек.

4 минуты назад

ТЭД, теории кислот и оснований

Решение задач, Химия

Срок сдачи к 5 дек.

5 минут назад

Решить задание в эксель

Решение задач, Эконометрика

Срок сдачи к 6 дек.

5 минут назад

Нужно проходить тесты на сайте

Тест дистанционно, Детская психология

Срок сдачи к 31 янв.

6 минут назад

Решить 7 лабораторных

Решение задач, визуализация данных в экономике

Срок сдачи к 6 дек.

7 минут назад

Вариационные ряды

Другое, Статистика

Срок сдачи к 9 дек.

8 минут назад

Школьный кабинет химии и его роль в химико-образовательном процессе

Курсовая, Методика преподавания химии

Срок сдачи к 26 дек.

8 минут назад

Вариант 9

Решение задач, Теоретическая механика

Срок сдачи к 7 дек.

8 минут назад

9 задач по тех меху ,к 16:20

Решение задач, Техническая механика

Срок сдачи к 5 дек.

9 минут назад
9 минут назад
10 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

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

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно