СПОСОБ УПРАВЛЕНИЯ РАБОТОЙ ШИННОЙ СИСТЕМЫ, ПРЕЖДЕ ВСЕГО ШИНЫ CAN
METHOD OF CONTROLLING OPERATION OF BUS SYSTEM, PRIMARILY OF BUS CAN

Изобретение относится к способу управления работой шинной системы, прежде всего шины CAN (локальная сеть контроллеров, англ. сокр. CAN от Controller Area Network).
В случае шины CAN каждое передаваемое по шине сообщение содержит так называемый идентификатор. По этому идентификатору подключенные к шине CAN станции решают, имеет ли переданное сообщение отношение к ним. Идентификатор добавляется передающей станцией к передаваемым полезным данным. Каждая станция при этом может передавать сколь угодно много сообщений с различными идентификаторами. Но каждый идентификатор может использоваться только одной определенной станцией, и, соответственно, один и тот же идентификатор не может включаться в сообщение различными станциями.
Шина CAN организована таким образом, чтобы новые станции могли подключаться к ней без больших сложностей. Это, помимо прочего, делает
возможным ошибочное использование идентификатора, уже используемого ранее подключенной станцией, другой станцией, например, вновь подключенной станцией,
В основу изобретения положена задача раннего обнаружения использования совпадающих (идентичных) идентификаторов в сообщениях, посылаемых различными станциями, чтобы принять меры, предотвращающие попытку одновременной передачи двумя разными станциями сообщений с одинаковым идентификатором.
Настоящее изобретение решает эту задачу при помощи способа, охарактеризованного в пункте 1 формулы изобретения. Предложен способ управления работой шинной системы, прежде всего шины CAN, к которой может быть подключено несколько станций, и передаваемое в которой сообщение имеет идентификатор. Каждая из станций может передавать сообщения с различными идентификаторами. Станции, не ведущие передачу, по идентификатору решают, имеет ли к ним отношение принятое сообщение. Сообщение с определенным идентификатором может передаваться всегда только одной станцией. Для решения поставленной задачи каждая из станций сравнивает идентификатор сообщения, переданного другой станцией, с используемыми ею самой идентификаторами, и при совпадении (идентификаторов) генерируется сообщение об ошибке.
Поставленная задача также решена в вычислительном устройстве с электронным запоминающим устройством, в котором записана компьютерная программа для осуществления охарактеризованного выше способа.
Таким образом, если по каким бы то ни было причинам какой-либо идентификатор используется двумя различными станциями, то это будет обнаружено одной из двух станций с помощью предлагаемого в изобретении способа не позднее того времени, когда другая станция впервые передаст в составе сообщения (в кадре сообщения) уже занятый идентификатор. Таким образом, настоящее изобретение гарантирует, что то или иное сообщение с определенным идентификатором всегда будет исходить только от одной станции. Технический результат, достигаемый при осуществлении изобретения, заключается в повышении надежности работы шинной системы при небольших затратах вычислительных ресурсов.
Другие отличительные особенности, возможности применения и преимущества изобретения раскрываются в приведенном ниже описании вариантов осуществления изобретения, изображенных на чертежах. При этом предмет изобретения составляют все описанные или изображенные признаки, рассматриваемые в отдельности или в любом сочетании, независимо от их взаимосвязи в формуле изобретения или подчиненности пунктов формулы изобретения, а также независимо от их формулировки в описании или представлении на чертежах.
На фиг. 1 изображена схема предлагаемой в изобретении шинной системы в одном варианте ее выполнения, на фиг. 2 показано схематически представление сообщения в шинной системе, изображенной на фиг. 1, и на фиг. 3 представлен способ управления работой шинной системы, изображенной на фиг. 1.
На фиг. 1 изображена шинная система 10, которой может быть, в частности, так называемая шина CAN. Шинная система 10, представленная на фиг. 1, выполнена в виде последовательной шинной системы, к которой подключено, например, четыре станции 11, 12, 13, 14. В случае применения шинной системы 10, например, в автомобиле, станциями 11, 12, 13, 14 могут являться, например, блок управления двигателем и/или блок управления приводом или иные подобные устройства.
Станции 11, 12, 13, 14 шинной системы 10 выполнены равноправными по отношению друг к другу и способны передавать и принимать сообщения 20. Структура такого сообщения 20 рассматривается ниже более подробно на фиг. 2. В данный момент времени получить доступ к шинной системе 10 и послать свое сообщение 20 всегда может только одна из станций 11, 12, 13, 14. Затем переданное сообщение 20 может быть принято и при необходимости обработано всеми другими станциями 11, 12, 13, 14.
Каждое передаваемое по шинной системе 10 сообщение 20 имеет заданный формат. На фиг. 2 представлен фрагмент такого сообщения 20. В соответствии с ним сообщение 20 содержит по меньшей мере так называемый идентификатор IDENT и полезные данные DATA. Идентификатор IDENT и полезные данные DATA генерируются передающей станцией. В случае шины CAN идентификатор IDENT может иметь длину, составляющую, например, 11 бит или 29 бит.
Каждая из станций 11, 12, 13, 14 может посылать сколь угодно много сообщений 20 с различными идентификаторами IDENT. Тогда станции, не ведущие передачу, по идентификатору IDENT решают, имеет ли принятое сообщение 20 отношение к ним или нет. Если сообщение 20 относится к одной из станций 11, 12, 13, 14, то оно считывается и обрабатывается этой станцией.
Важно то, что один определенный идентификатор IDENT может передаваться всегда только одной станцией. Это означает, что определенный идентификатор всегда представляет собой однозначную ссылку на одну определенную станцию. Иначе говоря, это означает, что один и тот же идентификатор IDENT не может использоваться двумя различными станциями.
Допустим теперь, что станция 11 посылает сообщения с идентификатором IDENT 1, станция 12 - сообщения с идентификатором IDENT2, а станция 13 - сообщения с идентификатором IDENT3. Допустим также, что станция 14 посылает - ошибочно - сообщения с идентификатором IDENT2. Эта ошибка не может быть обнаружена станциями 11, 13, так как по идентификатору IDENT2 они всегда делают вывод о поступлении сообщения, принадлежащего станции 12, даже если речь идет об ошибочном сообщении, принадлежащем станции 14.
Для распознавания такой ошибки предусмотрен способ 30, представленный на фиг. 3. Этот способ 30 непрерывно осуществляется каждой из станций 11, 12, 13, 14. Основой для осуществления способа 30 является хранящийся в каждой станции список, в котором содержатся все идентификаторы IDENT, которые используются соответствующей станцией и поэтому не могут использоваться другими станциями для передачи сообщений.
Далее способ 30 поясняется на примере сценария, в котором станция 14 ошибочно использует идентификатор IDENT2, который может использоваться только станцией 12.
Если станция 12 находится в состоянии, в котором она не ведет передачу, то она считывает, на первом шаге 31, по меньшей мере идентификатор IDENT тех сообщений 20, которые передаются по шинной системе 10 другими станциями. На следующем шаге 32 станция 12 сравнивает считанный идентификатор IDENT с идентификаторами, хранящимися в ее собственном списке. Поскольку, как было указано выше, станция 12 использует по меньшей мере идентификатор IDENT2, в списке станции 12 содержится по меньшей мере этот идентификатор IDENT2.
Таким образом, станция 12 сравнивает считанный из шинной системы 10 идентификатор IDENT с хранящимся идентификатором IDENT2. В случае
ошибочного использования станцией 14 идентификатора IDENT2 станция 12 фиксирует совпадение с хранящимся идентификатором IDENT2.
В этом случае станция 12 генерирует на шаге 33 сообщение об ошибке и посылает это сообщение по шинной системе всем другим станциям. Таким образом, эта ошибка становится известна всем станциям 11, 12, 13, 14, и затем она может быть устранена, например, ошибочно работающей станцией 14.
Если совпадение отсутствует, на этом способ 30 завершается.
Разумеется, что станция 14 также может быть той станцией, которая фиксирует использование станцией 12 идентификатора IDENT2. В этом случае станция 14 генерирует сообщение об ошибке согласно шагу 33 способа 30. Тогда при устранении ошибки необходимо сначала проверить, какая станция работает ошибочно. Также понятно, что способ 30, изображенный на фиг. 3, применим и тогда, когда один и тот же идентификатор посылают более двух станций.
Как указано выше, способ 30 непрерывно выполняется всеми станциями 11, 12, 13, 14. Следовательно, каждая из станций 11, 12, 13, 14 сравнивает идентификатор IDENT переданного сообщения 20 с используемыми ею самой идентификаторами IDENTx. При этом если какой-либо идентификатор IDENTx используется - по каким бы то ни было причинам - двумя различными станциями, то это будет обнаружено одной из двух станций с помощью способа 30 не позднее того времени, когда другая станция впервые передаст в составе сообщения 20 уже занятый идентификатор IDENTx. После этого может быть разослано сообщение об ошибке, и ошибка может быть устранена.
Предпочтительно способ 30 выполняется с помощью компьютерной программы. Для этого компьютерная программа записана в электронном запоминающем устройстве отдельных станций 11, 12, 13, 14 и выполняется электронным вычислительным устройством.