关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于AT91RM9200的CAN智能节点设计

基于AT91RM9200的CAN智能节点设计

作者: 时间:2010-08-13 来源:网络 收藏

控制器MCP2510可以通过串行数据发送引脚(TX)和串行数据接收引脚(RX)直接连接到CANPCA82C250。该为了实现MC-P2510与PCA82C250之间的电流隔离,在它们之间放置了2个光耦。然而,在协议控制器和之间使用光耦,通常会增加总线的循环延迟。光耦6N137的典型传播延时为60 ns,比较适合传输速率小于等于125 Kb/s时的中低速应用场合;而在传输速率在125 Kb/s~1 Mb/s的高速应用场合中,应考虑使用传播延时小于40 ns的高速光耦,如HCPL-7101。
CANPCA82C250通过有差动发送和接收功能的2个总线终端CANH和CANL连接到总线电缆。PCA82C250的输入引脚Rs通过外接电阻Rext到地,可以选择3种不同的工作模式。第1种是高速模式,支持最大的总线速度和/或长度;第2种是斜率模式,其输出转换速度可故意降低以减少电磁辐射;第3种是准备模式,其在电池供电并对功耗消耗非常低的应用非常适合。该将PCA82C250的引脚RS外接阻值为47 kΩ的电阻,从而使它工作在斜率模式,这样可以使用非屏蔽的总线电缆,降低系统的成本。但总线信号转换速率被故意减低了,因此该只能应用在传输速率小于等于125 Kb/s时的中低速应用场合,相应光耦选择6N137即可。

2 软件设计
CAN软件设计主要包括2个方面:CAN通信和CAN功能模块的软件设计。CAN节点功能模块软件的实现因需求而异,在此不做介绍。本文着重介绍CAN通信软件的设计,它主要由3部分组成:CAN初始化、CAN发送数据、CAN接收数据。
2.1 CAN初始化
由图2(a)可知,CAN初始化主要包括PIOA端口初始化、SPI初始化、MCP2510初始化、中断初始化。

本文引用地址://m.amcfsurvey.com/article/162936.htm


现分别介绍如下:
(1)PIOA端口初始化。由于每个引脚可配置为通用功能I/O线或与1个或2个外设I/O复用的I/O线。因此必须通过软件配置PIOA端口:将PA0,PAl,PA2,PA4引脚分别定义为MISO,MOSI,SPCK,NPCSl,从而完成CAN节点SPI接口的定义;将PA3引脚定义为IRQ5,从而完成CAN节点中断信号的定义。
(2)SPI初始化。通过PIOA端口初始化,只是完成SPI接口的引脚定义。为了使SPI接口能够正常工作,首先配置电源管理控制器(PMC)以使能SPI时钟;如果允许SPI中断请求,必须对高级中断控制器(AIC)进行配置;最后通过SPI的模式寄存器SPI_MR。指定SPI为主机模式、固定外设选择、SPI时钟为MCK、片选信号NPCSl有效;通过SPI的片选1寄存器SPI_CSRl指定SPCK时钟极性、时钟相位以支持MCP2510的(O,O)或(1,1)的SPI模式,指定SPI接口以8位数据进行传输匹配MCP2510的命令及数据格式,指定SPI的串行时钟波特率以匹配与MCP2510的通信。
(3)MCP2510初始化。在完成PIOA端口、SPI初始化的基础上,即可按照图2(a)虚线框中的流程进行MCP2510初始化:首先必须使MCP2510进入配置模式;然后对MCP2510相关寄存器(位定时配置寄存器、接收滤波寄存器、接收屏蔽寄存器、引脚控制和状态寄存器)进行配置;最后使MCP2510进入正常模式。根据MCP2510提供的SPI命令集(读指令、写指令、请求发送指令、状态读指令、位修改指令、复位指令),可以通过对
的SPI接收数据寄存器SPI_RDR,SPI发送数据寄存器SPI_TDR,SPI状态寄存器SPI_SR的操作实现相应的函数:McpRdByte(),Mcp-WrByte(),WriteRTS(),McpRdStatus(),BitModify(),McpReset()。软件通过这些基本的指令函数完成MCP2510相关寄存器的配置。
(4)中断初始化。通过的高级中断控制器(AIC),首先配置IRQ5中断的优先级为最高,中断触发类型为下降沿触发;接着将中断服务程序IRQ5_ISR()的地址设置到中断向量寄存器;最后使能IRQ5中断。



评论


相关推荐

技术专区

关闭