|
近年來隨著計(jì)算機(jī)科學(xué)技術(shù)的飛速發(fā)展,代表這場高技術(shù)新成果的智能大廈在各地相繼建起。智能大廈是在現(xiàn)代建筑物內(nèi)集4C于一身,建立一個(gè)由計(jì)算機(jī)系統(tǒng)管理的一體化集成系統(tǒng),這種智能大廈內(nèi)部設(shè)施具備5A功能。智能密碼鎖監(jiān)控系統(tǒng)正是為應(yīng)用于其中的安全監(jiān)控自動化(Safety Automation,SA)而研制的,智能密碼鎖采用單片機(jī)技術(shù),相比傳統(tǒng)機(jī)械鎖,他具有不可復(fù)制性,有著更高的安全性和方便性。該系統(tǒng)是集信號檢測、傳輸、處理與控制、管理為一體的控制系統(tǒng);是應(yīng)用先進(jìn)計(jì)算機(jī)技術(shù)與現(xiàn)代微電子技術(shù)開發(fā)組成的分布式網(wǎng)絡(luò)型監(jiān)控系統(tǒng);能夠有效地提高安全性能和管理效率。 本文以AT89C2051單片機(jī)為核心設(shè)計(jì)此系統(tǒng)及其密碼鎖的各部分功能電路,能夠正常地實(shí)現(xiàn)所要求的功能,抗干擾性能好、安全性強(qiáng)。 1 芯片ATMEL AT89C2051的介紹 AT89C2051單片機(jī)是美國ATMEL公司的,如圖l所示,他與Intel公司MCS-51系列單片機(jī)兼容,采用CMOS工藝制造,節(jié)電性能好。AT89C2051提供了以下的標(biāo)準(zhǔn)功能:片內(nèi)含2kB字節(jié)的可重編程閃速存儲器E2PROM和128B的內(nèi)部RAM、15根I/O引線、2個(gè)16b定時(shí)器/計(jì)數(shù)器、1個(gè)五向量兩級中斷結(jié)構(gòu)、1個(gè)全雙工串行口、1個(gè)精密模擬比較器以及片內(nèi)振蕩器和時(shí)鐘電路。另外還具有低功耗空載的特點(diǎn)和掉電保存方式供選用。20腳雙列直插封裝也能達(dá)到體積的要求,是對嵌入式控制應(yīng)用提供的一個(gè)高度靈活和成本低的解決方案。控制系統(tǒng)的設(shè)計(jì)充分利用了AT89C2051的上述優(yōu)點(diǎn)和功能,加以必要的輔助硬件電路。 P1口是一個(gè)8 b雙向I/O口。當(dāng)P1口引腳寫入"1"時(shí),可用作輸入端;P1口輸出緩沖區(qū)可吸收20mA電流并能直接驅(qū)動LED顯示。在智能密碼鎖控制器中,P1口P1.0~P1.6用來作為鍵盤輸入接口接收鍵盤輸入數(shù)據(jù),P1.7用來輸出單片機(jī)正常工作狀態(tài);當(dāng)智能密碼鎖控制器需要閃速編程和程序校驗(yàn)的時(shí)候,P1口將用來接收代碼數(shù)據(jù)。P3口除P3.6用于固定片內(nèi)比較器的輸出信號并作為一個(gè)通用I/O引腳不可訪問外,其余7位都是帶有內(nèi)部上拉電阻的雙向I/O引腳。P3口還用來實(shí)現(xiàn)AT89C2051的各項(xiàng)功能,如表1所示。 智能密碼鎖控制器中,P3口除用來實(shí)現(xiàn)表1所示的功能外,還要輸出聲/光告警控制信號;輸出智能密碼鎖開鎖控制信號;在智能密碼鎖控制器需要閃速存儲器編程和程序校驗(yàn)的時(shí)候,P3口將用來接收相應(yīng)的控制信號。 RST復(fù)位輸入,電路圖上也作RES。RST一旦變成高電平,所有的I/O引腳就復(fù)位到"1"。當(dāng)振蕩器(時(shí)鐘)正在運(yùn)行時(shí),持續(xù)給出RST引腳2個(gè)機(jī)器周期的高電平便可完成復(fù)位。每個(gè)機(jī)器周期需12個(gè)振蕩器或時(shí)鐘周期。XTALl作為振蕩器反相放大器的輸入和內(nèi)部時(shí)鐘發(fā)生器的輸人;XTAL2作為振蕩器反相放大器的輸出。 RAM在AT89C2051內(nèi)部由工作寄存器、位尋址和數(shù)據(jù)緩沖區(qū)組成。AT89C2051Flash單片機(jī)的一個(gè)特點(diǎn)就是將程序存儲器和數(shù)據(jù)存儲器分為不同的存儲空間,這一特性使得可以用8b地址來訪問數(shù)據(jù)存儲器,這樣可提高8bCPU的存儲和處理速度。 程序存儲器只可讀不可寫,用于存放編好的程序和表格常數(shù)。AT89C2051沒有采用程序存儲器分區(qū)的方法,可尋址的內(nèi)部和外部程序存儲器的地址空間是統(tǒng)一的。本系統(tǒng)硬件應(yīng)用電路中只用到了AT89C2051片內(nèi)的2kB的E2PROM作為程序存儲器。 數(shù)據(jù)存儲器在物理和邏輯上都分為2個(gè)地址空間,一個(gè)為內(nèi)部數(shù)據(jù)存儲器空間,一個(gè)為外部數(shù)據(jù)存儲器空間。本系統(tǒng)硬件應(yīng)用電路中只用到了AT89C2051片內(nèi)的128B的RAM作為內(nèi)部數(shù)據(jù)存儲器,采用直接尋址方式或間接尋址方式對此低128B的RAM進(jìn)行訪問。在低128B的RAM中的最低32個(gè)單元(00H一1FH)是4個(gè)通用工作寄存器組。 (1)功能寄存器 AT89C2051片內(nèi)的I/O鎖存器、定時(shí)器、串行口通信緩沖器以及各種控制寄存器和狀態(tài)寄存器都以特殊功能寄存器的形式出現(xiàn),他們離散的分布于80H-FFH的地址空間范圍內(nèi),屬于內(nèi)部數(shù)據(jù)存儲器,只能采用直接尋址方式進(jìn)行訪問。 (2)串行接口 引腳與P3.0(RXD串行接收)、P3.1(TXD串行發(fā)送)I/O端口引腳復(fù)用,數(shù)據(jù)緩沖區(qū)采用雙緩沖結(jié)構(gòu);可以工作于同步方式或異步通信方式,在工作于異步通信方式時(shí),具有全雙工的操作功能,即可以同時(shí)進(jìn)行數(shù)據(jù)的發(fā)送和接收。AT89C2051的串行口有4種不同的工作方式,由串行口控制寄存器SCON中的方式選擇位定義;另外串口發(fā)送及接收的狀態(tài)控制位也由SCON的對應(yīng)控制位進(jìn)行選擇。 (3)中斷結(jié)構(gòu) AT89C2051可以提供5個(gè)中斷源:2個(gè)外部中斷,由INT0,INTl(P3.2,P3.3)輸入,2個(gè)定時(shí)器溢出中斷(由片內(nèi)的2個(gè)16位定時(shí)器/計(jì)數(shù)器在溢出時(shí)觸發(fā))和1個(gè)串行口中斷。AT89C2051中的中斷分為2個(gè)優(yōu)先級,在專用寄存器(SFR)區(qū)中有一個(gè)中斷優(yōu)先級寄存器(IP),IP的每一位對應(yīng)于一個(gè)中斷源,可決定中斷源的優(yōu)先級;AT89C2051中的IE(中斷允許寄存器)管理每個(gè)中斷源的中斷和禁止。處理中斷的結(jié)構(gòu)是低優(yōu)先級中斷能夠被高優(yōu)先級中斷所中斷,但不能被另一個(gè)低優(yōu)先級中斷所中斷;高優(yōu)先級中斷不能被任何其他中斷源所中斷。當(dāng)同時(shí)收到2個(gè)不同優(yōu)先級的中斷請求時(shí),高優(yōu)先級中斷請求先得到服務(wù)。如果同時(shí)收到幾個(gè)同一優(yōu)先級的中斷請求,則由內(nèi)部的查詢順序來決定哪一個(gè)請求得到服務(wù),相當(dāng)于在每個(gè)優(yōu)先級內(nèi)還同時(shí)存在另一個(gè)輔助優(yōu)先結(jié)構(gòu)。 (4)定時(shí)器/計(jì)數(shù)器 AT89C2051內(nèi)含2個(gè)16 b的定時(shí)器/計(jì)數(shù)器T0和T1,可以分別作定時(shí)器或計(jì)數(shù)器使用。當(dāng)使用于定時(shí)器方式時(shí),定時(shí)器的輸入來自內(nèi)部時(shí)鐘發(fā)生電路,每過一個(gè)機(jī)器周期,定時(shí)器加1,而一個(gè)機(jī)器周期包含有12個(gè)振蕩周期,即定時(shí)器的頻率為晶振頻率的1/12,若采用11.059 2MHz的晶振,定時(shí)器的頻率即為0.921 6MHz。 若在計(jì)數(shù)器工作方式,計(jì)數(shù)器對外部事件計(jì)數(shù),計(jì)數(shù)脈沖來自外部輸入引腳,當(dāng)外部輸入引腳發(fā)生"1"和"o"的負(fù)跳變時(shí),計(jì)數(shù)器加1。由于對外部事件的檢測需要2個(gè)機(jī)器周期(24個(gè)振蕩周期),所以計(jì)數(shù)頻率最高為晶振頻率的1/24。 2 硬件設(shè)計(jì) 采用AT89C2051單片機(jī)的智能監(jiān)控系統(tǒng)電路結(jié)構(gòu)框圖如圖2所示。 下面逐一介紹電子門鎖控制器的部分單元電路。 2.1 鍵盤接口 智能密碼鎖控制器共12個(gè)按鍵,包括0~9共10個(gè)數(shù)字鍵、1個(gè)"#"清零鍵以及1"*"確認(rèn)鍵。采用3×4行列式鍵盤形式,由I/O口線組成行、列結(jié)構(gòu),按鍵設(shè)置在行列的交點(diǎn)上,以節(jié)省I/O口線。智能密碼鎖控制器工作時(shí),并不經(jīng)常需要鍵輸入,因此,為了進(jìn)一步提高CPU效率,采用中斷掃描工作方式。即只有在鍵盤有鍵按下時(shí),才執(zhí)行鍵盤掃描,執(zhí)行該鍵功能程序。中斷掃描工作方式的鍵盤接口如圖3所示。 該鍵盤直接由AT89C2051的P1口的高、低字節(jié)構(gòu)成3X4行列式鍵盤。鍵盤的列線與r工口的1氏4位相接,鍵盤的行線通過二極管接到P1口的高3位。因此,P1.4~P1.6作鍵輸入線,P1.0~P1.3作掃描輸出線。初始化時(shí),使P1.0~P1.3置零。當(dāng)有鍵按下時(shí),INTO端為低電平有效,向CPU發(fā)出中斷申請,CPU響應(yīng)中斷請求,進(jìn)入鍵盤中斷服務(wù)程序。在鍵盤中斷服務(wù)程序中除完成鍵識別、鍵功能處理外,還要進(jìn)行消除鍵抖動影響、多次重復(fù)執(zhí)行鍵功能操作等措施。 按鍵中斷服務(wù)程序流程圖如圖4所示。 2.2 其他輔助電路 其他輔助電路包括穩(wěn)壓電源電路、微處理器監(jiān)控電路、時(shí)鐘電路等。 (1)穩(wěn)壓電源電路 采用三端穩(wěn)壓集成電路塊CW7805給密碼鎖控制器電路供電。CW78M05三端正穩(wěn)壓器具有內(nèi)部過流、熱過載和輸出晶體管安全區(qū)保護(hù)功能,電路使用安全可靠,供電輸出電壓+5V,最大輸出電流0.5A,電路圖如圖5所示。 (2)微處理器監(jiān)控復(fù)位電路 單片機(jī)應(yīng)用系統(tǒng)工作時(shí),會經(jīng)常要求進(jìn)入復(fù)位工作狀態(tài),所以系統(tǒng)的復(fù)位電路必須保證能正確、可靠地工作。單片機(jī)的復(fù)位是靠外部電路實(shí)現(xiàn)的,在時(shí)鐘電路工作后,只要在單片機(jī)的RST引腳上出現(xiàn)24個(gè)時(shí)鐘振蕩脈沖(2個(gè)機(jī)器周期)以上的高電平,單片機(jī)便可實(shí)現(xiàn)初始化狀態(tài)復(fù)位。為了保證密碼鎖控制器電路可靠地復(fù)位,通常使RST引腳保持18ms以上的高電平。采用專用的微處理器監(jiān)控集成電路芯片Maxim708可以方便地得到梢竊電源電壓監(jiān)控功能、200 ms的復(fù)位脈沖寬度和人工復(fù)位輸入功能,大大提高了復(fù)位電路的抗干擾性和工作可靠性,電路圖如圖6所示。 (3)時(shí)鐘電路 AT89C2051單片機(jī)有一個(gè)片內(nèi)的振蕩器電路,由一個(gè)單級反相器組成,可用來作為CPU的時(shí)鐘源。如果采用內(nèi)部的振蕩電路,則要在單片機(jī)的引腳XTAL1和XTAL2之間連一個(gè)石英晶體諧振器,并接2個(gè)電容到地,即可組成完整的并聯(lián)諧振電路輸出時(shí)鐘信號。 當(dāng)采用外部振蕩器時(shí),XTALl端直接與外部振蕩器的信號相連,XTAL2端懸空不用,電路圖如圖7所示。 3 編程時(shí)所要注意的問題 系統(tǒng)要求的各項(xiàng)功能要由軟件編程來實(shí)現(xiàn)。實(shí)際的智能密碼鎖監(jiān)控系統(tǒng)含有較多單個(gè)的密碼鎖,因此,系統(tǒng)的軟件設(shè)計(jì)功能較多而復(fù)雜,而且層次比較多。因此在設(shè)計(jì)上首先采用了計(jì)算機(jī)多任務(wù)處理的先進(jìn)技術(shù),前臺完成命令響應(yīng)、各模塊調(diào)用以及實(shí)時(shí)密碼鎖狀態(tài)的動態(tài)圖形化顯示等,后臺負(fù)責(zé)實(shí)時(shí)監(jiān)視門鎖控制器發(fā)送的密碼鎖狀態(tài)變化事件、定時(shí)巡檢現(xiàn)場的密碼鎖控制器、報(bào)警處理等;在編程技術(shù)上采用先進(jìn)的VCL組件開發(fā)技術(shù),應(yīng)用多線程技術(shù)進(jìn)行多任務(wù)處理;其次,采用模塊化程序設(shè)計(jì),把一個(gè)大的程序劃分為若干個(gè)小的功能模塊,每個(gè)模塊之間既相互獨(dú)立又相互聯(lián)系,這樣可以提高軟件的可維護(hù)性、可讀性、可靠性和高效性。 4 結(jié) 語 本文簡單地對密碼鎖監(jiān)控系統(tǒng)的系統(tǒng)總體結(jié)構(gòu)和硬件電路進(jìn)行了描述,并以AT89C2051單片機(jī)為核心,完成主要的硬件電路設(shè)計(jì)。同時(shí),就實(shí)現(xiàn)電路功能的軟件編程要注意的問題做了說明。 |