Patent Publication Number: US-2004044639-A1

Title: Programmable data logger

Description:
DESCRIPTION  
       [0001] 1. Technical Field of the Invention  
       [0002] The invention relates to an apparatus and a method for logging information on at least one bus system.  
       [0003] In very involved motor vehicles of more and more complex design, it will in future be unavoidable to use bus systems which are employed for communicating with the individual modules. The use of bus systems reduces the number of cables and hence the complexity of the wiring harness enormously. This is accompanied by the fact that the vehicles can be designed to be lighter and hence to have lower consumption.  
       [0004] The use of bus systems is also susceptible to faults, however. The increasing complexity means that it is often not possible for simulations to give a comprehensive result. This means that the vehicles need to be subjected to longer tests in order to identify faults which a simulation would not have picked up.  
       [0005] These tests involve checking the vehicle&#39;s functions by analysing the bus system. Should faults occur, then it is advantageous for the bus traffic to have been recorded over a relatively long period of time. The ascertained data can then be used to draw a conclusion about the origin of the fault.  
       [0006] 2. Prior Art  
       [0007] DE 35 40599 discloses a diagnostic system for a motor vehicle. The diagnostic system is connected to a serial bus. The fault reports are stored in a non-volatile memory. The fault reports can be read from the defined memory areas of the control system and can be displayed on the display system. Diagnosis is initiated in this case by plugging in a diagnostic plug.  
       [0008] DE 3229411 discloses a self-monitoring apparatus. This system comprises a memory area for storing fault data and fault addresses, a fault display and a microcomputer which is associated with the control system and has an input and a display unit. This system is relatively involved, however, and requires a special vehicle information system with a separate display and input unit. In addition, if the system is intended to be used to monitor a plurality of electronic control systems, then a dedicated bus system from the vehicle information system to the respective control system is required in each case.  
       BACKGROUND OF THE INVENTION  
       [0009] It is an object of the invention to provide a diagnostic system for bus systems, particularly for the CAN bus, which can be used on a variable basis and makes it possible to analyse a multiplicity of faults.  
       [0010] This object is achieved by inventions having the features of the independent claims. Advantageous developments of the inventions are characterized in the subclaims.  
       [0011] A first element of the present invention is an apparatus for logging information on at least one bus system, particularly in a CAN system. CAN systems are used in the field of motor vehicles on account of their particular advantages, such as determinism, reliability and performance. An interface to the bus system can be used to access the data traffic.  
       [0012] A processing unit, which is preferably in the form of a microprocessor, filters determinable data from the data traffic. The data are determined by a program which has been compiled prior to this. Specific program constructs can stipulate what data need to be filtered. The data filtered in this way are stored in a memory. This memory is an FIFO memory which is regularly in the range of one to two MB. Other sizes are likewise conceivable, but it will be pointed out that a large amount of data makes evaluation more complex. The FIFO memory can likewise be simulated by an appropriate memory management system using a RAM store. In preferred embodiments, a plurality of separate FIFO memories are provided.  
       [0013] Use in motor vehicles entails the inventive apparatus being fitted at locations which do not inconvenience the occupants. To read the collected data, it is advantageous if the data can be transmitted via a wireless connection. For this task, the present invention has a communications unit which permits wireless communication in order to transmit the data stored in the memory. Besides the data transmitted in this manner, it is likewise possible to transmit program information which has resulted in the memory being frozen. Hence, it is also possible to access internal states of the examining program which determines the state of the memory.  
       [0014] For use in motor vehicles, the apparatus is arranged in an impact-resistant and sealed housing. In this context, the housing is of a size which does not hinder use in the vehicle. It is generally a box having the size of a shoe box The components are of power-saving design, which means that the supply voltage can be provided by the vehicle. For this purpose, appropriate connections are provided which are connected to a power supply unit.  
       [0015] In order for the collected information which the apparatus records during the vehicle&#39;s trips to be automatically transmitted to a central control station which evaluates the data, the communications unit examines the surroundings for possible reception stations. These reception stations are connected to computing centres which analyse the transmitted data.  
       [0016] It is beneficial if communication takes place by radio using UMTS, GSM, GRPS, Bluetooth, Wireless Lan or using infrared. Standard protocols have the advantage that the infrastructure is inexpensive, since it is either already present or is mass-produced. In the preferred embodiment, wireless LAN is used on account of the high bandwidth.  
       [0017] Another element of the invention is an apparatus for mobile logging of information on at least one bus system, particularly in a CAN system, whose processing unit uses programmable filter rules to filter out data in order to store these data in a memory. On the basis of programmable states and events, the state of the memory is frozen. A program which controls such an apparatus comprises two components. In the first component, the filter rules are stipulated. The filter rules stipulate what information is to be stored later for analysis. The events stipulate when the memory needs to be frozen. On account of its being in the form of an FIFO, the memory would lose its content if it could not be frozen by particular events. These events are generally triggered by particular states on the bus system, particular reports from the users of the bus system and/or by internal states of the program which are derived from the previous history. These states and events are described by an appropriate programming language, the finished program being transferred, following compilation, to the inventive apparatus, where it is then executed. It will be pointed out that it is likewise possible to interpret the program. In the preferred embodiment, however, no use is made of this. This is not intended to represent any restriction of the scope of protection, however.  
       [0018] The program can thus be divided into two sections which, depending on type, can be executed either in parallel or sequentially. Should there be a multiprocessor system available, then each section can be executed as a process on a dedicated processor. In single-processor systems, at least sections of the process are generally executed sequentially. The first section of the program undertakes the filtering of the data and determines what data need to be written to the memory. The second process controls the first by checking events and states which can result in the content of the memory being deleted or frozen.  
       [0019] The states or events are variables, timers, counters, timeouts, flags, message rates, time integrals, reception events and time-controlled events which use functions such as conditions or logic or arithmetic operators to control start or stop events which affect the first process. To store particular states and events, data structures are provided which can undertake the task of variables after they have been instantiated.  
       [0020] The filtering system comprises recording filters, reproduction filters and gateway filters which include or exclude data having particular identifiers. The recording filter determines the data which are stored in the memory during analysis. The reproduction filter is used to find the data which will be transmitted later. Gateway filters are useful only if there are a plurality of CAN buses, and stipulate what data are forwarded from one bus to the other.  
       [0021] For better analysis of the collected data, said data are provided with a time stamp, so that synchronous reproduction is possible. During reproduction, the packets are resent on the bus in order to be able to observe and analyse the fault situation which has arisen as often as desired.  
       [0022] To transmit the program, a separate interface is preferably used. This can be in the form of serial interfaces. In one particular embodiment, the program is likewise transmitted via the wireless connection. It is thus possible to create a new program which is not transmitted until the inventive apparatus sets up a connection to the base station. This connection is often not set up until the vehicle containing the inventive apparatus enters the reception range of the base station.  
       [0023] Another element of the invention is a method for evaluating data which are transmitted via a bus system using a programmable mobile evaluation unit whose memory can store the data from the bus system. The evaluation unit is preferably the inventive apparatus. Producing the program and loading the data require the steps below.  
       [0024] First, a program is written by using a programming language which has constructs for filtering the data and for determining states and events. This is preferably the programming language which is described further below. When the program has been developed, it is compiled, so that the program can be executed on the evaluation unit (processor). Generally, special compilers are used which perform optimization such that the short response times and reaction times are achieved which are required in order to analyse the high level of data traffic on the bus. The externally compiled program is transferred to the evaluation unit via the interfaces described. The apparatus is preferably designed such that the program is called automatically after it has been loaded or whenever the vehicle is started later, in order to carry out the analysis activity. As soon as the events have frozen the content of the memory, a report—which can also be visual—is produced. It is now possible to start downloading the collected data.  
       [0025] When the collected data have been downloaded, further analysis tools are available—these generally involve software which conditions the information in various forms. It is thus possible to produce multidimensional depictions in the form of curves, histograms or mountain ranges.  
       [0026] The different forms of transmission of the collected data to the base station have already been described above. The transmission of data can also be made dependent on whether particular events have occurred.  
       [0027] Another important element of the invention is the programming language for controlling the apparatus described. This programming language comprises two fundamental constructs. First, it is a construct which describes the data which need to be filtered and hence need to be stored at least intermittently. Secondly, it is a construct which makes it possible to specify relevant states and events.  
       [0028] The filter construct allows the messages to be filtered according to their header and according to their content. The header generally determines the significance and origin of the packet. The content can have different significances depending on the protocol. It is also possible to use the construct to determine data which are sent to the bus when simulating the situation.  
       [0029] The individual types of states and events have already been described above. They can also be found in the subclaims. The naming of these features is self-explanatory.  
       [0030] The ascertained states and events are generally used to control programmable start and stop trigger criteria for each memory. They can be related to one another as desired by operators. The constructs for this are logic and arithmetic operators. States and events are stored using data structures. Such data structures are provided on the basis of the type of events.  
       [0031] Further program constructs are used to send CAN messages for particular events. This means that a bus user which is actually present can be controlled or a bus user which is not present can be simulated.  
       [0032] Classification functions such as MinMax (minimum and maximum value of a variable), Count (frequency of the occurrence of a criterion) and Timer (dwell time or active time of a criterion), which can also take into account a plurality of dimensions, can be used to collect and to correlate data-related findings.  
       [0033] A further program construct, such as is already known from other programming languages (include), makes it possible to load macro definitions, such as packet identifiers. These packet identifiers are different for every vehicle, but they are provided by the manufacturer, which means that decoding is possible. The use of the macro definitions makes it possible to use the same program code (after compiling) for different vehicles.  
       [0034] Another element of the invention is an evaluation unit which uses a wireless connection to communicate with the inventive apparatus. For communication, the apparatus is preferably connected to a base station, the base station using a wireless connection to interchange information with the inventive data logger. This apparatus is preferably a conventional PC which is connected to the inventive apparatus via a wireless LAN. Communication preferably takes place using known protocols (IP). The protocol based on IP is not standardized. However, it is also possible in this case to use a known ftp protocol. In addition, the evaluation unit can be designed such that it first checks whether particular events have occurred before the data are loaded. In another embodiment, it is likewise possible for the inventive apparatus for logging data not to permit a connection to be set up if particular events have not occurred.  
       [0035] To be able to transmit large volumes of data, the evaluation unit checks whether sufficiently high bandwidth is available before data transmission is started. The evaluation unit is thus constantly checking the network with its base stations in order to discover whether new data loggers have registered.  
       [0036] In another embodiment, transmission takes place under the protection of passwords, with the individual items of interchanged information additionally being able to be encrypted. 
     
    
    
     DETAILED DESCRIPTION  
     [0037] The invention is explained in more detail below using exemplary embodiments which are shown schematically in the figures. Identical reference numerals in the individual figures denote identical elements in this context. Specifically,  
     [0038]FIG. 1 shows an example program which uses the fundamental components of the programming language;  
     [0039]FIG. 2 shows the schematic design of the inventive apparatus, which is based on a Realtime Linux (RT-Linux), with both software and hardware components being shown;  
     [0040]FIG. 3 shows the schematic splitting of the flow of data on the bus and the storage of the individual items of information, and also control of the memories by the program. 
    
    
     [0041]FIG. 1 shows a program which comprises various blocks.  
     [0042] The aim is to collect data about failures in the antilock system (ABS) which occur above a particular minimum speed. In this context, the speedometer must not have failed, however, since the, speed information is otherwise meaningless. If the antilock system reports a fault, the speedometer is working properly and the minimum speed has been exceeded, then the memory needs to be frozen. Every 10 seconds, impending fault reports from the antilock system need to be deleted by sending an appropriate packet. Only particular packets are recorded, not the entire bus traffic. In addition, classifications are made which store the number of speedometer failures in relation to the distance and the duration of failures in the antilock system over the speed travelled.  
     [0043] The constant stipulates the minimum speed as 20 km/h. The data packets with the header  301   h  contain, in data byte  6  at bit position  4 , the information about a fault in the antilock system. The speed travelled is transmitted in the packet having the header  200   h  in bytes  2  and  3 .  
     [0044] Speedometer failure has occurred whenever no speed packet has been sent over the time period of 200 time units.  
     [0045] Persistently fast travel (“FastTravel”) is in progress whenever the data packet containing the speed information has been received at least 100 times in succession and the speed travelled is always over the minimum speed. The distance is calculated as the integral over the speed, with all 3600 time units being integrated.  
     [0046] The memory is frozen whenever a fault in the antilock system is reported and the vehicle is at the same time travelling persistently fast and the speedometer has not failed.  
     [0047] If the antilock system reports a fault, a packet containing the header 230 and the correspondingly set data bytes is sent no later than every 10000 time units, which results in the antilock system rescinding the fault indication.  
     [0048] The instruction RECORDFILTER excludes the packets from 0 to 199 and 302 to 1000 from the recording. The packets between 200 and 301 are, by contrast, stored in the memory area. All speedometer failures are classified (counted) over the distance; a second classification records the duration of all faults in the antilock system over the speed travelled and over the distance. The results of this classification can thus be represented in a two-dimensional graph.  
     [0049]FIG. 2 shows the basic design of the inventive apparatus, with both the hardware layers and the individual software layers being described. Since the drawing is self-explanatory, only a few modules are mentioned.  
     [0050] The figure clearly shows the interface between the hardware and software, with the software which provides appropriate drivers for the individual hardware components being arranged above the CPU. Arranged on these drivers is the operating system, which uses the drivers to access the hardware. In the preferred case, the operating system is Realtime Linux, which is predestined for this task on account of its guaranteed response times. As the bandwidths on the bus systems increase and as the number of bus systems monitored simultaneously in the vehicle increases, it is necessary to use an operating system which provides guaranteed response times. Some areas are accessed directly by the operating system, such as the memory. It can clearly be seen that a plurality of CAN bus systems can be monitored simultaneously. The software is divided into a log area and a classification area. This is often a program which is compiled before being transferred to the system. This program generally accesses libraries, which can be connected to the program either statically or dynamically on the system.  
     [0051] In the execution area, the actual program which uses the individual filters is executed.  
     [0052]FIG. 3 shows the flow  12  of data and the branching thereof into the individual memory areas  11  and  16 . In this context, the individual data items are filtered, the filters  13 ,  18  and  17  corresponding to individual program constructs.  
     [0053] The memory area  11  is used for storing classification data. The corresponding program construct can be found in FIG. 1. This memory stores one-dimensional or multidimensional data items in relation to one another. The memory area  16  is used for storing the individual packets which have been let through by the RECORDFILTER. This memory is an FIFO memory. The corresponding identical program construct can be found in FIG. 1. The memory area  16  is controlled by the event  15 , namely STOP or START. The processing unit  14  processes the data packets and produces therefrom, on the basis of the program, states and events which are used by the commands. The processing unit  14  thus likewise filters the information. This filter process is illustrated by the symbol  17 . Only the data packets which the program also needs for calculations are filtered out of the bus traffic.