您现在的位置:机电论文网>> 总线设计应用>> 正文内容

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

作者: 来源: 发布时间:2009/9/1 11:00:49  点击数:1691

 

引言
       

        本文为计算机机房开发的智能配电系统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 中断接收流程图

        错误处理


        在CAN初始化中,打开了错误报警中断使能和总线错误中断使能,当错误计数器(发送错误计数器和接收错误计数器中的任何一个)计数值超过96时,说明总线被严重干扰,产生错误报警中断;当发送错误计数器值超过255时,节点进入总线关闭状态,CAN控制器将设置复位模式位为1(当前)并产生一个错误报警和总线错误中断。

        错误报警中断处理是清零所有错误计数器的值,维持CAN的运转,但这样做存在局限性:清零错误计数器只是将错误计数器简单的清零,不能从根本上消除错误来源;由于错误报警中断产生的条件为错误计数器的值超过96,而总线关闭中断产生的条件为发送错误计数器的值超过255,因此,发送错误计数器引起的错误报警中断可以屏蔽掉总线错误中断。系统可能由于总响应错误报警中断导致系统不能产生总线关闭,使CAN总线一直处于不稳定状态。


        为了避免这种情况,只打开总线错误中断使能,这样,在总线发生严重错误的情况下,可马上产生总线错误中断,使错误得到及时处理。总线错误中断的处理是复位该节点,重新初始化CAN控制器,这样可以消除错误,给节点一个很好的初态。由于CAN总线两条传输线之间的误接触,也易造成CAN总线关闭,使节点无法工作,在主程序中查询状态寄存器中当前CAN总线状态,及时复位该节点,使节点正常工作。


        同时,为了更方便直观地查看CAN总线的工作状态,设计了一个指示灯,当总线正常地收发信息时,指示灯闪烁,一旦CAN总线关闭,节点不参与总线活动,指示灯不再闪烁(此时指示灯长亮或长灭),当总线错误不能通过复位该节点解决时,可以通过查看指示灯的状态(长亮或长灭),及时地对不工作的节点进行修理维护。

        结语


        运用CAN总线技术构建智能配电系统,提高了系统的稳定性和实时性,系统价格低廉,安装维护简单,具有良好的升级、扩展能力。该系统已经成功地装配到经贸、股票交易行业的机房中,运行可靠,实现了设计目标。

        参考文献


        1 饶运涛.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003.20~166
        2 Philips Semiconductors, P8xC591, Single-chip 8-bit microcontroller with CAN controller, DATA SHEET, 2000

 


更多
字体:【】-【】-【】【关闭此页

上一篇:CAN总线技术运用于接口电路设计注意'   下一篇:AT89S52单片机与CF卡的接口设'


特别声明:机电之家(http://www.jdzj.com )所共享的机电类资料,机电论文、机电类文章、机电企业类管理制度、机电类软件都来自网上收集,其版权归作者本人所有,如果有任何侵犯您权益的地方,请联系我们,我们将马上进行处理。购买的论文都出自原创,保证作者的原创的版权的转让,任何纠纷由法律解决。