Patent Publication Number: US-8532866-B1

Title: Concurrent vehicle data port communication system

Description:
BACKGROUND 
     This application relates generally to a method for concurrent communication of dynamic vehicle telemetry between a transceiver connected to a vehicle data port and a plurality of computing devices, such as a desktop computer or hand-held device, and in particular to a method of concurrently providing motor vehicle data to a plurality of users using a heterogeneous group of user devices, while allowing each user to customize the data displayed on the user&#39;s device. 
     Since 1996, every passenger car and light-duty truck sold in the United States has had a computer diagnostic port, called an OBD-II port or an SAE-J1962 port. This diagnostic port permits a mechanic or other user to connect to the vehicle and retrieve vehicle telemetry, that is, data about the vehicle, including engine, fuel system, brake system, and other data. Software has been developed to permit mechanics and automobile enthusiasts to develop graphical programs for displaying the telemetry data on a computer display. 
     Traditionally, vehicle data ports and diagnostic systems have been designed around a model of a single external device (or “scan tool”) connected to a vehicle at one time. If a dashboard display device is already connected to the vehicle data port and a user wanted to plug in a separate scan tool, the user either had to unplug the dashboard display device, or somehow split the wires so that a second device can be connected. In fact, many companies currently sell vehicle data port splitters (or “Y-cables”). 
     In most cases, these types of arrangements are constructed so that multiple devices are physically connected to (or in electrical communication with) the vehicle data port, but typically only one device is actively communicating with the vehicle at any given time, while one or more other devices are in a monitor-only mode, without active bidirectional communication directly with the vehicle. This way, the vehicle maintains bidirectional communication with only a single device at a time. Often, that connected device has no knowledge that other external devices are also monitoring communications from the vehicle. 
     Using a splitter or “Y-cable” with more than one device concurrently communicating with vehicles today causes a number of problems. It is widely assumed that only one device will be communicating with the vehicle at once, and some vehicles even enforce this by only responding to data requests from a single address. In fact, newer vehicle data protocols have standardized on this practice by assigning external equipment only a single allowable address range. If more than one device concurrently communicates with the vehicle, these protocols cause addressing conflicts, data collisions, timing violations and other kinds of related data acquisition problems. 
     In the past, the multiple connected device usage has been mostly limited to the scan tool designers who occasionally want to connect a second device using a “Y-cable” to monitor the requests they transmit to verify conformance or to monitor and debug the scan tool communications. However, contrary to much of the prevailing wisdom in this area, the ability to have concurrent users all communicating with the same vehicle has definite advantages. Thus, development of such a system while staying compliant with existing vehicle protocols, which were typically not designed with multiple concurrent connections in mind, could be very useful. 
     SUMMARY 
     The present system and method allows for concurrent communication and acquisition of dynamic vehicle telemetry data by a plurality of computing devices, such as computer monitors, hand-held devices, data logging and storage systems, external vehicle test equipment, scan tools, code readers, or other devices. The system communicates with the vehicle through the vehicle data port, such as the OBD-II port. A plurality of independent user computing devices are able to connect to a transceiver and send and receive communication from the transceiver, and also may request data from the vehicle or send and receive other types of vehicle communications. The specific requested data may be unique to the computing device or may overlap with the set of data requested by other computing devices, and is provided to the requesting computing device. 
     The system includes a transceiver connected directly (or indirectly using a pass-thru interface box or other means of wired or wireless electrical communication) to the vehicle data port. The transceiver communicates with the vehicle through the vehicle data port. The transceiver also communicates with each of the computing devices. As data or other communications becomes available from the vehicle, the transceiver pulls that data off the vehicle data port and provides it to any of the computing devices whose users may have requested such data. In some embodiments, the system even permits computing devices to provide commands through the communications path to the vehicle. The data is provided to the computing device and may be displayed on the computing device&#39;s own display device, logged by the computing device, or used in other ways. Each user of a computing device may or may not be aware that multiple users are concurrently communicating with the vehicle. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Other features and advantages of the present method will be apparent from the following Detailed Description taken in conjunction with the accompanying Drawings, in which: 
         FIG. 1  depicts a perspective view of several users concurrently communicating with a single vehicle data port using a variety of display devices and both wired and wireless communications; 
         FIG. 2  depicts a partial perspective view of the interior of a vehicle showing a transceiver connected to the vehicle data port using a wired pass thru hardware interface box; 
         FIG. 3  depicts a transceiver directly connected to the vehicle port; and 
         FIG. 4  depicts a transceiver communicating with a vehicle using a wireless pass thru hardware interface box, so that the vehicle may be physically located in a remote location. 
     
    
    
     DETAILED DESCRIPTION 
     Modern vehicles typically have a data port, such as an On-Board Diagnostics II port (“OBD-II port”). In prior systems, a single device connected to the vehicle data port permitted a single user to communicate with the vehicle through the data port. According to the present method, a system is provided that permits several users concurrently to communicate with a single vehicle data port. 
     As depicted in FIGURES, a vehicle  10  includes at least one vehicle data port  12 , which is typically an OBD-II port but may be other data ports. In the embodiment depicted in  FIG. 2 , a pass-thru interface  14  connects to the data port  12  through a cable  16 , and a second cable  18  connects the pass-thru interface to an intelligent data transceiver  20 . In the embodiment depicted in  FIG. 3 , the transceiver  20  is directly connected to the data port  12 . In the embodiment depicted in  FIG. 1 , the transceiver  20  is directly connected to the data port  12 , and an independent user computing device  22  is connected to the transceiver using a communications cable  24 . In the embodiment depicted in  FIG. 4 , a wireless pass-thru interface  28  is connected to the transceiver  20 , and a user device  22  is connected to the transceiver  20 . 
     The transceiver  20  may be any of a number of devices, such as a specialized transceiver or a laptop computer with specialized software and communications protocols loaded thereon. As depicted in  FIGS. 1 and 2 , the transceiver  20  may have a wired communications cable  24  attached thereto, which communications cable may then connect to a computing device  22 . The pass-thru interface  14  and the wireless pass-thru interface  28  may be any of those known in the art, such as those incorporating the ELM327 chip-set or J2534 compatible devices. The wireless communication can use any of those available, including Bluetooth, 802.11 (WiFi), RF, or other wireless protocols known in the art. 
     As depicted in  FIG. 1 , the present system permits several independent user computing devices  22  concurrently to communicate with the vehicle  10  through the data port  12  using a variety of individual independent computing devices  22 . The transceiver  20  communicates with each of the independent computing devices  22  using the software and communications protocols. This communication may be wireless or may pass over wires such as the communications cable  24 . For example, in  FIG. 1 , one user  30   a  communicates through the cable  24 , whereas the other users  30   b  and  30   c  communicate wirelessly. The communications between the devices  22  and the transceiver  20  may be bidirectional, and thus each device  22  may concurrently request and acquire any of the disparate types of vehicle diagnostic data available through the data port  12  from the vehicle  10  in real time, that is, as that data is generated and made available. 
     The transceiver  20  is designed to permit connection and disconnection from the vehicle data port  12 . The communications protocol contained in the programming of the transceiver distributes the vehicle data to the various user computing devices  22 . The transceiver streams various types of vehicle data in real time to whichever of the independent computing devices has requested such data. 
     The transceiver  20  may accept instructions or commands from each of the computing devices  22 . These commands typically are requests for specific types of vehicle data, for example vehicle engine rpm, fuel level, temperature, or any of the other data or commands available from the vehicle data port  12 . However, other commands may also be made, such as opening or closing the connection to the vehicle data port or reading trouble code data or making requests for other data from the vehicle or sending command codes, such as those that lock or unlock the torque converter or roll down a window or lock or unlock doors or honk the horn or test the headlights or actuate other vehicle systems. 
     The transceiver  20  passes those commands on to the vehicle data port  12 . As the requested commands are performed or data is collected, the vehicle data port passes that information to the transceiver, which in turn makes that information available to the computing devices  22  that requested that information. Computing devices  22  that have not requested certain information are typically not provided with that information, but may be provided with other requested information. Thus, each device is typically only provided with the subset of information that the user of that device has requested. However, in other embodiments, the system may be configured to provide each user or device the entire set of data, including data or communications not specifically requested by that device. 
     The actual data transmission may be directed to the computing devices  22  in various ways. For example, in one embodiment, the transceiver  20  may identify the computing device requesting a certain set of data, and when transmitting that data, the transceiver may selectively direct that data to the specific device, such as by addressing the device in the protocol. In another embodiment, the transceiver  20  may be configured to broadcast all of the data that has been requested by all of the connected computing devices  22 , and the respective computing devices  22  would then handle the data based on its own set of filters and uses. 
     There may be various ways for a computing device  22  to connect to the transceiver  20 . In one embodiment, a specialized protocol built on the TCP protocol (or another communications protocol such as UDP) effects the communication. The specialized protocol is designed to handle the communications specific to the system, such as establishing a connection between a computing device  22  and the transceiver  20  or specifying the types of communications data to be transmitted between the computing device  22  and the vehicle  10 . 
     For example, a given computing device  22  may connect using the transceiver  20  (and, in some embodiments, the pass-thru interface  14  or  28 ) to the vehicle data port  12  and request certain data, such as engine RPM, temperature, and vehicle speed. The transceiver  20  prioritizes and sequences the requests from all the connected computing devices  22  so that it can maintain compliance with existing standardized vehicle data port protocols. The importance of this step is emphasized by the fact that certain existing vehicle data port protocols require that certain requests be handled in a specific manner, such as by requiring a wait time after receipt of one request and before accepting another request. Other existing vehicle protocols may close the connection if requests are not transmitted to the vehicle data port properly. These sorts of conflicts may be difficult to avoid if the communications involve such prior systems as using a splitter (or Y) cable. Thus, the specialized protocol is designed to manage these sorts of conflicts. 
     In one embodiment, the transceiver  20  can accept concurrent connections from the plurality of computing devices  22  over TCP/IP sockets. The devices  22  are then able to connect to the transceiver  20  using TCP/IP from anywhere in the world, over both wired and wireless connections. In other embodiments, this is further enhanced to accept connections using other protocols such as Bluetooth, RS232, and USB. 
     Vehicle communications may be opened and closed by the transceiver  20  or by a request from a computing device  22  over the communications protocols. When a computing device first establishes a connection to the transceiver, there is an authentication or handshake used to determine what protocol features are supported by both sides and a protocol version is agreed upon. This allows for backwards compatibility even when the computing device  22  supports newer or older protocol features than the transceiver  20  or other concurrently connected computing devices. 
     In one embodiment, the transceiver  20  is configured with a pre-defined set of supported vehicle data items that each computing device  22  may request from the vehicle  10 . In this mode, the transceiver may already be actively performing vehicle communications for these pre-defined data items, so that the data is ready once a computing device requests it. In other embodiments, the individual computing devices may configure the transceiver with data items or other types of vehicle communications or commands that the transceiver did not already have pre-defined. Thus, the system provides flexibility in use. 
     The specialized protocol allows for each computing device  22  to request, or poll, each vehicle data item at any time. The specialized protocol also allows for each computing device  22  to select a data set to be obtained using vehicle communications sent automatically or in an ongoing fashion by the transceiver  20  and streamed from the transceiver  20  to the computing devices as soon as the vehicle data is available, without having to make an explicit request each time a new data sample is wanted. Thus, different computing devices may be concurrently requesting, polling, or receiving different or even overlapping subsets of vehicle data from the transceiver  20 . The transceiver manages the communication link with the vehicle  10  and delivers configured data items to and from the computing devices. 
     As mentioned, the transceiver  20  maintains a queue of pending (and ongoing) communications requests from each computing device  22  and orders and sequences the vehicle communications so that timing requirements are properly met and collisions and other types of problems are avoided. The transceiver  20  may include a cache of vehicle communications or data available to computing devices that do not necessarily need or want to make a new request for certain data. In such a case, the transceiver requests uncached data from the vehicle data port  12  as needed by the users. 
     The transceiver  20  may also incorporate a system where during the processing, ordering, and sequencing of vehicle communications from the plurality of concurrently connected computing devices  22 , the transceiver may be configured to identify certain vehicle communications requests from one computing device as duplicative or redundant of vehicle communications requests from another computing device. If such a duplicate or redundant vehicle communications request is found, the transceiver may send a single communications request to the vehicle and provide the response to more than one concurrently connected computing device. The transceiver may include a graphical display, for example where a computer laptop has specialized software enabling it to act as a transceiver, so that a user may use either that laptop acting in the capacity of a computing device  22  (as well as acting in the capacity of the transceiver) or another computing device  22  connected to that laptop, which again acts in the capacity of the transceiver. 
     According to one embodiment, the various computing devices  22  are configured to communicate with the transceiver  20  using a set of specialized protocols used by that transceiver. According to another embodiment, the computing devices  22  use the same protocols employed by the vehicle data port  12 . In this embodiment, the transceiver  20  manages the communications with each of the respective computing devices  22 , for example by identifying each communication as being associated with a specific computing device. The transceiver receives the data requests from the respective computing devices, provides the data request to the vehicle data port (either directly or through a pass-thru interface  14  or  28 , depending on the specific system in use), and identifies the response (from the vehicle data port) to each communication with the respective computing device, so that the computing devices each receive proper responses to the respective data requests made by that computing device. In effect, the transceiver translates communications between the computing devices  22  and the vehicle data port  12 , thereby emulating a single vehicle data port from the “perspective” of each computing device, and emulating a single computing device from the “perspective” of the vehicle data port. As a result, in this embodiment the computing devices may communicate with the vehicle data port through the transceiver with minimal or no additional adaptation or configuration of the computing devices. 
     The connection between the transceiver  20  and a computing device  22  may also close. Closing may be the result of a choice to close, or the result of a dropped connection, or other factors. Upon close of a connection, the transceiver  20  re-prioritizes and re-sequences the vehicle communications, so that requests from the computing device relating to the closed connection no longer consume available bandwidth and resources. 
     The present method allows a plurality of concurrent users to communicate with the vehicle over the vehicle data port, all in real time. Thus, the present invention has several advantages over the prior art. It will be obvious to those of skill in the art that the invention described in this specification and depicted in the FIGURES may be modified to produce different embodiments of the present invention. Although embodiments of the invention have been illustrated and described, various modifications and changes may be made by those skilled in the art without departing from the spirit and scope of the invention.