J1939 is a high-level protocol built on the CAN bus that provides serial data communication between electronic control units (ECUs) in heavy-duty vehicles. Applications of J1939 include:
Diesel power-train applications
In-vehicle networks for buses and trucks
Agriculture and forestry machinery
Fleet management systems
Marine navigation systems
The J1939 protocol uses CAN as the physical layer, which defines the communication between ECUs in the vehicle network. The protocol has a second data-link layer that defines rules of communication and error detection. A third application layer defines the data transferred over the network.