Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Лабораторная работа - Передача информации через com-порт - файл 1.doc


Лабораторная работа - Передача информации через com-порт
скачать (98 kb.)

Доступные файлы (1):

1.doc98kb.17.11.2011 13:00скачать


1.doc





Лабораторная работа №1

Тема: Передача информации через com-порт

Цель: осуществить передачу данных с помощью нуль-модемного кабеля по протоколу RS-232c.

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


Краткие теоретические сведения

Универсальный внешний последовательный интерфейс — СОМ-порт (Com­munications Port — коммуникационный порт) присутствует в PC начиная с пер­вых моделей. Этот порт обеспечивает асинхронный1 обмен по стандарту RS-232C. Стандарт описывает управляющие сигналы интерфейса, пересылку данных, элек­трический интерфейс и типы разъемов. В стандарте предусмотрены асинхронный и синхронный режимы обмена, но СОМ-порты поддерживают только асинхронный режим.

Асинхронный режим передачи является байт-ориентированным (символьно-ори­ентированным): минимальная пересылаемая единица информации — один байт (один символ). Передача каждо­го байта начинается со старт-бита, сигнализирующего приемнику о начале посыл­ки, за которым следуют биты данных и, возможно, бит паритета (четности). Завершает посылку стоп-бит, гарантирующий паузу между посылками. Старт-бит следующего байта посылается в любой момент после стоп-бита, то есть между передачами возможны паузы произвольной длительности. Старт-бит, имеющий всегда строго определенное значение (логический 0), обеспечивает простой меха­низм синхронизации приемника по сигналу от передатчика. Подразумевается, что приемник и передатчик работают на одной скорости обмена.

Формат асинхронной посылки позволяет выявлять возможные ошибки передачи.

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

Если во время, отведенное под стоп-бит, обнаружен уровень логического нуля, фиксируется ошибка стоп-бита.

Если применяется контроль четности, то после посылки бит данных передает­ся контрольный бит. Этот бит дополняет количество единичных бит данных до четного или нечетного в зависимости от принятого соглашения. Прием бай­та с неверным значением контрольного бита приводит к фиксации ошибки.

Контроль формата позволяет обнаруживать обрыв линии: как правило, при обрыве приемник «видит» логический нуль, который сначала трактуется как старт-бит и нулевые биты данных, но потом срабатывает контроль стоп-бита.

Для асинхронного режима принят ряд стандартных скоростей обмена: 50,75,110, 150, 300,600,1200,2400,4800,9600,19200,38400, 57600 и 115200 бит/с. Иногда вместо единицы измерения «бит/с» используют «бод» (baud), но при рассмотре­нии двоичных передаваемых сигналов это некорректно. В бодах принято измерять частоту изменения состояния линии, а при недвоичном способе кодирования (ши­роко применяемом в современных модемах) в канале связи скорости передачи бит (бит/с) и изменения сигнала (бод) могут отличаться в несколько раз.

Количество бит данных может составлять 5, 6, 7 или 8 (5- и 6-битные форматы распространены незначительно). Количество стоп-бит может быть 1, 1,5 или 2 (1,5 бита означает только длительность стопового интервала).

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

Компьютер может иметь до четырех последовательных портов СОМ 1-COM4 (для машин класса AT типично наличие двух портов) с поддержкой на уровне BIOS. Сервис BIOS Int 14h обеспечивает инициализацию порта, ввод и вывод символа (не используя прерываний) и опрос состояния. Через Int 14h скорость передачи программируется в диапазоне 110-9600 бит/с (меньше, чем реальные возможно­сти порта). Для повышения производительности широко используется взаимодей­ствие программ с портом на уровне регистров, для чего требуется совместимость аппаратных средств СОМ-порта с программной моделью 18250/16450/16550.

«Классический» СОМ-порт позволял осуществлять обмен данными только про­граммно-управляемым способом, при этом для пересылки каждого байта процессору приходится выполнять несколько инструкций. Современные порты имеют FIFO-буферы данных и позволяют выполнять обмен по каналу DMA, существенно разгру­жая центральный процессор, что особенно важно на больших скоростях обмена.

В СОМ-портах преобразование параллельного кода в последовательный для пе­редачи и обратное преобразование при приеме данных выполняют специализи­рованные микросхемы UART (Universal Asynchronous Receiver-Transmitter — универсальный асинхронный приемопередатчик). Для соединения двух компьютеров удаленных друг от друга на небольшом расстоянии (до 15 м.), используется непосредственное соединение их СОМ-портов модемным кабелем.











mask=1 shl v






















































Код программы на Pascal :

program lab1;

uses crt;

const A:array[0..7] of string[30] = ('Data ready status...',

'Overrun error...',

'Parity error...',

'Framing error...',

'Break detect...',

'Trans holding reg empty...',

'Trans shift reg empty...',

'Timeout...');

var d:integer; s,mask:byte;

procedure Error(s:byte);

var v:integer;

begin

for v:=0 to 7 do

begin

mask:=1 shl v;

If s and mask=mask then

writeln(A[v]);

end;


end;

procedure Init;

begin

asm

mov ah,0

mov al,11100111b

mov dx,0

int 14h

mov s,ah

end;

writeln('Initialized has done');

writeln('Result f it:');

Error(s);

readln;

end;

procedure Send;

var k,n:char;

begin

clrscr;

Init;

writeln('Write symbols');

repeat

read(n);

asm

mov ah,1

mov dx,0

mov al,n

int 14h

mov s,ah

end;

until readkey=#27;

Error(s);

readln;

end;

procedure Receive;

var n:char;

begin

clrscr;

Init;

repeat

asm

mov ah,2

mov dx,0

int 14h

mov n,al

mov s,ah

end;

write(n);

until readkey=#27;

Error(s);

end;

begin

clrscr;

writeln(' 1. Sending');

writeln(' 2. Receiving');

writeln(' 3. Exit');

readln(d);

clrscr;

case d of

1:Send;

2:Receive;

3:Halt;

end;

readln;

end.




Скачать файл (98 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации