李剛
(北京大學醫(yī)學部總務處,北京100191)
門禁系統(tǒng)在人們日常工作生活中的應用普及程度越來越高,隨著嵌入式技術在性能和功能等方面的迅速提升,門禁系統(tǒng)的關鍵設備門禁控制器,也由最初的單片機控制逐步發(fā)展為嵌入式系統(tǒng)控制,很好地解決了單片機處理能力不夠、存儲容量小等固有的局限性問題。但隨著門禁系統(tǒng)的應用場景越來越豐富,對門禁系統(tǒng)的高性能、易用性、穩(wěn)定性和安裝、維護、升級等的便捷性提出了更高的要求。
基于此,本著“類傻瓜式”易用性目標,本文提出了全嵌入式門禁系統(tǒng)的設計思路,在硬件上保證高性能的同時還要保證安裝簡單、易用,在軟件上將管理軟件、數據庫、門禁控制程序均內置于控制器內,不需要專配計算機或服務器單獨安裝配套軟件,只需通過瀏覽器直接訪問控制器內置的web服務器進行便捷管理與維護。
系統(tǒng)采用中央、本地兩級分布式結構,如圖1所示,兩級監(jiān)管、兩級存儲。其中門禁控制器和系統(tǒng)控制器均采用基于TI工業(yè)級高性能嵌入式微處理的工業(yè)控制計算機系統(tǒng)平臺,唯一區(qū)別是裝載的軟件包不同,系統(tǒng)控制器因承擔了系統(tǒng)上位機的功能,相比于門禁控制器,其嵌入式web服務器和數據庫功能更全面,用來對整個門禁系統(tǒng)進行配置和管理,與此同時,它仍可兼做門禁控制器使用。管理員只要能接入門禁系統(tǒng)的網絡,便可訪問任意控制器的web服務,實現對所有門禁控制器的管理。
圖1 系統(tǒng)結構示意圖
AM335X內嵌Cortex-A8高速32位處理器,主頻為720 MHz,完整的MMU可支持多種復雜的現代操作系統(tǒng)運行,性價比也高,這在市場競爭中至關重要。Cortex-A8是一款成功的ARM內核,作為嵌入式應用系統(tǒng)的關鍵組成部分,目前已被廣泛應用于移動終端、掌上電腦和許多其他日常便攜式消費電子設備[1]。AM335X支持總線擴展并包含豐富的片內外圍,非常適合于門禁系統(tǒng)所需功能,主要使用AM335X的如下硬件特性[1-2]。
串行接口:AM335X支持多個串口,可方便連接各種外部串行設備,在本設計中,通過總線外擴串口與片內串口配合,以實現門禁系統(tǒng)所要求的多路串口功能。
外部總線接口:用于實現串口擴展。
以太網MAC:AM335X內嵌2個10 M/100/1 000 Mbps以太網MAC,通過外擴PHY,可方便實現門禁系統(tǒng)所需的網絡連接功能。
VGA接口:AM335X內嵌功能強大的LCD控制器,分辨率最高可達1 366×768,通過外擴的LCD與VGA轉換電路,實現門禁系統(tǒng)所要求的VGA輸出接口功能。
音頻接口:AM335X內嵌音頻接口,通過外擴音頻編碼/解碼電路,實現門禁系統(tǒng)所要求的音頻輸入輸出功能。
USB接口:AM335X內嵌USB控制器,配合相關外圍電路,實現門禁系統(tǒng)所要求的USB接口功能。
GPIO接口:AM335X支持多路GPIO,實現門禁系統(tǒng)所要求的各種狀態(tài)信號的輸入/輸出功能。
由于AM335X內部存儲空間有限[3],僅有64 KB RAM和176 KB ROM,為滿足實際應用的需要,擴展了RAM和ROM存儲器。RAM存儲器采用高速DDR3 SDRAM構建,容量為512 MB,用于支持門禁系統(tǒng)的高速運行;RAM存儲器選用MICRON的16位數據寬度的器件MT41J256M16,作為操作系統(tǒng)程序及用戶應用程序的運行空間。ROM存儲器采用1 GB NAND Flash構建,用于存儲系統(tǒng)程序、配置信息及用戶數據等需要掉電保持的數據。ROM存儲器選用SAMSUNG的8位數據寬度、1 GB的NAND Flash器件K9F8G08-SIB0,作為操作系統(tǒng)及用戶應用程序的靜態(tài)存儲空間。
因門禁系統(tǒng)中某些場所讀卡器到控制器的距離較遠,為解決好信號通訊問題,讀卡器到控制器之間采用RS485方式傳輸,RS485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力,最大傳輸距離標準值為1 200 m。
為解決不同場景的多應用需求,本系統(tǒng)設計了多達10路的RS485串行通信接口,既能有效減少門禁系統(tǒng)總體建設成本,還能提供豐富的輔助輸入輸出應用接口功能,同時為樓宇自動化系統(tǒng)提供便捷的系統(tǒng)集成接口,在具體應用場景中可靈活選擇可控制門的數量(最多10個門)、輔助輸入輸出的類型和數量。但AM335X內嵌的UART接口數量(6個)無法滿足需求,因此,需要再通過外擴相關電路,實現系統(tǒng)所需的串口通訊接口。本系統(tǒng)采用TI的4串口擴展器件TL16C554AI[4],該器件內部包含4個完全一樣的串行收發(fā)單元,并內嵌16字節(jié)FIFO以減少收發(fā)中斷次數,從而加快通信速度。
控制器設計為19英寸(1英寸=2.54 cm)標準1U機柜型機箱,可機柜或壁掛安裝,還可配合專用配件疊型安裝,節(jié)省空間。為降低模具成本,機箱設計為單門、雙門、4門、8門、10門等多種型號通用配置,以適用不用應用場景的多種需求。內置電源和內置繼電器回路控制,接線端子移至機箱外部,每個門對應一組接線端子,讀卡器、門磁、門鎖、開門按鈕以及其他消防報警聯(lián)動輔助輸入輸出設備的接線方式簡單易操作,降低接線難度,減少接線錯誤,并對所有點位運行狀態(tài)設置全狀態(tài)LED指示燈。
控制器機箱除上述外接端口外,還設有2個RS-232、1個VGA、1個百兆網口、4個USB2.0、1個SD卡插槽、2個Audio接口,為控制器提供了音視頻需求設備的就近安裝可能,也給暫不具備網絡條件的用戶提供了直接連接鍵盤、鼠標、顯示器等外設進行控制器設置的可選項。
軟件系統(tǒng)主要包含操作系統(tǒng)(移植到硬件平臺的嵌入式LINUX系統(tǒng))、設備驅動程序、各類HMI接口程序、門禁系統(tǒng)后臺服務程序、網絡通訊程序以及嵌入式web服務器和數據庫等。其中,嵌入式web服務器和數據庫是本系統(tǒng)的突出特點。
由于門禁控制設備的安裝環(huán)境因實際需求不同各異,且絕大多數情況下的安裝位置不利于實地管理和維護,因此,基于TCP/IP的門禁系統(tǒng)更符合易安裝易維護的設計理念,除布線施工方便外,最大的優(yōu)勢是可以在嵌入式系統(tǒng)中部署web管理功能,用戶只需使用瀏覽器方便地訪問門禁設備,實現與設備的數據交互,從而對設備進行遠程配置維護、數據實時采集等[5]。嵌入式webserver有多種,本文采用的是Goahead。
Goahead webserver是為嵌入式實時操作系統(tǒng)(RTOS)量身定制的,而且是一個開源(商業(yè)許可)、簡單、輕巧、功能強大、可以在多個平臺運行的嵌入式webserver,支持ASP、嵌入式的JavaScript、CGI執(zhí)行,支持內存中的CGI處理GoForm;可以使用C語言編程定制Web頁面里的HTML標簽;可以利用它提供的EJscript和GoForm進行方便有效的動態(tài)數據交互,而且也能方便地實現Ajax動態(tài)效果增強用戶使用體驗[5-6]。除此之外,Goahead還支持使用SSL進行數據加密和認證,還支持摘要認證機制,以及它的用戶管理功能可以對不同的用戶設置不同的訪問權限;支持多種操作系統(tǒng),并且移植非常方便。
本文采用SQLite作為門禁系統(tǒng)的嵌入式數據庫,由于在嵌入式中實現數據庫操作,必須選擇公開源碼的,性能好、運行速度快、查詢速度快、穩(wěn)定可靠、規(guī)模小的數據庫,門禁系統(tǒng)數據庫表之間也并沒有多少復雜的關聯(lián)關系,而SQLite則簡單易用,速度也很快,同時提供了豐富的數據庫接口,在操作語句上類似關系型數據庫的產品,使用也非常方便,它的設計思想是小型、快速和最小化管理,完全滿足本系統(tǒng)的使用要求。
SQLite在大小和功能之間找到了一個理想的平衡點,完全的開源代碼使其可以稱的上是理想的“嵌入式數據庫”[7]。SQLite實現了完備的、可嵌入的、零配置的SQL數據庫引擎。它的主要特點包括[8-9]:①事務處理是原子的、一致的、獨立的和持久的(ACID),即使在系統(tǒng)崩潰和掉電以后;②零配置,即不需要設置和管理;③實現了絕大部分的SQL92標準;④一個單獨的磁盤文件存儲一個完整的數據庫;⑤數據庫文件在機器之間可自由共享;⑥支持數據庫文件大小至2 TB;⑦字符串的大小只受限于可用存儲器容量;⑧代碼量小,即小于30 K的C代碼行和小于250 K的代碼空間;⑨對于絕大多數普通操作來說,比流行的C/S模式的數據庫引擎運行速度快;⑩API簡單、易用。
門禁管理系統(tǒng)根據控制器是作為系統(tǒng)控制器還是本地控制器分為系統(tǒng)和本地兩個版本,本地版本只需滿足本地控制器所需的系統(tǒng)管理和必要的監(jiān)控管理功能即可,而系統(tǒng)版本功能更全,主要包含如下功能模塊。
系統(tǒng)管理:包括全局設置、時區(qū)設定(節(jié)假日定義、時間集和時間段定義)、數據維護、版本升級、系統(tǒng)接口,提供標準接口協(xié)議與其他系統(tǒng)進行聯(lián)動或集成。
設備管理:系統(tǒng)控制器管理、門和門組管理、門禁控制器參數設置與安裝等。
人員管理:部門管理、人員和人員組管理、卡管理、卡關聯(lián)等。
門禁監(jiān)控:動態(tài)顯示每一道門的讀卡、按鈕、門狀態(tài)、報警等信息,并可對門進行遠程控制或進行重新布防、撤防等操作。
事件管理:與門禁監(jiān)控模塊對應,主要作為運行時間或歷史事件的查詢統(tǒng)計功能。
用戶管理:直接利用Goahead提供的用戶認證和授權功能框架實現門禁系統(tǒng)管理員維護、組訪問權限、操作日志管理等。
上述設計已經將門禁系統(tǒng)從硬件的易安裝、軟件的免安裝等方面做了充分考慮,更多地是簡化施工人員的操作復雜度,但對于門禁系統(tǒng)的最終用戶來說,易維護更是實現“類傻瓜式”易用性目標的關鍵,因此,在管理系統(tǒng)的數據維護模塊,重點設計了如下特點。
默認標準模式:在軟件中內置默認標準模式,標準模式能夠滿足絕大多數常規(guī)應用,個別個性化的要求也可重新設置參數,更改為新的標準模式??刂破靼惭b后,可通過標準模式自動匹配人員信息、卡信息、進出模式等,減少調試人員的工作量。
信息批量導入:客戶的人員信息、卡信息、部門信息等均可通過文本格式,自動導入到系統(tǒng)內,減少調試時手動錄入。
應用程序在線升級:登錄管理系統(tǒng),可直接將下載的升級文件復制到控制器內,重啟啟動系統(tǒng)即可,而不需要將設備返廠維修。
備份數據導入導出:管理系統(tǒng)可實現便捷的數據庫、配置信息、人員信息備份導出導入功能,也可以自動將相關信息備份到指定的目錄下,更換控制器后只需將備份文件導入到新的控制器內即可恢復以前的數據,減少了再次調試配置的工作。
本文提出了一種全嵌入式門禁系統(tǒng)的設計思路,目的是既能保證硬件高性能運行,還能盡可能減少因操作系統(tǒng)、數據庫、軟件兼容性、病毒入侵、誤操作等對門禁系統(tǒng)軟件造成的不穩(wěn)定因素和安裝調試復雜度,實現“類傻瓜式”的易用性目標,以期降低集成商、工程商、最終用戶在系統(tǒng)實施和后期使用維護中對廠家的依賴性,使門禁系統(tǒng)真正做到產品化、產業(yè)化、大眾化。