基于AT91RM9200的CAN智能节点设计 2011-04-26 09:26:58来源:互联网
近年来工业测控系统从传统的集中测量控制系统转向网络化的集散控制系统。随着现场总线技术高速发展和标准化程度的不断提高,以现场总线技术为基础的开放型集散测控系统得到广泛应用。总线是控制器局域网(controller area network,CAN)属于现场总线范畴,是一种能有效支持分布式控制的串行通信网络,可将挂接在现场总线上作为网络节点的智能设备连接成网络系统,并进一步构成集散测控系统。CAN智能节点位于传感器和执行机构所在的现场,在集散控制系统中起着承上启下的作用。一方面,它必须和上位机进行通信,以完成数据交换;另一方面,它根据系统的需要以完成测量与控制的功能。因此,CAN智能节点的设计在工业集散测控系统中有着十分重要的作用。本文将提出一种基于ARM9处理器AT91RM9200和CAN控制器MCP25lO构建的CAN智能节点的设计方案,并介绍了该方案的软硬件设计及调试方法。
1 硬件设计
CAN智能节点的设计涉及2个方面:需要实现的功能;如何实现CAN通信。因此本文基于AT91RM9200和MCP2510提出的CAN智能节点的设计框架如图1所示。在此首先介绍主要芯片的特性,然后再说明智能节点的设计原理。
点击看大图
点击看大图
1.1 芯片特性
AT91RM9200是Atmel公司生产的一款ARM9处理器,它是完全围绕ARM920T ARM Thumb处理器构建的系统。它有丰富的系统与应用外设及标准的接口,从而为低功耗、低成本、高性能的计算机宽范围应用提供一个单片解决方案。
MCP2510是由美国微芯科技有限公司(MicrochipTechnology Inc.)生产的一款带SPI接口的CAN协议控制器,完全支持CAN总线V2.0A/B技术规范;能够发送和接收标准和扩展报文,通信速率最高可达1 Mb/s,同时具备验收过滤以及报文管理功能;通过SPI接口与MCU进行通信,最高数据传输速率高达5 Mb/s;包含3个发送缓冲器和2个接收缓冲器,还具有灵活的中断管理能力。所有这些特点使得MCU对CAN总线的操作变得非常简单。PCA82C250是由Philips半导体公司生产的一款CAN收发器,是CAN协议控制器和物理传输线路之间的接口。它可以用高
达l Mb/s的位速率在2条有差动电压的总线电缆上传输数据。
1.2 设计原理
本文将CAN智能节点需要实现的功能统称为功能模块。由于AT91RM9200处理器具有丰富的系统与应用外设及标准的接口,因此根据应用的需要很容易就可实现功能模块的扩展。本文着重说明AT91RM9200处理器如何实现CAN总线的扩展。
AT91RM9200处理器提供4个SPI接口。其中MOSI(主机输出从机输入)、MISO(主机输入从机输出)、SPCK(串行时钟)3个引脚信号由4个SPI接口共用;而4个片选信号NPCSO,NPCSl,NPCS2,NPCS3则用于分别选通4个SPI接口。而CAN控制器MCP2510的SPI接口引脚定义:SI(数据输入)、SO(数据输出)、SCK(时钟输入)、CS(片选输入)。该设计将AT91RM9200第二个SPI接口与MCP2510的SPI接口相连(MOSI←→SI,MIS0←→SO,SPCK←→SCK,NPCSl←→CS),从而建立了它们之间通信的桥梁。同时将MCP2510芯片的中断输出引脚INT与AT91RM9200芯片的中断输入引脚IRQ5相连,从而可将MCP2510芯片产生的中断(包括发送、接收、报文错误、总线活动唤醒、错误等中断)事件通知AT91RM9200处理器,让其作出相应的处理。
CAN控制器MCP2510可以通过串行数据发送引脚(TXCAN)和串行数据接收引脚(RXCAN)直接连接到CAN收发器PCA82C250。该设计为了实现MC-P2510与PCA82C250之间的电流隔离,在它们之间放置了2个光耦。然而,在协议控制器和收发器之间使用光耦,通常会增加总线节点的循环延迟。光耦6N137的典型传播延时为60 ns,比较适合传输速率小于等于125 Kb/s时的中低速应用场合;而在传输速率在125 Kb/s~1 Mb/s的高速应用场合中,应考虑使用传播延时小于40 ns的高速光耦,如HCPL-7101。
CAN收发器PCA82C250通过有差动发送和接收功能的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接收数据。
评论排行