GEEK-SPEAK

If you're not up to speed on the latest electronics, industry lingo or don't have a clue as to what something is or how it works, you’re certainly not alone. Here’s some basic information.

 


What is CAN bus?
What is NMEA 0183?
What is J1939?


 

What is CAN bus?

In a nut shell, CAN bus or CAN (Controller Area Network) is essentially an engineering standard for how computers and modules talk to one another via the serial data bus in a vehicle's wiring system. It's a high speed standard designed for efficient and reliable communication between sensor, actuator, controller, and other nodes in real-time applications. The CAN protocol was created back in 1984 by Robert Bosch Corp. in anticipation of future advances in onboard electronics. The first production application was in 1992 on several Mercedes-Benz models, but CAN has established itself as the standard bus system for mobile applications, and is defined under ISO11898.

The versatility of CAN bus modules is most evident from the wide range of applications in which they are used; specialized civil engineering, mobile cranes, agricultural/harvesting machinery, forklift trucks, refuse collection vehicles, steamrollers, aircraft towing vehicles, road sweepers, excavators, fire engines, military equipment, boats, shipyard cranes and diggers.

Effective 2008, all new vehicles sold in the U.S are required to have a CAN-compliant onboard diagnostic system.

How does it work?

The CAN-bus acts as a communications bridge (or interface) between all of the electronic control units (ECUs) within the vehicle. The ECU is a microprocessor.

An automobile may have as many as 80 ECUs for various subsystems. Typically the biggest processor is the engine control unit, which is also referred to as "ECU" in the context of automobiles; other ECUs are used for transmission, airbags, antilock braking, cruise control, audio systems, windows, doors, mirror adjustment, etc. Some of these form independent subsystems, but communications among all are essential. A subsystem may need to control actuators or receive feedback from sensors. The CAN standard was devised to fill this need.

An ECU typically gets its input from sensors (speed, temperature, pressure, etc.) that it uses in its computation. Various actuators are used to broadcast the actions determined by the ECU (turn the cooling fan on, change gear, etc). The ECUs need to exchange data among themselves during the normal operation of the vehicle. For example, the engine needs to tell the transmission what the engine speed is, and the transmission needs to tell other ECUs when a gear shift occurs. This need to exchange data quickly and reliably is performed by the CAN bus.

A CAN message never reaches these devices directly, but instead a microprocessor and a (CAN )controller are needed between these devices and the bus.

Each ECU is able to send and receive messages, but not simultaneously: a message (consisting primarily of an ID - usually chosen to identify the message-type/sender - and up to eight message bytes) is transmitted serially onto the CAN bus, one bit after another - this signal pattern codes the message (in NRZ) and is sensed by all ECUs.
If the CAN bus is free, any ECU may begin to transmit. If two or more ECUs begin sending messages at the same time, the message with the more dominant ID (which has more dominant bits, i.e., bit 0) will overwrite other nodes' less dominant IDs, so that eventually (after this arbitration on the ID) only the dominant message remains and is received by all nodes.

 


 

What is NMEA 0183?

NMEA 0183 is a standard data communication protocol used by marine electronics devices and GPS receivers. Under the NMEA-0183 standard, all data is transmitted in the form of ASCII text "sentences", and sent at 4800 baud or higher serial interface.

Who is NMEA?

NMEA stands for National Marine Electronics Association. It is a U.S.-based standards committee that defines data message structure, contents and protocols to allow the GPS receiver to communicate with other pieces of electronic equipment.

NEMA is a non-profit association composed of manufacturers, distributors, dealers, educational institutions, and others interested in marine electronics occupations. The group is dedicated to the education and advancement of the marine electronics industry and the market which it serves.

How does NMEA 0183 work?

Most computer programs that provide real time position information understand and expect data to be in NMEA format. This data includes the complete PVT (position, velocity, time) solution computed by the GPS receiver.

The idea of NMEA is to send a line of data called a sentence that is totally self contained and independent from other sentences. There are standard sentences for each device category and there is also the ability to define proprietary sentences for use by the individual company. All of the standard sentences have a two letter prefix that defines the device that uses that sentence type. (For GPS receivers the prefix is “GP” which is followed by a three letter sequence that defines the sentence contents. In addition NMEA permits hardware manufactures to define their own proprietary sentences for whatever purpose they see fit. All proprietary sentences begin with the letter P and are followed with 3 letters that identifies the manufacturer controlling that sentence. For example a Topcon Tierra sentence may start with PTTI.

he NMEA standard has been around for many years (since 1983) and has undergone several revisions. The protocol has changed and the number and types of sentences may be different depending on the revision. Most GPS receivers understand the standard which is called: 0183 version 2. This standard dictates a transfer rate of 4800 b/s. Some receivers also understand older standards. The oldest standard was 0180 followed by 0182 which transferred data at 1200 b/s. An earlier version of 0183 called version 1.5 is also understood by some receivers.

Most GPS provide many "standard" sentences. The most commonly used sentences and their 3-letter codes are the following:

GGA    =    Global Positioning System Fix Data,
GLL    =    Geographic position, Latitude and Longitude
GSA    =    GPS Dilution of Precision and active satellites
GSV    =    Satellites in view
RMC    =    Recommended minimum specific GPS/Transit data

 


 

What is J1939?

SAE J1939 is the vehicle bus standard used for communication and diagnostics among vehicle components, originally by the car and heavy duty truck industry in the United States.

J1939 is used in the commercial vehicle area for communication throughout the vehicle. With a different physical layer it is used between the tractor and trailer. This is specified in ISO 11992.

SAE J1939 defines five layers in the 7-layer OSI network model, and this includes the CAN 2.0b specification (using only the 29-bit/"extended" identifier) for the physical and data-link layers. The session and presentation layers are not part of the specification.

Originally, CAN was not mentioned in J1939, which covered cars and tractor-trailer rigs, and with some dual and triple use 8-bit addresses assigned by the SAE J1939 board. CAN was not originally free, but its instruction set did fit in the custom instruction format of J1939. This was true as of the year 2000. Since then, CAN has been included, the chipset for J1939 has been clocked faster, and 16-bit addresses (PGN) have replaced 8-bit addresses.

J1939, ISO_11783 and NMEA_2000 all share the same high level protocol.

All J1939 packets contain eight bytes of data and a standard header which contains an index called PGN (Parameter Group Number), which is embedded in the message's 29-bit identifier. A PGN identifies a message's function and associated data. J1939 attempts to define standard PGNs to encompass a wide range of automotive, agricultural, marine and off-road vehicle purposes. A range of PGNs (00FF0016 through 00FFFF16, inclusive) is reserved for proprietary use. PGNs define the data which is made up of a variable number of SPN elements defined for unique data. For example, there exists a predefined SPN for engine RPM.

SAE J1939 can be considered the replacement for the older SAE J1708 and SAE J1587 specifications.

SAE J1939 has been adopted widely by diesel engine manufacturers. One driving force behind this is the increasing adoption of the engine Electronic Control Unit (ECU), which provides one method of controlling exhaust gas emissions within US and European standards. Consequently, SAE J1939 can now be found in a range of diesel-powered applications: vehicles (on- and off-road), marine propulsion, power generation and industrial pumping.

Applications of J1939 now include off-highway, truck, bus, and even some passenger car applications.

Global Gateway

  • English
  • Deutsch