УДК 681.325.5-184.4 ЗАЩИТА ИНФОРМАЦИИ В АВТОТРАНСПОРТНЫХ СИСТЕМАХ
СВЯЗИ И МОНИТОРИНГА
В.М.Пестриков1, О.В. Маковецкая-Абрамова2, Г.А. Петров3
Санкт-Петербургский государственный университет сервиса и экономики (СПбГУСЭ), 191015, Санкт-Петербург, ул. Кавалергардская, 7, лит. А
В статье рассматриваются вопросы защиты информации в автотранспортных системах связи с использованием помехоустойчивых кодов. Предлагается алгоритм и структура кодирующих и декодирующих устройств с конвейерной обработкой блоков данных для обнаружения и исправления пакетов ошибок. Обсуждаются задачи системного, структурного и логического этапов проектирования предлагаемых структур.
Ключевые слова: системы связи и мониторинга; конвейерный кодек; помехоустойчивый код; алгоритм кодирования; конвейерная обработка блоков; траектория пакета; потоковые функции.
PROTECTION OF INFORMATION IN TRANSPORT SYSTEMS COMMUNICATION AND MONITORING
V.M. Pestrikov, O.V. Makovetckaia-Abramova, G. A. Petrov
St. -Petersburg state university of service and economy (SPbSUSE), 191015, St.-Petersburg, street Kavalergardsky, 7 The article deals with the protection of information in the motor systems due to the use of error-correcting codes. An algorithm is proposed and the structure of encoders and decoders c pipelining of data blocks for the detection and correction of error bursts. It is discussed the problem of systemic, structural, and logical design stages of the proposed structures.
Keywords: Сommunication and monitoring; pipelined codec; error-correcting codes ; encoding algorithm; pipelined processing units, the trajectory of the package; streaming function.
Введение
В последние годы в автотранспортные средства интенсивно внедряются различные спутниковые системы связи и мониторинга. Подобные системы позволяют обеспечить такие функции, как: контроль за перемещением автомобилей, дистанционный мониторинг скорости и других важных параметров автомобиля, мониторинг доставки грузов, дистанционная охрана различных объектов, мониторинг времени работы и простоя автомобилей, дистанционная связь с водителем и многие другие. Современные цифровые системы передачи информации, такие как спутниковая, мобильная связь и другие используют беспроводные каналы, которые подвержены воздействию помех различной физической природы. Это приводит к тому, что принятые данные с достаточно высокой вероятностью будут содержать ошибки. В то же время для многих практических применений допустима ограниченная доля ошибок в обрабатываемых дискретных сообщениях. В результате возникает проблема обеспечения надежной передачи цифровой информации по каналам с шумами.
В системах передачи информации возможен ряд стратегий борьбы с ошибками, воз-
никающими при передаче данных по каналам связи с различными помехами:
• обнаружение ошибок в блоках данных и автоматический запрос повторной передачи повреждённых блоков;
• обнаружение ошибок в блоках данных и отбрасывание повреждённых блоков - подход, применяемый в ряде случаев в потоковых мультимедийных системах, в которых отсутствует время на повторную передачу;
• исправление ошибок на физическом уровне с использованием помехоустойчивых кодов.
В статье рассматриваются вопросы защиты информации в автотранспортных системах связи и мониторинга с использованием помехоустойчивых (корректирующих) кодов для обнаружения и исправления как одиночных, так и групповых ошибок. Корректирующие коды применяются также во многих системах цифровой связи: передача данных по телефонным каналам, в системах хранения и передачи информации, в модемах и жестких дисках, при передаче данных по сетям "!Мах, в оптических линиях связи.
Предлагается алгоритм и структура кодирующих и декодирующих устройств с конвейерной обработкой блоков данных для обна-
ружения и исправления пакетов ошибок, рассматриваются организация и проектирование микропроцессорных конвейерных структур помехоустойчивого кодирования информации для защиты передаваемых данных. Основы организации и проектирования микропроцессорных кодирующих и декодирующих устройств с обнаружением и исправлением ошибок для систем передачи информации рассмотрены в работах [1,2,3].
Организация параллельных кодеков с конвейерной обработкой блоков информации позволяет значительно повысить их производительность. Конвейерные кодеки (ККД) имеют следующие преимущества:
• простота оценки производительности и монотонный характер ее зависимости от числа процессоров;
• функциональная однородность системы и простота ее реконфигурации;
• неисправные процессоры легко исключаются из системы, а восстановление задачи сводится к возврату к контрольной точке программы;
• отсутствие централизованной управляющей программы, тупиковых ситуаций, а также проблем обмена данными.
Организация конвейерных кодеков
Для организации конвейерных кодеков, например для кода Рида-Соломона (РС), необходимо представить функцию декодирования в виде следующих потоковых функций [2]:
/ (х) = / (/ (/3,4,5 (Л, (/8 )/, (X)))))), (1)
где:
/9(х) = Яв(х)[и(х)] = £(х), обозначим [Р2'(х)];
/8 (х) = (/9 (х)) = , х = а7, 7 = 1,..., 2?, [ ^ (х)];
/, (х) = /, (/ (х) = Л( х), ха7,7 = 1,...,2?, [ ^ (х);
/б (х) = /б (/, (х)) = ^( х), 7 = 1,..., 2?[ ^ (х)];
/5 (х) = /5 (/, (х)) = Л(а7), 7 = 1,..., п, [ ^ (х);
/, (х) = /4 (/, (х)) = Л' (х1), х = а1,
7 = 1,...2?, I = 1,..., ?[^)
/3 (х) = /з (/б (х)) = ^( х1), х = а7,
7 = 1,...,2?, I = 1,..., ?[ ^];
/2 (х) = /2(/3( х)),[/61];
/1( х)=/1( /2( х)),[ *?].
Каждая подфункция (1) в качестве входных данных использует результаты вычислений предыдущей подфункции, первоначальная подфункция f9(x) работает с входным набором данных принятого кодового блока и(х).Представление структурированных про-
грамм декодирования в виде потоковой функции осуществляется следующим образом. Пусть Ф(х) - множество команд в F(х) от первой до некоторой промежуточной команды, у(х) - множество команд от первой после Ф( х) до последней включительно, и если команды расположены в порядке выполнения, то:
F (х) = У(Ф( х).
В ККД набор данных представляется в виде пакета (i, х), где: х - блок данных; i - номер ступени, равный индексу подфункции.
После i-й ступени (i, х) пакет преобразуется в новый пакет ((i-1), ^(х)). (9, х) и (0, Дх)) обозначают соответственно входной и выходной пакеты системы в выражении (1). Схема j-го элемента конвейерного кодека приведена на рис. 1,а, на котором П;- - процессор, БД -буфер данных типа FIFO. Каждый процессор может выполнять любую подфункцию в потоковой функции Дх), для чего в его памяти хранятся соответствующие программы. Состояние буфера для j-го пакета определяется следующим образом: если qi = 1, то осуществляется пропуск пакета, а при qi =0 выполняется его обработка.
Алгоритм функционирования процессорного модуля представлен на рис. 1,б.
Управляющая программа процессора считывает входной пакет ступени, анализирует состояние пакета qj , и если qj =1, то производится пропуск пакета, т. е. пакет без изменения записывается в буфер, а процессор считывает новый пакет. Если qj = 0 или данный процессор последний, то производится обработка пакета по программе j-й ступени. При этом j уменьшается на 1, результат обработки записывается в буфер и цикл работы повторяется.
Для оценки производительности конвейерных кодеков представим возможные траектории при движении пакета (рис. 2).
Фаза обработки в процессоре соответствует перемещению пакета по вертикали до ближайшего элемента, фаза пропуска - перемещению по горизонтали. Обозначим через т0 -среднее время выполнения программы в одной ступени конвейерного кодека, ть -среднее время ввода (вывода) пакета; ю - среднее время анализа условий. Пакет перемещается по вертикали через у ступеней обработки, на что требуется время у(т0 + ю), и по горизонтали через z процессоров за время z(xb + ю) и zxb соответственно для ввода и вывода информации. Полное время tm перемещения пакета по некоторой траектории определяется следующим выражением:
tm = Z(2tB +W) +У(Т0 +W).
Время, затраченное процессорами за период Т для обработки пакетов определяется выражением:
Т = Ы[ г(2тв + Ю+у(т0 + Ю)].
(2)
Рисунокі. Конвейерный кодек: а) структурная схема; б) алгоритм функционирования процессора
У р (То +Ю)
ч(п,х)
Пропуск
(п,х)
(п-1,й.(х))
(п-2,й-1(й(х))
• • • •
(0Дх))
п1 п2 п3 пг
(0Дх))
Рисунок 2.Траектория движения пакета в конвейерном кодеке
Выражение (2) справедливо, если ни один из процессоров не простаивает из-за ожидания входной информации. Для таких систем производительность Р измеряется в пакетах в единицу времени и ее можно определить следующим образом:
Р = — =------------1---------. (3)
Т (2тв +ю+у(т0 +ю)
Определим время отклика системы 1;с как средний интервал от входа пакета в систему до его выхода из нее:
?с = — [ г(2Тв +Ю) + у (То +Ю), (4)
где —' - среднее число пакетов, хранящихся в буферах ККД при д= 0. Из (4) следует, что с ростом числа процессоров время отклика также увеличивается. Из (3) определим число процессоров, необходимых для обеспечения заданной производительности Р:
1
1 - р(2тЬ + ю)
Для оценки производительности и времени отклика конвейерного кодека рассмотрена задача декодирования кода РС. Конвейерный кодек кода РС обрабатывает информацию в виде пакетов, которые могут быть обработаны или пропущены различными процессорами ступеней конвейера в зависимости от наличия ошибок в принятом кодом блоке. Для организации кодека сформируем формат пакета, передаваемого через все ступени конвейера (см. рис. 3). Пакет В включает поле 1 для хранения п символов принятого кодового блока У(х), поле 2 для вектора ошибок е(х), поле 3 для 2і символов синдромов, поле 4 для хранения X значений локаторов ошибок и поле 5 для хранения символа д, определяющего состояние пакета. При этом, если д= 0, пакет проходит через ступень с обработкой, в противном случае пакет проходит без обработки.
Структурная схема конвейерного кодека, реализующего код РС, приведена на рис.4. Кодек состоит из шести процессорных ступеней (П1-П6) и функционирует следующим образом. Принятый вектор кодового блока У(х) записывается в поле 1 входного пакета 1 первой ступени конвейера, а остальные поля пакета пустые.
(4) 1,2,...,1
т
Рисунок 3. Формат пакета
Процессор П1 выполняет вычисление синдромного полинома S(x), т. е. реализует функцию деления полиномов с недвоичными коэффициентами ^'2 и также проверяет значение S(x) на нуль. Если S(x)= 0, т. е. если в принятом векторе У(х) нет ошибок, то процессор П1 устанавливает q в 1 и пакет проходит через все ступени без обработки. Если S(x) Ф 0, то П1
устанавливает q своего выходного пакета в 0. При этом в поле 3 пакета записываются 2/1 коэффициентов синдромного полинома S(x). П2 ведет обработку входного пакета при q = 0 и вычисляет синдромы Sj, ]=1,...2 в соответствии с функцией ^%, а также вычисляет отношение Sj/Sj+1 , 7=1,... ,2М.
У(х) п П1 п П2
П6
12 6 7
Рисунок 4. Структурная схема конвейерного кодека
Если это отношение для всех синдромов постоянно, то процессор П2 исправляет единичный пакет ошибок и устанавливает д своего выходного пакета в 1. При этом исправленный блок записывается в поле 1 пакета 3, а в поле 3 помещаются 21 значений синдромов. Если отношение Sj/Sj+l для7=1,...,21>1 не постоянно, то процессор П2 устанавливает д своего выходного пакета в 0. Тогда ПЗ ведет обработку пакета 3 и вычисляет функции Оф) и Л^), их коэффициенты записываются в поле 3 пакета 4, ПЗ устанавливает q пакета 4 в 0. Необходимо отметить, что если q пакета 3 равно 0, то это значение сохраняется до выхода пакета из системы. П4 вычисляет локаторы ошибок хе, е = 1, ..., ^ по процедуре Ченя (выполнение функции ^%), помещает значения хе в поле 4 пакета 5 и в поле 3 помещает (¿+1)/2 коэффициентов полинома производной Л'(х) от Л^) вместо коэффициентов Л(х); коэффициенты О(х) сохраняют свои места в пакете 3. В позициях поля 2 пакета 5, где произошли ошибки, ставятся единицы. Процессор П5 вычисляет значения Л'(х) и О(х) при х=хе, е=1,...,1, и X значений ошибок и помещает их в единичных позициях поля 2, в результате чего формируется пакет 6. Процессор П6 выполняет сложение по модулю два двух векторов (массивов) У(х) и е(х) и передает исправленный блок в поле 1 пакета 7. Каждый из шести процессоров кодека может выполнять программу декодирования кода РС от начала до конца, что важно для повышения живучести системы.
В табл. 1 приведен процент вычислений, выполняемых ступенями кодека. Из таблицы следует, что отсутствует сбалансированность по времени загрузки каждой из шести ступеней, поэтому можно объединить ступени (2, 3) и (4, 5, 6). Таким образом, время обработки в 3-й ступени будет определять производительность системы в целом, а кодек будет состоять из трех процессоров. При введении признака одной ошибки в У(х) процессор ступеней (2, 3)
частично обрабатывает пакет, в этом случае следует разделить эти ступени, и кодек будет состоять из четырех процессоров.
Основные этапы проектирования кодеков. Из анализа разработок кодеков можно сделать следующие выводы:
• наиболее важным и определяющим этапом при разработке кодеков является этап системного проектирования;
• широкий диапазон требований, предъявляемый к кодекам при их проектировании, делает в настоящее время практически неразрешимой задачу выбора оптимальной структуры кодека. Генерация вариантов структур кодеков остается пока монополией высококвалифицированного разработчика, и процесс проектирования достаточно сложных кодеков базируется в основном на эвристических методах;
• быстрый прогресс в технологии производства интегральных схем делает актуальной разработку методов распараллеливания и конвейеризации функций кодеков и построение функционально-распределенных кодеков.
Рассмотренные в литературе методики разработки вычислительных и управляющих систем для проектирования кодеков не позволяют учитывать специфику реализуемых задач. Важной является задача обобщения полученных результатов и представление их в виде последовательности основных этапов проектирования циклических кодеков. На рассматривае-
Т аблица 1. Процент выполняемых вычислений ступенями кодека
Номер ступени Процент выполняемых вычислений
1 33
2 9
3 18
4 37
5 2
6 1
мых этапах проектирования решаются задачи системного, структурного и логического проектирования.
Системный этап проектирования
На системном этапе анализируются требования к кодеку, которые задаются техническим заданием и включают:
• скорость передачи информации в канале;
• тип и число ошибок (одиночные, многократные одиночные, одиночные пакеты);
• длину кодового блока;
• вероятность ошибочного декодирования бита (не выше 10-9), повторение передачи не разрешается; отказ от декодирования и неправильное декодирование равноценны;
• необходимость работы в непрерывном режиме в темпе поступления информации из канала, однако иногда допускается постоянная задержка до десятков длин блоков.
В качестве критерия сравнительной оценки структур кодека выбираем требуемые скорости приема и передачи информации. Исходя из типа ошибок, выбирается корректирующий код из набора кодов, разработанных в теории кодирования. После выбора кода определяются его параметры - длина кода п, избыточность т, порождающий полином g(х).
Логический этап проектирования. На
логическом этапе определяются особенности алгоритмов, реализуемых кодеком, и осуществляется их анализ и разработка. Алгоритмы кодирования и декодирования циклических кодов имеют ряд особенностей:
• работа в режиме реального времени;
• выполнение алгебраических операций в полях Галуа;
• представление информации в виде множества блоков, каждый из которых обрабатывается по одному и тому же алгоритму;
• различные времена обработки блоков в зависимости от отсутствия ошибок, наличия одной или более ошибок.
Разработка алгоритмов осуществляется на основе выделенных микроопераций, таких как сдвиг массива на один разряд или символ, умножение элементов в ОБ(2ц), сложение по модулю два двух массивов, вычисление обрат-
ного элемента в ОБ(2ц), сброс и установка 1-го разряда регистра. На этом этапе определяется полный набор функций кодеков циклических кодов и их декомпозиция.
Структурный этап проектирования
На структурном этапе проектирования кодеков реализуются алгоритмы выполнения функций, определенных на предыдущем этапе и отвечающих требованиям по быстродействию.
В качестве исходного варианта структуры, реализующей алгоритм выполнения функций кодеков, выбирается микропроцессорный кодек, который включает МП, входной и выходной регистры, ЗУ. Для этого выполняются следующие шаги:
• разработка функционально-временной диаграммы при реализации алгоритмов кодека;
• выбор типа МП по критериям, определяемым техническим заданием;
• разработка и отладка программ для МП кодека.
Если МП кодек не удовлетворяет техническому заданию по быстродействию, необходимо использовать методы распараллеливания и конвейеризации алгоритмов и переходить к организации параллельных кодеков. Когда параллельные кодеки на основе серийных МП не обеспечивают требуемое быстродействие, то осуществляется переход к организации структур с функциональными расширителями. Выделение аппаратно-реализуемых функций выполняется в соответствии с рекомендациями в [2]. Дальнейшее повышение быстродействия кодека связано с реализацией максимального параллелизма функции при обработке блока и использованием матричных структур.
Литература
1. Кларк Дж., Кейн Дж. Кодирование с исправлением ошибок в системах цифровой связи: -М.: Радио и связь, 1987. - 392 с.
2. Микропроцессорные кодеры и декодеры/ В.М. Муттер, Г.А.Петров, В.И. Маринкин, В.С. Степанов. - М.:Радио и связь, - 1991. - 184 с.
3. А.С.1134948 СССР. Матричное вычислительное устройство/ Г.А.Петров и др. -
Опубл.1985 Бюлл.№2.
1Пестриков Виктор Михайлович — доктор технических наук, профессор кафедры «Информатика» СПбГУСЭ, тел.+79618059178, e-mail: [email protected];
2Маковецкая-Абрамова Ольга Валентиновна — кандидат технических наук, доцент кафедры «Технология обслуживания транспортных средств» СПбГУСЭ, тел. +79215569306, e-mail: [email protected];
3Петров Геннадий Алексеевич — кандидат технических наук, доцент, профессор кафедры «Информатика» СПбГУСЭ, тел. +79062564666, e-mail: [email protected].