畢 業 論 文
基于射頻識別技術的門禁系統設計
作 者 姓 名 : 專 業、班 級: 學 號: 校內指導教師: 校外指導教師: 完 成 日 期 :
黃河水利職業技術學院自動化工程系
摘 要本文研究一種基于射頻識別(RFID)技術的門禁系統。(1)研究了基于射頻識別技術的門禁系統的總體設計,設計了射頻IC讀卡器的電路原理圖。讀卡器主要由射頻天線、讀卡模塊、RS485通信接口及單片機控制系統組成,(2) 深入研究RFID 天線的EMC過濾器、接收電路以及天線匹配電路等構成并設計優化了天線耦合電路。(3)門禁終端通信采用RS485總線,同時結合門禁讀卡器研究了RS485的網絡拓撲結構,通過RS485接口與PC機組成通信網絡系統。(4)設計單片機的包看門狗、液晶顯示、數據存儲和實時時鐘等在內的外圍模塊電路。(5)采用模塊化軟件設計方法,根據MF RC500的特性,系統地對MF RC500芯片的操作流程進行研究,設計主程序的流程圖和各個模塊子程序。(6)并建立一個Access數據庫用來存儲用戶信息。上位機與下位機之間的通信采用串口通信,選用MAX232CPE芯片完成上、下位機之間的通信。
關鍵詞:門禁系統;射頻識別;MF RC500;非接觸式IC卡;串口通信
目 錄 摘 要..................................................................................................................................... I 引言............................................................................................................................................ 1 第1章門禁系統總體設計方案.............................................................................................. 2 1.1 門禁系統總體系統設計............................................................................................. 2 1.2 門禁系統硬件設計..................................................................................................... 2 1.3門禁系統軟件設計...................................................................................................... 3 第2章門禁系統主要硬件電路設計...................................................................................... 3 2.1 門禁主控器................................................................................................................. 3 2.2源模塊設計.................................................................................................................. 5 2.3射頻控制模塊設計...................................................................................................... 6 2.3.1 射頻識別系統的典型結構.............................................................................. 6 2.3.2射頻識別系統原理........................................................................................... 7 2.4 RS485通信模塊設計.................................................................................................. 9 2.4.1 RS485接口............................................................................................. 9 2.4.2 RS485網絡拓撲結構........................................................................... 11 2.5 液晶顯示模塊設計................................................................................................... 13 2.5.1 LCD1602介紹................................................................................................ 13 2.5.2 引腳功能介紹................................................................................................ 14 2.5.3 寄存器選擇功能及指令功能........................................................................ 14 2.6實時時鐘的硬件設計................................................................................................ 15 2.6.1 實時時鐘的接口............................................................................................ 15 2.6.2 時鐘數據傳輸的控制.................................................................................... 16 2.6.3 時鐘數據傳送方式........................................................................................ 17 2.7電平轉換電路設計.................................................................................................... 17 2.7.1電平轉換芯片................................................................................................. 17 2.7.2 MAX232芯片................................................................................................. 18 2.7.3電路連接圖..................................................................................................... 19 2.8報警電路設計............................................................................................................ 19 第3章IC卡與門禁主控器的選擇........................................................................................ 20 3.1非接觸式IC卡的選擇.............................................................................................. 20 3.2門禁控制電路............................................................................................................ 21 3.3 讀卡器選擇............................................................................................................... 22 第4章門禁系統軟件設計.................................................................................................... 24 4.1系統總體程序流程設計............................................................................................ 24 4.2 射頻控制模塊........................................................................................................... 24 4.4 通訊模塊................................................................................................................... 27 4.5顯示模塊.................................................................................................................... 31 4.6上位機設計................................................................................................................ 32 4.6.1 上位機程序流程圖........................................................................................ 32 4.6.2用戶登錄界面設計......................................................................................... 33 4.6.3門禁系統界面設計......................................................................................... 35 第5章系統調試及結果分析.................................................................................................. 37 5.1 系統調試................................................................................................................... 37 5.2 結論分析................................................................................................................... 37 參 考文 獻............................................................................................................................ 38 附錄 部分電路原理圖及PCB圖........................................................................................... 39 致 謝.................................................................................................................................. 41
引言隨著我國社會主義市場經濟的深入發展和未來知識經濟時代的臨近,門禁系統作為一項安防措施,將會形成更大規模的產業。這方面的社會需求已在逐步升溫。作為政府職能的重要組成部分,保障公民生命財產安全和社會的安定,實施綜合安全服務工程將會像環保工程、生態農業工程一樣,受到社會的關注和公眾的歡迎。 出入口門禁安全管理系統是新型現代化安全管理系統,它集微機自動識別技術和現代安全管理措施為一體,它涉及電子,機械,光學,計算機技術,通訊技術,生物技術等諸多新技術。它是解決重要部門出入口實現安全防范管理的有效措施。適用各種機要部門,如銀行、賓館、機房、軍械庫、機要室、辦公間、智能化小區、工廠等。
第1章 門禁系統總體設計方案1.1 門禁系統總體系統設計基于MF RC500射頻識別門禁系統是以射頻識別讀寫器為核心,系統的總體結構見圖,門鎖繼電器以及其他一些輔助器件而組成的系統。系統的工作原理是先由微處理器ATmega16控制射頻識別讀寫器讀取非接觸式IC卡的信號,接著,ATmega16根據所得數據輸出四個開關量信號(門閥繼電器有兩個,分別控制進出),經放大后分別用于控制門鎖繼電器和讀取門磁信號,并且整個系統與上位PC機之間進行通訊,獲得指令以及傳輸系統狀態等,最后,對系統的輔助設備,如液晶屏、E2PROM等進行操作。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image002.png 圖3.1 系統的總體結構圖 1.2 門禁系統硬件設計系統硬件設計主要由ATmega16主控芯片和非接觸式IC卡模塊構成。硬件電路由八部分構成:微控制器ATmega16、讀卡器模塊非接觸式IC卡、LCD1602顯示、串口通信MAX232、按鍵電路、AT24C04存儲、報警電路、門控電路。微控制器ATmega16負責非接觸式IC卡的初始化,上位機通過串口向非接觸式IC卡發送命令,非接觸式IC卡根據上位機發送的命令做相應的操作,然后將得到的信息傳送給微控制器ATmega16,然后微控制器控制其它模塊完成顯示、報警、判斷和門控操作。上位機與下位機之間的連接主要是通過串口進行通信,采用MAX232芯片并將芯片的輸入和輸出管腳連接到ATmega16的I/O口,在MAX232的引腳上連接10μF的電解電容用來濾波。讀卡器模塊非接觸式IC卡與微控制器ATmega16之間的通信是通過I2C總線進行的,由于ATmega16單片機本身并沒有I2C總線,所以將非接觸式IC卡模塊的串行時鐘線與數據線接到ATmega16的兩個I/O口,然后通過模擬I2C時序來完成ATmega16與非接觸式IC卡之間的通信,為了防止出現三態,在非接觸式IC卡的串行時鐘線和數據線上分別上拉10k電阻。而非接觸式IC卡與RFID卡之間的數據通信主要是通過天線進行的。AT24C04與ATmega16之間的通信也是通過模擬I2C時序進行,同時為了防止出現三態,在時鐘線與數據線上分別連接5.1 k的上拉電阻。LCD1602與ATmega16之間的通信是通過將LCD1602的3條控制線和8條數據線與ATmega16的I/O口相連。對于按鍵電路的設計是將3*4按鍵直接連接到ATmega16的7位I/O口,采用線反轉法通過查詢方式進行工作。 1.3門禁系統軟件設計軟件主要實現數據的采集,數據的分析,模塊之間的通信,以及相應的數據處理。 數據采集:非接觸式IC卡通過天線讀取RFID卡的數據,然后將數據傳送出去。 數據分析:ATmega16接收到數據后,將數據傳送給AT24C04或上位機,AT24C04或上位機對數據進行分析,從而判斷數據的有效性。 模塊之間的通信:ATmega16與AT24C04之間的通信都是通過模擬I2C總線進行的, I2C總線的高效性、高實用性、高可靠性數據傳輸增強了系統的實時性和可靠性。 數據處理:針對數據的采集和分析的結果做出相應的處理,例如顯示、報警、門控等。 第2章 門禁系統主要硬件電路設計2.1 門禁主控器門禁系統的主控設備采用ATmega16單片機。AVR系列單片機是ATMEL公司開發的新一代單片機,在設計上打破常規,采用了全新的概念,突出的優點是高性能、低功耗的 8 位AVR 微處理器,并且具有先進的RISC結構,方便設計者使用。一般而言ATmega16在1 MHz,3V, 25°C 時的功耗正常模式時的工作電流為 1.1mA ,空閑模式時的工作電流為 0.35mA,掉電模式時的工作電流 < 1 μA。此外,該系列單片機擁有各種流行接口,方便與目前許多種類的外圍設備連接通信,操作方便快捷,非常適合于低功耗、混合信號處理的產品與應用。ATmega16的硬件設計特點如下: (1)CPU設計 ATmega16單片機的CPU采用8位的RISC結構。擁有32個8位通用工作寄存器,其中X、Y、Z 特殊寄存器可以用作3 個16 位的間接尋址寄存器指針以尋址數據空間,實現高效的地址運算。 (2)內部存儲器分為程序存儲器(FLASH)和數據存儲器(RAM) ATmega16具有豐富的內部存儲單元,包括16K字節的程序存儲器FLASH,512 字節EPROM和1K字節SRAM。 (3)輸入/輸出(I/O)口 ATmega16單片機32 個通用I/O 口線,作為通用數字I/O 使用時,所有AVR I/O 端口都具有真正的讀- 修改- 寫功能。這意味著用SBI 或CBI 指令改變某些管腳的方向( 或者是端口電平、禁止/ 使能上拉電阻) 時不會無意地改變其他管腳的方向( 或者是端口電平、禁止/ 使能上拉電阻)。有些引腳還具有特殊功能,包括可工作于主機/ 從機模式的SPI 串行接口。 (4)定時/計數器 ATmega16系列單片機有2個兩個具有獨立預分頻器和比較器功能的8位定時器/計數器一個具有預分頻器、比較功能和捕捉功能的16位定時器/計數器 (5)指令系統 ATmega16系列單片機具有先進的RISC 結構,131條指令,并且大多數指令執行時間為單個時鐘周期 (6)睡眠模式 空閑模式、ADC 噪聲抑制模式、省電模式、掉電模式、Standby 模式以及擴展的Standby模式 綜上所述,ATmega16單片機是一款功能強大、集成資源豐富的智能型微控制器。 利用其上述特性,結合本系統的設計需求,主控設備需要實現以下的操作: (1)控制無線傳輸平臺的傳輸過程,包括發送、接收模塊的配置與控制. (2)控制電子鎖的開啟 (3)LCD輸出顯示的驅動程序 (4)報警模塊的驅動程序 針對以上需實現的功能,ATmega16單片機預留相應的資源與之對應。PB端口與無線傳輸系統的RF模塊相連接,PC端口與LCD顯示模塊相連接,PD口與讀卡模塊相連接,PA口用于電子鎖和報警模塊相連接。ATmega16單片機的引腳圖如圖2.1所示。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image004.jpg 圖2.1ATmega16單片機的引腳圖 2.2源模塊設計門禁系統的電源電路如圖2-2所示 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image006.png 圖2-2電源電路 如圖所示電路為輸出電壓+5V、輸出電流1.5A的穩壓電源。它由電源變壓器T1,橋式整流電路D1,濾波電容C4、C6,防止自激電容C5、C13和一只固定式三端穩壓器(LM7805)組成的。 220V交流市電通過電源變壓器變換成交流低壓,再經過橋式整流電路D1和濾波電容C4的整流和濾波,在固定式三端穩壓器LM7805的IN和GND兩端形成一個并不十分穩定的直流電壓。此直流電壓經過LM7805的穩壓和C6的濾波便在穩壓電源的輸出端產生了精度高、穩定度好的直流輸出電壓。 2.3射頻控制模塊設計2.3.1 射頻識別系統的典型結構射頻識別系統的典型結構見圖2.3主要是由兩部份組成:讀寫器和射頻卡。讀寫器同射頻卡之間通過無線方式通訊,因此它們都有無線收發模塊及天線(或感應線圈)。射頻卡中有存儲器,內存容量為幾個比特到幾十千比特。可以存儲永久性數據和非永久性數據。永久性數據可以是射頻卡序列號,它是用來作為射頻卡的唯一身份標識,不能更改;非永久性數據寫在E2PROM等可重寫的存儲器內,用以存儲用戶數據。射頻卡可以根據讀寫器發出的指令對這些數據進行相應的實時讀寫操作?刂颇K完成接收、譯碼及執行讀寫器的命令,控制讀寫數據,負責數據安全等功能。射頻卡分無源卡和有源卡兩種,有源卡內置天線和電池,而無源卡只有內置天線沒有電池,其能量由讀寫器提供,由于無源卡無需電池因此其尺寸較小且使用壽命長,應用越來越廣泛。讀寫器內的控制模塊往往具有很強的處理功能,除了完成控制射頻卡工作的任務,還要實現相互認證、數據加解密、數據糾錯、出錯報警及與計算機通信等功能。計算機的功能是向讀寫器發送指令,并與讀寫器之間進行數據交換。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image008.png 圖2.3.1 RFID系統典型結構
2.3.2射頻識別系統原理圖2.4為RFID系統的工作過程,這是一個無源系統,即射頻卡內不含電池,射頻卡工作的能量是由射頻讀寫模塊發出的射頻脈沖提供[11-13]。 1射頻讀寫模塊在一個區域內發射能量形成電場,區域大小取決于發射功率、工作頻率和天線尺寸。 2射頻卡進入這個區域時,接收到射頻讀寫模塊的射頻脈沖,經過橋式整流后給電容充電。電容電壓經過穩壓后作為工作電壓。 3 數據解調部分從接收到的射頻脈沖中解調出命令和數據并送到邏輯控制部分。邏輯控制部分接收指令完成存儲、發送數據或其它操作。 4 如果需要發送數據,則將數據調制然后從收發模塊發送出去。 5 讀寫模塊接收到返回的數據后,解碼并進行錯誤校驗來決定數據的有效性,然后進行處理,必要時可以通過RS232或RS422或RS485或RJ45或無線接口將數據傳送到計算機。讀寫器發送的射頻信號除提供能量外,通常還提供時鐘信號,使數據同步,從而簡化了系統的設計。有源系統的工作原理與此大致相同,不同處只是卡的工作電源由電池提供。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image010.png 圖2.3.2射頻識別系統原理圖 系統主要由MCU、時鐘芯片、MF RC500、液晶屏、看門狗以及RS485通信模塊組成。系統的工作方式是先由MCU 控制MF RC500 驅動天線Mifare卡,進行讀寫操作,然后,根據所得的數據對其它接口器件,如液晶屏、E2PROM、時鐘芯片等,進行響應操作,最后,再與PC機之間進行通信,把數據傳給上位機。MCU采用89C52,是因為89C52開發簡單,運行穩定。E2PROM 采用24C64,用于存儲系統的數據。24C64是串口操作方式,是一種性價比較高的存儲芯片。液晶屏采用帶字庫的ST7920,是因為它是并口操作方式的,操作方便。時鐘芯片采用DS1302。DS1302是Dallas公司生產的新型產品,內置電池,可連續使用10 年,可以方便記錄事件的發生時間。為了防止系統“死機”,使用x5045作為看門狗。x5045是串口工作方式,內置E2PROM,可用來存儲一些系統參數。與上位機的通信采用RS485 通信模式,通信距離可以達到1000m左右。整個系統由9V電源供電,再由穩壓模塊7805 穩壓成5V的電源。由于7805的工作熱量很高,故在7805上安置一個散熱片。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image012.jpg 圖2.5 MF RC500與89C52的接口電路 MF RC500是應用于13.56 MHz非接觸式通信中高集成讀卡IC系列中的一員。該讀卡IC系列利用了先進的調制和解調概念,完全集成了在13.56 MHz下所有類型的被動非接觸式通信方式和協議。MF RC500支持IS014443A所有的層。內部的發送器部分不需要增加有源電路就能夠直接驅動近操作距離的天線(100mm)。接收器部分提供一個堅固而有效的解調和解碼電路,用于ISO14443A兼容的應答器信號。數字部分處理ISO14443A幀和錯誤檢測(奇偶&CRC)。此外,它還支持快速CRYPTO1加密算法用于驗證MIFARE系列產品。方便的并行接口可直接連接到任何8位微處理器,這樣給讀卡器/終端的設計提供了極大的靈活性。 2.4 RS485通信模塊設計2.4.1 RS485接口RS485定義了一種平衡通訊接口,它允許在一條平衡線上同時接多個接收器。它的數據信號采用差分傳輸方式,也稱作平衡傳輸。它使用一對雙絞線,將其中一條線定義為A,另一條定義為B [13] 。 通常情況下,發送器A,B之間的電壓在-6~-2V表示邏輯‘0';在+2~+6V表示邏輯‘1',另外有一個信號地C。在RS485中還有一個使能端ENABLE;它用于控制發送器與傳送線A, B斷開與連接。當ENABLE為‘0’時,發送器處于高阻狀態并與平衡雙絞線A, B斷開;只有當ENABLE為‘1’時,RS485的發送器才工作。接收器通過平衡雙絞線將A與B分別對應連接,當接收器A, B之間的電壓在+200mV-+6V之間時,輸出邏輯`1';在-6V ~-200mV時,輸出邏輯‘0'。RS485 可以實現點對多通信和多對多通信,并可同時接32個發送器和32個接收器。RS485需要兩個終接電阻接在傳送總線的兩端(在傳送距離小于300米時可以不接),其阻值要求等于傳送電纜的特性阻抗。本文中PC機與門禁系統之間采用RS485接口實現點對多通訊,工作于半雙工方式 [15] 。 讀卡器在門禁系統中一般距離PC管理機比較遠,而RS232只能用于短距離通信,長距離都用RS485串行通信芯片,數據傳輸距離一般達到1200m。 RS485是RS422的子集,以差分平衡方式傳輸信號,具有很強的抗共模干擾的能力。SP485R芯片管腳及互連電路見圖3.7。 RS485收發器以半雙工方式、單一+5V電源工作,內部一個接收器R,一個驅動器D。 SP485R接口芯片是Sipex公司的一種RS485產品,8個管腳DIP封裝[14][15][16] 。 (1)A ,B 為RS485總線接口。A為非反相接收輸入或非反相驅動輸出,B為反相接收輸入或反相驅動輸出。A端電平高于B端,代表數據1;A 端電平低于B端 ,代表數據0。 (2)DI為發送器輸入端,RO為接收器輸出端。分別與單片機的TXD,RXD連接,單片機輸出的信號從TXD發送,由DI輸入經過SP485R驅動器轉變成A,B信號傳送出去; 外部輸送進來的A,B 信號經過SP485R接收器轉變成一個RO信號 ,輸出給單片機RXD。 (3)RE, DE為收發使能端。RE是接收器輸出使能,低電平有效;DE是驅動器輸出使能 ,高電平有效,SP485R與單片機接口時,DI接單片機的發送端TXD,RO接單片機的接收端RXD,收發使能RE和DE兩個管腳接單片機的一個I/O口線P3.3。 當P3.3= 1,DE滿足要求,SP485R處于發送狀態,當P3.3=0, RE滿足要求,SP485R處于接收狀態。單片機通過控制P3.3 實現與PC機數據交換的串行通信。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image014.png 圖 2.4.1 SP485R 管腳及互連電路 RS485總線型網絡系統連接。數據傳輸采用主從站的方式,主機為PC機,從機為讀卡器單片機。每個從機擁有自己的固定的地址,由主機控制完成網上的每一次通信。R為平衡電阻,通常取為120歐。 開始所有從機處于監聽狀態,等待PC機的呼叫。當PC機向網上發某一從機的地址時,所有從機接收到該地址并與自己的地址相比較,如果相符說明PC機在呼叫自己,應發回應答信號,表示該從機已準備好,可以接收后面的命令和數據。不是呼叫自己,則不予理睬,繼續監聽呼叫地址。PC機收到從機的應答后,則開始一次通信。通信完畢,從機繼續處于監聽狀態,等待呼叫。 由于PC機只有RS232通訊接口,因此必須經過RS232/RS485轉換器轉換信號, PC機才能同門禁系統通信。RS232/RS485轉換器原理見圖3.8。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image016.png 圖2.4.2 RS232/RS485轉換器原理圖 PC機的串口通訊接口經過SP232芯片變成TTL電平,然后使用SP485R將TTL電平變成RS485電平。在SP232和SP485之間采用了高速光電隔離器PS2501以提高抗干擾能力。SP485R是低功耗、半雙工RS485收發器,它包含1個發送器和1個接收器。SP485R芯片與單片機的接口原理圖見圖2.4.3。 在電路設計時,注意A和B端要接一個終端電阻,本系統接的是120歐姆。SP485R芯片有8個引腳,其中需要一個I/O口(本系統采用P3.4) 來控制SP485R的發送數據。當該I/O口為‘1’時,SP485R能發送數據,當為‘0’時,SP485R處于監聽狀態,只能接收數據。
file:///C:/Temp/Temp/msohtmlclip1/01/clip_image018.png圖2.4.3 SP485R芯片與單片機的接口原理圖 2.4.2 RS485網絡拓撲結構網絡中一個或多個功能與傳輸線路互連的點稱為節點。節點可以定義為網絡中通向任何一個分支的端點,或通向兩個或兩個以上分支的公共點。節點間的物理連接結構稱為拓撲,分布式系統中有以下三種網絡拓撲結構: 星形:是中央控制型結構,一切通信經由中央控制節點。這種結構的控制方式簡單、便宜,缺點是中央控制點有故障時,整個系統就會癱瘓,當通信量增加并要求高速通信時,中央控制單元的功能必須擴充,以克服“瓶頸阻塞”問題;如果采用冗余裝置和自動切換技術來改善可靠性,又會大大增加系統的復雜程度和成本。 總線形:所有節點共享一個公共物理通道— 總線。這種結構的特點是:網絡不封閉,容易加擴新節點,甚至用中繼器連接多個總線,形成無根樹結構;節點間通過總線直接通信,速度快、延遲和開銷小;某個節點故障對整個系統的影響相對較小;若采用令牌(Token)傳遞的控制協議,則可保證該網絡有確定的較好的實時響應性。 環形:相鄰節點順序連接形成的環路結構,信息一般僅以一個方向在環上從源節點傳送到目的節點,控制方式簡單,節點間可采用不同傳輸介質,速度也不同,缺點是某個環節故障會阻塞信息通路,可靠性差。 RS485 的網絡拓撲一般只能采用終端匹配的總線型結構,它不支持環形或星形網絡,并且在構建網絡時,應注意如下幾點:1從總線到每個節點的引出線長度應盡量短,以便使引出線中的反射信號對總線信號的影響最低。因為信號在各支路末端反射后與原信號疊加,會造成信號質量下降,并且隨著通信距離的延長或通信速率的提高,其不良影響會越來越嚴重。2應注意總線特性阻抗的連續性,在阻抗不連續點就會發生信號的反射。下列幾種情況易產生這種不連續性:總線的不同區段采用了不同電纜,或某一段總線上有過多收發器緊靠在一起安裝,再者是過長的分支線引出到總線。總之,RS485網絡應該提供一條單一、連續的信號通道作為總線。 門禁控制上位機與讀卡器的底層控制結構采用了基于RS485小型局域網的分布式結構。由于要進行遠距離傳輸數據,所以線路應接終端電阻進行阻抗匹配,以抑制數據傳輸的終端反射,避免信號失真。結構見圖2.4.2。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image020.png 圖2.4.2 上位機與讀卡器的底層控制結構圖 由于沖突檢測和同步通信功能無法由軟件實現,因而RS485總線通常采用二線制主從、異步通信方式。物理層采用帶有屏蔽層的雙絞線,通信方式為半雙工方式,要經過RS232/RS485轉換器才能實現RS232和RS485之間的通信規約以及相應的數據傳輸。 RS485總線可以連接若干個節點,節點的個數,取決于所選用的RS485接口芯片的驅動器能驅動多少個標準的RS485負載。根據規定,標準RS485接口的輸入阻抗為大于等于12千歐 ,相應的標準驅動節點數為32。為適應更多節點的通信場合,有些芯片的輸入阻抗設計成1/2負載大于等于24千歐, 1/4負載大于等于48千歐,甚至1/8負載大于等于96千歐,相應的節點數可增加到64、128和256。 在RS485網絡中,信號在傳輸線上傳送,若遇到阻抗不連續的情況時,就會出現反射現象,從而影響信號的遠距離傳送。因此必須采用阻抗匹配的方法來消除反射。為了與電纜特性阻抗進行匹配,通常在總線的開始和末端都并接120歐電阻。此外,在系統安裝過程中,傳輸線最好采用屏蔽線,而且應盡量做到信號傳輸線單獨鋪設,并且強信號線和弱信號線應盡量避免平行走向,盡量使二者正交,以使電磁耦合干擾減到最小。如果難以做到正交,也可以平行布線,但兩者距離應足夠大。 2.5 液晶顯示模塊設計液晶顯示器(LCD),具有功耗小,體積小,重量輕,超薄等許多其它顯示器無法比擬的優點,近年來被廣泛用于單片機控制的智能儀器、儀表和低功耗電子系統中,LCD可分為段位式LCD、字符式LCD和點陣式LCD。其中段位式LCD和字符式LCD只能用于字符和數字的簡單顯示,點陣式LCD不僅可以顯示字符、數字,還可以顯示各種圖形、曲線以及漢字,并且可以實現屏幕上下左右滾動、動畫功能等功能,用途十分廣泛。本次設計主要是用于顯示正確及錯誤信息,因此從性價比上考慮,選擇了字符式LCD顯示器1602,該顯示器的顯示容量是16×2個字符。 本系統顯示電路設計如圖2.5.1所示。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image022.jpg 圖2.5.1 LCD1602顯示電路原理圖 2.5.1 LCD1602介紹如表3-2所示。VEE為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10k的電位器調整對比度。RS為寄存器選擇信號,高電平時選擇數據寄存器,低電平時選擇指令寄存器。R/W為讀/寫信號,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。 2.5.2 引腳功能介紹表2.5.2 LCD1602引腳功能介紹 續表2.5.2 LCD1602引腳功能介紹 2.5.3 寄存器選擇功能及指令功能如表2.5.3寄存器選擇功能描述,應當注意的是當忙標志為“1”時,表明正在進行內部操作,此時不能輸入指令或數據,要等內部操作結束,忙標志為“0”時。 表2.5.4寄存器選擇功能描述 指令格式:RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 LCD1602共有11種指令:清除,返回,輸入方式設置,顯示開關,控制,移位,功能設置,CGRAM(可自編數據區)地址設置,DDRAM(顯示緩沖區)地址設置,讀忙標志,寫數據到CG/DDRAM,讀數據由CG/DDRAM。 2.6實時時鐘的硬件設計刷卡時要記錄刷卡的時間,可以用單片機的定時器實現,這叫軟件時鐘。它有一定的局限性,設置時間間隔不當、CPU掉電等都會影響時鐘的正常運行。用外接實時時鐘芯片的辦法,不僅能為系統提供一個準確可靠的時鐘,而且節省CPU的資源,用備用電池供電能保證在CPU掉電時也不影響它的正常運行,這叫硬件時鐘。在聯網的情況下,為了保證刷卡的時間與PC機上的時鐘一致,PC機會每隔一定時間校核單片機內的時間。校核辦法是由PC機將時間數據通過串口傳送給單片機,單片機將該時間寫入時鐘芯片的內部時鐘單元,以新的時鐘為準計時。硬件實時時鐘根據數據傳送方式分為兩種,一種是并行接口方式的,如DS12887, DS1387。并行接口方式數據傳送快,但管腳多,與CPU的接口連線多,而且體積大。另一種是串行接口方式的,如DS1302, Philips公司的PCF8583等。這種芯片通常為8腳DIP封裝,占用空間小,連線簡單,一般只需占用CPU的2-3條I/O口線。我們采用體積小、接口簡單的串行實時時鐘DS1302芯片作硬件時鐘。DS1302是美國DALLAS公司推出的低功耗串行通信接口專用芯片,采用3線串行方式與單片機通信。片內有31字節的靜態RAM,日歷時鐘可自動進行閏年補償。時鐘的運行可采用24h或帶AM(上午)和PM (下午)的12h格式。數據可按單字節方式或多字節突發方式傳送。DS1302是DS1202的升級產品,除保持DS 1202的實時時鐘功能外,增加了雙電源管腳。 2.6.1 實時時鐘的接口DS1302時鐘芯片為8引腳DIP封裝,引腳及與單片機的接口方式見圖2. 6.1。管腳的含義 [35][36] : file:///C:/Temp/Temp/msohtmlclip1/01/clip_image024.jpg 圖2. 6.1 實時時鐘的接口電路設計 (1)X1, X2外接32768Hz的石英晶振; (2) Vcc1,Vcc2是電源引腳,單電源供電時接Vcc1腳,雙電源供電時主電源接Vcc2,備份電源接Vcc1, (3)SCLK是串行時鐘輸入線; (4)I/O是雙向串行數據傳送線,串行數據在時鐘SCLK的上升沿輸入; (5) RST為串行通信允許信號,RST=1允許通信,RST=0禁止通信。 它與AT89C52的連接見圖3. 14 [34] ,DS1302與AT89C52連接的3根線是: (1) SCLK接CPU的P1.4, 同步時鐘輸入; (2) RST接CPU的P1.5,通信允許信號; (3) IO接 CPU的P1.4,串行數據輸入輸出。 DS1302其它管腳的連接: (1) X1,X2接32768Hz的石英晶振 (2) Vccl接3.6V,60mAh備用理電池,為時鐘的不間斷運行提供電源。 2.6.2 時鐘數據傳輸的控制每個數據傳輸都是以先送命令字節開始,隨后才是數據。命令字節又叫地址命令字節,其中包含要訪問的地址及訪問控制方式。格式如下: 最高位必須是邏輯1,如果是0,則DS1302不允許寫。D6位為邏輯0是操作時鐘,邏輯1是內部RAM操作。D1到D5指出要操作的寄存器地址。D0是讀/寫操作控制,邏輯0是寫,邏輯1是讀。命令字節本身總是輸入,低位D0在前 [1] 。 2.6.3 時鐘數據傳送方式DS1302有單字節傳送方式和多字節傳送方式。在RST=1期間(RST必須為1數據傳送才有效),先送命令,緊接著發送一個字節的數據。DS1302在接收到命令后自動將數據寫入指定的內部地址或從該地址讀取數據!岸䲠祿赟CLK的上升沿有效,讀數據是在SCLK的下降沿有效。如果有額外的SCLK,會重新發送數據字節。多字節突發(burst)方式傳送與單字節傳送方式相似,在命令字節后,是多個字節的數據。但命令字節中的地址A0-A4必須全為1。在RST=1期間,DS1302接收到命令后,接著進行8個字節時鐘或31個字節內部RAM數據的讀寫操作。時鐘操作時,A0-A4表示的時鐘寄存器地址中,00H-06H分別對應存放秒、分、時、日、月、星期、和年信息的寄存器,07H為寫保護控制寄存器,08H為電池充電控制寄存器。時鐘數據以BCD碼格式存放在00H-06H這7個寄存器中 [1][2] 。 (1) 秒寄存器地址是00H,低4位為秒的個位。最高位為時鐘控制位,該位為1時鐘振蕩器暫停,時鐘停,為0時鐘正常運行。高三位為秒的十位。 (2)分鐘寄存器地址是01H,低4位為分的個位,最高位為0,高三位為分的十位。 (3)小時寄存器地址為02H,D7位為12/24小時選擇位,D7=1是12小時制,此時D5表示上午/下午 ,D5=1是下午;24小時制時,D5是小時十位的另一位,即此 時 要用兩位來表示小時的十位,D6位固定為0。 (4)寫保護寄存器為地址07H,也叫控制寄存器。最高位為寫保護控制位WP,其它位為0。 WP =1,不能向其它寄存器寫。因此,在向DS1302進行寫入操作之前必須先使寫保護寄存器的最高位為0,然后才能寫入其它單元。 2.7電平轉換電路設計2.7.1電平轉換芯片如果兩個51系列單片機系統之間距離很短,可以通過將它們的自帶串口直接連接的方法實現雙機通信[15]。但若通信距離較遠,就可使用RS-232C接口延長通信距離。RS-232C標準是美國EIA與BELL等公司一起開發的,1969年公布的通信協議[7]。由于RS-232C標準規定的邏輯電平與TTL等數字電路的邏輯電平不兼容,因此二者之間進行相互連接時必須先進行串口電平的轉換,即必須將單片機的TTL電平和RS-232C標準電平進行轉換。 能夠實現RS-232C電平轉換的專用芯片有很多種,如MC1488、SN75150芯片可完成TTL到EIA電平的轉換,而MC1489、SN75154可實現EIA到TTL電平的轉換。常用的是Maxim公司的MAX232集成芯片,它能完成TTL和RS-232C的雙向轉換。 2.7.2 MAX232芯片(1) MAX232的電路原理圖如圖2.7.1所示。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image026.pngfile:///C:/Temp/Temp/msohtmlclip1/01/clip_image028.png 圖2.7.1 MAX232的電路原理圖 圖2.7.2 MAX232的引腳圖 (2) MAX232的引腳圖如圖2.7.2 MAX232的引腳主要分為5個部分 外接電容:有5個外接電容,進行電壓匹配[8]和電源去藕。 TTL的輸入:兩路TTL電平的輸入引腳——11和10引腳,連接單片機的TXD的輸出端口。 TTL的輸出:兩路TTL 電平的輸出引腳——12和9引腳,連接單片機的RXD輸出端口。 RS-232的輸入:兩路RS-232電平的輸入引腳——13和8引腳,連接RS-232的TXD的輸出端口。 RS-232的輸出:兩路RS-232電平的輸出引腳——13和8引腳,連接RS-232的RXD的輸出端口。 2.7.3電路連接圖MAX232的電路連接圖如圖2.7.3所示。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image030.png 圖2.7.3 MAX232的電路連接圖 MAX232有兩組通信串口,本系統只用到一組,其中T1IN連接單片機的P3.1,R1OUT連接單片機的P3.0,而T1OUT連接九針串口的2端,R1IN連接九針串口的3端。這樣單片機與PC機的串口連接起來了。 2.8報警電路設計在本設計中,需要用到報警電路,當出現非法卡或輸入的密碼不正確時,就會進行報警。采用蜂鳴器和LED燈(紅)作為報警電路的主要器件,將蜂鳴器的正端連接到+5V電源上,負端連接到三級管的發射極,集電極連接到地端,基極連接到1k電阻的一端另一端連接到單片機的26引腳上。當給0時蜂鳴器響,當給1時蜂鳴器不響。將LED(紅)燈的正端通過300Ω的電阻連接到+5V電源上,負端連接到單片機的17引腳上。當給17引腳送0時,LED(紅)燈亮,送1時LED(紅)燈滅。在本設計中,三級管起到開關作用,與三級管相連的1k電阻是為了保護三級管,防止電流過大而燒毀三級管。與LED燈相連的300Ω電阻也是起保護LED燈的作用。報警電路原理圖如圖2.8所示。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image032.jpg 圖2.8報警電路原理圖 第3章IC卡與門禁主控器的選擇3.1非接觸式IC卡的選擇基于MFRC500的射頻模塊可以采用Mifare1卡和MifareLight卡,它們都是Philips公司的Mifare系列產品。Mifare Light是一種小容量卡,其特性有: (1)容量為384位; (2)16位的數值計算; (3)128位的數據區; (4)用戶可自定義控制權限; (5)唯一的32位序列號; (6)工作頻率:13.56MHZ; (7)通信速率:106KB波特率; (8)防沖突:同一時間可處理多張卡; (9)讀寫距離:在10cm以內(與天線有關); (10)卡內無需電源: 而 Mifare1 卡是較新的Mifare系列產品,其主要特性有: (1)容量為8K位E2PROM; (2)分為16個扇區,每個扇區為4塊,每塊16個字節,以塊為存取單位; (3)每個扇區有獨立的一組密碼及訪問控制; (4)每張卡有唯一序列號,為32位; (5)具有防沖突機制,支持多卡操作; (6)無電源,自帶天線,內含加密控制邏輯和通訊邏輯電路; (7)工作溫度:-20℃∽50℃ (8)工作頻率:13.56MHZ; (9)通信速率:106KB波特率; (10)讀寫距離:10mm以內(與讀寫器有關); (11)數據保存期為10年,可改寫10萬次,讀不限次數; 從上面的特性可以看出,Mifare 1存儲量更大,分區的存儲結構適用于“一卡通”的系統,為了方便系統以后的升級,本系統采用Mifare 1卡。 3.2門禁控制電路系統中門禁控制電路是系統一個動作執行部分,主要是由微處理器ATmega16根據射頻讀寫器讀得的數據對外部門磁開關、指示燈等進行操作。對門磁開關控制是由單片機對繼電器的控制完成的,見圖3.10 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image034.png 圖3.10門禁控制電路 在門禁讀卡控制器內設有CPU、RS485通信電路、電子實時時鐘電路、射頻ID卡讀卡解碼電路,同時具備卡片資料存儲器與進出數據緩沖器,它通過RS485通信轉換器與計算機連接,計算機上安裝上位機門禁系統軟件平臺,可用于對讀寫器進行參數設置、卡片授權、門口監控、人員考勤、出入數據等管理。當有讀卡出入時,自動將該卡片信息進行校驗,校驗合法后將該卡數據、使用者、當前時間存入進出數據緩沖器內,并發出開門指令,通過電源線傳送開門指令到電源端,電源啟動繼電器切換電源內部供電方向,使電鎖自動打開,整個過程無須通過計算機,讀卡機即可自行完成。非法卡被禁止訪問,出門時只要按動出門按鈕, 電鎖自動打開。當非正常或暴力開門時,門磁輸出報警信號,將報警信號傳送到讀卡機內,系統以彈出報警對話框提示報警。通過門禁系統軟件平臺對讀卡器設置出入管理功能后,進出數據通過計算機處理可作為考勤數據。配件如下: 門禁電源可以采用EA公司EA-901門禁專用電源,它可提供DC12V3A電源,帶一路電鎖驅動接口、延時0-15秒。 輸出電壓:DC12V。 輸出最大電流:3A。 驅動輸出:COM、NC、NO。 外形尺寸:185mm x 80mm x 65mm。 電鎖的種類很多,使用IBA 1555電插鎖,它可支持木門、玻璃門等。 輸入電壓: 12VDC。 輸入電流:450 mA。 重量:0.9kg。 主要性能:通電上鎖,(斷電開鎖)。 外形尺寸:200mm x 34mm x 30mm 。 出門開關一般使用IBA-K10出門開關,它采用標準電工開關外型,按鍵是大板指甲按鍵靈敏度高。 3.3 讀卡器選擇目前定義RFID產品的工作頻率有低頻、高頻、和超高頻三種頻率范圍,不同頻段的RFID產品有不同的特性[13]。 1.低頻(從125KHz到134KHz) 該頻段主要是通過電感耦合的方式進行工作,也就是在讀寫器線圈和感應器線圈件存在著變壓器耦合作用。通過讀寫器交變場的作用在感應器天線中感應的而典雅被蒸餾,可作供電電壓使用。磁場區域能夠很好的被定義,但是場強下降的太快,且傳輸速率慢,價格高。 2.高頻(工作頻率為13.56MHz) 在該頻率的感應器不再需要線圈進行繞制,可以通過腐蝕活著的方式制作天線。感應器一般通過負載調制的方式進行工作。也就是通過感應器上的負載電阻的接通和斷開促使讀寫器天線上的電壓發生變化,實現用遠距離感應器對天線電壓進行振幅調制。如果通過數據控制負載電壓的接通和斷開,那么這些數據就能夠從感應器傳輸到讀寫器。它的感應器一般是電子標簽的形式,可以把某些數據信息寫入標簽中。傳輸速率高,價格合理。 3. 超高頻(工作頻率為860MHz到960MHz) 超高頻系統通過電場來傳輸能量。電場的能量下降的不是很快,但是讀取的區域不是很好進行定義。該頻段讀取距離比較遠,無源可達10m左右。這要是通過電容耦合的方式進行實現。 目前使用較多的是ISO14443協議,而ISO15693是對于ISO14443對應于高頻范圍的一種協議。因為ISO15693疏耦合卡在高頻時讀取距離可達1m,所以本系統采用基于ISO15693協議的高頻讀寫器,它可以對13.56MHz高頻電子標簽進行數據讀、寫、鎖操作[14]。它的功能特點如下: l 工作頻率:13.56MHz l 閱讀距離:6-10cm l 電子標簽標準:ISO15693(Tag-IT HF-I、IcodeⅡ) l 對電子標簽多個數據塊的內容進行讀、寫、鎖操作 l 具有防沖撞讀寫功能,最多可檢測16張電子標簽 l 具有RS232、RS485、USB2.0多種通訊接口 它的卡結構為64位ID號,共計64個數據塊,每個塊都可讀,沒被鎖的快可寫。 串口通訊,默認波特率為19200bps,8位數據位,1位起始位,1位停止位,無校驗。讀卡模塊引腳圖見圖3-4 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image035.png 圖3.3讀卡模塊引腳圖 第4章 門禁系統軟件設計4.1系統總體程序流程設計系統一共有三種開門方式:按鈕、PC機指令、非接觸式IC卡。其中按鈕開門方式需要密碼。非接觸式IC卡開門方式是最主要的方式,這里主要對這種方式的系統工作流程進行介紹。流程圖見圖4.1,整個過程中系統都與PC機之間進行數據交換。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image037.png 圖4.1 系統感應卡開門方式工作流程圖 4.2 射頻控制模塊射頻控制模塊就是對MFRC500的控制模塊,本部分是系統最關鍵的部分。 (1)MF RC500復位操作 在上電之后一定要對MF RC500進行復位操作,MF RC500是高電平復位有效的,可以由ATmega16的I/O口直接復位,要注意的是: 1必須在ATmega16成功復位150ms以后,再對MF RC500進行復位操作; 2復位高電平必須保持200us以上。 3如果復位成功,MF RC500內部的Command寄存器的值為0,如果不為0,必須重新復位。 (2)初始化MF RC500內部寄存器 在復位成功后,再對MF RC500的內部寄存器進行初始化,只有在正確的初始化之后,MF RC500才能正常工作。 成功進行上兩步操作之后,MF RC500的引腳TXl同引腳TX2之間有2.2v 左右的壓差。 (3)對非接觸式IC卡進行操作,MFRC500支持Mifare1卡和Mifarelight卡,本系統采用的是Mifare 1卡。射頻模塊的工作流程見圖4.3,對Mifare 1卡的操作包括: 1 請求操作 在成功復位和初始化之后,MF RC500控制天線向工作范圍內的卡進行請求,請求有Request all和Request std兩種,當一張Mifare卡片處在卡片讀寫器的天線的工作范圍之內,該卡片的ATR將啟動,將卡片內部數據塊0中的卡片類型(TagType)號共2個字節(Mifare1卡的返回值為00H、08H),傳送給MF RC500,建立卡片與讀寫器的第一步通信聯絡。 Request all指令是非連續性的讀卡指令。只讀一次。但是當某一次Request all指令讀卡失敗時,比如,卡片沒能通過密鑰認證或其他原因而出錯時,Requestall指令將連續地讀卡,直到讀卡成功才進入非連續性的讀卡模式。 Request all指令適用于那些需要有人工干預的場合。 Request std指令的使用和Request all指令剛巧相反,Request std指令是連續性的讀卡指令。當某一張卡片在讀寫器天線的有效的工作范圍內,Request std指令在成功地讀取這一張卡片之后,進入讀寫器對卡片的其他操作。如果其他操作完成之后,程序員又將讀寫器進入Request std指令操作,則Request std指令將連續性地再次進行讀卡操作,而不管這張卡片是否被拿走。只要有一張卡片進入天線的有效的工作范圍內,Request std指令將始終連續性地再次進行讀卡操作Request std指令適用于那些不需要有人工干預的場合,即全自動的場合。例如,賓館,酒店,高級寫字樓等場所的門禁控制系統(Door Access Control)高速公路,停車場等的不停車收費系統(Non-StopRoad Tolling),等等。要注意的是,對于收費系統,在成功讀卡之后一定要使用Halt指令停止該卡,否則,卡上的值會全部被減掉。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image039.png 圖4.3 射頻模塊的工作流程圖 本系統采用Request std請求指令。在成功進行請求操作后,系統就可進行下一步操作。 2 反碰撞操作 如果有多張Mifare卡處在系統天線的工作范圍之內時,MFRC500將保證一 次只與一張卡片進行通信,取得該卡片的系列號。由于Mifare卡片每一張都具有其唯一的序列號,決不會相同,因此保證MF RC500一次只對一張卡操作。該操作的返回值為卡的序列號。 3 卡的選擇操作 接下來的操作就是選擇某一張卡,此操作MF RC500得到返回值80 H 。 4 密鑰認證操作 在允許對卡進行讀寫操作之前,必須對卡進行三輪密鑰認證。首先,指定要訪問的區,并選擇密鑰A或密鑰B。本系統采用密鑰A。在更改密鑰A時要設置訪問條件(如表4.1),注意,密鑰設置最好設成可逆的。接著把用戶密碼加密,并加載到MF RC500的密鑰緩存中。接下來就是三輪密鑰認證 。 表4.1 卡的訪問條件
5卡的數據操作 在成功密鑰認證之后,就可以對卡進行讀、寫、增值、減值、存儲、傳送等操作了以上的每步操作都被寫成一個函數,最后在主函數中調用,這樣方便系統的升級并增強了程序的可讀性。 4.4 通訊模塊整個通訊程序分為3個部分:數據接收部分、命令執行部分、數據發送部分。 1數據接收部分 數據接收程序主要接收一幀正確的數據,數據幀錯誤的判斷符合以下原則: 有一個字節偶校驗錯誤,數據幀錯誤。數據幀格式不正確,數據幀錯誤。 數據幀校驗碼不正確,數據幀錯誤。 整個程序是在接收中斷服務程序中執行的,見圖4.7。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image041.png 圖4.7 接收中斷服務程序 2命令執行部分 這一部分是通訊主程序執行部分,見圖4.8,是從機接收一幀正確數據后,通過地址域判斷 RS-485 總線中主控器是否呼叫本從機,如果是廣播地址則所有接收到的從機都應響應命令,同時通過密碼的方式,可以設置權限,密碼和地址是保存在 E2PROM 中。 在地址和密碼判斷正確的時候,程序進行命令譯碼,對要求的命令執行相應的操作,同時如果要通過總線發送數據,應準備好發送數據緩存器的內容,啟動發送程序,發送完畢時清除接收事件發生標志。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image043.png圖4.8 命令執行部分 3數據發送部分 本程序的數據發送部分是在主程序中執行的,見圖4.9。 (4) 通信可靠性設計由于在實際應用系統中現場存在各種干擾,并且各讀寫器分布較遠、數量較多,通信可靠性經常得不到保證。本文從硬件和軟件兩方面就提高RS485總線通信可靠性提出些具體措施。 首先,從硬件上來說。在實際應用系統中,PC機和門禁系統一般相隔較遠,通信線路比較長,而各門禁系統上電或復位又常常不在同一時刻完成,如果此時某個門禁系統處于發送階段,將會占用RS485通信總線,這樣其他讀寫器就無法使用RS485通信總線與PC機通信。因為ATmega16初始化后,其I/O口處于狀態‘1',這樣RS485將處于發送狀態,這樣會占據整個總線。為了解決這個問題,在設計通信接口電路時,將ATmega16的P3.4 經過反向器后再接在SP485R上。當RS485總線處于空載狀態時,RS232/RS485轉換器上的發送器和所有門 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image045.png 圖4.9 數據發送部分 禁系統通信接口上的發送器均呈高阻態,傳送線A, B上的電平未知,各門禁系統接口上的接收器保持為最后一次接收的邏輯狀態。為了保證RS485總線處于空載狀態時各門禁系統通信接口上的接收器輸出邏輯‘1',在RS232/RS485轉換器和門禁系統RS485總線通信接口電路設計時分別將傳送線A上拉和傳送線B下拉,上拉電阻等于下拉電阻并且根據實際應用中RS485通信系統包括的門禁系統的臺數以及匹配電阻的連接情況來計算。另外,為了防止RS232/RS485轉換器和門禁系統RS485通信接口上接收器的共模電壓超過RS485接收器的極限接收電壓,即大于+12V或小于-7V,將門禁系統工作電源和讀寫器RS485收發器的電源隔離,并且使用光耦NEC2501實現隔離,徹底消除共模電壓的影響:最后在PC機相連的RS232/RS485轉換器上和距離PC機最遠的門禁系統RS485總線通信接口上均連接匹配電阻以吸收RS485總線上的反射信號,保證傳輸信號的準確。匹配電阻的大小等于傳送電纜的特性阻抗,本系統為120歐姆。對于軟件上來說。由于RS485總線通信是異步半雙工的通信,在某一時刻通信總線上只允許呈現一種狀態。為了可靠通信,在RS485總線狀態切換時需要適當延時后再進行數據發送或者接收。在軟件編制時要注意保護現場,即在串口通信的下位機收發程序的起始部分對ATmega16的內部寄存器ACC, PSW, B等壓入堆棧進行保護,而在子程序結束時再從堆棧中釋放出來。這樣可以保證串口通信工作不對系統其他功能模塊產生影響。在通信協議設計中,每一幀數據傳送采用異或校驗,數據發送完畢后利用累加和校驗來確保通信的可靠性。 4.5顯示模塊顯示子程序的主要功能是對當前的門控狀態進行顯示,顯示函數首先判斷是寫命令操作還是寫數據操作,若是寫命令操作,則根據命令進行相應的操作,如清屏、設置顯示模式等;若是寫數據操作,則在顯示器上顯示相應數據。程序流程圖如圖4-5所示。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image046.png 圖4-5 顯示子程序流程圖 顯示程序核心程序代碼如下所示: void LcdShowError() { WriteLcdCom(0x38); //顯示模式設置 WriteLcdCom(0x0c); //開顯示,無光標,光標不閃爍 WriteLcdCom(0x06); //讀寫字符后地址指針加一設置 WriteLcdCom(0x80); //第一行數據指針地址 for(k=0;k<16;k++) {WriteLcdDat(str3[k]); delay(20);} WriteLcdCom(0xc0); //第二行數據指針地址 for(k=0;k<16;k++) {WriteLcdDat(str4[k]); delay(20);} WriteLcdCom(0x01); } void WriteLcdCom(unsigned char c) { LCDRW =00; LCDRS=0; //切換到寫命令 P0=c; LCDE=1; LCDE=0; for(a=0;a<20;a++);} void WriteLcdDat(unsigned char d) { LCDRW =00; LCDRS=1; //切換到寫數據 P0=d; LCDE=1; LCDE=0; for(a=0;a<20;a++);} 4.6上位機設計4.6.1 上位機程序流程圖在本系統中,上位機主要完成管理人員登錄、向下位機發送命令、接收下位機返回數據、判斷數據有效性和顯示用戶信息。上位機程序流程圖如圖4.6所示。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image047.png 圖4.6.1 上位機程序流程圖 4.6.2用戶登錄界面設計本設計中,由于用戶信息是用戶的隱私,并不是所有人員都對用戶信息有管理權限,因此設計了用戶登錄界面,只有對用戶信息有管理權限的管理者才能對用戶做相關操作,如修改、查詢等。用戶登錄界面如圖4.6.2所示。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image049.jpg 圖4.6.2 用戶登錄界面 用戶登錄界面核心程序代碼如下所示: procedure TForm2.Button1Click(Sender: TObject); var mUser,mPasword:string; begin mUser:=Edit1.Text; mPasword:=Edit2.Text; if(Edit1.Text='') then begin ShowMessage('用戶名不能為空,請輸入用戶名!'); Exit; end; if(Edit2.Text='') then begin ShowMessage('密碼不能為空,請輸入密碼!'); Exit; end; if(ADOTable1.Locate('UserName',mUser,[])) then begin if(ADOTable1.FieldByName('Pasword').AsString=mPasword) then begin Close; end else begin ShowMessage('密碼錯誤,請重新輸入!'); Edit2.Clear; end; end else begin ShowMessage('此用戶不存在!'); Edit1.Clear; Edit2.Clear; end; end; 4.6.3門禁系統界面設計在本設計中,門禁系統主要負責向下位機發送讀卡命令、接收下位機傳送的RFID卡序列號、將接收的卡序列號與Access數據庫里存儲的卡序列號做比較,若相同則在門禁界面顯示用戶信息;若不相同則顯示非法卡。如圖4.6.3所示為門禁系統界面。 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image050.png 圖4.6.3 門禁系統界面 門禁系統核心程序代碼如下所示: procedure TForm1.Timer2Timer(Sender: TObject); begin ka:=MSComm1.Input; if(ka='') or(ka='AABB022022') then begin ka:=MSComm1.Input; end; if(ADOTable1.Locate('卡序列號',ka,[]))then begin Edit1.Text:=ka; Edit2.Text:=ADOTable1.FieldByName('用戶名').AsString; Edit3.Text:=ADOTable1.FieldByName('住址').AsString; Edit4.Text:=ADOTable1.FieldByName('電話').AsString; MSComm1.InBufferCount:=0; MSComm1.Output:=char(sendtrue[0]); MSComm1.OutBufferCount:=0; end else begin if((ka<>'')and(ka<>'AABB022022')) then begin ShowMessage('非法卡'); Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear; MSComm1.Output:=char(sendfalse[0]); MSComm1.OutBufferCount:=0; end; end; end; procedure TForm1.Button1Click(Sender: TObject); 第5章系統調試及結果分析5.1 系統調試將各個部分的硬件模塊合并成一個整體,把軟件各個部分程序合并到一個主程序中。通過偉福訪真器和偉福調試軟件WAVE6000開始整體調試,硬件部分用萬用表來測試硬件每部分的接通性。軟件部分的測試主要方法是通過設置斷點、單步執行等方法來測試程序的正確性。在確定軟硬件無問題后,將程序通過燒寫器把程序燒到單片機中。 將程序燒寫到控制芯片ATmega16,打開電源,電源指示燈亮,整個系統啟動。運行上位機,向下位機發送讀卡命令,下位機接收到讀卡命令后,當有RFID卡進入到讀卡器的讀卡范圍內時,若RFID卡為有效卡便會在執行開門操作的同時在液晶上顯示正確信息;若不是有效卡則在報警的同時在液晶上顯示錯誤信息。當通過鍵盤輸入密碼后,系統會判斷密碼的有效性,若是有效密碼則開門并在液晶上顯示正確信息;若無效則報警并顯示錯誤信息。整個系統完成。 5.2 結論分析本系統能在打開電源并運行上位機后,能自動向下位機發送讀卡命令,當有RFID卡進入到讀卡器的讀卡范圍內時,則會自動讀取卡序列號,并將卡序列號傳送給上位機,上位機判斷卡的有效性。若該卡是有效卡,系統會執行開門并在液晶上顯示正確的信息;若該卡是非法卡,則會報警并顯示錯誤的信息。本系統能夠有效、方便、安全地控制重要場所的出入訪問,具有可靠性高、保密性強、方便快捷等特點。 本系統具體實現的功能如下:數據采集:讀卡器YHY502ATG通過天線讀取RFID卡的數據,然后將數據傳送出去。數據分析:ATmega16接收到數據后,將數據傳送給AT24C04或上位機,AT24C04或上位機對數據進行分析,從而判斷數據的有效性。模塊之間的通信:ATmega16與YHY502ATG/AT24C04之間的通信都是通過模擬I2C總線進行的, I2C總線的高效性、高實用性、高可靠性數據傳輸增強了系統的實時性和可靠性。數據處理:針對數據的采集和分析的結果做出相應的處理,例如顯示、報警、門控等。 參 考文 獻[1] 李朝清.單片機原理及接口技術[M]:北京航空航天大學出版社, 2005
[2] 石東海.單片機數據通信技術從入門到精通[M]:西安電子科技大學出版社,2002
[3] 胡漢才.單片機原理及其接口技術[M]:清華大學出版社,1999
[4] 付家才.單片機控制工程實踐技術[M]:化學工業出版社,2001
[5] 何立民.單片機應用技術選篇[M]:北京航空航天大學出版社
[6] 李勛,劉源,李新民.單片機適用教程[M]:北京航空航天大學出版社 [7] 萬勝前. 基于KeilC51軟件的電子鐘設計與制作[J],鄂州大學學報,2007年第2期
[8] 王衛東.模擬電子電路基礎[M]:西安電子科技大學出版社
[9] 彭小軍. 用單片機實現電子時鐘[J].新余高專學報,2004年4月第9卷第2期 [10]Alexander M.Meystel, James S.Albus. 1999. Intelligent Systems:Architecture,Design and Control. New York: John Wiley.
[11] Andrew S.Tanenbaum. The Test Technology of Single-chip SwitchingPower.ICEMI’2001 [12] 丁明亮,唐前輝. 51單片機應用設計與仿真[M]. 北京:北京航空航天大學出版社,2009. 126~225 [13] 向繼文等.基于AT89C51的電子鐘系統設計[J],機電產片開發與創新,2007年第2期 [14] 張毅剛,彭喜元,董繼成. 單片機原理及應用[M]. 北京:高等教育出版社,2008. 67~310 [15] 李曉靜等.液晶顯示控制器與單片機的接口及編程[J],電子技術,2004年第6期 [16] 陳妙芳,胡曉東. 基于AT89S51單片機的溫度控制系統設計[J]. 機械工程師, 2009. 1:136~137 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image052.png附錄 部分電路原理圖及PCB圖 門禁系統CPU原理圖 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image054.jpg 門禁系統讀卡器 file:///C:/Temp/Temp/msohtmlclip1/01/clip_image056.jpg 讀卡器PCB圖 致 謝時光飛逝,日月如梭,轉眼就站在了畢業的門檻上,回首往昔,除了對光陰一去不復返的感慨,更多的是對父母親人、對老師、對學校、對同學、對公司的感謝。在校的這三年時間里很感謝老師們對我的淳淳教誨,是你們教會了我們勤奮學習,誠實做人,踏實做事,以寬容之心面對生活。指引著我們沿著正確方向前進。在點滴匯聚中使我逐漸形成正確、成熟的人生觀、價值觀。在此,特別要感謝我的指導老師。 感謝我的同學校友,我永遠的支持者,正是在你們的陪伴下,我才一步步的完成了求學生涯。衷心感謝我的導師對我論文的悉心指導,從論文的選題、研究計劃的制定、技術路線的選擇到系統的開發研制,各個方面都離不開老師熱情耐心的幫助和教導。 三年的大學生活已經接近聞聲,也意味著我的學生時代也即將結束,但我的學習之路仍在繼續,在今后的生活、工作中我一定會謹記老師對我們的教誨,繼續努力的學習專業知識,掌握專業技能,提高自己的學習能力。
|