在系统中,SPI有两种工作方式:中断/软件轮询工作方式和DMA工作方式。
中断/软件轮询工作方式:
SPI有两个可控中断源—接收FIFO溢出和发送FIFO空。通过设置相应的中断使能位可以向中断控制器发送中断信号。当然,也可以禁止中断通过软件轮询来查询中断标志位。使用中断方式需要配置中断控制器。
DMA工作方式:
分为发送DMA请求和接收DMA请求。
当发送FIFO为半空(4个数据)时,SPI向DMA控制器发送DMA请求直到FIFO中的数据个数大于4。接收DMA请求又分为两种:Burst Request 和Single Request。
当接收FIFO为半满时,SPI发送Burst Request;当接收FIFO不空且非半满,并且SPIF 标志位置位则SPI发送Single Request。使用DMA方式需要配置DMA控制器。是否响应SPI的DMA请求以及相应哪种请求取决于DMA控制器的配置。
3.3 MCP2515
Microchip 的MCP2515芯片是一款具有SPI接口的独立CAN控制器,具有3个发送缓冲器,2个接收缓冲器,支持比CAN更高层的协议,如DiviceNet;完全支持CAN 2.0B技术规范。该器件能发送和接收标准和扩展数据帧以及远程帧。MCP2515 自带的两个验收屏蔽寄存器和优尔个验收滤波寄存器可以过滤掉不想要的报文,因此减少了主单片机(MCU)的开销。MCP2515与MCU 的连接是通过业界标准串行外设接口(Searial Peripheral Interface,SPI)来实现的。并且MCP2515可简化需要与CAN总线连接的应用。图3.2简要显示了MCP2515 的结构框图。该器件主要由三个部分组成:
1. CAN 模块,包括CAN 协议引擎、验收滤波寄存器、验收屏蔽寄存器、发送和接收缓冲器。
2. 用于配置该器件及其运行的控制逻辑和寄存器。 基于嵌入式系统的CAN总线接口电路设计(6):http://www.youerw.com/tongxin/lunwen_7551.html