• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 測試測量 > 設計應用 > 基于LonWorks和iButton技術的新型電子考勤裝置

    基于LonWorks和iButton技術的新型電子考勤裝置

    作者: 時間:2006-05-07 來源:網絡 收藏

    摘要:闡述一種新型的基于LonWorks和iButton技術的電子考勤裝置的特點,著重介紹其硬件組成、軟件設計及系統工作原理,最后講述具體的應用場合。

    本文引用地址:http://www.czjhyjcfj.com/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不再難懂)


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 桑日县| 宁德市| 清苑县| 永顺县| 太原市| 石渠县| 广宗县| 开原市| 沙洋县| 天全县| 平和县| 潍坊市| 博野县| 缙云县| 凤凰县| 青浦区| 文昌市| 卫辉市| 秦皇岛市| 伊通| 万全县| 山西省| 清河县| 瑞丽市| 平陆县| 原阳县| 乡宁县| 贵德县| 屯门区| 蓝山县| 新闻| 阜新市| 乌兰浩特市| 博兴县| 珠海市| 县级市| 霞浦县| 邮箱| 靖江市| 新巴尔虎右旗| 额尔古纳市|