微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CAN现场总线在智能配电系统中的应用

CAN现场总线在智能配电系统中的应用

时间:12-13 来源:互联网 点击:
  引言

本文为计算机机房开发的智能配电系统iPDS(Intelligent Power Distribution System)很好地满足了以上要求,具有智能化和人性化两大特点。本系统采用CAN总线进行数据的交互传递,很好地满足了系统可靠性、实时性及成本方面的要求。

系统设计

本智能系统对机房内各路电源的电流、漏电流、零地电压、自动空气断路器的运行状态等信息进行实时监测、显示,具有实时报警、详细记录等功能,并可以根据用户要求灵活地配置各路监测信息。可以在显示屏上查询机房各路电源的使用情况,尽早发现和消除隐患,实时处理故障,进一步提高了系统的可靠性。

本系统由数据处理单元、数据采集节点、LED显示节点、触摸屏等组成,具体系统结构如图1所示。

图1 智能配电系统结构图

整个系统结构复杂,功能完善,触摸屏通过RS-485与数据处理单元相连,数据处理单元、数据采集节点和LED显示节点都挂接在CAN总线上,各组成部分提供不同的功能:

1. 数据处理单元有两个CPU,单片机AT89C58和P87C591,二者通过双口RAM进行数据交换,其中AT89C58与触摸屏通过RS-485通信,处理触摸屏上的显示和设置信息,P87C591处理CAN总线上的交互信息。

2. 触摸屏是系统的主界面,用于设置系统的配置信息,显示当前各路的电流、漏电流、零地电压和自动空气断路器的状态等,并可以查看历史报警记录。

3. 数据采集节点采集各路模拟量和开关量信息,通过CAN总线传输,以供数据处理单元处理。

4. LED显示节点主要显示当前各路的模拟量和开关量的报警信息,便于用户查看,使系统更加人性化。

  CAN总线硬件设计

P87C591简介

在系统中,采用Philips公司生产的P87C591单片机,该单片机是一个8位高性能微控制器,具有片内CAN控制器,大大简化了硬件电路的设计,提高了CAN接口的稳定性。

P87C591采用了强大的80C51指令集,并集成了SJA1000 CAN控制器的PeliCAN功能。

P87C591连接的CAN节点电路设计比较简单,所需的外部元件只是一个晶振加两个电容驱动片内震荡器、一个连接到复位脚的电阻、电容。使用片内上电复位电路以及一个收发器将P87C591连接到CAN总线上。

CAN总线通信过程及标识符的分配

本系统对实时性要求高,数据传输量大,数据采集节点采集的信息应快速上传到数据处理单元,以便及时处理,数据处理单元将触摸屏上的设置信息实时传递给数据采集单元;数据处理单元处理完采集的信息后,将当前的系统状态及时地在LED显示节点上显示出来,并指挥继电器动作。

整个CAN总线系统采用CAN2.0B通讯协议,采用标准帧格式、11位标识符来区分CAN总线上的节点。数据处理单元是CAN总线上最重要的节点,控制整个总线上数据的传输和处理,优先级最高,其次是数据采集节点,它是数据的来源,实时采集传递数据,再次是LED显示节点。

考虑到系统的扩展问题,预留了一部分标识符,根据用户要求可以增加、减少数据采集节点和LED显示节点,而不影响系统的优先级设计。

CAN总线软件设计

数据处理单元是CAN总线上优先级最高的节点,控制着整个总线上的数据传输流程,其软件设计主要包括两大部分,即通信网络的应用层协议和功能实现的流程和编码。

软件功能分析及系统初始化设计

P87C591主要完成数据的处理与传输,通过CAN总线接收数据采集节点采集来的各路模拟量和开关量信息,整理后按协议存储到双口RAM中,并根据处理结果给LED显示节点发送信息。主程序查询双口RAM中数据采集节点的设置信息,实时地传送信息给数据采集节点,并向其发送远程帧,请求模拟量和开关量信息的传送,这样避免了多个数据采集节点同时上传采集的信息,有效地防止了接收溢出和数据丢失,接收到采集的各路信息后,处理并存储到双口RAM中、发送给LED节点。

在程序设计中,初始化程序是系统设计工作中极为重要的部分,它是系统能否正常工作的前提。因此,初始化设计是一个重点,在系统初始化过程中要进行双口RAM的初始化,打开看门狗,设置中断优先级,初始化CAN控制器和I/O口,打开总中断等操作,以保证系统正常稳定地工作。

CAN通信程序设计

CAN通信软件主要由以下几部分组成:初始化、接收处理、发送处理、中断处理及错误处理。本文重点介绍初始化、发送、接收处理子程序及错误处理。

初始化子程序

CAN控制器的初始化包括操作模式、验收滤波器、总线定时及中断的设置等。验收滤波器的设置决定了本节点所接收的信息的格式。定时器用来设置CAN总线上数据传输的波特率,总线上各节点的波特率必须一致,否则就会导致数据传输错误。

发送程序

发送子程序负责节点报文的发送。发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入CAN控制器的发送缓存区中,然

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top