工控网首页
>

应用设计

>

基于ARM处理器的CAN节点设计

基于ARM处理器的CAN节点设计

2006/6/8 9:20:00
摘要: 针对传统CAN节点处理能力和资源的局限性,本文提出了一种基于高性能处理器ARM的CAN节点设计,给出了系统整体结构, 介绍了其硬件组成原理及软件设计方法。在实际应用中,该系统结构合理、性能可靠, 提高了单个节点的处理能力。 关键词: 工业控制;CAN;ARM Key Words: Industrial Control;CAN;ARM Abstract: According to the processing ability and resources limit of tranditional CAN node,This article puts forward a kind of CAN node design based on the high performance processor ARM, gives whole structure of system, introduces its hardware principle and the software design.In actual application, the systems structure is reasonable and dependable. The node’s processing ability is improved obviously。   多主对等系统,支持竞争的CAN现场总线,由于其开放的体系结构和良好的性能,已成为最有前途的现场总线之一,广泛地应用于各种工业控制领域。在实际应用中我们发现,许多现场采集的数据,需要进行实时的处理。在某些处理数据大、实时性要求高的场合,传统的基于低端8位处理器的节点,很难满足要求。本文提出了基于ARM7处理器AT91SAM7S64和MCP2510 CAN控制器的节点设计方案。该方案在提高单个节点的处理能力的同时,由于采用了SPI总线接口的MCP2510 CAN控制器,简化了节点的接口设计,降低了软件设计难度。在实际应用中,表现出良好的性能和稳定性,得到广泛的应用。 1.系统硬件结构   本文所介绍的CAN总线系统节点,采用ARM处理器 AT91SAM7S64作为节点的微处理器,在CAN总线通讯接口中,CAN通信控制器采用MCP2510。处理器通过SPI接口对CAN控制器进行访问。实现对MCP2510的初始化、读/写等操作。图1为CAN模块原理图。
1.1 带有SPI接口的独立CAN控制器MCP2510介绍   Microchip Technology Inc.(美国微芯科技有限公司)生产的 MCP2510 是一款控制器局域网络(CAN)协议制器,完全支 CAN 总线 V2.0A/B 技术规范。该器件支持 CAN1.2、 CAN2.0A、主动和被动 CAN2.0B 等版本具备验收过滤以及报文管理功能。该器件包含三个发送缓冲器和两个接收缓冲器,减少了单片机(MCU)管理负担。MCU 的通讯是通过行业标准串行外设接口(SPI)来实现的,其数据传输速率高达 5Mb/s。MCP2510 是一款独立CAN控制器,是为简化连接CAN   总线的应用而开发的。图 2 简要显示了 MCP2510 的结构框图。该器件主要由三个部分组成: 1.CAN 协议引擎。 2. 用来为器件及其运行进行配置的控制逻辑和SRAM 寄存器。 3.SPI协议模块。
图2图2 MCP2510 的结构框图
  CAN 协议引擎的功能是处理所有总线上的报文发送和接收。报文发送时,首先将报文装载到正确的报文缓冲器和控制寄存器中。利用控制寄存器位,通过 SPI接口或使用发送使能引脚均可启动发送操作。通过读取相应的寄存器可以检查通信状态和错误。 任何在 CAN 总线上侦测到的报文都会进行错误检测,然后与用户定义的滤波器进行匹配,以确定是否将其转移到两个接收缓冲器之一中。MCU通过SPI接口与器件进行通信。通过使用标准SPI读写命令对寄存器所有读写操作。 所提供的中断引脚提高了系统的灵活性。器件上有一个多用途中断引脚,以及各接收缓冲器专用的中断引脚,可用于指示有效报文是否被接收和载入各接收缓冲器。是否使用专用中断引脚由用户决定,若不使用,也可用通用中断引脚和状态寄存器(通过SPI接口访问)确定有效报文是否已被接收。器件还有三个引脚,用来将装载在三个发送缓冲器之一中的报文立即发送出去。是否使用这些引脚由用户决定,若不使用,也可通过SPI接口访问控制寄存器的方式来启动报文发送。   和其他的CAN控制器相比,MCP2510采用简单、高速的SPI接口,速度可达5Mb/s,很大程度上降低了接口硬件设计难度和成本。同时,也降低了底层软件驱动编写的复杂程度,缩短了开发周期。 此外,由于MCP2510的输出信号驱动能力不够,而且与CAN总线物理接口的要求存在很大的差异,所以,在实际应用中必须使用CAN收发器(如82c251等),它可支持的CAN速率最高可达1Mbps,而且容错能力很强。此外,它内部还有很强的保护电路,可以防止总线的其它节点对它的影响。 1.2 AT91SAM7S64介绍   AT91SAM7S64是Atmel 32位ARM RISC 处理器小引脚Flash微处理器家族的一员。它拥有64K 字节的高速Flash和16K 字节的SRAM, 丰富的外设资源,包括一个高速的串行外设接口SPI,使外部器件数目减至最低的完整系统功能集。   很多应用中,由于CAN节点处理器的运算能力和资源限制,需要将数据发送到中央控制台,由中央控制系统对采集的数据进行分析、处理。数据量大,实时性强,是工业现场数据采集的特点。为了保证控制的实时性,提高节点处理器的能力和资源很多时候是必须的。同时,提高节点的处理能力和系统资源,也分担了中央控制系统的管理任务,提升整个控制系统的性能。 2. 软件系统结构   在进行本系统节点的软件设计前,首先简要说明一下MCP2510的指令格式,MCP2510的5条指令如表1所列。
表1表1 MCP2510指令格式
  在使用时,可以把这些指令直接编写成函数形式,这样可使程序简练易读。同时,发送请求的硬件触发只需把TXnRTS置低即可。实际上,接收缓存收到信息后也能产生硬件触发,并在TXnRTS引脚产生低电平输出。 本设计的主程序流程图如图3所示。
图3图3 测试模式主程序流程图
  上电复位后,AT91SAM7S64首先完成自身外围模块的初始化,其任务主要是选择时钟模块中的时钟、SPI模式初始化、以及对看门狗定时器的配置等;然后对AT91SAM7S64进行初始化,以对寄存器进行设置。需要注意的是,MCP2510只有在配置模式下才可以对控制参数进行配置,但它在复位以后就是配置模式。 测试时可将MCP2510配制到环回模式,然后AT91SAM7S64将写数据到MCP2510的发送缓存并控制其发送,此后,在接收缓存收到数据后,INT引脚将产生低电平中断以通知AT91SAM7S64,AT91SAM7S64响应中断后将读取数据,并和发送的数据进行比较,以验证程序的可行性。需要注意的是,无论是对MCP2510的读还是写,都必须使它的CS引脚处于低电平。   在实际应用中,AT91SAM7S64和MCP2510都可以进入睡眠模式,并可以由中断来激活。整个节点的主要功能均由中断子程序来完成,其中的一部分是AT91SAM7S64自身的中断(看门狗定时器溢出中断、SPI接收发送中断、ADC中断等),另一部分是MCP2510引起的中断,这部分中断资源十分丰富,包括信息接收发送中断、信息错误中断、总线激活中断等。它产生的所有中断都能使INT引脚为低电平, 单片机在检测到这些中断后,将通过SPI接口读取MCP2510内部的中断标志寄存器以判断是何中断,然后再进行进一步处理。   结束语:随着工业控制网络技术的发展,CAN总线凭着其优良的特性,得到广泛的应用。本文针对,实际工程中所碰到的问题, 提出了基于ARM处理器AT91SAM7S64和CAN控制器MCP2510的节点设计方案。本方案提高了节点处理能力,简化了硬件和软件设计,取得了很好的实际效果。 参考文献: [1] 杜春雷.ARM体系结构与编程.北京[M]:清华大学出版社,2003 [2] 邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,1996. [3] 武翠琴,杨金岩,李艾华.CAN控制器MCP2510及其应用[J]. 国外电子元器件,2001(10) 48~50
投诉建议

提交

查看更多评论
其他资讯

查看更多

助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案

车规MOSFET技术确保功率开关管的可靠性和强电流处理能力

未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?

2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会

2023钢铁展洽会4月全新起航 将在日照触发更多商机