基于單片機(jī)和Labview的“電子郵差”系統(tǒng)
1.概述
隨著網(wǎng)絡(luò)的發(fā)展,為方便人們實(shí)時(shí)接收電子郵件,本文介紹了一個(gè)基于單片機(jī)和Labview的“電子郵差”系統(tǒng),其中PC機(jī)程序使用Labview編寫,通過單片機(jī)與以太網(wǎng)控制器ENC28J60連接實(shí)現(xiàn)網(wǎng)絡(luò)通信功能,并將接收到的郵件通過LED顯示。為簡化系統(tǒng)設(shè)計(jì),本系統(tǒng)采取直接發(fā)送16×16LED點(diǎn)陣數(shù)據(jù)的方法,此方法可以去除單片機(jī)漢字點(diǎn)陣庫的設(shè)計(jì),大大簡化設(shè)計(jì),降低成本。
2.硬件結(jié)構(gòu)
電子郵差的硬件結(jié)構(gòu)圖如上圖所示。單片機(jī)采用ATMEL公司推出的AT89C51ED2,內(nèi)部帶有64K字節(jié)FLASH、2K字節(jié)RAM、2K字節(jié)EEPROM,支持在線編程,6個(gè)8位通用I/O口,硬件看門狗定時(shí)器,串行外圍設(shè)備接口(SPI)可工作于主機(jī),從機(jī)模式,9個(gè)中斷源,4級中斷優(yōu)先級,3個(gè)16位定時(shí)計(jì)數(shù)器。
ENC28J60是MICroChip推出的一款僅有的28引腳的新型獨(dú)立以太網(wǎng)控制器,有利于創(chuàng)建占位小、成本低、精簡的嵌入式網(wǎng)絡(luò)系統(tǒng)。ENC28J60以太網(wǎng)控制器采用業(yè)界標(biāo)準(zhǔn)的SPI串行接口,只需4條連線即可與主控單片機(jī)連接,其內(nèi)置lOMbps以太網(wǎng)物理層器件(PHY)及媒體訪問控制器(MAC),可按業(yè)界標(biāo)準(zhǔn)的以太網(wǎng)協(xié)議可靠地收發(fā)信息包數(shù)據(jù)。ENC28J60具有可編程過濾功能,特殊的過濾器,包括Microchip的可編程模式匹配過濾器;可自動(dòng)評價(jià)、接收或拒收MagiCPACket,單播(Unicast)、多播(Multicast)或廣播(Broadcast)信息包,減輕主控單片機(jī)的處理負(fù)荷:內(nèi)置可編程8KB雙端口SRAM緩沖器,可以實(shí)現(xiàn)靈活可靠的數(shù)據(jù)管理機(jī)制。
2.1AT89C51ED2與ENC2&J60的連接
ENC28J60工作電壓為3.3V,易于集成到5v的系統(tǒng)中。SPI的CS、SCK和SI輸入以及RESET引腳都可以承受5V的電壓:另一方面,如果主控制器運(yùn)行在5v電壓下,當(dāng)SPI和中斷輸入由ENC28J60上的3.3VCMOS輸出驅(qū)動(dòng)時(shí),很可能不符合規(guī)范要求,則需要一個(gè)單向電平轉(zhuǎn)換器。本系統(tǒng)采用一廉價(jià)的74HCT08(四與門)提供必要的電平轉(zhuǎn)換。轉(zhuǎn)換電路如下圖所示,單片機(jī)工作于主機(jī)模式,ENC28J60工作于從機(jī)模式。
2.2LED顯示模塊
LED顯示屏電路如上圖所示,采用行掃描方式。其中,P4口控制掃描行數(shù),P2口控制列寄存器選通,PO口發(fā)送LED點(diǎn)陣數(shù)據(jù),每個(gè)字的點(diǎn)陣數(shù)據(jù)占32個(gè)字節(jié)。單片機(jī)首先選中第1行,然后選中第1片74LS244;接著通過PO口寫入第1個(gè)字的點(diǎn)陣數(shù)據(jù)中的第1個(gè)字節(jié),然后選中第2片74LS244;然后通過PO口寫入第1個(gè)字的點(diǎn)陣數(shù)據(jù)中的第17個(gè)字節(jié),接著選中第3片74LS244;再通過PO口寫入第2個(gè)字中的第1個(gè)字節(jié),接著依次寫入,直到第16個(gè)字的點(diǎn)陣數(shù)據(jù)中的第17個(gè)字節(jié);然后選中第2行,依次掃描。
3.軟件設(shè)計(jì)
單片機(jī)首先對SPI進(jìn)行初始化,然后通過SPI對以太網(wǎng)控制器ENC28J60進(jìn)行初始化,初始化完成后等待中斷。當(dāng)ENC28J60接收到郵件后,向單片機(jī)發(fā)送中斷請求,單片機(jī)響應(yīng)中斷后通過SPI接收數(shù)據(jù),成功接收數(shù)據(jù)后,發(fā)送反饋信息“OK”字符,接著通過LED顯示屏顯示郵件,先顯示前16個(gè)字,再顯示后16個(gè)字。此外,本系統(tǒng)還可完成ARP應(yīng)答和PINg命令應(yīng)答。
3.1主程序設(shè)計(jì)
①單片機(jī)SPI控制寄存器
SPCONSPCON各位定義如下表所示,設(shè)置SPCON=010101108,即同步時(shí)鐘選擇FLCKPERIPH/8、使能串口、使能,選擇主模式,空閑狀態(tài)為低電平,上升沿移入數(shù)據(jù)。
②ENC28J60以太網(wǎng)控制寄存器1(ECONl)
ECON1寄存器用于控制ENC28J60的主要功能,各位定義如上表所示。ECON1中包含接收使能、發(fā)送請求、DMA控制和存儲區(qū)選擇位。設(shè)置ECONl=OOOO0110B,通過當(dāng)前過濾器的數(shù)據(jù)包寫入接收緩沖器,訪問Bank2中的寄存器。
還需設(shè)置以太網(wǎng)中斷允許寄存器EIE、MAC控制寄存器MACONi、MAC控制寄存器MACON2和MAC地址,詳細(xì)設(shè)置方法可參考本系統(tǒng)單片機(jī)源程序和ENC28J60數(shù)據(jù)手冊
③主程序流程圖主程序流程圖如下圖所示。
3.2中斷服務(wù)程序設(shè)計(jì)中斷服務(wù)程序流程圖如下圖所示。
3.3PC機(jī)程序設(shè)計(jì)PC機(jī)程序采用Labview編寫,Labview(LaboratoryVirtu-時(shí),基本上不寫程序代碼,取而代之的是流程圖。Labview內(nèi)置了便于應(yīng)用的TCP/IP、ActiveX等軟件標(biāo)準(zhǔn)的庫函數(shù)。本系統(tǒng)采用Labview的UDP控件實(shí)現(xiàn)UDP協(xié)議,方便快捷。
①PC機(jī)程序界面
PC機(jī)程序界面如上圖所示,在目的地址框內(nèi)輸入郵件目的地址例如“202.96.170.165”,選擇目的端口號8001和接收反饋信息端口號8002,然后輸入郵件內(nèi)容,點(diǎn)擊運(yùn)行按鈕發(fā)送郵件。當(dāng)單片機(jī)收到郵件后,則反饋“OK”信息,代表郵件已被單片機(jī)成功接收。
②PC機(jī)流程圖
PC機(jī)流程圖如下圖所示。
圖7中上半部分為發(fā)送程序,下半部分為接收程序。發(fā)送程序中將漢字轉(zhuǎn)換成16x16的點(diǎn)陣數(shù)據(jù)采用了DLL技術(shù),將轉(zhuǎn)換程序做成DLL,然后在Labview中調(diào)用即可。
4.總結(jié)
本系統(tǒng)利用以太網(wǎng)控制器ENC28J60配置單片機(jī)網(wǎng)絡(luò)系統(tǒng),結(jié)構(gòu)簡單,設(shè)計(jì)方便;同是利用LED顯示屏顯示郵件,方案簡單,價(jià)格便宜,具有極強(qiáng)的實(shí)用價(jià)值。