ГЕНЕРАТОР ОШИБОК ОДНОСТОРОННЕЙ ПОЛУБАЙТОВОЙ ПЕРЕДАЧИ
ERROR GENERATOR OF ONE-SIDED NIBBLE TRANSMISSION

Область техники, к которой относится изобретение
[0001] Односторонняя полубайтовая передача (Single-Edge-Nibble-Transmission, SENT) представляет собой протокол связи для односторонней связи между электронными модулями, например, от интеллектуального датчика до вычислительного устройства в автомобиле. Чтобы протестировать передатчик SENT, например, при разработке, требуется оборудование для тестирования с возможностью приема сигнала от передатчика SENT и распознавания различных типов ошибок передачи. Тестовый приемник SENT сначала сам должен быть протестирован для подтверждения того, что тестовый приемник распознает различные типы ошибок.
Сущность изобретения
В одном варианте осуществления охарактеризован тестовый генератор, содержащий компьютер, включающий в себя процессор и память, хранящую инструкции, выполняемые процессором; причем компьютер запрограммирован на: прием по меньшей мере одного входного сигнала, включающего в себя сообщение и команду об ошибке, указывающую одну или более ошибок; генерирование кадра данных, отформатированного в соответствии с протоколом односторонней полубайтовой передачи, причем кадр данных включает в себя сообщение и указанную одну или более ошибок; и на передачу кадра данных.
В еще одном дополнительном варианте осуществления охарактеризован тестовый генератор, в котором по меньшей мере один входной сигнал принимается посредством передачи по шине связи транспортного средства.
В еще одном дополнительном варианте осуществления охарактеризован тестовый генератор, в котором компьютер дополнительно запрограммирован на: прием выбора последовательности вывода протокола односторонней полубайтовой передачи; и генерирование кадра данных в соответствии с выбранной последовательностью вывода.
В еще одном дополнительном варианте осуществления охарактеризован тестовый генератор, в котором выбранный тип вывода включает в себя одно из: a) первого канала, включающего в себя три полубайта, и второго канала, включающего в себя три полубайта; b) первого канала, включающего в себя четыре полубайта, и второго канала, включающего в себя два полубайта; c) первого канала, включающего в себя три полубайта, второго канала, включающего в себя два полубайта, и полубайта, включающего в себя инверсию самого старшего полубайта первого канала; и d) первого канала, включающего в себя три полубайта, второго канала, включающего в себя два полубайта, и полубайта, установленного на значение 00 (hex).
В еще одном дополнительном варианте осуществления охарактеризован тестовый генератор, в котором компьютер дополнительно запрограммирован на: прием выбора последовательности вывода протокола односторонней полубайтовой передачи от одного из передачи по шине связи транспортного средства и пользовательского интерфейса.
В еще одном дополнительном варианте осуществления охарактеризован тестовый генератор, в котором запрашиваемая ошибка включает в себя по меньшей мере одно из следующего: слишком короткое одно или более состояний низкого уровня, слишком длинное одно или более состояний низкого уровня, слишком короткое одно или более состояний высокого уровня, слишком длинное одно или более состояний высокого уровня, слишком короткий один или более импульсов данных, слишком длинный один или более импульсов данных, слишком короткий импульс паузы, слишком длинный импульс паузы, слишком короткий калибровочный импульс, слишком длинный калибровочный импульс, слишком мало импульсов в кадре данных и слишком много импульсов в кадре данных.
В еще одном дополнительном варианте осуществления охарактеризован тестовый генератор, дополнительно содержащий генератор кадров данных, коммуникативно соединенный с компьютером и выполненный с возможностью генерирования кадра данных на основе данных и управляющих сигналов, принимаемых от компьютера.
В еще одном дополнительном варианте осуществления охарактеризован тестовый генератор, в котором генератор кадров данных включает в себя: генератор тактов, при этом генератор тактов выполнен с возможностью генерирования такта, причем такт представляет собой периодической сигнал, используемый в качестве временной развертки для генерирования кадра данных.
В еще одном дополнительном варианте осуществления охарактеризован тестовый генератор, в котором генератор кадров данных дополнительно включает в себя: очередь длительностей импульсов, включающую в себя множество ячеек памяти, связанных соответственно с множеством импульсов в кадре данных; причем тестовый генератор запрограммирован, перед генерированием кадра данных, на загрузку длительности каждого из множества импульсов в соответственную ячейку памяти.
В еще одном дополнительном варианте осуществления охарактеризован тестовый генератор, в котором генератор кадров данных дополнительно включает в себя счетчик, имеющий тактовый вход и выход; причем: тактовый вход счетчика управляется генератором тактов; и длительность импульса определяется сравнением выхода счетчика с длительностью импульса, хранящегося в очереди длительностей импульсов.
В еще одном дополнительном варианте осуществления охарактеризован тестовый генератор, в котором компьютер дополнительно запрограммирован на: принудительный ввод одного из шумового импульса низкого уровня и шумового импульса высокого уровня в кадр данных, причем длительность принудительного шумового импульса имеет продолжительность меньше периода между двумя последовательными тактами.
В другом варианте осуществления охарактеризован способ, содержащий этапы, на которых: принимают с помощью тестового генератора по меньшей мере один входной сигнал, включающий в себя сообщение и команду об ошибке, указывающую одну или более ошибок; генерируют кадр данных, отформатированный согласно протоколу односторонней полубайтовой передачи, причем кадр данных включает в себя сообщение и указанную одну или более ошибок; и передают кадр данных.
В еще одном дополнительном варианте осуществления охарактеризован способ, в котором входной сигнал принимают через шину связи транспортного средства.
В еще одном дополнительном варианте осуществления охарактеризован способ, дополнительно содержащий этапы, на которых: принимают выбор последовательности вывода протокола односторонней полубайтовой передачи; и генерируют кадр данных согласно выбранной последовательности вывода.
В еще одном дополнительном варианте осуществления охарактеризован способ, в котором выбранный тип вывода включает в себя одно из: a) первого канала, включающего в себя три полубайта, и второго канала, включающего в себя три полубайта; b) первого канала, включающего в себя четыре полубайта, и второго канала, включающего в себя два полубайта; c) первого канала, включающего в себя три полубайта, второго канала, включающего в себя два полубайта, и полубайта, включающего в себя инверсию самого старшего полубайта первого канала; и d) первого канала, включающего в себя три полубайта, второго канала, включающего в себя два полубайта, и полубайта, установленного на значение 00 (hex).
В еще одном дополнительном варианте осуществления охарактеризован способ, в котором выбор последовательности вывода принимают от интерфейса тестового генератора.
В еще одном дополнительном варианте осуществления охарактеризован способ, в котором запрашиваемая ошибка включает в себя по меньшей мере одно из следующего: слишком короткое одно или более состояний низкого уровня, слишком длинное одно или более состояний низкого уровня, слишком короткое одно или более состояний высокого уровня, слишком длинное одно или более состояний высокого уровня, слишком короткий один или более импульсов данных, слишком длинный один или более импульсов данных, слишком короткий импульс паузы, слишком длинный импульс паузы, слишком короткий калибровочный импульс, слишком длинный калибровочный импульс, слишком мало импульсов в кадре данных и слишком много импульсов в кадре данных.
В еще одном дополнительном варианте осуществления охарактеризован способ, дополнительно содержащий этапы, на которых: генерируют промежуточные данные для программирования генератора кадров данных, основываясь на принятой по меньшей мере одной входной инструкции; загружают промежуточные данные в генератор кадров данных и генерируют кадр данных в генераторе кадров данных, основываясь на промежуточных данных.
В еще одном дополнительном варианте осуществления охарактеризован способ, дополнительно содержащий этапы, на которых: генерируют периодической такт с помощью генератора тактов, включенного в генератор кадров данных; и используют периодической такт в качестве временной развертки для генерирования кадра данных.
В еще одном дополнительном варианте осуществления охарактеризован способ, дополнительно содержащий этапы, на которых: принудительно вводят один из шумового импульса низкого уровня и шумового импульса высокого уровня в кадр данных, причем длительность принудительного шумового импульса имеет продолжительность меньше периода между двумя последовательными тактами.
Чертежи
[0002] Фигура 1 представляет собой блок-схему примерного тестового передатчика SENT в связи с тестовым приемником SENT.
[0003] Фигура 2 представляет собой блок-схему примерного тестового передатчика SENT.
[0004] Фигура 3 представляет собой примерный кадр данных SENT.
[0005] Фигура 4 представляет собой блок-схему примерного процесса передачи кадров данных SENT, включая ошибки передачи.
Подробное описание
Обзор
[0006] На Фигуре 1 показана система 10 для тестирования тестового приемника 12 SENT (односторонняя полубайтовая передача) с помощью тестового генератора 14 SENT. Тестовый генератор 14 SENT может создавать кадры 15 данных SENT в режиме реального времени, которые включают в себя определенные типы одной или более ошибок передачи. Типы ошибок передачи, которые могут возникать, в качестве неограничивающих примеров, включают в себя слишком короткое одно или более состояний низкого уровня, слишком длинное одно или более состояний низкого уровня, слишком короткое одно или более состояний высокого уровня, слишком длинное одно или более состояний высокого уровня, слишком короткий один или более импульсов данных, слишком длинный один или более импульсов данных, слишком короткий импульс паузы, слишком длинный импульс паузы, слишком короткий калибровочный бит, слишком длинный калибровочный бит, слишком мало импульсов в кадре данных и слишком много импульсов в кадре данных. Один или более кадров 15 данных SENT, включающих в себя одну или более ошибок передачи, передаются тестовому приемнику 12 SENT. Тестовый приемник 12 SENT далее может отслеживаться, например, через интерфейс, для определения того, если приемник 12 SENT идентифицировал ошибки передачи.
Примерные элементы системы
[0007] Со ссылкой на Фигуру 1 система для тестирования тестового приемника 12 SENT включает в себя тестовый приемник 12 SENT и тестовый генератор 14 SENT.
[0008] Тестовый приемник 12 SENT может содержать компьютер, который включает в себя и/или коммуникативно соединен с одним или более интерфейсами, как дополнительно описано ниже, например, с аппаратным интерфейсом и/или пользовательским интерфейсом, таким как графический пользовательский интерфейс (GUI). Компьютер может быть запрограммирован на прием кадров 15 данных SENT и анализа кадров 15 данных для определения того, если произошла ошибка передачи. Компьютер может дополнительно быть запрограммирован на идентификацию типа ошибки передачи, и на указание, например, через пользовательский интерфейс, типа ошибки, которая была идентифицирована. Тестовый приемник 12 SENT может дополнительно хранить данные, связанные с кадром 15 данных SENT и соответственной(-ыми) ошибкой(-ами) так, что данные являются доступными для анализа. Более того, тестовый приемник 12 SENT может быть коммуникативно соединен с одним или более другими компьютерами, например, по проводной или беспроводной сети, и может передавать данные, связанные с принятым кадром 15 данных SENT и соответственными ошибками передачи.
[0009] Примерный тестовый генератор 14 SENT, показанный на Фигуре 2, включает в себя компьютер 16, генератор 18 кадров данных и интерфейс 20. Тестовый генератор 14 SENT включает в себя один или более входов и/или соединений 42 шины. Тестовый генератор SENT генерирует кадры 15 данных SENT. Тестовый генератор 14 SENT в общем запрограммирован на прием одной или более инструкций, включая сообщение, передаваемое согласно протоколу SENT, и, возможно, команду об ошибке, включающую в себя одну или более ошибок, которые должны быть введены в передаваемый кадр 15 данных. То есть тестовый генератор 14 SENT включает в себя возможность передачи кадров 15 данных, включающих в себя сообщение согласно протоколу SENT. Кадры 15 данных могут быть альтернативно сгенерированы с и без ошибок передачи. Передаваемое сообщение может быть значением в указанном диапазоне, например, моделирующим выходное значение датчика, и может быть принято в цифровом формате. Ошибки могут включать в себя один или более типов ошибок передачи, как обсуждается ниже.
[0010] Генератор 18 кадров данных может генерировать множество кадров 15 данных, которые включают в себя одну или более различных ошибок передачи. Например, как описано ниже, компьютер 16 может с помощью генератора 18 кадров данных устанавливать длительность импульса, длительность состояния низкого уровня импульса и количество импульсов в кадре 15 данных SENT. Дополнительно, положительные или отрицательные шумовые импульсы могут быть введены в любое место в кадре 15 данных SENT.
[0011] Компьютер 16 включает в себя процессор и память. Память включает в себя одну или более форм считываемых компьютером носителей и хранит инструкции, выполняемые процессором, для выполнения различных операций, включая раскрытые здесь. Компьютер 16 в общем запрограммирован и выполнен с возможностью связи по шине локальной сети контроллеров (CAN) или т.п. и может включать в себя модуль 21 связи для обеспечения связи через одну или более сетей. Например, модуль 21 связи может быть запрограммирован на прием инструкций по тестированию через шину CAN. Модуль 21 связи может дополнительно быть запрограммирован на хранение данных, принимаемых через сеть транспортного средства, и, например, на установку одного или более флагов, указывающих, что новые данные были приняты.
[0012] Компьютер 16 может дополнительно быть запрограммирован на управление генератором 18 кадров данных, основываясь на инструкциях по тестированию. Как описано ниже, компьютер 16 может генерировать то, что называется здесь как «промежуточные данные», основываясь на принимаемом сообщении и командах об ошибках. Сообщение и команды об ошибках могут быть приняты в одной передаче по сети или могут быть приняты в отдельных передачах по сети. Промежуточные данные могут быть, например, данными о длительности импульса, длительностью состояния низкого уровня, длительностью импульса паузы, количеством импульсов в кадре 15 данных и т.д., которые компьютер 16 может обеспечивать генератору 18 кадров данных для определения кадра 15 данных SENT. Компьютер 16 может дополнительно генерировать управляющие сигналы, управляющие работой генератора 18 кадров данных так, что генератор 18 кадров данных 18 генерирует и передает кадр 15 данных. Дополнительно, компьютер 16 может принимать сигналы от генератора 18 кадров данных, например, что генератор 18 кадров данных завершил передачу кадра 15 данных.
[0013] Как описано ниже, протокол SENT поддерживает несколько последовательностей вывода. Компьютер 16 может дополнительно быть запрограммирован на поддержку генерирования одной или более из этих последовательностей. Например, компьютер 16 может принимать входной сигнал от интерфейса 20, выбирающего конкретную последовательность вывода. Альтернативно, компьютер 16 может принимать инструкцию от сети транспортного средства, выбирающей конкретную последовательность вывода. Компьютер 16 может далее генерировать промежуточные данные в соответствии с выбранной последовательностью вывода.
[0014] Генератор 18 кадров данных представляет собой электронную цепь, выполненную с возможностью выполнения операций, связанных с передачей кадра 15 данных SENT, основываясь на промежуточных данных и управляющих сигналах, принимаемых от компьютера 16. Генератор 18 кадров данных включает в себя генератор тактов 22; первую, вторую и третью защелки 24, 26, 28; очередь 30 длительностей импульсов; первый и второй счетчики 32, 34; первый и второй компараторы 36, 38; и импульсный прерыватель 40.
[0015] Генератор 22 тактов используется для генерирования тактов, которые могут использоваться в качестве временной развертки для генератора 18 кадров данных. Генератор 22 тактов создает периодические такты. Период тактов может быть запрограммирован, например, компьютером 16. Генератор 22 тактов может, например, принимать тактовый сигнал 40 МГц в качестве входного сигнала, и может генерировать, например, периодической такт с периодом три микросекунды.
[0016] Первая защелка 24 может быть, например, 8-битной защелкой, используемой для программирования периода тактов, генерируемых генератором 22 тактов.
[0017] Вторая защелка 26 может быть 8-битной защелкой и может быть использована для программирования длительности состояния низкого уровня данных импульса SENT, как описано ниже.
[0018] Третья защелка 28 может быть 8-битной защелкой и может быть использована для хранения количества импульсов в кадре 15 данных. Например, если требуется импульс паузы, общее количество импульсов в кадре 15 данных может включать в себя в общей сложности десять импульсов, и значение 0A (hex) может храниться в защелке 28. Если, в качестве другого примера, никакой импульс паузы не требуется, кадр 15 данных может включать в себя в общей сложности девять импульсов, и значение 09 (hex) может храниться в защелке 28.
[0019] Очередь 30 длительностей импульсов может включать в себя, например, восемь 10-битных сдвиговых регистров, размещенных параллельно, образующих эффективно сдвиговый регистр шириной восемь бит с 10 позициями. Очередь 30 длительностей импульсов может иметь вход и выход, причем каждый из входа и выхода имеет ширину восемь бит. Каждая позиция вдоль сдвигового регистра может хранить длительность конкретного импульса в кадре 15 данных SENT. Длительность каждого импульса в кадре 15 данных SENT может быть введена компьютером 16 на входе в очередь 30 длительностей импульсов и выведена очередью 30 длительностей импульсов на выходе. Очередь 30 длительностей импульсов может дополнительно включать в себя, например, вход сдвига, и прирастать от одной позиции к следующей позиции после приема сигнала сдвига на входе сдвига.
[0020] Первый счетчик 32 может быть 8-битным счетчиком, имеющим тактовый вход и 8-битный выход. Тактовый вход может, например, управляется генератором 22 тактов. Первый счетчик 32 может использоваться, например, для управления длительностью импульсов SENT, основываясь на длительности соответственных импульсов, хранящихся в очереди 30 длительностей импульсов.
[0021] Второй счетчик 34 может быть, например, 8-битным счетчиком, включающим в себя тактовый вход и 8-битный выход, и может быть использован для подсчета количества импульсов, которые передаются в кадре 15 данных SENT. Например, в начале каждой передачи SENT количество импульсов в кадре 15 данных SENT может быть загружено во второй счетчик 34 из третьей защелки 28. Тактовый сигнал может управляться, например, сигналом, указывающим конец передаваемого в настоящее время импульса и начало следующего импульса. Таким образом, в конце каждого импульса второй счетчик 34 уменьшается. Когда второй счетчик 34 достигает нуля, он может перезагружать количество импульсов для следующего кадра 15 данных SENT, и выдавать сигнал прерывания компьютеру для загрузки очереди 30 длительностей импульсов с длительностями импульсов для следующего кадра 15 данных SENT.
[0022] Первый компаратор 36 может быть 8-битным цифровым компаратором и может сравнивать, например, 8-битный выход из первого счетчика 32 с сохраненной длительностью импульса, выводимого в настоящее время очередью 30 длительностей импульсов. Когда, например, значение 8-битного выхода из первого счетчика 32 равно значению, выводимому очередью 30 длительностей импульсов, первый компаратор 36 может выводить сигнал, чтобы сбрасывать первый счетчик 32 и уменьшать второй счетчик 34. Выходной сигнал компаратора 36 может дополнительно быть использован для сдвига очереди 30 длительностей импульсов. Передаваемый в настоящее время импульс может заканчиваться, и следующий импульс может начинаться.
[0023] Второй компаратор 38 может быть 8-битным цифровым компаратором и может сравнивать, например, 8-битный выход из первого счетчика 32 со значением, хранящимся во второй защелке 26. Как обсуждалось выше, значение, хранящееся во второй защелке 26, может быть длительностью состояния низкого уровня передаваемого в настоящее время импульса SENT. Второй компаратор 38, например, может выводить состояние низкого уровня, когда значение 8-битного выхода из первого счетчика 32 меньше значения, хранящегося во второй защелке 26, и может выводить состояние высокого уровня, когда значение 8-битного выхода из первого счетчика 32 больше или равно значению, хранящемуся во второй защелке 26.
[0024] Импульсный прерыватель 40 может быть логическими вентилями или транзисторами, которые при приведении в действие выходным сигналом от компьютера 16, принудительно задают состояние низкого уровня или состояние высокого уровня на выходе. Схема импульсного прерывателя 40 позволяет компьютеру 16 блокировать выходной сигнала от второго компаратора 38 и определять независимо от выходного сигнала второго компаратора 38 цифровой уровень кадра 15 данных SENT, передаваемого в настоящее время.
[0025] Тестовый генератор 14 SENT может дополнительно включать в себя пользовательский интерфейс 20, который может быть коммуникативно соединен с компьютером 16. Интерфейс 20 может включать в себя одно или более устройств вывода, таких как дисплей, лампы, динамики и т.д., для сообщения информации пользователю. Интерфейс 20 может дополнительно включать в себя одно или более устройств ввода, таких как дисплей с сенсорным экраном, мышь, клавиатура, устройство распознавания жестов, переключатели и т.д., для приема ввода от пользователя.
Протокол SENT и кадр данных
[0026] Как в общем известно, протокол SENT описан в информационном отчете Сообщества автомобильных инженеров (SAE) под номером J2716, озаглавленном «SENT - Single Edge Nibble Transmission for Automotive Applications».
[0027] Протокол SENT представляет собой односторонний асинхронный интерфейс напряжения для передачи данных, например, от датчика к компьютеру, обычно в транспортном средстве. В соответствии с протоколом SENT данные передаются в блоках по четыре бита (один полубайт), для которых вычисляется интервал между двумя спадающими фронтами (односторонняя передача) модулированного сигнала с напряжением постоянной амплитуды.
[0028] Кадр 15 данных SENT включает в себя сообщение SENT и один или более управляющих импульсов. Сообщение SENT может включать в себя восемь полубайтов данных, причем каждый полубайт данных представляет собой четыре бита данных. Каждый из восьми полубайтов данных может быть использован для передачи конкретной информации. Например, первый полубайт данных может быть полубайтом состояния и связи, обеспечивающим информацию о сообщении. Полубайты со второго по седьмой могут использоваться, например, для передачи двух измерительных каналов из трех полубайтов каждый (например, давление и температура). Восьмой полубайт может быть использован для передачи циклического избыточного кода (CRC) или информации о контрольной сумме. Возможно, данные могут быть переданы в пяти полубайтах данных. В этом случае, например, один из двух измерительных каналов может быть исключен. Каждый полубайт данных передается в виде импульса, который иногда здесь называется импульсом данных. Импульсы данных, представляющие каждый полубайт, имеют переменную длительность в зависимости от 4-битного значения передаваемых данных.
[0029] Сообщение SENT передается в кадре 15 данных SENT, который включает в себя калибровочный импульс в начале кадра данных и может включать в себя импульс паузы в конце кадра данных. Фигура 3 иллюстрирует типичный кадр 15 данных SENT. Кадр 15 данных начинается с калибровочного импульса 60a. Калибровочный импульс может сопровождаться, например, восьмью импульсами 62a-62h данных. Возможно, импульс 64 паузы может быть включен в кадр 15 данных после восьмого импульса 62h данных. После импульса 64 паузы может быть передан новый кадр 15b данных SENT.
[0030] Также со ссылкой на Фигуру 3 первый импульс в кадре 15а данных SENT может быть калибровочным импульсом 60a. Калибровочный импульс 60a может начинаться на первом спадающем фронте 80 и заканчиваться на втором спадающем фронте 84. Калибровочный импульс 60a может быть длиной 56 тактов, причем такт представляет собой тактовый сигнал, используемый в качестве привязки по времени для генератора 18 кадров данных. Как правило, калибровочный импульс 60a генерируется для известного количества тактов по длительности, чтобы служить в качестве привязки по времени для приемника 12 SENT.
[0031] Калибровочный импульс 60a имеет состояние низкого уровня между спадающим фронтом 80 и нарастающим фронтом 82 и состояние высокого уровня между нарастающим фронтом 82 и спадающим фронтом 84. Как правило, состояние низкого уровня может быть длиной 6 тактов. Состояние высокого уровня может быть длиной 50 тактов так, что длительность калибровочного импульса 60a в общей сложности составляет 56 тактов.
[0032] Каждый из импульсов 62a-62h данных передает четыре бита данных и может быть, например, длиной от 12 до 27 тактов. Как правило, каждый из импульсов 62a-62h данных может включать в себя состояния низкого уровня, имеющие одинаковую длительность. Типичная длительность для состояния низкого уровня каждого из импульсов 62a-62h данных составляет 6 тактов.
[0033] Кадр 15а данных может включать в себя, после импульсов 62a-62h данных импульс 64 паузы. Импульс 64 паузы может иметь переменную длительность и регулируется так, что общая длительность каждого кадра 15 данных, передаваемого, например, в системе 10, является одной и той же общей длительностью.
[0034] Протокол SENT допускает альтернативные последовательности вывода для поддержки различных применений. В каждой из альтернативных последовательностей вывода первый полубайт 62a данных может использоваться в качестве полубайта состояния, а восьмой полубайт 62h данных может использоваться в качестве циклического избыточного кода (CRC)/полубайта контрольной суммы. Альтернативные последовательности полубайтов могут отличаться в обработке второго, третьего, четвертого, пятого, шестого и седьмого полубайтов 62b-62g данных. Примеры возможных последовательностей полубайтов перечислены ниже.
[0035] В первой примерной последовательности вывода два канала данных включены в кадр 15 данных. Первый канал включает в себя 12 битов данных и передается со вторым, третьим и четвертым полубайтами 62b-62d данных. Второй канал включает в себя 12 бит данных и передается с пятым, шестым и седьмым полубайтами 62e-62g данных.
[0036] Во второй примерной последовательности вывода два канала данных включены в кадр 15 данных. Первый канал включает в себя 16 бит и передается со вторым, третьим, четвертым и пятым полубайтами 62b-62e. Второй канал включает в себя восемь бит данных и передается с шестым и седьмым полубайтами 62f-62g данных.
[0037] В третьей примерной последовательности вывода два канала данных включены в кадр 15 данных. Первый канал включает в себя 12 бит и передается со вторым, третьим и четвертым полубайтами 62b-62d данных. Второй канал включает в себя восемь бит данных и передается с пятым и шестым полубайтами 62e-62f данных. Седьмой полубайт 62g данных может быть инвертированной копией самого старшего полубайта первого канала. Самый старший полубайт первого канала может быть, например, вторым полубайтом 62b данных.
[0038] В четвертой примерной последовательности вывода, два канала данных включены в кадр 15 данных. Первый канал включает в себя 12 бит и передается со вторым, третьим и четвертым полубайтами 62b-62d данных. Второй канал включает в себя восемь бит данных и передается с пятым и шестым полубайтами 62e-62f данных. Седьмому полубайту 62g может быть присвоено значение 00 (hex).
[0039] Как правило, первый полубайт 62a данных включает в себя информацию о состоянии, например, если была обнаружена диагностическая проблема с данными первого канала, данными второго канала и т.д.
[0040] Как правило, восьмой полубайт 62h данных включает в себя циклический избыточный код (CRC)/данные контрольной суммы. CRC/данные контрольной суммы могут быть сгенерированы как функция от данных, содержащихся в предыдущих полубайтах 62a-62g данных, и могут использоваться приемником SENT для определения того, что действительная передача SENT была принята.
[0041] Также может быть сгенерированы другие последовательности вывода, которые согласуются с протоколом SENT.
Условия ошибок
[0042] Возможные условия ошибок, которые могут быть введены в кадр 15 данных, включают в себя слишком длинный калибровочный импульс 60, слишком короткий калибровочный импульс 60, слишком длинный один или более импульсов 62 данных, слишком короткий один или более импульсов 62 данных, слишком короткий импульс 64 паузы, слишком длинный импульс 64 паузы, слишком короткое состояние низкого уровня импульса, слишком длинное состояние низкого уровня импульса, слишком много импульсов и слишком мало импульсов в кадре данных. Дополнительно, условия ошибок могут включать в себя положительные и отрицательные «шумовые» импульсы, которые принудительно вводятся в кадр 15 данных SENT. Шумовые импульсы могут быть сгенерированы из временной развертки с более высокой частотой, чем частота тактов, используемых в качестве временной развертки для генерирования кадра 15 данных, и могут моделировать случайный шум, вводимый в кадр 15 данных.
[0043] Ошибки, связанные с неправильным формированием импульса 62 данных, например, слишком длинный импульс, слишком короткий импульс, импульс со слишком коротким состоянием низкого уровня и т.д., могут быть введены в любой одиночный импульс 62 данных или любую совокупность импульсов 62 данных.
[0044] Как отмечено выше, один из полубайтов данных, обычно восьмой полубайт 62h данных, может включать в себя циклический избыточный код (CRC) или данные контрольной суммы. Данные в импульсе CRC/данных контрольной суммы генерируются как функция от предыдущих полубайтов данных. Дополнительным типом ошибки, которая может быть введена, является изменение либо CRC/данных контрольной суммы, либо данных, из которых они были получены, так, что функция не выполняется.
[0045] Примеры ошибок, перечисленные выше, не являются ограничивающими. Другие типы ошибок могут быть сгенерированы тестовым генератором 14 SENT.
Генерирование кадра данных SENT
[0046] Как обсуждалось выше, компьютер 16 вместе с генератором 18 кадров данных может генерировать и передавать кадры 15 данных SENT. Генератор 18 кадров данных включает в себя блоки цепи для выполнения операций, таких как генерирование импульса с определенной длительностью, генерирование состояния низкого уровня импульса с определенной длительностью, построение последовательности импульсов в соответствии с протоколом SENT и введение ошибок в кадр 15 данных SENT.
Программирование генератора кадров данных для генерирования кадра данных
[0047] Первоначально компьютер 16 может загружать промежуточные данные в генератор 18 кадров данных, используемый для генерирования кадра 15 данных SENT. Например, компьютер 16 может загружать данные в первую защелку 24, которая устанавливает период для тактов, генерируемых генератором 22 тактов. Компьютер 16 может дополнительно загружать во вторую защелку 26 длительность (количество тактов) состояния низкого уровня для каждого импульса, и загружать длительность каждого из импульсов кадра данных SENT в очередь 30 длительностей импульсов. Для следующих обсуждений цифровые значения будут указаны в шестнадцатеричном формате (hex).
Построение последовательности кадра данных SENT
[0048] Второй счетчик 34 может быть использован для подсчета импульсов, генерируемых для кадра 15 данных SENT. Например, второй счетчик 34 может начинаться со счета 0A. Когда второй счетчик 34 находится на счете 0A, очередь 30 длительностей импульсов может выводить данные из первой позиции. Первая позиция очереди 30 длительностей импульсов может содержать длительность первого импульса кадра 15 данных SENT. Когда генератор 18 кадров данных завершает генерирование и передачу первого импульса, например, калибровочного импульса 60a, как описано выше, второй счетчик 34 может быть уменьшен до счета 09. Очередь 30 длительностей импульсов может быть сдвинута на вторую позицию, содержащую длительность для второго импульса кадра данных SENT, например, первого импульса 62а данных. В конце каждого импульса в кадре 15 данных второй счетчик 34 может быть уменьшен, и очередь 30 длительностей импульсов может быть сдвинута на следующую позицию, пока второй счетчик 34 не достигнет значения 00 и передача не завершится. Второй счетчик 34 далее может быть установлен на значение, соответствующее количеству импульсов в следующем кадре 15 данных. Генератор 18 кадров данных может начинать генерирование нового кадра 15 данных.
Установка длительности импульсов для импульсов кадра данных
[0049] Длительность каждого импульса в кадре 15 данных может быть установлена с помощью генератора 22 тактов, очереди 30 длительностей импульсов, первого счетчика 32 и первого компаратора 36. Как описано выше, очередь 30 длительностей импульсов может быть сдвиговым регистром шириной восемь бит, имеющим 10 позиций. Каждая позиция может хранить длительность (количество тактов) для импульса в кадре 15 данных.
[0050] Генератор 22 тактов создает временную развертку для генератора 18 кадров данных. Длительность и частота тактов, генерируемых генератором 22 тактов, могут быть запрограммированы с помощью компьютера 16.
[0051] Основываясь на текущем генерируемом импульсе, очередь 30 длительностей импульсов может быть сдвинута в соответствующую позицию и может выводить значение длительности, хранящееся в этой позиции, на первый вход первого компаратора 36.
[0052] Первый счетчик 32 может быть сброшен в начале генерирования каждого импульса и может быть синхронизирован генератором 22 тактов. Первый счетчик 32 может выводить значение счета на второй вход первого компаратора 36. Первый компаратор 36 может сравнивать выходное значение первого счетчика 32 со значением, выводимым из очереди 30 длительностей импульсов. Первый компаратор 36 может обнаруживать, когда выходное значение первого счетчика равно значению, выводимому из очереди 30 длительностей импульсов. Основываясь на обнаружении первым компаратором 36, генератор 18 кадров данных завершает текущий генерируемый импульс. Как правило, кадр 15 данных SENT возвращается в состояние низкого уровня. Дополнительно, второй счетчик 34 уменьшается, и очередь 30 длительностей импульсов сдвигается. Генератор 18 кадров данных приступает к генерированию следующего импульса в кадре 15 данных SENT.
[0053] Генерирование длительности каждого импульса по отдельности позволяет генератору 18 кадров данных вводить определенные условия ошибок в импульсы в определенных местах в кадре 15 данных. Например, любой одиночный импульс или совокупности импульсов могут быть сгенерированы, чтобы быть слишком длинными или слишком короткими, программируя желаемую длительность импульса в очереди 30 длительностей импульсов.
Генерирование состояния низкого уровня импульса, переключение из состояния низкого уровня в состояние высокого уровня
[0054] Как правило, например, в кадре 15а данных, как описано выше, каждый импульс в кадре данных SENT начинается в состоянии низкого уровня и переходит в состояние высокого уровня. Продолжительность времени, в течение которого импульс является низким, может регулироваться первым счетчиком 32 вместе со второй защелкой 26 и вторым компаратором 38. Как может быть видно на Фигуре 2, второй компаратор 38 сравнивает выходное значение из первого счетчика 32 со значением, хранящимся во второй защелке 26. Выходное значение второго компаратора 38 может быть установлено, например, так, что, когда выходное значение первого счетчика 32 меньше значения, хранящегося во второй защелке 26, выходное значение второго компаратора 38 и в связи с этим значение генерируемого импульса являются низкими. Когда выходное значение первого счетчика 32, например, больше или равно значению, хранящемуся во второй защелке 26, выходное значение второго компаратора 38 и значение генерируемого импульса могут быть высокими. Таким образом, значение, хранящееся во второй защелке 26, может быть использовано для управления продолжительностью времени, в течение которого импульс является низким.
Введение принудительных импульсов
[0055] Значение импульса (высокое или низкое), которое генерируется совокупностью первого счетчика 32, второго компаратора 38 и второй защелки 26, может быть непосредственно заблокировано компьютером 16 с помощью импульсного прерывателя 40. Как описано выше, импульсный прерыватель 40 может быть выполнен в виде логической схемы, которая блокирует выходное значение второго компаратора 38 от передачи к выходу кадра данных, и выводит непосредственно высокое или низкое значение согласно входному сигналу, принимаемому от компьютера 16. Альтернативно, импульсный прерыватель 40 может включать в себя, например, транзисторы низкого сопротивления, которые «блокируют» выходной сигнал компаратора 38. Таким образом, например, компьютер 16 может моделировать электрически шумную систему, генерируя один или более положительных импульсов во время периода низкого уровня импульса или один или более отрицательных импульсов во время периода высокого уровня импульса. Положительные или отрицательные импульсы могут быть сгенерированы на основе временной развертки с более высокой частотой, чем частота тактов, и в связи с этим могут моделировать шум в кадре 15 данных.
Альтернативные или дополнительные способы приема сообщения и данных об ошибках
[0056] Дополнительно или альтернативно, чтобы принимать сообщение SENT и команды об ошибках через сеть транспортного средства, могут использоваться другие механизмы. Например, данные сообщения могут быть введены в виде аналогового сигнала, моделируя аналоговый выход датчика. Компьютер 16 может принимать аналоговый сигнал и преобразовывать, например, используя аналого-цифровой преобразователь (ADC), аналоговый входной сигнал в цифровое значение. Дополнительно, например, интерфейс 20 может включать в себя один или более переключателей или других устройств ввода. Переключатели или другие устройства ввода могут быть установлены пользователем, чтобы указывать один или более типов ошибок, генерируемых тестовым генератором 14 SENT.
Примерная схема процесса
[0057] Фигура 4 представляет собой схему примерного процесса 400 для генерирования кадра данных SENT на основе инструкций, принимаемых через шину сети транспортного средства. Процесс 400 начинается в блоке 405.
[0058] В блоке 405 компьютер 16 в тестовом генераторе 14 SENT определяет, являются ли доступными данные нового сообщения. Например, компьютер 16 модуля 21 связи может принимать инструкцию, включающую в себя сообщение, через шину 42 сети транспортного средства. После приема инструкции модуль 21 связи может сохранять сообщение и устанавливать флаг «сообщение доступно», указывающий, что новое сообщение является доступным. Компьютер 16, выполняющий процесс 400, может запросить модуль 21 о сообщении на основе флага. Если флаг «сообщение доступно» был установлен, процесс 400 продолжается в блоке 410. Если флаг «сообщение доступно» не был установлен, процесс 400 продолжается в блоке 415.
[0059] В блоке 410 компьютер 16 загружает новое доступное сообщение, чтобы сделать его данные доступными для обработки. Например, компьютер 16 может передавать данные сообщения от модуля 21 связи в ячейку памяти, выделенную для обработки кадров 15 данных SENT. Процесс 400 далее продолжается в блоке 415.
[0060] В блоке 415, который может следовать за блоком 405 или блоком 410, компьютер 16 определяет, являются ли доступными новые данные об ошибках. Например, модуль 21 связи может принимать инструкцию, включающую в себя данные об ошибках, через шину 42 сети транспортного средства. После приема инструкции модуль 21 связи может сохранять данные об ошибках и устанавливать флаг «данные об ошибках доступны», указывающий, что новые данные об ошибках являются доступными. Компьютер 16, выполняющий процесс 400, может запрашивать флаг. Если флаг «новые данные об ошибках доступны» был установлен, процесс 400 продолжается в блоке 420. Если флаг «новые данные об ошибках доступны» не был установлен, процесс 400 продолжается в блоке 425.
[0061] В блоке 420, компьютер 16 загружает данные об ошибках, чтобы сделать данные доступными для обработки. Например, компьютер 16 может передавать данные об ошибках от модуля 21 связи в ячейку памяти, выделенную для обработки кадров 15 данных SENT. Процесс продолжается в блоке 425.
[0062] В блоке 425 компьютер 16 определяет, произошло ли событие запуска, для генерирования нового кадра 15 данных SENT. Например, компьютер 16 может принимать сигнал от генератора 18 кадров данных, указывающий, что генератор 18 кадров данных готов принимать новые данные. Сигнал может, например, быть флагом готовности, установленным генератором 18 кадров данных, или сигналом прерывания, принятым от генератора 18 кадров данных. Если компьютер 16 определяет, что произошло событие запуска, процесс 400 продолжается в блоке 430. Если компьютер 16 определяет, что событие запуска еще не произошло, процесс 400 может возвращаться в блок 405 и продолжать следить за получением данных нового сообщения.
[0063] Если компьютер 16 определяет в блоке 425, что произошло событие запуска, процесс 400 продолжается в блоке 430.
[0064] В блоке 430 компьютер 16 генерирует промежуточные данные, как описано выше, для генерирования действительного кадра данных SENT. Компьютер 16 на основе доступных в настоящее время данных сообщения, принятых в блоках 405 и 410, определяет длительность каждого импульса в промежуточных данных, период для тактов, длительность состояния низкого уровня, количество импульсов и т.д. в соответствии с протоколом SENT и сохраняет данные для дополнительной обработки.
[0065] В блоке 430 компьютер 16 перед генерированием промежуточных данных может определять конкретную передаваемую последовательность вывода. Как описано выше, протокол SENT поддерживает несколько последовательностей вывода. Тестовый генератор 14 может поддерживать генерирование одной или более из этих последовательностей. Например, компьютер 16 может принимать входной сигнал от интерфейса 20, выбирающего конкретную последовательность вывода. Альтернативно, компьютер 16 может принимать инструкцию от сети 42 транспортного средства, выбирающей конкретную последовательность вывода. Далее компьютер 16 может генерировать промежуточные данные в соответствии с данными сообщения, принятыми в блоке 405, и выбранной последовательностью вывода. Процесс 400 продолжается в блоке 435.
[0066] В блоке 435 компьютер 16 изменяет промежуточные данные, сгенерированные в блоке 430, для введения ошибок в соответствии с данными об ошибках, принятыми в блоках 415 и 420. Например, на основе данных об ошибках компьютер 16 может изменять длительности одного или более импульсов в промежуточных данных, изменять период для тактов и т.д. Процесс продолжается в блоке 440.
[0067] В блоке 440 компьютер 16 загружает промежуточные данные, собранные в блоках 430 и 335, в генератор 18 кадров данных. Как описано выше, длительность каждого импульса кадра данных SENT загружается в очередь 30 длительностей импульсов, период тактов загружается в первую защелку 24, длительность состояния низкого уровня загружается во вторую защелку 26 и т.д. Процесс продолжается в блоке 445.
[0068] В блоке 445 генератор 18 кадров данных под управлением компьютера 16 генерирует кадр 15 данных SENT. Генератор 18 кадров данных может дополнительно генерировать, например, флаг прерывания и/или флаг готовности, указывающий, что генератор 18 кадров данных готов начать передачу нового кадра 15 данных. Процесс 400 продолжается в блоке 450.
[0069] В блоке 450 компьютер 16 определяет, должен ли закончиться процесс 400. Например, компьютер 16 может быть запрограммирован на отправление одного кадра 15 данных SENT, а затем на ожидание дальнейших инструкций. Альтернативно, компьютер 16 может быть запрограммирован на непрерывное отправление кадров 15 данных SENT, пока он не получит инструкцию прекратить процесс 400. Инструкция прекратить процесс 400 может прийти, например, от интерфейса 20 или через вход 42 сети. Если компьютер 16 определяет, что процесс 400 должен продолжаться, процесс 400 может возвращаться в блок 405. В противном случае, процесс 400 может заканчиваться.
Заключение
[0070] Как используется здесь, наречие «по существу» означает, что форма, конструкция, измерение, количество, время и т.д. могут отличаться от точно описанной геометрии, расстояния, измерения, количества, времени и т.д. из-за несовершенств материалов, механической обработки, производства и т.д.
[0071] Выражение «примерный» используется здесь в смысле выражения примера, например, ссылка на «примерный виджет» должна быть истолкована как просто ссылка на пример виджета.
[0072] На чертежах, одинаковые ссылочные позиции обозначают одинаковые элементы. Дополнительно, некоторые или все из этих элементов могут быть изменены. Что касается компонентов, процессов, систем, способов и т.д., описанных здесь, следует понимать, что они обеспечены с целью иллюстрации определенных вариантов осуществления, и никоим образом не должны быть истолкованы, как ограничивающие заявленное изобретение.
[0073] Соответственно, должно быть понятно, что вышеприведенное описание предназначено быть иллюстративным, а не ограничивающим. Многие варианты осуществления и применения, отличные от обеспеченных примеров, будут ясны специалисту в данной области техники при изучении вышеприведенного описания. Объем охраны изобретения должен быть определен не со ссылкой на вышеприведенное описание, а со ссылкой на приложенную формулу изобретения, вместе с полным объемом эквивалентов, на которые такая формула изобретения имеет право. Ожидается и предполагается, что будущие разработки будут возникать в области техники, обсуждаемой здесь, и что раскрытые системы и способы будут включены в такие будущие варианты осуществления. В итоге, должно быть понятно, что изобретение может быть преобразовано и изменено и ограничивается только следующей далее формулой изобретения.
[0074] Все выражения, используемые в формуле изобретения, предназначены для использования их в простых и общепринятых значениях, которые понятны специалисту в данной области техники, если здесь явным образом не указано обратное. В частности, использование единственного числа следует понимать как перечисляющее один или более из указанных элементов, кроме тех случаев, когда пункт формулы изобретения излагает явное ограничение на обратное.