基于C8051F500的CAN总线通信系统的节点设计
2011-08-07吴志玲靳鸿冯彦君
吴志玲,靳鸿,冯彦君
(中北大学电子测试技术重点实验室,仪器科学与动态测试教育部重点实验室,山西太原030051)
0 引言
CAN( Controller area network),即控制器局域网,是目前国际上应用最广泛的现场总线之一。CAN为串行通信协议,能有效的支持具有很高安全等级的分布式实时控制系统。CAN的应用范围极其广泛,从高速的网络到低价位的多路接线都可以使用CAN。在汽车电子行业里,使用CAN连接发动机控制单元、传感器、刹车系统、电子系统等,其传输速率可达1Mbps。CAN 总线因传输时间短, 受干扰的概率低, 保证了通信的实时性。另外, CAN 总线[1]可对错误来源进行正确的定位, 将永久的硬件错误从软件错误中独立出来, 其协议采用CRC 检验并可提供相应的错误处理能力, 同时保证了数据通信的可靠性。
Silicon Lab公司的C8051F500单片机内部集成了CAN控制器[2],符合Bosch规范2.0A(基本CAN)和2.0B[3](全功能CAN),方便了CAN网络通信系统的设计。由于C8051F500的高集成度,只需少量外围测量电路便可组成集数据采集、控制和通信功能于一体的单片机系统,同时还可提高系统的整体可靠性。另外,C8051F500内核与普通51系列兼容,且指令简单易学,因此,可缩短系统研发周期。
1 硬件描述
1.1 系统整体结构
CAN功能节点硬件分布原理图如图1所示。

图1 CAN功能节点组成原理图
1.2 C8051F500 单片机
Silicon Lab公司推出的C8051F500是完全集成的混合信号片上系统型MCU。
该单片机内部集成了CAN控制器,其与收发模块(CTM1050)共同构成CAN节点模块。其中CAN控制器包括CAN核、消息存储器、消息处理器和控制寄存器[4]。由于其MCU无法直接访问消息RAM,因此有两组位于控制寄存器的接口寄存器被用来控制CPU对消息RAM的访问。……
