Способ и устройство для адаптации надежности передачи данных в последовательной шинной системе
Иллюстрации
Показать всеИзобретение относится к технологиям связи. Технический результат заключается в повышении надежности и скорости передачи данных. Способ содержит: два устройства обработки данных, являющихся абонентами шины и обменивающихся по шине сообщениями, причем: посылаемые сообщения имеют логическую структуру, соответствующую стандарту ISO 11898-1 на протокол CAN, указанная логическая структура включает в себя бит начала кадра, поле арбитража, поле управления, поле данных, поле циклического избыточного кода, поле подтверждения и последовательность конца кадра, поле управления включает в себя код длины данных, содержащий информацию о длине поля данных, отличающийся тем, что поле CRC в сообщениях может иметь, в зависимости от значения соотнесенного с ним условия переключения, по меньшей мере два различных числа битов. 4 н. и 24 з.п. ф-лы, 7 ил.
Реферат
Область техники, к которой относится изобретение
Изобретение относится к способу и устройству для адаптации надежности передачи данных между по меньшей мере двумя абонентами в последовательной шинной системе.
Уровень техники
Известен, например, из семейства стандартов ISO 11898-1…-5 протокол сети контроллеров (CAN - сокр. от англ. "Controller Area Network"), а также расширение протокола CAN, называемое синхронизированным по времени, или синхро-временным, протоколом CAN (TTCAN, сокр. англ. "Time-Triggered CAN"), ниже также называемые стандартом на протокол CAN. Используемый протоколом CAN метод управления доступом к среде передачи основан на побитовом арбитраже. При побитовом арбитраже несколько абонентских станций могут одновременно передавать данные по каналу шинной системы, не создавая помех для передачи данных. Кроме того, абонентские станции при передаче бита по каналу могут определять логическое состояние канала (0 или 1). Если значение посланного бита не соответствует определенному логическому состоянию канала, то доступ абонентской станции к каналу прекращается. В случае протокола CAN побитовый арбитраж обычно выполняется на основе идентификатора, содержащегося в передаваемом по каналу сообщении. После того как абонентская станция полностью отправила идентификатор в канал, она знает, что у нее есть право монопольного (исключительного) доступа к каналу. Таким образом, окончание передачи идентификатора соответствует началу временного интервала разрешения доступа, в течение которого абонентская станция может пользоваться каналом монопольно. Согласно протоколу CAN другие абонентские станции не могут обращаться к каналу, т.е. посылать в этот канал данные, до тех пор, пока ведущая передачу абонентская станция не передаст поле контрольной суммы, или циклического избыточного кода (CRC), входящее в структуру сообщения. Таким образом, момент окончания передачи поля CRC соответствует концу временного интервала разрешения доступа.
Соответственно, благодаря побитовому арбитражу (арбитражу на битовом уровне) по каналу передается то сообщение, которое выиграло процедуру арбитража, причем передача сообщений не сопряжена с опасностью потери их целостности (неразрушающая передача). Протоколы CAN особенно хорошо подходят для передачи коротких сообщений в условиях реального времени, причем за счет присвоения сообщениям соответствующих идентификаторов можно гарантировать то, что особо важные сообщения почти всегда будут выигрывать арбитраж и успешно передаваться.
С неуклонно возрастающей степенью объединения оборудования современных транспортных средств сетями передачи данных и с внедрением дополнительных систем, улучшающих эксплуатационные качества транспортных средств, например в плане обеспечения безопасности движения или комфорта водителя и пассажиров, растут требования к передаваемым объемам данных и к допустимым временам задержки при передаче данных. Примерами таких систем являются системы управления динамикой движения, например электронная система поддержания курсовой устойчивости (ESP), системы помощи водителю, например система автоматического регулирования дистанции (САРД), или системы информирования водителя, например система распознавания дорожных знаков (см., например, описания соответствующих систем в Автотехническом справочнике фирмы "Бош" (Bosch Kraftfahrtechnisches Handbuch), 27-oe издание, 2011, изд-во Vieweg + Teubner).
В публикации DE 10311395 A1 описана система, в которой асинхронная последовательная связь в качестве альтернативы может осуществляться посредством асимметричного физического или симметричного физического протокола CAN, за счет чего для асинхронной связи достигается более высокая скорость или безопасность передачи данных.
В публикации DE 102007051657 A1 предлагается осуществлять в выделяемых на исключительной основе временных окнах протокола TTCAN асинхронную быструю передачу данных, не соответствующую протоколу CAN, что позволяет повысить объем передаваемых данных.
В статье G. Cena и A. Valenzano под названием "Overclocking of Controller Area Networks" ("Как повысить тактовую частоту в сетях контроллеров"), Electronics Letters, том 35, №22 (1999), стр.1924, рассматриваются факторы влияния повышения опорной частоты шины в отдельных частях сообщений на достигаемую эффективную скорость передачи данных. Адаптация надежности передачи данных не рассматривается.
Из цитируемых выше публикаций видно, что уровень техники не дает удовлетворительных во всех отношениях результатов.
Раскрытие изобретения
Ниже рассматриваются сущность изобретения и его преимущества, а возможности осуществления изобретения представлены ниже в описании, поясняемом чертежами. Предмет изобретения не ограничивается представленными и рассматриваемыми вариантами его осуществления.
Преимущества изобретения
Настоящее изобретение относится к передаче сообщений, логическая структура которых соответствует стандарту ISO 11898-1 на протокол CAN, в шинной системе, включающей в себя по меньшей мере два устройства обработки данных, являющихся абонентами шины, т.е. участвующих в обмене данными по шине, причем указанная логическая структура включает в себя бит начала кадра, поле арбитража, поле управления, поле данных, поле циклического избыточного кода (CRC), поле подтверждения и последовательность конца кадра, а поле управления включает в себя код длины данных, содержащий информацию о длине поля данных.
Изобретение позволяет, для определенных передаваемых сообщений, использовать для вычисления контрольной суммы измененный полином и передавать поле CRC, которое размером отличается от соответствующего поля, предусмотренного стандартом на протокол CAN, за счет того, что в зависимости от значения соотнесенного условия переключения поле CRC в сообщениях может иметь по меньшей мере два различных числа битов (двоичных разрядов). Это позволяет адаптировать передачу данных, в зависимости от вышеупомянутого условия переключения, к актуальной в каждом случае задаче передачи данных, например к объему передаваемых данных или их значимости с точки зрения безопасности, и таким образом позволяет влиять на надежность передачи данных, или задавать надежность передачи данных. При этом для определения содержимого поля CRC целесообразно использовать, в зависимости от значения соотнесенного с этим полем условия переключения, по меньшей мере два различных порождающих полинома.
В отношении применения предлагаемого в изобретении способа и соответствующих устройств также в обычных сетях CAN целесообразно, чтобы по меньшей мере для одного значения соотнесенного с полем CRC условия переключения число битов в поле CRC и порождающий полином, используемый для определения содержимого поля CRC, соответствовали стандарту ISO 11898-1 на протокол CAN.
В целесообразном варианте осуществления изобретения соответствующие сообщения могут распознаваться по соответствующей метке, находящейся в поле арбитража и/или в поле управления. Благодаря этому принимающие сообщение абоненты могут распознавать модифицированные в соответствии с изобретением сообщения и адаптировать выполняемый ими процесс приема к таким сообщениям. Для этой адаптации также может быть целесообразным использовать содержимое кода длины данных.
В особенно целесообразном варианте осуществления изобретения в начале сообщения параллельно запускают несколько вычислений контрольных сумм и в зависимости от наличия соотнесенного условия переключения и/или от содержимого кода длины данных решают, результат которого из этих вычислений будет использоваться или будет передан в поле CRC. Благодаря этому с сообщениями можно рассылать информацию о том, передается ли сообщение способом, соответствующим стандарту, или способом, модифицированным в соответствии с изобретением, заранее не информируя приемников, т.е. получателей сообщений, об используемом способе. В этом случае контрольные суммы для проверки правильности передачи данных имеются в наличии для обоих способов передачи, что позволяет анализировать любую из этих контрольных сумм по необходимости.
В особенно целесообразном варианте осуществления изобретения за счет обеспечения возможности увеличения поля данных в передаваемом сообщении достигается тот эффект, что, по сравнению с соответствующим стандарту CAN сообщением, одним сообщением можно передать по шине большее количество, или объем, данных. Это выгодно увеличивает отношение объема содержащейся в сообщении информации (полезной информации) к объему служебной информации и тем самым также увеличивает среднюю скорость передачи данных по шинной системе. Комбинация с предлагаемой в изобретении адаптацией поля CRC имеет то преимущество, что надежность обнаружения ошибок сохраняется и для больших объемов передаваемых данных, или может быть адаптирована к такому увеличению объема передаваемых данных.
Благодаря установлению однозначного соотношения между содержимым кода длины данных и длиной поля данных выгодно достигается высокая степень гибкости в отношении отображаемого размера поля данных.
Преимуществом обладает также вариант осуществления изобретения, в котором с обычно используемыми в стандарте на протокол CAN значениями кода длины данных от 0b0001 до 0b1000 соотносят соответствующие стандарту CAN размеры поля данных, т.е. размеры от 1 до 8 байт, а остальные значения кода длины данных используют для других допустимых размеров поля данных вплоть до максимально возможного размера. Это уменьшает затраты на адаптацию прикладного программного обеспечения при переходе на предлагаемый в изобретении способ и позволяет сэкономить на соответствующих издержках.
Использование измененного полинома для вычисления контрольной суммы происходит в зависимости от условия переключения, вследствие чего при наличии условия переключения используется предлагаемый в изобретении способ, а в противном случае передача данных осуществляется в обычном режиме по стандарту на протокол CAN. Также целесообразно, чтобы в зависимости от условия переключения, возможно - того же самого условия переключения равным образом осуществлялись увеличение поля данных и адаптация интерпретации содержимого кода длины данных. Благодаря этому предлагаемые в изобретении устройства могут применяться как в стандартных шинных системах, работающих по протоколу CAN, так и в новых, соответствующих изобретению шинных системах с потенциально большими полями данных.
О наличии, или наступлении, условий переключения приемникам сообщается посредством одной или нескольких меток. В данном случае особенно целесообразно, чтобы по меньшей мере одна из меток была реализована первым маркировочным битом, который находится между последним битом идентификатора и первым битом кода длины данных и в положении которого в сообщениях, соответствующих стандарту ISO 11898-1 на протокол CAN, находится бит с фиксированным значением.
Еще одно преимущество изобретения заключается в том, что при вычислении контрольной суммы в расчет принимаются возможно имеющиеся дополняющие биты (стаф-биты), которые находятся в сообщениях до поля CRC. Это дополнительно улучшает надежность передачи данных, т.е. повышает вероятность обнаружения ошибок при передаче данных.
Если предлагаемый способ скомбинировать с переключением длительности бита, например по меньшей мере для битов поля данных и поля CRC, то достигаемое при этом преимущество будет заключаться в ускоренной передаче большего объема данных по сравнению со скоростью передачи данных в случае ограничения поля данных восемью байтами. Благодаря этому еще более повышается средняя скорость передачи данных в шинной системе. В этом случае целесообразно, чтобы метка, обозначающая сообщения с сокращенной длительностью бита, была реализована другим маркировочным битом, который находится между первым маркировочным битом и первым битом кода длины данных. Благодаря этому переключение длительности бита может осуществляться независимо от переключения вычисления контрольных сумм с помощью кода CRC и размера поля данных, что позволяет гибко реагировать на характеристики и условия работы шинной системы.
Достоинством предлагаемого в изобретении способа является возможность его применения при нормальной эксплуатации транспортного средства для передачи данных между по меньшей мере двумя блоками управления транспортного средства, соединенными подходящей шиной данных. Вместе с тем, предлагаемый в изобретении способ может в равной мере эффективно применяться в процессе производства или технического обслуживания транспортного средства для передачи данных между программатором, соединенным с подходящей шиной данных с целью программирования, и по меньшей мере одним соединенным с этой шиной данных блоком управления транспортного средства. Также предлагаемый в изобретении способ выгоден при его применении в промышленности, когда требуется передавать большие объемы данных, например в целях управления оборудованием. В частности, если в силу протяженности линий передачи данных во время арбитража необходимо применять уменьшенную скорость передачи данных, чтобы все абоненты имели возможность получения доступа к шине, предлагаемый в изобретении способ, в частности в комбинации с переключением длины поля данных и уменьшением длительности бита, позволяет достичь более высокой скорости передачи данных.
Еще одно преимущество предлагаемого способа заключается в том, что контроллер, поддерживающий обычный режим CAN, требует внесения лишь минимальных изменений для того, чтобы он мог работать в соответствии с изобретением. Предлагаемый в изобретении коммуникационный контроллер, способный работать также в обычном режиме CAN, лишь незначительно больше обычного контроллера, поддерживающего обычный режим CAN. Соответствующую прикладную программу изменять не требуется, и даже тогда достигаются преимущества в скорости передачи данных.
Преимуществом является также возможность использования значительных частей теста соответствия CAN (стандарт ISO 16845). В предпочтительном варианте своего осуществления предлагаемый в изобретении способ передачи данных может комбинироваться с дополнениями, предусмотренными протоколом TTCAN (стандарт ISO 11898-4).
Краткое описание чертежей
Ниже подробнее рассматривается осуществление изобретения, поясняемое следующими чертежами.
На фиг.1а показаны две альтернативы соответствующей уровню техники структуры сообщений в формате CAN согласно стандарту ISO 11898-1 на протокол CAN. На фиг.1б показаны две аналогичные альтернативы для формата сообщений, модифицированных в соответствии с изобретением.
На фиг.2 представлены различные возможности того, как содержимое кода длины данных может интерпретироваться в соответствии с изобретением иначе по сравнению со стандартом ISO 11898-1 на протокол CAN.
На фиг.3 схематически представлен пример реализации предусмотренного изобретением процесса приема в абонентской станции шинной системы.
На фиг.4 схематически представлен еще один пример реализации предусмотренного изобретением процесса приема в абонентской станции шинной системы.
На фиг.5 показаны два примера формата модифицированных в соответствии с изобретением сообщений, в которых дополнительно заданных областях в пределах сообщения используются различные значения длительности бита.
Осуществление изобретения
На фиг.1а представлена структура сообщений в том виде, как она используется для передачи данных по шине CAN. Показаны оба различающихся формата сообщений, а именно основной (стандартный) и расширенный форматы. Предлагаемый в изобретении способ применим в равной мере к обоим форматам.
Сообщение начинается битом начала кадра (SOF - сокр. от "Start of Frame"), сигнализирующим о начале сообщения. К этому биту примыкает участок, который служит, в первую очередь, для идентификации сообщения и на основании которого абоненты шинной системы решают, принимать или не принимать это сообщение. Этот участок сообщения называется полем арбитража и содержит идентификатор. Далее следует поле управления (контрольное поле), которое содержит, в том числе, код длины данных. Код длины данных содержит информацию о размере поля данных сообщения. К полю управления примыкает поле данных, содержащее собственно данные, которыми между собой обмениваются абоненты шинной системы. Далее следует поле циклического избыточного кода (CRC) с содержащей 15 битов контрольной суммой и разделителем, а затем - два бита подтверждения (ACK), которые служат для того, чтобы сигнализировать отправителю об успешном приеме сообщения. Завершается сообщение последовательностью конца кадра (EOF - сокр. от "End of Frame").
При осуществлении способа передачи данных по протоколу CAN поле данных может содержать максимум 8 байт, т.е. 64 бит, информации. Код длины данных содержит согласно стандарту четыре бита, т.е. может принимать шестнадцать различных значений. Из этой области значений в современных шинных системах используется лишь восемь различных значений для различных размеров поля данных от 1 до 8 байт. Поле данных размером 0 байт в стандарте на протокол CAN не рекомендуется, а размеры поля данных свыше 8 байт не допускаются. Соотношение значений кода длины данных с размерами поля данных для обычных сообщений по стандарту CAN представлено в таблице на фиг.2, в столбце "обычн. CAN".
На фиг.1б в аналогичном фиг.1а представлении показаны модифицированные сообщения, передаваемые в соответствии с изобретением и построенные, соответственно, на основе двух предусмотренных стандартом форматов.
При осуществлении способа передачи данных, модифицированного в соответствии с изобретением, поле данных уже может содержать более 8 байт, а именно, в рассматриваемом случае, до К байт. В отличие от стандарта CAN, другие значения, принимаемые кодом длины данных, могут использоваться для обозначения больших полей данных. Например, вышеупомянутые четыре бита кода длины данных могут использоваться для представления значений от нуля до 15 байт. Вместе с тем, можно использовать и другие соотношения, например, значение кода длины данных DLC=0b0000, которое в настоящее время в сообщениях CAN обычно не используется, можно использовать для еще одного возможного размера поля данных, например для размера 16 байт. Эти две возможности представлены в приведенной на фиг.2 таблице столбцами DLC 1 и DLC 2. Максимальный размер поля данных К имеет в этих случаях значение 15 и 16 байт, соответственно.
Еще одна возможность заключается в том, чтобы для значений кода длины данных, превышающих 0b1000 и составляющих до 0b1111, соответствующие размеры поля данных прирастали, например, каждый раз на два байта. Этот случай представлен в таблице столбцом DLC 3. Максимальный размер поля данных К достигает в этом варианте значения 24 байт. За счет выбора большего приращения, составляющего, например, четыре байта, можно получить соответственно большие поля данных.
Кроме того, в примере DLC 3 представлена еще одна модификация:
значение DLC=0b0000 используется в этом варианте осуществления изобретения кадрами удаленного запроса. В стандарте на протокол CAN, в отличие от этой модификации, предусмотрено, что кадр удаленного запроса должен отправляться с тем же значением кода DLC, что и соответствующий код в сообщении, посылаемом в ответ на кадр удаленного запроса. Эта модификация гарантирует невозможность посылки кадров удаленного запроса с различными кодами DLC и одинаковым идентификатором, что могло бы приводить к неразрешимым конфликтам (см. стандарт ISO 11898-1, гл. 10.8.8).
В вариантах осуществления предлагаемого в изобретении способа, представленных в таблице на фиг.2 в столбцах DLC 1, DLC 2 и DLC 3, соотношение значений кода длины данных от 0b0001 до 0b1000 и размеров поля данных от 1 до 8 байт соответствует аналогичному соотношению, предусмотренному в стандарте на протокол CAN. Это позволяет простым образом обеспечить совместимость со стандартом на протокол CAN, т.е. рассчитать коммуникационный контроллер таким образом, чтобы в стандартной шинной системе CAN он работал в соответствии со стандартом, а при работе в шинной системе, модифицированной в соответствии с изобретением, допускал в сообщениях большие поля данных. Вместе с тем, может быть составлено и полностью новое соотношение возможных значений кода длины данных с допустимыми размерами поля данных. Пример такого соотношения приведен в столбце DLC 4 таблицы на фиг.2. В этом случае достигнутый максимальный размер К поля данных составляет 30 байт.
Для обеспечения возможности определения таким коммуникационным контроллером того, каким образом он должен интерпретировать содержимое кода длины данных, целесообразно, чтобы он самостоятельно узнавал, осуществляется ли связь в шинной системе по стандарту CAN или согласно предлагаемому в изобретении способу. Одна из возможностей для этого заключается в использовании зарезервированного бита, находящегося внутри поля арбитража или поля управления, для обозначения сообщения меткой, чтобы из этой первой метки K1 коммуникационный контроллер мог вывести первое условие переключения UB1 (т.е. сделать вывод о наличии такого условия переключения), в зависимости от которого он выбирает способ передачи данных. Например, в качестве метки можно использовать второй бит поля управления, обозначенный на фиг.1б как r0.
Установление того или иного способа передачи данных также может выбираться в зависимости от формата идентификатора. Так, в случае основной адресации, т.е. адресации по основному формату сообщений, одной возможностью обозначения соответствующих изобретению сообщений является вставка рецессивного бита увеличенной длины данных (EDL - сокр. от "Extended Data Length") в поле управления в положение бита r0, который в сообщениях, соответствующих стандарту на протокол CAN, всегда доминантен. В случае расширенной адресации, т.е. адресации по расширенному формату, рецессивный бит EDL может занимать в поле управления положение бита r1, всегда доминантного в сообщениях, соответствующих стандарту на протокол CAN.
Другая возможность заключается в использовании бита-заменителя удаленного запроса (SRR), который согласно стандарту на протокол CAN всегда должен посылаться рецессивным, но признается принимающими сообщение абонентами шины и доминантным. Для установления наличия или отсутствия первого условия переключения UB1 могут анализироваться также битовые комбинации.
Еще одна возможность заключается в том, чтобы предписать для модифицированного в соответствии с изобретением способа передачи данных использование расширенного формата сообщений. Сообщения в расширенном формате распознаются абонентами шины по значению бита расширения идентификатора (IDE, см. фиг.1а), и этот бит одновременно может представлять первое условие переключения UB1, так чтобы для сообщений расширенного формата всегда применялся модифицированный способ передачи данных. В качестве альтернативы этому решению, в сообщениях расширенного формата в качестве первой метки K1, или для вывода первого условия переключения UB1 может использоваться зарезервированный бит r1. Вместе с тем, этот зарезервированный бит также можно использовать, как это поясняется ниже, для вывода второго условия переключения UB2, инициирующего переключение между более чем двумя различными размерами поля данных или соотношениями значений кода длины данных с размерами поля данных.
В качестве альтернативы, предлагаемый в изобретении способ может использоваться в подходящих для этого коммуникационных контроллерах, которые даже не рассчитаны на осуществление связи в соответствии со стандартом на протокол CAN. В этом случае можно обходиться и без установления наличия или отсутствия вышеназванного первого условия переключения UB1, например в зависимости от соответствующей метки K1, обозначающей сообщения. Напротив, коммуникационные контроллеры работают в этом случае исключительно согласно одному из описанных способов, и соответственно этому могут применяться только в шинных системах, в которых используются исключительно такие выполненные согласно изобретению коммуникационные контроллеры.
В случае увеличения поля данных сообщений, как это предусмотрено в изобретении, также может быть целесообразным адаптировать используемый метод контроля целостности данных с помощью циклического избыточного кода (CRC), чтобы достичь достаточной устойчивости к ошибкам. В частности, в этом отношении может быть выгодным использовать иной полином CRC, например полином более высокого порядка, и соответственно предусмотреть в модифицированных в соответствии с изобретением сообщениях поле CRC, отличающееся по размеру от предусмотренного стандартом. Это отражено на фиг.16, где показано, что в представленном примере поле CRC в соответствующих изобретению сообщениях имеет длину L бит, причем число L, в отличие от стандарта на протокол CAN, может быть неравным 15, в частности может быть больше 15.
Об использовании модифицированного метода вычисления контрольной суммы CRC абонентам шины можно сигнализировать посредством третьей метки K3, представляющей третье условие переключения UB3. Эта метка K3 и третье условие переключения UB3 также может совпадать с первой меткой K1 и/или первым условием переключения UB1. В этом случае меткой также может служить, например, зарезервированный бит r0, показанный на фиг.1б, или может использоваться бит SRR, как это описано выше. В сочетании с применением способа в сообщениях расширенного формата также возможно использование бита IDE или же бита r1.
В соответствующих стандарту CAN контроллерах код CRC посылаемых сообщений CAN генерируется посредством сдвигового регистра с обратной связью, на вход которого поочередно подаются последовательно посылаемые биты сообщения. Ширина, или разрядность, сдвигового регистра соответствует порядку полинома CRC. Кодирование кодом CRC осуществляется путем логического объединения содержимого регистра с полиномом CRC во время операций сдвига. Соответственно, при приеме сообщений CAN последовательно принимаемые биты сообщения подаются в сдвиговый регистр CRC. Контроль с помощью кода CRC считается успешным, если в конце поля CRC все биты сдвигового регистра имеют значение "ноль". Как генерация кода CRC в случае передачи, так и контроль с помощью кода CRC в случае приема выполняются на аппаратном уровне, не требуя вмешательства в программные средства. Таким образом, модификация кодирования кодом CRC не затрагивает прикладного программного обеспечения.
Согласно установленному стандартом протоколу CAN дополняющие биты (стаф-биты), находящиеся внутри сообщения CAN (см. стандарт ISO 11898-1, гл. 10.5), не включаются в вычисление контрольной суммы CRC (циклической контрольной суммы) или проверку целостности данных с ее помощью (см. стандарт ISO 11898-1, гл. 10.4.2.6: "… битовый поток с учетом битовой последовательности после дестаффинга…"). Следствием этого является то, что в редких случаях в сообщении невозможно обнаружить две битовых ошибки, хотя вообще проверка с помощью кода CRC должна выявлять в сообщении до пяти случайно распределенных битовых ошибок. Это может иметь место в случае обусловленного битовыми ошибками превращения дополняющих битов в биты данных и наоборот (см. Unruh, Mathony и Kaiser: "Error Detection Analysis of Automotive Communication Protocols" (Анализ коммуникационных протоколов, используемых в автомобилестроении, в отношении обнаружения ошибок), SAE International Congress, №900699, Детройт, США, 1990).
При осуществлении модифицированного в соответствии с изобретением способа передачи данных кодирование кодом CRC может быть изменено по сравнению с уровнем техники таким образом, чтобы при вычислении или проверке контрольной суммы CRC учитывались также дополняющие биты, находящиеся внутри сообщения. Это значит, что в данном варианте осуществления изобретения дополняющие биты, относящиеся к полю арбитража, полю управления и полю данных, рассматриваются как часть данных, защищаемых от ошибок путем проверки с помощью циклического избыточного кода. Дополняющие биты в поле CRC при этом отфильтровываются, как и в стандарте на протокол CAN.
В возможном варианте осуществления изобретения коммуникационный контроллер рассчитывают таким образом, чтобы он обладал совместимостью со стандартом на протокол CAN, т.е. чтобы в шинной системе CAN он работал согласно стандарту на соответствующий протокол, а в шинной системе, модифицированной в соответствии с изобретением, он, с одной стороны, допускал в сообщениях большие поля данных, а с другой стороны - обеспечивал адаптированные, или скорректированные, вычисление и проверку контрольной суммы CRC.
Поскольку в начале приема сообщения еще не известно, является ли принимаемое сообщение соответствующим стандарту на протокол CAN или модифицированным в соответствии с изобретением, в предлагаемом в изобретении коммуникационном контроллере реализовано два параллельно работающих сдвиговых регистра CRC. После приема разделителя CRC, когда в приемнике (получателе сообщения) выполняется анализ кода CRC, на основании предусмотренной изобретением третьей метки K3, или третьего условия переключения UB3, например, выведенного из этой метки или из содержимого кода длины данных, можно констатировать, какой способ передачи данных использовался, и тогда анализироваться будет сдвиговый регистр, соответствующий этому способу передачи данных. Третье условие переключения UB3, как это было уже отмечено выше, может совпадать с первым условием переключения UB1, относящимся к размеру поля данных и к интерпретации кода длины данных.
В начале посылки сообщения передатчику (отправителю сообщения), в принципе, уже известно, какой способ должен использоваться для передачи данных. Однако поскольку может случиться так, что арбитраж за доступ к шине будет проигран, и начавшееся сообщение не отправится, а вместо этого будет приниматься другое сообщение, два сдвиговых регистра CRC параллельно включаются и в этом случае.
Описанная реализация двух параллельно работающих сдвиговых регистров CRC делает возможным еще одно усовершенствование: Полином CRC, предусмотренный стандартным протоколом CAN (×15+×14+×10+×8+×7+×4+×3+1), рассчитан на длину сообщений менее 127 битов. Если в сообщениях, передаваемых в соответствии с изобретением, используются более длинные поля данных, то для поддержания надежности передачи целесообразно использовать другой, в частности более длинный, полином CRC. Соответственно этому, сообщения, передаваемые в соответствии с изобретением, получают измененное, в частности более длинное, поле CRC. В процессе работы коммуникационные контроллеры динамически переключаются с одного сдвигового регистра CRC на другой, т.е. между сдвиговым регистром, работающим соответственно стандарту на протокол CAN, и сдвиговым регистром, работающим в соответствии с изобретением, чтобы использовать подходящий в соответствующем случае полином.
Естественно, в зависимости от длины поля данных или требуемой надежности передачи можно использовать, в определенной градации, и более двух сдвиговых регистров, а соответственно - и более двух полиномов CRC. В этом случае необходимо, если требуется сохранить совместимость со стандартом на протокол CAN, адаптировать соответствующую метку и связанное с ней условие переключения. Например, зарезервированным битом r0 или битом SRR, показанным на фиг.1б, может инициироваться наступление первого условия переключения UB1, означающего переключение на более длинные поля данных, например, указанные в столбце DLC 1 таблицы на фиг.2, и на соответствующий второй полином CRC. Для сообщений в расширенном формате дополнительно может быть инициировано наступление второго условия переключения UB2, обозначаемого, например, показанными на фиг.1б зарезервированным битом r1 или битом IDE (вторая метка K2) и означающего переключение на другой набор размеров поля данных, например указанный в столбце DLC 3 таблицы на фиг.2, и третий полином CRC.
Впрочем, возможен также вариант, в котором первое условие переключения UB1, обозначаемое, например, зарезервированным битом r0 или битом SRR, обеспечивает переключение на возможность использования более длинных полей данных и на соответствующую интерпретацию содержимого кода длины данных, и тогда установление наличия третьего условия переключения UB3 и сопутствующий этому выбор полинома CRC, анализируемого для проверки контрольной суммы CRC, производится в зависимости от содержимого кода длины данных. Третье условие переключения UB3, соответственно, также может принимать более двух значений. Например, размеры поля данных могут выбираться в соответствии со столбцом DLC 3 таблицы на фиг.2, т.е. могут принимать значения 0 (для кадров удаленного запроса передачи), 1, …, 8, 10, 12, 14, 16, 18, 20 и 24 байт, и тогда контрольные суммы могут вычисляться параллельно на основании трех полиномов CRC посредством соответствующих сдвиговых регистров, например, на основании соответствующего стандарту полинома CRC - для полей данных размером до 8 байт, второго полинома CRC - для полей данных размером до 16 байт и третьего полинома CRC - для полей данных размером до 24 байт.
На фиг.3 в упрощенном представлении показан фрагмент предлагаемого в изобретении процесса приема сообщения, выполняющегося в абонентской станции шинной системы. Здесь представлен случай обеспечения совместимости со стандартом на протокол CAN, достигаемой за счет того, что поведение коммуникационного контроллера адаптируется, или корректируется, в зависимости от первого условия переключения UB1. Хотя на фиг.3 выбрано представление, обычное для описания процессов выполнения программ, предлагаемый в изобретении способ в равной мере полностью пригоден для его реализации аппаратными средствами.
Абонентская станция сначала находится в состоянии прослушивания шины, пока на шине отсутствует обмен информацией. Таким образом, в состоянии опроса 302 станция ждет прохождения по шине доминантного бита. Этот бит характеризует начало нового сообщения.
Как только обнаружено начало нового сообщения, в блоке 304 начинается вычисление по меньшей мере двух параллельно вычисляемых контрольных сумм. Первая контрольная сумма вычисляется с помощью кода CRC согласно стандарту на протокол CAN, а вторая контрольная сумма вычисляется согласно новому методу. При вычислении второй контрольной суммы в представленном варианте осуществления изобретения в расчет принимаются дополняющие биты, чего не делается при вычислении контрольной суммы по стандарту на протокол CAN. Вместе с тем, аналогично стандарту на протокол CAN, дополняющие биты могут не учитываться и при вычислении второй контрольной суммы.
Затем, начиная с шага 306, принимаются биты сообщения, следующие за битом начала кадра (SOF) и начинающиеся полем арбитража. Если передать сообщение хотят несколько абонентов шины, они при этом соревнуются между собой по методу, известному из стандарта на протокол CAN, за получение доступа к шине. Представленный блок 306 характеризует прием всех битов до приема первой метки K1, или установления наличия первого условия переключения UB1. В приведенных примерах наличие первого условия переключения UB1 устанавливается на основании поля арбитража, например бита SRR или бита IDE, или на основании поля управления, например находящегося в нем зарезервированного бита (см. фиг.1). Затем в блоке 308 могут приниматься и другие биты сообщения, пока с определенного бита сообщения в зависимости от установленного первого условия переключения UB1 процесс приема не пойдет иным образом. Это разветвление процесса на различные методы обеспечивается соответствующим запросом или разветвлением 310, как это для примера показано ниже.
Если при разветвлении 310, например после приема первых двух битов поля управления, имеется информация о том, что согласно первому условию переключения UB1 связь осуществляется по стандарту на протокол CAN (ветвь "1" на фиг.3), на шаге 312 считываются дальнейшие биты поля управления. На основании этих битов согласно стандарту на протокол CAN анализируется код длины данных и затем на шаге 316 принимается соответствующий объем данных, максимум 8 байт, соответственно полю данных. Затем на шаге 320 принимается поле CRC, содержащее 15 битов. Если при разветвлении 324 имеется информация о том, что контрольная сумма CRC, которая была отправлена передатчиком, совпа