Abstract:
A method of processing J1850 requests using a scan tool having multiple processor systems is provided. The scan tool includes a first processor that processes data according to scan tool functions to assist with diagnosing and repairing a vehicle. A second processor receives data transmitted to the first processor and stores the data in a buffer. The second processor determines whether the data is complete to enable the first processor to make a determination regarding the data.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims priority to provisional U.S. patent application entitled, “SYSTEM AND METHOD OF INCREASING DATA PROCESSING ON A DIAGNOSTIC TOOL,” filed May 30, 2008, having a Ser. No. 61/057,653, now pending, the disclosure of which is hereby incorporated by reference, in its entirety. 
     FIELD OF THE INVENTION 
     The invention relates generally to an automotive scan tool. More particularly, the invention relates to an automotive scan tool having multiple processors. 
     BACKGROUND OF THE INVENTION 
     Modern vehicles typically have one or more diagnostic systems, generally having separate computer control modules to control various functions of the vehicle. Some examples include powertrain control module (PCM), engine control module (ECM), a transmission control module (TCM), Anti-locking brake system (ABS), and an air bag control module. The vehicle diagnostic systems often have self-diagnostic capability to detect and alert the driver of problems the vehicle may be encountering, provide data stream information containing vehicle operating conditions, and allow a technician to perform special diagnostic functions to aide in vehicle repair. When a problem is found, a diagnostic trouble code (DTC) is set within a memory of a computer provided in the vehicle. DTCs are as general or as specific as the manufacturer desires. 
     To facilitate vehicle communications, an auto repair technician needs a diagnostic tool. The diagnostic tool must, therefore, be connected to the vehicle&#39;s computer bus system to access and retrieve vehicle data. Scan tools are testing devices that interface with vehicle diagnostic systems to retrieve information from the various control modules. The scan tools are equipped to communicate in various communication protocols such as Controller Area Network (CAN), J1850 VPM and PWM, ISO 9141, Keyword 2000 and others. These communications protocols may be specific to the various automobile manufacturers. The scan tool helps a technician diagnose and repair the vehicle based on information the tool retrieves from the vehicle. 
     Scan tools may include hardware for implementing a Byte Data Link Controller (BDLC) or software for simulating such hardware. This hardware can only transmit and receive individual bytes of data, similar to a Universal Asynchronous Receiver Transmitter (UART). Every time a byte of data is received or transmitted, an interrupt signal also occurs to indicate that the BLDC is ready to send the next byte or a byte is available to be received. Therefore, all messages on a bus of the hardware are handled byte-by-byte by a processor of the scan tool. Each interrupt suspends data processing until a determination is made whether the byte of data received is, for example, the start of a new data packet, data in the packet or the end of a packet. If the byte is the end of a packet, a determination is made regarding whether the packet is for the receiving processor or another processor on the bus. Thus, the processor must handle all bus traffic, whether or not it is intended for it. These interrupts delay processing and cause a lot of processor processing capability to be used for undesired data processing. 
     SUMMARY OF THE INVENTION 
     The foregoing disadvantages are overcome, to a great extent, by the invention, wherein in one aspect an apparatus is provided that in some embodiments includes a method of processing J1850 requests using a scan tool having multiple processors. 
     In accordance with one embodiment of the invention, a method of processing J1850 requests using a scan tool having multiple processor systems is provided. The scan tool includes a first (master) processor that processes data according to scan tool functions to assist with diagnosing and repairing a vehicle. A second (slave) processor receives data communicated from the first (master) processor, stores the data in a shared buffer, and indicates that a message is ready for transmission. The second (slave) processor may perform all functions typically performed by the BLDC as well as additional functions. For example, the second (slave) processor may perform bus arbitration, transmit a data packet on the bus when permitted to do so, monitor bus traffic, receive all packets on the bus, and selects, through, for example, a configurable software filter, only those messages destined for the first (master) processor. 
     In accordance with another embodiment of the invention, a method of processing J1850 requests using a scan tool having multiple processor systems includes using filters to determine whether data received by a secondary processor needs to be processed by a main processor. The filters determine whether data is related to functions being performed or to be performed by the scan tool. If data is not related to such functions, the data is not communicated to the main processor for processing. If a data packet is received that passes the filter criteria, the second (slave) processor stores the data in a shared buffer and signals the first (master) processor that data is ready. The first (master) processor can then retrieve the data in a single operation. This increases processor bandwidth and reduces processing time. 
     In accordance with another embodiment of the invention, a method of processing J1850 requests using a scan tool having multiple processor systems includes enabling a second processor to perform bus arbitration. The second processor determines when the bus is idle so that a particular device may use the bus with no intervention from a first processor. The second processor may also transmit automatic re-tries relating to loss of bus priority. 
     There has thus been outlined, rather broadly, certain embodiments of the invention in order that the detailed description thereof herein may be better understood, and in order that the present contribution to the art may be better appreciated. There are, of course, additional embodiments of the invention that will be described below and which will form the subject matter of the claims appended hereto. 
     In this respect, before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and to the arrangements of the components set forth in the following description or illustrated in the drawings. The invention is capable of embodiments in addition to those described and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein, as well as the abstract, are for the purpose of description and should not be regarded as limiting. 
     As such, those skilled in the art will appreciate that the conception upon which this disclosure is based may readily be utilized as a basis for the designing of other structures, methods and systems for carrying out the several purposes of the invention. It is important, therefore, that the claims be regarded as including such equivalent constructions insofar as they do not depart from the spirit and scope of the invention. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a front view illustrating a scan tool according to one embodiment of the invention. 
         FIG. 2  is a block diagram of the components of a diagnostic tool. 
         FIG. 3  illustrates a method according to one embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The invention will now be described with reference to the drawing figures, in which like reference numerals refer to like parts throughout. An embodiment in accordance with the invention provides for an apparatus and method for better vehicle data processing. 
     “Scan tool” as used herein can be any computing device that includes a processor or controller. For example, a desktop computer, a notebook, personal digital assistant (PDA), a phone, or any other computing device. 
       FIG. 1  is a front view illustrating a scan tool  100  according to an embodiment of the invention. The scan tool can be any computing device, such as, for example, the Nemisys scan tool from Service Solutions (a unit of the SPX Corporation) in Owatonna, Minn. The scan tool can be used on all types of vehicles including a automobile, trucks, motorcycles, motor boats, etc. The scan tool  100  includes a housing  102  to house the various components of the scan tool, such as a screen  104 , a user interface  106 , a power key  108 , a memory card reader  110  and a connector interface  112 . The screen  104  can be any screen, for example, LCD (liquid crystal display), VGA (video graphics array), touch screen (can also be a user interface), etc. The user interface  106  allows the user to interact with the scan tool in order to operate the scan tool as desired. The user interface  106  can include function keys, arrow keys or any other type of keys that can manipulate the scan tool  100  in order to operate functionality of the scan tool. The user interface can also include numbers or be alphanumeric. The power key  108  allows the user to turn the scan tool on and off, as required. 
     Memory card reader  110  can be a single type card reader, such as a compact flash card, floppy disc, memory stick, secure digital, flash memory or other types of memory. The memory card reader  110  can be a reader that reads more than one of the aforementioned memory such as a combination memory card reader. Additionally, the card reader  110  can also read any other computer readable medium, such as CD, DVD, UMD, etc. 
     The connector interface  112  allows the scan tool  100  to connect to an external device, such as an ECU (electronic control unit) of a vehicle, a computing device, an external communication device (such as a modem), a network, etc. through a wired or wireless connection. Interface  112  can also include a USB, FIREWIRE, modem, RS232, RS485, and other connections to communicate with external devices, such as a hard drive, USB drive, CD player, DVD player, UMD player or other computer readable medium devices. 
       FIG. 2  is a block diagram of the components of a diagnostic tool  100 . In  FIG. 2 , the diagnostic tool  100  according to an embodiment of the invention includes a processor  202 , a field programmable gate array (FPGA)  214 , a system bus  224 , the display  104 , a complex programmable logic device (CPLD)  204 , the user interface  106  in the form of a keypad, a memory subsystem  208 , an internal non-volatile memory  218 , a card reader  220 , a system bus  222 , the connector interface in the form of a data link connector  211 , and a selectable signal translator  210 . The data link connector  211  can connect to a vehicle interface  232  via an external cable (not shown). 
     Selectable signal translator  210  communicates with the vehicle communication interface  230  through the data link connector  211 . Signal translator  210  conditions signals received from a motor vehicle control unit through the vehicle communication interface  230  to a conditioned signal compatible with diagnostic tool  100 . Translator  210  can communicate with, for example, the following communication protocol: J1850 signal, ISO 9141-2 signal, communication collision detection (CCD) (e.g., Chrysler collision detection), data communication links (DCL), serial communication interface (SCI), S/F codes, a solenoid drive, J1708, RS232, controller area network (CAN), or other communication protocols that are implemented in a vehicle. 
     The circuitry to translate a particular communication protocol can be selected by FPGA  214  (e.g., by tri-stating unused transceivers) or by providing a keying device that plugs into the connector interface  112  that is provided by diagnostic tool  100  to connect diagnostic tool  100  to vehicle communication interface  230 . Translator  210  is also coupled to FPGA  214  and the card reader  220  via bus  224 . FPGA  214  transmits to and receives signals (i.e., messages) from the motor vehicle control unit through translator  210 . 
     FPGA  214  is coupled to processor  202  through various address, data and control lines by the system bus  222 . FPGA  214  is also coupled to the card reader  220  through bus  224 . Processor  202  is also coupled to the display  104  in order to output the desired information to the user. The processor  202  communicates with the CPLD  204  through system bus  222 . 
     In one embodiment, the processor can be a dual processor such as an S12XE, S12XF, S12XHZ and other similar processor from Freescale Semiconductor (Austin, Tex.). However, any processor having at least dual cores is included in the embodiment. 
     Additionally, processor  202  is programmed to receive input from the user through the keypad  106  via the CPLD  204 . The input device  106  can also be a mouse or any other suitable input device. The CPLD  204  provides logic for decoding various inputs from the user of diagnostic tool  100  and also provides glue-logic for various other interfacing tasks. 
     Memory subsystem  208  and internal non-volatile memory  218  are coupled to system bus  222 , which allows for communication with the processor  202  and FPGA  214 . Memory subsystem  208  can include an application dependent amount of dynamic random access memory (DRAM), a hard drive, and/or read only memory (ROM). Software to run the scan tool  100  can be stored in the memory subsystem  208 . Internal non-volatile memory  218  can be an electrically erasable programmable read-only memory (EEPROM), flash ROM, or other similar memory. Internal non-volatile memory  218  can provide, for example, storage for boot code, self-diagnostics, various drivers and space for FPGA images, if desired. If less than all of the modules are implemented in FPGA  114 , memory  218  can contain downloadable images so that FPGA can be reconfigured for a different group of communication protocols. 
       FIG. 3  illustrates a method  300  of increasing data processing on a scan tool according to one embodiment of the invention. In operation, at step  310 , data is received by a first processor. The data may be a user selecting on the scan tool that certain diagnostic data is needed from a vehicle such as rotation per minute or what DTCs (diagnostic trouble code) have been set in the vehicle. At step  320 , the first processor stores the data in a buffer. At step  330 , the first processor transmits an interrupt to a second processor. The interrupt indicates that data has been received and needs to be evaluated. At step  334 , the second processor retrieves the first data from the shared memory. At step  336 , transmit the first data to the second processor. At step  340 , the second processor determines whether the data received is complete. This step is performed because data is received and transmitted by the scan tool in individual bytes. Therefore, the scan tool is unable to perform a function until all necessary bytes of data have been received. 
     If a determination is made, at step  340 , that the data is not complete, the method  300  may return to step  310  to receive additional data. If the second processor determines that all bytes of data for a particular function have been received and the data is complete, the second processor, at step  350 , determines whether the data should be processed. According to one embodiment of the invention, one or more software settable filters may be used to assist in determining whether data should be processed. For example, one or more filters may be created to identify data related to one or more particular functions. If one or more of those functions have not been requested to be performed by a scan tool user or if the data is not necessary to perform a function requested by the scan tool user, the filters may not transmit the data to the first processor for processing. 
     If a determination is made, at step  350 , that the data should not be processed, the method  300  may return to step  310  to receive additional data or end at step  354 . If a determination is made that the data needs to be processed, the second processor may transmit an interrupt to the first processor in step  360 . The interrupt indicates to the first processor that data processing is required. The second processor may then transmit the data to the first processor in step  370 . In this manner, the first processor is prevented from receiving unnecessary interrupts and processing unnecessary data. This increases the bandwidth of the first processor, reduces processing time, and enables the first processor to perform tasks required of functions desired to be performed and requested by a scan tool user. 
     According to one embodiment of the invention, in step  380 , the second processor may also perform a portion or all bus arbitration. Bus arbitration grants use of a system bus to a particular device. By enabling the second processor to perform bus arbitration, the first processor again is further enabled to perform tasks required of functions desired to be performed and requested by a scan tool user. The second processor may also be enabled to provide for automatic re-tries regarding the loss of bus priority. According to one embodiment of the invention, bus arbitration is performed solely by the second processor with no intervention necessary from the first processor. 
     The many features and advantages of the invention are apparent from the detailed specification, and thus, it is intended by the appended claims to cover all such features and advantages of the invention which fall within the true spirit and scope of the invention. Further, since numerous modifications and variations will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and operation illustrated and described, and accordingly, all suitable modifications and equivalents may be resorted to, falling within the scope of the invention.