Сафоненко Практикум по интерфейсам последователной передачи 2012
.pdfМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ»
В.А. Сафоненко, А.В. Просандеев, М.Г. Смирнов
ПРАКТИКУМ ПО ИНТЕРФЕЙСАМ ПОСЛЕДОВАТЕЛЬНОЙ ПЕРЕДАЧИ ДАННЫХ: СТАНДАРТЫ,
ПРОГРАММИРОВАНИЕ, МОДЕЛИРОВАНИЕ
Рекомендовано УМО «Ядерные физика и технологии» в качестве учебного пособия для студентов высших учебных заведений
Москва 2012
УДК 681.3.06 ББК 32.973-018 С 54
Сафоненко В.А., Просандеев А.В., Смирнов М.Г. Практикум по ин-
терфейсам последовательной передачи данных: стандарты, программирование, моделирование: Учебное пособие. М.: НИЯУ МИФИ, 2012. − 184 с.
Пособие представляет собой практическое руководство по программированию и применению последовательных интерфейсов в измерительных и управляющих системах. Пособие состоит из теоретической части и лабораторного практикума. Первая глава пособия посвящена общим вопросам стандартизации последовательных интерфейсов и методике их программирования. Во второй главе рассмотрены методики программирования в среде MATLAB и моделирования каналов последовательной передачи на базе виртуальных портов. В третьей главе рассмотрены примеры применения методов массового обслуживания для оценки показателей качества интерфейсов. Практикум содержит шесть лабораторных работ.
Пособие предназначено для студентов вузов и аспирантов, обучающихся по специальностям «Электроника и автоматика физических установок», «Атомные станции: проектирование, эксплуатация и инжиниоинг».
Рекомендуется использовать при изучении дисциплин «Компьютерные системы и сети», «Автоматизированные системы научных исследований и автоматизации электрофизических установок». Может быть полезно для разработчиков систем автоматизации технологических процессов.
Подготовлено в рамках Программы создания и развития НИЯУ МИФИ
Рецензент ведущий электроник и доцент кафедры ВИТ СарФТИ НИЯУ МИФИ В.А. Павлов
ISBN 978-5-7262-1709-3 |
© Национальный исследовательский |
|
ядерный университет «МИФИ», 2012 |
|
2 |
Оглавление
Введение................................................................................................. |
6 |
Глава 1. Общие вопросы стандартизации последовательных |
|
интерфейсов и методика их программирования ......... |
11 |
Последовательные интерфейсы |
|
и последовательный порт: стандарты |
|
и соглашения.................................................................... |
11 |
Короткий пример работы |
|
с последовательным портом........................................... |
11 |
Механизм обмена данными |
|
через последовательный порт |
|
(по протоколу RS-232). .................................................... |
18 |
Механический стандарт. ............................................. |
18 |
Электрический стандарт............................................. |
21 |
Технические характеристики передачи..................... |
23 |
Уровень протокола ВОС. ............................................ |
25 |
Буферизация в интерфейсе....................................... |
25 |
Алгоритмы арбитража и сигналы |
|
синхронизации передачи. .......................................... |
26 |
Семейство протоколов RS. ........................................ |
31 |
Синхронная и асинхронная передача....................... |
31 |
Скорость передачи. .................................................... |
33 |
Передача байта данных. ............................................ |
33 |
Короткий пример. ............................................................. |
34 |
Низкоуровневое программирование. ............................. |
35 |
Пример программирования. ...................................... |
41 |
Глава 2. Методика программирования в среде MATLAB............ |
50 |
Арбитраж в интерфейсах. Программные и аппаратные |
|
механизмы реализации алгоритмов арбитража. |
|
Критерии качества интерфейса и сравнительные |
|
характеристики методов арбитража передачи................... |
50 |
Операторы MATLAB чтения и записи данных в порт........ |
53 |
Организация алгоритмического и событийного |
|
методов обмена информацией. |
|
События объекта serial в MATLAB....................................... |
62 |
Глава 3. Применение методов массового обслуживания |
|
для оценки показателей качества интерфейса............. |
74 |
Методы моделирования дискретных |
|
случайных величин. ......................................................... |
75 |
3
Моделирование дискретных случайных величин, |
|
равномерно распределенных на интервале. ................ |
75 |
Стандартные генераторы случайных чисел. ............ |
75 |
Метод Фибоначчи генерации |
|
псевдослучайных чисел. ............................................ |
77 |
Метод срединных квадратов генерации |
|
псевдослучайных чисел. ............................................ |
79 |
Линейный конгруэнтный метод генерации |
|
псевдослучайных чисел. ............................................ |
80 |
Модели дискретных случайных величин |
|
с произвольными законами распределения.................. |
82 |
Метод ступенчатой аппроксимации. ......................... |
82 |
Метод обращения. ...................................................... |
86 |
Тестирование генераторов случайных величин............ |
92 |
Статистическое тестирование выборки |
|
псевдослучайных чисел по критерию |
|
Колмогорова–Смирнова. ............................................ |
93 |
Критерий независимости случайных чисел.............. |
94 |
Методы систем массового обслуживания |
|
в интерфейсах.................................................................. |
96 |
Однолинейная система обслуживания. .................... |
96 |
Системы с марковскими процессами........................ |
98 |
Формула Литтла. ....................................................... |
102 |
Системы с управляемыми потоками пакетов |
|
в реальных интерфейсах. ........................................ |
102 |
Анализ полудуплексного и дуплексного режимов |
|
функционирования интерфейса. ............................. |
103 |
Последовательный порт с ограниченным |
|
буфером..................................................................... |
104 |
Система с распределением времени |
|
обслуживания общего вида. .................................... |
110 |
Примеры |
|
Пример 1. ............................................................................. |
115 |
Пример 2. Применение графического интерфейса......... |
122 |
Лабораторный практикум |
|
Работа 1. Программирование последовательного канала: |
|
байтовая передача. .................................................. |
130 |
4
Работа 2. Стандартные операторы MATLAB |
|
|
|
для управления портом............................................ |
141 |
Работа 3. |
Алгоритмы и арбитраж протокола связи ................. |
142 |
Работа 4. |
Асинхронные и синхронные алгоритмы |
|
|
ввода-вывода ............................................................ |
146 |
Работа 5. |
Моделирование генераторов случайных чисел |
|
|
в системе MATLAB . ................................................. |
149 |
Работа 6. |
Моделирование систем массового |
|
|
обслуживания в системе MATLAB ......................... |
154 |
Приложение 1. Термины и определения из области |
|
|
|
информационных технологий |
|
|
и расшифровка аббревиатур |
|
|
международных организаций и терминов .............. |
161 |
Приложение 2. Структуры регистров страниц ввода – вывода. ..... |
174 |
|
Приложение 3. Алфавитный список свойств. .................................. |
179 |
|
Список литературы............................................................................. |
181 |
5
Введение
Историческая справка
Ключевое свойство прогресса, отражающее философский закон «отрицание отрицания», заключается в смене старых технологий новыми. В истории науки и техники можно найти исключения. Примером может послужить дизельный двигатель CPU Intel 80186, архитектура которого, возможно, пройдет через века, и интерфейс RS-232 обмена данными в электронных устройствах, обычно именуемый как COM-порт. Аббревиатура COM-порт (Communication Port) отражает только факт обмена информацией. Корректное название – последовательный порт (Serial Port), отражает последовательную во времени передачу отдельных символьных разрядов. В технике передачи данных последовательный порт вне конкуренции. Это связано с тем, что параллельный интерфейс по критериям пропускной способности и помехоустойчивости эффективен на коротких расстояниях. В распределенных мобильных системах устройства с последовательным интерфейсом остаются наиболее эффективными. В этой связи стандарт RS-232 можно без ложной скромности из категории «широко известные» переквалифицировать в категорию «легендарные».
Философия мироздания демонстрирует неразрывную связь трех категорий: материи, энергии и информации. Невозможно передать информацию без средств передачи и затрат энергии. В наших силах наблюдать и преобразовать материю, энергию и информацию. В этой связи интерфейс можно определить как комплекс соглашений о физическом, информационном и энергетическом взаимодействии субъектов. Описание правил передачи информации назовем протоколом. В технике имеется некоторая неоднозначность применения терминов «интерфейс» и «протокол». В первом случае «интерфейс» рассматривают как понятие, включающее и «протокол» передачи. Во втором случае «интерфейс» рассматривают как техническое устройство, созданное по заявленному «протоколу». Мы будем придерживаться первого варианта. В этом случае «интерфейс» и «стандарт» будем считать синонимами. В приложении 1 приведены некоторые термины и определения по тематике интерфейсов пере-
6
дачи данных, а также расшифровки аббревиатур международных организаций и терминов.
Новый интерфейс USB (Universal Serial Bus) существенно потеснил интерфейс RS-232, так что многие материнские платы персональных компьютеров выпускаются без интерфейса RS-232. Тем не менее в промышленных вычислительных системах интерфейс RS-232 по-прежнему широко распространен, что подчеркивает живучесть и гибкость протокола связи, надежность механических соединений (разъема), достаточный уровень электромагнитной совместимости (ЭМС). Современные производители учитывают этот факт и выпускают микросхемы, которые позволяют компоновать интерфейсы RS-232 и USB.
Интерфейс RS-232 (Recommended Standard 232 − рекомендован-
ный стандарт) имеет полное наименование «Interface Between Data Terminal Equipment and Data Circuit-Terminating Equipment Employing Serial Binary Data Interchange» (интерфейс между терминалом данных и передающим оборудованием линии связи, применяющий последовательный обмен двоичными данными, англ.) был разработан в качестве терминального средства связи в 1962 году. К этому времени наблюдалось бурное развитие телекоммуникационных технологий. Отсутствие международного стандарта по последовательной передачи данных тормозило развитие телекоммуникационной отрасли. Многочисленные фирмы выпускали оборудования связи по собственным стандартам передачи данных, что вызывало проблемы их совместимости. Протоколы применяли кодировку символов и четырьмя, и пятью и восемью битами. В 1962 году EIA предложила лояльный стандарт («Рекомендованный стандарт 232») с кодировкой символов от 5 до 8 бит. Допустимое напряжение сигналов устанавливалось от ±3 до ±25 В. Допускалось использование до 16 сервисных сигналов в синхронном и асинхронном режимах передачи данных. В 1969 году EIA выпустила редакцию стандарта RS-232C, в котором был узаконен 25-контактный разъем DB25 и электрические характеристики сигнала. Эта редакция определила основные свойства последовательных интерфейсов и каналов связи на многие годы вперед. Международные и национальные стандарты стали включать части стандарта RS-232C в свои структуры.
В 1983 году фирма IBM выпустила персональные компьютеры IBM XT и 1984 году IBM AT с встроенными универсальными
7
приемопередатчиками UART (Universal Asynchronous RecieverTransmitter). Схемы UART разрабатывались по стандарту RS-232C и поддерживали передачу данных только в асинхронном режиме. Чтобы узаконить использование разъема DB9, TIA выпустила новый стандарт TIA-574. Ассоциация TIA выпустила ещё две редакции стандарта RS-232C с наименованием TIA/EIA 232-E (1991) и TIA/EIA 232-F(1997), практически полностью повторяющими стан-
дарт RS-232C.
В настоящее время применение интерфейса регламентировано стандартом EIA RS-232-C и поддержано рекомендациями V.24 CCITT. Стандарты МККТТ (CCITT) V.24/V.28, X.20bis/X.21bis и ISO IS2110 повторяют RS-232. Следует отдать должное предшественнику – интерфейсу «20 мА токовая петля», который активно применялся вплоть до 1980-х годов. Интерфейс использовал в качестве носителя токовую составляющую электрического сигнала, и по этой причине имел повышенную, в сравнении с RS-232, помехоустойчивость к сигналам синфазных помех. Скорость передачи на расстоянии 600 м составляла 19.2 КБод. Интерфейс не оговаривал сигналы квитирования и предполагал симплексный режим передачи.
Рекомендации, принятые Международным консультативным комитетом по телефонии и телеграфии (CCITT, ныне ITU-T), обозначаются комбинацией из заглавной латинской буквы и точки. Фактически эти рекомендации являются стандартами, которые соблюдаются пропорционально степени их распространения (V.24 – всегда, V.35, V.36 – по мере возможности). Буквой обозначается область применения стандарта, например V относится к передаче данных через телефонные сети, а X – к сетям и взаимодействию открытых систем.
Приведем краткое описание и обозначение некоторых наиболее распространенных типов интерфейсов «оборудование связи/оконечное оборудование (DCE/DTE)».
V.24 – это эквивалент RS-232, Com-порт, асинхронный порт (кстати, он умеет работать и в синхронном режиме). Порт низкоскоростной (от 50 бит/с до 230 Кбит/с, с разрешающей способностью 1 бит/с), хотя в последнее время стали появляться материнские платы со скоростью до 230–400 Кбит/с. Его характеристики ограничены наличием только одного «земляного» провода и высо-
8
ким уровнем логических единицы и нуля – −3 В и +3 В соответственно. Стандартный разъем – вилка DB-25 или DB-9 на оконечном устройстве (DTE, компьютер) и розетка DB-25 на устройстве связи (DCE, модем). Электрическая спецификация соответствует стандарту EIA RS-232. Физический стык DB25F (розетка).
V.35 первоначально разрабатывался как стандарт на высокоскоростные модемы, однако прижился только разработанный в рамках этого стандарта высокоскоростной интерфейс DCE/DTE. Он имеет низкий уровень логических единицы и нуля и дифференциальные линии передачи данных. Тип разъема не определен, но чаще всего применяется большой многорядный разъем с золочеными контактами. Используется, как и другие высокоскоростные интерфейсы, обычно в синхронном режиме. Электрическая спецификация соответствует стандарту ITU-T V.35. Физический стык DB25F (розетка).
V.36 тоже изначально имел отношение не к определенному типу модема, а к интерфейсам передачи данных. Употребляется как обозначение электрического интерфейса, отличающегося от V.35 тем, что управляющие линии (DTR, RTS и проч.) здесь также выполнены дифференциальными парами и используется несколько иной набор сигналов. Обычно соответствует интерфейсу RS-449. Как и V.35, применяется, как правило, в синхронном режиме. Стандартно используется двухрядный разъем DB37.
X.21 – интерфейс, используемый для подключения DTE-DCE в синхронном режиме. Работает на скоростях до 2 Мбит/с. Использует двухрядный разъем DB15 и имеет упрощенный набор управляющих линий. Встречается нечасто. Электрическая спецификация соответствует стандарту ITU-T X.21. Физический стык DB15F (розетка).
Интерфейс G.703 соответствует стандарту ITU-T G.703 со скоростью 2048 Кбит/с. Электрическое подключение осуществляется по витой паре с сопротивлением 120 Ом линейным кодом HDB3. Формат линейного кодирования HDB-3 был специально разработан для решения проблем синхронизации, возникающих в случае использования AMI – кода с чередованием полярности импульсов. В формате HDB-3 последовательность из четырех последовательных нулей замещается вставкой из двух разнополярных импульсов. Оборудование на удаленном конце принимает поток и заменяет двухимпульсные вставки на последовательность нулей, восстанав-
9
ливая исходную последовательность данных. Таким образом, код HDB-3 обеспечивает большую плотность импульсов в потоке, что дает лучшие параметры синхронизации по принимаемому сигналу.
Непосредственная стыковка устройств, использующих разные интерфейсы, не предусмотрена стандартами. Существуют активные преобразователи интерфейсов, например V.24-V.35, конвертирующие все необходимые параметры – электрические уровни, управляющие сигналы и проч. На практике стыковка разнородных интерфейсов приводит к потере помехоустойчивости и надежности канала.
Перечень комитетов по стандартизации и ссылки на основные стандарты последовательной передачи приведены в приложении 1.
Впособии приведены примеры программ, написанных на языке Си и средствами пакета MATLAB, рассмотрены методы моделирования и исследования характеристик интерфейсов. Пособие может быть полезно для студентов и инженеров, желающих разобраться в особенностях организации ввода-вывода и возможностях программирования последовательного порта на канальном и прикладном уровнях.
Впособии применяются следующие обозначения:
•шестнадцатеричные коды чисел и символов будут иметь префикс «0x» или постфикс «h», в соответствии с контекстом;
•последовательности бит будут оформлены в угловых скобках (например, <0011001>) или завершены символом ‘b’, например 001001b. При этом крайний правый бит будем считать младшим двоичным разрядом в слове.
В лабораторном практикуме используется новая методика проведения занятий в связи с переходом на техническую базу по цифровому моделированию. Применение современных информационных технологий и методов моделирования на базе персональных компьютеров открывает новые возможности по организации передачи данных в системах научных исследований.
10