СОЗДАНИЕ СЦЕНАРИЯ В ТЕЛЕМАТИЧЕСКОМ БЛОКЕ УПРАВЛЕНИЯ
SCRIPT CREATION IN TELEMATIC CONTROL UNIT

Область техники, к которой относится изобретение
[0001] Это изобретение относится к выполнению сценариев в телематическом блоке управления транспортного средства.
Уровень техники
[0002] Телематические блоки управления (TCU) транспортных средств извлекают данные, сформированные в транспортном средстве, подготавливают извлеченные данные для передачи и затем передают данные через антенну. Традиционные TCU выполняют эти операции согласно инструкциям, формируемым согласно предварительно скомпилированному коду. Предварительно скомпилированный код затруднительно обновлять динамически, и, следовательно, производители TCU должны предварительно загружать (т.е. аппаратно кодировать) полный комплект программного обеспечения TCU во время производства. Термин "аппаратный код", когда используется на уровне техники, означает внедрение кода в исходный код программы, так что внесение изменений во внедренный код требует от пользователя предоставлять новый исходный код. Эта технология приводит в результате к системе с потерями, которая собирает данные способом, неподходящим для обнаружения миллисекудного разрешения быстро изменяющихся параметров транспортного средства.
Сущность изобретения
[0003] Это изобретение устраняет вышеописанные проблемы, предоставляя системы и способы динамического обновления кода, работающего в TCU транспортного средства. В некоторых вариантах осуществления изобретение предоставляет телематическую систему управления, включающую в себя: внешний сервер, сконфигурированный, чтобы сериализовать сценарий с помощью внешнего буфера протокола и передавать сериализованный сценарий в TCU; транспортное средство, имеющее датчики и TCU, причем TCU сконфигурирован, чтобы: десериализовать сценарий с помощью буфера протокола TCU, исполнять сценарий через интерпретатор, предварительно загруженный в TCU, сохранять данные от датчиков на основе сценария.
[0004] Это раскрытие также предоставляет способ управления телематическим блоком управления (TCU) в транспортном средстве, включающем в себя датчики, причем TCU включает в себя антенну, процессор и память, при этом способ включает в себя: сериализацию сценария с помощью буфера протокола внешнего сервера, передачу сериализованного сценария в TCU, десериализацию сценария с помощью буфера протокола TCU, исполнение сценария через интерпретатор, предварительно загруженный в TCU, сохранение данных от датчиков транспортного средства на основе сценария.
Краткое описание чертежей
[0005] Для лучшего понимания изобретения ссылка может быть сделана на варианты осуществления, показанные на следующих чертежах. Компоненты на чертежах необязательно начерчены в масштабе, и связанные элементы могут быть опущены, или в некоторых случаях пропорции могут быть преувеличены, чтобы подчеркивать и ясно иллюстрировать новые признаки, описанные в данном документе. Кроме того, компоненты системы могут быть по-разному размещены, как известно в области техники. Кроме того, на чертежах одинаковые ссылочные номера обозначают соответствующие части повсюду на нескольких видах.
[0006] Фиг. 1 - это блок-схема передачи данных в и от транспортного средства.
[0007] Фиг. 2 - это блок-схема модулей, содержащихся в коде создания сценария.
[0008] Фиг. 3 - это блок-схема виртуальной машины, исполняющейся с помощью сценария.
[0009] Фиг. 4 - это блок-схема способа передачи кода создания сценария в транспортное средство.
[0010] Фиг. 5 - это блок-схема аппаратных средств транспортного средства.
[0011] Фиг. 6 - это блок-схема взаимодействия сценария с аппаратными средствами транспортного средства.
Подробное описание примерных вариантов осуществления
[0012] В то время как изобретение может быть осуществлено в различных формах, на чертежах показаны, и будут описаны далее в данном документе, некоторые примерные и неограничивающие варианты осуществления с пониманием, что настоящее изобретение должно рассматриваться как иллюстрация изобретения и не предназначено, чтобы ограничивать изобретение конкретными иллюстрированными вариантами осуществления.
[0013] В этой заявке использование разделительного союза предназначено, чтобы включать в себя сослагательное наклонение. Использование определенных или неопределенных артиклей не предназначено, чтобы указывать количество элементов. В частности, ссылка на объект с артиклем "the" или объект с артиклями "a" и "an" предназначена, чтобы обозначать также один из возможного множества таких объектов. Дополнительно, союз "или" может быть использован, чтобы передавать признаки, которые присутствуют одновременно, вместо взаимно исключающих альтернатив. Другими словами, союз "или" должен пониматься как включающий в себя "и/или".
[0014] Со ссылкой на фиг. 5, в целом, показаны и проиллюстрированы аппаратные компоненты 500 транспортного средства 110. Транспортное средство 110 может быть пассажирским транспортным средством, имеющим двигатель или мотор, аккумулятор, рулевое колесо, окна, двери, ремни безопасности, шины и т.д. Транспортное средство 110 может быть седаном, внедорожником, мотоциклом или грузовиком. Транспортное средство может быть с бензиновым двигателем, с дизельным двигателем, двигателем на природном газе, гибридным или электрическим.
[0015] Транспортное средство 110 имеет главную шину 501 данных, которая функционально связывает один или более процессоров 503, энергозависимую память 503, такую как оперативное запоминающее устройство, энергонезависимую память 504, такую как накопитель на магнитном жестком диске или твердотельный накопитель, исполнительные механизмы 506, которые управляют перемещением электромеханических компонентов транспортного средства, таких как трансмиссия или топливные инжекторы, и локальные датчики 505, которые конфигурируются, чтобы измерять показатели событий, происходящих в или вокруг транспортного средства. Примеры локальных датчиков 505 включают в себя датчики температуры двигателя, датчики окружающей температуры, датчики температуры пассажирского салона, RPM-датчики двигателя, датчики температуры аккумулятора, датчики уровня заряда аккумулятора, датчик скорости и т.д. Датчики могут быть цифровыми или аналоговыми.
[0016] Транспортное средство 110 беспроводным образом передает данные через телематический блок управления (TCU) 550, который функционирует в качестве модема для транспортного средства. Как показано на фиг. 5, TCU 550 может быть функционально соединен с главной шиной 501 данных. TCU является автономным блоком обработки с шиной 551 данных TCU, функционально связанной с процессорами 552 TCU, энергозависимой памятью 553 TCU, энергонезависимой памятью 554 TCU и антеннами 555. Память TCU может включать в себя множество аппаратно закодированных телематических протоколов. Аппаратная конфигурация TCU известна в области техники и раскрыта, например, в публикации США № 2007/0055414, которая включена сюда в своей полноте посредством ссылки.
[0017] Во время обычной работы различные локальные датчики 505 измеряют условия в или около транспортного средства. Локальные датчики выводят в шину 501 данных транспортного средства поток сериализованных данных, которые (a) идентифицируют датчик и (b) включают в себя значение измерения или показатель. Подходящие локальные датчики транспортного средства известны в области техники и в настоящее время существуют в общепринятых транспортных средствах.
[0018] Возвращаясь к TCU, одна или более антенн 555 TCU могут быть сконфигурированы, чтобы формировать и принимать беспроводные сигналы, предоставляющие возможность беспроводного соединения через одну или более сетей доставки услуг. Сети могут быть общепринятыми сотовыми сетями, такими как сети, которыми владеют и управляют операторы общественной сотовой связи, включающие в себя AT&T, Verizon, T-Mobile и т.д. Сети могут быть патентованными беспроводными сетями или сетями между транспортными средствами. Подходящие антенны являются коммерчески доступными и известны в области техники.
[0019] TCU 550 включает в себя телематические протоколы, сохраненные в памяти TCU для исполнения в процессоре TCU. Телематические протоколы конфигурируются, чтобы принимать данные, отмеченные для передачи внешнему источнику, затем преобразовывать данные в последовательность битов, подходящую для передачи в качестве сигналов или волн через одну или более антенн 555. Как отмечено выше, телематические протоколы могут быть аппаратно закодированы в память TCU.
[0020] Обращаясь теперь к фиг. 1, в целом, показан и проиллюстрирован способ динамического обновления программного обеспечения, работающего или сохраненного в TCU 550. Человек вводит данные в пользовательский интерфейс 101 элемента веб-службы. Пользовательский интерфейс 101 элемента веб-службы отображается в ответ на осуществление человеком доступа к компьютерной программе, такой как веб-сайт. Человек вводит данные, такие как строки кода создания сценария, в пользовательский интерфейс элемента веб-службы в неструктурированной форме. Неструктурированные данные являются типично читаемой человеком необработанной информацией. Например, текст этой патентной заявки является неструктурированными данными. Структурированные данные, напротив, являются организованными согласно некоторым логическим правилам. Структурированные данные являются типично машиночитаемыми.
[0021] Возвращаясь к фиг. 1, пользовательский интерфейс 101 элемента веб-службы преобразует неструктурированные данные в структурированные или машиночитаемые данные. Например, человек может вводить строку кода, предназначенного для исполнения в транспортном средстве. Пользовательский интерфейс 101 затем структурирует эти данные, так что они следуют набору логических правил, которые могут быть считаны и реализованы посредством другого программного обеспечения.
[0022] Буфер 102 протокола элемента веб-службы принимает структурированные данные и преобразует их в сериализованные данные. Сериализованные данные могут быть осуществлены в битовом формате, который предоставляет возможность сохранения сериализованных данных на компьютере или передачи между компьютерами как последовательности физических электрических (или магнитных) сигналов или импульсов. В одном варианте осуществления настоящего изобретения буфером 102 протокола является Google Protocol Buffer (GPB). В различных вариантах осуществления буфер 102 протокола работает как API для TCU 550. Более конкретно, буфер 102 протокола конфигурируется, чтобы передавать сериализованные данные в TCU, такие как строки кода, для исполнения в TCU. Буфер 102 протокола также конфигурируется, чтобы десериализовать данные, отправленные из TCU, в указанную пользователем структуру данных. Дополнительные отличительные признаки GPB описываются в GPB Developer Guide, доступном по адресу developers.google.com/protocol-buffers/docs/techniques, который включен сюда  в своей полноте посредством ссылки.
[0023] Со ссылкой на фиг. 1, буфер 102 протокола может передавать структурированные данные другим приложениям 108, работающим на том же сервере, что и буфер протокола. Другие приложения 108 могут сериализовать данные для передачи внешним серверам, размещающим информационное облако 109.
[0024] После сериализации структурированных данных, буфер 102 протокола передает сериализованные данные транспортному средству 110, в частности, TCU 550, через сеть 103 доставки услуг. Сети доставки услуг включают в себя общепринятые сотовые сети, такие как сети, которыми владеют и управляют операторы общественной сотовой связи, включающие в себя AT&T, Verizon, T-Mobile и т.д.
[0025] Транспортное средство 110 принимает сериализованные данные, такие как электрические сигналы или импульсы, через модем 104 TCU, который включает в себя антенну 555 TCU и программы, сохраненные в памяти TCU и исполняемые в процессоре 552 TCU. Модем TCU декодирует физические сигналы или импульсы, принятые в антенне, в машиночитаемые сериализованные данные. В различных вариантах осуществления антенна 555 TCU включает в себя специализированный процессор и память.
[0026] Машиночитаемый битовый формат является копией сериализованных данных, передаваемых от буфера 102 протокола элемента веб-службы через сеть 103 доставки услуг. Чтобы взаимодействовать с данными, TCU десериализует последовательность битов в структурированные данные через буфер протокола, сохраненный в памяти 553 и 554 TCU и исполняемый в процессоре 552 TCU. Буфер протокола TCU может включать в себя ту же программу или программное обеспечение сериализации, что и буфер 102 протокола элемента веб-службы. Посредством десериализации данных буфер 105 протокола TCU реплицирует структурированные данные, первоначально сериализованные в буфере 102 протокола элемента веб-службы.
[0027] TCU формирует виртуальную машину с помощью десериализованных данных, принятых от модема 104 TCU. Более конкретно, десериализованные данные включают в себя сценарий для исполнения в TCU. Программное обеспечение, предварительно загруженное в память TCU, как объяснено ниже, конфигурируется, чтобы запускать сценарий в процессоре TCU, таким образом, создавая виртуальную машину.
[0028] Фиг. 6 иллюстрирует блок-схему того, как сценарий взаимодействует с аппаратными средствами и программным обеспечением, предварительно загруженным в транспортное средство. Более конкретно, транспортное средство включает в себя аппаратные средства 604, такие как аппаратные средства TCU, иллюстрированные на фиг. 5. Микропрограммное обеспечение 603 TCU (или операционная система TCU) предварительно загружается в транспортное средство и конфигурируется, чтобы взаимодействовать с аппаратными средствами 604 TCU. Интерпретатор 602 также предварительно загружается в TCU и конфигурируется, чтобы преобразовывать Lua Script в инструкции, считываемые микропрограммным обеспечением 603. Взаимодействие Lua Script с микропрограммным обеспечением, в целом, известно в области техники и описано, например, в публикации США № 2007/0046821, которая включена сюда в своей полноте посредством ссылки.
[0029] Фиг. 2, в целом, иллюстрирует различные операции строк кода сценария 601, такого как Lua Script. Каждая строка кода 200 может включать в себя один или более из модуля 201 источника, модуля 202 обработки и модуля 203 перехода. Модуль 201 источника идентифицирует один или более конкретных датчиков и структуру данных датчика. Модуль 203 обработки включает в себя математические операции, которые аппаратные средства TCU выполняют по входным данным от конкретных датчиков. Модуль 204 перехода идентифицирует, как сценарий реагирует на выходные данные модуля 203 обработки.
[0030] Фиг. 3 - это блок-схема виртуальной машины 300, созданной с помощью строк кода 200. В блоке 301 виртуальная машина принимает данные от конкретных датчиков (согласно модулю 201 источника) в конкретном формате или структуре. В блоке 302 виртуальная машина выполняет операции по принятым данным согласно инструкциям в модуле 202 обработки. В блоке 303 виртуальная машина выводит новые структурированные данные. В блоке 304 виртуальная машина применяет код или функции в модуле 204 перехода к новым структурированным данным, чтобы формировать один или более результатов.
[0031] Фиг. 3 изображает возможные результаты 305-310. Результаты могут инструктировать виртуальной машине сохранять данные в конкретном местоположении в памяти TCU, отбрасывать данные, передавать данные через модем TCU или исполнять конкретные строки кода создания сценария. Lua 5.3 Reference Manual, которое включено сюда в своей полноте посредством ссылки, включает в себя более полное описание видов операций создания сценария, возможных в Lua.
[0032] Со ссылкой на фиг. 1, новые структурированные данные возвращаются в буфер 102 протокола элемента веб-службы как сериализованные данные через буфер 105 протокола TCU, модем 104 TCU и сеть 103 доставки услуг. В различных вариантах осуществления TCU конфигурируется, чтобы только передавать (или только сериализовать с помощью буфера 102 протокола) данные через сеть доставки услуг в конце ездового цикла. Другими словами, TCU конфигурируется, чтобы локально хранить (a) структурированные данные или (b) сериализованные структурированные данные до тех пор, пока TCU не обнаружит конец ездового цикла. TCU может обнаруживать конец ездового цикла со ссылкой на одно или более из местоположения ключа транспортного средства, присутствия водителя на водительском сиденье, доступности некоторой сети (т.е. обнаружения домашней wifi-сети) и текущего состояния мотора транспортного средства (например, активен или неактивен).
[0033] Должно быть понятно, что буфер 102 протокола элемента веб-службы может дополнять данные, принятые от пользовательского интерфейса 101 элемента веб-службы, инструкциями, принятыми от других приложений 108. Другие приложения 108 могут быть на связи с базами данных, сохраненными в облаке 109. Аналогично, буфер 102 протокола элемента веб-службы может сообщать данные, принятые от транспортного средства 110, и пользовательскому интерфейсу 101 элемента веб-службы, и другим приложениям 108, соединенным с облаком 109.
[0034] Обращаясь к фиг. 4, способ установки новой виртуальной машины в транспортном средстве, в целом, показан и проиллюстрирован с помощью блок-схемы 400. Элемент 401 веб-службы представляет программу, работающую на удаленном компьютере. Сеть 402 доставки услуг является беспроводной сетью, сконфигурированной, чтобы доставлять данные от удаленного компьютера транспортному средству. Телематический блок управления (TCU) 403 загружается в транспортное средство, такое как транспортное средство 110. Брандмауэр 404 наблюдает и контролирует трафик, протекающий между интерфейсом веб-службы и TCU 403 транспортного средства.
[0035] В одном примере система работает следующим образом: Элемент веб-службы, на этапе 405, подготавливает предупреждение, инструктирующее TCU ожидать пакет, определяющий новую виртуальную машину 200. SDN пересылает предупреждение в TCU на этапе 406. TCU обрабатывает предупреждение и определяет, что он готов принять новую виртуальную машину, на этапе 407. TCU отправляет состояние готовности на этапе 408 через модем TCU в SDN. SDN пересылает состояние готовности элементу веб-службы на этапе 409.
[0036] Элемент веб-службы отвечает сериализованными данными, определяющими новую виртуальную машину, на этапе 410. SDN пересылает данные в TCU на этапе 411. На этапе 412 TCU десериализует данные, получая в результате структурированные данные, осуществляющие сценарий. Непосредственно после этого TCU загружает сценарий в память и подготавливается создавать виртуальную машину.
[0037] После этого TCU отправляет подтверждение через SDN на этапе 413. SDN пересылает подтверждение элементу веб-службы на этапе 414. Человек или программное обеспечение, работающее в элементе веб-службы, инструктирует TCU исполнять виртуальную машину на этапе 415. SDN пересылает инструкцию в TCU на этапе 416. TCU исполняет виртуальную машину на этапе 417 и отправляет подтверждение элементу веб-службы на этапах 418 и 419.
[0038] На этапах 420 и 421 человек или программное обеспечение, работающее в элементе веб-службы, инструктирует TCU завершать исполнение виртуальной машины. На этапе 422 TCU завершает исполнение виртуальной машины. На этапах 423 и 424 TCU подтверждает, что виртуальная машина выключена.
[0039] Должно быть понятно в целях формулы изобретения, термин "TCU", таким образом, определяется, чтобы означать "телематический блок управления, содержащий одну или более антенн, один или более процессоров и память". Должно быть дополнительно понятно, что в целях формулы изобретения термин "загруженное транспортное средство" определяется, чтобы означать "транспортное средство, содержащее: мотор, который приводит в движение одно или более колес, тормоза для колес, систему рулевого управления, сконфигурированную, чтобы корректировать направление, по меньшей мере, одного из колес, источник накопленной энергии, сконфигурированный, чтобы приводить в действие мотор, один или более процессоров, память и локальные датчики транспортного средства, сконфигурированные, чтобы сообщать показания измерений процессорам".
[0040] Вышеописанные варианты осуществления, и, в частности, какие-либо "предпочтительные" варианты осуществления, являются возможными примерами реализаций и просто излагаются для ясного понимания принципов изобретения. Многие вариации и модификации могут быть выполнены в вышеописанном варианте(ах) осуществления практически без отступления от духа и принципов технологий, описанных в данном документе. Все модификации предназначены быть включенными в данном документе в рамки этого изобретения и защищены последующей формулой изобретения.