This invention in general relates to in-vehicle communication networks and particularly to a system and method for evaluating the performance of an automotive switch fabric network using a diagnostic interface.
The commonly assigned United States patent application entitled “Vehicle Active Network,” Ser. No. 09/945,581, Publication Number US 2003043793, filed Aug. 31, 2001, the disclosure of which is hereby expressly incorporated herein by reference, introduces the concept of an active network that includes a switch fabric. The switch fabric is a web of interconnected switching devices or nodes. Control devices, sensors, actuators and the like are coupled to the switch fabric, and the switch fabric facilitates communication between these coupled devices.
The coupled devices may be indicator lights, vehicle control systems, vehicle safety systems, and comfort and convenience systems. A command to actuate a device or devices may be generated by a control element coupled to the switch fabric and is communicated to the device or devices via the switch fabric nodes.
In the context of vehicular switch fabric networks, a challenge is presented in terms of how to evaluate the performance of different configurations of, and different communication paths across, the switch fabric network and particular nodes. The performance of an automotive switch fabric can be measured different ways but some important considerations include measuring latency and jitter. A need exists for the ability to evaluate the performance of various network configurations and communication paths. Knowledge of the performance of various network configurations and communication paths will allow a designer or manufacturer the ability to choose the right configurations and paths to meet real time requirements.
It is, therefore, desirable to provide a system and method to overcome or minimize most, if not all, of the preceding problems especially in the area of evaluating the performance of nodes in an automotive switch fabric network.
a,
4
b are diagrams illustrating one embodiment of software components that may reside in a gateway node and other remote nodes in the switch fabric network;
While the invention is susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, it should be understood that the invention is not intended to be limited to the particular forms disclosed. Rather, the invention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the invention as defined by the appended claims.
What is described is a system and method for evaluating the performance of an automotive switch fabric network using a diagnostic interface. In sum, a diagnostic device and interface is connected to an automotive switch fabric network, comprising of a plurality of communication nodes, through a gateway node. The diagnostic device and interface will configure the switch fabric network to operate in a test mode. In one embodiment of the test mode, the diagnostic interface will issue a first command to one node to start traffic across a test node at a predetermined traffic rate and a second command to another node to generate a test message that passes through the test node. The test node contains message processing logic that will process the messages as they pass through the test node. The rate and frequency of the message may be adjusted by a user. A set of timestamps is generated in the message processing logic of the test node to monitor the progression of the messages through the processing logic. The test node includes a diagnostic interface agent that collects the timestamp data and reports the data back to the diagnostic interface and device.
Now, turning to the drawings,
The network interfaces 26a-d are any suitable interface for coupling the particular vehicle device 24a-d to the network 22, and may be wire, optical, wireless or combinations thereof. The vehicle device 24a-d is particularly adapted to provide one or more functions associated with the vehicle 20. The vehicle devices 24a-d may be data producing, such as a sensor, data consuming, such as an actuator, or processing, which both produces and consumes data. In one embodiment, the external device 24a is a processing diagnostic device that permits a user to exchange data with the network of the vehicle, as will be explained further below. Data produced by or provided to a vehicle device, and carried by the network 22, is independent of the function of the vehicle device itself.
The connection between the devices 24a-d and the respective interfaces 26a-d may be a wired or wireless connection.
The network 22 may include a switch fabric 28 defining a plurality of communication paths between the vehicle devices 24a-d. The communication paths permit multiple simultaneous peer-to-peer, one-to-many, many-to-many, etc. communications between the vehicle devices 24a-d. During operation of the vehicle 20, data exchanged, for example, between devices 24b and 24d may utilize any available path or paths between the vehicle devices 24b, 24d. In operation, a single path through the switch fabric 28 may carry all of a single data communication between one vehicle device 24b and another vehicle device 24d, or several communication paths may carry portions of the data communication. Subsequent communications may use the same path or other paths as dictated by the state of the network 22 or its performance. This provides reliability and speed advantages over bus architectures that provide single communication paths between devices, and hence are subject to failure with failure of the single path. Moreover, communications between other of the devices 24a, 24c may occur simultaneously using the communication paths within the switch fabric 28.
The network 22 may comply with transmission control protocol/Internet (TCP/IP), asynchronous transfer mode (ATM), Infiniband, RapidIO, or other packet data protocols. As such, the network 22 utilizes data packets, having fixed or variable length, defined by the applicable protocol. For example, if the network 22 uses asynchronous transfer mode (ATM) communication protocol, ATM standard data cells are used.
The internal vehicle devices 24b-d need not be discrete devices. Instead, the devices may be systems or subsystems of the vehicle and may include one or more legacy communication media, i.e., legacy bus architectures such as the Controller Area Network (CAN) protocol, the SAE J1850 Communication Standard, the Local Interconnect Network (LIN) protocol, the FLEXRAY Communications System Standard, the Media Oriented Systems Transport or MOST Protocol, or similar bus structures. In such embodiments, the respective interface 26b-d may be configured as a proxy or gateway to permit communication between the network 22 and the legacy device.
Referring to
The cooperation of the nodes 30a-1 and the connection media 32 define a plurality of communication paths between the devices 24a-d that are communicatively coupled to the network 22. For example, a route 34 defines a communication path from the gateway node 30a to a target node 30g. If there is a disruption along the route 34 inhibiting communication of the data packets from the gateway node 30a to the target node 30g, for example, if one or more nodes are at capacity or have become disabled or there is a disruption in the connection media joining the nodes along route 34, a new route, illustrated as route 36, can be used. The route 36 may be dynamically generated or previously defined as a possible communication path, to ensure the communication between the gateway node 30a and the target node 30g.
To illustrate the functionality and the adaptability of the nodes 30a-1,
There is a need to measure the performance of different configurations of, and different communication paths across, the switch fabric 28 and particular nodes 30a-1. Accordingly, in one embodiment, the system is adapted to allow the diagnostic device 24a and interface 26a to operate the switch fabric 28 in a test mode by sending commands to and receiving data from various nodes. To aid in measuring the performance of the switch fabric 28,
In one embodiment, the gateway node 30a and the remote nodes 30b-1 include software components for an application layer 60, a network layer 62, and a link (or bus) layer 64. For the application layer 60, the gateway node 30a may further include a diagnostic interface gateway 66 application that allows the gateway node 30a to communicate with the diagnostic device 24a and diagnostic interface 26a. The gateway node 30a and the remote nodes 30b-1 further include a diagnostic interface agent 68 that spans across the application layer 60, the network layer 62, and the link (or bus) layer 64. As explained below, the diagnostic interface agent 68 may be configured to collect timestamp data and report the data back to the diagnostic interface and device.
In one embodiment, the diagnostic interface agent 68 includes a test source application 72 and a test destination application 74 are part of the application layer 60. When the test source application 72 is enabled in a node, the node will then be capable of sending a test message to another node having the test destination application 74 enabled. The diagnostic interface agent 68 may also include a traffic generator module 78 in the link layer 64. When the traffic generator component 78 is enabled in a node, the node will then start to send traffic messages that may be based on a rate and frequency by the system manager 40. The diagnostic interface agent 68 may further include a diagnostic module 76 that enables a node to collect data based on test messages and traffic messages being transmitted through the node. The transmission of test and traffic messages and the gathering of data is explained in further detail below.
The embodiment and topology shown in
The system manger 40 in the diagnostic device 24 may then send a second control message to the gateway node 30a through the diagnostic interface 26a. The gateway node 30a will receive the second control message and may route the second control message to the second neighboring test node 30b (arrow C). The second control message may contain a command for the second neighboring test node 30b to generate a test message through the test node 30f (arrows D). In one embodiment, the test message may be send through the test node 30f to another neighboring node 30j that causes the node 30j to respond with a reply test message back through the test node 30f (arrows E).
In one embodiment of the present invention, as the first neighboring test node 30e is transmitting traffic messages through the test node 30f and the second neighboring test node 30b is transmitting the test message through the test node 30f, the test node 30f is configured to generate and store a plurality of timestamps as the messages pass through the test node's processing logic.
In this example, the test node 30f will receive a message, such as a traffic message or a test message, in the node's receive buffer. In process block 102, the test node 30f may be configured to store a timestamp (T1) when a new message is ready to be processed out of the node's receive buffer. At decision block 104, the processing logic of the test node 30f may then determine whether the message requires any local action. For instance, if the message is simply a traffic message that was received from the first neighboring node 30e (and intended for another neighboring node 30g), the test node 30f may then continue to process block 106 where the size of the transmit buffer is checked. In one embodiment, as the size of the transmit buffer is checked, another timestamp (T2) is stored that is associated with verifying the availability of the transmit buffer. At decision block 108, if the transmit buffer is not free, then the process may continue to process block 110 where the message is added to a bus driver out-message queue and another timestamp (T3) is stored in memory. At this point, a transmit interrupt handler may be enabled and a determination may be made when the transmit buffer is free (block 112). At process block 114, a timestamp (T4) may be recorded that is associated with the time that the message is ready to be put into the transmit buffer.
As shown in process block 116, the test node 30f may be configured to store another timestamp (T5) when the message is ready to be transmitted out of the test node 30f. In process block 118, the outgoing message is then added to the transmit buffer of the test node 30f.
Referring back to decision block 104, if the message requires local action, the process may continue to process block 120 where the incoming message is added to a bus driver in-message queue and a timestamp (T6) is stored. Thereafter, the process may further include adding the message to an application driver message queue (block 122) and storing another timestamp (T7). As shown in block 124, the application associated with the processing the test message may then start and include the storage of a further timestamp (T8). After the application has processed the message, and the test node 30f is ready to send a locally processed message out of the test node 30f, the test node may then store another timestamp (T9) (block 126). The process may then continue to blocks 106-118 where the transmit buffer size is checked and, eventually, the locally processed message is added to the transmit buffer.
The test node 30f may then be configured to calculate performance parameters of the node (such as latency). The test node 30f may further be configured to transmit any calculated performance parameters, or the raw data including the stored timestamps, to the diagnostic device 24a for further analysis or presentation to the user 42.
There are different ways that the test mode may stop during the test period. First, the test mode may be stopped by a command from the diagnostic device. Second, the test mode may be stopped when a specified condition is satisfied. One condition may include a threshold number of test messages or traffic messages sent by the test system. Another condition may be duration of time. These conditions may be configured by the user 42 and specified in the control messages generated by the system manager 40.
What has been described is a system and method for evaluating the performance in an automotive switch fabric network using a diagnostic interface. The processing flow and timestamps shown in
The present application claims priority from provisional application, Ser. No. 60/618674, entitled “System and Method for Evaluating the Performance of an Automotive Switch Fabric Network,” filed Oct. 14, 2004, which is commonly owned and incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60618674 | Oct 2004 | US |