Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_лаб_ОТТ.doc
Скачиваний:
33
Добавлен:
23.11.2019
Размер:
13.25 Mб
Скачать

Лабораторная работа № 1 организация обмена данными между пэвм

ЦЕЛЬ РАБОТЫ

Целью работы является изучение основ передачи дискретной информации в сетях передачи данных.

ЗАДАНИЕ К РАБОТЕ

1. Изучить возможности работы программной среды Matlab с интерфейсом COM-порта компьютера.

2. Разработать ПО на языке Matlab, осуществляющее обмен информацией между двумя ПЭВМ посредством COM-портов.

3. Произвести передачу и прием данных (файлов различного формата) с помощью разработанного ПО.

4. Сделать выводы по результатам работы.

ПОЯСНЕНИЯ К РАБОТЕ

Сеть передачи данных – это совокупность оконечных устройств (терминалов) связи, объединённых каналами передачи данных и коммутирующими устройствами (узлами сети), обеспечивающими обмен сообщениями между всеми оконечными устройствами. Согласно руководящему документу [1] сетью передачи данных (сетью данных) называется совокупность узлов и каналов электросвязи, специально созданная для организации связей между определенными точками с целью обеспечения передачи данных между ними. Сети передачи данных в общем случае принято условно разделять телефонные и компьютерные сети. В компьютерных сетях оконечными устройствами являются компьютеры. Современные прогнозы указывают на тенденцию превращения всех сетей электросвязи в сети передачи данных, по которым будут передаваться любые виды информации (включая речь и видео), преобразованные в цифровые сигналы [1].

Простейшая компьютерная сеть представляет собой систему распределенной обработки информации, состоящую  как минимум из двух компьютеров и других вычислительных устройств (принтеров, факсимильных аппаратов и т. д.). Два компьютера могут быть соединены отрезком кабеля, подключен­ного к их LPT- или COM-портам. Кроме того, в настоящее время разработаны устройства, позволяющие соединять два компьютера через USB-порты. Для обеспечения высокой скорости передачи информации необходимо использовать сетевые адаптеры и их драйверы.

ХОД РАБОТЫ

1. Собрать рабочее место для выполнения лабораторной работы согласно рис. 1.1 (данная схема используется для самопроверки COM-портов ПЭВМ);

Рис. 1.1

Указания п. 2-9 выполнить на каждой из ПЭВМ, входящих в состав рабочего места.

2. Запустить программную среду Matlab, установить активную директорию X:\MATLAB…\work\Komplex_OTT, где X – наименование литеры диска с установленной системой Matlab. Поле для установки активной директории показано на рис. 1.2;

Рис. 1.2

3. Создать объект [2, 3] для передачи данных с использованием интерфейса RS-232. Объект создается следующими командами [4]:

>> global obj1;

>> obj1 = serial('COM1');

Созданный программный объект obj1 связан с «железным» объектом СОМ1 ПЭВМ;

4. Задать свойства объекта, т. е. параметры порта [5]:

>> set(obj1, 'BaudRate', 9600); % Скорость обмена

>> set(obj1, 'BreakInterruptFcn', '');

>> set(obj1, 'ByteOrder', 'littleEndian');

>> set(obj1, 'BytesAvailableFcn', '');

>> set(obj1, 'BytesAvailableFcnCount', 48);

>> set(obj1, 'BytesAvailableFcnMode', 'terminator');

>> set(obj1, 'DataBits', 8); % Количество бит данных

>> set(obj1, 'DataTerminalReady', 'on');

>> set(obj1, 'ErrorFcn', '');

>> set(obj1, 'FlowControl', 'none');

>> set(obj1, 'InputBufferSize', 512);% Размер приемного

>> % буфера порта

>> set(obj1, 'Name', 'Serial-COM1');

>> set(obj1, 'OutputBufferSize', 512);

>> set(obj1, 'OutputEmptyFcn', '');

>> set(obj1, 'Parity', 'none'); % Проверка четности (нет)

>> set(obj1, 'PinStatusFcn', '');

>> set(obj1, 'Port', 'COM1'); % Импользуем порт COM1

>> set(obj1, 'ReadAsyncMode', 'continuous'); % Асинхронный

>> % и непрерывный режим передачи

>> set(obj1, 'RecordDetail', 'compact');

>> set(obj1, 'RecordMode', 'overwrite');

>> set(obj1, 'RecordName', 'record.txt');

>> set(obj1, 'RequestToSend', 'on');

>> set(obj1, 'StopBits', 1); %Кол-во стоп-битов - один

>> set(obj1, 'Tag', '');

>> set(obj1, 'Terminator', 'LF');

>> set(obj1, 'Timeout', 10);

>> set(obj1, 'TimerFcn', '');

>> set(obj1, 'TimerPeriod', 1);

>> set(obj1, 'UserData', []);

Кратко перечислим наиболее важные свойства объекта, заданные с помощью приведенных команд. Скорость передачи данных составляет 9600 бит/c, передаются 8-битные данные и один стоп-бит. Проверка четности отключена. Размер входного буфера 512 байт. На случай, если данные имеют 16-разрядную структуру, указано, какой байт является старшим (в данном случае первым передается старший байт слова, затем младший). И наконец, в тексте программы записано, что объект работает в асинхронном непрерывном режиме. Указание на размер буфера и непрерывный режим работы означает, что после того, как во входном буфере накопится 512 байт данных, они будут переданы в прикладную часть программы, после чего накопление данных возобновится [4];

5. Произвести запуск объекта с помощью команды:

>> fopen(obj1);

6. Создать переменную D1_t, присвоить ей некоторое положительное целочисленное значение, например:

>> D1_t=62;

7. Передать значение D1_t с использованием интерфейса RS-232. Для этого выполнить команду

>> fwrite(obj1, D1_t, 'uint8');

8. Выполнить команду

>> [D1_r, count]=fread(obj1,512,'uint8');

9. Сравнить значения переменных D1_t и D1_r. Значение D1_r должно быть равно значению D1_t. В этом случае результат самопроверки COM-порта ПЭВМ считается удовлетворительным;

10. Собрать рабочее место для выполнения лабораторной работы согласно рис. 1.3;

Рис. 1.3

11. На ПЭВМ1 открыть файл «Transmit_file.txt», предназначенный для передачи (файл открывается в бинарном режиме):

>> fid_r = fopen('Transmit_file.txt','rb');

Если в результате выполнения команды значение переменной fid_r является числом из ряда 3, 4, 5, 6…, то файл был успешно открыт. Значение переменной fid_r,равное минус 1 говорит о наличии ошибки при открытии файла;

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

>> [D_t, count_r]=fread(fid_r, inf, 'ubit8')

>> fclose(fid_r); % Закрываем файл.

13. Передать байты файла «Transmit_file.txt» с использованием интерфейса RS-232. Для этого на ПЭВМ1 выполнить команду

>> fwrite(obj1, D_t, 'uint8');

14. Принять байты файла «Transmit_file.txt» и записать их в переменную D_r. Для этого на ПЭВМ2 выполнить команду

>> [D_r, count]=fread(obj1,512,'uint8');

15. Записать принятые байты в файл на жестком диске ПЭВМ2. Для этого на ПЭВМ2 создать новый файл для записи, выполнив команду

>> fid_w = fopen('Recieved_file.txt','wb');

16. Записать содержимое переменной D_r в файл «Recieved_file.txt». Для этого на ПЭВМ2 выполнить команды

>> count_w=fwrite(fid_w, D_r, 'ubit8')

>> fclose(fid_w); % Закрываем файл.

17. На ПЭВМ1 открыть файл «Transmit_file.txt» с помощью текстового редактора «блокнот». На ПЭВМ2 открыть файл «Recieved_file.txt» с помощью текстового редактора «блокнот»;

18. Сравнить тексты открытых файлов. Текст в файле «Transmit_file.txt» должен совпадать с текстом в файле «Recieved_file.txt». В случае различия текстов выполнить действия п. 11–18 повторно;

19. Повторить действия п. 11–18, используя ПЭВМ1 вместо ПЭВМ2 (ПЭВМ2 вместо ПЭВМ1).

Если в процессе отладки прикладных программ необходимо изменить параметры порта, то созданный ранее объект необходимо уничтожить и затем создать новый объект [4]. Уничтожение объекта можно сделать с помощью следующих команд:

>> fclose(obj1);

>> delete(obj1);

>> clear obj1;

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Приведите последовательности команд в программной среде Matlab, необходимые для записи и чтения бинарных файлов. Поясните назначение каждой приведенной команды.

2. Приведите последовательность команд в программной среде Matlab, необходимую для создания и установки свойств объекта передачи (приема) данных с использованием интерфейса RS-232. Поясните назначение каждой приведенной команды.

3. Какие команды используются для передачи и приема данных с использованием интерфейса RS-232 в программной среде Matlab? Поясните назначение аргументов каждой приведенной команды.

4. Поясните смысл понятия «сеть передачи данных». Из чего состоит простейшая компьютерная сеть?

ЛИТЕРАТУРА

1. РД.45.128-2000. Сети и службы передачи данных – М.: Изд-во стандартов, 2000.

2. Дьяконов В. П. MATLAB 6.5 SP1/7 + Simulink 5/6 Основы применения – М.: СОЛОН-Пресс, 2005. – 800 с.

3. Лазарев Ю. Ф. MatLAB 5.x. – Kиев: Изд. группа BHV, 2000. – 384 с.

4. Горбачев В. В. COM-порт и MATLAB // Exponenta Pro. 2003. № 2. – С. 92-94.

5. Гук М. Аппаратные интерфейсы ПК. – СПб.: Питер, 2002. – 528 с.