Способ и устройство для последовательной передачи данных с гибким размером сообщений и переменной длительностью бита
Иллюстрации
Показать всеИзобретение относится к технологиям сетевой связи. Технический результат заключается в повышении скорости передачи данных. В способе при наличии первой метки (EDL) поле управления в сообщениях содержит, в отличие от стандарта ISO 11898-1 на протокол CAN, более шести битов, при наличии первой метки (EDL) поле данных в сообщениях может содержать, в отличие от стандарта ISO 11898-1 на протокол CAN, более восьми байт, причем для установления размера поля данных значения четырех битов кода длины данных интерпретируют, по меньшей мере, частично, иначе по сравнению со стандартом ISO 11898-1 на протокол CAN, при наличии второй метки (BRS) длительность бита по меньшей мере для одной заданной или задаваемой области в пределах сообщения принимает значение, уменьшенное по сравнению с длительностью бита, используемой до появления второй метки, причем указанная область начинается не ранее чем со второй меткой и заканчивается не позднее чем с разделителем циклического избыточного кода (CRC), и вторая метка (BRS) появляется только при наличии первой метки (EDL) и реализована в сообщениях в поле управления, содержащем, в отличие от стандарта ISO 11898-1 на протокол CAN, более шести битов. 4 н. 13 з.п. ф-лы, 5 ил.
Реферат
Область техники, к которой относится изобретение
Настоящее изобретение относится к способу и устройству для последовательной передачи данных между по меньшей мере двумя абонентами в последовательной шинной системе.
Уровень техники
Известен, например, из семейства стандартов 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-ое издание, 2011, изд-во Vieweg+Teubner).
В публикации DE 10311395 A1 описана система, в которой асинхронная последовательная связь в качестве альтернативы может осуществляться посредством асимметричного физического или симметричного физического протокола CAN, за счет чего для асинхронной связи достигается более высокая скорость или безопасность передачи данных.
В публикации DE 102007051657 A1 предлагается осуществлять в выделяемых на исключительной основе временных окнах протокола TTCAN асинхронную быструю передачу данных, не соответствующую протоколу CAN, что позволяет повысить объем передаваемых данных.
В статье G. Сепа и A. Valenzano под названием "Overclocking of Controller Area Networks" ("Как повысить тактовую частоту в сетях контроллеров"), Electronics Letters, том 35, №22 (1999), стр. 1924, рассматриваются факторы влияния повышения опорной частоты шины в отдельных частях сообщений на достигаемую эффективную скорость передачи данных.
Из цитируемых выше публикаций видно, что уровень техники не дает удовлетворительных во всех отношениях результатов.
Раскрытие изобретения
Ниже рассматриваются сущность изобретения и его преимущества, а возможности осуществления изобретения представлены ниже в описании, поясняемом чертежами. Предмет изобретения не ограничивается представленными и рассматриваемыми вариантами его осуществления.
Преимущества изобретения
В настоящем изобретении предлагается способ последовательной передачи данных в шинной системе, включающей в себя по меньшей мере два абонента шины (узла шины), обменивающихся по шине сообщениями, причем посылаемые сообщения имеют логическую структуру, соответствующую стандарту ISO 11898-1 на протокол CAN. Это означает, что сообщения, которые передают данные, т.е. информационные сообщения состоят из проходящего первым одиночного бита начала кадра и последовательности полей, содержащих по несколько битов, а именно поля арбитража, поля управления, поля данных, поля циклического избыточного кода (CRC), поля подтверждения и поля конца кадра.
Предлагаемый в изобретении способ отличается тем, что при наличии первой метки поле управления в сообщениях содержит, в отличие от стандарта ISO 11898-1 на протокол CAN, более шести битов, а поле данных в сообщениях может содержать, в отличие от стандарта ISO 11898-1 на протокол CAN, более восьми байт, причем для установления размера поля данных значения четырех битов кода длины данных интерпретируют, по меньшей мере, частично, иначе по сравнению со стандартом ISO 11898-1 на протокол CAN. Кроме того, при наличии второй метки длительность бита по меньшей мере для одной заданной или задаваемой области в пределах сообщения принимает значение, уменьшенное по сравнению с длительностью бита, используемой до появления второй метки, причем указанная область начинается не ранее чем со второй меткой и заканчивается не позднее чем с разделителем CRC, и вторая метка появляется только при наличии первой метки и реализована в сообщениях в поле управления, содержащем, в отличие от стандарта ISO 11898-1 на протокол CAN, более шести битов. По сравнению с известными из уровня техники способами это дает то преимущество, что благодаря двухэтапному переключению, т.е., с одной стороны, переключению между значениями размера поля данных, а с другой стороны - переключению между значениями длительности бита в частях сообщения, осуществляемым посредством соответствующих отдельных меток, преимущества этих двух мероприятий также можно, по возможности, использовать в отдельности. Например, даже в случае, если по причинам, связанным с топологией шины, переключение на меньшую длительность бита невозможно, изобретение позволяет и далее пересылать сообщения с более высоким объемом данных. Кроме того, при появлении ошибок в сообщениях с сокращенной длительностью бита сначала можно переключиться на нормальную длительность бита, не жертвуя преимуществами увеличения области данных.
Особенно целесообразной является реализация первой метки (EDL) рецессивным битом в поле управления, поскольку там имеются биты, которые в обычных сообщениях по стандарту на протокол CAN всегда передаются доминантными. Кроме того, фронт между рецессивной меткой и последующим доминантным битом может использоваться для целей синхронизации, если, как это предусмотрено в целесообразном варианте осуществления изобретения, за рецессивным битом первой метки (EDL) во всех информационных сообщениях следует по меньшей мере один доминантный бит.
Далее, для целей маркировки и синхронизации целесообразно, чтобы вторая метка (BRS) также была реализована рецессивным битом в поле управления, передаваемым во времени после бита первой метки (EDL), в частности, если этот рецессивный бит отделен от рецессивного бита первой метки по меньшей мере одним доминантным битом.
При наличии первой метки фронт между рецессивным битом первой метки и по меньшей мере одним следующим за ним доминантным битом можно выгодно использовать для ресинхронизации или жесткой синхронизации битового хронирования (структуры битового интервала) абонентов шины, что повышает надежность передачи данных и ее устойчивость к ошибкам, в особенности при последующем переключении длительности бита.
Также целесообразно, чтобы в зависимости от значения первого условия переключения каждая из возможных комбинаций значений четырех битов кода длины данных была соотнесена с одним из допустимых размеров поля данных. Этим создается понятная и гибкая возможность использования множества различных размеров поля данных.
В целесообразном варианте осуществления изобретения первую метку оценивают в абонентах шины и в зависимости от первой метки адаптируют процесс приема сообщения к размеру поля данных и последующих составных частей сообщения, в частности поля CRC. При наличии первой метки в абонентах шины также оценивают вторую метку и в зависимости от значения второй метки адаптируют процесс приема сообщения к различным значениям длительности бита внутри сообщения. Благодаря этому в случае возникновения ошибок передачи поддерживается высокая вероятность обнаружения ошибок, свойственная шине CAN, поскольку все абоненты шины могут проверять в зависимости от метки соблюдение заданных протоколом условий и значений.
В предпочтительном варианте осуществления изобретения, обеспечивающем минимизацию затрат на его реализацию, по меньшей мере два различных значения длительности бита внутри сообщения реализуют в процессе работы путем использования по меньшей мере двух различных коэффициентов масштабирования или предделителей для установки шинной единицы (кванта) времени по отношению к наименьшей единице времени или к такту опорного генератора.
При наличии другой, т.е. дополнительной метки, которая может совпадать с первой меткой (EDL), поле CRC в сообщениях может иметь число битов, отличное от предусмотренного стандартом ISO 11898-1 на протокол CAN, и/или может использоваться по меньшей мере один порождающий полином, отличающийся от стандарта ISO 11898-1 на протокол CAN, благодаря чему требуемая вероятность обнаружения ошибок достигается и в случае передачи больших по размеру полей данных. Значение этой другой метки также определяют в абонентах шины и в зависимости от него и/или от содержимого кода длины данных адаптируют процесс приема сообщения к размеру поля CRC.
Особенно целесообразно параллельно запускать в начале соответствующего изобретению сообщения вычисление по меньшей мере двух контрольных сумм CRC посредством различных порождающих полиномов и лишь тогда, когда на основании соответствующей метки установлено, который из методов проверки контрольной суммы CRC подлежит применению для передачи сообщения, решать, результат которого из параллельно запущенных вычислений контрольных сумм CRC будет использоваться.
Достоинством предлагаемого в изобретении способа является возможность его применения при нормальной эксплуатации транспортного средства для передачи данных между по меньшей мере двумя блоками управления транспортного средства, соединенными подходящей шиной данных. Вместе с тем, предлагаемый в изобретении способ может в равной мере эффективно применяться в процессе производства или технического обслуживания транспортного средства для передачи данных между программатором, соединенным с подходящей шиной данных с целью программирования, и по меньшей мере одним соединенным с этой шиной данных блоком управления транспортного средства.
Еще одно преимущество предлагаемого способа заключается в том, что контроллер, поддерживающий обычный режим CAN, требует внесения лишь минимальных изменений для того, чтобы он мог работать в соответствии с изобретением. Предлагаемый в изобретении коммуникационный контроллер, способный работать также в обычном режиме CAN, лишь незначительно больше обычного контроллера, поддерживающего обычный режим CAN.
Соответствующую прикладную программу изменять не требуется и даже тогда достигаются преимущества в скорости передачи данных.
Преимуществом является также возможность использования значительных частей теста соответствия CAN (стандарт ISO 16845). В предпочтительном варианте своего осуществления предлагаемый в изобретении способ передачи данных может комбинироваться с дополнениями, предусмотренными протоколом TTCAN (стандарт ISO 11898-4).
Краткое описание чертежей
Ниже подробнее рассматривается осуществление изобретения, поясняемое следующими чертежами:
На фиг. 1a показаны две альтернативы структуры информационных сообщений, соответствующие стандарту ISO 11898-1 на протокол CAN, а именно сообщений в основном и расширенном форматах CAN.
На фиг. 1б показано два примера формата сообщений, модифицированных в соответствии с изобретением по сравнению с фиг. 1а для применения в режиме удлиненных сообщений CAN ("CAN FD Long"), с измененным полем управления и гибким размером поля данных и поля CRC. Представлены как модификация сообщения CAN в основном формате, так и модификация сообщения CAN в расширенном формате.
На фиг. 2 представлены различные возможности того как содержимое кода длины данных может интерпретироваться в соответствии с изобретением иначе по сравнению со стандартом ISO 11898-1 на протокол CAN.
На фиг. 3 схематически представлен пример реализации процесса приема сообщения в абонентской станции, работающей в шинной системе в режиме удлиненных сообщений CAN с гибкой скоростью передачи данных ("CAN FD Long").
На фиг. 4 показано еще два примера сообщений, которые в соответствии с изобретением модифицированы для применения в быстром режиме CAN с гибкой скоростью передачи данных ("CAN FD Fast") и в которых по сравнению с фиг. 1б в пределах сообщения дополнительно заданы области, в которых в соответствии с изобретением используется иная длительность бита.
На фиг. 5 схематически представлен пример реализации предусмотренного изобретением процесса приема в абонентской станции, работающей в шинной системе в быстром режиме CAN с гибкой скоростью передачи данных ("CAN FD Fast").
Осуществление изобретения
На фиг. 1a представлена структура сообщений в том виде, как она используется для передачи данных по шине CAN. Показаны оба различающихся формата сообщений, а именно основной (стандартный) и расширенный форматы. Предлагаемый в изобретении способ применим в соответствующих вариантах его осуществлени к обоим форматам.
Сообщение начинается битом начала кадра (SOF - сокр. от "Start of Frame"), также называемым стартовым битом и сигнализирующим о начале сообщения. К этому биту примыкает участок, который служит, в первую очередь, для идентификации сообщения и на основании которого абоненты шинной системы решают, принимать или не принимать это сообщение. Этот участок сообщения называется полем арбитража и содержит идентификатор. Далее следует поле управления (контрольное поле), которое содержит в том числе код длины данных. Код длины данных содержит информацию о размере поля данных сообщения. К полю управления примыкает поле данных, содержащее собственно данные, которыми между собой обмениваются абоненты шинной системы. Далее следует поле циклического избыточного кода (CRC) с содержащей 15 битов контрольной суммой и разделителем, а затем - два бита подтверждения (АСК), которые служат для того, чтобы сигнализировать отправителю об успешном приеме сообщения. Завершается сообщение последовательностью конца кадра (EOF - сокр. от "End of Frame").
При осуществлении способа передачи данных по протоколу CAN поле данных может содержать максимум 8 байт, т.е. 64 бит информации. Код длины данных содержит согласно стандарту четыре бита, т.е. может принимать шестнадцать различных значений. Из этой области значений в современных шинных системах используется лишь восемь различных значений для различных размеров поля данных от 1 до 8 байт. Поле данных размером 0 байт в стандарте на протокол CAN не рекомендуется, а размеры поля данных свыше 8 байт не допускаются. Соотношение значений кода длины данных с размерами поля данных для обычных сообщений по стандарту на протокол CAN представлено в таблице на фиг. 2, в столбце "обычн. CAN".
На фиг. 1б в аналогичном фиг. 1а представлении показаны модифицированные сообщения, передаваемые в соответствии с изобретением и построенные соответственно на основе двух предусмотренных стандартом форматов. Они отличаются от показанных на фиг. 1а сообщений, соответствующих стандарту, тем, что в поле управления включены некоторые дополнительные биты, которые обозначены как EDL, BRS, ESI и назначение которых поясняется ниже. Кроме того, соответствующие изобретению сообщения отличаются переменным размером поля данных и поля CRC. Поэтому такие сообщения называются удлиненными сообщениями CAN с гибкой скоростью передачи данных ("CAN FD Long").
При осуществлении способа передачи данных, модифицированного в соответствии с изобретением, поле данных может содержать уже более 8 байт, а именно в рассматриваемом случае до К байт. В отличие от стандарта CAN другие значения, принимаемые кодом длины данных, используются для обозначения больших полей данных. Например, вышеупомянутые четыре бита кода длины данных могут использоваться для представления значений от нуля до 15 байт. Вместе с тем, можно использовать и другие соотношения, например значение кода длины данных DLC=0b0000, которое в настоящее время в сообщениях CAN обычно не используется, можно использовать для еще одного возможного размера поля данных, например для размера 16 байт.
Эти две возможности представлены в приведенной на фиг. 2 таблице столбцами DLC 1 и DLC 2. Максимальный размер поля данных К имеет в этих случаях значение 15 и 16 байт соответственно. Еще одна возможность заключается в том, чтобы для значений кода длины данных, превышающих 0b1000 и составляющих до 0b1111, соответствующие размеры поля данных увеличивались с большим приращением (инкрементом). Пример такого случая представлен в таблице столбцом DLC 3. Максимальный размер поля данных К достигает в этом варианте значения 64 байт. Разумеется, можно выбирать и другое приращение, составляющее, например, четыре байта.
Для обеспечения возможности определения предлагаемым в изобретении коммуникационным контроллером того, каким образом он должен интерпретировать содержимое кода длины данных, целесообразно, чтобы он самостоятельно узнавал, осуществляется ли связь в шинной системе по стандарту на протокол CAN или согласно предлагаемому в изобретении способу. Одна из возможностей для этого заключается в использовании бита, который находится внутри поля арбитража или поля управления и в соответствии со стандартом на протокол CAN всегда передается с фиксированным значением, для обозначения (маркировки) сообщения меткой, чтобы из этой первой метки коммуникационный контроллер мог вывести первое условие переключения (т.е. сделать вывод о наличии такого условия переключения), в зависимости от которого коммуникационный контроллер выбирает подлежащий применению способ передачи данных.
Обозначение сообщений при основной адресации:
В обычных информационных сообщениях или кадрах данных, соответствующих стандарту на протокол CAN и имеющих основной формат, второй бит поля управления всегда передается доминантным, как это показано на фиг. 1а в ее верхней части, и этот бит обозначен как r0. В примере соответствующего изобретению сообщения с основной адресацией (т.е. с полем арбитража, соответствующим основному формату протокола CAN), представленном на фиг. 1б в ее верхней части, этот второй бит поля управления используют в качестве метки, или маркера, передавая его рецессивным. Соответственно, рецессивное значение второго бита поля управления в подобном сообщении указывает на то, что далее сообщение передается в формате, отличающемся от предусмотренного стандартом. Этот передаваемый рецессивным второй бит поля управления сообщения с основным форматом поля арбитража называется битом увеличенной длины данных (EDL - сокр. от "Extended Data Length"). Бит r0, который согласно стандарту на протокол CAN всегда передается доминантным, в соответствующих изобретению сообщениях замещается рецессивным битом EDL, или в соответствующих изобретению сообщениях он смещается на одно положение назад, занимая место между рецессивным битом EDL и битом переключения битовой скорости (BRS - сокр. от "Bit Rate Switch"), также являющимся рецессивным при переключении длительности бита. Кроме того, в поле управления можно вставлять и другие биты. Например, на фиг. 1б показан бит, называемый индикатором состояния по отношению к ошибкам (ESI - сокр. от "Error State Indicator") и подробнее рассматриваемый ниже. В это место можно вставить также два или более бита, не оказывая влияния на осуществление предлагаемого в изобретении способа.
Таким образом, в целом, битовая последовательность в поле управления сообщений в основном формате по стандарту на протокол CAN: {IDE, r0, DLC3, DLC2, DLC1, DLC0} заменяется в соответствующих изобретению сообщениях следующей последовательностью: {IDE, EDL, N следующих битов, DLC3, DLC2, DLC1, DLC0}.
В представленном на фиг. 1б примере со вставленными битами r0, BRS, ESI число N равно трем. Вместе с тем, N может принимать и любые другие значения, большие нуля. Бит BRS может потребоваться - по рассматриваемым ниже причинам - вставлять в битовую последовательность после бита, всегда передаваемого доминантным, например в сочетании с битом r0 и непосредственно за ним.
Обозначение сообщений при расширенной адресации:
В обычных информационных сообщениях (кадрах данных), соответствующих стандарту на протокол CAN и имеющих расширенный формат, первые два бита поля управления всегда передаются доминантными, как это показано на фиг. 1а в ее нижней части, и обозначены как r1 и r0. В примере соответствующего изобретению сообщения с расширенной адресацией (т.е. с полем арбитража, соответствующим расширенному формату протокола CAN), представленном на фиг. 1б в ее нижней части, первый бит r1 поля управления используют в качестве метки, или маркера, передавая его рецессивным. В данном случае рецессивное значение первого бита поля управления в подобном сообщении указывает на то, что далее сообщение передается в формате, отличающемся от предусмотренного стандартом. Этот передаваемый рецессивным бит поля управления и здесь называется битом увеличенной длины данных (EDL - сокр. от "Extended Data Length"). Он замещает зарезервированный доминантный бит r1, предусмотренный в обычных сообщениях, соответствующих стандарту на протокол CAN и имеющих расширенный формат. В качестве альтернативы этому решению доминантный бит r1 также может сохраниться и сместиться назад на одно положение, что соответствовало бы вставке бита EDL в качестве добавочного бита между битом удаленного запроса (RTR) и битом r1. Также возможна вставка бита EDL (рецессивный) в качестве добавочного бита между битом r1 (доминантный) и битом r0 (доминантный). И в этом случае затем в поле управления могут быть вставлены и другие биты. Например, на фиг. 1б опять же изображен бит ESI, который подробнее рассматривается ниже. В битовую последовательность также можно вставлять два или более бита, не оказывая влияния на осуществление предлагаемого в изобретении способа. Таким образом, в целом, битовая последовательность в поле управления сообщений в расширенном формате по стандарту на протокол CAN: {r1, r0, DLC3, DLC2, DLC1, DLC0} заменяется в соответствующих изобретению сообщениях следующей последовательностью: {EDL, N следующих битов, DLC3, DLC2, DLC1, DLC0} или следующей последовательностью: {r1, EDL, М следующих битов, DLC3, DLC2, DLC1, DLC0}.
Представленный на фиг. 1б пример относится к первому из двух вышеназванных вариантов при N=3, а именно со вставкой битов r0, BRS, ESI. Вместе с тем, параметры N и M также могут принимать любые иные значения, большие нуля. В данном случае бит BRS также может потребоваться - по рассматриваемым ниже причинам - вставлять в битовую последовательность после бита, всегда передаваемого доминантным, например в сочетании с битом r0 и непосредственно за ним.
В качестве альтернативы предлагаемый в изобретении способ может использоваться в подходящих коммуникационных контроллерах, которые даже не рассчитаны на осуществление связи в соответствии со стандартом на протокол CAN. В этом случае можно обходиться и без установления наличия или отсутствия вышеназванного первого условия переключения, например в зависимости от соответствующей метки, обозначающей сообщения. Напротив, коммуникационные контроллеры работают в этом случае исключительно согласно одному из описанных способов и соответственно этому могут применяться только в шинных системах, в которых используются исключительно такие выполненные согласно изобретению коммуникационные контроллеры.
В случае увеличения поля данных сообщений, как это предусмотрено в изобретении, также может быть целесообразным адаптировать используемый метод контроля целостности данных с помощью циклического избыточного кода (CRC), чтобы достичь достаточной устойчивости к ошибкам. В частности, в этом отношении может быть выгодным использовать иной полином CRC, например полином более высокого порядка, и соответственно предусмотреть в модифицированных в соответствии с изобретением сообщениях поле CRC, отличающееся по размеру от предусмотренного стандартом. Это отражено на фиг. 1б, где показано, что в представленном примере поле CRC в соответствующих изобретению сообщениях имеет длину L бит, причем число L, в отличие от стандарта на протокол CAN, может быть неравным 15, в частности может быть больше 15.
Об использовании модифицированного метода вычисления контрольной суммы CRC абонентам шины можно сигнализировать посредством другой, т.е. дополнительной, метки, представляющей другое, т.е. дополнительное условие переключения. В предпочтительном варианте осуществления изобретения эта другая метка может совпадать с первой меткой и/или первым условием переключения.
В соответствующих стандарту на протокол CAN контроллерах код CRC посылаемых сообщений CAN генерируется посредством сдвигового регистра с обратной связью, на вход которого поочередно подаются последовательно посылаемые биты сообщения. Ширина или разрядность сдвигового регистра соответствует порядку полинома CRC. Кодирование кодом CRC осуществляется путем логического объединения содержимого регистра с полиномом CRC во время операций сдвига. Соответственно, при приеме сообщений CAN последовательно принимаемые биты сообщения подаются в сдвиговый регистр CRC. Контроль с помощью кода CRC считается успешным, если в конце поля CRC все биты сдвигового регистра имеют значение "ноль". Как генерация кода CRC в случае передачи, так и контроль с помощью кода CRC в случае приема выполняются на аппаратном уровне, не требуя вмешательства в программные средства. Таким образом, модификация кодирования кодом CRC не затрагивает прикладного программного обеспечения.
В особенно предпочтительном варианте осуществления изобретения коммуникационный контроллер рассчитывают таким образом, чтобы он обладал совместимостью со стандартом на протокол CAN, т.е. чтобы в шинной системе CAN он работал согласно стандарту на соответствующий протокол, а в шинной системе, модифицированной в соответствии с изобретением, он, с одной стороны, допускал в сообщениях большие поля данных, а с другой стороны - обеспечивал адаптированные или скорректированные вычисление и проверку контрольной суммы CRC.
Поскольку в начале приема сообщения еще не известно, является ли принимаемое сообщение соответствующим стандарту на протокол CAN или модифицированным в соответствии с изобретением, в предлагаемом в изобретении коммуникационном контроллере реализовано два параллельно работающих сдвиговых регистра CRC. После приема разделителя CRC, когда в приемнике (получателе сообщения) выполняется анализ кода CRC, на основании предусмотренной изобретением другой (дополнительной) метки можно констатировать, какой способ передачи данных использовался, и тогда анализироваться будет сдвиговый регистр, соответствующий этому способу передачи данных. Другая метка, как это было уже отмечено выше, может совпадать с первой меткой, относящейся к размеру поля данных и к интерпретации кода длины данных.
Передатчику (отправителю сообщения) в начале посылки сообщения, в принципе, уже известно, какой способ должен использоваться для передачи данных. Однако поскольку может случиться так, что арбитраж за доступ к шине будет проигран, и начавшееся сообщение не отправится, а вместо этого будет приниматься другое сообщение, два сдвиговых регистра CRC параллельно включаются и в этом случае.
Описанная реализация двух параллельно работающих сдвиговых регистров CRC делает возможным еще одно усовершенствование: полином CRC, предусмотренный стандартным протоколом CAN (x15+x14+x10+x8+x7+x4+x3+1), рассчитан на длину сообщений менее 127 битов. Если в сообщениях, передаваемых в соответствии с изобретением, используются более длинные поля данных, то для поддержания надежности передачи целесообразно использовать другой, в частности более длинный, полином CRC. Соответственно этому сообщения, передаваемые в соответствии с изобретением, получают измененное, в частности более длинное, поле CRC. В процессе работы коммуникационные контроллеры динамически переключаются с одного сдвигового регистра CRC на другой, т.е. между сдвиговым регистром, работающим соответственно стандарту на протокол CAN, и сдвиговым регистром, работающим в соответствии с изобретением, чтобы использовать подходящий в соответствующем случае полином.
Естественно, в зависимости от длины поля данных или требуемой надежности передачи можно использовать, в определенной градации, и более двух сдвиговых регистров, а соответственно и более двух полиномов CRC. В этом случае необходимо, если требуется, сохранить совместимость со стандартом на протокол CAN, адаптировать соответствующую метку и связанное с ней условие переключения. Например, второй бит поля управления может представлять первую метку, обозначающую переключение на более длинные поля данных, например указанные в столбце DLC 1 таблицы на фиг. 2, и на соответствующий второй полином CRC. Для сообщений, содержащих более длинные поля данных и обозначенных первой меткой, в поле управления может быть вставлен, например, дополнительный бит, обозначающий переключение на другой набор размеров поля данных, например указанный в столбце DLC 3 таблицы на фиг. 2, и на третий полином CRC. Вставка дополнительных битов в поле управления сообщений, имеющих первую метку, является возможной потому, что в данном случае в коммуникационном контроллере и так уже используется измененный процесс передачи и приема, а значит, подобные изменения могут быть учтены. Совместимость со стандартом на протокол CAN обеспечивается тем, что при отсутствии первой метки, т.е. при доминантном втором бите поля управления в представленном примере структура сообщений в точности соответствует предписаниям стандарта ISO 11898-1.
На фиг. 3 в упрощенном представлении показан фрагмент предлагаемого в изобретении процесса приема сообщения, выполняющегося в абонентской станции шинной системы. Здесь представлен случай обеспечения совместимости со стандартом на протокол CAN, достигаемой за счет того, что поведение коммуникационного контроллера адаптируется или корректируется в зависимости от первого условия переключения. Хотя на фиг. 3 выбрано представление, обычное для описания процессов выполнения программ, предлагаемый в изобретении способ полностью пригоден для его реализации аппаратными средствами.
Абонентская станция сначала находится в состоянии прослушивания шины, пока на шине отсутствует обмен информацией. Таким образом, в состоянии опроса 302 станция ждет прохождения по шине доминантного бита. Этот бит характеризует начало нового сообщения ("начало кадра").
Как только обнаружено начало нового сообщения, в блоке 304 начинается вычисление по меньшей мере двух параллельно вычисляемых контрольных сумм. Первая контрольная сумма вычисляется с помощью кода CRC согласно стандарту на протокол CAN, а вторая контрольная сумма вычисляется согласно новому методу.
Затем, начиная с шага 306, принимаются биты сообщения, следующие за битом начала кадра (SOF) и начинающиеся полем арбитража. Если передать сообщение хотят несколько абонентов шины, они при этом соревнуются между собой по методу, известному из стандарта на протокол CAN, за получение доступа к шине. Представленный блок 306 характеризует прием всех битов до приема первой метки, или установления наличия первого условия переключения. В приведенном примере наличие первого условия переключения устанавливается на основании поля управления, например его второго бита (см. фиг. 1). Затем в блоке 308 могут приниматься и другие биты сообщения, пока с определенного бита сообщения в зависимости от установленного первого условия переключения процесс приема не пойдет иным образом. Это разветвление процесса на различные методы обеспечивается соответствующим запросом или разветвлением 310, как это в качестве примера показано ниже.
Если при разветвлении 310, например после приема второго бита поля управления как доминантного бита r0, имеется информация о том, что согласно первой метке связь осуществляется по стандарту на протокол CAN (ветвь "1" на фиг. 3), на шаге 312 считываются дальнейшие биты поля управления. На основании этих битов согласно стандарту на протокол CAN анализируется код длины данных и затем на шаге 316 принимается соответствующий объем данных, максимум 8 байт, соответственно полю данных. Затем на шаге 320 принимается поле CRC, содержащее 15 битов. Если при разветвлении 324 имеется информация о том, что контрольная сумма CRC, которая была отправлена передатчиком, совпадает с контрольной суммой CRC, определенной самим приемником, в блоке 328 посылается доминантный бит подтверждения. Следует иметь в виду, что в этом случае сравниваются контрольные суммы CRC, вычисляемые по стандарту, поскольку связь осуществляется по стандарту на протокол CAN. Если совпадения контрольных сумм не установлено, бит подтверждения посылается рецессивным (блок 330). Затем на шаге 332 (для одной ветви алгоритма) и 334 (для другой ветви алгоритма) следуют разделитель ACK и биты конца кадра (EOF). На этом процесс приема сообщения завершается.
Если же при разветвлении 310, например после приема второго бита поля управления как рецессивного бита EDL, имеется информация о том, что использованию подлежит модифицированный в соответствии с изобретением способ связи (ветвь "2" на фиг. 3), в блоке 314 считываются дальнейшие биты поля управления. Здесь также могут считываться, например, вставленные в поле управления дополнительные биты, которые могут служить, например, для переключения на другой отличающийся от стандарта полином CRC или же для переключения длительности бита, для синхронизации или других целей. Этот аспект подробнее рассматривается ниже. По результату считывания определяется код длины данных, анализируемый в соответствии с новой интерпретацией, приведенной для некоторых примеров в виде таблицы на фиг. 2. В блоке 318 принимается соответствующий объем данных, т.е. до 15 байт данных для приведенного в таблице на фиг. 2 примера DLC 1, до 16 байт данных для примера DLC 2, до 64 байт данных для примера DLC 3. В блоке 322 принимается поле CRC, которое в соответствии с изобретением отличается от предусмотренного стандартом, в частности является более длинным. Если при разветвлении 324 имеется информация о том, что контрольная сумма CRC, отправленная передатчиком, и контрольная сумма CRC, определенная самим приемником, совпадают, причем в этом случае сравнение контрольных сумм CRC основано на методе их вычисления, который в соответствии с изобретением отличается от предусмотренного стандартом, в блоке 328 посылается доминантный бит подтверждения. В противном случае (блок 330) бит подтверждения посылается рецессивным. Затем на шаге 332 (для одной ветви алгоритма) и 334 (для другой ветви алгоритма) следуют разделитель ACK и биты конца кадра (EOF). На этом п