US20040122978A1 - Method and system to connect internet protocol hosts via an application specific bus - Google Patents

Method and system to connect internet protocol hosts via an application specific bus Download PDF

Info

Publication number
US20040122978A1
US20040122978A1 US10/731,572 US73157203A US2004122978A1 US 20040122978 A1 US20040122978 A1 US 20040122978A1 US 73157203 A US73157203 A US 73157203A US 2004122978 A1 US2004122978 A1 US 2004122978A1
Authority
US
United States
Prior art keywords
application specific
message
specific bus
address
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/731,572
Inventor
David Bird
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Trimble Inc
Original Assignee
Trimble Navigation Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Trimble Navigation Ltd filed Critical Trimble Navigation Ltd
Priority to US10/731,572 priority Critical patent/US20040122978A1/en
Publication of US20040122978A1 publication Critical patent/US20040122978A1/en
Assigned to TRIMBLE NAVIGATION LIMITED reassignment TRIMBLE NAVIGATION LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SWANSON, ANDREW J., HABIB, HABIB G., BIRD, DAVID G.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/413Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection (CSMA-CD)
    • H04L12/4135Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection (CSMA-CD) using bit-wise arbitration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Definitions

  • the present invention relates to bi-directional communication over a network and, in particular, relates to a protocol to connect Internet Protocol (IP) hosts via a control bus.
  • IP Internet Protocol
  • CAN Controller Area Network
  • serial communications bus uses a shared broadcast bus that runs at speeds up to one megabit per second.
  • the CAN protocol sends message frames of variable lengths, containing from zero to eight data bytes, among various devices within the vehicle wherein each frame has a unique identifier.
  • SAE Society of Automotive Engineers
  • SAEJ1939 standard CAN protocol
  • the SAE specification gives plug-and-play capabilities for vehicle manufacturers.
  • the specification assigns 29 bit frame identifiers for different purposes, such as engine diagnostics and vehicle position, and specifies a data rate of 250 kilobits per second.
  • Standard SAEJ1939 protocols allow modules from many suppliers to be easily linked together forming a type of open architecture. An open architecture allows standardized diagnostic testing and allows suppliers to benefit from the economies of scale of mass-produced standard protocol devices.
  • SAEJ1939 uses the CAN protocol which permits any device to transmit a message frame on the network when the bus is idle.
  • Each frame identifier includes, in order, a field for message priority, a field for the type of data that the message contains, and a field for the sending node's address.
  • the entire 29-bit identifier uniquely establishes the overall priority of each frame.
  • the protocol avoids collisions on the CAN by an arbitration process that occurs during identifier transmission (using a non-destructive arbitration scheme). This arbitration permits higher priority messages to get through with lower latency (less delay).
  • Subpart SAEJ1939/21 specifies the link layer protocol for SAEJ1939.
  • Other parts of SAEJ1939 define the actual application content of messages.
  • SAEJ1939 defines a simple two-layer networking architecture, a link layer and an application layer.
  • the link layer (SAEJ1939/21) allows for proprietary messages of arbitrary content to be communicated. Standard SAEJ1939 devices ignore such messages.
  • a computer network is a system for communications among computers that allows them to share information.
  • the content, scope, size, speed, and reliability of a network varies depending on the protocols and implementation used. Protocols are preestablished methods of communication between computers.
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • TCP/IP Transmission Control Protocol/Internet Protocol
  • IP hosts devices that communicate using TCP/IP are referred to as IP hosts.
  • the link layer is responsible for communicating with actual network hardware.
  • the link layer transfers data, which the link layer receives from the network bus, to the network layer.
  • the link layer puts data, which the link layer receives from the network layer, on the bus.
  • SAEJ1939/21 protocol defines the link layer.
  • the network layer determines how to get data to its destination, either out onto the bus or into application programs.
  • the network layer makes no decision whether or not the data will reach its destination but only decides where to put the data for transmission.
  • the third layer the transport layer, provides data flow for the application layer.
  • the transport layer guarantees the reliability of the communication.
  • the fourth or application layer is where the user or IP client or server program interacts with the network. This is where any application programs reside.
  • the IP (of TCP/IP) resides on the network layer and is used for almost all communication between IP hosts.
  • the basic communications message unit in IP is the IP datagram.
  • the IP determines how to get the datagrams to their destinations and when receiving datagrams, determines how and where they belong. IP does not concern itself with whether the datagrams arrive reliably at their given destination or with the order in which they arrive. If a datagram arrives with any problems, IP discards it. It is the responsibility of the transport layer and application layer to determine, to correct, or to otherwise deal with the unreliability of datagrams.
  • the IP is responsible for recognizing source and destination addresses while ensuring receipt at the proper location as well as checking for the accuracy of datagrams received from the network.
  • IP is the most widely used network layer protocol in the world. It is available on almost all of the world's desktop computers, and it is becoming widely used in embedded computers. Software for many ubiquitous transport and application layer protocols that run on top of IP is widely available for virtually all computer operating systems.
  • the present invention includes a system and method to implement Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus.
  • IP Internet Protocol
  • the application specific bus address of a remote device is determined, the remote device having an IP address in addition to the application specific bus address.
  • An IP host formats a message conforming to the application specific bus, the message containing an IP datagram and message identifiers.
  • the IP host transmits the message on the application specific bus.
  • a destination IP host receives the message based upon the application specific bus address of the destination IP host and authenticates the message as an IP message based upon the message identifiers.
  • the destination IP host extracts the IP datagram from the message and processes the IP data by a conventional IP network processing protocol.
  • FIG. 1 is a block diagram illustrating one embodiment of a system of connecting at least one Internet Protocol (IP) host to a Controller Area Network (CAN);
  • IP Internet Protocol
  • CAN Controller Area Network
  • FIG. 2 is a block diagram illustrating an embodiment of CAN/IP host protocol layers
  • FIG. 3 is a block diagram of an Ethernet Address Resolution Protocol (ARP) message
  • FIG. 4 is a block diagram of one embodiment of an Address Resolution Protocol (ARP) message
  • FIG. 5 is a flowchart of one embodiment of a process for resolving CAN/IP message congestion on the CAN;
  • FIG. 6 is an example timeline illustrating one example of CAN/IP congestion control
  • FIG. 7 is a flowchart of one embodiment of a process for receiving CAN/IP protocol messages by the CAN/IP.
  • FIG. 8 is a flowchart of one embodiment of a process for creating CAN/IP messages for broadcast over the CAN.
  • the present invention describes a method and system to connect Internet Protocol (IP) hosts to an application specific control bus such as the Controller Area Network (CAN).
  • IP Internet Protocol
  • CAN Controller Area Network
  • the present invention also relates to apparatus for performing the operations herein.
  • This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer.
  • the algorithms and displays presented herein are not inherently related to any particular computer or other apparatus.
  • Various general-purpose machines may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description below.
  • the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein.
  • FIG. 1 is a block diagram of the overall system of connecting multiple CAN/Internet Protocol (CAN/IP) hosts 104 to a Controller Area Network (CAN) 100 .
  • CAN/IP hosts 104 are connected via CAN bus 120 to CAN 100 .
  • CAN/IP host 104 interacts with CAN/IP client or server program 102 through a software interface. In one embodiment, this is a standard IP socket interface.
  • CAN/IP host 104 contains Address Resolution Protocol (ARP) cache 130 for storing resolved addresses of CAN/IP hosts 104 accessible on CAN 100 .
  • ARP Address Resolution Protocol
  • CAN 100 also includes a series of vehicle control modules 106 , 108 , 110 , and 112 (CAN devices), all connected via standard CAN interface 140 to CAN bus 120 .
  • vehicle control modules 106 , 108 , 110 , and 112 CAN devices
  • CAN/IP host 104 and CAN/IP client or server program 102 may be contained within the same device.
  • FIG. 2 is a block diagram illustrating IP host protocol layers 200 .
  • IP host protocol layers consist of application layer 208 , transport layer 210 , network layer 212 , link layer 214 , and physical layer 220 .
  • Application layer 208 may consist of standard IP host applications such as File Transport Protocol (FTP), Hypertext Transfer Protocol (HTTP), and Telnet. These and other application protocols make use of the services of standard transport protocols such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) contained within transport layer 210 . Both TCP and UDP make use of the standard services of Internet Protocol (IP) at the network layer 212 .
  • IP Internet Protocol
  • the physical layer 220 protocol may be CAN 2.0 B.
  • Link layer 214 Between network layer 212 and physical layer 220 is link layer 214 .
  • Link layer 214 has two sub-layers specified by CAN/IP 205 and SAE J1939/21 ( 222 ).
  • SAE J1939/21 ( 222 ) specifies a protocol for communicating frames containing from zero to eight data bytes on the CAN bus as well as a protocol for communicating larger messages using what is termed the Transport Protocol.
  • Transport Protocol is a standard communications protocol of SAEJ1939/21 ( 222 ) which breaks large messages into seven byte pieces and sends them individually with a sequence number.
  • CAN/IP 205 may have four component protocols: Encapsulation Protocol (EP), Authentication Protocol (AP), Address Resolution Protocol (ARP), and Congestion Control Protocol (CCP).
  • EP Encapsulation Protocol
  • AP Authentication Protocol
  • ARP Address Resolution Protocol
  • CCP Congestion Control Protocol
  • the EP manages the packing and unpacking of IP datagrams into SAEJ1939/21 ( 222 ) message frames using the SAEJ1939/21 ( 222 ) Transport Protocol.
  • each IP datagram may have two bytes added to aid in message authentication and to indicate message type.
  • an IP datagram has an added first byte set at 16, to indicate a CAN/IP message, and an added second byte set at 0, to indicate a standard IP datagram.
  • the added second byte may be set at 2, to indicate a compressed IP datagram.
  • Each IP datagram, with header, is transmitted as a single Transport Protocol message.
  • CAN/IP 205 supports IP datagrams with lengths from 28 to 576 bytes. With the two-byte header, the IP datagrams in this embodiment will be transmitted using from 5 to 83 eight-byte CAN frames.
  • PPN Proprietary A Parameter Group Number
  • CAN/IP messages are those messages that have a value of 16 in the first information byte.
  • SIR Software Identification Report
  • the AP may also verify message data lengths to determine if they are either four or in the range 30 to 578 bytes in length (i.e., an IP datagram plus the two-byte link-layer header).
  • CAN/IP 205 uses an Address Resolution Protocol (ARP) similar to Ethernet ARP for obtaining and resolving addresses on CAN 100 .
  • FIG. 3 is a block diagram of an Ethernet Address Resolution Protocol (ARP) message.
  • FIG. 4 is a block diagram of one embodiment of a CAN/IP ARP message.
  • ARP Address Resolution Protocol
  • Ethernet ARP message 300 is described in Request For Comment (RFC) 826 from the Internet Architecture Board (IAB).
  • Frame Type 314 , Hardware Type 316 , Protocol Type 318 , Hardware Size 320 , and Protocol Size 322 have fixed values and are not transmitted in CAN/IP ARP message 400 .
  • Ethernet Destination Address 310 and Target Ethernet Address 330 may be replaced by the Destination CAN Address 422 .
  • the Ethernet Source Address 312 and Sender Ethernet Address 326 may be replaced by the Source CAN Address 420 .
  • Destination CAN Address 422 and Source CAN Address 420 are part of Arbitration field 402 .
  • the Ethernet Op 324 is not transmitted in CAN/IP ARP 400 .
  • Requests or queries are identified by the Destination CAN Address 422 being set at the broadcast address (usually 255 ).
  • Replies are identified by the Destination CAN Address 422 not being set at the broadcast address.
  • the least significant byte of Sender IP Address 328 is sent as Sender IP Address LSB 410
  • the least significant byte of Target IP Address 332 is sent as Target IP Address LSB 412 .
  • the most significant three bytes of all IP addresses on CAN 100 are assumed to be equal for all CAN/IP hosts 104 on a particular instance of CAN 120 .
  • CAN/IP ID 406 is set at 16 and Frame Type 408 is set at 1.
  • CAN/IP ARP message 400 Arbitration 402 , Control 404 , and Trailer 414 have standard formats and meanings according to SAEJ1939.
  • the SAE J1939/21 ( 222 ) PGN is 61184.
  • CAN/IP 205 After CAN/IP 205 successfully claims its link layer address and determines its CAN/IP address, it transmits a CAN/IP ARP request for its own CAN/IP address.
  • CAN/IP 205 limits network access using CCP. During periods of congestion on the network, the CAN priority mechanism always gives network access to the highest priority message and no two messages can have equal priority. Thus, because it is desirable for all CAN/IP Hosts 104 to have equivalent access to the CAN 120 , the CAN priority mechanism may be circumvented using CCP.
  • FIG. 5 is a flowchart of one embodiment for determining the Multi-Packet Transport Protocol Rate Limit (MPTPRL) of Congestion Control Protocol (CCP) of CAN/IP 205 .
  • CCP begins maintaining an averaging interval (I). In one embodiment, I may be a 100-millisecond interval.
  • CCP determines if the averaging interval started in step 705 is complete. If the averaging interval is complete, CCP continues processing at step 720 . However, if CCP determines that the averaging interval is not complete, CCP continues processing at step 715 .
  • CCP counts the frames (PI) of all types on, CAN 120 from all sources.
  • CCP determines that I is complete, CCP adjusts the MPTPRL at steps 720 through 735 .
  • CCP determines if the total number of frames (PI) determined in steps 710 and 715 is greater than 0.9 times the network capacity for packet transmission. If not, CCP continues processing at step 730 . If CCP determines that PI is greater than 0.9 times network capacity, CCP continues processing at step 725 .
  • network capacity is assumed to be 200 frames per 100-millisecond interval.
  • CCP decreases MPTPRL.
  • MPTRL takes a value from the ordered set comprising a series 80, 40, 27, 20, 16, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2.
  • CCP decreases MPTRL by changing its value to the next value to the right of the current value in the ordered set.
  • CCP then returns to step 705 to begin a new averaging interval.
  • CCP determines that PI is not greater than 0.9 times network capacity
  • CCP continues processing at step 730 .
  • CCP determines if PI is less than 0 . 8 times network capacity. If not, CCP returns to step 705 to begin a new averaging interval. If, at step 730 , PI is less than 0.8 times capacity, CCP continues processing at step 735 .
  • CCP increases the MPTPRL. In one embodiment, using the same series as in step 725 , CCP increases MPTPRL by changing its value to the next value to the left of the current value in the ordered set. CCP then returns to step 705 to begin a new averaging interval.
  • CCP uses a 100-millisecond interval and assumes the network capacity is 200 frames during this interval.
  • the current MPTPRL is used as a percentage and multiplied by the assumed capacity to determine its limit. If during an interval, CAN/IP 205 transmits its limit of multi-packet transport protocol frames, it will stop transmitting them until the next interval begins. Transmissions of other frame types are not affected by MPTPRL.
  • FIG. 6 illustrates, by way of example, a time line indicating how CCP limits transmission in CAN/IP Host 820 according to MPTPRL 822 .
  • MPTPRL 822 has a value 80.
  • CAN Device 810 transmits 100 frames.
  • CAN/IP Host 820 transmits 100 frames.
  • CAN/IP Host 820 does not reach its Limit 824 of 160 frames.
  • MPTPRL 822 changes to 40 and Limit 824 changes to 80 (40% of 200).
  • CAN/IP Host 820 transmits 80 more multi-packet transport protocol frames and stops because it has reached its limit. CAN Device 810 then transmits 90 more frames. At 200 milliseconds, MPTPRL 822 and Limit 824 remain unchanged. At the beginning of Interval 3 , CAN/IP Host 820 completes its transmission by transmitting an additional 50 frames.
  • FIG. 7 is a flowchart of one embodiment of a method for processing a message received from Controller Area Network (CAN) 120 .
  • CAN/IP 205 receives a message to process.
  • a message to process In one embodiment, only messages with PGN equal to 61184 and with a first data byte equal to the CAN/IP indicator (a value of 16) are accepted as potential CAN/IP messages.
  • the length of the message may also be verified to be either 4 or in the range of 30 to 578 bytes, inclusive.
  • messages that are not accepted as potential CAN/IP messages may be processed according to other protocols, such as SAEJ1939 application messages.
  • CAN/IP 205 authenticates the potential IP message using Authentication Protocol (AP).
  • AP Authentication Protocol
  • CAN/IP 205 performs a cache lookup of the CAN source address in the ARP cache 130 .
  • the ARP cache 130 contains the CAN addresses of CAN/IP Hosts 104 known to be accessible on CAN 100 . If the address is in the ARP cache 130 , then CAN/IP 205 continues processing at step 515 . However, if the address is not in the cache, CAN/IP 205 transmits a request or query to the sending device to verify that the message is indeed a CAN/IP message.
  • CAN/IP 205 uses a standard SAEJ1939 message type to request the SIR of the sending device. CAN/IP 205 receives the SIR and, if the SIR response verifies that the message is an IP message (because the sending device is a CAN/IP host), CAN/IP 205 places the address of the sending CAN/IP host in ARP cache 130 .
  • CAN/IP 205 checks the frame type of the received message. If the frame type is an ARP reply, CAN/IP 205 enters the Sender IP Address 410 into ARP Cache 130 at step 520 . If the frame type is an ARP request, and the requested IP address belongs to CAN/IP Host 104 , then an ARP reply is transmitted back to the sender at step 525 . If the frame type is an IP datagram, CAN/IP 205 extracts the IP datagram from the CAN/IP message at step 530 .
  • CAN/IP 205 sends the IP datagram to the IP layer 212 to process the IP datagram by any conventional processing protocol.
  • FIG. 8 is a flowchart of one embodiment for transmitting CAN/IP datagrams onto CAN 100 .
  • IP layer 212 uses the IP datagram's destination address to determine the Next Hop IP address using conventional routing protocols.
  • CAN/IP 205 determines the destination CAN address. If the Next Hop IP address is a broadcast address, CAN/IP 205 uses the CAN global address ( 255 ) as the destination CAN address. In one embodiment, if the Next Hop IP address is a multi-cast addresses (a class D address), CAN/IP 205 also uses the CAN global address ( 255 ) as the destination address. If the Next Hop IP address is a unicast address, CAN/IP 205 uses ARP to determine the destination CAN address.
  • CAN/IP formats the IP datagram.
  • a one byte IP identifier and a one byte frame type are appended to the beginning of the data.
  • the frame type may be set at 0 to indicate an IP datagram.
  • CAN/IP 205 transmits the IP datagram to the Next Hop IP host.
  • CAN/IP 205 uses SAEJ1939/21 multipacket protocol to transmit the IP datagram in packets of seven data bytes at a time.
  • CAN/IP 205 limits the number of frames it transmits per time interval using CCP as described above.
  • IP datagrams are transmitted with their priority bits set at 7 to avoid interfering with standard SAEJ1939 data traffic.
  • IP Internet Protocol
  • CAN Controller Area Network

Abstract

The present invention includes a system and method to implement Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus. In one embodiment, an IP host determines the application specific bus address of a remote device, the remote device having an IP address in addition to the application specific bus address. The IP host formats a message conforming to the application specific bus, the message containing IP data and message identifiers. The IP host transmits the message on the application specific bus. In addition, the IP host negotiates for network access on the application specific bus. A destination IP host receives the message based upon the application specific bus address of the destination IP host and authenticates the message as an IP messages based upon the message identifiers. In addition, the destination IP host extracts the IP data from the message and processes the IP data by a conventional IP network processing protocol.

Description

    FIELD OF THE INVENTION
  • The present invention relates to bi-directional communication over a network and, in particular, relates to a protocol to connect Internet Protocol (IP) hosts via a control bus. [0001]
  • BACKGROUND OF THE INVENTION
  • As today's vehicles have become more sophisticated and dependent upon a variety of electronic and electrical components, it has become necessary to devise methods of networking the various components together. Communication is needed between the many circuits and functions of the vehicle, for example, to shift a transmission in response to engine load. [0002]
  • In order to standardize communications between the various components of the vehicles, the Controller Area Network (CAN) was defined as a serial communications bus. CAN uses a shared broadcast bus that runs at speeds up to one megabit per second. The CAN protocol sends message frames of variable lengths, containing from zero to eight data bytes, among various devices within the vehicle wherein each frame has a unique identifier. [0003]
  • The Society of Automotive Engineers (SAE) has developed a standard CAN protocol, SAEJ1939, for the bus and truck industry, based upon CAN Specification 2.0 Part B by Robert Bosch, GmbH. The SAE specification gives plug-and-play capabilities for vehicle manufacturers. The specification assigns 29 bit frame identifiers for different purposes, such as engine diagnostics and vehicle position, and specifies a data rate of 250 kilobits per second. Standard SAEJ1939 protocols allow modules from many suppliers to be easily linked together forming a type of open architecture. An open architecture allows standardized diagnostic testing and allows suppliers to benefit from the economies of scale of mass-produced standard protocol devices. [0004]
  • SAEJ1939 uses the CAN protocol which permits any device to transmit a message frame on the network when the bus is idle. Each frame identifier includes, in order, a field for message priority, a field for the type of data that the message contains, and a field for the sending node's address. The entire 29-bit identifier uniquely establishes the overall priority of each frame. The protocol avoids collisions on the CAN by an arbitration process that occurs during identifier transmission (using a non-destructive arbitration scheme). This arbitration permits higher priority messages to get through with lower latency (less delay). [0005]
  • Subpart SAEJ1939/21 specifies the link layer protocol for SAEJ1939. Other parts of SAEJ1939 define the actual application content of messages. As such, SAEJ1939 defines a simple two-layer networking architecture, a link layer and an application layer. The link layer (SAEJ1939/21) allows for proprietary messages of arbitrary content to be communicated. Standard SAEJ1939 devices ignore such messages. [0006]
  • A computer network is a system for communications among computers that allows them to share information. The content, scope, size, speed, and reliability of a network varies depending on the protocols and implementation used. Protocols are preestablished methods of communication between computers. The term TCP/IP (Transmission Control Protocol/Internet Protocol), refers to a family of protocols of which TCP and IP are just two. TCP/IP is broken down into a protocol of a number of layers. Each layer corresponds to a different facet of communication within the network. Devices that communicate using TCP/IP are referred to as IP hosts. [0007]
  • The link layer is responsible for communicating with actual network hardware. The link layer transfers data, which the link layer receives from the network bus, to the network layer. The link layer puts data, which the link layer receives from the network layer, on the bus. Within the SAEJ1939 architecture, the SAEJ1939/21 protocol defines the link layer. [0008]
  • The network layer determines how to get data to its destination, either out onto the bus or into application programs. The network layer makes no decision whether or not the data will reach its destination but only decides where to put the data for transmission. The third layer, the transport layer, provides data flow for the application layer. The transport layer guarantees the reliability of the communication. The fourth or application layer is where the user or IP client or server program interacts with the network. This is where any application programs reside. [0009]
  • The IP (of TCP/IP) resides on the network layer and is used for almost all communication between IP hosts. The basic communications message unit in IP is the IP datagram. When sending datagrams, the IP determines how to get the datagrams to their destinations and when receiving datagrams, determines how and where they belong. IP does not concern itself with whether the datagrams arrive reliably at their given destination or with the order in which they arrive. If a datagram arrives with any problems, IP discards it. It is the responsibility of the transport layer and application layer to determine, to correct, or to otherwise deal with the unreliability of datagrams. The IP is responsible for recognizing source and destination addresses while ensuring receipt at the proper location as well as checking for the accuracy of datagrams received from the network. [0010]
  • IP is the most widely used network layer protocol in the world. It is available on almost all of the world's desktop computers, and it is becoming widely used in embedded computers. Software for many ubiquitous transport and application layer protocols that run on top of IP is widely available for virtually all computer operating systems. [0011]
  • What is required is a protocol for incorporating IP hosts onto an application specific control bus such as a SAEJ1939. Further, what is required is a method and apparatus to transmit IP datagrams without interfering with the interaction of standard CAN devices, and, specifically, without interfering with the interaction of standard SAE J1939 devices. [0012]
  • SUMMARY OF THE INVENTION
  • The present invention includes a system and method to implement Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus. In one embodiment, the application specific bus address of a remote device is determined, the remote device having an IP address in addition to the application specific bus address. An IP host formats a message conforming to the application specific bus, the message containing an IP datagram and message identifiers. The IP host transmits the message on the application specific bus. A destination IP host receives the message based upon the application specific bus address of the destination IP host and authenticates the message as an IP message based upon the message identifiers. In addition, the destination IP host extracts the IP datagram from the message and processes the IP data by a conventional IP network processing protocol. [0013]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention will be understood more fully from the detailed description given below and from the accompanying drawings of the preferred embodiments of the invention, which, however, should not be taken to limit the invention to the specific embodiments but are for explanation and understanding only. [0014]
  • FIG. 1 is a block diagram illustrating one embodiment of a system of connecting at least one Internet Protocol (IP) host to a Controller Area Network (CAN); [0015]
  • FIG. 2 is a block diagram illustrating an embodiment of CAN/IP host protocol layers; [0016]
  • FIG. 3 is a block diagram of an Ethernet Address Resolution Protocol (ARP) message; [0017]
  • FIG. 4 is a block diagram of one embodiment of an Address Resolution Protocol (ARP) message; [0018]
  • FIG. 5 is a flowchart of one embodiment of a process for resolving CAN/IP message congestion on the CAN; [0019]
  • FIG. 6 is an example timeline illustrating one example of CAN/IP congestion control; [0020]
  • FIG. 7 is a flowchart of one embodiment of a process for receiving CAN/IP protocol messages by the CAN/IP; and [0021]
  • FIG. 8 is a flowchart of one embodiment of a process for creating CAN/IP messages for broadcast over the CAN. [0022]
  • DETAILED DESCRIPTION
  • The present invention describes a method and system to connect Internet Protocol (IP) hosts to an application specific control bus such as the Controller Area Network (CAN). [0023]
  • In the following detailed description of the present invention, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention. [0024]
  • Some portions of the detailed descriptions that follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. [0025]
  • It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. [0026]
  • The present invention also relates to apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose machines may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these machines will appear from the description below. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein. [0027]
  • FIG. 1 is a block diagram of the overall system of connecting multiple CAN/Internet Protocol (CAN/IP) hosts [0028] 104 to a Controller Area Network (CAN) 100. In the FIG. 1 illustration, CAN/IP hosts 104 are connected via CAN bus 120 to CAN 100. CAN/IP host 104 interacts with CAN/IP client or server program 102 through a software interface. In one embodiment, this is a standard IP socket interface. Also, CAN/IP host 104 contains Address Resolution Protocol (ARP) cache 130 for storing resolved addresses of CAN/IP hosts 104 accessible on CAN 100. CAN 100 also includes a series of vehicle control modules 106, 108, 110, and 112 (CAN devices), all connected via standard CAN interface 140 to CAN bus 120. In an alternate embodiment, CAN/IP host 104 and CAN/IP client or server program 102 may be contained within the same device.
  • FIG. 2 is a block diagram illustrating IP host protocol layers [0029] 200. IP host protocol layers consist of application layer 208, transport layer 210, network layer 212, link layer 214, and physical layer 220.
  • [0030] Application layer 208 may consist of standard IP host applications such as File Transport Protocol (FTP), Hypertext Transfer Protocol (HTTP), and Telnet. These and other application protocols make use of the services of standard transport protocols such as Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) contained within transport layer 210. Both TCP and UDP make use of the standard services of Internet Protocol (IP) at the network layer 212. In one embodiment, the physical layer 220 protocol may be CAN 2.0 B.
  • Between [0031] network layer 212 and physical layer 220 is link layer 214. Link layer 214 has two sub-layers specified by CAN/IP 205 and SAE J1939/21 (222). SAE J1939/21 (222) specifies a protocol for communicating frames containing from zero to eight data bytes on the CAN bus as well as a protocol for communicating larger messages using what is termed the Transport Protocol. Transport Protocol is a standard communications protocol of SAEJ1939/21 (222) which breaks large messages into seven byte pieces and sends them individually with a sequence number.
  • In one embodiment, CAN/[0032] IP 205 may have four component protocols: Encapsulation Protocol (EP), Authentication Protocol (AP), Address Resolution Protocol (ARP), and Congestion Control Protocol (CCP).
  • The EP manages the packing and unpacking of IP datagrams into SAEJ1939/21 ([0033] 222) message frames using the SAEJ1939/21 (222) Transport Protocol. In one embodiment, the EP messages containing CAN/IP datagrams use the SAEJ1939/21 (222) Proprietary A Parameter Group Number (PGN)=61184. This is the SAEJ1939/21 (222) destination-specific Protocol Data Unit (PDU). In one embodiment, each IP datagram may have two bytes added to aid in message authentication and to indicate message type. In this embodiment, an IP datagram has an added first byte set at 16, to indicate a CAN/IP message, and an added second byte set at 0, to indicate a standard IP datagram. In one embodiment, the added second byte may be set at 2, to indicate a compressed IP datagram. Each IP datagram, with header, is transmitted as a single Transport Protocol message. In one embodiment, CAN/IP 205 supports IP datagrams with lengths from 28 to 576 bytes. With the two-byte header, the IP datagrams in this embodiment will be transmitted using from 5 to 83 eight-byte CAN frames.
  • In one embodiment, the AP of CAN/[0034] IP host 104 verifies that SAEJ1939/21 (222) Proprietary A Parameter Group Number (PGN)=61184 messages that it receives are in fact CAN/IP 205 messages. In this embodiment, CAN/IP messages are those messages that have a value of 16 in the first information byte.
  • When CAN/[0035] IP 205 receives a potential CAN/IP message (PGN=61184; first data byte=16), the local Address Resolution Protocol (ARP) cache 130 is queried to determine if the corresponding source address is already in the ARP cache 130. If it is not, CAN/IP 205 requests the Software Identification Report (SIR) (PGN=65242) of the source device (i.e., the originator of the message) using the previously received source address. CAN/IP 205 requests the SIR before it accepts the message as being a valid message from another CAN/IP 205 host. For a CAN/IP host, the SIR response includes a predetermined string such as “CANIP1”. If it does, CAN/IP 205 adds the source address to the ARP cache. If the response does not include the string “CANIP1”, all further potential messages from that source are not interpreted as CAN/IP messages.
  • In one embodiment, once a source address is either accepted or rejected, the status may be maintained until another Address Claimed (PGN=60928) message is received for that source address. At that time, the authentication process is repeated. [0036]
  • In one embodiment, the AP may also verify message data lengths to determine if they are either four or in the range 30 to 578 bytes in length (i.e., an IP datagram plus the two-byte link-layer header). [0037]
  • CAN/[0038] IP 205 uses an Address Resolution Protocol (ARP) similar to Ethernet ARP for obtaining and resolving addresses on CAN 100. FIG. 3 is a block diagram of an Ethernet Address Resolution Protocol (ARP) message. FIG. 4 is a block diagram of one embodiment of a CAN/IP ARP message.
  • The [0039] Ethernet ARP message 300 is described in Request For Comment (RFC) 826 from the Internet Architecture Board (IAB). Frame Type 314, Hardware Type 316, Protocol Type 318, Hardware Size 320, and Protocol Size 322 have fixed values and are not transmitted in CAN/IP ARP message 400. In one embodiment, Ethernet Destination Address 310 and Target Ethernet Address 330 may be replaced by the Destination CAN Address 422. In this embodiment, the Ethernet Source Address 312 and Sender Ethernet Address 326 may be replaced by the Source CAN Address 420. Destination CAN Address 422 and Source CAN Address 420 are part of Arbitration field 402.
  • The [0040] Ethernet Op 324 is not transmitted in CAN/IP ARP 400. Requests or queries are identified by the Destination CAN Address 422 being set at the broadcast address (usually 255). Replies are identified by the Destination CAN Address 422 not being set at the broadcast address.
  • In one embodiment, the least significant byte of [0041] Sender IP Address 328 is sent as Sender IP Address LSB 410, and the least significant byte of Target IP Address 332 is sent as Target IP Address LSB 412. In this embodiment, the most significant three bytes of all IP addresses on CAN 100 are assumed to be equal for all CAN/IP hosts 104 on a particular instance of CAN 120.
  • The truncated fields of CAN/[0042] IP ARP message 400 have the same values and meanings as the corresponding fields in Ethernet ARP message 300. In one embodiment, CAN/IP ID 406 is set at 16 and Frame Type 408 is set at 1.
  • In CAN/[0043] IP ARP message 400, Arbitration 402, Control 404, and Trailer 414 have standard formats and meanings according to SAEJ1939. In one embodiment, the SAE J1939/21 (222) PGN is 61184.
  • In one embodiment, after CAN/[0044] IP 205 successfully claims its link layer address and determines its CAN/IP address, it transmits a CAN/IP ARP request for its own CAN/IP address.
  • CAN/[0045] IP 205 limits network access using CCP. During periods of congestion on the network, the CAN priority mechanism always gives network access to the highest priority message and no two messages can have equal priority. Thus, because it is desirable for all CAN/IP Hosts 104 to have equivalent access to the CAN 120, the CAN priority mechanism may be circumvented using CCP.
  • FIG. 5 is a flowchart of one embodiment for determining the Multi-Packet Transport Protocol Rate Limit (MPTPRL) of Congestion Control Protocol (CCP) of CAN/[0046] IP 205. Initially, at step 705, CCP begins maintaining an averaging interval (I). In one embodiment, I may be a 100-millisecond interval. At step 710, CCP determines if the averaging interval started in step 705 is complete. If the averaging interval is complete, CCP continues processing at step 720. However, if CCP determines that the averaging interval is not complete, CCP continues processing at step 715. At step 715, CCP counts the frames (PI) of all types on, CAN 120 from all sources.
  • If, at [0047] step 710, CCP determines that I is complete, CCP adjusts the MPTPRL at steps 720 through 735. At step 720, CCP determines if the total number of frames (PI) determined in steps 710 and 715 is greater than 0.9 times the network capacity for packet transmission. If not, CCP continues processing at step 730. If CCP determines that PI is greater than 0.9 times network capacity, CCP continues processing at step 725. In one embodiment, network capacity is assumed to be 200 frames per 100-millisecond interval.
  • At [0048] step 725, CCP decreases MPTPRL. In one embodiment, MPTRL takes a value from the ordered set comprising a series 80, 40, 27, 20, 16, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2. In this embodiment, CCP decreases MPTRL by changing its value to the next value to the right of the current value in the ordered set. CCP then returns to step 705 to begin a new averaging interval.
  • If, at [0049] step 720, CCP determines that PI is not greater than 0.9 times network capacity, CCP continues processing at step 730. At step 730, CCP determines if PI is less than 0.8 times network capacity. If not, CCP returns to step 705 to begin a new averaging interval. If, at step 730, PI is less than 0.8 times capacity, CCP continues processing at step 735. At step 735, CCP increases the MPTPRL. In one embodiment, using the same series as in step 725, CCP increases MPTPRL by changing its value to the next value to the left of the current value in the ordered set. CCP then returns to step 705 to begin a new averaging interval.
  • The value of MPTPRL as determined above is used by CCP to control the number of multi-packet transport protocol frames (PGN=60160 or 60416) that are transmitted by CAN/[0050] IP 205. In one embodiment, CCP uses a 100-millisecond interval and assumes the network capacity is 200 frames during this interval. The current MPTPRL is used as a percentage and multiplied by the assumed capacity to determine its limit. If during an interval, CAN/IP 205 transmits its limit of multi-packet transport protocol frames, it will stop transmitting them until the next interval begins. Transmissions of other frame types are not affected by MPTPRL.
  • FIG. 6 illustrates, by way of example, a time line indicating how CCP limits transmission in CAN/[0051] IP Host 820 according to MPTPRL 822. At time=0, MPTPRL 822 has a value 80. Limit 824 is 160 (80% of 200=160). At the beginning of Interval 1, CAN Device 810 transmits 100 frames. At the end of Interval 1, CAN/IP Host 820 transmits 100 frames. In Interval 1, CAN/IP Host 820 does not reach its Limit 824 of 160 frames. At 100 milliseconds, MPTPRL 822 changes to 40 and Limit 824 changes to 80 (40% of 200). At the beginning of Interval 2, CAN/IP Host 820 transmits 80 more multi-packet transport protocol frames and stops because it has reached its limit. CAN Device 810 then transmits 90 more frames. At 200 milliseconds, MPTPRL 822 and Limit 824 remain unchanged. At the beginning of Interval 3, CAN/IP Host 820 completes its transmission by transmitting an additional 50 frames.
  • FIG. 7 is a flowchart of one embodiment of a method for processing a message received from Controller Area Network (CAN) [0052] 120. Initially, at step 505, CAN/IP 205 receives a message to process. In one embodiment, only messages with PGN equal to 61184 and with a first data byte equal to the CAN/IP indicator (a value of 16) are accepted as potential CAN/IP messages. In one embodiment, the length of the message may also be verified to be either 4 or in the range of 30 to 578 bytes, inclusive. In one embodiment, messages that are not accepted as potential CAN/IP messages may be processed according to other protocols, such as SAEJ1939 application messages.
  • Next, at [0053] step 510, CAN/IP 205 authenticates the potential IP message using Authentication Protocol (AP). CAN/IP 205 performs a cache lookup of the CAN source address in the ARP cache 130. The ARP cache 130 contains the CAN addresses of CAN/IP Hosts 104 known to be accessible on CAN 100. If the address is in the ARP cache 130, then CAN/IP 205 continues processing at step 515. However, if the address is not in the cache, CAN/IP 205 transmits a request or query to the sending device to verify that the message is indeed a CAN/IP message.
  • In one embodiment, CAN/[0054] IP 205 uses a standard SAEJ1939 message type to request the SIR of the sending device. CAN/IP 205 receives the SIR and, if the SIR response verifies that the message is an IP message (because the sending device is a CAN/IP host), CAN/IP 205 places the address of the sending CAN/IP host in ARP cache 130.
  • At [0055] step 515, CAN/IP 205 checks the frame type of the received message. If the frame type is an ARP reply, CAN/IP 205 enters the Sender IP Address 410 into ARP Cache 130 at step 520. If the frame type is an ARP request, and the requested IP address belongs to CAN/IP Host 104, then an ARP reply is transmitted back to the sender at step 525. If the frame type is an IP datagram, CAN/IP 205 extracts the IP datagram from the CAN/IP message at step 530.
  • At [0056] step 530, CAN/IP 205 sends the IP datagram to the IP layer 212 to process the IP datagram by any conventional processing protocol.
  • FIG. 8 is a flowchart of one embodiment for transmitting CAN/IP datagrams onto [0057] CAN 100. Initially at step 605, IP layer 212 uses the IP datagram's destination address to determine the Next Hop IP address using conventional routing protocols.
  • At [0058] step 608, CAN/IP 205 determines the destination CAN address. If the Next Hop IP address is a broadcast address, CAN/IP 205 uses the CAN global address (255) as the destination CAN address. In one embodiment, if the Next Hop IP address is a multi-cast addresses (a class D address), CAN/IP 205 also uses the CAN global address (255) as the destination address. If the Next Hop IP address is a unicast address, CAN/IP 205 uses ARP to determine the destination CAN address.
  • At [0059] step 610, CAN/IP formats the IP datagram. In one embodiment, a one byte IP identifier and a one byte frame type are appended to the beginning of the data. In one embodiment, the frame type may be set at 0 to indicate an IP datagram.
  • At [0060] step 615, CAN/IP 205 transmits the IP datagram to the Next Hop IP host. CAN/IP 205 uses SAEJ1939/21 multipacket protocol to transmit the IP datagram in packets of seven data bytes at a time. During transmission, CAN/IP 205 limits the number of frames it transmits per time interval using CCP as described above. In one embodiment, IP datagrams are transmitted with their priority bits set at 7 to avoid interfering with standard SAEJ1939 data traffic.
  • Several variations in the implementation for a system and method to connect Internet Protocol (IP) hosts to a Controller Area Network (CAN) have been described. [0061]
  • The specific arrangements and methods herein are merely illustrative of the principles of this invention. Numerous modifications in form and detail may be made by those skilled in the art without departing from the true spirit and scope of the invention. [0062]
  • Although this invention has been shown in relation to a particular embodiment, it should not be considered so limited. Rather, it is limited only by the appended claims. [0063]

Claims (33)

What is claimed is:
1. A method of implementing Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus comprising:
determining an application specific bus address of a remote device, said remote device having an IP address in addition to the application specific bus address;
formatting a message conforming to the application specific bus, said message containing an IP datagram and message identifiers;
transmitting the message on the application specific bus;
receiving the message at the remote device based upon the application specific bus address;
authenticating the message as an IP message based upon the message identifiers; and
extracting the IP datagram from the message and processing the IP datagram by a conventional IP network processing protocol.
2. The method of claim 1 wherein the step of determining further comprises:
formatting an application specific bus address request message;
transmitting the address request message on the application specific bus; and
receiving an address reply message, the reply message containing the application specific bus address of the remote device.
3. The method of claim 2 wherein the address reply message is received from the remote device.
4. The method of claim 1 wherein the step of transmitting further comprises:
maintaining an averaging interval by at least one IP host;
determining a total number of frames of all types present on the application specific bus from all sources during the averaging interval; and
adjusting a protocol rate limit at the end of the averaging interval.
5. The method of claim 4 wherein adjusting a protocol rate limit further comprises:
if the total number of frames is greater than 0.9 times a network capacity, decreasing the protocol rate limit; and
if the total number of frames is less than 0.8 times the network capacity, increasing the protocol rate limit.
6. The method of claim 4 wherein the at least one IP host uses less than protocol rate limit percent of an application specific bus capacity to transmit frames using the protocol rate limit.
7. The method of claim 6 wherein the application specific bus capacity is 2000 frames per second.
8. The method of claim 1 wherein the step of authenticating further comprises:
looking-up the application specific bus address for the remote device in a cache; and
if the application specific bus address for the device is not found in the cache,
formatting an application specific bus query message,
transmitting the query message on the application specific bus,
receiving a query reply message comprising the application specific bus address for the remote device, and
adding the application specific bus address for the remote device to the cache.
9. A method of implementing Internet Protocol (IP) hosts on an application specific bus without disrupting operation of the application specific bus, comprising:
determining an application specific bus address of a remote device, said remote device having an IP address in addition to the application specific bus address;
formatting a message conforming to the application specific bus, said message containing an IP datagram and message identifiers; and
transmitting the message on the application specific bus.
10. The method of claim 9 wherein the step of determining further comprises:
formatting an application specific bus address request message;
transmitting the address request message on the application specific bus; and
receiving an address reply message, the reply message containing the application specific bus address of the remote device.
11. The method of claim 10 wherein the address reply message is received from the remote device.
12. The method of claim 9 wherein the step of transmitting further comprises:
maintaining an averaging interval by at least one IP host;
determining a total number of frames of all types present on the application specific bus from all sources during the averaging interval; and
adjusting a protocol rate limit at the end of the averaging interval.
13. The method of claim 12, wherein adjusting a protocol rate limit further comprises:
if the total number of frames is greater than 0.9 times a network capacity, decreasing the protocol rate limit; and
if the total number of frames is less than 0.8 times the network capacity, increasing the protocol rate limit.
14. The method of claim 12, wherein the at least one IP host uses less than protocol rate limit percent of an application specific bus capacity to transmit frames using the protocol rate limit.
15. A method of implementing Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus, comprising:
receiving a message based upon an application specific bus address, said message including an IP datagram and message identifiers;
authenticating the message as an IP message based upon the message identifiers; and
extracting the IP datagram from the message and processing the IP datagram by a conventional IP network processing protocol.
16. The method of claim 15 wherein the step of authenticating further comprises:
looking-up the application specific bus address for the remote device in a cache; and
if the application specific bus address for the device is not found in the cache,
formatting an application specific bus query message,
transmitting the query message on the application specific bus,
receiving a query reply message, and
adding the application specific bus address for the remote device to the cache.
17. A method of implementing Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus comprising:
providing a set of IP hosts, each of said set of IP hosts having an IP address and an application specific bus address;
receiving a data message from an application within one of the set of IP hosts;
formatting a transmittal message conforming to the application specific bus, said transmittal message containing the data message and message identifiers; and
transmitting the data message on the application specific bus to a second of one of the set of IP hosts based upon an application specific bus address of the second of one of the set of IP hosts.
18. A method of implementing Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus comprising:
receiving a request that a datagram be sent to an IP host identified by an IP network address, the IP address contained within the request;
requesting a physical address for a control-based network device corresponding to the IP address;
receiving a reply message from the network device containing the physical address; and
transmitting IP packets over the control-based network in a manner appropriate to the control-based network.
19. A computer-readable medium comprising program instructions for implementing Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus by performing the steps of:
determining an application specific bus address of a remote device, said remote device having an IP address in addition to the application specific bus address;
formatting a message conforming to the application specific bus, said message containing an IP datagram and message identifiers; and
transmitting the message on the application specific bus.
20. The medium of claim 19 wherein the step of determining further comprises:
formatting an application specific bus address request message;
transmitting the address request message on the application specific bus; and
receiving an address reply message, the reply message containing the application specific bus address of the remote device.
21. The medium of claim 19 wherein the step of transmitting further comprises:
maintaining an averaging interval by at least one IP host;
determining a total number of frames of all types present on the application specific bus from all sources during the averaging interval; and
adjusting a protocol rate limit at the end of the averaging interval.
22. A computer-readable medium comprising program instructions for implementing Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus by performing the steps of:
receiving a message based upon an application specific bus address, said message including IP data and message identifiers;
authenticating the message as an IP message based upon the message identifiers; and
extracting the IP data from the message and processing the IP data by a conventional IP network processing protocol.
23. The medium of claim 22 wherein the step of authenticating further comprises:
looking-up the application specific bus address for the remote device in a cache; and
if the application specific bus address for the device is not found in the cache,
formatting an application specific bus query message,
transmitting the query message on the application specific bus,
receiving a query reply message, and
adding the application specific bus address for the remote device to the cache.
24. A system for implementing Internet Protocol (IP) hosts on an application specific bus without disrupting operation of the application specific bus, comprising:
means for determining an application specific bus address of a remote device, said remote device having an IP address in addition to the application specific bus address;
means for formatting a message conforming to the application specific bus, said message containing IP data and message identifiers; and
means for transmitting the message on the application specific bus.
25. A system for implementing Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus, comprising:
means for receiving a message based upon an application specific bus address, said message including IP data and message identifiers;
means for authenticating the message as an IP message based upon the message identifiers; and
means for extracting the IP data from the message and processing the IP data by a conventional IP network processing protocol.
26. A system for implementing Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus comprising:
a message formatted according to the application specific bus, said message containing IP data and message identifiers;
at least one source IP host connected to the application specific bus, said at least one source IP host places the message on the application specific bus; and
at least one destination IP host connected to the application specific bus, said at least one destination IP host having an IP address and an application specific bus address, said at least one destination IP host receives the message based upon the application specific bus address, authenticates the message as an IP message based upon the message identifiers, and extracts the IP data from the message.
27. The system of claim 26 wherein the at least one source IP host further formats an application specific bus address request message; transmits the address request message on the application specific bus; and receives an address reply message, the reply message containing the application specific bus address of the at least one destination IP host.
28. The system of claim 26 wherein the at least one source IP host further maintains an averaging interval; determines a total number of frames of all types present on the application specific bus from all sources during the averaging interval; and adjusts a protocol rate limit at the end of the averaging interval, the at least one source IP host uses less than protocol rate limit percent of an application specific bus capacity to transmit the frames.
29. A system for implementing Internet Protocol (IP) hosts on an application specific bus without disrupting operation of the application specific bus, comprising:
a message formatted according to the application specific bus, said message containing IP data and message identifiers, the message identifiers used to authenticate the message as an IP message; and
at least one IP host connected to the application specific bus, said at least one IP host configured to transmit the message on the application specific bus.
30. The system of claim 29 wherein the at least one IP host is further configured to format an application specific bus address request message; transmit the address request message on the application specific bus; and receive an address reply message, the reply message containing the application specific bus address of a remote device.
31. A system for implementing Internet Protocol (IP) hosts on an application specific bus without disrupting the application specific bus comprising:
a message formatted according to the application specific bus, said message containing IP data and message identifiers;
at least one IP host connected to the application specific bus, said at least one IP host having an IP address and an application specific bus address, said at least one IP host configured to receive the message based upon the application specific bus address, authenticate the message as an IP message based upon the message identifiers, and extract the IP data from the message.
32. The system of claim 31 wherein the at least one destination IP host further comprises:
a cache containing application specific bus addresses for remote devices for authenticating the message.
33. The system of claim 32 wherein the at least one destination IP host is further configured to look-up the application specific bus address for the remote device in the cache;
if the application specific bus address for the device is not found in the cache, the at least one destination IP host is further configured to format an application specific bus query message, transmit the query message on the application specific bus, receive a query reply message, and add the application specific bus address for the remote device to the cache.
US10/731,572 1999-06-22 2003-12-08 Method and system to connect internet protocol hosts via an application specific bus Abandoned US20040122978A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/731,572 US20040122978A1 (en) 1999-06-22 2003-12-08 Method and system to connect internet protocol hosts via an application specific bus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/338,316 US6728268B1 (en) 1999-06-22 1999-06-22 Method and system to connect internet protocol hosts via an application specific bus
US10/731,572 US20040122978A1 (en) 1999-06-22 2003-12-08 Method and system to connect internet protocol hosts via an application specific bus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/338,316 Continuation US6728268B1 (en) 1999-06-22 1999-06-22 Method and system to connect internet protocol hosts via an application specific bus

Publications (1)

Publication Number Publication Date
US20040122978A1 true US20040122978A1 (en) 2004-06-24

Family

ID=32107742

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/338,316 Expired - Lifetime US6728268B1 (en) 1999-06-22 1999-06-22 Method and system to connect internet protocol hosts via an application specific bus
US10/731,572 Abandoned US20040122978A1 (en) 1999-06-22 2003-12-08 Method and system to connect internet protocol hosts via an application specific bus

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/338,316 Expired - Lifetime US6728268B1 (en) 1999-06-22 1999-06-22 Method and system to connect internet protocol hosts via an application specific bus

Country Status (1)

Country Link
US (2) US6728268B1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050190760A1 (en) * 2003-12-23 2005-09-01 Airbus Deutschland Gmbh Bus system for an aircraft
WO2006114425A1 (en) * 2005-04-28 2006-11-02 Siemens Aktiengesellschaft Method of communication on magnetic resonance system multidrop bus
US20070208469A1 (en) * 2004-03-19 2007-09-06 Audu Ag Communication System for a Motor Vehicle
US20090240785A1 (en) * 2008-03-19 2009-09-24 Norifumi Kikkawa Information Processing Unit, Information Playback Unit, Information Processing Method, Information Playback Method, Information Processing System and Program
US20150207772A1 (en) * 2014-01-20 2015-07-23 Robert Walker Systems, Methods, and Apparatuses using Common Addressing
US9892073B1 (en) 2014-10-06 2018-02-13 Master Lock Company Llc Bus addressing systems and methods using repurposed bits

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7420951B1 (en) * 1999-11-12 2008-09-02 Nortel Networks Limited Packet-switched communications in a mobile network
US7006478B1 (en) 2000-05-22 2006-02-28 Nortel Networks Limited Communicating over one or more paths in an interface between a base station and a system controller
US7496096B1 (en) * 2002-01-31 2009-02-24 Cisco Technology, Inc. Method and system for defining hardware routing paths for networks having IP and MPLS paths
US7433740B2 (en) * 2003-03-05 2008-10-07 Colorado Vnet, Llc CAN communication for building automation systems
US20040176877A1 (en) * 2003-03-05 2004-09-09 Scott Hesse Building automation system and method
US6927546B2 (en) * 2003-04-28 2005-08-09 Colorado Vnet, Llc Load control system and method
US20040218591A1 (en) * 2003-04-29 2004-11-04 Craig Ogawa Bridge apparatus and methods of operation
US7472203B2 (en) * 2003-07-30 2008-12-30 Colorado Vnet, Llc Global and local command circuits for network devices
US20050049726A1 (en) * 2003-08-29 2005-03-03 Adamson Hugh P. Input device for building automation
US20050049730A1 (en) * 2003-08-29 2005-03-03 Adamson Hugh P. Keypad for building automation
US7987027B2 (en) * 2006-04-27 2011-07-26 Caterpillar Inc. Systems for processing machine health information
US8175848B2 (en) * 2008-03-21 2012-05-08 Rochester Institute Of Technology Data processing systems and methods
CA2888742C (en) 2013-09-23 2015-09-15 Jason G. Tatge Farming data collection and exchange system
US9980434B1 (en) 2015-02-28 2018-05-29 Hydro-Gear Limited Partnership Network for placing a plurality of lawnmower components in operative communication
US10058031B1 (en) 2015-02-28 2018-08-28 Hydro-Gear Limited Partnership Lawn tractor with electronic drive and control system
DE102016221690A1 (en) * 2016-11-04 2018-05-09 Audi Ag Method for transmitting data packets between an Ethernet and a bus system in a motor vehicle, and gateway device and motor vehicle
DE102017216833A1 (en) * 2017-09-22 2019-03-28 Siemens Aktiengesellschaft Method for providing data packets from a CAN bus; Control unit and system with a CAN bus
US20200136965A1 (en) * 2018-10-29 2020-04-30 Ten-D Energies, Inc. Robustness enhancing router for controller area networks
CN115102826B (en) * 2022-06-17 2023-05-16 华侨大学 Communication system and method for electric engineering machinery, upper computer and whole vehicle controller

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4258421A (en) * 1978-02-27 1981-03-24 Rockwell International Corporation Vehicle monitoring and recording system
US5303348A (en) * 1985-02-22 1994-04-12 Robert Bosch Gmbh Method of arbitrating access to a data bus and apparatus therefor
US5548649A (en) * 1995-03-28 1996-08-20 Iowa State University Research Foundation Network security bridge and associated method
US5732074A (en) * 1996-01-16 1998-03-24 Cellport Labs, Inc. Mobile portable wireless communication system
US6128294A (en) * 1996-04-05 2000-10-03 Hitachi, Ltd. Network connecting apparatus
US6233626B1 (en) * 1998-10-06 2001-05-15 Schneider Automation Inc. System for a modular terminal input/output interface for communicating messaging application layer over encoded ethernet to transport layer
US6253122B1 (en) * 1999-06-14 2001-06-26 Sun Microsystems, Inc. Software upgradable dashboard
US6330605B1 (en) * 1998-11-19 2001-12-11 Volera, Inc. Proxy cache cluster
US6363071B1 (en) * 2000-08-28 2002-03-26 Bbnt Solutions Llc Hardware address adaptation
US6362730B2 (en) * 1999-06-14 2002-03-26 Sun Microsystems, Inc. System and method for collecting vehicle information
US6370449B1 (en) * 1999-06-14 2002-04-09 Sun Microsystems, Inc. Upgradable vehicle component architecture
US20020124095A1 (en) * 2001-03-02 2002-09-05 Sultan Israel Daniel Apparatus and method for sending point-to-point protocol over ethernet
US6510479B1 (en) * 1999-09-15 2003-01-21 Koninklijke Philips Electronics N.V. Transmit pre-arbitration scheme for a can device and a can device that implements this scheme
US6535918B1 (en) * 1998-09-22 2003-03-18 Qualcomm Incorporated Interface between standard terminal equipment unit and high speed wireless link
US6574734B1 (en) * 1998-12-28 2003-06-03 International Business Machines Corporation Method and apparatus for securing access to automotive devices and software services
US6697862B1 (en) * 1999-05-21 2004-02-24 3Com Corporation System and method for network address maintenance using dynamic host configuration protocol messages in a data-over-cable system

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4258421A (en) * 1978-02-27 1981-03-24 Rockwell International Corporation Vehicle monitoring and recording system
US5303348A (en) * 1985-02-22 1994-04-12 Robert Bosch Gmbh Method of arbitrating access to a data bus and apparatus therefor
US5640511A (en) * 1985-02-22 1997-06-17 Robert Bosch Gmbh Method of arbitrating access to a data bus and apparatus therefor
US5548649A (en) * 1995-03-28 1996-08-20 Iowa State University Research Foundation Network security bridge and associated method
US5732074A (en) * 1996-01-16 1998-03-24 Cellport Labs, Inc. Mobile portable wireless communication system
US6128294A (en) * 1996-04-05 2000-10-03 Hitachi, Ltd. Network connecting apparatus
US6535918B1 (en) * 1998-09-22 2003-03-18 Qualcomm Incorporated Interface between standard terminal equipment unit and high speed wireless link
US6233626B1 (en) * 1998-10-06 2001-05-15 Schneider Automation Inc. System for a modular terminal input/output interface for communicating messaging application layer over encoded ethernet to transport layer
US6330605B1 (en) * 1998-11-19 2001-12-11 Volera, Inc. Proxy cache cluster
US6574734B1 (en) * 1998-12-28 2003-06-03 International Business Machines Corporation Method and apparatus for securing access to automotive devices and software services
US6697862B1 (en) * 1999-05-21 2004-02-24 3Com Corporation System and method for network address maintenance using dynamic host configuration protocol messages in a data-over-cable system
US6362730B2 (en) * 1999-06-14 2002-03-26 Sun Microsystems, Inc. System and method for collecting vehicle information
US6370449B1 (en) * 1999-06-14 2002-04-09 Sun Microsystems, Inc. Upgradable vehicle component architecture
US6253122B1 (en) * 1999-06-14 2001-06-26 Sun Microsystems, Inc. Software upgradable dashboard
US6510479B1 (en) * 1999-09-15 2003-01-21 Koninklijke Philips Electronics N.V. Transmit pre-arbitration scheme for a can device and a can device that implements this scheme
US6363071B1 (en) * 2000-08-28 2002-03-26 Bbnt Solutions Llc Hardware address adaptation
US20020124095A1 (en) * 2001-03-02 2002-09-05 Sultan Israel Daniel Apparatus and method for sending point-to-point protocol over ethernet

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050190760A1 (en) * 2003-12-23 2005-09-01 Airbus Deutschland Gmbh Bus system for an aircraft
US7433354B2 (en) * 2003-12-23 2008-10-07 Airbus Deutschland Gmbh Bus system for an aircraft
US20070208469A1 (en) * 2004-03-19 2007-09-06 Audu Ag Communication System for a Motor Vehicle
US8634968B2 (en) * 2004-03-19 2014-01-21 Audi Ag Communication system for a motor vehicle
WO2006114425A1 (en) * 2005-04-28 2006-11-02 Siemens Aktiengesellschaft Method of communication on magnetic resonance system multidrop bus
US7970969B2 (en) 2005-04-28 2011-06-28 Siemens Aktiengesellschaft Method for communication on a multidrop bus of a magnetic resonance system
US20090240785A1 (en) * 2008-03-19 2009-09-24 Norifumi Kikkawa Information Processing Unit, Information Playback Unit, Information Processing Method, Information Playback Method, Information Processing System and Program
US20150207772A1 (en) * 2014-01-20 2015-07-23 Robert Walker Systems, Methods, and Apparatuses using Common Addressing
US9521219B2 (en) * 2014-01-20 2016-12-13 Echelon Corporation Systems, methods, and apparatuses using common addressing
US9892073B1 (en) 2014-10-06 2018-02-13 Master Lock Company Llc Bus addressing systems and methods using repurposed bits

Also Published As

Publication number Publication date
US6728268B1 (en) 2004-04-27

Similar Documents

Publication Publication Date Title
US6728268B1 (en) Method and system to connect internet protocol hosts via an application specific bus
US6895443B2 (en) Method and system for facilitating communication between nodes on different segments of a network
US7509435B2 (en) Network Address Translation and Port Mapping
US5805594A (en) Activation sequence for a network router
CN109716710B (en) Method for transmitting data packets between an ethernet network and a bus system in a motor vehicle, gateway device and motor vehicle
US7142509B1 (en) Method and apparatus providing for delivery of streaming media
US7212527B2 (en) Method and apparatus for communicating using labeled data packets in a network
US6404766B1 (en) Network data communication system
US6519243B1 (en) Communication system for communications devices utilizing asymmetrical paths and communications method utilizing asymmetrical paths
US7386624B2 (en) Method, system and article for dynamic real-time stream aggregation in a network
US20060133371A1 (en) Communication data relay system and method
EP0909062A1 (en) Methods and apparatus for accelerating OSI layer 3 routers
WO2004045139A2 (en) System and method for discovery and configuration
EP1385313B1 (en) System and method for managing multiple protocol stacks
US8677019B2 (en) Data communication method using unambiguous vehicle identification information
MXPA01008197A (en) Bridge for can to tcp/ip connection.
CN108848025B (en) Data processing method, intelligent gateway and Internet of things system
US20200389436A1 (en) On-vehicle communication device, communication control method, and communication control program
US7085808B2 (en) Method for distinguishing clients in a communication system, a communication system; and a communication device
US20080240136A1 (en) Programmable controller and communication unit
EP1672876A2 (en) Network system and method for assigning dynamic address and performing routing based upon dynamic address
US7876757B2 (en) Router-assisted fast processing of packet termination in host
US20030055915A1 (en) Method and apparatus for transmitting data over a network
US20100023620A1 (en) Access controller
WO2021084927A1 (en) Relay device, vehicle-mounted communication system, vehicle, and vehicle-mounted communication method

Legal Events

Date Code Title Description
AS Assignment

Owner name: TRIMBLE NAVIGATION LIMITED, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BIRD, DAVID G.;SWANSON, ANDREW J.;HABIB, HABIB G.;REEL/FRAME:022371/0565;SIGNING DATES FROM 19990621 TO 20070808

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION