КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Понятие сообщения, формат кадра сообщения, контрольной суммы.Сообщение - первичный элемент процесса передачи информации от коммуникатора к получателю. Структура формата передачи данных. Данные по CAN сети пересылаются в виде отдельных кадров стандартного формата. Наиболее важными полями являются поле идентификатора (identifier) и собственно данные (data). Идентификатор служит уникальным именем для типа сообщения и определяет то, кем будет принято и как будет интерпретировано следующее за ним поле данных. Такая контекстная адресация обеспечивает максимально возможную простоту модернизации. Поскольку децентрализованные контроллеры никак не связаны между собой логически, добавление нового элемента в систему никак не повлияет на поведение всех остальных. Приоритетность сообщения определяется значением идентификатора. Приоритет тем больше, чем идентификатор меньше. Как правило, контроллер позволяет задавать лишь эти два поля. Остальные поля используются для передачи специфических данных, необходимых для функционирования CAN. Данные в CAN передаются короткими сообщениями-кадрами стандартного формата. В CAN существуют четыре типа сообщений: · Data Frame · Remote Frame · Error Frame · Overload Frame Data Frame – это наиболее часто используемый тип сообщения. Он состоит из следующих основных частей: поле арбитража (arbitration field) определяет приоритет сообщения в случае, когда два или более узлов одновременно пытаются передать данные в сеть. Поле арбитража состоит в свою очередь из: · для стандарта CAN-2.0A, 11-битного идентификатора + 1 бит RTR (retransmit); · для стандарта CAN-2.0B, 29-битного идентификатора + 1 бит RTR (retransmit).
Следует еще раз отметить, что поле идентификатора, несмотря на свое название, никак не идентифицирует само по себе ни узел в сети, ни содержимое поля данных. Для Data кадра бит RTR всегда выставлен в логический ноль (доминантный сигнал). Поле данных (data field) содержит от 0 до 8 байт данных поле CRC (CRC field) содержит 15-битную контрольную сумму сообщения, которая используется для обнаружения ошибок слот подтверждения (Acknowledgement Slot) (1 бит), каждый CAN-контроллер, который правильно принял сообщение посылает бит подтверждения в сеть. Узел, который послал сообщение слушает этот бит, и в случае если подтверждение не пришло, повторяет передачу. В случае приема слота подтверждения передающий узел может быть уверен лишь в том, что хотя бы один из узлов в сети правльно принял его сообщение. Remote Frame – это Data Frame без поля данных и с выставленным битом RTR (1 – рецессивные бит). Основное предназначение Remote кадра – это инициация одним из узлов сети передачи в сеть данных другим узлом. Такая схема позволяет уменьшить суммарный трафик сети. Однако, на практике Remote Frame сейчас используется редко (например, в DeviceNet Remote Frame вовсе не используется). Error Frame – это сообщение, которое явно нарушает формат сообщения CAN. Передача такого сообщения приводит к тому, что все узлы сети регистрируют ошибку формата CAN-кадра, и в свою очередь автоматически передают в сеть Error Frame. Результатом этого процесса является автоматическая повторная передача данных в сеть передающим узлом. Error Frame состоит из поля Error Flag, которое состоит из 6 бит одинакового значения (и таким образом Error frame нарушает проверку Bit Stuffing, см. ниже), и поля Error Delimiter, состоящее из 8 рецессивных битов. Error Delimiter дает возможность другим узлам сети обнаружив Error Frame послать в сеть свой Error Flag. Overload Frame - повторяет структуру и логику работы Error кадра, с той разницей, что он используется перегруженным узлом, который в данный момент не может обработать поступающее сообщение, и поэтому просит при помощи Overload-кадра о повторной передаче данных. В настоящее время Overload-кадр практически не используется. Контрольная сумма — некоторое значение, рассчитанное по набору данных путём применения определённого алгоритма и используемое для проверки целостности данных при их передаче или хранении. Также контрольные суммы могут использоваться для быстрого сравнения двух наборов данных на неэквивалентность: с большой вероятностью различные наборы данных будут иметь неравные контрольные суммы. Это может быть использовано, например, для обнаружения компьютерных вирусов. Несмотря на своё название, контрольная сумма не обязательно вычисляется путем суммирования.
|