APP下载

STM32F107VCT6平台下的bxCAN总线技术研究

2012-09-21胡洪坡梁书剑郑振华王铁军杨华

单片机与嵌入式系统应用 2012年9期

胡洪坡,梁书剑,郑振华,王铁军,杨华

(河北省张家口市宣化区总参通信训练基地科研所,张家口 075100)

引 言

控制器局域网(Controller Area Network,CAN)是国际上应用最广的工业级现场总线之一。CAN总线最开始应用在汽车控制系统中,后来由于其卓越的控制性能及较高的性价比被陆续应用在其他自动控制领域,如工业自动化、多种控制设备、交通工具、医疗仪器、建筑领域以及环境控制等。STM32F107VCT6是基于 ARM Cortex-M3内核的高性能微控制器芯片,主频72MHz,内部含有256 KB的Flash和64KB的SRAM。该芯片外设资源丰富,具有定时器、RS-485、RS-232、I2C总线、SPI、PWM、CAN总线等多种I/O资源。STM32F107VCT6芯片的CAN总线是一种扩展的CAN总线,称为bxCAN(Basic Extended CAN),它支持CAN协议2.0A和2.0B。它的设计目标是以最小的CPU负荷来高效处理大量收到的报文,也支持报文发送的优先级要求(优先级特性可软件配置)。本文主要研究STM32F107VCT6芯片的bxCAN总线使用技术。

1 bxCAN总线端口配置

STM32F107VCT6芯片的bxCAN有2路CAN总线通道,分别是CAN0和CAN1,每个CAN通道都有一个发送端TX和一个接收端RX。CAN1RX和CAN1TX位于芯片的GPIO引脚PD0和PD1上,CAN2RX和CAN2 TX位于芯片的GPIO引脚PB5和PB6上。STM32F107VCT6芯片的GPIO端口具有多种复用功能,要想正常使用bxCAN的功能,须首先对总线端口进行配置,主要步骤如下:

(1)RCC初始化

由于节能的需要,在系统加电复位时GPIO引脚是不工作的,所以要想正常使用CAN总线,必须配置复位时钟控制RCC,给引脚加电。配置代码如下:

(2)GPIO初始化

对bxCAN对应的GPIO引脚进行初始化,主要是配置GPIOD的引脚、输入输出状态、数据速率等,之后还要进行重映射。以CAN1的初始化为例,配置代码如下:GPIO_InitTypeDef GPIO_InitStructure;

(3)NVIC初始化

如果使用CAN总线中断,还要配置嵌套向量中断控制器NVIC。……

登录APP查看全文