1 引言
隨著互聯(lián)網(wǎng)絡(luò)軟件與硬件技術(shù)的飛速發(fā)展,以8位單片機(jī)為硬件、實(shí)時(shí)操作系統(tǒng)為軟件的嵌入式以太網(wǎng)解決方案以其低成本、小功耗、小體積、開發(fā)周期短和實(shí)時(shí)性好等優(yōu)點(diǎn)得到廣泛的應(yīng)用。一些工業(yè)和科研場(chǎng)合要求門禁系統(tǒng)在實(shí)時(shí)記錄留在某一場(chǎng)所內(nèi)準(zhǔn)確人數(shù)的同時(shí),能通過以太網(wǎng)告知門禁系統(tǒng)現(xiàn)場(chǎng)的人數(shù)。
本工作完成了一種基于嵌入式網(wǎng)絡(luò)技術(shù)的計(jì)數(shù)設(shè)備,該計(jì)數(shù)設(shè)備可以在現(xiàn)場(chǎng)實(shí)時(shí)顯示并通過以太網(wǎng)告知門禁控制中心在某一場(chǎng)所內(nèi)人員的數(shù)量。該系統(tǒng)采用AVR單片機(jī)ATmega128為主控制器,嵌入Nut/OS實(shí)時(shí)操作系統(tǒng),通過TCP/P協(xié)議與控制中心實(shí)現(xiàn)通信。
2 系統(tǒng)硬件結(jié)構(gòu)
圖1所示為該系統(tǒng)的硬件框架圖,系統(tǒng)由AVR單片機(jī)以太網(wǎng)控制電路、兩個(gè)紅外傳感器陣列和三位數(shù)碼管顯示器組成。AVR單片機(jī)以太網(wǎng)控制電路為系統(tǒng)核心,主要任務(wù)包括:實(shí)現(xiàn)基于TCP/IP協(xié)議的以太網(wǎng)通訊、檢測(cè)傳感器陣列的探測(cè)信號(hào)以及向用于本地顯示的三位數(shù)碼管顯示器發(fā)送數(shù)據(jù)?;趯?shí)際應(yīng)用的需要,數(shù)碼管顯示器最多可以顯示三位數(shù),即最多可計(jì)的數(shù)目為999.為了減少I/O的使用數(shù)量,采用了串行的方式控制顯示電路??刂菩盘?hào)由三根的數(shù)據(jù)線組成,分別是串行數(shù)據(jù)線、串行時(shí)鐘線和鎖存信號(hào)線。由三片74LS164級(jí)聯(lián)組成24比特的串行移位寄存器,分別向三位的數(shù)碼管提供七段碼數(shù)據(jù);由三片74LS374組成鎖存器,目的是避免串行移位過程中在數(shù)碼管上出現(xiàn)閃爍;由三片8達(dá)林頓管陣列ULN2003A分別驅(qū)動(dòng)三個(gè)數(shù)碼管。
如圖1所示,傳感器陣列分別由兩個(gè)紅外線傳感器列A和B組成。每個(gè)傳感器列由4對(duì)紅外發(fā)射、接收管組成,相應(yīng)的4個(gè)紅外接收管的輸出端與一個(gè)4或門的輸入端連接。同時(shí)4或門的輸出端再與ATmega128的I/O連接,通過控制電路對(duì)傳感器進(jìn)行實(shí)時(shí)檢測(cè)。任何一對(duì)的紅外管如果沒有被遮擋住時(shí),接收管輸出高電平,而被遮擋住時(shí)輸出低電平。因此只有當(dāng)一個(gè)傳感器列上的4對(duì)紅外觀均被遮擋住時(shí)才向AVR單片機(jī)發(fā)送低電平信號(hào)。
為了能夠區(qū)分人員經(jīng)過的方向,使用了兩個(gè)傳感器列A和B,通過檢測(cè)兩個(gè)傳感器列被遮擋的先后順序來區(qū)分人員進(jìn)出的方向,相應(yīng)的控制器做出加1或減1的操作。考慮到普通成年人的一般體型,將每個(gè)傳感器列上的4對(duì)傳感器從1.5米至1.2米等間距的排列,同時(shí)每對(duì)紅外傳感器的發(fā)射管與接收管間的距離限制在80cm,而兩扇傳感器列A和B的間距設(shè)置為30cm,這樣可以確保在任意時(shí)刻只有同一個(gè)人能先后經(jīng)過傳感器列A和B,避免了多人同時(shí)經(jīng)過探測(cè)器等各種影響正常計(jì)數(shù)情況的發(fā)生。AVR單片機(jī)以太網(wǎng)控制電路以Ethernut 1.3gI1 開源軟硬件嵌入式系統(tǒng)設(shè)計(jì)方案為藍(lán)本,進(jìn)行了部分的刪減和重新設(shè)計(jì)。
主要包括以下幾個(gè)組成部分:采用AVR 單片機(jī)ATmega128 為CPU:外擴(kuò)一片32KB 的RAMKM62256:ATmega128上的UART 接口通過MAX3222引出到DB.9 串口上; 以太網(wǎng)控制器為RTL8019ASI3 :20F.01以太網(wǎng)隔離變壓器;LM1086向接口電路提供+5V電源。該電路以AVR單片機(jī)ATmega128為核心,控制以太網(wǎng)控制器RTL8019AS實(shí)現(xiàn)局域網(wǎng)通信。通過RS232接口與PC機(jī)上超級(jí)終端或串口調(diào)試助手實(shí)現(xiàn)串口通信。該電路基于TCP/IP協(xié)議,采用Socket方式與門禁控制中心進(jìn)行通信。當(dāng)網(wǎng)絡(luò)實(shí)時(shí)性要求不高時(shí),傳輸速率達(dá)到10Mbps的以太網(wǎng)控制器RTL8019AS已經(jīng)能夠滿足系統(tǒng)的要求。ATmega128提供了22個(gè)可編程的I/O 口、一個(gè)JTAG和ISP接口。傳感器列A和B的輸出分別經(jīng)過4或門后與ATmega128的I/O連接。為了減少ATmega128可編程I/O的使用數(shù)量,采用串行的方式向數(shù)碼管顯示電路發(fā)送數(shù)據(jù)。
|