AT89C51 microcontroller based CAN bus-based Intelligent Node

Abstract: The CAN (Controller Area Network) bus characteristics, given CAN bus system intelligent node circuit principle and with the C51 language development program, facilitate the user to learn and master.

1 Introduction

CAN (Controller Area Network) is a controller area network, mainly used for a variety of equipment testing and control of fieldbus. BOSCH CAN bus is a German company of the 20th century and early 80's to solve a number of vehicle control and test equipment developed for data exchange between serial data communication protocol. This is a multi-master bus, both in the high-speed network nodes or in the low-cost systems, applications are extensive. As a result of a number of new technology and unique design, and Yi Ban the communication bus Xiangbi, CAN bus data communication with outstanding reliability, real time and flexibility, the following features:

● communication flexible and can work multi-master mode, any node on the network are active in any time to other nodes on the network to send information, regardless of master and slave.

● CAN node identifier only on the message filtering can achieve point to point, multipoint, and global broadcast send and receive data, the node can be divided into different priority, the priority of the node can be identified by packet break to set up the high priority data can be transmitted within 134μs to meet different real-time requirements.

● CAN bus communication format uses a short frame format, the number of bytes per frame more than 8 bytes, Keman Zu Ling Yu Zhong 控制 general industrial orders that the work Zhuangtai and test data requirements, Tong Shi, 8 bytes Buhuizhanyong bus time too long to ensure communication in real time.

● bus arbitration using non-destructive technique, when multiple nodes simultaneously send information to the bus, there are conflicts, the low priority node will take the initiative to send out data, while the high priority nodes can be affected to continue to transmit data, significant savings bus arbitration time of conflict, in the case of network overload will not occur networks.

● Direct communication distance up to 10 km (rate at 5 kb / s or less), the maximum transmission rate up to 1 Mb / s (this time from up to 40 m); up to 110 nodes, communications media can be twisted pair, coaxial cable or optical fiber.

● CAN bus with CRC testing and provides the appropriate error handling function, to ensure the reliability of data communication, the node of the serious situation in the wrong with self-closing output to other nodes on the bus operations are not affected.

2 CAN-bus system architecture

As the CAN bus multi-master mode work, I have the DCS (Distributed Control System) is not the same topology. The control system consists of computers and smart nodes shown in Figure 1. The greatest feature of this system is that all nodes can be attached to an equal status on the bus. A bus node usually include at least three parts: the task of SCM control node, the bus controller and bus driver. In this paper, a simple CAN bus intelligent node design. Intelligent node from the 89C5l MCU, SJA1000-based bus controller, 82C250-type bus driver and the PC form. In practice, the sensor can be connected to different parts, the completion of data collection and transmission.

AT89C51 microcontroller based CAN bus-based Intelligent Node

3 hardware design

I designed the CAN bus system intelligent node with Intel Corporation AT89C51 MCU as the node microprocessor. AT89C51 has a 64KB address space. Itself without the CAN controller and CAN bus, so to achieve the required communication between the external CAN controller and CAN drivers. In this design type used SJAl000 CAN bus communication controller and the AT82C250-type bus driver.

CAN bus system intelligent node hardware circuit shown in Figure 2. As can be seen from Figure 2, the hardware circuit mainly by AT89C51, SJAl000, AT82C250, 6N137 high-speed optocoupler and the MAX202 level converter device type composition. AT89C51 responsible SJAl000 initialization, control SJAl000 for data receive and transmit such communication task. MAX202 RS232 to TTL level and the level of each conversion, data can be received in the PC. SJAl000 the ADO-AD7 the P0 port to connect to the AT89C51, CS connected to the AT89C51 the P2.7. P2.7 to 0, CPU chip memory address optional in the SJA1000, CPU through the implementation of these addresses can SJAl000 corresponding read / write operations. SJAl000 the RD, WR, ALE pins are connected with the corresponding AT89C51, SJAl000's INT Access AT89C51 the INTl, AT89C51 can also be interrupted access SJA1000.
To enhance the capacity of the bus node interference, SJAl000 the TX0 and RX0 not directly related to the TXD and RXD 82C250 phase, but through 6N137 and AT82C250 phase, so well realized the bus electrical isolation between each node . However, the optocoupler circuit with the two power supply VCC and VDD must be isolated. Completely isolated power supply can be used for low power isolated modules. Although this increases the complexity of the interface circuit, but increase the stability and security of the node.

AT82C250 and bus interface has also taken certain security and anti-jamming measures. AT82C250 the CANH CANL pins each pin and through a 5 Ω resistor is connected with the bus, resistors may play a limiting role in protecting against over-current shocks AT82C250. CANH and CANL and in parallel between the two 30pF capacitors small, you can filter out high frequency noise on the bus and have some anti-electromagnetic radiation. In addition, two CAN-bus input and to pick up a difference between the lightning tubes, when two ground between input and transient interference, lightning discharge tube play a protective role. AT82C250 the RS pin then a slope of the resistor, the resistance of the size of the bus communication speed can be adjusted, usually between 16 kΩ ~ 140 kΩ.

4 Software Design

4.1 Network Communication Rules

CAN bus multi-master work, the network took a node can be active at any time to other nodes on the network to send information, regardless of master and slave, and flexible communication. To prohibit bus conflict, CAN bus, bus arbitration using non-destructive technique, each node needs to be set according to different priorities, and to the identifier ID calibration, the smaller the value, the higher the priority. Bus nodes can communicate with each other in real time, when a node needs to receive another one node of the data, only the contents of its code register set and the other one the same node identifier can be. If you register for the identifier and the contents of the code set is inconsistent, then ignore the data issued by the node.
4.2 SJAl000 work mode settings

SJAl000 There are two operating modes: reset mode and work mode. In the reset mode, can receive a code to receive screening, the bus timing register 1 and the output O and control register set. CAN initialization generally more complete register set, when the CAN into work mode, their values will not change. In the operating mode can send and receive data. With particular attention to is this: When hardware reset or the controller will automatically reset when off-line mode, so that no normal CAN communication, which requires monitoring of the reset bit. The event of a hardware reset or reset the controller off-line mode to enter when requested to reset the position to 0 and enter the pattern, so that CAN will be able to send and receive normal.

4.3 software programming language based on C

System software design is the system power and SJAl000 AT89C51 after the first initialization, to determine the working frequency, baud rate, the output characteristics. Which Renyi Zhi can be adopted by the node can use the query from the CAN bus SJAl000 get the required data and to transmit the data to the PC display, while on the bus can send data to other intelligent nodes for receiving display. The following is a concrete realization process.

AT89C51 microcontroller based CAN bus-based Intelligent Node

AT89C51 microcontroller based CAN bus-based Intelligent Node

Is to test the above procedure, in which the main controller AT89C52 reg51.h is specially prepared for the library function, which is readily available in the Keil software, as long as included with # include statements can come in; intrins.h is empty after the call function _nop_ () to prepare for it which includes a statement similar to the assembly language of the NOP; CAN_TOUWENJIAN.h is the header file for the definition of the relevant registers. Tx_DATA_CAN () function is used to send data to the bus, REC_DATA_CAN () function is used to receive data from the bus, SERIAL () is used between the PC and the smart nodes communicate with each other. Space is limited, send and receive routines are given no specific subroutine.

5 Conclusion

The development of CAN bus in the test process, I mastered the CAN bus intelligent node, and has been applied in practice. By applying proven, CAN bus has the following advantages: network free, expandability; automatic error defined, simplifying the operation of the communication; can determine the data content of the priority to address the problem of real-time communication. In addition, CAN network has a number of industrial control system applications, especially in the high transmission speed and reliability but also for demanding real-time occasion, CAN bus will have broad application prospects. This article comes from "a certain type of control system to improve the signal of information transmission," discussion group, team leader is Professor Liu Yonghong, deputy director is Associate Professor Wen-Hung Chang, the main participants Professor Huang Chenfu, Zhao Yong Lecturer, Li Jingang graduate.

Declined comment