工控网首页
>

应用设计

>

高端电梯VIP功能模块的设计与实现

高端电梯VIP功能模块的设计与实现

2011/2/14 10:26:00

电梯控制系统是居民小区、办公写字楼等的重要组成部分,随着电梯功能的日益增加,电梯的安全性日益受到重视,要求对进出楼层人员进行必要的管制,使其仅能到达被允许进入的楼层范围,从而实现对现代楼宇安全有序的管理。随着科学技术的推广与应用、人们安全意识的增强,现代的楼宇大部分有VIP管理系统,期望以此来提高管理档次、降低管理成本。因此,将VIP技术与电梯控制系统有机结合起来便可以实现对电梯的智能化控制与管理,从而达到上述期望的目标。

当前应用于对电梯系统进行安全管制的方式主要有:设置密码、接触式卡、非接触式IC卡和生物技术。设置密码的方式因存在较大的安全隐患而较少使用,接触式卡因其卡片容易在使用中磨损,导致维护和成本的增加,生物识别技术因开发难度大与价格高的原因,至今没有普及型的产品,而非接触式IC卡综合了各种方式的优点,是目前在智能门禁系统中应用最为广泛的技术。[1]因此,研究基于非接触式IC卡的电梯系统VIP功能模块不仅有较强的技术支持,而且也有较好的发展应用前景。

1 VIP功能模块基本架构

本文所使用的电梯控制系统包括主控板、内呼板、外呼板。主控板负责实现电梯的主要控制逻辑和控制功能;外呼板负责采集轿外呼梯信号及电梯运行状态显示;内呼板负责采集电梯运行中的部分开关量信号以及轿厢内的呼梯信号,并将这些信号通过CAN总线传递给主控板,主控板也通过CAN总线对内呼板发送指令,使得内呼板对相应的开关量进行输出控制。内呼板CPU采用Atmel公司的AT90CAN128,它自带CAN控制器,支持TWI总线、SPI总线,内含128K Flash ROM及4K RAM,是一款性能优秀的高速MCU。[2]

VIP功能模块是电梯控制系统中的一个模块,它包括非接触式射频读卡器、AT24C256芯片、LED数码显示,通过I/O端口控制键盘的锁定,与主控板、内呼板通过CAN总线互相通信,架构图如图1。

VIP功能模块通过非接触式读卡器读入VIP信息,然后MCU将读入的信息与EEPROM(AT24C256)进行比对,进而开放相应的权限并执行内呼板上相应的功能,从而实现电梯的身份管制、VIP特殊待遇等功能。下文将分别从硬件和软件两个方面来介绍VIP功能模块。

2 VIP功能模块硬件设计

在VIP功能模块中,每次通过射频终端读入卡号信息,都必须与系统内存储的卡号信息进行比对,找出该卡号所对应的权限,以便电梯控制系统做出相应的动作。因此在本VIP模块中,引入一个高速、大容量EEPROMAT24C256,用于预先存储大量的卡号及权限信息。

非接触式射频卡终端与MCU通过两条线DATA0、DATA1相连,终端将刷卡所得信息通过韦根协议,送入MCU的INT2、INT3两个外部中断端口。AT24C256的SCL(串行时钟)、SDA(串行数据/地址)、WP(写保护)分别接到MCU的PD0、PD1、PC4, VSS接地,VDD接5V电源。A0-A2为器件地址输入。这些管脚为硬连线或者不连接。对于单总线系统,最多可寻址8个AT24C256 器件。当这些引脚没有连接时其默认值为0。

3 VIP功能模块软件设计

3.1 软件总体设计

管理中心给每个用户分配一张VIP卡,根据用户的个人资料和要求,分配给用户可到达楼层的权限,用户只能到达权限所指定的楼层。用户进入电梯轿厢后刷卡,读卡控制模块获取持卡人ID号,将ID号传输给MCU,MCU对照已做好的映射表查询到该用户可到达楼层的权限,根据权限的要求,解锁电梯内权限描述的按键键盘,等待用户按下所要到达的楼层号。用户按下某个解锁的键盘后,按键就会立即被锁上,等待下一个用户刷卡,同时MCU通过定时扫描将用户最终到达的楼层号发送给主控板,再由主控板传输到PC机,PC 机将记录该用户最终到达的楼层号以及日期时间,以备日后需要时查询。

3.2 详细软件设计

3.2.1 VIP信息读取

MCU与射频卡终端通过两线制总线连接,线上采用韦根(Wiegand)协议。Wiegand(韦根)协议是由摩托罗拉公司制定的一种通讯协议,它适用于涉及门禁控制系统的读卡器和卡片的许多特性。韦根协议对实时性要求比较高,如果用查询的方法接收会出现丢帧的现象。因此,单片机在接收数据时,采用外部中断的方式接收每个字节。

 

韦根协议有多种数据格式,本设计采用的是26-bit格式。该格式如表1。

表1中第2到第9位为分组码,分组码共有8个二进制位,有256个状态;第10到第25位为标识码,标识码共16个二进制位,有65536个状态;第1位是第2到第13位的偶校验位;第26位是第14到第25位的奇校验位。

将读卡器的DATA0和DATA1线,连到MCU的中断接口INT2和INT3。刷卡一次,产生26位0或1数据,由INT2和INT3接口进行采集。采集后存在数组VIPInPut[]中。VIPInPut[1]存储第一位,第[2]、[3]、[4]字节分别存储8位信息,VIPInPut [5]存储最后一位。

部分程序实现如下:

ISR(INT2_vect)//用INT2采集数据0

{VIPi ;//变量VIPi用于计算读入数据的位数

if(VIPi==1)

{VIPInPut[VIPc ount]=0;VIPc ount ;} //读入第一位数据

if((VIPi>1) (VIPi<=25))

{ VIPInPut[VIPc ount]=VIPInPut[VIPc ount]<<1;//将相应的数据位写零

if((VIPi-1)%8==0) VIPc ount ; //读入数据超过8位,字节数加1

}

if(VIPi==26)

……

}

3.2.2 通过TWI总线写EEPROM

TWI(Two-wire Serial Interface)总线集成于AVR系列的单片机。该总线具有I2C总线的特点,接线简单,外部硬件只需两个上拉电阻,使用SDA(串行数据地址线)和SCL(串行时钟线)就可以将128个不同的设备互连到一起;支持主机和从机操作,器件可以工作于发送器模式或接收器模式,数据传输率高达400 kHz。[4]

MCU往AT24C256写数据有字节写和页写两种方式,两种方式的实现过程相似,页写比字节写更为复杂,下面对页写进行详细地介绍。

在页写模式下单个写周期内AT24C256最多可以写入64个字节数据。页写操作的启动和字节写一样,不同在于传送了一字节数据后,主器件允许继续发送63个字节。每发送一个字节后AT24C256将响应一个应答位,且内部低6位地址加1,高位地址保持不变。如果主器件在发送停止信号之前发送大于64 个字节,地址计数器将自动翻转,先前写入的数据被覆盖。

当所有64字节接收完毕,主器件发送停止信号,内部编程周期开始。此时所有接收到的数据在单个写周期内写入AT24C256。

部分程序实现如下:

int TWIBlockWrite(unsigned c har *twidata, unsigned c har WordAddH, unsigned c har WordAddL, unsigned c har DataNum)

{ ……

TWI_Init();//初始化TWI总线

TWIStart();

while(!(TWCR (1<

if((TWSR MSK_TWSR_Prescale)==TW_START)

{

TWDR=AT24C256Write; // 器件地址1010000 write0

TWCR=(1<

while(!(TWCR (1<

TWDR=WordAddH; // 写第一个字地址

TWCR=(1<

while(!(TWCR (1<

TWDR=WordAddL;//写第二个字地址

TWCR=(1<

while(!(TWCR (1<

for(twic ount=1;twic ount<=DataNum;twic ount ) //写数据

{

TWDR=twidata[twic ount];

TWCR=(1<

while(!(TWCR (1<

}

return(WriteResult); //返回写数据状态

投诉建议

提交

查看更多评论
其他资讯

查看更多

助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案

车规MOSFET技术确保功率开关管的可靠性和强电流处理能力

未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?

2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会

2023钢铁展洽会4月全新起航 将在日照触发更多商机