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