Разработка протокола обмена информацией и форматов сообщений - Радиосистема пожарной сигнализации

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

Электронно-вычислительная машина, в дальнейшем именуемая центральный процессор (ЦП), является устройством для обработки информации с отдельных накопителей. Процедура общения ЦП с накопителями (устройствами накопления (УН)) происходит следующим образом.

ЦП посылает в эфир сообщение Запрос с указанием адреса конкретного накопителя. Максимальное количество накопителей, обслуживаемых одним ЦП 256 штук и определяется длиной адресного поля в пакете. Реально может использоваться и меньшее количество. Когда накопитель получает данную команду, то он отвечает посылкой Готов. После опроса всех устройств, устанавливается связь с доступными накопителями в очередности, определяемой заполненностью ОЗУ: от устройств с большим количеством накопленной информации к меньшим. Для начала сеанса связи от ЦП посылается команда Запрос передачи, которая сообщает о готовности ЦП принимать информацию. После приема этого сообщения накопитель посылает пакет информации с накопленными данными. В случае правильного приема пакета, ЦП посылает команду Запрос передачи, на что накопитель отвечает следующим пакетом данных. Данная процедура продолжается до тех пор, пока не будет передана вся накопленная информация. Когда послан последний пакет, накопитель в ответ на очередную команду Запрос передачи, отвечает сообщением Нет информации. В ответ на данную команду ЦП посылает сообщение Конец связи, после чего сеанс связи с данным накопителем прекращается и идет переход к следующему устройству, либо, если оно было последним в очереди связи, переход к циклу опроса.

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

Пакет сообщения состоит из шести полей: флаг, адрес, указатель, данные, проверка (рис. 3.3.1., рис. 3.3.2.).

Флаг

(1 byte)

Адрес

(1 byte)

Указатель

(1 byte)

Данные

(1 byte)

Проверка

(1 byte)

Рис. 3.3.1. Пакет сообщения (команда).

Флаг

(1 byte)

Адрес

(1 byte)

Указатель

(1 byte)

Данные

(1 Kbyte)

Проверка

(1 byte)

Рис. 3.3.2. Пакет сообщения (данные).

8 битные флаги указывают на начало пакета. Они представляют собой посылку вида 11011011.

Поле адреса длиной 8 бит указывает на адрес накопителя.

Указатель, имеющий длину также 8 бит, определяет тип пакета: команда либо данные, т. е. какого типа информация содержится в поле Данные. Если в данном поле 00000000, то это информационный пакет, т. е. в поле Данные содержится накопленная информация. Если же 11111111, то в этом пакете (в поле Данные) содержится команда.

Поле Данные содержит или команду и имеет длину 1 байт или накопленные данные, длиной 1Кбайт.

В поле Проверка длиной 1 байт содержатся проверочные символы. В настоящем варианте протокола для проверки правильности передачи пакета используется проверка на четность поля Данные. Вообще-то для проверки пакета может использоваться любой код с кодовой последовательностью не длиннее 8 бит (при данном формате пакета сообщения).

Пакеты разделены временным интервалом в 4 мс (5 байт). Это позволяет не использовать флаги завершения пакета.

Если в течение 16 мс (20 байт) не приходит следующий пакет, то ЦП посылает команду Повторный запрос. Если же в ответ на третью подряд команду Повторный запрос ответа нет, то сеанс связи заканчивается, до следующего цикла обращения.

Если в процессе общения ЦП с отдельным накопителем в течение 16 мс (20 байт) не приходит следующий пакет от ЦП к УН, то накопитель посылает команду Запрос команды. Если в ответ на третью подряд команду Запрос команды ответа нет, то сеанс связи заканчивается, до следующего цикла обращения.

Вся область ОЗУ емкостью 32 Кбайт, разбивается на поля длиной 1Кбайт (рис. 3.3.3.). Каждое поле содержит 17 мин накопленной информации. Кроме того в каждом поле остается свободными 39 байт и 4 бита. Данное пространство используется для меток времени в начале поля.

разбиение озу накопителя на поля

Рис. 3.3.3. Разбиение ОЗУ накопителя на поля.

Каждая команда имеет свой код, по которому она может быть идентифицирована. Коды команд приведены в таблице 3.3.1.

Таблица 3.3.1

N

Название команды

Код команды

Команды ЦП

    1 2 3

Запрос

Запрос передачи

Повторный запрос

    10000001 10000011 10000111

Команды УН

    1 2 3

Готов

Нет данных

Запрос команды

    11001111 11011111 11111111

Так как скорость передачи данных радиомодулями составляет 10000бит/с (1250 байт/с=1.22Кбайт/с), то на передачу пакета содержащего команду (длина пакета 5 байт+5 байт интервал), или данные (длина пакета 1028 байт+5 байт) затрачивается 8 мс, 8.8 мс и 0.826 с соответственно.

Для примера, цикл опроса всех 256 устройств, когда все они доступны для связи, длится 4.3 с (256 Запрос и 256 Готов).

Сеанс связи с одним накопителем без ошибок длится 26.71 с, (33 Запрос передачи, 32 Пакета данных, Нет информации, Конец связи).

Похожие статьи




Разработка протокола обмена информацией и форматов сообщений - Радиосистема пожарной сигнализации

Предыдущая | Следующая