門禁系統(tǒng)中通信平臺的應(yīng)用
2015年09月22日 10:08深圳市中燁通道科技有限公司點(diǎn)擊量:2502
門禁系統(tǒng),主要應(yīng)用于出入口通道的控制和管理。門禁系統(tǒng)常規(guī)的通信結(jié)構(gòu)都是通過RS422/485與計算機(jī)通信。但隨著網(wǎng)絡(luò)的發(fā)展,綜合布線早已被廣泛應(yīng)用,采用TCP/IP通信協(xié)議,通過構(gòu)建綜合布線網(wǎng)絡(luò),實(shí)現(xiàn)跨樓層、跨建筑、跨城市的遠(yuǎn)程聯(lián)網(wǎng)及數(shù)據(jù)傳輸,免去了在同一建筑內(nèi)樓層間,或建筑群之間的總線敷線施工,現(xiàn)在這已成為大家追求的目標(biāo)。
門禁控制器實(shí)現(xiàn)網(wǎng)絡(luò)控制的方式大約有以下幾種:
控制器直接支持TCP/IP功能,這種門禁控制器目前較少。
通過固件完成TCP/IP功能:目前已經(jīng)出現(xiàn)了32位CPU,以及一些通信轉(zhuǎn)換模塊,通過此模塊可以將RS232數(shù)據(jù)轉(zhuǎn)換為TCP/IP功能的通信平臺。
通過軟件實(shí)現(xiàn)TCP/IP功能:大部分的門禁控制器都是采用8位的單片機(jī)進(jìn)行控制,所以無法直接進(jìn)行TCP/IP通信。本文提出的即是一種可以通過軟件技術(shù)使控制器實(shí)現(xiàn)TCP/IP功能的通信平臺。
通信平臺的設(shè)計與實(shí)現(xiàn)
通過軟件技術(shù)實(shí)現(xiàn)TCP/IP功能,可以在硬件控制器以及控制器端的接線不做任何改變的基礎(chǔ)上完成。所以對兼容早期門禁控制器產(chǎn)品具有很大的實(shí)際意義,其具體的設(shè)計細(xì)節(jié)如下所述。
通信平臺功能
支持多用戶多客戶端通信模式;
接受客戶端通信數(shù)據(jù)并通過RS422/485發(fā)送到門禁控制器;
接受從RS422/485發(fā)送上來的門禁控制器數(shù)據(jù),打包成TCP/IP包后發(fā)送給遠(yuǎn)程客戶端;
數(shù)據(jù)主動回收。
通信平臺的系統(tǒng)結(jié)構(gòu)
通信平臺作為業(yè)務(wù)層與主控制器之間的通信紐帶,在用戶局域網(wǎng)里,多個工作站上運(yùn)行業(yè)務(wù)層的應(yīng)用程序,通過TCP/IP與通信平臺通信,可同時訪問Intranet網(wǎng)絡(luò)內(nèi)的多個主控制器。這樣既可以穩(wěn)定地完成多用戶的請求需要,又可做到快速地與主控制器通信。
通信平臺同時擔(dān)當(dāng)起串口通信與TCP/IP通信的角色,以異步通信方式,多線程處理TCP/IP通信與串口通信接發(fā)包。可以做到多監(jiān)控系統(tǒng)同平臺同時運(yùn)行,實(shí)時接發(fā)數(shù)據(jù)。因此在這平臺上,只要串口數(shù)目允許的情況下,業(yè)務(wù)可以自由擴(kuò)展。目前,通信平臺只支持串口通信,USB口以及并口以后再予完善。
除了自動回收記錄數(shù)據(jù)外,對于其它的通信數(shù)據(jù)包,通信平臺不起解釋協(xié)議的作用,只是負(fù)責(zé)套接字與串口之間的轉(zhuǎn)發(fā)包。所以在套接字之間需一套協(xié)議,串口之間需一套底層硬件通信協(xié)議,與串口的底層主控制器的通信協(xié)議一成沒變的采用原來的舊協(xié)議。
自動回收記錄數(shù)據(jù)功能,因?yàn)楸O(jiān)控系統(tǒng)里,出入記錄、事件、告警記錄是zui重要的通信數(shù)據(jù),所以為了安全快捷,通信平臺增加自動定時回收數(shù)據(jù)的功能。回收數(shù)據(jù)的間隔時長由用戶自行設(shè)定,例如每1秒、2秒等回收一次數(shù)據(jù)。回收到的記錄數(shù)據(jù)通過解釋協(xié)議,解析包以后把有效數(shù)據(jù)存入到數(shù)據(jù)庫里,如果寫數(shù)據(jù)庫失敗,則把數(shù)據(jù)寫入到文本文件里。
因?yàn)楸酒脚_用在通信主控機(jī)上,所以作為通信軸鈕,安全與穩(wěn)定性特別重要。所以為了及時監(jiān)測到本平臺的異常情況,需要另外一個輔助模塊來實(shí)時監(jiān)測通信平臺及主控機(jī)的運(yùn)行情況,如果發(fā)現(xiàn)平臺出現(xiàn)意外情況,告警模塊需要及時發(fā)出告警信號,通知相關(guān)的網(wǎng)絡(luò)管理員。所以本平臺需要與告警模塊實(shí)時通信,實(shí)時處理告警模塊的通信數(shù)據(jù)包。
程序基本流程思路
1.通信平臺采用多線程異步通信轉(zhuǎn)發(fā)包,TCP/IP端口監(jiān)視線程,監(jiān)聽到一個用戶連上來,就為該連接創(chuàng)建一個接收TCP/IP數(shù)據(jù)的線程,接收TCP/IP數(shù)據(jù)的線程接收到有效數(shù)據(jù),就通過消息發(fā)送方式,把數(shù)據(jù)包發(fā)送給要訪問的串口類對象的TCP/IP數(shù)據(jù)處理線程的消息隊(duì)列,等待該線程處理。該TCP/IP數(shù)據(jù)處理線程獲取消息,再檢查是否可以發(fā)送,如果可以,則把該數(shù)據(jù)請求包通過串口發(fā)送給主控制器。
2.串口類對象的接收數(shù)據(jù)的線程,利用WINDOWS消息觸發(fā)機(jī)制,串口數(shù)據(jù)一來到就產(chǎn)生一個接收數(shù)據(jù)的消息,立即從該串口接收數(shù)據(jù),然后處理一下,通過消息發(fā)送方式,把數(shù)據(jù)包發(fā)送給該串口類對象的串口數(shù)據(jù)處理線程進(jìn)行數(shù)據(jù)處理。
3.串口數(shù)據(jù)處理線程進(jìn)行數(shù)據(jù)處理完畢后,就發(fā)消息通知TCP/IP數(shù)據(jù)處理線程把該TCP/IP數(shù)據(jù)包從數(shù)據(jù)緩沖區(qū)里清除掉。
多線程異步機(jī)制
?TCP/IP通信方面,一個監(jiān)視SOCKET連接的線程,每個SOCKET連接都有一個接收數(shù)據(jù)TCP/IP數(shù)據(jù)的線程;
?串口通信方面,每個串口有一個TCP/IP數(shù)據(jù)處理線程、串口數(shù)據(jù)接收線程、串口數(shù)據(jù)處理線程、回收記錄數(shù)據(jù)入庫線程。
套接字與串口通信原理
1.TCP/IP通信:與業(yè)務(wù)端的通信采用WinSockAPI進(jìn)行TCP/IP通信,通信平臺作為Socket的Server端,操作步驟如下:
①ocket初始化成功,就建立起一個監(jiān)聽線程,在不斷的監(jiān)測是否有Client端的Socket連接上來。同時建立起一個寫線程,供所有套接字發(fā)送數(shù)據(jù)用。
②如果監(jiān)測到有Client連接上來,創(chuàng)建該連接的一個讀Socket線程,Socket描述字通過讀取公用變量來傳給讀線程的局部變量。
③不斷地監(jiān)測該Socket端口是否有數(shù)據(jù),一旦接收到數(shù)據(jù),根據(jù)協(xié)議的格式,取確定長度的數(shù)據(jù)。然后根據(jù)數(shù)據(jù)包檢查客戶請求模式。
④如果是打開串口,則打開串口,發(fā)回執(zhí)行結(jié)果,返回第③步。
⑤如果是關(guān)閉串口,因?yàn)槎嘤脩舻哪J剑挥杼幚恚祷氐冖鄄健?br />
⑥如果是請求串口處理,把數(shù)據(jù)包發(fā)送給屬于要訪問的該串口對象的TCPIP數(shù)據(jù)處理線程的TCPIP數(shù)據(jù)包緩沖區(qū),返回第③步。
2.串口通信:串口通信采用主從應(yīng)答式與主控制器一對一的通信,PC機(jī)為主,主控制器為從。運(yùn)行步驟如下:
①接收串口數(shù)據(jù)的線程在事件檢測方式檢測串口緩沖區(qū)是否有數(shù)據(jù)到來。
②有數(shù)據(jù)到來,一次性接收完緩沖區(qū)里的全部數(shù)據(jù),判斷數(shù)據(jù)類型。
③如果是“S”信號,就由互斥保護(hù)的結(jié)構(gòu)體標(biāo)志量的字段的值為的值。標(biāo)志量是結(jié)構(gòu)體類型的公用變量,結(jié)構(gòu)體內(nèi)容為:typedefstructFLAG_SERIAL_STRUCTURE(BOOLbCanSend;//是否接收到了主控器發(fā)來的0x53信號DWORDdwReceiveTime;//接到0x53信號的時間)StrucFlagSerial;返回第①步。
④如果是有效數(shù)據(jù),則發(fā)送數(shù)據(jù)包給該串口類對象的串口數(shù)據(jù)處理線程進(jìn)行相應(yīng)的處理。返回第①步。
串口數(shù)據(jù)的處理
1.在串口數(shù)據(jù)處理線程里處理,接收到數(shù)據(jù)包后,因?yàn)榻邮諗?shù)據(jù)比較長時,不能以一個完整的數(shù)據(jù)幀來接收。超時等待重組后來接收到的數(shù)據(jù)包。檢查接收到的數(shù)據(jù)是否有效與校驗(yàn)和是否正確。
2.是否如果是回收記錄的數(shù)據(jù),則解析數(shù)據(jù)格式,得到有效的記錄數(shù)據(jù),以消息包的形式發(fā)送給寫數(shù)據(jù)庫的線程,把有效數(shù)據(jù)以調(diào)用存儲過程的方式寫入到數(shù)據(jù)庫里。返回1。
3.如果是業(yè)務(wù)端發(fā)來的請求,則封裝打包通過SOCKET連接發(fā)給業(yè)務(wù)。返回1。
串口通信流程還是走以前的PC機(jī)與單片機(jī)為主從式的通信方式,也是目前平臺實(shí)現(xiàn)了的功能,PC機(jī)發(fā)請求,單片機(jī)回數(shù)據(jù)包。這個同主控制器通信的功能正在等待完善。
每個串口的TCP/IP數(shù)據(jù)處理線程中需要維護(hù)一個數(shù)據(jù)緩沖區(qū),即TCP/IP數(shù)據(jù)鏈表。每次從SOCKET得到數(shù)據(jù),加入到該數(shù)據(jù)包請求的串口實(shí)例對象所屬的數(shù)據(jù)緩沖鏈表的表尾。再以該實(shí)例對象所創(chuàng)建的數(shù)據(jù)處理線程來從表頭一個一個的處理。另外一個需要維護(hù)的就是寫串口時主控制器發(fā)來的標(biāo)志量結(jié)構(gòu)體數(shù)據(jù),以標(biāo)識主控器是否處于PC有效時期。
結(jié)論
本文提出的通信平臺解決了門禁控制器不能進(jìn)行網(wǎng)絡(luò)通信的問題,它支持局域網(wǎng)、INTERNET等網(wǎng)絡(luò)結(jié)構(gòu),所以可以跨單體樓、跨城市,只要有網(wǎng)絡(luò)的地方都可以遠(yuǎn)程控制門禁系統(tǒng),實(shí)現(xiàn)了基于TCP/IP的網(wǎng)絡(luò)門禁控制系統(tǒng)。使得門禁系統(tǒng)可以實(shí)現(xiàn)集中控制,滿足了目前很多大公司全國分公司集中控制門禁授權(quán)的要求,減少了人力資源和系統(tǒng)實(shí)施的費(fèi)用與成本。對當(dāng)前基于WEB的門禁系統(tǒng)的設(shè)計有很大意義。
版權(quán)與免責(zé)聲明:
凡本網(wǎng)注明“來源:智慧城市網(wǎng)”的所有作品,均為浙江興旺寶明通網(wǎng)絡(luò)有限公司-智慧城市網(wǎng)合法擁有版權(quán)或有權(quán)使用的作品,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來源:智慧城市網(wǎng)www.cmr6829.com”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它來源(非智慧城市網(wǎng)www.cmr6829.com)的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或和對其真實(shí)性負(fù)責(zé),不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品第一來源,并自負(fù)版權(quán)等法律責(zé)任。
-
免費(fèi)注冊后,你可以
了解安防行業(yè)更多資訊查看安防行業(yè)供求信息凸顯安防行業(yè)自身價值
馬上注冊會員
-
想快速被買家找到嗎
只需要發(fā)布一條商機(jī),被買家找到的機(jī)會高達(dá)90%!還等什么?
馬上發(fā)布信息