# Patent

## Title
Vehicle connectivity systems, methods and applications

## Abstract

A vehicle communication method comprises receiving a first wireless communication that is transmitted from a first remote device and managing a transmission of the first wireless communication over a vehicle network using a configurable message list. The receiving a first wireless communication is performed by a connectivity device coupled to a communication port of the vehicle network. The managing a transmission of the first wireless communication is performed by a message manager module of the connectivity device.

## Background
CROSS-REFERENCE
This patent application claims priority to U.S. Provisional Patent Application Ser. No. 61/313,543 filed Mar. 12, 2010 which is incorporated herein by reference in its entirety.


FIELD OF THE INVENTION
Exemplary embodiments of the present invention are related to systems and methods for communicating with a network of a vehicle.
BACKGROUND
A vehicle typically includes a plurality of controllers and devices. The controllers and devices communicate with each other using a vehicle on-board communication network. Such networks can include, for example, a vehicle bus that communicates according to a plurality of communication protocols such as a combination of a high speed controller area network (CAN) bus, and a low speed CAN bus. Accordingly, it is desirable to provide connectivity methods and systems to communicate with the on-board communication network.
SUMMARY OF THE INVENTION
Accordingly, in one embodiment, a vehicle communication method is provided. The method includes receiving a first wireless communication that is transmitted from a remote device; and managing a transmission of the first wireless communication over a vehicle network using a configurable message list.
The above features and advantages and other features and advantages of the invention are readily apparent from the following detailed description of the invention when taken in connection with the accompanying drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
Other objects, features, advantages and details appear, by way of example only, in the following detailed description of embodiments, the detailed description referring to the drawings in which:
FIG. 1 is a functional block diagram of a communication system that includes a vehicle that communicates with various remote devices using a connectivity device in accordance with an exemplary embodiment;
FIG. 2 is a functional block diagram of a connectivity device in accordance with an exemplary embodiment;
FIG. 3 is a dataflow diagram illustrating a message manager module of the connectivity device in accordance with an exemplary embodiment;
FIGS. 4 and 5 are flowcharts illustrating message manager methods that can be performed by the message manager module in accordance with exemplary embodiments;
FIG. 6 is a dataflow diagram illustrating an exemplary connectivity application in accordance with an exemplary embodiment; and
FIG. 7 is an illustration of an exemplary connectivity interface in accordance with an exemplary embodiment; and
FIGS. 8 and 9 are flowcharts illustrating an exemplary connectivity method that can be performed by a connectivity application in accordance with an exemplary embodiment.



DESCRIPTION OF THE EMBODIMENTS
The following description is merely exemplary in nature and is not intended to limit the present disclosure, its application or uses. It should be understood that throughout the drawings, corresponding reference numerals indicate like or corresponding parts and features. As used herein, the term module refers to an application specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and memory that executes one or more software or firmware programs, one or more software or firmware programs, a combinational logic circuit, and/or other suitable components that provide the described functionality.
In accordance with various embodiments of the invention a communication system of a vehicle 12 is shown generally at 10. The vehicle includes one or more control modules and/or devices 14a-14n that communicate via a vehicle network 16. The control modules and/or devices 14a-14n can include, for example, but are not limited to, an engine control module, a transmission control module, a body control module, a telematics (i.e. Onstar) module, or other electronic modules or devices resident within the vehicle 12. The vehicle network 16 can include any combination of wired or wireless communication channels. For example, the vehicle network 16 can include a single communication bus or a combination of various communication busses that are implemented according to vehicle communication network standards, such as, for example, Controller Area Network (CAN), Society of Automotive Engineers (SAE) J1850, and General Motors Local Areal Network (GMLAN).
The vehicle 12 further includes a communication port 18 (i.e. an assembly line diagnostic link (ALDL) port) that provides a data link to the vehicle network 16. A connectivity device 20 couples to the communication port 18. In various embodiments, the connectivity device 20 is a portable handheld device that removably couples to the communication port 18. In various other embodiments, the connectivity device 20 is integrated with the communication port 18 as a part of the vehicle 12.
The connectivity device 20 communicates data from the vehicle network 16 to various remote devices 22a-22n, such as, for example, cell phones, computers (i.e., servers, desktops, laptops, etc.), or various other electronic devices. The connectivity device 20 communicates the data according to one or more wireless communication protocols. In various embodiments, the connectivity device 20 receives data from a satellite system 26 and communicates the data to the remote devices 22a-22n and/or the vehicle network 16.
The remote devices 22a-22n can be configured to include, for example, a processor 28, a storage medium 30, one or more input and/or output (I/O) devices (or peripherals) 32, a display 34, and a network interface 36. The remote devices 22a-22n communicate with the portable connectivity device 20 via the network interface 36 and using a network protocol that is applicable to the remote device 22a-22n. 
The remote devices 22a-22n can be configured to include one or more connectivity applications 48. A connectivity application 48 includes one or more software instructions that, when executed by the processor 28, download a corresponding device application to the connectivity device 20 to enable communication between the vehicle 12 and the remote device 22a via the connectivity device 20. In various embodiments, the connectivity application can be stored in the storage medium 30 of the remote device 22a, can be downloaded from a remote storage device (i.e. a central server) (not shown), and/or can be accessed from a remote location (i.e. a client-server application).
The connectivity application 48 further processes data communicated from the vehicle 12 in one form or another and performs one or more actions based on the processed data. In various embodiments, the connectivity application 48 presents the processed data via an application interface 50 through the display 34. In various embodiments, the connectivity application 48 communicates data or data requests back to the vehicle based on the processed data. Operations of the connectivity application 48 can be executed based on user input. User input to the connectivity application 48 can be received from the I/O devices 32 when the user interacts with the application interface 50.
Referring now to FIG. 2, an exemplary connectivity device 20 is illustrated in accordance with various embodiments. The connectivity device 20 includes, for example, one or more network transceivers 60a-60n, a message manager module 62, and one or more wireless communication modules 64a-64n. The network transceivers 60a-60n correspond to the various communication channels of the vehicle 12. For example, network transceiver 1 can be a bidirectional high speed CAN transceiver, and network transceiver 2 can be a bidirectional low speed CAN transceiver, etc.
The one or more wireless communication modules 64a-64n correspond to the network protocols supported by the various remote devices 22a-22n. The one or more wireless communication modules 64a-64n can include for example, but are not limited to, a telecommunications module 64a, a long range wireless module 64b, and a short range wireless module 64c. The telecommunications module 64a transmits data to and receives data from telecommunication remote devices (i.e., the cell phone) according to a telecommunications protocol (i.e., GSM, CDMA, 3G, HSPA+, 4G, LTE, etc.) The long range wireless module 64b transmits data to and receives data from the other long range remote devices, such as the computer, according to a long range wireless protocol (i.e., WiFi). The short range wireless module 64c transmits data to and receives data from close range remote devices, such as when the remote devices 22a-22n are within the vehicle 12, according to a short range protocol (i.e., BlueTooth).
In various embodiments, the wireless communications module 64a-64n further includes a satellite module 64n. The satellite module 64n receives data from the global positioning satellite system 26 according to a satellite communications protocol.
The message manager module 62 manages the communication of the data to and from the network transceivers 60a-60n, the data to and from the wireless communication modules 64a-64c, and data from the satellite module 64n. In various embodiments, the message manager module 62 manages the communications by making use of a dynamically configurable message list.
Referring now to FIG. 3, a dataflow diagram illustrates various embodiments of the message manager module 62 that may be embedded within the portable connectivity device 20 (FIG. 2). As can be appreciated, various embodiments of message manager modules 62 according to the present disclosure may include any number of sub-modules embedded within the message manager module 62. For example, the sub-modules shown in FIG. 3 may be combined and/or further partitioned to similarly manage the communications using the dynamically configurable message list. In various embodiments, the message manager module 62 includes a memory manager 70, an application download manager module 72, and an application execution manager 74. The managers interface with a device application storage medium 76. The device application storage medium 76 stores one or more device applications.
In various embodiments, the memory manager 70 manages the data content stored in the device application storage medium 76. For example, with reference to FIGS. 3 and 4, when a new connectivity application 48 (FIG. 1) has been downloaded to a remote device 22a (FIG. 1) and the connectivity application 48 (FIG. 1) communicates a new application request 78 to the connectivity device 20 (FIG. 2) at 102, the memory manager 70 (FIG. 3) determines whether sufficient memory is available to store the device application associated with the connectivity application 48 (FIG. 1) at 104. If sufficient memory is available at 106, the memory manager 70 generates a download request 80 to the connectivity application 48 (FIG. 1) of the remote device 22a (FIG. 1) at 110. If, however, there is not sufficient memory at 106, the memory manager selectively removes other device applications based on one or memory management methods (i.e., first in first out, last in first out, remove least used, etc.) at 108 and generates the download request 80 to the connectivity application 48 (FIG. 1) of the remote device 22a (FIG. 1) at 110.
With reference to FIG. 3, the device application download manager module 72 receives the device application 82 from the remote device 22a (FIG. 1) and manages the storage of the device application 82 in the device application storage medium 76. The application execution manager 74 then manages the execution of the device application 82 based on one or more communications from the connectivity application 48 (FIG. 1) of the remote device 22a (FIG. 1) and further based on one or more communications from the vehicle network 16 (FIG. 1).
A device application 82, as shown in FIG. 5, for example, receives communications 84 from the remote device 22a (FIG. 1) through one of the wireless communication modules 64a-64n at 122. The device application 82 then manages the communications 84 based on whether the communication is a request for data from the vehicle 12 (FIG. 1) or data to be transmitted to the vehicle 12 (FIG. 1). For example, when the communication 84 includes data to be transmitted to the vehicle 12 (FIG. 1) at 124, the device application 82 assembles the data into a configurable message of the configurable message list of the vehicle network 16 at 130. The device application 82 then makes the message available for transmittal by the network transceivers 60a-60n via outgoing communications 88 at 132. Likewise, when the communication 84 includes a request for data at 124, the device application 82 monitors the vehicle network 16 for the message that includes the data via incoming communications 90 at 126 and routes the data to the appropriate wireless communication module 64a-64n (FIG. 2) via outgoing communications 86 at 128.
Referring now to FIG. 6, a dataflow diagram illustrates various embodiments of an exemplary connectivity application 48 of a remote device 22a-22n. In the example provided in FIG. 6, the connectivity application 48 is an ecostart application that communicates with the vehicle 12 (FIG. 1) to selectively start and stop the vehicle 12. The ecostart application selectively starts and stops the vehicle 12 (FIG. 1) based on a user request, and further based on temperature data received from the vehicle 12 (FIG. 1). The vehicle data is used to selectively start and stop the engine of the vehicle 12 (FIG. 1) to conserve energy. As can be appreciated, the connectivity applications 48 of the present disclosure can include various types of applications that operate based on communications with the vehicle 12 (FIG. 1) and are not limited to the present example. For example, the connectivity applications 48 can include, but are not limited to, a fuel level status application, a battery charge status application, an unlock doors application, etc.
In various embodiments, the connectivity application of FIG. 6 includes a user I/O manager 200, a temperature evaluator module 202, a start/stop manager module 204, and a device application download manager module 206. As can be appreciated, various embodiments of ecostart applications according to the present disclosure may include any number of sub-modules. For example, the sub-modules shown in FIG. 6 may be combined and/or further partitioned to similarly start the vehicle 12 (FIG. 1).
In various embodiments, the device application download manager module 206 manages the transmitting of the device application from the remote device 22a (FIG. 1) to the connectivity device 20 (FIG. 1). For example, the device application download manager 206 generates the new application request 78 to the connectivity device 20 (FIG. 1). Once a download request 80 is received, the device application download manager module 206 transmits the device application 82 to the connectivity device 20 (FIG. 1). The device application download manager module 206 updates a connectivity status 210 based on whether the device application 82 has been successfully downloaded to the connectivity device 20 (FIG. 1).
The user I/O manager 200 manages input requests initiated by the user when interacting with the application interface 50 (FIG. 1). For example, when the user initiates a start vehicle request 212, the user I/O manager 200 receives the start vehicle request 212 and generates a temperature request 214 to the device application 82 on the connectivity device 20. In another example, when the user initiates a vehicle stop request 216, the user I/O manager 200 passes the vehicle stop request 216 to the start/stop manager module 204.
The user I/O manager further manages the application interface 50 (FIG. 1) via the interface data 218. For example, as shown in FIG. 7, various input selection items and information output items can be displayed by the application interface 50. The input selection items can include, but are not limited to, a start selection item 250, and a stop selection item 252. The information output items can include, but are not limited to, an inside temperature display 254, an outside temperature display 256, and a status display 258. The status display 258 can display any status of the vehicle 12 (FIG. 1) (e.g., a fuel level or battery charge level) or a status of the connection with the vehicle 12 (FIG. 1).
With reference back to FIG. 6, the temperature evaluator module 202 receives the temperature data from the device application 82 on the connectivity device 20. In one example, the temperature data includes outside air temperature 220 and inside cabin temperature 222. The temperature evaluator module 202 evaluates the temperatures 220, 222 and selectively determines a start stage 224 based thereon. In various embodiments, the start stage 224 can indicate the type or length of a vehicle start. For example the start stage 224 can indicate a vehicle start with air conditioning start, a three minute start, a four minute start, a five minute start, a six minute start, etc. An exemplary start stage determination method is shown in FIGS. 8 and 9.
The start/stop manager module 204 evaluates the start stage 224 and generates vehicle start and vehicle stop requests 226, 228 based thereon. For example, when the start stage is a four minute start, the start/stop manager module 204 generates a vehicle start request 226 and after approximately four minutes of time has passed generates a vehicle stop request 228. The start/stop manager module 204 can further generate a vehicle stop request 228 at any time or when the vehicle 12 (FIG. 1) is operating based on the user initiated vehicle stop request 228.
With reference now to FIGS. 8 and 9, flowcharts illustrate an ecostart method that can be performed by a connectivity application in accordance with exemplary embodiments. As can be appreciated in light of the disclosure, the order of operation within the method is not limited to the sequential execution as illustrated in FIGS. 8 and 9, but may be performed in one or more varying orders as applicable and in accordance with the present disclosure.
In one example, the method may begin at 300. The outside air temperature and the inside cabin temperature are evaluated at 302-330. Based on the outside air temperature and/or the inside cabin temperature, the messages are sent to start and stop the vehicle. For example, at 302, if the outside air temperature is greater than X degrees (e.g., eight degrees Celsius), then the inside cabin temperature is evaluated at 306-312. If the inside cabin temperature is greater than Y degrees (e.g., fifteen degrees Celsius) at 306, an air conditioning start method is performed at 332. For example, a start message is generated and an air conditioning request is generated. After Z time (e.g., five minutes) has passed, the vehicle stop message is generated.
If, however, the inside cabin temperature is not greater than Y degrees at 306, rather it is greater than or equal to T degrees (e.g., ten degrees Celsius) at 308, the vehicle start message is generated and after U time (e.g., three minutes) has passed, the vehicle stop message is generated at 334. If, however, the inside cabin temperature is not greater than or equal to T degrees at 308, rather it is greater than or equal to V degrees (e.g., five degrees Celsius) at 310, the vehicle start message is generated and after W time (e.g., four minutes) has passed, the vehicle stop message is generated at 336.
If, however, the inside cabin temperature is not greater than or equal to V degrees at 310, rather it is greater than or equal to A degrees (e.g., zero degrees Celsius) at 312, the vehicle start message is generated and after B time (e.g., five minutes) has passed, the vehicle stop message is generated at 338. If, however, the inside cabin temperature is not greater than or equal to A degrees at 312, the vehicle start message is generated and after C time (e.g., seven minutes) has passed, the vehicle stop message is generated at 340.
At 302, if the outside air temperature is less than or equal to X degrees, and the outside air temperature is greater than or equal to D degrees (e.g., zero degrees Celsius) at 304, the inside cabin temperature is evaluated at 314-320. For example, if the inside cabin temperature is greater than E degrees (e.g., fifteen degrees Celsius) at 314, a start message is generated and after F time (e.g., two minutes) has passed, the vehicle stop message is generated at 342.
If, however, the inside cabin temperature is not greater than E degrees at 314, rather it is greater than or equal to G degrees (e.g., ten degrees Celsius) at 316, the vehicle start message is generated and after H time (e.g., four minutes) has passed, the vehicle stop message is generated at 344. If, however, the inside cabin temperature is not greater than or equal to G degrees at 316, rather it is greater than or equal to I degrees (e.g., five degrees Celsius) at 318, the vehicle start message is generated and after J time (e.g., five minutes) has passed, the vehicle stop message is generated 346.
If, however, the inside cabin temperature is not greater than or equal to I degrees at 318, rather it is greater than or equal to K degrees (e.g., zero degrees Celsius) at 320, the vehicle start message is generated and after L time (e.g., six minutes) has passed, the vehicle stop message is generated at 348. If, however, the inside cabin temperature is not greater than or equal to K degrees at 320, the vehicle start message is generated and after M time (e.g., eight minutes) has passed, the vehicle stop message is generated at 350.
At 304, if the outside air temperature is less than D degrees, the inside air temperature is evaluated at 324-330. For example, if the inside cabin temperature is greater than N degrees (e.g., fifteen degrees Celsius) at 324, a start message is generated and after O time (e.g., six minutes) has passed, the vehicle stop message is generated at 352. If, however, the inside cabin temperature is not greater than N degrees at 324, rather it is greater than or equal to P degrees (e.g., ten degrees Celsius) at 326, the vehicle start message is generated and after Q time (e.g., seven minutes) has passed, the vehicle stop message is generated at 354. If however, the inside cabin temperature is not greater than or equal to P degrees at 326, rather it is greater than or equal to R degrees (e.g., five degrees Celsius) at 328, the vehicle start message is generated and after S time (e.g., eight minutes) has passed, the vehicle stop message is generated at 356.
If, however, the inside cabin temperature is not greater than or equal to R degrees at 328, rather it is greater than or equal to T′ degrees (e.g., zero degrees Celsius) at 330, the vehicle start message is generated and after U′ time (e.g., nine minutes) has passed, the vehicle stop message is generated at 358. If, however, the inside cabin temperature is not greater than or equal to T′ degrees at 330, the vehicle start message is generated and after V′ time (e.g., ten minutes) has passed, the vehicle stop message is generated at 360.
As can be appreciated, the methods of the ecostart connectivity application 48 can be implemented in systems other than as described above. For example, the methods can be implemented by onboard vehicle modules or other modules that communicate with the vehicle 12 (FIG. 1).
While the invention has been described with reference to various exemplary embodiments, it will be understood by those skilled in the art that changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiments disclosed as the best mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the present application.

## Claims

1. A vehicle communication method, comprising:
receiving, by a connectivity device coupled to a communication port of the vehicle network, a first wireless communication that is transmitted from a first remote device, the communication port being disposed outside the connectivity device;
assembling, by a message manager module of the connectivity device, a configurable message based on the first communication and a configurable message list; and
transmitting, by the message manager module, the configurable message over a vehicle network to a sub-system of the vehicle.

2. The method of claim 1, wherein the first wireless communication is data.

3. The method of claim 1, wherein the first wireless communication is a request for data.

4. The method of claim 3, further comprising monitoring the vehicle network for data when the first wireless communication includes the request for the data.

5. The method of claim 4, further comprising transmitting the data to the remote device.

6. The method of claim 1, further comprising receiving a second wireless communication and selectively storing data of the second wireless communication.

7. The method of claim 6, wherein the selectively storing the data comprises determining whether sufficient memory is available to store the device application.

8. The method of claim 7, wherein the selectively storing the data further comprises when sufficient memory is not available selectively removing other device applications based on a memory management method.

9. A vehicle communication system, comprising:
a portable connectivity device coupled to a communication port of the vehicle network, the communication port being disposed outside the connectivity device, the portable connectivity device including a message manager module that is configured to receives a first wireless communication that is transmitted from a first remote device, assemble a configurable message based on the first communication and a configurable message list, and transmit the configurable message over a vehicle network to a sub-system of the vehicle.

10. The system of claim 9, wherein the configurable message list is dynamically configurable in accordance with a first device application received by the connectivity device from the first remote device.

11. The system of claim 9, wherein the message manager module is further configured to receive a second wireless communication that is transmitted from a second remote device and to manage a transmission of the second wireless communication over a vehicle network using the configurable message list.

12. The system of claim 11, wherein the configurable message list is dynamically configurable in accordance with a second device application received by the connectivity device from the second remote device.

13. The system of claim 12, wherein the message manager module transmits the data to the remote device.

14. The system of claim 9, wherein the message manager module receives a second wireless communication and selectively storing data of the second wireless communication.

15. The system of claim 14, wherein the message manager module selectively stores the data by determining whether sufficient memory is available to store the device application.

16. The system of claim 15, wherein the message manager module further selectively stores the data by selectively removing other device applications based on a memory management method when sufficient memory is not available.

17. The method of claim 1, wherein the configurable message is configured to start or stop the sub-system based on a type or length of a vehicle start identified by the first wireless communication.

18. The method of claim 17, wherein the sub-system is an air conditioning system.

19. The system of claim 15, wherein the configurable message is configured to start or stop the sub-system based on a type or length of a vehicle start identified by the first wireless communication.

20. The system of claim 19, wherein the sub-system is an air conditioning system.