System for updating peripheral device firmware
Patent Information
- Application Number
- CN202580020558.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-03-11
- Filing Date
- 2025-03-10
- Publication Date
- 2026-10-16
Smart Images

Figure CN122935756A_ABST
Abstract
Description
[0001] Prior application data
[0002] This application claims priority to U.S. Provisional Patent Application No. 63 / 563,631, filed March 11, 2024, entitled "Systems, Devices, and Methods for Updating Peripheral Device Firmware". Technical Field
[0003] This disclosure generally relates to systems, apparatus, and methods for updating firmware data, and in particular to updating the firmware of peripheral devices. Background Technology
[0004] Peripheral devices can be controlled by firmware. It is desirable to be able to update such firmware as needed to optimize the performance of such peripheral devices. Furthermore, it is desirable to be able to perform these updates using existing connection or communication hardware at the peripheral device, so that no changes to the connection with the peripheral device are required for the purpose of updating the firmware. Summary of the Invention
[0005] According to a broad aspect, this disclosure describes a system comprising: a management server having at least one first communication module, at least one first processor, and at least one first non-transitory processor-readable storage medium storing first processor-executable instructions; a telematics device having a second communication module, a third communication module, at least one second processor, and at least one second non-transitory processor-readable storage medium storing second processor-executable instructions; and a peripheral device having a fourth communication module, a fifth communication module, at least one third processor, and at least one third non-transitory processor-readable storage medium storing third processor-executable instructions, wherein: the third processor-executable instructions cause the peripheral device to: transmit, via the fourth communication module, an indication of a first firmware version of firmware installed at the peripheral device for reception at the telematics device; the second processor-executable instructions cause the telematics device to: receive, via the second communication module, an indication of the first firmware version from the peripheral device; and transmit, via the third communication module, the indication of the first firmware version for reception at the telematics device. The first processor can execute instructions to cause the management server to: receive an indication of a first firmware version from the telematics device via at least one first communication module; compare the first firmware version with a second firmware version configured for distribution to peripheral devices via at least one first processor; and, in response to determining that the second firmware version differs from the first firmware version, transmit an identifier of an access location for firmware data corresponding to the second firmware version via at least one first communication module for reception at the telematics device; the second processor can execute instructions to further cause the telematics device to: receive an identifier of an access location from the management server via a third communication module; and transmit the identifier of the access location via the second communication module for reception at the peripheral device; and the third processor can execute instructions to further cause the peripheral device to: receive an identifier of an access location from the telematics device via a fourth communication module; retrieve firmware data corresponding to the second firmware version from the access location via a fifth communication module; and update the firmware installed on the peripheral device based on the firmware data retrieved from the access location via at least one third processor.
[0006] The fourth communication module and the second communication module may include corresponding wired communication modules for wired communication between the remote information processing device and the peripheral device.
[0007] The fourth communication module and the second communication module may include corresponding short-range wireless communication interfaces.
[0008] The fifth communication module may include a first cellular modem at a peripheral device communicating via the first cellular network. The third communication module may include a second cellular modem at a telematics device communicating via the first cellular network or a second cellular network different from the first cellular network.
[0009] At least one first communication module may include a network module that is communicatively coupled to a cloud network or the Internet.
[0010] The location of access can be indicated by a Uniform Resource Locator (URL).
[0011] The access location may include at least one first non-transitory processor-readable storage medium.
[0012] The access location may include at least one fourth non-transitory processor-readable storage medium at a data storage location that is remote from peripheral devices, remote information processing devices, and management servers.
[0013] The peripheral device may also include at least one image sensor.
[0014] Peripheral devices and telematics devices can be located at the vehicle, while management servers and access points can be located away from the vehicle.
[0015] The fifth communication module can typically be in an inactive mode where communication with the management server is disabled. The third processor-executable instructions, which enable the peripheral device to retrieve firmware data corresponding to the second firmware version, can also cause the peripheral device to operate the fifth communication module in an active mode where communication with the management server is enabled. Furthermore, the third processor-executable instructions can also cause the peripheral device to operate the fifth communication module in an inactive mode after retrieving the firmware data corresponding to the second firmware version.
[0016] The second processor executable instructions can also cause the telematics device to: receive vehicle identification information from a vehicle to which the telematics device is connected; and transmit the vehicle identification information via a third communication module for reception at a management server; and cause the management server to compare a first firmware version with a second firmware version configured for distribution to peripheral devices. The first processor executable instructions can also cause at least one first processor to compare the first firmware version with a second firmware version configured for distribution to peripheral devices and compatible with the vehicle identified in the vehicle identification information.
[0017] The second firmware version can be the most recent firmware version.
[0018] A third processor-executable instruction that enables the fourth communication module to transmit an indication of the first firmware version installed on the peripheral device can cause the fourth communication module to transmit the indication of the first firmware version in response to being woken up by the peripheral device.
[0019] Third processor executable instructions that enable at least one third processor to update the firmware installed on the peripheral device based on firmware data retrieved from the access location can enable at least one third processor to update the firmware installed on the peripheral device after the vehicle in which the peripheral device is located is deactivated.
[0020] The first processor-executable instructions may further cause the management server to: access a stored indication of a hypothetical firmware version of the firmware installed on the peripheral device at a non-transitory processor-readable storage medium accessible by the management server; compare the hypothetical firmware version indicated in the stored indication with a second firmware version set for distribution; and, in response to determining that the second firmware version differs from the hypothetical firmware version indicated in the stored indication, transmit an indication for performing firmware action at the peripheral device via at least one first communication module for reception at the telematics device. The second processor-executable instructions may further cause the telematics device to: receive an indication for performing firmware action via a third communication module of the telematics device; and, in response to receiving the indication for performing firmware action, transmit a wake-up command via the second communication module. The third processor-executable instructions may further cause the peripheral device to: receive a wake-up command via a fourth communication module; and wake up the peripheral device; and cause the fourth communication module of the peripheral device to transmit an indication of the first firmware version. The third processor-executable instructions may cause the fourth communication module to transmit the indication of the first firmware version in response to the peripheral device being woken up.
[0021] The second processor executable instructions may also cause the telematics device to store an indication of a first firmware version received from a peripheral device via at least one second non-transitory processor-readable storage medium; the second processor executable instructions may also cause the telematics device to access the indication of the first firmware version from at least one second non-transitory processor-readable storage medium; and the second processor executable instructions that cause the third communication module of the telematics device to transmit the indication of the first firmware version may also cause the third communication module to transmit the indication of the first firmware version accessed from at least one second non-transitory processor-readable storage medium.
[0022] According to another broad aspect, this disclosure describes a system comprising: a management server having at least one first communication module, at least one first processor, and at least one first non-transitory processor-readable storage medium storing instructions executable by the first processor; and a telematics device having a second communication module, a third communication module, at least one second processor, and at least one second non-transitory processor-readable storage medium storing instructions executable by the second processor, wherein: the second processor-executable instructions cause the telematics device to: receive, via the second communication module, an indication of a first firmware version of firmware installed at a peripheral device communicatively coupled to the telematics device; and transmit, via the third communication module, the indication of the first firmware version for use by the management server. The first processor executes instructions that cause the management server to: receive an indication of a first firmware version from the telematics device via at least one first communication module; compare the first firmware version with a second firmware version configured for distribution to peripheral devices via at least one first processor; and, in response to determining that the second firmware version differs from the first firmware version, transmit via at least one first communication module an identifier of an access location for firmware data corresponding to the second firmware version for reception at the telematics device; and the second processor executes instructions that further cause the telematics device to: receive an identifier of an access location from the management server via a third communication module; and transmit via the second communication module an identifier of an access location for reception by peripheral devices and subsequent retrieval of firmware data corresponding to the second firmware version from the access location.
[0023] The second communication module may include a wired communication module for wired communication between the remote information processing device and peripheral devices.
[0024] The second communication module may include a short-range wireless communication module.
[0025] The third communication module may include a cellular modem at a telematics device that communicates via a cellular network.
[0026] At least one first communication module may include a network module that is communicatively coupled to a cloud network or the Internet.
[0027] The location of access can be indicated by a Uniform Resource Locator (URL).
[0028] The access location may include at least one first non-transitory processor-readable storage medium.
[0029] The access location may include at least one other non-transitory processor-readable storage medium located at a data storage location far from peripheral devices, remote information processing devices, and management servers.
[0030] The telematics device can be located at the vehicle where the peripheral device is located, and the management server and access location are far away from the vehicle.
[0031] The second processor executable instructions can also cause the telematics device to: receive vehicle identification information from a vehicle to which the telematics device is connected; and transmit the vehicle identification information via a third communication module for reception at a management server; and cause the management server to compare a first firmware version with a second firmware version configured for distribution to peripheral devices. The first processor executable instructions can also cause at least one first processor to compare the first firmware version with a second firmware version configured for distribution to peripheral devices and compatible with the vehicle identified in the vehicle identification information.
[0032] The second firmware version can be the most recent firmware version.
[0033] The second processor executable instructions may also cause the telematics device to store an indication of the first firmware version through at least one second non-transitory processor-readable storage medium; the second processor executable instructions may also cause the telematics device to access the indication of the first firmware version from at least one second non-transitory processor-readable storage medium; and the second processor executable instructions that cause the third communication module of the telematics device to transmit the indication of the first firmware version may also cause the third communication module to transmit the indication of the first firmware version accessed from at least one second non-transitory processor-readable storage medium.
[0034] According to another broad aspect, this disclosure describes a method performed between a management server having at least one first communication module, a telematics device having a second and a third communication module, and a peripheral device having a fourth and a fifth communication module, the method comprising: transmitting an indication of a first firmware version of firmware installed on the peripheral device to a second communication module of the telematics device via the fourth communication module of the peripheral device; transmitting the indication of the first firmware version to at least one first communication module of the management server via the third communication module of the telematics device; comparing the first firmware version with a second firmware version configured for distribution to the peripheral device via at least one first processor of the management server; in response to determining that the second firmware version differs from the first firmware version, transmitting an identifier of an access location of firmware data corresponding to the second firmware version to the third communication module of the telematics device via the at least one first communication module of the management server; transmitting the identifier of the access location to the fourth communication module of the peripheral device via the second communication module of the telematics device; retrieving firmware data corresponding to the second firmware version from the access location via the fifth communication module of the peripheral device; and updating the firmware installed on the peripheral device based on the firmware data retrieved from the access location via at least one second processor on the peripheral device.
[0035] The fifth communication module can typically be in an inactive mode where communication with the management server is not enabled, and retrieving firmware data corresponding to the second firmware version may also include operating the fifth communication module in an active mode where communication with the management server is enabled.
[0036] The third processor's executable instructions can also enable peripheral devices to operate the fifth communication module in inactive mode after retrieving firmware data corresponding to the second firmware version.
[0037] The method may further include: receiving vehicle identification information from a vehicle to which the telematics device is connected by the telematics device; and transmitting the vehicle identification information via a third communication module for reception at a management server, and comparing a first firmware version of the peripheral device with a second firmware version configured for distribution to the peripheral device may include comparing the first firmware version of the peripheral device with a second firmware version configured for distribution to the peripheral device and compatible with the vehicle identified in the vehicle identification information.
[0038] The instruction to transmit a first firmware version of the firmware installed on the peripheral device to the second communication module of the telematics device via the fourth communication module of the peripheral device may include transmitting the instruction of the first firmware version in response to the wake-up of the peripheral device.
[0039] Updating the firmware installed on the peripheral device by using at least one second processor based on firmware data retrieved from the access location can include updating the firmware installed on the peripheral device after the vehicle in which the peripheral device is located is deactivated.
[0040] The method may further include: accessing a stored indication of a hypothetical firmware version of firmware installed on a peripheral device at a non-transitory processor-readable storage medium accessible by a management server; comparing the hypothetical firmware version indicated in the stored indication with a second firmware version set for distribution via at least one first processor; in response to determining that the second firmware version differs from the hypothetical firmware version indicated in the stored indication, transmitting an indication for performing firmware action at the peripheral device via at least one first communication module for reception at a telematics device; receiving the indication for performing firmware action via a third communication module of the telematics device; in response to receiving the indication for performing firmware action, transmitting a wake-up command via a second communication module; receiving the wake-up command via a fourth communication module; and waking up the peripheral device. Transmitting the indication of the first firmware version via the fourth communication module of the peripheral device may include transmitting the indication of the first firmware version in response to the peripheral device being woken up.
[0041] The method may further include: storing an indication of a first firmware version received from a peripheral device via at least one second non-transitory processor-readable storage medium of the telematics device; and accessing the indication of the first firmware version by the telematics device from at least one second non-transitory processor-readable storage medium. Transmitting the indication of the first firmware version via a third communication module of the telematics device may include transmitting the indication of the first firmware version accessed from at least one second non-transitory processor-readable storage medium.
[0042] According to another broad aspect, this disclosure describes a system comprising: a management server having at least one first communication module, at least one first processor, and at least one first non-transitory processor-readable storage medium storing instructions executable by the first processor; a telematics device having a second communication module, a third communication module, at least one second processor, and at least one second non-transitory processor-readable storage medium storing instructions executable by the second processor; and a peripheral device having a fourth communication module, a fifth communication module, at least one third processor, and at least one third non-transitory processor-readable storage medium storing instructions executable by the third processor, wherein: The third processor executes instructions causing the peripheral device to: transmit an indication of a first firmware version installed on the peripheral device via a fourth communication module for reception at the telematics device; the second processor executes instructions causing the telematics device to: receive an indication of the first firmware version from the peripheral device via a second communication module; and transmit an indication of the first firmware version via a third communication module for reception at the management server; the first processor executes instructions causing the management server to: receive an indication of the first firmware version from the telematics device via at least one first communication module; compare the first firmware version with a second firmware version set for distribution to the peripheral device via at least one first processor; and, in response to determining the first firmware version... The second firmware version differs from the first firmware version. It transmits firmware action messages via at least one first communication module for reception at a remote information processing device. The second processor-executable instructions further cause the remote information processing device to: receive firmware action messages from a management server via a third communication module; and transmit a wake-up command via the second communication module for reception at a peripheral device. The third processor-executable instructions further cause the peripheral device to: receive a wake-up command from the remote information processing device via a fourth communication module; wake up the peripheral device in response to the wake-up command; and transmit a request for firmware data access location via the fourth communication module for reception at the remote information processing device. The second processor-executable instructions further cause the remote information processing device to: The first processor-executable instructions further cause the management server to: receive a request for firmware data access location via a second communication module; transmit the request for firmware data access location via a third communication module for reception at a management server; and the management server to: receive a request for firmware data access location from a remote information processing device via at least one first communication module; and in response to the request for firmware data access location, transmit an indication of the access location of firmware data corresponding to a second firmware version via at least one first communication module for reception at a remote information processing device; and the second processor-executable instructions further cause the remote information processing device to: receive an indication of the access location of firmware data corresponding to a second firmware version from the management server via a third communication module.The third processor executes instructions that also cause the peripheral device to: receive the access location indication of firmware data corresponding to the second firmware version via a second communication module; retrieve firmware data corresponding to the second firmware version from the access location via a fifth communication module; and update the firmware installed on the peripheral device based on the firmware data retrieved from the access location via at least one third processor.
[0043] The fourth communication module and the second communication module may include corresponding wired communication modules for wired communication between the remote information processing device and peripheral devices. The fourth communication module and the second communication module may also include corresponding short-range wireless communication interfaces.
[0044] The fifth communication module may include a first cellular modem at a peripheral device communicating via the first cellular network. The third communication module may include a second cellular modem at a telematics device communicating via the first cellular network or a second cellular network different from the first cellular network. At least one first communication module may include a network module communicatively coupled to a cloud network or the Internet.
[0045] The location of access can be indicated by a Uniform Resource Locator (URL).
[0046] Firmware data access locations may include at least one first non-transitory processor-readable storage medium.
[0047] Firmware data access locations may include at least one fourth non-transitory processor-readable storage medium located at a data storage location remote from peripheral devices, telematics devices, and management servers.
[0048] The peripheral device may also include at least one image sensor.
[0049] Peripheral devices and telematics devices can be located at the vehicle, while management servers and access points can be located away from the vehicle.
[0050] The fifth communication module can typically be in an inactive mode where communication with the management server is disabled. The third processor-executable instructions, which enable the peripheral device to retrieve firmware data corresponding to the second firmware version, can also cause the peripheral device to operate the fifth communication module in an active mode where communication with the management server is enabled. Furthermore, the third processor-executable instructions can also cause the peripheral device to operate the fifth communication module in an inactive mode after retrieving the firmware data corresponding to the second firmware version.
[0051] The second processor executable instructions can also cause the telematics device to: receive vehicle identification information from a vehicle to which the telematics device is connected; and transmit the vehicle identification information via a third communication module for reception at a management server; and cause the management server to compare a first firmware version with a second firmware version configured for distribution to peripheral devices. The first processor executable instructions can also cause at least one first processor to compare the first firmware version with a second firmware version configured for distribution to peripheral devices and compatible with the vehicle identified in the vehicle identification information.
[0052] The second firmware version can be the most recent firmware version.
[0053] The first processor-executable instructions may also cause the management server to: store an indication of a first firmware version at a non-transitory processor-readable storage medium accessible by the management server; and access the stored indication of the first firmware version at a non-transitory processor-readable storage medium accessible by the management server; and cause at least one first processor to compare the first firmware version with a second firmware version set for distribution.
[0054] The second processor executable instructions may also cause the telematics device to store an indication of a first firmware version received from a peripheral device via at least one second non-transitory processor-readable storage medium; the second processor executable instructions may also cause the telematics device to access the indication of the first firmware version from at least one second non-transitory processor-readable storage medium; and the second processor executable instructions that cause the third communication module of the telematics device to transmit the indication of the first firmware version may also cause the third communication module to transmit the indication of the first firmware version accessed from at least one second non-transitory processor-readable storage medium.
[0055] According to another broad aspect, this disclosure describes a method performed between a management server having at least one first communication module, a telematics device having a second and a third communication module, and a peripheral device having a fourth and a fifth communication module, the method comprising: transmitting an indication of a first firmware version of firmware installed on the peripheral device to a second communication module of the telematics device via the fourth communication module of the peripheral device; transmitting the indication of the first firmware version to at least one first communication module of the management server via the third communication module of the telematics device; comparing the first firmware version with a second firmware version configured for distribution to the peripheral device via at least one first processor of the management server; in response to determining that the second firmware version differs from the first firmware version, transmitting a firmware action message to the third communication module of the telematics device via the at least one first communication module of the management server; and transmitting the indication of the first firmware version to the fourth communication module of the peripheral device via the second communication module of the telematics device. The communication module transmits a wake-up command; wakes up the peripheral device in response to the wake-up command; transmits a request for firmware data access location to the second communication module of the telematics device via the fourth communication module of the peripheral device; transmits the request for firmware data access location to at least one first communication module of the management server via the third communication module of the telematics device; in response to the request for firmware data access location, transmits an indication of the access location of firmware data corresponding to the second firmware version to the third communication module of the telematics device via the at least one first communication module of the management server; transmits the indication of the access location of firmware data corresponding to the second firmware version to the fourth communication module of the peripheral device via the second communication module of the telematics device; retrieves firmware data corresponding to the second firmware version from the access location via the fifth communication module of the peripheral device; and updates the firmware installed on the peripheral device based on the firmware data retrieved from the access location via at least one second processor on the peripheral device.
[0056] The fifth communication module can typically be in an inactive mode where communication with the management server is disabled, and retrieving firmware data corresponding to the second firmware version may further include operating the fifth communication module in an active mode where communication with the management server is enabled. The method may also include operating the fifth communication module in an inactive mode after retrieving the firmware data corresponding to the second firmware version.
[0057] The method may further include: receiving vehicle identification information from a vehicle to which the telematics device is connected by the telematics device; and transmitting the vehicle identification information via a third communication module for reception at a management server. Comparing a first firmware version of the peripheral device with a second firmware version configured for distribution to the peripheral device may include comparing the first firmware version of the peripheral device with a second firmware version configured for distribution to the peripheral device and compatible with the vehicle identified in the vehicle identification information.
[0058] The second firmware version can be the most recent firmware version.
[0059] The method may further include: storing an indication of a first firmware version at a non-transitory processor-readable storage medium accessible by a management server; and accessing the stored indication of the first firmware version at a non-transitory processor-readable storage medium accessible by a management server. Comparing the first firmware version with a second firmware version set for distribution by at least one first processor allows the at least one first processor to compare the first firmware version indicated in the stored indication with the second firmware version set for distribution.
[0060] The method may further include: storing an indication of a first firmware version received from a peripheral device via at least one second non-transitory processor-readable storage medium of the telematics device; and accessing the indication of the first firmware version by the telematics device from at least one second non-transitory processor-readable storage medium. Transmitting the indication of the first firmware version via a third communication module of the telematics device may include transmitting the indication of the first firmware version accessed from at least one second non-transitory processor-readable storage medium. Attached Figure Description
[0061] Exemplary non-limiting embodiments are described with reference to the accompanying drawings, in which:
[0062] Figure 1 This is a schematic diagram of a remote information processing system.
[0063] Figure 2 It is a schematic diagram of a system based on at least one vehicle-related device shown as an example.
[0064] Figure 3 It is a schematic diagram of a system based on at least one example of a device communicating with each other.
[0065] Figure 4 This is a flowchart of a method for updating firmware at a peripheral device.
[0066] Figure 5 This is a flowchart of a method for sending wake-up commands to peripheral devices.
[0067] Figure 6 This is a flowchart illustrating the access location for requesting firmware data and the method for obtaining firmware data. Detailed Implementation
[0068] This disclosure details systems, methods, and apparatus for updating firmware at peripheral devices. This disclosure finds particular value in vehicle data collection systems where telematics devices and coupled peripheral devices are located at the vehicle.
[0069] Fleet owners have adopted telematics systems to monitor the use and performance of vehicles in their fleets. These systems use onboard telematics devices to monitor vehicles for collecting and transmitting vehicle operational information. For example, fleet managers can use telematics to remotely access real-time operational information for each vehicle in their fleet. Vehicles can include cars, trucks, recreational vehicles, heavy equipment, tractors, snowmobiles, or other transport assets. The telematics device can detect environmental operating conditions associated with the vehicle, such as outside temperature, the attachment status of attached trailers, and the temperature inside attached refrigerated trailers. The telematics device can also detect the operational status of associated vehicles, such as location (e.g., geographic coordinates), speed and acceleration, time of day for operation, distance traveled, duration of stopping, customer location, idle time, driving time, etc. Therefore, the telematics device collects data representing vehicle operation and usage and transmits this data to the telematics system. This data can be collected over a sufficiently long period to allow for pattern recognition of vehicle operations. In the example, the duration can be defined as the number of days between 30 and 90 days, although in practice any appropriate number of days can be implemented as the duration.
[0070] In an exemplary telematics system, raw vehicle data, including vehicle operation information indicating vehicle operating status, is transmitted from an onboard telematics device to a remote subsystem (e.g., a data management system that may include a cloud system or a management system). The raw vehicle data may include information indicating the identity of the onboard telematics device (e.g., device identifier, device ID) and / or the identity of the associated vehicle to which the onboard telematics device resides. Specific and non-limiting examples of raw vehicle data include device ID data, location data, speed data, ignition status data (e.g., indicating whether the vehicle ignition is on or off), and date and time data indicating the date and time the telematics device recorded the vehicle operating status. The raw vehicle data transmitted and collected over a period of time forms historical vehicle data, which may be stored by the remote subsystem for future analysis of individual vehicle or fleet performance. In practice, a single fleet may include many vehicles, and therefore large amounts of raw vehicle data (e.g., trillions, petabytes, exabytes, etc.) may be transmitted to and stored by the remote subsystem. In this application, vehicle data collected, processed and / or transmitted by the telematics monitoring device, as well as other types of data, such as location data, discussed later, can be broadly included in “telematics data”.
[0071] In other exemplary telematics systems, the telematics device may have at least one processing unit that processes or filters raw vehicle data and transmits the processed or filtered data. Such a system can reduce the bandwidth required for transmission and the storage capacity required for transmitting data.
[0072] The use of telematics systems has led to improvements in vehicle performance and maintenance within fleets. Furthermore, data from telematics systems can be useful for traffic analysis, providing information for infrastructure design, planning, and implementation.
[0073] Figure 1 A simplified block diagram of an exemplary telematics system for collecting and storing vehicle operation information is shown. The telematics system 100 includes: a telematics subsystem 102 having a first network interface 108; and an on-board telematics device 104 of a vehicle 114 communicatively coupled to the telematics subsystem 102 via a communication network 110.
[0074] In one implementation, the telematics subsystem 102 includes a management system, which is a managed cloud data warehouse for performing analysis on data stored therein. In another implementation, the management system may include multiple management systems, data storage, and other devices configured in a centralized, distributed, or other arrangement. In some implementations, one or more different management systems may be adopted and configured individually or in a centralized, distributed, or other arrangement. In the illustrated example, the telematics subsystem 102 includes at least one non-transitory processor-readable storage medium 120 and at least one processor 122. The at least one non-transitory processor-readable storage medium 120 may store data on which analysis is performed, and / or may store instructions on the non-transitory processor-readable storage medium 120. When executed by the at least one processor 122, the instructions cause the telematics subsystem to perform a desired operation, analysis, or data collection / aggregation. The telematics subsystem 102 may also be referred to as a management server. As discussed above, such a management server may be a single device or may be in a distributed arrangement.
[0075] Communication network 110 may include one or more computing systems and may be any suitable combination of a network or portions thereof to facilitate communication between network components. Some examples of networks include wide area networks (WANs), local area networks (LANs), wireless wide area networks (WWANs), data networks, cellular networks, voice networks, and others that may be wired and / or wireless. Communication network 110 may operate according to one or more communication protocols, such as General Packet Radio Service (GPRS), General Mobile Telecommunications Service (UMTS), GSM, GSM Evolution Enhanced Data Rate (EDGE), LTE, CDMA, LPWAN, and Wi-Fi. ,Bluetooth Ethernet, HTTP / S, TCP, and CoAP / DTLS or other suitable protocols. Communication network 110 may also take other forms.
[0076] The telematics system 100 may include another network interface 109 for communicatively coupling to another communication network 112. In one implementation, the communication network 112 may include a communication gateway between the fleet owner and the telematics system 100.
[0077] Figure 1The diagram also shows vehicles 114, each of which has an onboard telematics unit 104. Vehicles may include automobiles, trucks, recreational vehicles, heavy equipment, tractors, snowmobiles, or other transport assets. The onboard telematics unit 104 can transmit raw vehicle data associated with vehicle 114 to telematics subsystem 102 via communication network 110.
[0078] For illustrative purposes only, three telematics devices 104 are described in this example, and the implementation is not intended to be limited to the example described herein. In practice, a telematics system may include many vehicles 114, such as hundreds, thousands, and tens of thousands or more. Thus, a large amount of raw vehicle data can be received and stored by a remote telematics subsystem 102.
[0079] Typically, the telematics device 104 includes a sensing module configured to sense and / or measure physical properties that may indicate the operating condition of the vehicle. For example, the sensing module may sense and / or measure: the vehicle's location (e.g., GPS coordinates); speed; direction; rates of acceleration or deceleration, such as along the x, y, and / or z axes; altitude; orientation; movement in the x, y, and / or z directions; ignition status; transmission and engine performance; and the duration of operation, etc. Those skilled in the art will understand that these are merely a few types of vehicle operating conditions that can be detected.
[0080] The telematics device 104 may include a sensing module for determining the vehicle's location. For example, the sensing module may utilize Global Positioning System (GPS) technology (e.g., a GPS receiver) to determine the geographic location (latitude / longitude coordinates) of the vehicle 114. Alternatively, the sensing module may utilize another Global Navigation Satellite System (GNSS) technology, such as GLONASS or BeiDou. Alternatively, the sensing module may also utilize another type of technology for determining geographic location. Additionally, the sensing module may provide other vehicle operation information, such as speed. Alternatively, the telematics device 104 may communicate with multiple sensing modules for the vehicle.
[0081] Alternatively, vehicle location information can be provided using another geographic coordinate system such as the Universal Transverse Mercator, the Military Grid Reference System, or the U.S. National Grid.
[0082] Typically, vehicle 114 may include various control modules, monitoring modules, and / or sensor modules for detecting vehicle operating conditions. Some specific and non-limiting examples include engine control unit (ECU), suspension and stability control module, headlight control module, windshield wiper control module, anti-lock braking system module, transmission control module, and braking module. The vehicle may have any combination of control modules, monitoring modules, and / or sensor modules. The vehicle may include a data / communication bus accessible for monitoring vehicle operating information provided by one or more vehicle control modules, monitoring modules, and / or sensor modules. The vehicle data / communication bus may operate according to an established data bus protocol, such as the Controller Area Network Bus (CAN-bus) protocol, widely used in the automotive industry to implement distributed communication networks. Specific and non-limiting examples of vehicle operating information provided by vehicle monitoring modules and / or sensor modules include ignition status, fuel tank level, intake air temperature, and engine RPM, etc.
[0083] The telematics device 104 may include a monitoring module operable to communicate with the data / communication bus of the vehicle 114. The monitoring module may communicate with the vehicle 114's data / communication bus via a direct connection (e.g., electrical coupling) through a vehicle communication port (e.g., diagnostic port / communication bus, OBDII port). Alternatively, the monitoring module may include a wireless communication interface for communicating with a wireless interface of the vehicle 114's data / communication bus. Optionally, the monitoring module may communicate with other external devices / systems that monitor the vehicle's operating status.
[0084] The telematics device 104 can be configured to communicate wirelessly with the telematics subsystem 102 via a wireless communication module. In some embodiments, the telematics device 104 can communicate directly with one or more networks outside the vehicle 114 to transmit data (such as telematics data) to the telematics subsystem 102. Those skilled in the art will recognize that the functionality of some modules can be implemented in one or more devices, and / or the functionality of some modules can be integrated into the same device.
[0085] The telematics device 104 can transmit raw vehicle data (or telematics data) indicating vehicle operation information collected therefrom to the telematics subsystem 102. The raw vehicle data can be transmitted at predetermined time intervals (e.g., heartbeats), intermittently, and / or according to other predefined conditions. The raw vehicle data (or telematics data) transmitted from the telematics device 104 may include information such as device ID, location, speed, ignition status, and, for example, the date and time of operation status recorded in the vehicle's data storage. Those skilled in the art will understand that the raw vehicle data may include data indicating many other vehicle operation conditions. The raw vehicle data can be transmitted from the monitoring device when the vehicle is moving, stationary, and during both the ignition-on and ignition-off states.
[0086] Figure 1 Image sensors 134 are also shown, each located on a corresponding vehicle 104. Each of the image sensors 134 can be, for example, a camera device, such as a video camera. Such image sensors capture image data (or video data, as a sequence of images) within the field of view of the corresponding image sensor. In some cases, the image sensors are positioned and oriented to capture image data representing a field of view outside the vehicle (e.g., a dashcam, a rearview camera, or other camera pointing outside the vehicle). In other cases, the image sensors are positioned and oriented to capture image data representing a field of view inside the vehicle (e.g., a camera facing the driver, a camera aimed at the dashboard, or other camera pointing inside the vehicle).
[0087] Similar to telematics data, image data captured by image sensor 134 can be transmitted to telematics subsystem 102 via communication network 110. In some implementations, the communication hardware of the telematics device may have limited bandwidth capabilities. For example, the transmission rate or quantity from telematics device 104 can be throttled to reduce power consumption. As another example, telematics device 104 may be older, making its communication hardware inherently limited in capability. In such cases, the communication hardware of telematics device 104 may be insufficient or inappropriate for transmitting image data from image sensor 134 via communication network 110. To address this issue, image sensor 134 may include dedicated communication hardware for communication via communication network 110. (Refer to below...) Figure 2 This will be described in detail.
[0088] Figure 2 This is a schematic diagram illustrating an exemplary system 200, in which peripheral devices and telematics devices are located at the vehicle and are capable of communicating with a management server located remotely to the vehicle. Specifically, Figure 2Vehicle 210 is shown. In the example shown, vehicle 210 is a sedan-type automobile, but this discussion applies to any suitable type of vehicle, such as those previously discussed. A telematics device 220 is located at vehicle 210. The telematics device 220 may be mounted to vehicle 210 (permanently or removably). For example, the telematics device may include a single-chip device inserted into a data port (such as an OBDII port) of vehicle 210 to receive power and data from the vehicle. As another example, the telematics device may include multiple components located at different locations within the vehicle, which communicate with each other. A peripheral device 230 is also located at vehicle 210. In the example shown, peripheral device 230 is an image capture device mounted to vehicle 210 to capture images from the windshield of vehicle 210 outwards. In alternative implementations, more than one image capture device may be located at the vehicle, pointing in any suitable direction (e.g., a rear-facing camera, a camera facing the driver's cabin, a side-facing camera, etc.). Multiple image capture devices can be implemented collectively as peripheral devices (e.g., image capture devices are jointly controlled), or implemented as multiple separate peripheral devices. In an alternative implementation, the peripheral devices may include at least one device that is not an image capture device, such as a peripheral sensor, a peripheral battery device, a key activation or storage device, or any other suitable device. The telematics device 220 and the peripheral device 230 are communicatively coupled to each other; see later. Figure 3 Discuss the detailed implementation method.
[0089] Figure 2 Management server 290 is also shown. As previously discussed with reference to telematics subsystem 102, management server 290 may include a single device, or may include multiple devices or distributed computing resources (e.g., via a cloud or server repository). Telematics device 220 and peripheral device 230 are each communicatively coupled to management server 290. Although Figure 2 This communication coupling is shown in a direct manner, but communication coupling can be indirect (e.g., via a communication network such as a cellular network or the Internet).
[0090] Figure 3 This is a schematic diagram illustrating system 300, which includes exemplary hardware such as the management server, telematics device, and peripheral devices discussed herein. Figure 3 The hardware shown is not exhaustive, and any suitable additional hardware may be included in each device.
[0091] Figure 3A management server 310 is shown, which includes at least one first processor 312, at least one first non-transitory processor-readable storage medium 314, and a first communication module 316. The at least one first non-transitory processor-readable storage medium 314 (among other data) may store processor-executable instructions that, when executed by the at least one first processor 312, control the operation of the management server 310 (e.g., cause the management server 310 to perform any appropriate action, such as [see later]). Figure 4 , Figure 5 and Figure 6 The actions discussed are in methods 400, 500, and / or 600.
[0092] Figure 3 Also shown is a telematics apparatus 320, which includes at least one second processor 322, at least one second non-transitory processor-readable storage medium 324, a second communication module 326, and a third communication module 328. The telematics apparatus 320 also includes means for receiving, collecting, or capturing telematics data as previously described. Figure 3 In the illustrated example, the telematics device 320 includes a data port 321 connected to a corresponding port of the vehicle (e.g., a diagnostic port such as an OBDII port) to receive vehicle-related data from the vehicle. Also in the illustrated example, the telematics device 320 includes at least one sensor 323 that captures vehicle-related sensor data (such as position data, inertial data, or any other suitable type of sensor data as previously discussed). At least one second non-transitory processor-readable storage medium 324 (among other data) may store processor-executable instructions that, when executed by at least one second processor 322, control the operation of the telematics device 320 (e.g., cause the telematics device 320 to perform any appropriate action, such as referring later). Figure 4 , Figure 5 and Figure 6 The actions discussed are in methods 400, 500, and / or 600.
[0093] Figure 3A peripheral device 330 is also shown, comprising at least one third processor 332, at least one third non-transitory processor-readable storage medium 334, a fourth communication module 336, and a fifth communication module 338. The peripheral device 330 can be any suitable type of peripheral device (e.g., as non-limiting examples, an image capture device, a battery device, a processing device, a key storage device). For this purpose, the peripheral device 330 may also include any hardware suitable for enabling the peripheral device 330 to be used for its intended purpose. The at least one third non-transitory processor-readable storage medium 334 (among other data) may store processor-executable instructions that, when executed by at least one third processor 332, control the operation of the peripheral device 330 (e.g., cause the peripheral device 330 to perform any appropriate action, such as referred to later). Figure 4 , Figure 5 and Figure 6 The actions discussed are in methods 400, 500, and / or 600.
[0094] The labels “first,” “second,” “third,” “fourth,” and “fifth” are used only to mark different parts and do not indicate or imply any particular order or sequence of the parts.
[0095] The first communication module 316, the third communication module 328, and the fifth communication module 338 are remote communication modules used for communication between the management server 310 and the telematics device 320 and / or the peripheral device 330. For example, communication modules 316, 328, and 338 may be cellular modems, enabling the management server 310, the telematics device 320, and the peripheral device 330 to communicate via at least one cellular network. Such a cellular network is... Figure 3 An example of the communication network 390 shown is via which the management server 310 communicates with the telematics device 320 and the peripheral device 330. The communication network 390 is optional, and in some implementations, it may also include... Figure 3 As shown by the dashed lines, the management server 310 can communicate directly with the remote information processing device 320 and the peripheral device 330. The first communication module 316, the third communication module 328, and the fifth communication module 338 do not all need to be of the same type, and the communication network 390 is not limited to a single communication network. For example, communication module 316 can be an internet-enabled module (e.g., an Ethernet port, such as WiFi). The communication module 316 (or any other suitable module) is connected to the Internet; the communication module 328 may be a cellular module connected to the cellular network of a first cellular provider; and the communication module 338 may be a cellular module connected to the cellular network of a second cellular provider. In this implementation, each of the first communication module 316, the third communication module 328, and the fifth communication module 338 is connected to the Internet and communicates via the Internet, but through different mechanisms.
[0096] The second communication module 326 and the fourth communication module 336 are typically short-range communication modules. In some implementations, the second communication module 326 and the fourth communication module 336 may be wired communication modules (such as USB ports), enabling the telematics device 320 and the peripheral device 330 to communicate with each other via a wired connection. In other implementations, the second communication module 326 and the fourth communication module 336 are wireless communication modules, such as Bluetooth. Zigbee WiFi Or any other suitable type of short-range wireless connection.
[0097] Figure 4 This is a flowchart illustrating an exemplary method 400 for updating firmware at a peripheral device. As shown, method 400 includes actions performed by management server 410 (shown as actions 411, 412, 413, 414, 415, and 416), actions performed by telematics device 420 (shown as actions 421, 422, 423, 424, 425, and 426), and actions performed by peripheral device 430 (shown as actions 431, 432, 433, 434, 435, 438, and 439). Those skilled in the art will understand that, for a given application, additional actions can be added, actions removed, or actions reordered as needed. For example, actions 438, 414, 423, 424, 432, 415, and 439 are optional and can be selectively removed or replaced as needed for a given application.
[0098] Reference Figure 1 , Figure 2 and Figure 3 The example shown can be performed by, for example, Figure 1 System 100 in Figure 2 System 200 and / or Figure 3The appropriate components of system 300 are used to perform the actions. For example, actions such as transmitting, receiving, or retrieving can be performed by an appropriate communication module; actions such as preparing messages, comparing, determining, installing, or updating can be performed by at least one appropriate processor; and actions such as storing or providing access can be performed by at least one appropriate non-transitory processor-readable storage medium. Furthermore, any of the at least one non-transitory processor-readable storage medium discussed may have processor-executable instructions stored thereon, which, when executed by the corresponding at least one processor, cause the corresponding device or component to perform a given action of method 400.
[0099] In the context of method 400, firmware is installed at peripheral device 430. The installed firmware has a first firmware version, and an indication of the first firmware version can be stored in at least one non-transitory processor-readable storage medium of the peripheral device (such as...). Figure 3 On the non-transitory processor-readable storage medium 334).
[0100] At 438, peripheral device 430 is optionally woken up. This action is optional in the sense that, in some implementations, peripheral device 430 is already woken up or already active in other ways. In cases including action 438, the peripheral device is in sleep or low-power mode prior to method 400. In some cases, peripheral device 438 is completely disabled (not powered) prior to method 400. In some cases, certain functions or components of peripheral device 430 (e.g., communication module 338) are disabled or inactive, thus reducing power consumption and / or saving connection bandwidth.
[0101] The activation of peripheral device 430 at action 438 can be performed in various ways. In a first exemplary implementation, activation of the vehicle on which peripheral device 430 is installed triggers the activation of peripheral device 430. For example, telematics device 420 is connected to a vehicle data port (such as an OBDII port, via a reference) Figure 3 (Data port 321 is discussed). The telematics unit 420 receives an activation instruction from the vehicle via the data port. In response to the vehicle activation, the telematics unit sends a wake-up command to the peripheral device 430, which wakes up the peripheral device at 438.
[0102] The telematics device can receive any suitable form of activation signal from the vehicle. For example, the telematics device 420 can receive an explicit ignition signal indicating that the vehicle's ignition has been activated. As another example, the telematics device 420 can identify vehicle activation based on other signals such as battery voltage signals, which it uses to identify the vehicle's ignition start-up event. As yet another example, the telematics device 420 can receive signals that explicitly indicate the vehicle's state, such as accessory mode or driving mode, indicating vehicle activation.
[0103] In the second exemplary implementation, waking up the peripheral device 430 can be performed even when the vehicle is off (e.g., the vehicle's ignition is not activated). For example, the telematics device 420 can send a wake-up command to the peripheral device 430, such as in response to a recognized need to update the firmware at the peripheral device 430, as will be discussed later. Figure 5 This approach is under discussion. This implementation method has the advantage of keeping peripheral device firmware up-to-date, even if the vehicle is rarely used.
[0104] At 431, peripheral device 430 transmits an indication of the first firmware version of the firmware installed at peripheral device 430. This transmission is intended for reception at telematics device 420 and is communicated by a communication module (such as...) capable of communicating with the telematics device. Figure 3 The fourth communication module 336 in the peripheral device 430 transmits the data. The transmission can be prepared or constructed by at least one processor of the peripheral device 430 (e.g., ...). Figure 3 At least one processor 332 can retrieve the stored first firmware version and package a message indicating the first firmware version for transmission.
[0105] At 421, the indication of the first firmware version is provided by the telematics device 420 via a communication module (such as...) that can communicate with peripheral devices 430. Figure 3 The second communication module 326 receives data from the peripheral device 430. In this disclosure, the act of "receiving" data or information may, as required in a given context, include any appropriate aspect of such reception, such as acquiring, formatting, decompressing, processing, interpreting, or any other action.
[0106] At 422, the telematics device 420 transmits an indication of the first firmware version of the firmware installed on the peripheral device 430. This transmission is intended for reception at the management server 410 and is handled by a communication module (such as...) capable of communicating with the management server. Figure 3The third communication module 328 in the system transmits the information. In some implementations, the telematics device 420 may forward instructions received at 421 from the peripheral device 430 (e.g., without interpretation or processing by the telematics device 420). In other implementations, the telematics device 420 (e.g., via...) transmits the information. Figure 3 At least one processor 322 in the device can process the instruction received from the peripheral device 430 at 421 and prepare another instruction for the first firmware version for transmission to the management server (e.g., the telematics device 420 can reformat the message indicating the first firmware version for optimal transmission to the management server 410 via the corresponding communication module).
[0107] In some other implementations, the telematics device 420 may optionally store the indication of the first firmware version received at 421 in a non-transitory processor-readable storage medium at the telematics device 420. Figure 4 The medium shown is 429 (which can be used with, for example) Figure 3 (Corresponding to the non-transitory processor-readable storage medium 324 in the middle). The stored indication of the first firmware version can be accessed later, and the indication of the first firmware version transmitted at 422 can be the indication of the first firmware version accessed from the non-transitory processor-readable storage medium 420. By storing the indication of the first firmware version at the telematics device 420 for later transmission, the telematics device 420 reports to the management server 410 that the first firmware version can be transmitted from the peripheral device 430 to the telematics device 420 with a time delay (or repetition) relative to the first firmware version. In this way, the first firmware version can be transmitted from the telematics device 420 even if the peripheral device 430 is in a sleep state (inactive). This can be useful when the vehicle is not used (activated) for an extended period of time, as discussed in detail later (e.g., see reference). Figure 5 For example, if the vehicle is not used for an extended period of time, the telematics device 420 may remain in a sleep state for most of the time, but may be periodically awakened to send status updates or communications (e.g., every 24 hours, weekly, or any other suitable time length). Status updates or communications may include a first firmware version for the firmware installed on the peripheral device 430. By periodically reporting the first firmware version by the telematics device 420, it is possible to determine at the management server 410 when the peripheral device 430 requires a firmware update, even when the peripheral device 430 is in a sleep state.
[0108] Even if the peripheral device 430 is in sleep mode, the telematics device 420 reports the first firmware version. The situation discussed above is an exemplary use case, and the peripheral device 430 is not required to be in sleep mode in order for action 422 to occur.
[0109] At 411, the indication of the first firmware version is provided by the management server 410 via a communication module (such as a remote information processing device) capable of communicating with the remote information processing device. Figure 3 The first communication module 316 in the system receives the first firmware version from the telematics device 420. Optionally, the received first firmware version may be stored in a non-processor-readable storage medium 419 accessible by the management server 410 (e.g., ...). Figure 3 The storage medium 314 is a non-transitory processor-readable storage medium, or a network storage medium to which the management server 410 can communicate. For example, if the peripheral device 430 is not activated for an extended period of time, the first firmware version stored in the non-transitory processor-readable storage medium 419 can be accessed in the future and used to check the firmware version of the peripheral device 430, as will be discussed later. Figure 5 To be discussed in more detail.
[0110] At position 412, the processor of management server 410 (such as...) Figure 3 At least one first processor 312 compares a first firmware version with a second firmware version configured for distribution to peripheral devices. Specifically, when firmware updates are released, they can be made available for distribution to peripheral devices (e.g., by storing the firmware updates at a management server or at a data store separate from management storage). In some implementations, the second firmware version corresponds to the latest (most recent) firmware version compatible with a particular peripheral device from which an instruction for the first firmware version is received. This latest firmware version can be configured at the server for distribution to peripheral devices. In other implementations, the second firmware version can be configured to be a non-most recent firmware version (e.g., an older firmware version intended to roll back the firmware installed on the peripheral device). By comparing the first firmware version with the second firmware version at 412, it can be determined whether the firmware installed on the peripheral device corresponds to the configured firmware version (i.e., the firmware version indicated as the desired firmware version at the server).
[0111] At 413, if the second firmware version is no different from the first firmware version (e.g., if the first firmware version and the second firmware version are the same; that is, the firmware installed on the peripheral device already matches the set firmware version), then method 400 shows different alternative implementations for informing (or not informing) that the firmware installed on the peripheral device 430 matches the set firmware version.
[0112] In one alternative implementation, the management server 410 informs the peripheral device 430 that the firmware installed on the peripheral device 430 matches the configured firmware version (second firmware version). Figure 4 In method 400, at 414, the management server 410 transmits an indication that the firmware installed on the peripheral device 430 matches the set firmware version (e.g., an indication that the first firmware version matches the second firmware version). This transmission is intended for reception at the telematics device 420 and is communicated by a communication module (such as...) capable of communicating with the telematics device. Figure 3 The first communication module 316 in the middle) transmits the data. The transmission can be prepared or constructed by at least one processor of the management server 410 (e.g., Figure 3 At least one processor 312 in the process can prepare a message indicating a first firmware version and a second firmware version, or a message indicating the same first firmware version and second firmware version, for transmission.
[0113] At 423, the indication that the firmware installed on the peripheral device 430 matches the set firmware version is provided by the remote information processing device 420 through a communication module (such as...) that can communicate with the management server 410. Figure 3 The third communication module 328 in the middle receives.
[0114] At 424, the telematics device 420 transmits an instruction that the firmware installed on the peripheral device 430 matches the set firmware version. This transmission is intended for reception at the peripheral device 430 and is made possible by a communication module (such as...) that can communicate with the peripheral device 430. Figure 3 The second communication module 326 in the system transmits the information. In some implementations, the telematics device 420 may forward instructions received from the management server at 423 (e.g., without interpretation or processing). In other implementations, the telematics device 420 (e.g., via...) transmits the information. Figure 3 At least one processor 322 in the device can process the instruction received from the management server at 423 and prepare another instruction that matches the firmware version installed at the peripheral device 430 with the set firmware version (e.g., the telematics device 420 can reformat the message indicating firmware matching for optimal transmission to the peripheral device via the corresponding communication module).
[0115] At 432, an indication that the firmware installed on the peripheral device 430 matches the set firmware version is provided by the peripheral device 430 via a communication module (such as a remote information processing device 420) that can communicate with the remote information processing device 420. Figure 3 The fourth communication module 336 receives information from the telematics unit 420. In this way, the peripheral device 430 is notified that the firmware installed on the peripheral device 430 does not need to be changed.
[0116] In another alternative implementation, the management server 410 does not inform the peripheral device 430 that the firmware installed on the peripheral device 430 matches the configured firmware version. Specifically, at 413, if the second firmware version is the same as the first firmware version installed on the peripheral device 430, then method 400 ends at 415. Implicitly, since the peripheral device 430 has not received any instruction to update its firmware, it can understand that the firmware installed on the peripheral device 430 does not need to be changed.
[0117] At 413, if the second firmware version is different from the first firmware version, method 400 continues to action 416, in which an update process is performed to update the firmware installed on peripheral device 430.
[0118] At 416, the management server 410 transmits an indication of the access location of the firmware data corresponding to the second firmware. For example, the indication of the access location could be an internet link to a repository or database storing the firmware data (e.g., a Uniform Resource Locator or URL, or any other suitable format of an access location identifier). The transmission is intended for reception at the telematics device 420 and is performed by a communication module (such as...) capable of communicating with the telematics device. Figure 3 The first communication module 316 in the middle) transmits the data. The transmission can be prepared or constructed by at least one processor of the management server 410 (e.g., Figure 3 At least one processor 312 in the process can prepare a message indicating the access location for transmission.
[0119] At 425, the location indication is provided by the remote information processing device 420 via a communication module (such as...) that can communicate with the management server 410. Figure 3 The third communication module 328 in the middle receives.
[0120] At 426, the telematics device 420 transmits an instruction for the access location. This transmission is intended for reception at the peripheral device 430 and is communicated by a communication module (such as...) capable of communicating with the peripheral device 430. Figure 3 The second communication module 326 in the system transmits the information. In some implementations, the telematics device 420 may forward instructions received from the management server at 425 (e.g., without interpretation or processing). In other implementations, the telematics device 420 (e.g., via...) transmits the information. Figure 3 At least one processor 322 in the system can process the instruction received from the management server at 425 and prepare another instruction to access the location.
[0121] At 433, the location indication is provided by the peripheral device 430 via a communication module (such as...) that can communicate with the telematics device 420. Figure 3 The fourth communication module 336 in the system receives the data.
[0122] At 434, peripheral device 430 retrieves firmware data for a second firmware version from the access location. For example, if the access location indicates a link or URL from which firmware data can be downloaded, the peripheral device's communication module (e.g., Figure 3 The fifth communication module 338 in the system accesses a link or URL and downloads firmware data to at least one storage medium of the peripheral device (e.g., Figure 3 At least one non-transitory processor-readable storage medium 334 in it.
[0123] The access location can be any suitable location. In some implementations, the access location is a non-transitory processor-readable storage medium of the management server (such as...). Figure 3 At least one of the first non-transitory processor-readable storage media 314). This is in Figure 4 The diagram illustrates retrieving firmware data from management server 410 at location 417. In other implementations, the access location is separated from the management server. For example, the access location could be a remote data storage (e.g., a server storing firmware used for cloud distribution to various devices), such as... Figure 4 The remote data storage 440 stores firmware data for the second firmware version at location 447. The remote data storage can be located remotely from the management server 410, the telematics device 420, and the peripheral device 430, and also remotely from the vehicle in which the telematics device 420 and the peripheral device 430 are located.
[0124] At location 435, the firmware installed at peripheral device 430 is updated. For example, the processor of the peripheral device (e.g., Figure 3 At least one third processor 332 in the process can execute or apply the firmware data retrieved at 434 to update or replace existing firmware data at the peripheral device (e.g., stored in...). Figure 3 Firmware data on at least one third non-transitory processor-readable storage medium 334.
[0125] Optionally, peripheral device 430 may wait until the vehicle is deactivated or no longer in use before updating the firmware installed at peripheral device 430, as shown at 439. Specifically, updating the firmware installed at peripheral device 430 typically requires a reboot or otherwise disabling peripheral device 430 for a period of time. Peripheral device 430 may perform important functions that should not be interrupted while the vehicle is in use, and therefore the update at 435 may be delayed until the vehicle is no longer in use at 439. For example, peripheral device 430 may receive position, speed, or acceleration data indicating that the vehicle is no longer moving (e.g., from included sensors or from telematics device 420). As another example, peripheral device 430 may receive ignition or vehicle activation data indicating that the vehicle is no longer active (e.g., from telematics device 420). In response to recognizing that the vehicle is not activated or no longer in use, peripheral device 430 may perform action 435 and apply a firmware update based on firmware data of a second firmware version retrieved at 434.
[0126] It is worth noting that in method 400, the peripheral device 430 uses a different communication module for sending an indication of the first firmware version than it uses a different communication module for retrieving firmware data for the second firmware version. That is, the peripheral device 430 indirectly sends the indication of the first firmware version to the management server 410 via the telematics unit 420. In contrast, the peripheral device 430 retrieves the firmware data for the second firmware version more directly (i.e., without via the telematics unit). This implementation has several advantages, as discussed below.
[0127] The communication module of the remote information processing device that communicates with the management server (e.g., Figure 3 The third communication module 328 already exists in the telematics-enabled vehicle and is typically active, at least periodically, to transmit telematics data to the management server. In contrast, peripheral device communication modules (e.g., [missing information]) communicate with the management server. Figure 3 The fifth communication module 338 in the method can typically be in an inactive or disabled mode (e.g., in a power-off or low-power standby state, in which communication with the management server is not enabled), and only occasionally transitions to an active state when needed (e.g., to retrieve firmware data). Therefore, retrieving firmware data as in action 434 of method 400 can include operating the communication module connected to the management server (e.g., in an active mode that enables communication with the management server) in an active mode. Figure 3(The communication module 338 in the middle). Such operation can be achieved, for example, by changing the operating mode of the communication module through internal messages within the peripheral device. After retrieving the firmware data, the communication module 338 can switch back to an inactive mode that does not enable communication with the management server.
[0128] In some implementations, the indication of the first firmware version can be transmitted periodically (e.g., daily, weekly, monthly) by the peripheral device 430 for transmission by the telematics device 420 when the communication module communicating with the management server 410 is active to transmit telematics data. In other implementations, the indication of the first firmware version can be transmitted by the peripheral device 430 in response to vehicle activation and / or peripheral device 430 activation, as previously discussed. In either case, overall power consumption is reduced by activating only one telematics module. Furthermore, by requiring only periodic activation of one telematics module ( Figure 3 The third communication module 328 in the middle, while maintaining another remote communication module ( Figure 3 The fifth communication module 338 in the system is in a disabled or low-power mode until sometimes needed, which can reduce connection subscription costs. In such an implementation, the remote communication module of the telematics device can maintain a cellular service subscription, while the remote communication module of the peripheral device can use a different payment model (e.g., pay-as-you-go).
[0129] In some implementations, method 400 may further include: the telematics device 420 receiving vehicle identification information from a vehicle to which it is connected. In one implementation, the telematics device may include a data port (such as...) Figure 3 Data port 321 in the middle), which is communicatively coupled to the vehicle (such as Figure 2 In the case of vehicle 210, the telematics device receives information that can be used to identify the vehicle through the data port. For example, the telematics device may receive the VIN (Vehicle Identification Number) from the vehicle. As another example, while the VIN itself may not always be transmitted by the vehicle, it can be obtained from other operational data received by the telematics device from the vehicle. As yet another example, when the telematics device is installed in the vehicle, vehicle information can be entered or otherwise configured such that at least one non-transitory processor of the telematics device can read the vehicle identification information stored in a storage medium. The vehicle identification information is not necessarily limited to the VIN (which uniquely identifies a particular vehicle), but can also be information about attributes that do not necessarily uniquely identify the vehicle. For example, the vehicle identification information may indicate the brand, model, year, fuel type, class, weight, or any other suitable information about the vehicle.
[0130] Received vehicle identification information (e.g., via) Figure 3 The third communication interface 328 is transmitted for reception at the management server. The management server (e.g., via...) Figure 3 At least one first communication interface 316 in the device receives vehicle identification information. In such an implementation, at 412 in method 400, comparing a first firmware version of the firmware installed on the peripheral device with a second firmware version configured for distribution to the peripheral device includes comparing the first firmware version with a second firmware version configured for distribution to the peripheral device and compatible with the vehicle identified in the vehicle identification information. For example, if firmware that is incompatible with the vehicle (or has not been tested for compatibility) is installed, some peripheral devices that interface with the vehicle may not function properly. As a specific example, the peripheral device may include Bluetooth, which provides communication between the telematics device and the vehicle's infotainment or audio system. Module. If firmware that is incompatible with the infotainment system in a particular vehicle is installed, the functionality of the peripheral device will be impaired.
[0131] In some cases, vehicles are not frequently used, and therefore the telematics devices and peripherals in such vehicles may not be activated for extended periods. Consequently, the firmware on such peripherals may not be updated periodically or consistently according to method 400. The following discussion... Figure 5 A method for updating the firmware of such a device is shown.
[0132] Figure 5 This is a flowchart illustrating an exemplary method 500 for updating firmware at a peripheral device. As shown, method 500 includes actions performed by management server 410 (shown as actions 511, 512, 513, 514, 414, 415, and 515), actions performed by telematics device 420 (shown as actions 521, 423, 522, and 523), and actions performed by peripheral device 430 (shown as action 531). Those skilled in the art will understand that, for a given application, additional actions can be added, actions removed, or actions reordered as needed. For example, actions 414, 423, and 415 are optional and can be selectively removed or replaced as needed for a given application.
[0133] Method 500 is shown as including multiple actions (actions 414, 415, and 423), which are also included in Figure 4 Method 400 is discussed above; the previous discussion of these actions also applies to method 500.
[0134] Figure 5The management server 410, remote information processing device 420, and peripheral device 430 are referenced. Figure 4 The methods discussed in 400 are the same as those discussed in the previous section, and refer to... Figure 4 The description of these devices also applies to Figure 5 .
[0135] Similar to method 400, in the context of method 500, firmware is installed at peripheral device 430. The installed firmware has a first firmware version.
[0136] In some implementations, prior to method 500, an indication of the first firmware version is stored in a location accessible by the management server 410 (shown as 419, and previously referenced). Figure 4 (Discussed) At least one non-transitory processor-readable storage medium 419 may be included in the management server 410 (e.g., as...). Figure 3 The storage medium 419 can be a non-transitory processor-readable storage medium (314) or a network storage device that can be separated from but accessed by the management server 410 (e.g., as a network storage device with which the management server 410 can communicate). For example, in the context of method 400, according to actions 431, 421, 422, and 411, an indication of the first firmware version can be provided to the management server 410 and stored at the non-transitory processor-readable storage medium 419, as previously discussed. That is, in such an implementation, an instance of method 400 is executed at some point before the execution of method 500, and the first firmware version reported by the peripheral device 430 in a previous instance of method 400 is stored as accessible to the management server 410 for future use in the context of method 500.
[0137] In other implementations, prior to method 500, an indication of the first firmware version is stored in the telematics device 420 (shown as 429, and previously referred to). Figure 4 (Discussed) At least one non-transitory processor-readable storage medium. That is, in such an implementation, an instance of method 400 is executed at some point before the execution of method 500, and a first firmware version reported by peripheral device 430 in a previous instance of method 400 is stored at telematics device 420 for future use in the context of method 500.
[0138] In the above implementation, the first instance of method 400 can be executed some time before method 500. Method 500 is started after a certain period of time. For example, method 500 can be started when the vehicle has not been activated for a set amount of time, such as 24 hours, 7 days, a month, or any other suitable amount of time. As another example, method 500 can be started when a firmware update or change becomes available at management device 410.
[0139] exist Figure 5 In the context of this, peripheral device 430 is in a sleep state or inactive state between time 538 and time 539 (e.g., because the vehicle with peripheral device 430 installed is not activated). Although time 538 is shown as action 521 relatively close to the start of method 500, time 538 can be any amount of time prior to method 500.
[0140] At point 521, the telematics device 420 transmits peripheral device information, such as the unique identifier (ID) of peripheral device 430 (or the unique identifiers of multiple peripheral devices, if connected). This transmission is intended for reception at management server 410 and is handled by a communication module (such as...) capable of communicating with management server 410. Figure 3 The third communication module 328 in the telematics device 420 transmits the information. Prior to action 521 (e.g., as part of the installation or initialization of the peripheral device 430), peripheral device information may be stored in a non-transitory processor-readable storage medium (such as...) of the telematics device 420. Figure 3 The non-transitory processor-readable storage medium 324 in the medium. The transmission of action 521 can be prepared or constructed by at least one processor of the telematics device 420 (e.g., Figure 3 At least one processor 322 can retrieve stored peripheral device information and package a message indicating the peripheral device information for transmission.
[0141] In some alternative implementations, an indication of a first firmware version of the firmware installed at peripheral device 430 is stored at telematics device 420 (e.g., at a non-transitory processor-readable storage medium 429, as discussed in action 421 of previously referred to method 400). In such an implementation, the first firmware version may be included in (or may be the focus of) the peripheral device information transmitted at 521.
[0142] At point 511, peripheral device information is transmitted from the management server 410 via a communication module (such as a remote information processing device 420) that can communicate with the remote information processing device 420. Figure 3The first communication module 316 in the module receives data or information. As previously discussed, "receiving" data or information may, as required in a given context, include any appropriate aspect of such reception, such as acquiring, formatting, decompressing, processing, interpreting, or any other action.
[0143] Optionally, at 512, the management server 410 accesses an indication of a first firmware version installed on the peripheral device 430, stored in at least one non-transitory processor-readable storage medium 419, as previously discussed. Specifically, access is made to the indication of the first firmware version stored in the non-transitory processor-readable storage medium 419 if the peripheral device information transmitted at 521 does not include such an indication.
[0144] In some implementations, receiving peripheral device information at 511 triggers action 512 and subsequent actions. In such an implementation, the received peripheral device information serves as a marker indicating when the remote information processing device 420 is connected to the network (communicating with the management server 410), making it possible (if necessary) to perform a firmware update at the peripheral device 430.
[0145] In some implementations, action 512 occurs periodically or periodically (e.g., daily, weekly, monthly, or any other suitable amount of time). In such an implementation, peripheral device information received at 511 is used to provide the management server 410 with an indication of at least one connected peripheral device. For example, method 500 can be performed for multiple peripheral devices and telematics devices, and the peripheral device information received from each telematics device (e.g., in at least one non-transitory processor-readable storage medium 419) can be stored as accessible by the management server 410. The peripheral device information stored in this example effectively serves as a list of peripheral devices, and the operation should be performed on this list of peripheral devices. Figure 5 Firmware version check at 513 (thus preventing management server 410 from performing action 513 for every conceivable peripheral device, some of which may not be installed or connected).
[0146] In some implementations, action 512 and subsequent actions are triggered when a peripheral device firmware change becomes available to the management server (e.g., a new firmware version becomes available).
[0147] At 513, a first firmware version installed on peripheral device 430 is compared with a second firmware version set for distribution. The comparison at 513 is performed similarly to that discussed with respect to action 412 in method 400, and will not be repeated for brevity. In some implementations, action 513 may be performed based on the first firmware version indicated in a transmission from telematics device 420 (e.g., where the indication of the first firmware version is stored at telematics device 420 and transmitted to management server 410 at 521 along with peripheral device information). In other implementations, action 513 may be performed based on the indication of the first firmware version accessed at 512.
[0148] At 514, if the second firmware version is no different from the first firmware version (e.g., if the first firmware version and the second firmware version are the same; that is, the firmware installed on the peripheral device already matches the set firmware version), then method 500 shows different alternative implementations for informing (or not informing) that the firmware installed on the peripheral device 430 matches the set firmware version.
[0149] In one alternative implementation, the management server 410 informs the remote information processing device 420 that the firmware installed on the peripheral device 430 matches the configured firmware version (second firmware version). Figure 5 In method 500, at 414, management server 410 transmits an indication that the firmware installed on peripheral device 430 matches the set firmware version (e.g., an indication that a first firmware version matches a second firmware version). This transmission is intended for reception at telematics device 420 and is communicated by a communication module (such as...) capable of communicating with the telematics device. Figure 3 The first communication module 316 in the middle) transmits the data. The transmission can be prepared or constructed by at least one processor of the management server 410 (e.g., Figure 3 At least one processor 312 in the process can prepare a message indicating a first firmware version and a second firmware version, or a message indicating the same first firmware version and second firmware version, for transmission.
[0150] At 423, the indication that the firmware installed on the peripheral device 430 matches the set firmware version is provided by the remote information processing device 420 through a communication module (such as...) that can communicate with the management server 410. Figure 3 The third communication module 328 in the middle receives.
[0151] In another alternative implementation, the management server 410 does not inform the remote information processing device 420 that the firmware installed on the peripheral device 430 matches the configured firmware version. Specifically, at 514, if the second firmware version is the same as the first firmware version installed on the peripheral device 430, then method 500 ends at 415. Implicitly, since the remote information processing device 420 has not received an instruction from the peripheral device 430 that a firmware update is needed, the remote information processing device 420 can understand that the peripheral device 430 does not require a firmware update.
[0152] At 514, if the second firmware version is different from the first firmware version, method 500 continues to action 515, where an update process is triggered to update the firmware installed on peripheral device 430.
[0153] At point 515, management server 410 transmits instructions requiring firmware action at peripheral device 430. This transmission is intended for reception at remote information processing device 420 and is made possible by a communication module (such as...) capable of communicating with remote information processing device 420. Figure 3 The first communication module 316 in the system transmits the data. The transmission can be prepared or constructed by at least one processor of the management server 410.
[0154] At point 522, the instruction requiring firmware action is provided by the remote information processing device 420 via a communication module (such as...) that can communicate with the management server 410. Figure 3 The third communication module 328 in the middle receives.
[0155] At 523, in response to receiving an instruction requiring firmware action at 522, the remote information processing device 420 transmits a wake-up command to the peripheral device 430. The wake-up command is transmitted by a communication module (such as...) capable of communicating with the peripheral device 430. Figure 3 The second communication module 326 transmits the command. At 531, the wake-up command is received by the peripheral device 430 (e.g., via the fourth communication module 336). The wake-up command can be any appropriate command that instructs the peripheral device 430 to change from a sleep or inactive mode (e.g., low power mode) to a mode suitable for retrieving and applying firmware updates (e.g., full power mode).
[0156] In some implementations, in response to receiving a wake-up command at 531, method 500 proceeds as described in the reference. Figure 4 Method 400 is discussed (shown at 541). In this case, waking up the peripheral device 430 at 438 in method 400 is in response to a wake-up command received at 531 in method 500.
[0157] Following method 500, during the execution of method 400, an indication of the first firmware version installed on the peripheral device 430 is transmitted to the management server 410 (actions 431, 421, 422, and 411), and this first firmware version is compared with a second firmware version set for distribution (actions 412 and 413). Although this is somewhat redundant in the context of executing actions 513 and 514 within method 500, this approach has advantages.
[0158] First, after performing actions 513 and 514, actions 412 and 413 (in method 400) are performed again based on the indication from the first firmware version installed on peripheral device 430 to confirm the first firmware version installed on peripheral device 430. For example, after the first firmware version is stored on management server 410 or on telematics device 420, the firmware installed on the peripheral device may have been manually updated, making the first firmware version stored on management server 410 or telematics device 420 inaccurate for the firmware installed on peripheral device 430. As another example, the firmware on peripheral device 430 may have been updated, but the update may have failed to be reported to management server 410 or telematics device 420 (e.g., due to a communication error).
[0159] Secondly, the entire method 400 is executed after method 500 (although there is some redundancy), which simplifies the implementation by making it possible to use the multi-purpose firmware version and update method (method 400) regardless of the trigger used to start method 400 (the same method 400 can be used to check and update the firmware when the vehicle is activated, and when the peripheral device is woken up by the telematics device as in method 500).
[0160] In some implementations, in response to receiving a wake-up command at 531, method 500 proceeds to the following reference. Figure 6 The method discussed is 600 (shown at 542).
[0161] Figure 6 This is a flowchart illustrating an exemplary method 600 for updating firmware at a peripheral device. The method 600 shown includes actions performed by a management server 410 (shown as actions 611 and 612), actions performed by a telematics device 420 (shown as actions 621, 622, 623, and 624), and actions performed by a peripheral device 430 (shown as actions 631, 632, 633, 634, and 635). Those skilled in the art will understand that, for a given application, additional actions can be added, actions removed, or actions reordered as needed. As discussed above, in Figure 5Execute after an instance of method 500 in the middle. Figure 6 Method 600.
[0162] Figure 6 The management server 410, remote information processing device 420, and peripheral device 430 are referenced. Figure 4 Method 400 and Figure 5 The methods discussed in 500 are the same as those discussed in the previous section, and refer to... Figure 4 and Figure 5 The description of these devices also applies to Figure 6 .
[0163] Similar to methods 400 and 500, in the context of method 600, firmware is installed at peripheral device 430. The installed firmware has a first firmware version. Prior to 639, peripheral device 430 is in a sleep state or an inactive state (e.g., operating in low power mode because the vehicle is not activated). Prior to method 600, peripheral device 430 receives a wake-up command from telematics device 420 (shown as 531 in method 500). In the context of method 600, the wake-up command indicates that firmware action is required at peripheral device 430.
[0164] At 631, in response to receiving a wake-up command at 531 in method 500, peripheral device 430 wakes up to perform firmware operations. At 632, peripheral device 430 transmits a request for firmware data access location (i.e., a location from which second firmware version data can be downloaded, such as a URL to a firmware repository or network device). This request is an indication of a location where access to the second firmware data is requested. This transmission is intended to be received at telematics device 420 and communicated by a communication module (such as...) that can communicate with telematics device 420. Figure 3 The fourth communication module 336 in the peripheral device 430 transmits the data. The transmission can be prepared or constructed by at least one processor of the peripheral device 430, and / or can be based on a stored template.
[0165] At point 621, a request for firmware data access is made by the remote information processing device 420 via a communication module (such as...) that can communicate with peripheral devices 430. Figure 3 The second communication module 326 receives data from the peripheral device 430. In this disclosure, the act of "receiving" data or information may, as required in a given context, include any appropriate aspect of such reception, such as acquiring, formatting, decompressing, processing, interpreting, or any other action.
[0166] At 622, the telematics device 420 transmits a request for firmware data access location. This transmission is intended to be received at the management server 410 and is handled by a communication module (such as...) capable of communicating with the management server 410. Figure 3 The third communication module 328 in the middle transmits the data. In some implementations, the telematics device 420 may forward requests received at 621 from the peripheral device 430 (e.g., without being interpreted or processed by the telematics device 420). In other implementations, the telematics device 420 (e.g., via...) transmits the data. Figure 3 At least one processor 322 in the device can process the request received from the peripheral device 430 at 621 and prepare another request for firmware data access location for transmission to the management server 410 (e.g., the telematics device 420 can reformat the message requesting firmware data location for optimal transmission to the management server 410 via the communication module 328).
[0167] At point 611, requests for firmware data access are made by the management server 410 via a communication module (such as a remote information processing device) capable of communicating with the remote information processing device. Figure 3 The first communication module 316 receives information from the remote information processing device 420.
[0168] At 612, management server 410 transmits an indication of the firmware data access location for the second firmware version. For example, the indication of the access location could be an internet link (e.g., a URL or any other suitable format of an access location identifier) to a repository or database where the firmware data for the second firmware version is stored. The indication of the access location can be retrieved, for example, using a lookup table or other reference system at management server 410 that indicates the location where the firmware data can be accessed. This transmission is intended for reception at telematics device 420 and is performed by a communication module (such as...) capable of communicating with telematics device 420. Figure 3 The first communication module 316 in the middle) transmits the data. The transmission can be prepared or constructed by at least one processor of the management server 410 (e.g., Figure 3 At least one processor 312 in the process can prepare a message indicating the access location for transmission.
[0169] At point 623, the firmware data access location is indicated by the remote information processing device 420 via a communication module (such as...) that can communicate with the management server 410. Figure 3 The third communication module 328 in the middle receives.
[0170] At 624, the telematics device 420 transmits an indication of the firmware data access location. This transmission is intended for reception at the peripheral device 430 and is made possible by a communication module (such as...) that can communicate with the peripheral device 430. Figure 3 The second communication module 326 in the system transmits the information. In some implementations, the telematics device 420 may forward instructions received from the management server at 623 (e.g., without interpretation or processing). In other implementations, the telematics device 420 (e.g., via...) transmits the information. Figure 3 At least one processor 322 in the system can process the instruction received from the management server at 623 and prepare another instruction for accessing the location for transmission at 624.
[0171] At 633, the firmware data access location is indicated by the peripheral device 430 through a communication module (such as a telematics device 420) that can communicate with the telematics device 420. Figure 3 The fourth communication module 336 in the system receives the data.
[0172] At position 634, peripheral device 430 retrieves firmware data for the second firmware version from the firmware data access location (similar to referring to the previous one). Figure 4 Action 434 in the previous discussion). For example, where the access location indication specifies a link or URL from which firmware data can be downloaded, the communication module of the peripheral device (e.g., Figure 3 The fifth communication module 338 in the device accesses a link or URL and downloads firmware data to at least one storage medium of the peripheral device 430 (e.g., Figure 3 At least one non-transitory processor-readable storage medium 334 in it.
[0173] The access location can be any suitable location, similar to a reference. Figure 4 The discussion focuses on the firmware data access location in some implementations, where the firmware data access location is a non-transitory processor-readable storage medium (such as...) of the management server 410. Figure 3 At least one of the first non-transitory processor-readable storage media 314). This is in Figure 6 The diagram illustrates that firmware data is retrieved from management server 410 at location 417. In other implementations, the firmware data access location is separate from management server 410. For example, the firmware data access location could be a remote data storage (e.g., a server storing firmware for cloud distribution to various devices), such as... Figure 6 The remote data storage 440 stores firmware data for the second firmware version at location 447. The remote data storage can be located remotely from the management server 410, the telematics device 420, and the peripheral device 430, and also remotely from the vehicle in which the telematics device 420 and the peripheral device 430 are located.
[0174] At point 635, the firmware installed at peripheral device 430 is updated, similar to the previously referenced... Figure 4 The action discussed in section 435. For example, the processor of a peripheral device (e.g., Figure 3 At least one third processor 332 in the process can execute or apply the firmware data retrieved at 634 to update or replace existing firmware data at the peripheral device (e.g., stored in...). Figure 3 Firmware data on at least one third non-transitory processor-readable storage medium 334.
[0175] In the context of method 500, method 400 proceeding to 541 has the advantages discussed earlier, namely, simplifying the instructions or functions set at the peripheral device and ensuring that the first firmware version assumed by the management device at 513 corresponds to the actual first firmware version at the peripheral device 430. In contrast, method 600 proceeding to 542 advantageously reduces the number of additional actions required to update the firmware at the peripheral device 430 (compared to executing the entire method 400 after method 500), and thus saves processing resources, bandwidth, and power. Therefore, whether to execute method 400 or method 600 after method 500 is a trade-off, where each strategy offers different benefits.
[0176] While the invention has been described with respect to non-limiting embodiments, it should be understood that the invention is not limited to the disclosed embodiments. Those skilled in the art will understand that the disclosed invention is intended to cover various modifications and equivalent arrangements included within the scope of the appended claims. Therefore, the invention should not be limited to any of the embodiments described.
[0177] In this specification and the appended claims, infinitive verb forms such as “to operate” or “to couple” are frequently used. Unless the context otherwise requires, such infinitive verb forms are used in an open and inclusive manner, such as “to operate at least” or “to couple at least”.
[0178] The accompanying drawings are not necessarily to scale and may be shown using dashed lines, illustrative representations, and partial views. In some cases, details that are not essential for understanding the exemplary embodiments or that make other details imperceptible may have been omitted.
[0179] The specification includes various implementations in the form of block diagrams, schematic diagrams, and flowcharts. Those skilled in the art will understand that any function or operation within such block diagrams, schematic diagrams, and flowcharts can be implemented using a wide range of hardware, software, firmware, or combinations thereof. As a non-limiting example, the various embodiments described herein can be implemented using one or more of the following: application-specific integrated circuits (ASICs), standard integrated circuits (ICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), computer programs executed by any number of computers or processors, programs executed by one or more control units or processor units, firmware, or any combination thereof.
[0180] This disclosure includes a description of several processors. These processors can be implemented as any hardware capable of processing data, such as application-specific integrated circuits (ASICs), standard integrated circuits (ICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), logic circuits, or any other suitable hardware. This disclosure also includes a description of several non-transitory processor-readable storage media. These non-transitory processor-readable storage media can be implemented as any hardware capable of storing data, such as magnetic drives, flash drives, RAM, or any other suitable data storage hardware. Furthermore, references to data or information stored in a device (e.g., vehicle device 122 or network device 110) generally refer to data or information stored in a non-transitory processor-readable storage medium of said device (e.g., non-transitory processor-readable storage medium 116 or 126).
Claims
1. A system comprising: A management server, the management server having at least one first communication module, at least one first processor, and at least one first non-transitory processor-readable storage medium storing instructions executable by the first processor; A remote information processing device, the remote information processing device having a second communication module, a third communication module, at least one second processor, and at least one second non-transitory processor-readable storage medium storing instructions executable by the second processor; as well as The peripheral device includes a fourth communication module, a fifth communication module, at least one third processor, and at least one third non-transitory processor-readable storage medium storing instructions executable by the third processor. in: The third processor can execute instructions that cause the peripheral device to: The fourth communication module transmits an indication of the first firmware version of the firmware installed on the peripheral device for reception at the remote information processing device. The second processor can execute instructions that cause the remote information processing device to: Receive the indication of the first firmware version from the peripheral device via the second communication module; and The instruction for the first firmware version is transmitted via the third communication module for receipt at the management server; The first processor can execute instructions that cause the management server to: The instruction for the first firmware version is received from the remote information processing device via the at least one first communication module; The first firmware version is compared with a second firmware version configured for distribution to the peripheral device by the at least one first processor; and In response to determining that the second firmware version is different from the first firmware version, an identifier of the access location of the firmware data corresponding to the second firmware version is transmitted through the at least one first communication module for reception at the remote information processing device. The second processor-executable instructions also cause the telematics device to: The third communication module receives the identifier of the access location from the management server; and The identifier of the access location is transmitted via the second communication module for reception at the peripheral device; and The third processor executable instructions also cause the peripheral device to: The fourth communication module receives the identifier of the access location from the remote information processing device. The firmware data corresponding to the second firmware version is retrieved from the access location via the fifth communication module; and The firmware installed on the peripheral device is updated by the at least one third processor based on the firmware data retrieved from the access location.
2. The system according to claim 1, wherein, The fourth communication module and the second communication module include corresponding wired communication modules for wired communication between the remote information processing device and the peripheral device.
3. The system according to claim 1, wherein, The fourth communication module and the second communication module include corresponding short-range wireless communication interfaces.
4. The system according to claim 1, wherein, The fifth communication module includes a first cellular modem at the peripheral device that communicates via the first cellular network.
5. The system according to claim 4, wherein, The third communication module includes a second cellular modem at the telematics device that communicates via the first cellular network or a second cellular network different from the first cellular network.
6. The system according to claim 1, wherein, The at least one first communication module includes a network module, which is communicatively coupled to a cloud network or the Internet.
7. The system according to claim 1, wherein, The indication of the access location includes a Uniform Resource Locator (URL).
8. The system according to claim 1, wherein, The access location includes the at least one first non-transitory processor-readable storage medium.
9. The system according to claim 1, wherein, The access location includes at least one fourth non-transitory processor-readable storage medium at a data storage location remote from the peripheral device, the telematics device, and the management server.
10. The system according to claim 1, wherein, The peripheral device also includes at least one image sensor.
11. The system according to claim 1, wherein, The peripheral device and the remote information processing device are located at the vehicle, while the management server and the access location are located away from the vehicle.
12. The system according to claim 1, wherein, The fifth communication module is typically in an inactive mode where communication with the management server is disabled, and the third processor-executable instruction that causes the peripheral device to retrieve the firmware data corresponding to the second firmware version also causes the peripheral device to: The fifth communication module operates in an active mode that enables communication with the management server.
13. The system according to claim 12, wherein, The third processor executable instructions also cause the peripheral device to: After retrieving the firmware data corresponding to the second firmware version, the fifth communication module is operated in the inactive mode.
14. The system according to claim 1, wherein: The second processor-executable instructions also cause the telematics device to: Receive vehicle identification information from the vehicle to which the telematics device is connected; and The vehicle identification information is transmitted via the third communication module for reception at the management server; and The first processor-executable instructions that cause the management server to compare the first firmware version with a second firmware version configured for distribution to the peripheral device cause the at least one first processor to compare the first firmware version with a second firmware version configured for distribution to the peripheral device and compatible with the vehicle identified in the vehicle identification information.
15. The system according to claim 1, wherein, The second firmware version is the most recent firmware version.
16. The system according to claim 1, wherein, The third processor-executable instruction causes the fourth communication module to transmit the indication of the first firmware version of the firmware installed on the peripheral device, thereby causing the fourth communication module to transmit the indication of the first firmware version in response to being woken up by the peripheral device.
17. The system according to claim 1, wherein, The third processor executable instructions enable the at least one third processor to update the firmware installed on the peripheral device based on the firmware data retrieved from the access location, causing the at least one third processor to update the firmware installed on the peripheral device after the vehicle in which the peripheral device is located is deactivated.
18. The system according to claim 1, wherein: The first processor-executable instructions also cause the management server to: A stored indication of the assumed firmware version of the firmware installed on the peripheral device can be accessed at a non-transitory processor-readable storage medium accessible by the management server. The assumed firmware version indicated in the stored instructions is compared with the second firmware version set for distribution; as well as In response to determining that the second firmware version is different from the assumed firmware version indicated in the stored indication, an indication for performing firmware action at the peripheral device is transmitted via the at least one first communication module for reception at the telematics device. The second processor-executable instructions also cause the telematics device to: The instruction for performing firmware actions is received via the third communication module of the remote information processing device; and In response to receiving the instruction for performing firmware actions, a wake-up command is transmitted via the second communication module; The third processor executable instructions also cause the peripheral device to: The wake-up command is received via the fourth communication module; and Wake up the peripheral device; and The third processor-executable instruction causes the fourth communication module of the peripheral device to transmit the indication of the first firmware version, causing the fourth communication module to transmit the indication of the first firmware version in response to the peripheral device being woken up.
19. The system according to claim 1, wherein: The second processor-executable instructions further cause the telematics device to store the indication of the first firmware version received from the peripheral device via the at least one second non-transitory processor-readable storage medium; The second processor-executable instructions further cause the telematics device to access the indication of the first firmware version from the at least one second non-transitory processor-readable storage medium; and The third communication module of the telematics device transmits the indication of the first firmware version by the second processor-executable instructions, which cause the third communication module to transmit the indication of the first firmware version accessible from the at least one second non-transitory processor-readable storage medium.
20. A method executed between a management server having at least one first communication module, a remote information processing device having a second and a third communication module, and a peripheral device having a fourth and a fifth communication module, the method comprising: The fourth communication module of the peripheral device transmits an indication of the first firmware version of the firmware installed at the peripheral device to the second communication module of the remote information processing device. The instruction for the first firmware version is transmitted to the management server by the third communication module of the remote information processing device to the at least one first communication module; The first firmware version is compared with a second firmware version configured for distribution to the peripheral device by at least one first processor of the management server; In response to determining that the second firmware version is different from the first firmware version, the access location identifier of the firmware data corresponding to the second firmware version is transmitted to the third communication module of the remote information processing device through the at least one first communication module of the management server. The identifier of the access location is transmitted from the second communication module of the remote information processing device to the fourth communication module of the peripheral device; The firmware data corresponding to the second firmware version is retrieved from the access location via the fifth communication module of the peripheral device. as well as The firmware installed on the peripheral device is updated by at least one second processor at the peripheral device based on the firmware data retrieved from the access location.
21. The method according to claim 20, wherein, The fifth communication module is typically in an inactive mode where communication with the management server is disabled, and retrieving the firmware data corresponding to the second firmware version further includes: The fifth communication module operates in an active mode that enables communication with the management server.
22. The method of claim 21, further comprising: After retrieving the firmware data corresponding to the second firmware version, the fifth communication module is operated in the inactive mode.
23. The method of claim 20, further comprising: The telematics device receives vehicle identification information from the vehicle to which it is connected; as well as The vehicle identification information is transmitted via the third communication module for reception at the management server. in, Comparing the first firmware version of the peripheral device with a second firmware version configured for distribution to the peripheral device includes comparing the first firmware version of the peripheral device with a second firmware version configured for distribution to the peripheral device and compatible with the vehicle identified in the vehicle identification information.
24. The method of claim 20, wherein, The second firmware version is the most recent firmware version.
25. The method according to claim 20, wherein, The instruction to transmit the first firmware version of the firmware installed on the peripheral device to the second communication module of the telematics device via the fourth communication module of the peripheral device includes the instruction to transmit the first firmware version in response to the wake-up of the peripheral device.
26. The method of claim 20, wherein, Updating the firmware installed on the peripheral device by the at least one second processor based on the firmware data retrieved from the access location includes updating the firmware installed on the peripheral device after the vehicle in which the peripheral device is located is deactivated.
27. The method of claim 20, further comprising: A stored indication of the assumed firmware version of the firmware installed on the peripheral device can be accessed at a non-transitory processor-readable storage medium accessible by the management server. The at least one first processor compares the assumed firmware version indicated in the stored indication with the second firmware version set for distribution. In response to determining that the second firmware version is different from the assumed firmware version indicated in the stored indication, an indication for performing firmware action at the peripheral device is transmitted via the at least one first communication module for reception at the telematics device. The instruction for performing firmware actions is received by the third communication module of the remote information processing device; In response to receiving the instruction for performing firmware actions, a wake-up command is transmitted via the second communication module; The wake-up command is received via the fourth communication module; as well as Wake up the peripheral device. The instruction to transmit the first firmware version via the fourth communication module of the peripheral device includes transmitting the instruction to transmit the first firmware version in response to the peripheral device being woken up.
28. The method of claim 20, further comprising: The indication of the first firmware version received from the peripheral device is stored in the at least one second non-transitory processor-readable storage medium of the telematics device; as well as The instruction for the first firmware version is accessed by the remote information processing device from the at least one second non-transitory processor-readable storage medium. The instruction to transmit the first firmware version via the third communication module of the remote information processing device includes transmitting the instruction to access the first firmware version from the at least one second non-transitory processor-readable storage medium.