Preface
Preface It is becoming important for microcontroller users to adapt to new technologies quickly and learn the architecture and use of high performance 32-bit microcontrollers. Several manufacturers offer 32-bit microcontrollers as general purpose processors in embedded applications. For example, Microchip Inc offer the 32-bit PIC family of microcontrollers and development tools in addition to their highly popular 8-bit and 24-bit family. ARM offers 32-bit and 64-bit processors mainly for the embedded applications. Nowadays, the majority of mobile devices such as mobile phones, tablets, and GPS receivers are based on ARM processor technology. Their low cost, low power consumption and high performance make them ideal candidates to be used in complex communication and mixed signal applications. Arduino is a highly popular family of microcontroller development boards currently used by students, practising engineers and hobbyists. Controller Area Network (CAN) was originally developed to be used in passenger cars. CAN controllers are now available from over 20 manufacturers. CAN is finding applications in many industrial fields, including medical, aerospace, process control, automation, and so on. With the arrival of the CAN in Automation (CiA) association in 1992, manufacturers and users have come together to exchange ideas, and develop CAN standards and specifications. This book is about the use of the ARM Cortex-M family of processors and the Arduino Uno in practical CAN bus based projects. The book gives a detailed introduction to the architecture of the Cortex-M family. Examples of popular hardware and software development kits are briefly described. Using these kits simplifies the embedded design cycle considerably, making it easier to develop, debug, and test CAN bus based projects. The architecture of the highly popular ARM Cortex-M processor STM32F407VGT6 is described at a high level by considering its various modules. In addition, the use of mikroC Pro for ARM and Arduino UNO CAN bus library of functions are described in detail. This book is written for students, practising engineers, hobbyists and for anyone else who may want to learn more about CAN bus and its applications. The book assumes the reader has some knowledge of basic electronics. Knowledge of the C programming language will be useful in later chapters of the book, and familiarity with at least one microcontroller will be an advantage, especially if the reader intends to develop microcontroller based projects using CAN bus. The book should be a useful source of reference for anyone interested in finding an answer to one or more of the following questions: • What bus systems are available for the automotive industry? • What are the principles of the CAN bus? • What types of frames (or data packets) are available in a CAN bus system?
● 13
CAN Arduino Dogan.indd 13
30-05-16 13:06