基于LonWorks和iButton技術的新型電子考勤裝置
摘要:闡述一種新型的基于LonWorks和iButton技術的電子考勤裝置的特點,著重介紹其硬件組成、軟件設計及系統(tǒng)工作原理,最后講述具體的應用場合。
本文引用地址:http://cafeforensic.com/article/255619.htm關鍵詞:LonWorks iButton 電子考勤
目前,在數字識別領域,尤其在電子考勤系統(tǒng)中所采用的的介質多為磁卡和IC卡。這些介質存在攜帶不便、易受損壞、不能適應惡劣環(huán)境的不足;而電子考勤系統(tǒng)所選介質必須能較好地解決這些問題。美國DALLAS半導體公司推出的新型智能化信息載體iButton,采用不銹鋼外殼封裝,具有抗撞擊、防水漬、耐腐蝕、抗磁擾、防折疊的特點,滿足了電子考勤系統(tǒng)的要求。
除了信息載體應滿足一定的要求外,電子考勤系統(tǒng)還必須依靠可靠的網絡支持。LonWorks網絡是一種新型的現(xiàn)場總線網絡,由美國ECHELON公司和MOTOROLA公司共同研制開發(fā)。其支持OSI 7層協(xié)議架構,網絡拓撲結構靈活,系統(tǒng)可靠性、可維護性好,并采用先進的糾錯技術,抗干擾性強。而且,LonWorks和iButton器件提供通信接口支持。因而,采用iButton和LonWorks技術構建電子考勤系統(tǒng)成為可能。
基于iButton技術及LonWorks技術所設計的智能電子考勤系統(tǒng),能較好地解決傳輸IC卡、磁卡考勤系統(tǒng)存在的不足,同時又滿足了分布式系統(tǒng)在可靠性、可維護性、穩(wěn)定性方面的要求。
1 系統(tǒng)基本組成
圖1為本系統(tǒng)的基本結構,由三部分構成:一為內置有LonWorks通信卡的微機;二為智能考勤節(jié)點;三為考勤觸頭及iButton。微機處于主導地閏,具有網絡監(jiān)測、網絡控制和網絡管理功能。智能考勤節(jié)點為數字量輸入的LonWorks節(jié)點模塊,主要將考勤觸頭送來的數據發(fā)往微機。考勤觸頭及iButton,主要負責數據采集,并將采集到的數據送入考勤節(jié)點。
1.1 智能通信卡
智能通信卡是LonWorks與監(jiān)控微機連接的橋梁,是實現(xiàn)分布式系統(tǒng)信息收集、數據處理、現(xiàn)場控制等功能的樞紐,在通信過程中起關鍵作用。通信卡作為LonWorks網絡上的一種特殊的網絡節(jié)點,可以與其上所有分布式節(jié)點進行對等的數據通信。對微機而言,通信卡為一智能外設,可快速實現(xiàn)與微機的數據交換。
圖2為智能通信卡的功能框爐膛,主要包括Neuron神經元芯處、收發(fā)器、EEPROM、雙口RAM、譯碼電路和Service電路等。通信卡遵循LonTalk協(xié)議,通過以Neuron為核心芯片的網絡接口,與LonWorks網的智能節(jié)點進行通信,并通過對雙口RAM訪問實現(xiàn)與微機的數據交換。雙口RAM存儲單元的地址分配,在微機和Neuron芯片兩側有所不同。Neuron芯片和微機之間的通信,綜合采用了標志查詢、定時中斷和事件驅動等多種方式。
1.2 智能考勤節(jié)點
智能考勤節(jié)點實現(xiàn)為數字量輸入的LonWorks節(jié)點模塊。Neuron芯片提供有IO_0~IO_10共11個I/O引腳,通過對其進行編程,可配置成多種不同的I/O對象。其中Touch I/O對象類型用于與DALLAS半導體公司開發(fā)的1-Wire協(xié)議接口,因而LonWorks可方便地支持iButton等1-Wire器件。
Neuron C語言支持Touch I/O對象的函數主要有:
Int touch_reset(io_object_name); //系統(tǒng)復位
Unsigned touch_byte(io_object_name,unsigned write-data);
//在1-Wire總線上讀寫字節(jié)數據
unsigned touch_bit(io_object_name,unsigned write-data);
//在1-Wire總線上讀寫位數據
int touch_first(io_object_name,search_data *sd);
//執(zhí)行ROM搜索算法
int touch_next(io_object_name,search_data *sd);
//執(zhí)行ROM搜索算法
unsigned crc8(unsigned crc,unsigned new-data);
//執(zhí)行CRC校驗
在Neuron C程序中可直接調用以上函數訪問iButton等器件,進行數據讀寫操作。
1.3 iButton及考勤觸頭
iButton采用紐扣狀不銹鋼外殼封裝,內部由I/O處理器和存儲器兩個基本部分組成,以1-Wire規(guī)范作為通信協(xié)議,與外界進行信息交換。1根數據線和1根地線構成了iButton的電氣接口。采用獨特的主從式、位同步、半雙串行方式與外界通信,信號同步由內部定時邏輯解決,而數據通信的能量則由數據線提供。
本系統(tǒng)中的iButton采用DS1990A,其帶有64位全球唯一的標識號,作為考勤人員的身份標識??记谟|頭直接采用DALLAS公司的DS9092GT觸頭。
2 系統(tǒng)軟件設計
軟件設計亦由三部分組成,如圖3所示。一是管理信息數據庫系統(tǒng),操作界面用VB6.0或VC6.0開發(fā),數據庫采用Access或Oracle、SQL Server。二為通信卡上的通信程序。三為考勤節(jié)點的數據采集程序。這兩部分程序用Neuron C(語言開發(fā))。管理信息數據庫系統(tǒng)與通信程序間基于雙口RAM技術實現(xiàn)數據交換,而通信程序與數據采集程序間采用Neuron C顯式報文技術實現(xiàn)數據交換。
人們隨身攜帶iButton,當進入單位或其他需作考勤的場所時,將iButton與考勤觸頭接獨。IButton的標識號通過考勤節(jié)點進入微機,加上時間標簽存于管理信息數據庫中。根據不同的物理位置,設置考勤節(jié)點,每個考勤節(jié)點又可以連接若干個考勤獨頭。根據應用系統(tǒng)的大小選用關系數據庫。若系統(tǒng)較小,采用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)) //系統(tǒng)復位
{id_data[0]=51; //發(fā)送讀取ROM區(qū)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 系統(tǒng)應用
本套系統(tǒng)融合當今世界最新的iButton與LonWorks技術,設計思路新穎獨特。IButton技術較好地解決了目前電子考勤系統(tǒng)普遍存在的攜帶不便、易受磁擾電擾、易受腐蝕、容易折損、不能適用于惡劣環(huán)境的不足;而采用LonWorks網絡技術,使之成為一分布式的系統(tǒng),有效作用范圍高達數公里,并且穩(wěn)定性、可靠性和抗干擾性大大提高,可以滿足大型企業(yè)尤其是化工、煤礦、冶金等企業(yè)的人員考勤。
本套系統(tǒng)實現(xiàn)簡單,成本低廉,網絡維護方便,有望生產較好的經濟效益和社會效益,具有廣闊的應用前景。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論