0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用CAN总线实现群控主机和各电梯之间的通信设计

电子设计 来源:gt 作者:电子设计 2019-10-30 07:51 次阅读

目前,大多数电梯公司的群控系统都是采用RS485总线进行通信,但RS485采用主从式的通信方式,由主机发起呼叫,对应的终端应答,因此只能采取轮询的通信方式,实时性差,一旦主机出现故障,整个系统将瘫痪;而CAN总线在电梯群控系统中却体现出更多的优势:CAN总线通信与RS485通信相比抗干扰能力更好;可连接较多的通信节点;通信速率更高;实时性与稳定性高,所以本文采用CAN总线来实现群控主机和各电梯之间的通信。

1 、系统总体结构

本系统以ARM7为内核,主频达72 MHz的32 bit微处理器LPC2368作为群控主控制器,它有高达512 KB的片内Flash程序存储器,具有在系统编程(ISP)和在应用编程(IAP)功能,同时LPC2368内部集成了2个CAN控制器,CAN控制器提供了一个完整的CAN协议(遵循CAN规范V2.0 B)实现方案。包含这个片内CAN控制器的微控制器用来构建功能强大的局域网,支持极高安全级别的分布式实时控制,可以用在汽车、工业环境、高速网络和低价位多路连线的应用中。系统还选用了CAN总线收发器MPC2551,它可作为CAN控制器与物理总线接口,提供对总线的差动发送和接收能力。

2 、通信模块设计

2.1 通信模块硬件实现

本系统采用LPC2368内部集成了的CAN控制器和高速CAN收发器MPC2551配合实现群控主机和各电梯之间的通信任务的,CAN模块由2个部分组成:控制器和接收滤波器,所有的寄存器RAM都作为32 bit的字来访问。LPC2368的CAN控制器具有如下的特点:2个控制器和总线;支持11 bit和29 bit的标识符;双重接收缓冲器和三态发送缓冲器;可编程的错误报警界限和可读/写访问的错误计数器;仲裁丢失捕获和错误代码捕获(带有详细的位位置);单次触发的发送(不会重复发送);只听模式(无应答、无活动错误标志);“自身”报文的接收(自接收请求)。

LPC2368的接收滤波器有如下的特点:快速硬件实现的搜索算法,支持大量的CAN标识符;全局验收滤波器识别所有CAN总线的11 bit和29 bit Rx标识符;允许11 bit和29 bit CAN标识符的明确定义和分组定义;验收滤波器可以为选择的标准标识符提供FullCAN-style自动接收。

高速CAN收发器MPC2551是一个可容错的高速CAN器件,可作为CAN协议控制器和物理总线接口。MCP2551可为CAN协议控制器提供差分收发能力,它完全符合ISO-11898标准,包括能满足24 V电压要求。其工作速率高达1 Mb/s。典型情况下,CAN系统上的每个节点都必须有一个器件,把CAN控制器生成的数字信号转化为适合总线传输(差分输出)的信号。它也为CAN控制器和CAN总线上的高压尖峰信号之间加入了缓冲器,这些高压尖峰信号可能是由外部器件产生(EMI、ESD电气瞬态等)。

本系统设计的电路中,2个二极管D3与D4可有效地抑制传输介质的浪涌干扰,由于电梯群控系统中存在多个CAN通信节点,因此本电路中加入了终端电阻跳线JP3,由用户灵活地选择是否在该节点处加入终端通信电阻,本系统设计的CAN通信电路连接如图1。

采用CAN总线实现群控主机和各电梯之间的通信设计

2.2 通信协议及通信软件设计

2.2.1 CAN总线帧种类

CAN总线上传输的信息称为报文,报文传输按照帧结构的不同,通常可表示为如下5种不同类型的帧:

(1)数据帧:用于发送单元向接收单元传送数据的帧;

(2)遥控帧:用于接收单元向具有相同ID的发送单元请求数据的帧;

(3)错误帧:用于当检测出错误时向其他单元通知错误的帧;

(4)过载帧:用于接收单元通知其尚未做好接收准备的帧;

(5)帧间隔:用于将数据帧及遥控帧与前面的帧分离开来的帧。

2.2.2 CAN报文格式

在总线中传送的报文,每帧由7部分组成,CAN协议支持2种报文格式,其唯一的不同是标识符(ID)长度不同,标准格式为11 bit,扩展格式为29 bit。标准格式帧的组成如图2所示 。

采用CAN总线实现群控主机和各电梯之间的通信设计

在标准格式中,报文的起始位称为帧起始(SOF),然后是由11 bit标识符和远程发送请求位(RTR)组成的仲裁段。RTR位标明是数据帧还是请求帧,在请求帧中没有数据字节。

控制段包括标识符扩展位(IDE),指出是标准格式还是扩展格式。它还包括1个保留位 (ro),为将来扩展使用。它的最后4个字节用来指明数据段中数据的长度(DLC)。数据段范围为0~8个字节,其后有一个检测数据错误的循环冗余检查CRC段。

ACK段用来确认是否正常接收,由ACK槽(ACK Slot)和ACK界定符2个位构成。发送站发送的这两位均为隐性电平(逻辑1),这时正确接收报文的接收站发送主控电平(逻辑0)覆盖它。用这种方法,发送站可以保证网络中至少有一个站能正确接收到报文。

报文的尾部由帧结束标出。在相邻的两条报文间有一很短的间隔位,如果这时没有站进行总线存取,总线将处于空闲状态。

2.2.3 通信协议设计

由于在CAN总线中,标识符(ID)的大小规定了各节点发送消息的优先级,ID号越小,发送优先级越高,本系统中规定群控主控制器优先级最高,因此设为0x01,其他电梯主控制器次之,设为0x11,依次类推。

本系统消息格式采用:目的ID号+命令+数据字节1+数据字节2+……+数据字节6的格式,在LPC2368中,存放数据的寄存器是CANRDA、CANRDB,每个寄存器是4个字节,因此一条CAN消息最多可存放8个字节。本协议中,CANRDA对应目的ID号、命令、数据字节1、数据字节2;CANRDB对应数据字节3“6。

目的ID号确定消息的发出源,当目的ID号的内容为0x00时,所对应的消息是一条由主控制器发出的广播消息,各节点均接收并分析。

命令字节的内容是协议的核心,由各命令组成,包括状态命令、控制命令,通常与数据字节搭配使用。

2.2.4 通信软件设计

通信模块软件设计,首先要初始化CAN控制器,CAN控制器初始化主要实现CAN工作时的参数设置,这些初始化的内容包括:硬件使能CAN、设置CAN报警界限、设置总线波特率、设置中断工作方式、设置CAN验收过滤器的工作方式、设置CAN控制器的工作模式等。初始化结束之后CAN模块就可以进入工作状态,进行数据发送和接收。发送数据时,首先判断发送缓冲区是否空闲,如果有空闲发送缓冲区则将发送数据写入该发送缓冲区内,再启动发送命令,完成一帧数据的发送。接收数据时,读取接收缓冲区数据,同时释放该接收缓冲区,完成一帧数据的接收。数据发送和接收流程如图3所示。

采用CAN总线实现群控主机和各电梯之间的通信设计

3 、其他模块设计

3.1 液晶显示模块

液晶显示模块选用容量为2行16个字的液晶模块,每个字以5×8点阵块组成。本设计中群控主机对各电梯进行监控,通过液晶显示模块可以实时显示各个电梯的状态,包括各电梯的群控状态、楼层状态、运行方向,同时对群控主机的各种参数设置也可以很清楚地在液晶模块上显示出来。

3.2 键盘模块

键盘模块采用了5个按键实现对群控参数、模式的设置,这5个按键分别对应为:ESC、UP、DOWN、ROTA、ENT,各按键作用如下:ESC为返回键,返回主显示界面;UP为上翻页键,该按键可实现循环上选择菜单。在参数设置中,实现数字循环+1,并实现ON/OFF、YES/NO、HIGH/LOW之间的切换。DOWN为下翻页键,该按键可实现循环下翻页选择菜单。在参数设置中,实现数字循环-1,并实现ON/OFF、YES/NO、HIGH/LOW之间的切换。ROTA为右方向键,该按键可循环右移。在参数设置中,实现光标移位。ENT为确认键,在选中某菜单(即菜单在LCD上反白显示)后,按Enter键进入菜单,执行相应功能。

4 、群控算法设计

4.1 模糊控制概念

模糊控制是建立在模糊集合论基础上的一种语言规则与模糊推理的控制理论,它将自然语言转化为计算机所能接受的算法语言,并模拟人的思维方法,对被控过程进行有效的确定性的控制,它利用专家知识获得各种控制规则,可以很好地处理电梯系统的多目标性、随机性和非线性。所以本系统采用模糊控制理论来处理群控中电梯的调度问题。

4.2 群控模糊算法设计

为了有效地调度电梯来满足乘梯者的要求,提高乘客的舒适度和总体服务质量,在电梯群控研究和应用过程中,常常把减少乘客的平均候梯时间(AWT)、平均乘梯时间(ART)及能源消耗(RPC)作为评价标准,因此在算法设计上通过模糊控制调整各评价因素(候梯时间、乘梯时间、能量消耗等)的权重系数,从而确定最佳派梯方案,进而实现电梯群控的高效性。

本系统将AWT、ART及RPC作为电梯群控的优化参数和评价标准,通过一个调度算法判断出哪部电梯来响应各厅层召唤。所以构造一个评价函数,综合以上评价标准,评价函数如式(1)所示:

采用CAN总线实现群控主机和各电梯之间的通信设计

采用CAN总线实现群控主机和各电梯之间的通信设计

本系统实现了电梯群的高效稳定运行。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 收发器
    +关注

    关注

    10

    文章

    3425

    浏览量

    105978
  • 控制器
    +关注

    关注

    112

    文章

    16350

    浏览量

    177947
  • CAN总线
    +关注

    关注

    145

    文章

    1950

    浏览量

    130744
收藏 人收藏

    评论

    相关推荐

    采用PIC18F458实现CAN总线接口设计

    。philips公司的高速总线驱动器82c50,它采用双线差分驱动,抗干扰强。can总线驱动器与单片机接线如图1所示,为实现
    发表于 06-11 05:00

    采用CAN总线与RS-485实现DSP通信接口

    了广泛应用。  本设计以PC机为主机,以TMS320LF2407为从机,实现了主从机之间的基于RS-485的串行通信,以及TMS320LF2407与
    发表于 06-14 05:00

    如何实现主机和从机之间通信

    如何实现主机和从机之间通信?DHT11单总线信号特性是什么?DHT11编码步骤是怎样的?
    发表于 01-27 07:09

    基于CAN/LIN混合网络的电梯通信系统

    介绍了一个专门为以PLC为核心控制器的电梯控制系统而设计开发的电梯通信系统。对起源于汽车工业的总线技术CAN
    发表于 03-17 10:56 25次下载

    基于CAN总线电梯串行通讯

    本文研究 CAN 总线电梯串行通讯中的应用。论文对比RS-485 通讯方式,分析CAN 总线应用于电梯
    发表于 06-25 13:28 41次下载

    Linux系统下CAN总线通信的设计及实现

    本设计为光电稳定跟踪平台开发CAN 驱动,以实现CAN 总线上设备间的通信。分析了linux 下标准设备驱动机制和
    发表于 08-04 08:33 30次下载

    基于CAN总线电梯呼梯控制器的设计与实现

    本文设计了一种基于CAN 总线电梯呼梯控制器, 它是电梯的一个重要组成部分。该控制器用于给出每一楼层的呼叫请求信息,并显示电梯当前运行情况
    发表于 09-17 10:13 39次下载

    基于CAN总线电梯召唤显示板设计

    为了提高电梯召唤显示板与主板通信的实时性、可靠性与灵活性,设计出一种基于CAN总线电梯召唤显示板。与传统系统设计相比,该系统
    发表于 07-21 15:19 29次下载

    Linux环境下实现基于ARM9的CAN总线通信

    Linux环境下实现基于ARM9的CAN总线通信 1.  引言CAN(Controller Area Network)
    发表于 11-03 09:56 632次阅读
    Linux环境下<b class='flag-5'>实现</b>基于ARM9的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>通信</b>

    基于ARM7嵌入式系统的电梯控系统的设计

        目前,大多数电梯公司的控系统都是采用RS485总线进行通信,但RS485
    发表于 07-06 10:37 1341次阅读
    基于ARM7嵌入式系统的<b class='flag-5'>电梯</b><b class='flag-5'>群</b>控系统的设计

    基于NETLINX网络的电梯控系统的实现

    针对 电梯控系统 稳定性和实时性要求高的特点,采用先进的工业控制网络NetLinx设计电梯控系统,阐述了系统的工作原理。基于多目标
    发表于 08-23 16:44 16次下载
    基于NETLINX网络的<b class='flag-5'>电梯</b><b class='flag-5'>群</b>控系统的<b class='flag-5'>实现</b>

    FPGA实现CAN总线通信节点设计

    基于对CAN 总线控制器的功能分析, 并应用Verilog语言进行软件设计, 从而实现CAN节点之间
    发表于 04-28 09:56 1.5w次阅读
    FPGA<b class='flag-5'>实现</b><b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>通信</b>节点设计

    CAN总线通信协议的分析和实现 CAN总线通信协议以及其实现方法

    CAN总线通信协议的分析和实现 CAN总线通信协议以
    发表于 09-04 08:45 40次下载
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>通信</b>协议的分析和<b class='flag-5'>实现</b> <b class='flag-5'>CAN</b><b class='flag-5'>总线</b><b class='flag-5'>通信</b>协议以及其<b class='flag-5'>实现</b>方法

    can总线为什么要用双绞线?can总线不用双绞线可以吗?

    can总线为什么要用双绞线?can总线不用双绞线可以吗? CAN总线是一种数据
    的头像 发表于 09-14 16:48 5438次阅读

    如何使用Arduino实现CAN总线通信

    开源硬件平台,通过添加CAN总线模块,也可以实现CAN通信。 硬件准备 Arduino开发板 :可以选择Arduino Uno、Mega等型
    的头像 发表于 11-12 10:09 802次阅读