CAN Protocol Implementation for Data Communication
Abstract
The main aim of this project is the implementation of
CAN protocol for transferring information from one
place to another place.
CAN is a multi-master broadcast serial bus standard
for connecting electronic control units (ECUs).
Each node is able to send and receive messages, but
not simultaneously: message(consisting primarily of
an ID usually chosen to identify messagetype/sender
and up to eight message bytes) is transmitted serially
onto the bus, one bit after another this signal pattern
codes the message (in NRZ) and is sensed by all
nodes.
The devices that are connected by a CAN network
are typically sensors, actuators and control devices.
A CAN message never reaches these devices
directly, but instead a host processor and a CAN
controller are needed between these devices and the
bus.
If the bus is free, any node may begin to transmit. If
two or more nodes 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. Bit rates up to 1 Mbit/s are possible at
network lengths below 40 m. Decreasing the bit rate
allows longer network distances (e.g. 125 kbit/s at
500 m). The programming language used for developing the
software to the microcontroller is
Embedded/Assembly. The KEIL cross compiler is
used to edit, compile and debug this program. Micro
Flash programmer is used for burning the developed
code on Keil in to the microcontroller Chip. Here in
our application we are using AT89C51
microcontroller which is Flash Programmable IC.
AT represents the Atmel Corporation represents
CMOS technology is used for designing the IC. This
IC is one of the versions of 8051