历史上的今天
今天是:2025年02月24日(星期一)
2020年02月24日 | 基于AVR单片机CAN总线的显示板设计
2020-02-24 来源:eefocus
简介:随着现代社会的发展,科学技术的进步,出现了众多高层建筑和智能建筑。电梯,作为高层建筑内部一种重要的交通工具,其应用规模日益扩大。而作为电梯系统中必不可少的一部分,电梯召唤显示板(简称电梯外呼板)的应用也随之剧增。电梯外呼板应用于每层楼的电梯门外,供乘客及电梯维保人员使用。电梯外呼板将乘客及维保人员的需求信息通过CAN总线传达给电梯主板,电梯主板接收信息并执行相应的操作 ...
随着现代社会的发展,科学技术的进步,出现了众多高层建筑和智能建筑。电梯,作为高层建筑内部一种重要的交通工具,其应用规模日益扩大。而作为电梯系统中必不可少的一部分,电梯召唤显示板(简称电梯外呼板)的应用也随之剧增。电梯外呼板应用于每层楼的电梯门外,供乘客及电梯维保人员使用。电梯外呼板将乘客及维保人员的需求信息通过CAN总线传达给电梯主板,电梯主板接收信息并执行相应的操作。同时,电梯主板将电梯的实时运行信息通过CAN总线传递给电梯外呼板,通过外呼板LED显示出来,供乘客参阅。
AVR单片机具有高可靠性、功能强、高速度、低功耗和低价位的特点,本系统选用了高档ATmega列AVR单片机ATmegal6。它具有先进的RI-SC结构,具有16 kB的系统内可编程Flash,512 B的EEPROM,1 kB的片内SRAM。同时,芯片具有独立片内振荡器的可编程看门狗定时器,通过改变熔丝位可以设置片内晶振的振荡周期,这样可以省去外围的看门狗电路和晶振电路的设计。
1 电梯外呼板系统硬件结构
电梯外呼板的硬件电路主要由乘客按键模块、指示灯控制模块、LED模块、CAN通信电路以及电源模块构成,如图1所示。

1.1 CAN通信模块
1.1.1 CAN的技术特点
CAN是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维,具有物理层、数据链路层和应用层等3层协议,其通信速率可达1 Mb/s。CAN总线专用接口芯片中以固件形式集成了CAN协议的物理层和数据链路层2层功能,完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余校验、优先级判别等多项工作。它具有以下特点:
1)废除传统的站地址编码,代之以对通信数据块进行编码,可以多主方式工作;
2)采用非破坏性仲裁技术,当2个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响继续传输数据,有效避免了总线冲突;
3)采用短帧结构,每一帧的有效字节数为8个,数据传输时间短,受干扰的概率低,重新发送的时间短;
4)每帧数据都有CRC校验及其他检错措施,保证了数据传输的高可靠性,适于在高干扰环境下使用;
5)节点在错误严重的情况下,具有自动关闭总线的功能,切断其与总线的联系,以使总线上其他操作不受影响;
6)可以点对点,一对多及广播集中方式传送和接收数据。
基于以上特点,在本设计中将电梯主板节点的优先级设为最高,而其他电梯外呼板的优先级次之,电梯主板可以接收任何电梯外呼板的数据,而电梯外呼板只能接收电梯主板的数据。电梯主板可以发送广播信息(例如楼层运行的信息),也可以发送点对点信息(例如针对某层的指示灯控制信息)。
1.1.2 CAN的硬件实现
CAN控制器采用MicroChip公司的MCP2510,该器件使用SPI接口与MCU通信。只需4条总线就可以实现与MCU的通信,但为了具有更好的实时性,一般采用中断方式与MCU进行通信,因此还需要一个中断信号总线=用来通知MCU接收从CAN总线上发来的数据。CAN的接口器件采用TJ-Al050,该器件是CAN控制器与物理总线之间的接口器件。
在CAN模块电路中,如图2所示,ATmegal6的SS,MOSI,MISO,SCK,INT分别与MCP2510的,SI,SO,SCK,相连接。为了进一步提高CAN总线节点的抗干扰能力,MCP2510的TXCAN和RXCAN通过光耦6N137分别与TJAl050的TXD和RXD相连接。

1.1.3 CAN的报文格式
在总线中传送的报文,每帧由7部分组成。CAN协议支持2种报文格式,其唯一不同是标识符(ID)长度不同,标准格式为11位,扩展格式为29位。本设计中使用标准数据帧,由帧起始、仲裁域、控制域、数据域、CRC域、应答域和帧结尾等7种位域组成,如图3所示。

其中数据域的长度为0~8个字节。仲裁域由标识符和RTR组成,在标准格式中,标识符为11位。在本例通信协议的制定中,标志位的前4位用作通信的类型码,后7位用作CAN节点的ID号。数据域则用来存储通信的具体内容信息,例如电梯所在的楼层,运动方向等。
1.2 LED显示模块
本模块由3片8x8 LED显示屏以及以单片机为核心的驱动电路构成。LED显示屏由LED点阵显示器P2158构成。它是以发光二极管为像素,按照行与列的顺序排列而成的显示器件,采用逐行(或逐列)扫描方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可显示各种图形或文字信息。以AVR高速单片机为核心的驱动电路如图4所示。

LED显示功能采用逐行扫描的方法,在3片8×8点阵LED显示屏上显示相应的信息。控制信号由MCU发出,经过缓冲器74F244后分成2路,一路经过移位寄存器74S164,串行转并行后来驱动LED点阵的行;另一路经过锁存器68595,串行转并行后驱动LED点阵的列。LED点阵显示采用逐行扫描,每行显示取模方式为从右到左,字节正序输出。其中,锁存器的输入数据由软件中的字库提供。LED显示每20 ms显示一次,故显示频率为50 Hz,符合人眼的闪烁特性。
2 电梯外呼板软件设计
电梯外呼板软件设计流程如图5所示。电梯外呼板通过CAN总线接收电梯主板的数据帧,并将数据帧暂时存入缓存区,经过分析处理后按一定的方式保存起来。然后根据数据帧要显示的方式,从数据存储器中取出相应的数据存到一个显示缓存区进行显示,采用逐行扫描方式显示。电梯外呼板上如果有召唤信号输入,相应指示灯亮,同时电梯外呼板上通过CAN总线向电梯主板发送数据帧,数据帧内容包含召唤信息。通信的方式建立握手应答机制。

3 结束语
本系统采用AVR单片机,使用CAN总线通信,通信安全可靠,实时性好,主要用在电梯系统中的外呼召唤显示,同时也可以用在电梯轿厢中用于楼层信息的显示。将其接入电梯仿真系统中,本系统能够快速响应,长时间运行期间安全可靠,增加和删除节点简单方便。
史海拾趣
|
1.A区和B区的大小是可以通过熔丝位的设置改变大小的,但RWW,NRWW是固定的,不会改变。对于M8来说,B区的大小可设置为128、256、512、1024字,而RWW/NRWW则固定为3072/1024字。 2.MCU挂起,表示MCU“暂停”工作,即暂时停止取指令、响应中断等,待 ...… 查看全部问答> |
|
我安装了EVC4.0和标准SDK,可是在生成执行程序的过程中,提示程序没有错误,但是系统提示如下: An application targeting a Standard SDK for Windows CE.NET and built for the ARMV4I CPU cannot be run on the Emulator device.In order to ru ...… 查看全部问答> |
|
各位高手: 小弟准备用windows api编写界面调用tcpmp的common.dll做个播放器,但是同时想用GAPI写屏 请问我应该怎么做,是在界面中调用某个函数切换到GAPi引擎还是在编译时就改一些地方。 万分感谢!… 查看全部问答> |
|
哪位用过ADS1112啊?我在调的过程中发现只能单步调,不能全速运行! 我用PIC18F4685 的I/O口仿真I2C连接ADS1112,4M晶振. 14位 调的过程中发现单步能调通,但是不能全速运行 各位高手,帮帮忙,提个建议 ! … 查看全部问答> |
|
问大家一个问题,就是我把一个智能应用程序部署在模拟器上。当程序运行的时候每次我点那个右上角的小叉。还不能关闭该应用程序。还要到内存中把正在运行的程序终止掉。这样特别麻烦!可不可以在哪里控制一下。每次让它那个叉 。该整个应用程序都停 ...… 查看全部问答> |
|
51单片机玩过大半年了。刚买msp430开发板。 【规整贴】MSP430G2开发板学习精华帖 https://bbs.eeworld.com.cn/thread-237706-1-3.html MSP430G2xxx中文资料(独家) 这个也看了 转了几天,还只是做了个跑马灯程序, 还有IO试验, 不知如何下手 ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 12:49 编辑 TI有没有相位量化的模数转换芯片啊?看了半天,好像都是幅度量化的,有没有谁用过相位量化的AD芯片啊? … 查看全部问答> |




