技术中心
 
 

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

   日期:2007-10-28     来源:中国测控网    作者:管理员    
      目前,计算机机房的配电系统大都使用UPS,保证了机房的可靠供电。UPS系统的每一路电流都采用自动空气断路器进行过流保护,这种保护是有效的,但不是智能的,不能设置,不会报警,更没有供电及故障报警信息的纪录,与高可靠性的要求不相符,有进一步改造的必要和需求。

        引言
       

        本文为计算机机房开发的智能配电系统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控制器的发送缓存区中,然后启动发送命令即可。信息从CAN控制器发送到CAN总线是由CAN控制器自动完成的。本系统采用查询的方式发送。

        接收程序

        接收子程序负责节点报文的接收以及其它情况的处理,诸如对总线关闭、错误报警、接收溢出等情况进行处理。信息从CAN总线到CAN缓冲区是由CAN控制器自动完成的。接收程序只需从接收缓冲区读取要接收的信息即可。考虑到实时性的要求,采用了如图2所示的中断方式。


图2 中断接收流程图

        错误处理

     

 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作