Книга: Advanced PIC Microcontroller Projects in C
9.8 PIC Microcontroller CAN Interface
9.8 PIC Microcontroller CAN Interface
In general, any type of PIC microcontroller can be used in CAN bus–based projects, but some PIC microcontrollers (e.g., PIC18F258) have built-in CAN modules, which can simplify the design of CAN bus–based systems. Microcontrollers with no built-in CAN modules can also be used in CAN bus applications, but additional hardware and software are required, making the design costly and also more complex.
Figure 9.11 shows the block diagram of a PIC microcontroller–based CAN bus application, using a PIC16 or PIC12-type microcontroller (e.g., PIC16F84) with no built-in CAN module. The microcontroller is connected to the CAN bus using an external MCP2515 CAN controller chip and an MCP2551 CAN bus transceiver chip. This configuration is suitable for a quick upgrade to an existing design using any PIC microcontroller.
Figure 9.11: CAN node with any PIC microcontroller
For new CAN bus–based designs it is easier to use a PIC microcontroller with a built-in CAN module. As shown in Figure 9.12, such devices include built-in CAN controller hardware on the chip. All that is required to make a CAN node is to add a CAN transceiver chip. Table 9.2 lists some of the PIC microcontrollers that include a CAN module.
Figure 9.12: CAN node with integrated CAN module
Table 9.2: Some popular PIC microcontrollers that include CAN modules
Device | Pins | Flash (KB) | SRAM (KB) | EEPROM (bytes) | A/D | CAN module | SPI | UART |
---|---|---|---|---|---|---|---|---|
18F258 | 28 | 16 | 768 | 256 | 5 | 1 | 1 | 1 |
18F2580 | 28 | 32 | 1536 | 256 | 8 | 1 | 1 | 1 |
18F2680 | 28 | 64 | 3328 | 1024 | 8 | 1 | 1 | 1 |
18F4480 | 40/44 | 16 | 768 | 256 | 11 | 1 | 1 | 1 |
18F8585 | 80 | 48 | 3328 | 1024 | 16 | 1 | 1 | 1 |
18F8680 | 80 | 64 | 3328 | 1024 | 16 | 1 | 1 | 1 |
- 9.11 CAN Bus Programming
- 8.5.2 Typical Condition Variable Operations
- Introduction to Microprocessors and Microcontrollers
- Chapter 15. Graphical User Interfaces for Iptables
- Применение функции scanf( )
- Displaying Interface Statistics
- QueryInterface и IUnknown
- 5.1.2. The Directory Server Interface
- AIGLX — Eye Candy for the Masses
- Using Scanners in Fedora
- Command-Line Network Interface Configuration
- Laying the Foundation: The localhost Interface