Intrusion protected user interface and functionality for vehicles using embedded controllers - Patents.com
An embedded controller in vehicles isolates critical control functions from external networks, ensuring secure gear shifts and display integrity by analyzing user input and communicating directly with the propulsion system.
Patent Information
- Application Number
- JP2024527505
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-11-11
- Filing Date
- 2022-11-10
- Publication Date
- 2025-01-15
AI Technical Summary
Modern vehicles with connected processors are vulnerable to malicious attacks via wireless networks, which can compromise critical vehicle functions such as acceleration and gear control.
Implementing an embedded controller isolated from external networks to receive user input, analyze it for gear shift requests, and communicate directly with the propulsion system while ensuring a static image of the current gear is displayed, thereby preventing unauthorized control.
Enhances vehicle security by isolating critical control functions from external network access, ensuring the display accurately reflects the current gear setting even if the infotainment system is compromised.
Smart Images

Figure 2025500737000001_ABST
Abstract
Description
[Technical field]
[0001] [CROSS REFERENCE TO RELATED APPLICATIONS] This application claims priority to U.S. Provisional Patent Application No. 63 / 263920, entitled "INTRUSION PROTECTED USER INTERFACE AND FUNCTIONALITY FOR VEHICLE USING EMBEDDED CONTROLLER," filed November 11, 2021, the disclosure of which is incorporated by reference herein in its entirety.
[0002] The present disclosure relates to embedded controllers in vehicles, and more particularly, to the use of embedded controllers to ensure safe functionality of a vehicle. [Background technology]
[0003] Modern vehicles typically include multiple processors that control different functions of the vehicle. For example, a vehicle may include a processor that controls a display located within the vehicle. In this example, the display may present an interface for the driver to use to view information related to the operation of the vehicle. As one example, the display may allow for adjustments to the radio or sound system. As another example, the display may present a map related to the vehicle's current location.
[0004] Certain processors, such as the display processor described above, are accessible from the outside world. For example, the display processor may obtain information over a wireless network (e.g., a cellular network) for inclusion in the presented interface. Exemplary information may include traffic information, map information, and the like. Because the processor responds to information transmitted from outside the vehicle, there is a security risk that a malicious party may tamper with the operation of the processor. For example, a malicious party may be able to take control of the in-vehicle display.
[0005] As can be appreciated, as vehicles become more complex and connected to the outside world, the risk of tampering with the vehicle's operation increases. For example, the Controller Area Network (CAN bus) in the vehicle can be accessed remotely via a wireless network. In this example, acceleration, braking, etc. can be tampered with by a malicious attack. Summary of the Invention [Means for solving the problem]
[0006] In some embodiments, a method implemented by an embedded controller is described that includes receiving user input from a display disposed in the vehicle directed to a user interface for presentation via the display, the user interface being rendered by an infotainment system included in the vehicle, identifying a gear shift request associated with adjusting a propulsion direction of the vehicle based on the user input, and updating the user interface to include a static image associated with the gear shift request, the embedded controller providing information associated with the static image to a timing controller of the display, the embedded controller communicating with a propulsion system that controls the propulsion direction of the vehicle, the embedded controller forwarding the gear shift request to the propulsion system.
[0007] Some embodiments describe a method implemented by a vehicle processor system including an embedded controller and an infotainment system, the vehicle processor system being configured to present a user interface for presentation via a display of the vehicle, the user interface comprising: presenting a first portion, the first portion including a static image showing a currently selected gear, the currently selected gear being associated with a particular propulsion direction, the static image being provided via the embedded controller to a timing controller of the display; presenting a second portion, the second portion including a dynamic user interface associated with a different vehicle function, the dynamic user interface being rendered by the infotainment system; and responding to a user input provided to the first portion associated with changing the currently selected gear, the user input being forwarded by the display to the embedded controller, the embedded generating a gear change request for transmission to the propulsion system.
[0008] In some embodiments, a vehicle processor system is described that includes an embedded controller configured to receive touch input information from a display, the touch input information reflecting an interaction with the display by a person within the vehicle, and an infotainment system in communication with the embedded controller and configured to receive the touch input information from the embedded controller, the infotainment system configured to render a dynamic user interface for presentation via the display, the embedded controller configured to cause presentation of a static image reflecting a currently selected gear of the vehicle, and the embedded controller providing information related to the static image to a timing controller of the display.
[0009] In some embodiments, a vehicle is described that includes an electric motor, a battery pack, a display in communication with the vehicle processor system, the vehicle processor system comprising an embedded controller, the embedded controller configured to receive touch input information from the display, the touch input information reflecting an interaction with the display by a person within the vehicle, and an infotainment system, the infotainment system configured to communicate with and receive touch input information from the embedded controller, the infotainment system configured to render a dynamic user interface for presentation via the display, the embedded controller configured to cause the presentation of a static image reflecting a currently selected gear of the vehicle, the embedded controller providing information related to the static image to a timing controller of the display.
[0010] In some embodiments, a method is described that includes presenting a user interface via a display disposed in a vehicle, the user interface including a visual representation of a vehicle operating parameter, determining a checksum value associated with the visual representation, the checksum value based on pixel information forming the visual representation, determining that the determined checksum value differs from a known checksum value associated with the display of the vehicle operating parameter, and taking corrective action, the corrective action including updating the user interface. [Brief description of the drawings]
[0011] [Figure 1] FIG. 1 is a block diagram of an exemplary vehicle processor system in communication with a display and a propulsion system.
[0012] [Figure 2A]FIG. 1 is a block diagram of a timing controller including a display that updates a user interface to present a static image.
[0013] [Figure 2B] FIG. 13 is another block diagram of the timing controller for updating users.
[0014] [Diagram 3] 4 is a flow diagram of an example process for safely handling a driver-provided gear shift request using a user interface.
[0015] [Figure 4] 1 is a flow diagram of an example process for updating a user interface based on a fault in an infotainment system.
[0016] [Figure 5A] FIG. 2 is a block diagram illustrating a vehicle processor system that implements the output of a user interface.
[0017] [Figure 5B] FIG. 1 is a block diagram illustrating an embodiment of a vehicle processor system that updates a user interface based on a fault in an infotainment system.
[0018] [Figure 5C] FIG. 2 is a block diagram illustrating another embodiment of a vehicle processor system that updates a user interface based on a fault in the infotainment system.
[0019] [Figure 6] 1 is a diagram of an exemplary user interface that can be used to provide a gear shift request.
[0020] [Figure 7] FIG. 11 is another example user interface that can be used to provide a gear shift request.
[0021] [Figure 8] 4 is a flow diagram of an example process for taking action in response to an erroneous indication of a vehicle operating parameter.
[0022] [Figure 9] 1 is a block diagram illustrating an example vehicle including a vehicle processor system.
[0023] Embodiments of the present disclosure and their advantages are best understood by reference to the following detailed description, in which like reference numerals have been used to identify like elements shown in one or more of the drawings, and it should be understood that the indications therein are for the purpose of illustrating embodiments of the present disclosure and are not intended to limit the disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0024] This specification describes techniques to ensure the safety of the operation of a vehicle, such as an electric vehicle. As described below, a display (e.g., a touch-sensitive display) included in the vehicle may be used by the driver to adjust the vehicle's operating functions. For example, the driver may change vehicle operating parameters, such as the current gear, the current heating, ventilation and air conditioning (HVAC) setting, etc. For the example of a gear change or gear shift, the vehicle may adjust the current gear between drive, reverse, park, neutral, etc. The current gear may represent the gear associated with the transmission or the propulsion direction (e.g., for an electric vehicle). To ensure that a malicious attacker cannot improperly adjust the current gear of the vehicle, for example, by malicious compromise of the display, this specification describes a separation between (1) a processor or computer that can be used to present a user interface via the display and (2) an embedded controller that can be used to implement the adjustment of the current gear. The processor or computer (also referred to herein as an infotainment system) may, in some embodiments, respond to information received from the outside world via a wireless connection (e.g., a cellular network). In contrast, the embedded controller may be blocked (e.g., firewalled) from the outside world. In this way, the vehicle can facilitate use of current gear coordination while ensuring strict security.
[0025] To reduce the complexity associated with the operation of a vehicle, it may be advantageous to eliminate at least some of the numerous physical controls included in the vehicle. An exemplary physical control may include a control for changing the propulsion direction. A vehicle operating autonomously or semi-autonomously may intelligently determine which propulsion direction is appropriate during the operation of the vehicle. In this example, the vehicle may determine that, as it is entering a driver's garage, the vehicle needs to reverse in order to back out of the garage. The vehicle may then determine that the vehicle should be placed in a drive mode to proceed toward the driver's destination. Thus, physical controls may be eliminated without compromising the user experience of operating the vehicle.
[0026] As can be appreciated, relinquishing physical control may further simplify the manufacture of the vehicle. For example, a physical control for changing propulsion direction may typically be a stick located adjacent to the steering wheel, or a shift lever located to the right of the driver (e.g., in the right driving area). In this example, the physical control may be eliminated, and instead, the function associated with the control may be determined autonomously.
[0027] Autonomous vehicles have benefits in terms of operation, but currently do not represent a significant number of vehicles. However, the above-mentioned physical control for adjusting the propulsion direction may still be omitted, and its functionality may be moved to software-defined control instead. For example, a display included in the vehicle may present a user interface that may adjust the current gear. In this example, the user interface may respond to user inputs related to changing the current gear (e.g., from park to drive, from reverse to drive, etc.). Thus, the driver may provide simple user inputs to a centralized display as opposed to manipulating physical inputs. Over time, for example, as autonomous software becomes more common, vehicles may enable autonomous operation of the propulsion direction or current gear. Thus, the above-mentioned vehicles include the advantage of simplified manufacturing while maintaining the driver's ability to manually control the vehicle's gear settings.
[0028] As mentioned above, the display of the vehicle may typically be controlled by a processor that is responsive to information provided by the outside world. For example, as the vehicle traverses a real-world environment, the processor may overlay information onto a map included in the displayed user interface. In this example, the overlaying information may indicate the route the driver should follow, traffic information, upcoming hazards, etc. This information may be obtained using a wireless network, such as a cellular network, or any network to which the vehicle may connect and communicate with the vehicle.
[0029] Typically, a user interface presented on a vehicle display is not considered to be at high risk of compromise (e.g., by a malicious attacker). For example, a vehicle display typically presents information related to the operation of the vehicle, but lacks the ability to directly control the operation of the vehicle. Thus, in this example, the display may represent a convenience for use by the driver, but the actual driving functions (e.g., steering, accelerating, braking, gear changing, etc.) may be realized elsewhere in the vehicle (e.g., using physical controls, using touch controls located in a separate location, autonomously by the vehicle, etc.). Furthermore, being able to attack a vehicle over a cellular network presents significant technical hurdles. For example, a malicious attacker may need to find a security weakness in the software that controls the user interface. In this example, the security weakness must be discoverable by the software that responds to information provided by the cellular network. As will be appreciated, attackers often find security weaknesses through a variety of other technologies, over wireless or wired data connections.
[0030] Thus, while there are currently limited examples of compromise by malicious attackers outside of a research environment, as advanced vehicle control transitions from physical to software-defined control, the security posture of the vehicle may need to be improved. While the description herein focuses on software-defined control for adjusting the current gear, it will be understood that other vehicle controls may also be included within the scope of the present specification. For example, functions such as honking the horn, adjusting the lights, turning on emergency braking, setting the cruise mode, etc. may be controllable by software-defined controls.
[0031] To enhance security, the present application describes the use of a secure embedded controller that first receives user input provided by the driver via a display of the vehicle. For example, the embedded controller may receive touch-based input information representing driver presses, swipes, gestures, etc., provided to a user interface. With respect to adjusting the current gear, the embedded controller may analyze the received user input and determine whether the driver intends to adjust the current gear. Adjusting the current gear may include changing the current propulsion direction. Once a positive determination is made, the embedded controller may transmit a gear change request (e.g., via a CAN bus or other messaging protocol / bus) to a processor or system associated with adjusting the current gear (hereinafter referred to as a propulsion system). The user input may be further forwarded to one or more processors (hereinafter referred to as an infotainment system) that render a dynamic user interface for presentation on a display.
[0032] As described below, the embedded controller may be isolated from the outside world. For example, the embedded controller may prohibit any wireless communication. In contrast, wireless communication may be limited to the infotainment system. It will be appreciated that modern vehicle user interfaces increasingly include different functions that rely on network connections. Such network connections may be directly connected to the infotainment system, may pass through a device not directly connected to the vehicle (e.g., a cell phone), or may be accessed in any other suitable manner. As an example, navigation information may rely on a network connection, as discussed above. As another example, a streaming audio application may rely on a network connection to stream the driver's preferred audio. Thus, the infotainment system may require the ability to receive network information. Because the infotainment system is accessible to the outside world, the system is more susceptible to being compromised.
[0033] The separation between the embedded controller and the infotainment system enhances the security posture of the vehicle while maintaining the modern infotainment functionality described above. For example, the infotainment system may be prohibited from effecting changes to vehicle control (e.g., gear changes). As another example, the infotainment system may be prohibited from providing information to the embedded controller. Instead, the embedded controller may act as a gateway to the infotainment system, thus ensuring that a malicious attacker does not have a path to compromise driving functionality through malicious control of the infotainment system.
[0034] In addition to ensuring safe gear changes, the embedded controller may output information for presentation via the display. For example, as described below, the embedded controller may update the user interface by providing visual information (hereafter referred to as static images) directly to elements contained in the display. One example element includes the timing controller used to drive the display. In this manner, the embedded controller may bypass the infotainment system that might otherwise render the user interface.
[0035] An exemplary static image may include a current gear setting. Thus, if the infotainment system is compromised, the display will continue to reflect the correct gear setting. For example, if a driver provides user input to adjust the current gear, the embedded controller may provide one or more static images to the timing controller that reflect the adjusted gear. In this example, the driver may adjust the current gear from Park to Drive. Thus, the embedded controller may cause the user interface to present a static image showing the current drive gear.
[0036] Thus, the user interface presented to the driver may include a first portion including a static image from the embedded controller and a second portion rendered by the infotainment system. Thus, a malicious attacker, in addition to being blocked from modifying vehicle control, may be further blocked from improperly manipulating said first portion of the user interface. In this manner, the driver may rely on the first portion as providing information that cannot be compromised.
[0037] The following figures illustrate an example of changing gears, but as can be appreciated, the techniques described herein can be used for other vehicle operating parameters. For example, static images may be used in connection with HVAC control. As another example, static images may be used to display the current speed of the vehicle. These static images may be updated (e.g., substantially in real time) as the speed of the vehicle is adjusted. Block Diagram
[0038] 1 is a block diagram of an example vehicle processor system 100 in communication with a display 110 and a propulsion system 140. As described herein, the vehicle processor system 100 may be used to control a user interface 116 presented via the display 110 and to coordinate the operation of the vehicle. For example, the vehicle processor system 100 may be used to provide a gear change request 124 to adjust the current gear of the vehicle. Exemplary gears may include reverse, drive, neutral, park, etc. As can be appreciated, gear may be broadly construed and does not require that the vehicle utilize physical gears to control transmission or propulsion. For example, a "drive" gear setting may be associated with a drive setting of a transmission, a forward propulsion direction, etc.
[0039] In the illustrated example, the user interface 116 includes a first portion 118A and a second portion 118B. The first portion 118A may be associated with the control of the vehicle by the user. For example, the first portion 118A may be used to present the current gear setting of the vehicle and allow adjustment of the current gear. Alternatively, the second portion 118B may be used to control navigation, audio, heating, ventilation, and air conditioning (HVAC), etc. Thus, the first portion 118A allows control of sensitive aspects of the vehicle that affect the operation of the vehicle (e.g., gear changes), while the second portion 118B makes it possible to control aspects of the vehicle that do not directly affect operation. In some embodiments, the first portion 118A may represent HVAC control / information, vehicle speed, important alerts, autonomous alerts / information, etc.
[0040] To enable the above separation, the vehicle processor system 100 includes an embedded controller 120 and an infotainment system 130. The embedded controller 120 may be, by way of example, a microcontroller, a processor, an application specific integrated circuit (ASIC), or the like. As described below, the embedded controller 120 may provide static image information 122 to the display 110 that can be used to update the first portion 118A. The infotainment system 130 may be a computer, one or more processors, or the like. Similar to the above, the infotainment system 130 may provide dynamic user interface information 132 that can be used to update at least the second portion 118B.
[0041] The infotainment system 130 may execute applications, software, etc. relating to entertainment, navigation, control of non-driving aspects of the vehicle (e.g., HVAC), etc., as described above. For example, the infotainment system 130 enables different functions to be performed via interaction with the user interface 116. In some embodiments, the infotainment system 130 may be associated with an online application store from which the driver or passengers may execute preferred applications (e.g., "apps"). At least some of the different functions may use the vehicle's network connection (e.g., a cellular network). For example, audio may be streamed over the network connection. Thus, the applications, software, etc. executed via the infotainment engine 130 enable the provision and receipt of information over the network connection.
[0042] In contrast, in some embodiments, the embedded controller 120 may be restricted from providing or receiving information via a network connection. In this manner, the embedded controller 120 may be configured to be inaccessible from the outside world. The embedded controller 120 may be accessible through a physical network connection that, as an example, may be isolated from other internal networks (e.g., a CAN bus), thereby limiting access. As will be appreciated, this inaccessibility may reduce or eliminate the possibility that a malicious attacker may be able to tamper with the embedded controller and thus activate functions of the vehicle (e.g., gear changes).
[0043] During operation of the vehicle, the driver or passengers may interact with the user interface 116 by providing touch-based input. For example, the display 110 may represent a touch-sensitive display. An example interaction may include adjusting an HVAC setting to increase or decrease the temperature within the vehicle's passenger compartment. Another example interaction may include adjusting an audio selection via interaction with a streaming audio application being executed by the infotainment system 130. Another example interaction may include adjusting the vehicle's current gear (e.g., from reverse to drive, drive to park, etc.).
[0044] The touch-based input described above may be provided to the vehicle processor system 100 as input information 112. Advantageously, the input information 112 may be forwarded by the display 110 (e.g., via a connection such as an I2C connection) to the embedded controller 120. In this manner, the input information 112 may be analyzed by the embedded controller 120 to determine whether the input information 112 reflects an intent to change the current gear of the vehicle. As an example, the input information 112 may reflect a driver interacting with a first portion of the user interface 118A to adjust the current gear. Thus, the embedded controller 120 may determine that the driver intends to adjust the current gear.
[0045] In response, the controller 120 may send a gear change request 124 to the propulsion system 140 to effect the adjustment. The propulsion system 140 may represent a system or processor that controls the gear settings of the vehicle, as described herein. An example of the embedded controller 120 analyzing the input information 112 to determine the gear change is described below with respect to FIG. 3. In some embodiments, the propulsion system 140 may provide the current gear 142 to the embedded controller 120. For example, as described below, the embedded controller 120 may cause one or more static images indicative of the current gear to be presented via the user interface 116. To ensure accuracy of the presented current gear, the embedded controller 120 may receive information regarding the current gear 142 from the propulsion system 140.
[0046] In some embodiments, the embedded controller 120 may analyze the input information 112 if the input information is associated with the first portion 118A. For example, the first portion 118A may be associated with a particular pixel of the user interface 116. As another example, the first portion 118A may be defined by one or more boundaries. Thus, the embedded controller 120 may analyze the input information 112 if at least one touch event (e.g., a press, swipe, gesture, such as exceeding a threshold time) is contained within the defined boundary. Advantageously, as expanded below with respect to FIG. 4, the embedded controller 120 may determine whether the input information 112 corresponding to the at least one touch event represents a user interaction intended to change gears or represents an attempt by a malicious attacker to change gears.
[0047] The input information 112 may then be forwarded to the infotainment system 130. As can be appreciated, the driver or passenger may routinely interact with the display to adjust functions not related to driving the vehicle. For example, the driver or passenger may interact with a map presented in the user interface 116. In this example, the interaction may include selecting a destination, zooming in or out of the map, etc. Accordingly, the infotainment system 130 may analyze the input information 112 to update the user interface 116. In the case of a user input associated with the first portion 118A, the infotainment system 130 may discard the user input. In the case of a user input associated with the second portion 118B, the infotainment system 130 may use the input to update the rendering of the user interface.
[0048] Advantageously, transmission of gear change requests 124 may be limited to the embedded controller 120. Thus, the infotainment system 130 may lack the ability to communicate with, or provide requests to, the propulsion system 140. In this manner, a malicious attacker may be unable to connect with elements of the vehicle that control gear changes.
[0049] In the illustrated example, the vehicle processor system 100 provides static image information 122 and dynamic user interface information 132 to the display. The dynamic user interface information 132 may be rendered via the infotainment system 130, such as via a graphics processor unit, processor, or from computer memory, to reflect an interactive user interface. For example, the dynamic user interface information 132 may be provided to an input of the display 110 via a DisplayPort, a High Definition Multimedia Interface (HDMI), etc. Thus, the dynamic user interface information 132 enables the presentation of complex animated graphics and user interface elements via the display 110.
[0050] The static image information 122 may include an image, or a selection of images, to be presented on the first portion 118A of the user interface 116. An exemplary image may include a representation of various gear settings in which the vehicle may be placed (e.g., drive, reverse, park, neutral) along with an indication of the currently selected gear. To ensure that the user interface 116 accurately reflects the currently selected gear, the embedded controller may provide the static image information 122 directly to the display. For example, the static image information 122 may be provided to a timing controller 114 of the display 110. As can be appreciated, the timing controller may configure a driver of the display 110 that can be used to output the lights that form the user interface 116. Thus, the static image information 122 may cause the timing controller 114 to directly set pixel values of the display 110. In this manner, the static image may be overlaid on the user interface 116.
[0051] The embedded controller 120 may optionally output static image information 122 for inclusion in the first portion 118A during operation of the vehicle. Thus, the embedded controller 120 may output static image information 122 such that the user interface 116 includes one or more static images in every frame that it presents via the display 110.
[0052] In some embodiments, the embedded controller 120 may output static image information 122 until detection of a gear change request 124. For example, the embedded controller 120 may output static image information 122 reflecting that the vehicle is in first gear. In this example, the first portion 118A may include an image reflecting first gear. Upon determining that the driver intends to change gears, the embedded controller 120 may stop outputting the static image information 122. The infotainment system 130 may then render an animation reflecting the adjustment from first gear to second gear for inclusion in the first portion 118A. After the animation, the embedded controller 120 may output static image information 122 causing the first portion 118A to indicate that second gear is currently selected.
[0053] In some embodiments, the embedded controller 120 may output the static image information 122 for a threshold time after determining the gear change request 124. For example, the user interface 116 may be rendered based on the dynamic user interface information 132 before the gear change request 124. In this example, the infotainment system 130 may render both the first portion 118A and the second portion 118B. Thus, the infotainment system 130 may render information reflecting the current gear. The embedded controller 120 may analyze the input information 112, as described above, and determine that the driver intends to adjust the gear of the vehicle to a subsequent gear. The embedded controller 120 may then output a static image reflecting the subsequent gear for at least the threshold time.
[0054] As described above, in some embodiments, the first portion 118A may be rendered by the infotainment system 130 at least part of the time. For example, the infotainment system 130 may cause the first portion 118A to present an animation reflecting a gear change. As another example, the infotainment system 130 may render visual information reflecting the current gear of the first portion 118A for a threshold time. In these embodiments, the infotainment system 130 may avoid rendering visual information for inclusion in the first portion 118A when the embedded controller 120 is providing the static image information 122. Optionally, the system 130 may render a particular color background (e.g., gray) and overlay the static image information 122 on the particular color background. The embedded controller 120 may optionally provide information to the infotainment system indicating the time during which the infotainment system 130 is outputting the static image information 122. Thus, the infotainment system 130 may avoid providing dynamic user interface information 132 that competes with the static image information 122.
[0055] Additionally, the user interface 116 may always present a static image in some embodiments. For example, the timing controller 114 may output a static image reflecting the current gear. When the driver selects a new gear or a gear is selected autonomously, the user interface 116 may output an animation reflecting the change. The display 110 may maintain the output of a static image (e.g., reflecting the old or new gear), but the static image may be presented with an alpha value of 0. Thus, the static image may be transparent so that the animation is visible to the driver. Following the animation, the static image may be updated to have an alpha value of 1 so that the static image is visible. In this way, even if the animation is compromised by a malicious attacker, the static image is automatically presented with an alpha value of 1 to disable the erroneous or inappropriate animation.
[0056] Thus, the embedded controller 120 may provide additional security while maintaining the ability for the infotainment system 130 to flexibly render at least a portion of the user interface 116. For example, the infotainment system 130 may be rapidly updated and improved via software updates (e.g., via over-the-air updates). Because the infotainment system 130 is removed from the actual control of the driving aspects of the vehicle (e.g., gear changes), the ability of any rapid improvements to adversely affect the control of the vehicle is limited.
[0057] 2A is a block diagram of a timing controller 114 that updates a user interface 204 to present a static image 206. As described in FIG 1, the timing controller 114 may receive static image information 122 from an embedded controller (e.g., controller 120). In the example of FIG 2A, the timing controller 114 may include or be in communication with a memory 202 that stores a static image 208 for inclusion in the user interface 204.
[0058] The memory 202 may store the static images 208 as pixel values (e.g., red, green, blue, values). Optionally, the memory 202 may store the static images 208 in association with the portion of the user interface 204 in which they will be included (e.g., a particular pixel of the user interface 204).
[0059] To include the static image 206 in the user interface 204, the static image information 122 may reflect a selection of the static image 206 from the stored static images 208. As an example, the embedded controller may determine that the driver intends to select a particular gear (e.g., parking, represented as "P" in the example). For example, the driver may provide a user input to select the "P" symbol in the user interface 204. The embedded controller may provide a request to the propulsion system, and if the request is approved, the controller may cause an update of the static image 206 to be performed. The embedded controller may then provide information 122 identifying the selection of the static image 206. As an example, each of the static images 208 may be associated with an identifier, such that the static image information 122 may include a particular identifier.
[0060] The selected static image 206 may then be provided to the timing controller 114 for inclusion in the user interface 204. As can be appreciated, the static image 208 may be stored in the memory 202 of the timing controller 114, transmitted along with the static image information 122 from the embedded controller 120, or stored in any other suitable location where the static image information 122 may be provided to or accessed by the timing controller 114. In some embodiments, the timing controller 114 may output the selected static image 206 until the embedded controller determines that the driver intends to change gears. In some embodiments, the timing controller 114 may output the selected static image 206 for a threshold time (e.g., 5 seconds, 10 seconds, 1 minute, 1 hour). After the threshold time, the infotainment system 130 (e.g., shown in FIG. 1) may render similar visual elements to the selected static image 206. In this manner, the infotainment system may be relied upon to provide a consistent visual experience throughout the user interface 204, except during gear changes. In some embodiments, the timing controller 114 may implement a state machine such that the selected static image 206 is output until a subsequent image is received. When the timing controller 114 implementing a state machine receives static image information 122 from the embedded controller 120, the timing controller may adjust to the new state and display the corresponding selected static image 206 from the available static images 208.
[0061] 2B is another block diagram of the timing controller 114 updating the user interface 204 to present a static image. In the illustrated example, the static image information 122 includes a selected static image 206. For example, the embedded controller 120 described above may determine that the driver intends to change gears to park (e.g., based on user input from the driver). The embedded controller 120 may then select a static image 206 that reflects that the vehicle is parked and provide the selected static image 206 to the timing controller 114. For example, the selected static image 206 may be provided along with information indicating its desired location (e.g., the particular pixel associated with the selected static image 206) within the user interface 116. Optionally, the static image information 122 may be received at a particular frequency (e.g., 30 Hz, 60 Hz, etc.). The particular frequency may be based on the refresh rate of the display 110. Optionally, the timing controller 114 may be instructed to output the selected static image 206 at the particular frequency.
[0062] The user interface 204 may further present animations associated with gear changes. For example, upon selecting a new gear (e.g., Park, as described above), the user interface 204 may render an animation reflecting the change. After a threshold time, the user interface 204 may present a selected static image 206 associated with Parking. Additionally, as described above, in some embodiments, a static image may be presented at all times, and an alpha value associated with the static image (e.g., associated with each pixel or the entire image) may be toggled between 0 and 1. Thus, the static image may be substantially invisible to the driver during the animation, and then toggled to be visible. Illustrative Flow Diagram
[0063] Figure 3 is a flow diagram of an example process 300 for safely processing a driver-provided gear change request using a user interface, such as user interface 116 of Figure 1. For convenience, process 300 is described as being performed by a system of one or more processors. For example, process 300 may be performed by vehicle processor system 100 or by an embedded controller 120 included in vehicle processor system 100.
[0064] In block 302, the system receives user input from a display included in the vehicle. The display may be a touch-sensitive display located at the front of the vehicle (e.g., display 110 of FIG. 1). As described above, the display may present a user interface that can be used to access different functions of the vehicle. For example, the user interface may enable music selection. As another example, the user interface may enable interaction with a map or navigation user interface function.
[0065] Thus, the display may output information reflecting the driver's interactions with the user interface. For example, the display may provide information identifying locations within the user interface that the driver touched, particular gestures recognized by a processor associated with the display, etc. As described in FIG. 1, user input may be provided to an embedded controller (e.g., embedded controller 120). In this manner, all interactions with the user interface may be initially analyzed by the embedded controller.
[0066] In block 304, the system identifies a gear shift request based on the user input. As described herein, vehicle operating parameters, such as gear shifting, may be adjusted via the user input. Although the following description is directed to adjusting the current gear, the description herein may apply to other vehicle operating parameters.
[0067] A user interface, such as user interface 204 of FIGS. 2A-2B, may include selectable options for adjusting a current gear of a vehicle. For example, the user interface may include a portion identifying each gear along with the currently selected gear. In this example, the system may determine that a user input is being provided for a particular gear included in the portion. Example gears may include drive, reverse, park, neutral, etc. The determination may be based on a location within the user interface associated with the user input. For example, the system may store information identifying a location within the user interface associated with the selection of each gear. Thus, in this example, the system may determine that the driver is pressing a finger on a particular gear. As a further example, user input indicating a gear change request may include a type of user gesture (e.g., a swipe, press, long press, etc.) that may or may not be confined to a bounded area of the display. Thus, if the particular gear is different from the currently selected gear, a gear shift request may be triggered to change to the particular gear.
[0068] Different user interfaces, such as those shown in FIGS. 6-7, allow for a gear change by swiping a visual element (e.g., vehicle 602) in a particular direction. For example, the driver may swipe the visual element upward to indicate an intent to drive the vehicle. As another example, the driver may swipe downward to indicate an intent to reverse the vehicle. The system may determine whether the user input is associated with moving the visual element upward or downward along a substantially straight path. The system may also determine whether the user input was greater than a threshold speed and / or greater than a threshold distance. The system may also determine whether the user input was greater than a threshold time (e.g., the user may press the display element for more than 3 seconds to perform a change). Based on the above analysis, the system may determine whether the driver intends to put the vehicle into drive or reverse. Optionally, the user interface may include a selectable object associated with putting the vehicle into park or neutral (e.g., the parking button icon in FIG. 6).
[0069] In block 306, the system updates the user interface to present a static image associated with the gear shift request. As described in FIGS. 1-2B, the embedded controller causes the display to output a static image reflecting the updated gear selected by the driver. For example, the embedded controller may provide the static image reflecting the updated gear to a timing controller of the display. In this example, the timing controller may directly set drivers, pixel values, etc. to cause the static image to be output via the display. As another example, the embedded controller may provide information that can be used to select a static image reflecting the updated gear. The timing controller may store, or be in communication with a memory that stores, the static images. Thus, the information may be used to select among the static images.
[0070] In some embodiments, the system may first present an animation related to the gear change. For example, with respect to FIGS. 6-7, the user interface may be updated based on the driver's touch input dragging a visual element upwards or downwards. As described in FIGS. 1-2B, the infotainment system may render a dynamic user interface responsive to the user input. For example, an embedded controller may provide user input to the infotainment system. In this example, the infotainment system may determine that the user input is directed to dragging a visual element. Thus, the infotainment system may render dynamic user interface information that animates the drag. After the animation, the embedded controller may output a static image reflecting the updated gear.
[0071] In block 308, the system forwards the gear shift request to the propulsion system. To effectuate the gear change to the updated gear, the embedded controller provides a request to the propulsion system to update the currently selected gear. The propulsion system may represent a processor, controller, etc., that coordinates the propulsion direction of the vehicle. For example, a vehicle having a transmission may be updated to reflect the updated gear. As another example, an electric vehicle may be updated to have its motor rotate in a particular direction associated with the updated propulsion direction. Fault detection in infotainment systems
[0072] 4 is a flow diagram of an example process 400 for updating a user interface based on a fault in an infotainment system. For convenience, the process 400 is described as being performed by one or more processor systems. For example, the process 400 may be performed by the vehicle processor system 100 or by an embedded controller 120 included in the vehicle processor system 100.
[0073] In block 402, the system causes the presentation of a dynamic user interface via the display. As described in Figures 1-2B, the system may present a dynamic user interface that can be used by the driver or passengers to perform different functions. The dynamic user interface may be rendered by the infotainment system and provided to the display.
[0074] At block 404, the system monitors a heartbeat between the embedded controller and the infotainment system. To detect a crash or failure of the infotainment system, the embedded controller may receive a heartbeat from the infotainment system. The heartbeat may be a constant signal provided by the infotainment system to the embedded controller. The heartbeat may also represent a periodic signal provided by the infotainment system to the embedded controller. The heartbeat may optionally include information reflecting proper operation of the infotainment system.
[0075] In block 406, the system determines a fault associated with the infotainment system. Based on a lack of a received heartbeat, a received heartbeat that is different from what the embedded controller expects, or information included in the heartbeat that indicates a fault, the embedded controller determines that the infotainment system is malfunctioning. For example, the infotainment system may crash such that a heartbeat is not provided to the embedded controller. As another example, the infotainment system may suffer an error or fault and further include information (e.g., information related to such error or fault) in the heartbeat signal. The particular error or fault may interrupt the proper rendering of a dynamic user interface.
[0076] At block 408, the system causes the presentation of a static image related to the current gear. Because the infotainment system renders a dynamic user interface that may substantially fill the display, an error or failure in the system may cause the user interface to not be rendered or to be rendered improperly. To ensure that the display presents information relevant to the operation of the vehicle, the embedded controller may cause the display to present a static image related to the current gear of the vehicle. The static image may be presented with an alpha value (e.g., a value of 1) that causes the static image to be presented. In some embodiments, the embedded controller may further render a static image showing a measurement of the gas remaining in the vehicle or stored energy. In some embodiments, the embedded controller may further render and update the speed at which the vehicle is traveling. The static image may optionally be present on the display at all times, including when the infotainment system is functioning, such as when the infotainment system is functioning, with an alpha value of 0, and some or all of the image rendered by the embedded controller is hidden from the user.
[0077] In some embodiments, the static image may include pixels that form a representation of the current gear. Additionally, the static image may include pixels surrounding the representation. For example, the surrounding pixels may be a particular color to ensure that the representation is visible. As an example, the surrounding pixels may be white, gray, etc. Thus, the representation may be presented dark (e.g., black, dark gray) and the representation may be visible even if the display is not presenting anything else (e.g., such that the background would otherwise be black).
[0078] 5A is a block diagram illustrating a vehicle processor system 100 that implements output of a user interface 504 on a vehicle display. As described herein, the vehicle processor system 100 may include an infotainment system 130 and an embedded controller 120. As described in FIG. 4, a heartbeat signal 502 may be provided to the embedded controller 120 by the system 130. For example, the system 130 may output the signal periodically. As another example, the embedded controller 120 may periodically request the heartbeat signal 502.
[0079] In the illustrated example, the vehicle processor system 100 provides static image information 122 and dynamic user interface information 132, as described herein. Thus, the user interface 504 includes a static image 506 along with a dynamically rendered user interface 508. In some embodiments, the infotainment system 130 may render the user interface 504. For example, as described above with respect to FIG. 1, in some embodiments, an embedded controller may output a static image of the current gear setting for a threshold time after a gear change request.
[0080] 5B is a block diagram illustrating an embodiment of the vehicle processor system 100 updating the user interface 504 based on a fault in the infotainment system 130. As shown, the heartbeat signal 502 is interrupted, for example, due to a fault in the infotainment system 130 or due to malicious interference with the infotainment system 130. Thus, based on the fault, the user interface 504 reflects a static image 506 of the currently selected gear. In this manner, the driver can view information relevant to driving the vehicle. In addition to the currently selected gear, in some embodiments, the user interface 504 may present static images reflecting HVAC settings, speed, critical alerts, autonomous alerts or information, charge status (e.g., charge level), turn signal information (e.g., whether one or more turn signals are on), etc.
[0081] In embodiments where the infotainment system 130 rendered the user interface 504, a failure of the infotainment system 130 may result in the entire user interface 504 being precluded. Thus, upon detecting the absence of the heartbeat signal 502, the embedded controller 120 may output a static image 506. For example, the embedded controller 120 may store information identifying the current gear. As another example, the embedded controller 120 may request the current gear from the propulsion system shown in FIG. 1 . In this manner, the embedded controller 120 may quickly recover from a failure of the infotainment system 130.
[0082] 5C is a block diagram illustrating another embodiment of the vehicle processor system 100 that updates the user interface 504 based on a failure of the infotainment system 130. In some embodiments, the embedded controller 120 may output additional information 510 reflecting the failure of the system 130. For example, the information 510 may include text indicating that the interface is temporarily unavailable. Exemplary User Interface
[0083] 6 is an example user interface 600 that can be used to provide a gear shift request. As described in FIG. 3, the driver may drag the visual element 602 upward or downward to provide an input to trigger a gear shift request. For example, dragging downward puts the gear in reverse (e.g., reverse direction of propulsion). As another example, dragging upward puts the gear in drive (e.g., forward direction of propulsion).
[0084] The embedded controller described above may analyze the received user input and determine that the driver intends to change gears. In some embodiments, an animation may be presented reflecting the adjustment of gears. For example, the animation may depict visual element 602 moving upward when the selected gear is in drive. The embedded controller may then output a static image of visual element 602 further up in user interface 600. As another example, the animation may depict visual element 602 moving downward when the selected gear is in reverse. The embedded controller may then output a static image of visual element 602 further down in user interface 600.
[0085] 7 is another example user interface 700 presented via a vehicle's display. In the illustrated example, a visual element 702 is being dragged upward within the user interface 700 to put the vehicle into drive. The visual element 702 may represent a static image that an embedded controller provides to a timing controller of the display. Detecting and responding to fraudulent information
[0086] 8 is a flow diagram of an example process 800 for taking action in response to an erroneous indication of a vehicle operating parameter. For convenience, the process 800 is described as being performed by a series of one or more processors. For example, the process 800 may be performed by the vehicle processor system 100 or an embedded controller 120 included in the vehicle processor system 100.
[0087] In block 802, the system causes the infotainment system 130 to present a visual representation of the vehicle operating parameters, which may be the current gear 142, the current direction of travel, the current state of the parking brake, the current HVAC control, the current speed, different other vehicle controls, etc., displayed as static image information 122 on the display 110, as described in FIGS.
[0088] In block 804, the system (e.g., the embedded controller) determines a checksum value based on pixel information forming a visual representation of the vehicle operating parameter (e.g., pixel values of the visual representation, such as red values, green values, blue values, etc.). The checksum value may be determined using a cyclic redundancy check, a parity byte algorithm, a frame check sequence, etc., as some examples. The checksum value may be determined using an error detection code. The vehicle operating parameter may be represented visually (e.g., in static image 506 of FIG. 5, visual element 702 of FIG. 7, etc.) on the display 110. In one example, the pixel information may be determined or otherwise identified by the timing controller 114 and transmitted to the embedded controller 120 for determination of the checksum value.
[0089] In another example, embedded controller 120 may access pixel information related to the vehicle operating parameters being displayed directly from display 110 (e.g., from an HDMI controller, a USB controller, a dedicated image data decoder, etc.). In another example, infotainment system 130 may control display 110 and send pixel values directly to both display 110 and embedded controller 120 such that the embedded controller may directly monitor display information output by infotainment system 130 as the display information is received by the display.
[0090] At block 806, the system accesses a known checksum value associated with the displayed vehicle operating parameter. The known checksum value may be stored in memory 202 of the timing controller 114, in memory of the embedded controller 120, or the like. The known checksum value may also be calculated in real time by the embedded controller 120, the timing controller 114, or the like. For example, to calculate the known checksum value in real time, the embedded controller 120 may receive static information (e.g., static image information 122 of FIG. 1 ) from the display 110. The embedded controller may then access a memory of the vehicle processor system 100 that stores an expected checksum value for the static image information 122.
[0091] In block 808 , the system compares the checksum value of the visual representation to the known checksum value for that operational parameter accessed in block 806 .
[0092] In block 810, the system takes corrective action in response to a negative comparison (e.g., display an error message on the display, display a warning on the display, turn off the infotainment system, turn off the display, change the current gear of the propulsion system, etc.). For example, the infotainment system 130 may be instructed by the embedded controller 120 to disable the current visual representation on the display 110 and replace the displayed system with a warning or a static image. In another example, the embedded controller 120 may directly control some or all of the display 110 from the infotainment system 130 and instruct the timing controller 114 to display a selected static image 206 representing the correct value of the vehicle operating parameter. For example, the embedded controller 120 may cause the presentation of the static image to be implemented as described herein (e.g., the controller 120 may cause the timing controller to directly set pixel values). Exemplary Vehicles
[0093] 9 shows a block diagram of a vehicle 900. The vehicle 900 may include one or more electric motors 902 that move the vehicle 900. The electric motors 902 may include, for example, an induction motor, a permanent magnet motor, etc. As known to those skilled in the art, an energy storage device 904 (e.g., a battery pack, one or more battery packs each comprising multiple cells, one or more capacitors, a supercapacitor, etc.) may be used to power the electric motor 902.
[0094] The vehicle 900 further includes a propulsion system that can be used to set the gear (e.g., propulsion direction) of the vehicle. For an electric vehicle, the propulsion system 140 may regulate the operation of the electric motor 902 to change the propulsion direction. The vehicle further includes the vehicle processor system 100 and display 110 described above. Other embodiments
[0095] All of the processes described herein may be embodied in software code modules executed by a computer system including one or more computers or processors, and may be fully automated by the software code modules. The code modules may be stored in any type of non-transitory computer readable medium or other computer storage device. Part or all of the methods may be embodied in dedicated computer hardware.
[0096] Many other variations beyond those described herein will be apparent from this disclosure. For example, depending on the embodiment, certain operations, events, or functions of any of the algorithms described herein may be performed in a different order, added, merged, or omitted entirely (e.g., not all operations or events described may be necessary to the implementation of an algorithm). Furthermore, in certain embodiments, operations or events may be performed simultaneously rather than sequentially, for example, through multi-threading, interrupt processing, or multiple processors or processor cores, or on other parallel architectures. Furthermore, various tasks or processes may be performed by different machines and / or computer systems that may function together.
[0097] The various example logic blocks, modules, and engines described in connection with the embodiments disclosed herein may be implemented or performed by a machine, such as a processing unit or processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof, designed to perform the functions described herein. The processor may be a microprocessor, but in alternative examples, the processor may be a controller, a microcontroller, or a state machine, combinations thereof, and the like. The processor may include electrical circuitry configured to process computer-executable instructions. In another embodiment, the processor includes an FPGA or other programmable device that performs logical operations without processing computer-executable instructions. The processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors in combination with a DSP core, or any other such configuration. Although described herein primarily with respect to digital technology, the processor may include primarily analog components. For example, some or all of the signal processing algorithms described herein may be implemented in analog circuitry, or mixed analog and digital circuitry. The computing environment may include any type of computing system, including, but not limited to, a computing system based on a computational engine within a microprocessor, mainframe computer, digital signal processor, portable computing device, device controller, or appliance, to name a few.
[0098] In particular, conditional language such as "can," "could," "might," or "may" is typically understood within the context in which it is generally used to convey that certain embodiments include certain features, elements, and / or steps, while other embodiments do not, unless otherwise specified. Thus, such conditional language is generally not intended to imply that features, elements, and / or steps are somehow required for one or more embodiments, or that one or more embodiments necessarily include logic for determining, with or without user input or prompting, whether or not those features, elements, and / or steps are to be included in or performed in any particular embodiment.
[0099] Disjunctive language, such as the phrase "at least one of X, Y, or Z," is understood in the context in which it is generally used to indicate that an item, term, etc. can be either X, Y, or Z, or any combination thereof (e.g., X, Y, and / or Z), unless otherwise indicated. Thus, such disjunctive language does not generally imply, and should not be intended to, that a particular embodiment requires at least one of X, at least one of Y, or at least one of Z, respectively, to be present.
[0100] Any process descriptions, elements or blocks in the flow diagrams described herein and / or illustrated in the accompanying drawings should be understood as potentially representing modules, segments or portions of code that include one or more executable instructions for implementing a particular logical function or element in the process. As will be appreciated by those skilled in the art, depending on the functionality involved, alternative implementations are included within the scope of the embodiments described herein, in which elements or functions may be omitted, performed substantially simultaneously or in the order shown or described, including in reverse order.
[0101] Unless otherwise noted, articles such as "a" or "an" should generally be construed to include one or more of the listed items. Thus, phrases such as "a device configured to" are intended to include one or more of the listed devices. Such one or more listed devices may also be collectively configured to perform the stated enumeration. For example, "a processor configured to perform enumerations A, B, and C" may include a first processor configured to perform enumeration A working in conjunction with a second processor configured to perform enumerations B and C.
[0102] It is emphasized that many variations and modifications can be made to the above-described embodiments, and that the elements are to be understood as being among the other acceptable examples, and all such modifications and variations are intended to be included herein within the scope of this disclosure.
Claims
1. 1. A method implemented by an embedded controller comprising a vehicle, comprising: receiving user input from a display disposed in the vehicle, the user input being directed to a user interface for presentation via the display, the user interface being rendered by an infotainment system included in the vehicle; identifying a gear shift request associated with adjusting a propulsion direction of the vehicle based on the user input; updating the user interface to include a static image related to the gear shift request, the embedded controller providing information related to the static image to a timing controller of the display; The method, wherein the embedded controller is in communication with a propulsion system that controls a propulsion direction of the vehicle, and the embedded controller forwards the gear shift request to the propulsion system.
2. The method of claim 1 , wherein the embedded controller provides the user input to the infotainment system, and the infotainment system updates the user interface based on the user input.
3. The method of claim 1 , wherein the received user input is indicative of a touch input directed at the display, and the received user input is indicative of a location where the touch occurred.
4. The step of identifying a gear shift request comprises: The method of claim 1 , comprising determining whether the user input is directed to a portion of the user interface related to gear selection.
5. The step of identifying a gear shift request comprises: The method of claim 1 , comprising determining that the user input reflects a drag of a visual element in the user interface in a particular direction, the particular direction indicating the thrust direction.
6. 2. The method of claim 1, wherein the static image is provided directly to the timing controller via the embedded controller for inclusion in the user interface, and the remainder of the user interface is rendered via the infotainment system, which provides the rendered information to an input of the display.
7. The method of claim 6 , wherein the input is a display port.
8. The method of claim 6 , wherein the input is an HDMI port.
9. The method of claim 1 , wherein the infotainment system is prohibited from communicating with the propulsion system.
10. The method of claim 1 , wherein the embedded controller provides information identifying a particular static image to be presented on the user interface, and the timing controller retrieves the particular static image from a read-only memory.
11. The method of claim 10 , wherein the read-only memory is configured to be updated with updated static images via over-the-air updates.
12. 1. A method implemented by a vehicle processor system, the vehicle processor system comprising: an embedded controller; and an infotainment system, the vehicle processor system configured to present a user interface for presentation via a display of a vehicle; The user interface, Presenting a first portion, the first portion includes a static image showing a currently selected gear, the currently selected gear being associated with a particular propulsion direction; presenting a first portion, the static image being provided via the embedded controller to a timing controller of the display; presenting a second portion, the second portion including dynamic user interfaces associated with different vehicle functions, the dynamic user interfaces being rendered by the infotainment system; and responding to user input provided to the first portion related to changing the currently selected gear, the user input being forwarded by the display to the embedded controller, which generates a gear change request for transmission to a propulsion system.
13. The method of claim 12 , wherein the embedded controller updates the static image based on the gear change request.
14. The method of claim 12 , wherein the embedded controller analyzes the user input to determine a change to the currently selected gear.
15. 13. The method of claim 12, wherein the infotainment system updates the dynamic user interface to present an animation related to changing the currently selected gear, and following the animation, the embedded controller updates the static image.
16. 1. A vehicle processor system for inclusion in a vehicle, the vehicle processor system in communication with a display, the vehicle processor system comprising: an embedded controller configured to receive touch input information from the display, the touch input information reflecting an interaction with the display by a person within the vehicle; and an infotainment system configured to communicate with and receive the touch input information from the embedded controller, the infotainment system configured to render a dynamic user interface for presentation via the display; A vehicle processor system, wherein the embedded controller is configured to effect the presentation of static images reflecting vehicle operating parameters, the embedded controller providing information related to the static images to a timing controller of the display.
17. The vehicle processor system of claim 16 , wherein the infotainment system is connected to the display via an input port.
18. 20. The vehicle processor system of claim 17, wherein the input port is a display port.
19. 17. The vehicle processor system of claim 16, wherein the vehicle operating parameter reflects a currently selected gear of the vehicle, and the embedded controller is configured to analyze a received touch input to determine that the user input reflects a gear change request.
20. 20. The vehicle processor system of claim 19, wherein the embedded controller is configured to provide the gear change request to a propulsion system to effect a change in propulsion direction.
21. The vehicle processor system of claim 19 , wherein the embedded controller is configured to update the presented static image based on the gear change request.
22. 17. The vehicle processor system of claim 16, wherein the embedded controller monitors a heartbeat signal between the embedded controller and the infotainment system, the heartbeat signal being usable to determine a fault associated with the infotainment system.
23. 23. The vehicle processor of claim 22, wherein the embedded controller determines a fault associated with the infotainment system based on the heartbeat signal, and wherein the embedded controller causes the presentation of static information reflecting the fault.
24. 23. The vehicle processor system of claim 22, wherein the infotainment system causes the presentation of the dynamic user interface, the dynamic user interface including information reflecting a currently selected gear, and wherein based on the determined fault, the embedded controller causes the presentation of the static image.
25. A vehicle, An electric motor; A battery pack; a display in communication with the vehicle processor system; The vehicle processor system, an embedded controller configured to receive touch input information from the display, the touch input information reflecting an interaction with the display by a person within the vehicle; and and an infotainment system configured to communicate with and receive the touch input information from the embedded controller, the infotainment system configured to render a dynamic user interface for presentation via the display. A vehicle, wherein the embedded controller is configured to cause the presentation of a static image reflecting a currently selected gear of the vehicle, the embedded controller providing information related to the static image to a timing controller of the display.
26. 1. A method implemented by a vehicle processor system including an embedded controller and an infotainment system, comprising: presenting, via a display disposed in the vehicle, a user interface including a visual representation of the vehicle operating parameters; determining a checksum value associated with the visual representation, the checksum value being based on pixel information forming the visual representation; determining that the determined checksum value differs from a known checksum value associated with the representation of the vehicle operating parameter; taking corrective action, the corrective action comprising updating the user interface.
27. The method of claim 26 , wherein the user interface is presented via the infotainment system.
28. 27. The method of claim 26, wherein the checksum value is determined via the embedded controller.
29. 27. The method of claim 26, wherein the embedded controller determines that the determined checksum value differs from the known checksum value.
30. 30. The method of claim 29, wherein the embedded controller accesses or stores individual known checksum values associated with individual vehicle operating parameters.
31. 27. The method of claim 26, wherein vehicle operating parameters include a current gear, a current direction of propulsion, a current HVAC control, and / or a current speed of the vehicle.
32. 27. The method of claim 26, wherein the embedded controller is in communication with a propulsion system, and the infotainment system is prohibited from communicating with the propulsion system.
33. 27. The method of claim 26, wherein the corrective action comprises updating the user interface to display a warning.
34. 27. The method of claim 26, wherein the corrective action includes turning off the infotainment system, and the embedded controller directly controls the display via a timing controller.
35. The method of claim 34 , wherein the embedded controller causes the display of a static image related to the vehicle operating parameter.
36. 36. The method of claim 35, wherein the embedded controller causes a timing controller of the display to display the static image.
37. 37. The method of claim 36, wherein the timing controller stores a plurality of static images associated with vehicle operating parameters.
38. 27. The method of claim 26, wherein the checksum value is a cyclic redundancy check.
39. 39. A system comprising one or more processors and a non-transitory computer storage medium storing instructions that, when executed by the one or more processors, cause the processors to implement the method of any one of claims 26 to 38.
