CAN总线最早是德国的BOSCH公司为解决汽车的监测,控制系统而设计的。简单介绍了CAN总线的特点与构成。详细介绍了主节点的工作过程和从节点硬件接口电路的搭建方法,并通过对微处理器的软件编程,实现了CAN总线网络的实时通信。整个节点通信系统工作稳定,可以满足现场环境要求。本文重点就模拟量输入模块和开关量输入模块的设计,采用具有CAN接口的C8051F550单片机作为系统设计的从节点,用来采集模拟量和开关量,实现与上位机中央控制器的通信。
1 CAN总线通信网络系统
如图1所示,本设计中通过带有终端器(120欧电阻)的通信介质(双绞线)将上位机和底层模块连接起来。实验中,终端电阻和双绞线阻抗的匹配确保了数据信号不会在总线的两端反射。上位机(主节点)采用USB—CAN接口适配器(型号GYB507),使PC机直接通过USB接口就可连入CAN总线网络,成为一个标准的CAN节点。配合总线通信测试软件CANtool的使用,可直接配置PC机的发送与接收状态,通信速率和报文滤波功能等。同时,还可实时监测显示网络中各从节点与PC机的数据通信,应用简单、方便。
2 智能节点硬件设计
传统的从节点设计是将CPU与CAN总线控制器和总线收发器相连后再连入总线网络,这样使CPU外围电路复杂化,整个系统受外部影响较大。为了解决这一问题,很多单片机厂商都将CAN控制器集成在单片机上。本文中选用C8051F550该单片机,它是内部集成的CAN控制器,完全按照BoshchCAN全功能的CAN模块实现,符合CAN2.0B协议,工作位速率可达1Mpbs。控制器包含有一个CAN内核,消息缓冲区,报文处理状态机和CAN控制寄存器。通信控制器有32个消息对象,可以配置为发送或接收数据。输入数据,消息对象及其标识符存储在CAN消息缓冲区中,能实现CAN协议的数据链路层的全部功能及物理层大部分功能。CIP-51CPU可通过特殊功能寄存器直接或间接访问CAN控制寄存器(CANOCN),测试寄存器(CANOTST)和状态寄存器(CANOSTA)。所有其它寄存器只能通过CANOADR,CANODATH和CANOTAL寄存器以地址索引方式间接访问。
CAN总线的驱动器采用隔离CAN总线收发器CTM1050,通信速率1Mbps,至少可连接110个节点。内部集成的电气输入级隔离电路,可隔离高达2 500V的直流电压。输入级兼容3.3V和5V的CAN控制器,输出级驱动具有温度保护,内部TVS管可防止总线过压功能。与传统的PCA82C250总线收发器相比,主要优点是无需外加光耦可直接使用,外围电路简单,安全,可满足工业现场恶劣条件的使用。图2所示为C805117550与CTM1050的接口电路。
[page]
3 智能节点软件设计
图1中三个节点与上位机的通信方式采用的是节点1、3与上位机实现点对点通信工作方式。节点1、3的微处理器C8051F550上电复位后,自动采集模拟电压信号,通过C8051F550内部集成的12位A/D转换,将数字量发送到上位机。上位机实时进行数据监控,如果收到的数据出现错误,可以通过CANtool软件,发送自定义的错误数据标识给两个节点,两节点收到该数据后,停止A/D采样工作。节点1、3与节点2是主从工作方式。当节点2的开关量有按键按下时,1、3节点将实时采集到的数据在发送给节点2,并在节点2的LCD上显示。
3.1 初始化CAN控制器
C8051F550上电复位后,控制寄存器CANOCN的INIT位和CCE位置‘1’。允许寄存器初始化并写入设置信息。需要写入的寄存器主要包括位定时寄存器和扩展寄存器,命令掩码寄存器。主要完成时序参数的配置和消息对象的初始化。本设计中,使用晶振频率为11.05MHz,位定时设置为996.65~1000ns。初始化程序如下:
3.2 CAN中断服务程序
C8051F550的CAN支持的中断方式有状态中断和模块中断。状态中断方式是在报文成功传输或检测到CAN总线出错时发生的。模块中断也称消息中断。CAN控制器允许用户按需求配置消息对象成为中断源。通过设置消息控制寄存器的中断悬挂位可实现此功能。在CAN中断寄存器中以最高优先级来指向这些挂起的中断,而不考虑时序。状态中断有最高优先级,读取状态寄存器会自动清除状态中断值(8000h)。消息中断优先级是随消息编号的增加而减小。消息中断是由清除消息对象的INTPND位来清除的。中断服务流程图如图3所示。
4 结束语
本系统的总线通信网络已实现三个节点与上位机的连调,系统软件采用结构化程序设计方案,使其具有较好的模块化和可移植性,对于不同的系统功能或不同的应用环境,可以方便地进行编程重组。
本文设计的CAN总线通信网络中的主从智能节点经过试验调试,硬件电路工作正常,在总线数据采集系统中抗干扰能力强。软件部分实时性强,准确率高。从节点可以实时地将信息传送给主节点,以便主节点实时监控。整个节点通信系统工作稳定,可以满足现场环境要求。
在设计过程中,认识到目前基于CAN2.0B协议的CAN控制器无法为实时和非实时性数据动态分配优先权,基于事件触发模式的访问机制无法满足众多节点的实时访问。
关键字:C8051F550 CAN总线 智能节点
引用地址:
基于C8051F550的CAN总线智能节点的设计
推荐阅读最新更新时间:2024-03-16 12:39
基于CAN总线的模块化独立光伏发电控制系统
引言
随着能源日益紧缺和环保压力不断增大,光伏发电技术以其资源丰富、清洁环保、受地域限制小等优点,越来越受到人们的重视。根据对现有光伏发电系统的调查分析,储能蓄电池的使用寿命是导致系统故障和失效的重要因素之一。传统的独立光伏发电系统一般采用单个充电控制器控制太阳能电池板对蓄电池进行充电。该方法基本能够满足小容量蓄电池的要求,但不能胜任大容量蓄电池或蓄电池组。大容量的蓄电池或蓄电池组充电时需要的充电电流较大,充电过程中充电控制器投入/切出充电频繁,对蓄电池冲击较大,易损坏蓄电池。当前,大容量蓄电池和蓄电池组正被逐渐广泛使用,因此,需要更加有效、可靠的充电控制方案。CAN总线有组态灵活、结构简单、可靠性高、通信速度快等特点
[嵌入式]
嵌入式WinCE中CAN总线控制器的驱动设计与实现
引 言 近年来,由于消费电子、计算机、通信(3c)一体化趋势日趋明显,嵌入式系统再度成为研究和应用的热点。嵌入式操作系统(:Real-time Embedded OperatingSystem,RTOs或EOs)作为一种实时的、支持嵌入式系统应用的操作系统软件,成为嵌入式系统(包括硬、软件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器Browser等。Windows CE操作系统就是微软公司从整体上为有限资源平台设计的多线程、完整优先权、多任务的操作系统Win CE支持各种处理器产品家族,包括x86,Xscale,ARM,MIPS和SH系列。它的模块化
[单片机]
基于CANScope-Pro总线分析仪
CAN总线设计规范对于CAN节点的输出电压有着严格的规定,单个节点的输出电压如果不符合规范,则在现场组网后容易出现信号电平不可靠的情况,导致错误帧的出现,各节点间无法进行通信。具体要求如表1所示,为测试标准 ISO 11898-2输出电压标准 。 表 1 ISO 11898-2输出电压标准 所以每个厂家在产品投入使用前,都要测试CAN节点DUT(被测设备)的输出电压幅值。一般是使用ISO 11989-2输出电压标准的CAN测试方法,如下描述: 如表1所示负载条件下,选择被测DUT的适应条件,如图 1所示,Rtest为网络负载电阻,正常为60 ,高负载时为45 。测量绝对和差分电压等级和CANL CANH线电压: V
[测试测量]
P80C592芯片在基于CAN总线显示通信模块中应用
摘要:PHILIPS公司的P80C592芯片是P8X592的无片内ROM版本,该芯片是现有P8XC522和Philips CAN控制器PCA82C200的功能相结合的产物。文中介绍了P80C592在开发基于CAN总线的显示通信模块中的应用方法。
关键词:CAN总线 显示通信模块 P80C592
1 P80C592芯片简介
P80C592是PHILIPS公司采用先进的COMS工艺制造的高性能8位单片机。该单片机的指令集与80C51 完全兼容,但在80C51标准特性的基础上又增加了一些对于应用具有重要作用的硬件功能。P80C592是P8XC592的无片内ROM版本,是现有P8XC522和Philips CAN控制器PCA82C2
[应用]
今天的CAN总线还有什么不能做的?
本文作者:Microchip的Tim Bresien CAN总线(Controller Area Network)上世纪90年代初建立时并不起眼,但它已经从汽车和工业应用基础扩展到连接和互连众多其他行业的控制系统。 在传统汽车中,线路系统是十分令人可畏的,电线、数据线和纵横交错的控制线束,使得车辆很难进行维修,然而尽管有如此众多的线束,老式汽车的电子功能却很少很少。 当时,第一款采用CAN网络方式实现车内连接的汽车即将下线。这一独特的事件将简化汽车布线,并为难以置信的先进车辆通信铺平道路。它将启动一系列网络里程碑,并在汽车制造商中迅速达到巅峰。早在商业互联网、智能手机或数字媒体出现之前,CAN总线的引入重新定义了车内通
[汽车电子]
基于DSPIC30F3013的CAN总线数据采集系统方案
引言 在工业控制中,为了保证系统的可靠运行,需要检测周围的环境变量(如温度、气压、湿度等)。通常的做法是将分布在各处的传感器采集到的信号通过各自的线路连接到监控中心,这种方式在有效地完成检测任务的同时也造成了线路资源的极大浪费。因此,提出了简化线路布局的要求。CAN(控制器局域网)是串行通信协议,能有效支持高安全等级的分布实时控制,同时在理论上,CAN总线网络内的节点近乎没有限制。基于此,本设计将一种基于数字信号控制器的CAN总线数据采集系统作为一个CAN节点,每一个需要监控的区域放置一个CAN节点,各个节点通过CAN总线与监控中心实施通信。系统总体框图如图1所示。 1 硬件构成 该数据采集系统由两部分构
[模拟电子]
在S3C44B0上的μCOS-II中实现CAN总线智能节点
在系统越来越复杂,功能越来越强大的今天,嵌入式系统的设计中采用实时多任务操作系统已经成为嵌入式应用设计的主流。μCOS-II是一个开源嵌入式实时操作系统(Real TIme OperaTIng System, RTOS),它已经被成功移植到各种CPU上。但是基于μCOS-II的应用软件需要在移植操作系统后自行完成。模块化的应用程序设计可以使得嵌入式设计变得更加方便,产品的开发更加迅速。S3C44B0是三星公司生产的一种ARM7芯片,性能强大,在通用嵌入式设计中运用广泛。CAN总线(Control Area Network)是一种有效支持分布式控制和实时控制的现场总线,由于其高性能和高可靠性,CAN总线的应用范围广布过程工业、机器人
[单片机]
基于ARM和CAN总线的嵌入式PLC设计
0 前言 可编程逻辑控制器(PLC),一种数字运算操作的电子系统,专为在工业环境应用而设计。它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令,并通过数字或模拟输入/输出控制各种类型的机械或生产过程,是工业控制的核心部分。随着工业技术的发展以及规模的不断扩大,传统的PLC面临着IO点数增多、通讯功能需要增强等诸多方面的挑战,已无法满足个性化、差异化的需求。 现有的设计主要有工控机、单片机板等。工控机在互连、表达、算法等方面优势明显,但其实时性、稳定性难以满足连续控制的苛刻要求,通常用于监控。单片机系统在成本控制上更加灵活,可是没有操作系统使其只能应用于低端场合。具有嵌入式
[单片机]