基于C8O51FO4O的CAN总线中继器设计与实现
0 引言
20世纪80年代初,德国BOSCH公司提出了控制器局域网(Controller Area Network,CAN)来解决汽车内部的信号传输问题。由于CAN总线优良的稳定性和实时性能、成熟的仲裁和同步技术,加上开放式总线结构、短报文高速通讯、远程通讯能力、硬件CRC超强的纠错和扩展功能,以及控制简单、应用成本低等优点,已经被越来越多地应用到分布式远程自动控制、安全监控及电力系统等网络控制系统领域,并被公认为最有前途的现场总线技术之一。
中继器是网络物理层的一种介质连接设备,可以将同一层的两段网络进行互连,也可以实现上下层不同总线的互连,起到网桥和网关的作用。在大中型远程的CAN总线系统中经常会使用到中继器,主要用于监测点众多和测点分布距离远的场合。拉西瓦水电站工程为I等大(1)型工程,枢纽安全监测的测点、仪器设备、测站多,监测系统覆盖面大(10×lOkm),测量设备之间距离差异较大,距离主控制室较远(长达5km),为了提高通信网络的抗干扰性并保证适当高的通信速率,需要在网络中加中继器,以对通信链路中的信号加以放大,并对数据报文进行路由和转发。本文提出了一种CAN网络用中继器的设计和实现。
1 系统硬件选型
CAN中继器是CAN总线系统的关键设备之一,要使中继器拥有很好的可靠性,对其MCU的要求也相对较高。我们选择了Silicon Laboratories公司的C805lF040(以下简称F040)单片机作为中继器的MCU。
F040内集成了完全支持CAN2.0A和CAN2.0B的CAN控制器,独立的消息RAM可以处理32条消息对象,每个消息对象都可以进行发送和接收滤波,最高工作速率达到lMbps,能够完成CAN总线协议数据链路层和应用层的所有功能;其中CAN总线的竞争处理、MCU接口、同步、数据的一贯性以及连续性保证,都是由硬件来解决,MCU因此得以腾出大量的时间来处理测量数据和控制命令,从而提高整个系统的实时性。
F040还具有增强型串行外设接口(SPI)提供了访问灵活的全双工串行总线,为中继器之间交换数据提供了良好的接口。SPI可以作为主器件或从器件,有3线工作方式和4线工作方式,并支持在同一总线上连接多个主器件和从器件。而且在多主环境中禁止主器件方式操作,以避免两个以上主器件试图同时进行数据传输时产生冲突。此外,F040还有大量的存储空间一64kB的片内F1ash和4K+256B的内部RAM,以及外部64kB数据存储器接口,完全满足系统通讯和缓存数据空间的要求。
2 中继器系统硬件结构
CAN总线中继器需要完成将一端的总线上数据完整地传输到另一个MCU所负责的CAN总线上。本文采用易于控制数据流量,处理速度快,功能扩展性好的双MCU的方案,如图1所示。本文中继器设计的主要思想是采用两个F040组成中继系统,利用F040的SPI进行多主通讯,进行互传数据。两个F040的CAN作为连接两边总线。其中,与上面0总线联接的F040的CANO的ID按照模块编号设计;与下面1总线连接的F040的CANl的ID设为0号编号,作为该总线的根模块。
相关文章
- 2023-11-22基于图像识别的精密露点仪
- 2022-11-15基于V80系列PLC的制袋封切机控制系统
- 2023-08-10基于落锤实验机和虚拟仪器的微加速度计性能测试与分析
- 2021-11-16嵌入式主板在医用B超诊断仪中的应用
- 2022-07-04金属波纹管膨胀节某些构件设计问题讨论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。