新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于LonWorks和iButton技术的新型电子考勤装置

基于LonWorks和iButton技术的新型电子考勤装置

作者:时间:2006-05-07来源:网络收藏

摘要:阐述一种新型的基于LonWorks和iButton技术的电子考勤装置的特点,着重介绍其硬件组成、软件设计及系统工作原理,最后讲述具体的应用场合。

本文引用地址:http://www.eepw.com.cn/article/255619.htm

关键词:LonWorks iButton 电子考勤

目前,在数字识别领域,尤其在电子考勤系统中所采用的的介质多为磁卡和IC卡。这些介质存在携带不便、易受损坏、不能适应恶劣环境的不足;而电子考勤系统所选介质必须能较好地解决这些问题。美国DALLAS半导体公司推出的新型智能化信息载体iButton,采用不锈钢外壳封装,具有抗撞击、防水渍、耐腐蚀、抗磁扰、防折叠的特点,满足了电子考勤系统的要求。

除了信息载体应满足一定的要求外,电子考勤系统还必须依靠可靠的网络支持。LonWorks网络是一种新型的现场总线网络,由美国ECHELON公司和MOTOROLA公司共同研制开发。其支持OSI 7层协议架构,网络拓扑结构灵活,系统可靠性、可维护性好,并采用先进的纠错技术,抗干扰性强。而且,LonWorks和iButton器件提供通信接口支持。因而,采用iButton和LonWorks技术构建电子考勤系统成为可能。

基于iButton技术及LonWorks技术所设计的智能电子考勤系统,能较好地解决传输IC卡、磁卡考勤系统存在的不足,同时又满足了分布式系统在可靠性、可维护性、稳定性方面的要求。

1 系统基本组成

图1为本系统的基本结构,由三部分构成:一为内置有LonWorks通信卡的微机;二为智能考勤节点;三为考勤触头及iButton。微机处于主导地闰,具有网络监测、网络控制和网络管理功能。智能考勤节点为数字量输入的LonWorks节点模块,主要将考勤触头送来的数据发往微机。考勤触头及iButton,主要负责数据采集,并将采集到的数据送入考勤节点。

1.1 智能通信卡

智能通信卡是LonWorks与监控微机连接的桥梁,是实现分布式系统信息收集、数据处理、现场控制等功能的枢纽,在通信过程中起关键作用。通信卡作为LonWorks网络上的一种特殊的网络节点,可以与其上所有分布式节点进行对等的数据通信。对微机而言,通信卡为一智能外设,可快速实现与微机的数据交换。

图2为智能通信卡的功能框炉膛,主要包括Neuron神经元芯处、收发器、EEPROM、双口RAM、译码电路和Service电路等。通信卡遵循LonTalk协议,通过以Neuron为核心芯片的网络接口,与LonWorks网的智能节点进行通信,并通过对双口RAM访问实现与微机的数据交换。双口RAM存储单元的地址分配,在微机和Neuron芯片两侧有所不同。Neuron芯片和微机之间的通信,综合采用了标志查询、定时中断和事件驱动等多种方式。

1.2 智能考勤节点

智能考勤节点实现为数字量输入的LonWorks节点模块。Neuron芯片提供有IO_0~IO_10共11个I/O引脚,通过对其进行编程,可配置成多种不同的I/O对象。其中Touch I/O对象类型用于与DALLAS半导体公司开发的1-Wire协议接口,因而LonWorks可方便地支持iButton等1-Wire器件。

Neuron C语言支持Touch I/O对象的函数主要有:

Int touch_reset(io_object_name); //系统复位

Unsigned touch_byte(io_object_name,unsigned write-data);

//在1-Wire总线上读写字节数据

unsigned touch_bit(io_object_name,unsigned write-data);

//在1-Wire总线上读写位数据

int touch_first(io_object_name,search_data *sd);

//执行ROM搜索算法

int touch_next(io_object_name,search_data *sd);

//执行ROM搜索算法

unsigned crc8(unsigned crc,unsigned new-data);

//执行CRC校验

在Neuron C程序中可直接调用以上函数访问iButton等器件,进行数据读写操作。

1.3 iButton及考勤触头

iButton采用纽扣状不锈钢外壳封装,内部由I/O处理器和存储器两个基本部分组成,以1-Wire规范作为通信协议,与外界进行信息交换。1根数据线和1根地线构成了iButton的电气接口。采用独特的主从式、位同步、半双串行方式与外界通信,信号同步由内部定时逻辑解决,而数据通信的能量则由数据线提供。

本系统中的iButton采用DS1990A,其带有64位全球唯一的标识号,作为考勤人员的身份标识。考勤触头直接采用DALLAS公司的DS9092GT触头。

2 系统软件设计

软件设计亦由三部分组成,如图3所示。一是管理信息数据库系统,操作界面用VB6.0或VC6.0开发,数据库采用Access或Oracle、SQL Server。二为通信卡上的通信程序。三为考勤节点的数据采集程序。这两部分程序用Neuron C(语言开发)。管理信息数据库系统与通信程序间基于双口RAM技术实现数据交换,而通信程序与数据采集程序间采用Neuron C显式报文技术实现数据交换。

人们随身携带iButton,当进入单位或其他需作考勤的场所时,将iButton与考勤触头接独。IButton的标识号通过考勤节点进入微机,加上时间标签存于管理信息数据库中。根据不同的物理位置,设置考勤节点,每个考勤节点又可以连接若干个考勤独头。根据应用系统的大小选用关系数据库。若系统较小,采用Access即能满足要求;否则,采用Oracle或SQL Server。

以下为数采程序中的一段核心代码,用Neuron C语言编写。

#pragma enable_io_pullups

……

IO_4 input leveldetect io_twire_pres;

IO_4 touch io_twire;

unsigned int id_data[8];

msg_tag mess_out;

……

when (io_in(io_twire_pres)= =1)

{unsigned int i,crc_data;

if(touch_reset (io_twire)) //系统复位

{id_data[0]=51; //发送读取ROM区ID数据的命令

io_out(io_twire,id_data,1);

io_in(io_twire,data,8); //读取8位ID,放在id_data中

crc_data=0;

for(i=0;i7;i++) //CRC校验

{crc_data=crc8(crc_data,id_data[i]);

}

if(crc_data= =id_data[7])

{for(i=0;i8;i++) //将采集到的数据打包

{msg_out.data[i]=id_data[i];

}

msg_out.service=UNACKD_RPT;

msg_out.tag=mess_out;

msg_out.dest_addr.no_address=BROADCAST;

msg_send();

}

}

(void)io_in(io_twire_pres);

}

3 系统应用

本套系统融合当今世界最新的iButton与LonWorks技术,设计思路新颖独特。IButton技术较好地解决了目前电子考勤系统普遍存在的携带不便、易受磁扰电扰、易受腐蚀、容易折损、不能适用于恶劣环境的不足;而采用LonWorks网络技术,使之成为一分布式的系统,有效作用范围高达数公里,并且稳定性、可靠性和抗干扰性大大提高,可以满足大型企业尤其是化工、煤矿、冶金等企业的人员考勤。

本套系统实现简单,成本低廉,网络维护方便,有望生产较好的经济效益和社会效益,具有广阔的应用前景。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭