CAN and FPGA Communication Engineering: Implementation of a CAN Bus based Measurement System on an FPGA Development Kit
:
Yu Zhu
:
CAN and FPGA Communication Engineering: Implementation of a CAN Bus based Measurement System on an FPGA Development Kit
:
Diplomica Verlag GmbH
:
9783842816046
:
1
:
CHF 26.80
:
:
Datenkommunikation, Netzwerke
:
English
:
93
:
kein Kopierschutz/DRM
:
PC/MAC/eReader/Tablet
:
PDF/ePUB
The Controller Area Network (CAN), invented by Bosch in 1983, is a serial field bus protocol which was originally used in road vehicles and now is widely applied in other industrial fields. Since its birth automotive electronic engineers have been use Microcontrollers (MCU) to control the CAN bus. Today, as the Field-programmable Gate Array (FPGA) has become very advance, this book introduces a new method which uses an FPGA and a MCU jointly instead of a single MCU is to design a CAN bus measurement system. Furthermore the designed system should be able to work at the fastest possible speed.
Chapter 1 of this book is the introduction which includes the background, objective and outline of this book.
Chapter 2 describes the CAN protocol development history and fundamentals such as application field, architecture layers, different frame structures, frame coding, error handling and fault confinement which are extracted from the CAN Specification 2.0 and ISO 11898. It helps reader to understand the CAN.
Chapter 3 studies the effective data transmission rate and ratio of the CAN bus and the MCU serial UART port. Then it compares their values and draws a conclusion. This chapter is the most important theory research of this book.
Chapter 4 describes the devices used in the experiments of the book. There are five major devices applied: an Altera FPGA, a 5-3.3 V level translator, an Atmel CAN MCU, a NI CAN USB and a PC with LabVIEW environment.
Chapter 5 demonstrates the software development procedure for the whole system including FPGA with Quartus II, MCU with Keil C51, and NI CAN BUS with LabVIEW.
Chapter 6 describes the testing experiments of the measurement system. It analyses a common error ignored during the MCU programming and shows how to solve it. After the reprogramming, three tests and their results are illustrated.
Chapter 7 presents the final conclusion of this book which is that the measurement system designed here maximally utilizes the CAN effective data transmission rate and ratio and could be applied in control systems of electric vehicles.
Text Sample: Chapter 2, CAN Introduction: In order to communicate via CAN, it is necessary to know about the fundamentals of the protocol. This chapter will introduce the history of CAN and present the main content of the CAN protocol based on the CAN Specification 2.0 [1] and ISO 11898 [2]. Chapter 2.1,Background: CAN is a serial field bus protocol which was originally used in road vehicles. Its development history can be traced back to the early 1980s. At that time, all automotive manufacturers were using point-to-point wiring systems to connect electronic devices in vehicles. As the application of electronics in vehicles rapidly increased, the wiring between different components became heavy, long, expensive and disorganized. This also made repairs very difficult. In order to solve these problems and also to enhance the safety and robust nature of automobiles, Bosch developed the CAN in 1983. In February of 1986 at the SAE (Society of Automotive Engineers) Congress, Bosch introduced CAN. This is considered the 'birth of CAN'. Shortly after, in mid 1987, Intel and Philips released the first CAN controller chips, the '82526' and the '82C200' [3]. Since then more and more companies have begun to develop and produce CAN. Today there are more than 50 CAN protocol controller chips available from more than 15 manufacturers [4]. In order to standardize CAN, in 1991 Bosch published the CAN Specification 2.0. In 1993 the ISO (International Organization for Standardization) published complimentary standards for CAN protocol, ISO 11898, and over the next few years issued the revised versions ISO 11898-1, ISO 11898-2 /-3/-4/-5. Today, due to its high performance, reliability and low cost, CAN is used not only in the automobile industry but also in many other fields including building automation (e.g. heating control, air conditioning, security, access and light control), domestic and food distribution (e.g. washing machines, dishwashers and vending machines), agriculture (e.g. harvesters, seeding, sowing machines and tractor control), medical apparatus, avionics and so on. Chapter 2.2, Architecture Layers: In the Open Systems Interconnection (OSI) reference model, the CAN Specification 2.0 and ISO 11898 jointly define the lowest two layers for the CAN: Physical Layer (7th) and Data Link Layer (6th) [1, 2]. Chapter 2.2.1, Physical Layer: In the physical layer the CAN Specifications 2.0 defines how signals in the CAN bus are actually transmitted. It includes bit timing, bit encoding, and synchronization. The ISO 11898 supplements the definition for the PMA (Physical Medium Attachment) and MDI (Medium Dependent Interface). According to the ISO 11898 the CAN network medium uses a twisted wire pair, one is referred to as 'CAN High' (CAN_H) which has a voltage value of 2.5 V to 4 V, and the other is 'CAN LOW' (CAN_L) which has a voltage value of 1 V to 2.5 V. The differential voltages on the CAN_H and CAN_L represent two signal states: recessive state (logic 1) and dominant state (logic 0). If the differential voltage is less than 0.5 V for receiver input or 1.5 V for transmitter output, then it is recessive, otherwise, it is dominant. Fig. 2.1 demonstrates a CAN bit stream: 1 (recessive), 0 (dominant), 1 (recessive).
CAN and FPGA Communication Engineering
1
Preface
3
Contents
5
1 Introduction
9
1.1 Background
9
1.2 Objective
9
1.3 Outline
11
2 CAN Introduction
12
2.1 Background
12
2.2 Architecture Layers
13
2.2.1 Physical Layer
13
2.2.2 Data Link Layer
15
2.2.3 Higher Layer
15
2.3 Frame Structure
16
2.3.1 Data Frame
16
2.3.2 Remote Frame
19
2.3.3 Error Frame
20
2.3.4 Overload Frame
21
2.3.5 Interframe Space
21
2.4 Frame Coding
22
2.5 Error Detecting and Handling
23
2.6 Fault Confinement
24
3 CAN and MCU Serial Port Effective Data Study
27
3.1 CAN Effective Data Study
27
3.2 MCU Serial Port Study
30
3.2.1 General 8051 MCU
30
3.2.2 Using Timer 2
32
3.2.3 X2 Mode
33
3.3 CAN vs. MCU Serial Port
34
4 Experiment Components and Setup
37
4.1 Stratix III FPGA Development Kit
37
4.2 CAN MCU AT89C51CC03
40
4.3 5-3.3 V Voltage Level Transistor
43
4.4 NI CAN USB-8473
45
4.5 PC with NI CAN Driver
47
4.6 Setup
47
5 Software Development
48
5.1 FPGA with Quartus II
48
5.1.1 DDS Design
48
5.1.2 PLL Application
50
5.1.3 UART Reception
53
5.1.4 UART Transmission
56
5.2 MCU with Keil C51
58
5.2.1 Serial Port Programming
58
5.2.2 CAN Programming
59
5.2.3 Interrupt Management
65
5.2.4 In-System Programming with FLIP
66
5.3 NI CAN BUS with LabVIEW
68
6 Experiments and Results
74
6.1 Problem Diagnosis
74
6.2 Final Results
77
7 Conclusion
80
References
81
Appendix
82