Разработка протокола обмена БИ - ПИ

Проектирование программного модуля для организации информационного обмена между контроллером CPU 5066 и ПИ. Содержание основных полей запроса и ответа. Очерк программирования асинхронного адаптера и последовательности передачи данных чрез интерфейс.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 15.10.2013
Размер файла 118,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Разработка протокола обмена БИ - ПИ

1. Общие сведения об организации обмена с модуля CPU 5066 - ПИ

ПИ должен производить обмен информацией с агрегатами БИ. Регистрация данных в ПИ заключается в считывании информации из внешней среды, определяемой интерфейсом взаимодействия. Взаимодействие организуется по принципу master-slave. Такая организация позволяет избежать ошибок, возникающих в системах, где каждый может быть master или slave.

Master является инициатором всех событий происходящих в сети. Передача данных от пульт инженера, прием данных о состоянии объекта и значении контролируемых параметров - все происходит по команде с пульта.

Используя процедуры, представленные в СИ ++[11], был разработан модуль управления.

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

Таблица 1. - Перечень команд из ПИ в БИ:

Команда

Номер

Данные

Запрос под кадра

Номер под кадра

-

Чтение регулировки

Номер регулировки

-

Чтение коэффициента

Номер коэффициента

-

Запрос фиксированного кадра

-

-

Информация из БИ выдаётся по запросу от ПИ.

БИ выдаёт три типа блоков данных:

- ответ на команду;

- фиксированный кадр;

- блок данных произвольного кадра.

Перечни параметров фиксированного кадра, произвольного кадра, слов отказа, слов команд, слов меток аварийного и нормального останова приводятся в протоколе обмена БИ - ПИ.

Информация передается по последовательному каналу обмена com2 CPU 5066 - COM ПИ. Параметры информационного обмена:

1) физический протокол канала обмена RS-232;

2) логический протокол канала обмена - в CPU 5066 реализован протокол ModBus-RTU (slave).

2. Разработка программного модуля обмена с CPU 5066

Программный модуль обмена с CPU 5066 состоит из функции реализации протокола информационного обмена ModBus-RTU, функции инициализации асинхронного адаптера RS-232 (com-порта), функции реализации обмена через com-порт.

2.1 Протокол информационного обмена ModBus-RTU

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

Рис. 1. - Цикл запрос - ответ в протоколе ModBus:

При использовании протокола ModBus БИ и ПИ соединяются, используя технологию главный - подчинённый, при которой одно устройство (главный - ПИ) может инициировать передачу (сделать запрос). Другие устройства (подчинённые) передают запрашиваемые главным устройством данные или производят запрашиваемые действия. Главный («мастер») может адресоваться к индивидуальному подчинённому или может инициировать широкую передачу на все подчинённые устройства. Подчинённое устройство возвращает сообщение в ответ на запрос, адресуемое именно ему. Ответы не возвращаются при широковещательном запросе от главного.

Запрос. Код функции в запросе от главного говорит подчиненному, какое действие необходимо провести. Байты данных содержат информацию необходимую для выполнения запрошенной функции. Например, код функции 3 подразумевает запрос на чтение содержимого регистров подчинённого.

Ответ. Если подчинённый даёт нормальный ответ, то код функции в ответе повторяет код функции в запросе. В байтах данных содержится затребованная информация. Если имеет место ошибка, то код функции модифицируется и в байтах данных передаётся причина ошибки.

В сетях ModBus может быть использован один из двух способов передачи: ASCII или RTU.

Режим ASCII. При использовании режима ASCII каждый байт сообщения передаётся как два ASCII символа. Главное преимущество этого способа время между передачей символов может быть до 1 секунды без возникновения ошибок при передаче.

Режим RTU. При использовании режима RTU каждый байт сообщения содержит два 4-битных шестнадцатеричных числа. Каждое сообщение передается непрерывным потоком.

RTU фрейм. В RTU режиме сообщение начинается с интервала тишины равного времени передачи 3,5 символов при данной скорости передачи в сети. Вслед за последним передаваемым символом также следует интервал тишины продолжительностью не менее 3,5 символов. Новое сообщение может начинаться после этого интервала.

Фрейм сообщения передаётся непрерывно. Если интервал тишины продолжительностью 3,5 возник во время передачи фрейма, принимающее устройство заканчивает приём сообщения и следующий байт будет воспринят как начало следующего сообщения.

Таким образом, если новое сообщение начнётся раньше 3,5 интервала, принимающее устройство воспримет его как продолжение предыдущего сообщения. В этом случае установится ошибка, так как будет несовпадение контрольных сумм. Типичный фрейм сообщения показан на рис. 2.

Таблица 1. - Фрейм протокола ModBus-RTU:

Старт

Адрес

Функция

Данные

Контрольная сумма

Стоп

8 бит

8 бит

8хn бит

16 бит

Содержание адресного поля. Адресное поле фрейма содержит 8 бит. Допустимый адрес передачи находится в диапазоне 0-247. Каждому подчинённому устройству присваивается адрес в пределах от 1 до 247. Адрес 0 используется для широковещательной передачи, его распознаёт каждое устройство.

Содержание поля функции. Поле функции содержит 8 бит. Диапазон числа 1-255. Когда подчинённый отвечает главному, главный использует поле кода функции для фиксации ошибки.

В случае нормального ответа подчинённый повторяет оригинальный код функции. Если имела место ошибка возвращается код функции с установленным в 1 старшим битом. Например, сообщение от главного к подчинённому прочитать группу регистров имеет следующий код функции: 00000011(2) = 3(16).

Если подчинённый выполнил затребованное действие без ошибки, он возвращает такой же код. Если имеет место ошибка, то он возвращает: 10000011(2) = 83(16). В добавление к изменению кода функции, подчинённый размещает в поле данных уникальный код, который говорит главному какая именно ошибка произошла или причину ошибки.

Содержание поля данных. Поле данных в сообщении от главного к подчинённому содержит дополнительную информацию, которая необходима подчинённому для выполнения указанной функции. Оно может содержать адреса регистров или выходов, их количество, счётчик передаваемых байтов данных. Например, если главный запрашивает у подчинённого прочитать группу регистров (код функции 03), поле данных содержит адрес начального регистра и количество регистров. Если главный хочет записать группу регистров (код функции 10), поле данных содержит адрес начального регистра, количество регистров, счётчик количества байтов данных и данные для записи в регистры. Поле данных может не существовать (иметь нулевую длину) в определённых типах сообщений.

Содержание поля контрольной суммы. При использовании режима RTU поле контрольной суммы содержит 16-битовую величину. Контрольная сумма (CRC) является результатом вычисления, сделанного над содержанием сообщения. Контрольная сумма добавляется к сообщению последним полем младшим байтом вперёд.

Контрольная сумма CRC. Контрольная сумма состоит из двух байт. Контрольная сумма вычисляется передающим устройством и добавляется в конец сообщения. Принимающее устройство вычисляет контрольную сумму в процессе приёма и сравнивает её с полем СRC принятого сообщения. Счётчик контрольной суммы предварительно инициализируется числом FF. Во время вычисления генерации CRC каждый байт сообщения складывается по исключающему ИЛИ с текущим содержимым регистра контрольной суммы. Результат сдвигается в направлении младшего бита с заполнением нулём старшего бита. Если младший бит равен 1, то производится исключающее ИЛИ содержимого регистра контрольной суммы и определённого числа. Если младший бит равен 0, то исключающее ИЛИ не делается. Процесс сдвига повторяется восемь раз. После последнего (восьмого) сдвига следующий байт складывается с текущей величиной контрольной суммы, и процесс сдвига повторяется восемь раз как описано выше. Конечное содержание регистра и есть контрольная сумма CRC.

2.2 Инициализация асинхронного адаптера RS - 232

В основе последовательного порта передачи данных лежит микросхема Intel 8250 или её современные аналоги - Intel 16450, 16550,16550A. Эта микросхема является универсальным асинхронным приёмопередатчиком (UART - Universal Asynchronous Receiver Transmitter). Микросхема содержит несколько внутренних регистров, доступных через команды ввода - вывода.

Микросхема 8250 содержит регистры передатчика и приёмника данных.

Первое, что должна сделать программа, работающая с асинхронным адаптером RS - 232, это установить формат и скорость передачи данных. После загрузки операционной системы для асинхронных адаптеров устанавливается скорость 2400 бод, не выполняется проверка на чётность, используется один стоповый бит и восьмибитовая длина передаваемого символа. Чтобы изменить текущий режим работы асинхронного адаптера, нужно выполнить установку регистра управления линией LCR, регистра управления прерываниями IER, регистра управления модемом MCR и регистра состояния модема MSR.

Адреса регистров адаптера RS - 232 порта com2 (порт com2 имеет базовый адрес base=3F8(16)) приведены в таблице 2.

Таблица 2. - Адреса управляющих регистров адаптера RS - 232:

Регистр

Адрес

Регистр данных

base

Регистр управления прерываниями

base+1(16)

Регистр управления линией

base+3(16)

Регистр управления модемом

base+4(16)

Регистр состояния модема

base+6(16)

Регистр данных. Регистр данных расположен непосредственно по базовому адресу порта RS - 232 и используется для обмена данными и для задания скорости обмена.

Для передачи данных в этот регистр необходимо записать передаваемый байт данных. После приёма данных от внешнего устройства принятый байт можно прочитать из этого же регистра.

В зависимости от состояния старшего бита регистра управления линией LCR назначение этого регистра может изменяться. Если старший бит равен нулю, регистр используется для записи данных. Если же старший бит равен единице, регистр используется регистр используется для ввода значения младшего байта делителя частоты тактового генератора. Изменяя содержимое делителя можно изменять скорость передачи данных. Старший байт записывается в регистр управления прерываниями.

Зависимость скорости передачи данных от значения делителя частоты представлена в таблице 3.

Таблица 3. - Зависимость скорости передачи данных от значения делителя частоты:

Делитель, десятичная форма

Делитель, шестнадцатеричная форма

Скорость передачи, бод

1040

600

110

768

300

150

384

180

300

192

0C0

600

96

60

1200

48

30

2400

24

18

4800

12

0C

9600

6

6

19200

3

3

38400

2

2

57600

1

1

115200

Как следует из таблицы 3, максимальная скорость обмена информацией, которую можно достичь при использовании асинхронного адаптера достигает 115200 бод, что примерно составляет 14 Кбайт в секунду.

Регистр управления прерываниями IER. Этот регистр используется либо для управления прерываниями от асинхронного адаптера, либо (после вывода в управляющий регистр байта с установленным в единицу старшим битом) для вывода значения старшего байта делителя частоты тактового генератора. Это 8-разрядный регистр (D7 D6 D5 D4 D3 D2 D1 D0).

В режиме управления прерываниями разряды регистра имеют следующие назначения:

- D0 = 1 - разрешение прерывания при готовности принимаемых данных;

- D1 = 1 - разрешение прерывания после передачи байта (когда выходной буфер передачи пуст);

- D2 = 1 - разрешение прерывания по обнаружению состояния BREAK (состояние обрыва связи) или по ошибке;

D3 = 1 - разрешение прерывания по изменению состояния входных линий на разъёме RS-232 (CTS, DSR, RI, DCD); разряды D4 - D7 не используются и должны быть равны нулю.

Регистр управления линией LCR. Регистр управления линией доступен по записи и чтению.

Этот регистр управляет различными характеристиками порта (скорость передачи данных, контроль чётности, длина передаваемых слов). Это 8-разрядный регистр (от D7 до D0).

Разряды D1, D0 определяют длину передаваемых слов в битах:

- D1D0 = 005 бит;

- D1D0 = 016 бит;

- D1D0 = 017 бит;

- D1D0 = 118 бит.

Разряд D2 определяет количество стоповых бит:

- D2 = 01 стоповый бит;

- D2 = 12 стоповых бита.

Разряды D4, D3 проверку на чётность:

- D4D3 = X0 - контроль на четность не выполняется;

- D4D3 = 01 - выполняется проверка на нечётность;

- D4D3 = 11 - выполняется проверка на чётность.

Разряд D5 - фиксация чётности. При установке этого бита, бит чётности всегда принимает значение 0 (если D4D3 = 11) или 1 (если D4D3 = 10).

Разряд D6 - установка перерыва. Вызывает вывод строки нулей в качестве сигнала BREAK для подключения устройства.

Разряд D7 используется для доступа к регистру установки скорости:

- D7 = 1 - регистр данных и регистр управления прерываниями используются для загрузки делителя частоты тактового генератора;

- D7 = 0 - регистр данных и регистр управления прерываниями используются как обычно.

Регистр управления модемом MCR управляет состоянием выходных линий.

Так же запуском диагностики при соединённых вместе входе и выходе асинхронного адаптера.

Регистр состояния модема MSR.

Регистр состояния модема определяет состояние управляющих сигналов, передаваемых асинхронному порту.

Последовательность действий при инициализации com-порта для обмена с модулем CPU 5066:

1) получить доступ к скорости обмена. Для этого в регистр управления линией LCR нужно занести число10000000(2) = 80(16);

2) сбросить в ноль регистр управления прерываниями IER и занести в него значение делителя частоты тактового генератора. Для скорости 115200 бод делитель частоты равен 00000001(2) = 1(16);

3) установить длину сообщения, число стоповых бит, бит контроля чётности. Для длины сообщения 8 бит, одного стопового бита, бита контроля чётности - дополнения до нечётного в регистр управления линией LCR нужно занести число 00011011(2) = 1А(16);

4) сбросить в ноль регистр состояния модема MSR.

2.3 Алгоритм обмена с модулем ПИ

Для организации передачи или приёма данных через последовательный интерфейс RS-232 (com-порт) используются регистр данных и регистр идентификации прерываний IIDR и регистр состояния линии LSR. Считывая содержимое регистра идентификации прерываний IDR, программа может определить величину прерывания.

Это 8-разрядный регистр:

D7, D6, D5, D4, D3, D2, D1, D0.

Рассмотрим назначения битов:

- D0 = 1 - нет прерываний, ожидающих обслуживания;

- D2D1 = 00 - состояние модема, устанавливается при изменении входных линий:

- CTS;

- RI;

- DCD;

- DSR, сбрасывается после чтения состояния модема из регистра состояния модема MCR.

Алгоритм обмена контроллера CPU 5066 c модулем ПИ приведён ниже.

Рис. 2. - Блок схема алгоритма обмена ПИ с CPU 5066:

Регистр состояния линии определяет величину ошибок, которые могут произойти при передаче данных через интерфейс RS-232.

Для организации передачи данных через com-порт нужно выполнить следующие действия:

1) установить регистр управления прерываниями IER в режим прерываний от передатчика, для этого в него нужно записать число R_INT=00000001(2);

2) прочитать значение регистра идентификации прерываний IER;

3) если значение регистра IIER равно числу TX_RDY = =00000010(2), то это означает, что буфер передатчика пуст.

Рис. 3:

Если значение регистра IER не равно числу TX_RDY, то в буфере передатчика ещё содержится байт не переданный по линии связи; в этом случае нужно ждать освобождения буфера.

Пункты 2, 3 повторяются до тех пор, пока не будет отправлено всё сообщение.

Для организации приёма данных через com-порт нужно выполнить следующие действия:

1) установить регистр управления прерываниями IER в режим прерываний от приёмника, для этого в него нужно записать число RINT = 00000010(2); информационный программирование интерфейс

2) прочитать значение регистра идентификации прерываний IER;

3) если значение регистра IER равно числу RXRDY = 00000010(2), то это означает, что буфер приёмника пуст и в регистр данных можно записывать следующий байт. Если значение регистра IER не равно числу RXRDY, то в буфере приёмника ещё содержится не считанный байт, в этом случает нужно ждать освобождения буфера (возврат к пункту 2).

4) прочитать значение регистра состояния линии LSR. Если значение регистра LSR равно числу RERR = 00011110(2), то произошла ошибка передачи, в этом случае нужно вернуться к пункту 2. Если значение регистра LSR не равно числу RERR, то ошибок при передаче не произошло и буфер приёмника можно заполнить принятым байтом. Пункты 2, 3, 4 повторяются до тех пор, пока не будет принято всё отправленное сообщение.

Выводы

Результатом работы стал готовый программный модуль для организации обмена между контроллером CPU 5066 и ПИ. На логическом уровне реализован протокол информационного обмена ModBus-RTU, а на физическом уровне - последовательная передача данных чрез интерфейс RS-232. В работе рассмотрены основные вопросы, связанные с параметрами протокола ModBus-RTU, программированием асинхронного адаптера RS-232, передачей данных через com-порт.

Размещено на Allbest.ru


Подобные документы

  • Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.

    курсовая работа [81,7 K], добавлен 18.08.2014

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

    дипломная работа [1,4 M], добавлен 20.07.2014

  • Принцип организации и способы удаленного обмена файлами с использованием протокола. Разработка проекта распространения софта на множество пользовательских машин. Создание программного комплекса системы с механизмами отображения и управления данными.

    дипломная работа [920,0 K], добавлен 03.04.2014

  • Описание основных типов станций протокола HDLC. Нормальный, асинхронный и сбалансированный режимы работы станции в состоянии передачи информации. Методы управления потоком данных. Формат и содержание информационного и управляющего полей протокола HDLC.

    лабораторная работа [77,1 K], добавлен 02.10.2013

  • Мобильное приложение и его предназначение для организации информационного обмена между мобильными сотрудниками компании (водитель эвакуатора, мастер техпомощи) и CRM системой. Синхронизация данных о заказах. Пользовательский интерфейс приложения.

    дипломная работа [594,5 K], добавлен 12.08.2017

  • Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и оценка структур данных для ее хранения. Разработка основных алгоритмов решения и структурной схемы программного продукта. Проектирование интерфейса пользователя.

    курсовая работа [449,8 K], добавлен 14.01.2011

  • Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и выбор структур данных для ее хранения, разработка основных алгоритмов. Проектирование интерфейса пользователя. Выбор стратегии тестирования и разработка тестов.

    курсовая работа [332,3 K], добавлен 09.12.2014

  • Структурная диаграмма программного модуля. Разработка схемы программного модуля и пользовательского интерфейса. Реализация программного модуля: код программы; описание использованных операторов и функций. Вид пользовательской формы с заполненной матрицей.

    курсовая работа [215,3 K], добавлен 01.09.2010

  • Назначение буфера обмена, управление его данными в среде Windows. Взаимодействие между владельцем и клиентом буфера. Данные и тип дескриптора, для каждого типа предопределенных форматов. Воспроизведение данных буфера обмена с задержкой, окна просмотра.

    реферат [58,9 K], добавлен 04.10.2010

  • Прикладные решения для российских организаций на платформе "1С:Предприятие 8". Особенности обмена данными с помощью XML-файлов между "1С" и "ST-Мобильная Торговля". Создание плана обмена, предназначенного для регистрации измененной цены в номенклатуре.

    дипломная работа [1,9 M], добавлен 27.03.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.