- •Бычков е. Д., Титов д. А. Основы телекоммуникаций
- •Омск-2012
- •Основы телекоммуникаций
- •Лабораторная работа № 1 организация обмена данными между пэвм
- •Лабораторная работа № 2 исследование многоканальной цифровой системы связи
- •Лабораторная работа № 3 дискретизация аналоговых сигналов
- •Лабораторная работа № 4 передача данных на основе протокола tcp/ip
- •Лабораторная работа № 5 цифровая обработка изображений
- •Лабораторная работа № 6 передача данных с использованием интерфейса usb
- •Лабораторная работа № 7 исследование модели устройства цифрового приема сигналов с оценкой их качества
- •Пример оформления титульного листа отчета по лабораторной работе
- •Цифровая обработка изображений
Лабораторная работа № 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 с.