Научная статья на тему 'Особенности расчета временных уставок can-модулей'

Особенности расчета временных уставок can-модулей Текст научной статьи по специальности «Электротехника, электронная техника, информационные технологии»

CC BY
216
123
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по электротехнике, электронной технике, информационным технологиям, автор научной работы — Нигородов Юрий Александрович

В статье рассматриваются некоторые аспекты конструирования канала передачи данных на основе CAN протокола. Показана типовая последовательность расчета временных параметров модулей CAN. Рассмотрены основные факторы, влияющие на качество передачи данных.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Особенности расчета временных уставок can-модулей»

УДК 004.624

Ю. А. НИГОРОДОВ

ГУП Центр «Транспорт» МПС России

ОСОБЕННОСТИ РАСЧЕТА ВРЕМЕННЫХ УСТАВОК CAN-МОДУЛЕЙ

В статье рассматриваются некоторые аспекты конструирования канала передачи данных на основе CAN - протокола. Показана типовая последовательность расчета временных параметров модулей CAN. Рассмотрены основные факторы, влияющие на качество передачи данных.

Постоянное усложнение измерительной аппаратуры и повсеместная автоматизация технологических процессов диктуют новые жесткие требования к каналам передачи данных. Современные требования таковы, что использование простых протоколов и стандартов типа RS-485 часто бывает неприемлемо по ряду причин. Применение автоматизации в сложных технологических процессах требует использования высоконадежного канала передачи данных, так как сбой в работе системы может привести к нарушению условий протекания технологических процессов и, как следствие, к выпуску некачественной продукции. Более того, нарушение в работе системы, вызванное неисправностью канала передачи данных может привести к человеческим жертвам, что совершенно недопустимо.

Среди многочисленных факторов, обеспечивающих популярность CAN - шины, следует отметить высокую степень надежности и "живучести" сети благодаря развитым механизмам обнаружения ошибок, повтору ошибочных сообщений, самоизоляции неисправных узлов, иммунитету к электромагнитным помехам. Немалую роль играет и возможность поддержки разнотипных физических сред передачи данных - от дешевой витой пары до оптоволокна и радиоканала. Ряд оригинальных механизмов сетевого взаимодействия (мультимастер-ность, широковещание, побитовый арбитраж) в сочетании с высокой скоростью передачи данных (до 1 Мбит/с) способствуют эффективной реализации режима реального времени в системах распределенного управления.

Одной из ключевых возможностей CAN - протокола является возможность программирования параметров системы на уровне декодирования битового потока. Это дает возможность разработчику адаптировать модули CAN к работе в определенных условиях. Программирование временных параметров дает возможность настроить канал передачи данных на максимально возможную скорость передачи данных при данной длине линии.

Более подробно с особенностями CAN - протокола можно ознакомиться в [1]. Целью данной статьи является выработка некоторых рекомендаций по расчету временных параметров CAN - модулей.

Номинальная скорость битового потока в сети CAN является величиной одинаковой для всей сети и определяется по формуле:

1

(1)

^NBT

где - номинальная длительность бита.

Как указано в [1], бит делится на 4 непересекающихся сегмента: SYNC_SEG, Р1ЮР_5ЕС, РНАБЕ_5ЕС1 и РНАЗЕ_ЗЕС2 (рис. 1).

Точка выборки на рис. 1 отражает время выборки состояния шины данных сети для случая однократной выборки в течение битового времени.

Длительность бита определяется как сумма длительностей указанных сегментов:

'/VBT — 'sY.VC_SEG + lpROP_SEC +

+ tpHASE_SEGl + t PHASE _SEG2

(2)

Длина каждого из сегментов определяется как произведение целого числа единиц, так называемых квантов времени Т0 . Длительность TQ равна периоду системной частоты CAN-сети. Длительность сегмента SYNC_SEG фиксирована и равна 1 Т0 . Длительность остальных сегментов программируется и может принимать различные значения (табл. 1).

Таблица 1

Длительность сегментов бита данных в сетях CAN

Сегмент Длительность

PROP_SEG 1. 8 Г0

PHASE_SEG1 1..8Г0 для однократной выборки 2..8 т для трехкратной выборки

PHASE SEG2 МАХ(1РТ, РНА5Е_5ЕС1)

В табл. 1 IPT - время обработки информации. В большинстве случаев принимают IPT =2 Т0. Как следует из приведенной таблицы, минимальное число квантов времени, приходящееся на длину бита равно 5, однако в большинстве контроллеров CAN минимальное значение принято равным 8. Максимум Т0 в бите ограничен 25.

SYNCSEG | PROPSEG | PHASE_SEG1 j PHASE SEG2I

t

выборка состояния шины

120

Рис. 1. Структура бита данных в сетях CAN.

узел А

|~SYNC SEG

PROP SEG

узел В 1 SYNC SEG I

PHASE_SEGI "I PHASE SEG2 ]

PROP SEG

PHASE SEG1 PHASE SEG2

Рис. 2. Задержка распространения сигнала между узлами.

Для каждого узла сети номинальным началом очередного бита является начало сегмента SYNC_SEG. Для передающих узлов началом нового бита является начало SYNC_SEG. Для принимающего узла начало нового бита ожидается в течение SYNC_SEG. Однако вследствие задержки распространения сигнала по шине данных и задержек в физических интерфейсах начало синхронизирующего сегмента принимающих узлов может иметь задержку относительно синхронизирующего сегмента передающего узла (рис. 2). Реальное время задержки определяется расстоянием между узлами.

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

Когда какой-либо узел производит выборку состояния шины в течении каждого бита, то получаемое значение должно отражать суперпозицию сигналов от всех передатчиков активных в данный момент в сети. Сегмент PROP_SEG служит для задержки выборки узлом состояния шины до тех пор, пока сигнал достигнет всех узлов сети. Из рис. 2 видно, что значение бита, устанавливаемое на шине узлом А, принимается узлом В спустя время tmoPIA в/, а значение бита, устанавливаемое узлом В, принимается узлом А спустя промежуток времени tPR0PIB А1. Причем интервал времени t

prop! в. al

заканчивается

до окончания сегмента PROP_SEG узла А, что дает возможность произвести корректную выборку Данных с шины. Узел В также имеет возможность сделать корректную выборку значения сигнала шины данных, несмотря на то, что момент выборки наступает уже после окончания битового времени узла А. Это возможно благодаря задержке распространения сигналов между узлами А и В.

время tprop,а.в, = tprop(b.a) и может быть определено из следующего соотношения:

'рropia.b) = 'тХ(А) + ^bus/a.b) + 'яxiв) ■ (3)

гле 4x1 а) - задержка передатчика узла А;

'ад A.Bi - задержка сигнала в линии от узла А до В;

'кх/вг задержка приемника узла В.

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

Существует два типа синхронизации в сетях CAN: жесткая синхронизация и ресинхронизация. Жесткая синхронизация выполняется только в начале кадра данных, когда каждый узел выравнивает SYNC_SEG внутреннего битового времени к перепаду с рецессивного на доминантный уровень сигнала на линии в момент передачи бита SOF (начало кад-

ра) . Ресинхронизация выполняется в течение остальной части кадра, когда рецессивный уровень сигнала сменяется на доминантный уровень и эта смена происходит за пределами текущего сегмента SYNC_SEG. Рассмотрим подробнее, как происходит ресинхронизация. Если смена уровня сигнала с рецессивного на доминантный уровень обнаруживается после окончания SYNC_SEG, но до выборки состояния шины данных, то это интерпретируется как поздний фронт сигнала. В этом случае узел пытается синхронизироваться с битовым потоком увеличением длительности сегмента PHASE_SEG1 текущего бита на то значение Т„ , на которое фронт "опоздал" (но в пределах максимального значения коррекции фазовой ошибки SJW [1)). Это приводит к тому, что точка выборки отодвигается на запрограммированное значение относительно обнаруженного фронта.

Если смена уровня сигнала с рецессивного на доминантный уровень произошла после точки выборки состояния шины данных, но до начала сегмента SYNC_SEG следующего бита, это интерпретируется как прием слишком "раннего" бита. Узел при этом пытается ресинхронизироваться путем уменьшения длительности сегмента PHASE_SEG2 текущего бита на то значение Т0 , на которое фронт "пришел" раньше (но в пределах максимального значения коррекции фазовой ошибки SJW). Соответственно, сегмент SYNC_SEG следующего бита начнется немедленно (если значение SJW позволяет полностью скорректировать фазовую ошибку).

Число квантов времени, на которое период бита данных может удлиняться или укорачиваться, называется константой коррекции фазовой ошибки SJW. Данная величина должна быть корректно запрограммирована и не может превышать 4 Т0 . Кроме того, данная константа не может быть больше длительности PHASE_SEG1. Минимальное значение равно 1 Г0.

Для того чтобы уменьшить промежуток времени между соседними фронтами (смена сигнала с рецессивного на доминантный уровень) и, как следствие, улучшить условия для ресинхронизации узлов, протокол CAN использует так называемый стаффинг. Если в битовом потоке обнаруживается подряд пять битов одинакового значения, то в поток принудительно вставляется шестой бит противоположной величины.

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

Допуск на стабильность системной частоты CAN определяется следующим образом:

о

S 2

л. V-fH\ Af = J-

где / - реальная частота тактового сигнала и /н -номинальная тактовая частота.

Для обеспечения эффективного взаимодействия необходимо выполнение как минимум следующего требования: наиболее удаленные узлы с тактовыми частотами, находящимися на противоположных краях допуска на значение тактовой частоты должны корректно принимать каждое сообщение, передаваемыми по сети. Это требование подразумевает, что каждый узел должен корректно принимать каждый бит данных.

Минимальное время для сегмента задержки Р1ЮР_5ЕС определяется следующей формулой:

'ряор — ^ря ор1а,в) + 'рйор(в. А)

(5)

и

— + ^Т* + ¡ру)

Минимальная длина сегмента РЯОР_БЕС в единицах ТО определяется следующим выражением:

РЯОР БЕС = ПОиЫЭ ИР

V 'о

(7)

При этом узлы А и В находятся на противоположных концах сети. С учетом выражения (3) выражение (5) можно переписать в следующем виде:

(6)

где 1ЮиЧЧГО_иР() - функция, возвращающая значение аргумента, округленное вверх до следующего целого числа.

Для случая отсутствия помех прием битового стаффинга [1) обеспечивает максимум 10 битовых периодов между фронтами ресинхронизации (5 доминантных битов, 5 рецессивных битов, 1 доминантный бит). Это наихудший случай для накопления фазовой ошибки при условии безошибочного приема данных. Данная фазовая ошибка может быть скомпенсирована путем ресинхронизации при смене доминантного бита рецессивным. Суммарная фазовая ошибка при этом должна быть меньше программируемой величины БЛШ - константы коррекции фазовой ошибки. Суммарная фазовая ошибка возникает вследствие разницы тактовых частот узлов. Для данного случая можно записать следующее требование, предъявляемое к стабильности частоты опорного генератора:

Точность

требованиям?

Рис. 3. Графическая схема алгоритма расчета временных уставок модулей.

(2xAf)xl0xtmT<tSJW . (8)

Реальные узлы работают в условиях электрических шумов, которые приводят к появлению помех при передаче данных по сети. В случае обнаружения ошибки в сеть передается признак ошибки. В случае локальной ошибки узел, обнаруживший ошибку передает флаг ошибки (в случае Error Active режима [ 1 ] узла этот флаг состоит из 6 доминантных битов). Другие узлы, получившие флаг ошибки, передают их собственные флаги ошибки как эхо-ответ. В случае глобальной ошибки флаг ошибки передается всеми узлами одновременно. Таким образом, каждый узел может различать тип ошибки путем проверки наличия эхо-ответа после передачи собственного флага ошибки. Для этого необходимо, чтобы узел мог корректно распознать первый бит после передачи собственного флага ошибки. Возможна ситуация, когда перед флагом ошибки (6 доминантных бит) передавались также 6 доминантных бит (ошибка бита стаффинга). В таком случае узел должен корректно произвести выборку тринадцатого бита после последней ресинхронизации. Следующее выражение определяет необходимые условия этого:

(2xAf)x(13x tNBT - tPHASESEC2) < <MIN(tPHASE_

SEGi't PHASE _SEG2 ). 0)

Для обеспечения надежной передачи данных оба условия (8) и (9) должны быть соблюдены. Следует заметить, что стабильность тактового генератора CAN узла определяется на относительно небольшом промежутке времени 10xtNar для (8) и 13х{мвг-tPHASE_sec2 Для (9), что имеет значение для систем с фазовой подстройкой частоты, для которых относительная точность уменьшается для малых интервалов времени.

Выбор параметров и настройка работы узлов сети подразумевает принятие во внимание большого числа различных факторов. Так, выбор величины PROP_SEG подразумевает некоторый компромисс между максимальной скоростью .передачи данных и максимальной задержкой сигнала при передаче данных, которая определяется длиной линии и свойствами приемопередатчиков узлов. Максимально достижимая скорость передачи данных также определяется стабильностью и начальной точностью частоты опорных генераторов узлов. Высокая скорость передачи данных достижима лишь на относительно коротких линиях, с использованием быстродействующих драйверов шины и с высокостабильными опорными генераторами. Во многих системах длина линии определяется другими условиями и является наименее изменяемой переменной, что является основным ограничением для увеличения скорости передачи данных. Тем не менее при выборе скорости передачи данных могут приниматься во внимание другие факторы, например, стоимость аппаратного обеспечения системы (драйверы, кварцевые резонаторы и т.д.).

Ниже приведен пошаговый алгоритм расчета настроек узлов. На рис. 3 приведена графическая схема алгоритма.

1. Определяем минимально необходимое время Аля сегмента PROP_SEG. Для этого вычисляем максимальное время задержки физических интерфейсов приемника и передатчика (из документации производителя). Рассчитываем задержку распространения сигнала по линии как произведение дли-

ны кабеля на погонную задержку распространения сигнала для данного типа кабеля (для кабельной линии связи). Используем полученные величины для определения tPROPSEс.

2. Выбираем значение системной частоты CAN сети. Так как системная частота CAN определяется, как правило, как целая часть от тактовой частоты контроллера, то диапазон возможных значений ограничен значениями предварительного делителя контроллера. Системная частота выбирается таким образом, чтобы номинальное битовое время определялось целым числом в диапазоне от 8 до 25 квантов времени Т0.

3. Вычисление длительности PROP_SEG. Из выражения (7) определяется целое число квантов времени, требуемых для формирования PROP_SEG. Если число оказывается большим чем 8, то необходимо выбрать другую, более низкую, системную частоту CAN сети (шаг 2).

4. Определяем длительность сегментов PHASE_SEG1, PHASE_SEG2. Из значения квантов времени, определяемого в шаге 2, вычитаем величину PROP_ SEG, полученную в шаге 3 и 1 Т0 сегмента SYNC_SEG. Если остаток меньше 3, то возвращаемся к шагу 2 и выбираем более высокую системную частоту сети. Если остаток больше 3 и является нечетным числом, то прибавляем 1 Т0 к величине PROP_SEG и пересчитываем. В этом случае остаток делится пополам и величины PHASE_SEG1, PHASE_SEG2 принимаются равными. Если остаток равен 3, то принимаем PHASE_SEG1 = 1 и PHASE_SEG2 = 2. При этом возможна только однократная выборка состояния сигнала на шине данных.

5. Определяем максимальную величину коррекции фазовой ошибки SJW. Данная величина принимается равной минимальному из значений 4 и PHASE_SEG1.

6. Рассчитываем требуемую точность частоты тактового генератора. Из выражений (8) и (9) рассчитываем требуемую точность и стабильность тактового генератора. Если PHASE_SEG1 > 4Г0 , то рекомендуется повторить расчет с шага 2 с большей величиной предварительного делителя, так как это означает уменьшение периода Т0 и снижение требований к источнику тактового сигнала. Напротив, если PHASE_SEG1 < 4Т0 , то рекомендуется повторить расчет с шага 2 с меньшей величиной предварительного делителя (до PROP_SEG = 8). Это также приводит к снижению требований к источнику тактового сигнала. Если предварительный делитель уже равен 1 и все еще требуется очень точный источник опорного сигнала, то единственный выход в данном

Таблица 2 Исходные данные для расчета

Параметр Значение

скорость передачи данных 1 Мбит/сек

длина линии 20 м

погонная задержка в линии 5 нс/м

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

задержка приемопередатчика 150 нс

частота тактового генератора 8 МГц

случае - использование более высокочастотного источника сигнала для опорного генератора.

Ниже приведен пример расчета битовых параметров.

Исходные данные приведены в табл. 2

1. Физическая задержка сигнала в линии

tPROP = 2^5x20 + 150^ = 500 (не)

2. Значение предварительного делителя 1 обеспечивает системную частоту CAN равную 8МГц и время Т0 = 125не . Тогда принимаем битовый интервал, равный 8Г0 . Сегмент задержки

PROP SEG = ROUND UP\—1 = 4

3 PHASE_SEGl = l; PHASE_SEG2 = 2.

4 SJW = PHASE SEG 1 = 1.

5. Из выражения (8) получаем А/ = = 0.00625,

ZU х b

Из выражения (9) имеем ^ ~ 2ЦЗх8-2) =

Требуемая точность частоты опорного генератора принимается равной меньшему значению, таким образом, требуемая точность составляет 0.49%.

Библиографический список

1. Robert Bosch GmbH. CAN Specification. Version 2.0. Postfach 50, D-7000, Stuttgart 1, 1991.

2. Road vehicles - Interchange of digital information - Controller area network (CAN) for high-speed communication. ISO 11898, International Standardization Organization, 1993.

НИГОРОДОВ Юрий Александрович, аспирант ГУП Центр "Транспорт" МПС РФ.

УДК«»-« с.в.нопин

В. Г. ШАХОВ

Омский государственный технический университет

Омский государственный университет путей сообщения

МОДЕЛИРОВАНИЕ ЗАЩИТЫ РЕЧЕВОЙ ИНФОРМАЦИИ С ПОМОЩЬЮ ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА_

В статье рассматривается способ моделирования защиты речи и его реализация на базе программно-аппаратных средств персонального компьютера для использования при передаче речи через сеть Internet/Ethernet.

По прогнозам западных компаний (Frost & Sullivan, Killen & Associates, IDC) объем рынка IP-теле-фонии (Internet Protocol) в среднем будет возрастать на 130-140 % ежегодно. К 2005 году предполагается рост трафика IP-телефонии до 33%, особенно возрастет число звонков на дальние расстояния (около 70% трафика междугородних и международных переговоров) . По данным Frost & Sullivan, в 2003 г. совокупный объем мирового трафика VoIP (Voice IP) составил 75 млрд мин., в 2004 г. он вырастет до 160 млрд мин, а в 2005 г. - до 265 млрд мин. Если в 2000 г. доходы от услуг Интернет-телефонии в мире составили 74 млн долларов, то по прогнозам к 2006 году достигнут почти 40 млрд долл,

Этот рост ставит перед специалистами в области безопасности информационных и телекоммуникационных технологий, в частности IP телефонии, задачу защиты речевой информации передаваемой по цифровым каналам связи, так как в настоящее время при передачи речи через сеть Internet/Ethernet

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

Решение данной проблемы, на наш взгляд, заключается в поиске эффективных алгоритмов защиты оцифрованной речи.

Современные IBM-совместимые компьютеры, как правило, обладают возможностью вводить-выводить звук с помощью стандартной звуковой карты [4]. Оцифровка, преобразование и воспроизведение звука на низком уровне управляется с помощью средств application programming interface (API) операционной системы (ОС) Windows либо другой альтернативной ОС. Современные среды программирования С++ Builder, Delphi, Visual С + +, и др. обладают возможностью использования интерфейса

i Надоели баннеры? Вы всегда можете отключить рекламу.