以太网控制器ENC28J60配置单片机“电子邮差”系统 - 全文

-回复 -浏览
楼主 2020-10-16 14:27:56
举报 只看此人 收藏本贴 楼主

1.概述

随着网络的发展,为方便人们实时接收电子邮件,本文介绍了一个基于单片机和Labview的“电子邮差”系统,其中PC机程序使用Labview编写,通过单片机与以太网控制器ENC28J60连接实现网络通信功能,并将接收到的邮件通过LED显示。为简化系统设计,本系统采取直接发送16&TImes;16LED点阵数据的方法,此方法可以去除单片机汉字点阵库的设计,大大简化设计,降低成本。

2.硬件结构

电子邮差的硬件结构图如上图所示。单片机采用ATMEL公司推出的AT89C51ED2,内部带有64K字节FLASH、2K字节RAM、2K字节EEPROM,支持在线编程,6个8位通用I/O口,硬件看门狗定时器,串行外围设备接口(SPI)可工作于主机,从机模式,9个中断源,4级中断优先级,3个16位定时计数器。

ENC28J60是MICroChip推出的一款仅有的28引脚的新型独立以太网控制器,有利于创建占位小、成本低、精简的嵌入式网络系统。ENC28J60以太网控制器采用业界标准的SPI串行接口,只需4条连线即可与主控单片机连接,其内置lOMbps以太网物理层器件(PHY)及媒体访问控制器(MAC),可按业界标准的以太网协议可靠地收发信息包数据。ENC28J60具有可编程过滤功能,特殊的过滤器,包括Microchip的可编程模式匹配过滤器;可自动评价、接收或拒收MagiCPACket,单播(Unicast)、多播(MulTIcast)或广播(Broadcast)信息包,减轻主控单片机的处理负荷:内置可编程8KB双端口SRAM缓冲器,可以实现灵活可靠的数据管理机制。

2.1AT89C51ED2与ENC2&J60的连接

ENC28J60工作电压为3.3V,易于集成到5v的系统中。SPI的CS、SCK和SI输入以及RESET引脚都可以承受5V的电压:另一方面,如果主控制器运行在5v电压下,当SPI和中断输入由ENC28J60上的3.3VCMOS输出驱动时,很可能不符合规范要求,则需要一个单向电平转换器。本系统采用一廉价的74HCT08(四与门)提供必要的电平转换。转换电路如下图所示,单片机工作于主机模式,ENC28J60工作于从机模式。

2.2LED显示模块

LED显示屏电路如上图所示,采用行扫描方式。其中,P4口控制扫描行数,P2口控制列寄存器选通,PO口发送LED点阵数据,每个字的点阵数据占32个字节。单片机首先选中第1行,然后选中第1片74LS244;接着通过PO口写入第1个字的点阵数据中的第1个字节,然后选中第2片74LS244;然后通过PO口写入第1个字的点阵数据中的第17个字节,接着选中第3片74LS244;再通过PO口写入第2个字中的第1个字节,接着依次写入,直到第16个字的点阵数据中的第17个字节;然后选中第2行,依次扫描。

3.软件设计

单片机首先对SPI进行初始化,然后通过SPI对以太网控制器ENC28J60进行初始化,初始化完成后等待中断。当ENC28J60接收到邮件后,向单片机发送中断请求,单片机响应中断后通过SPI接收数据,成功接收数据后,发送反馈信息“OK”字符,接着通过LED显示屏显示邮件,先显示前16个字,再显示后16个字。此外,本系统还可完成ARP应答和PINg命令应答。

3.1主程序设计

①单片机SPI控制寄存器

SPCONSPCON各位定义如下表所示,设置SPCON=010101108,即同步时钟选择FLCKPERIPH/8、使能串口、使能,选择主模式,空闲状态为低电平,上升沿移入数据。

②ENC28J60以太网控制寄存器1(ECONl)



ECON1寄存器用于控制ENC28J60的主要功能,各位定义如上表所示。ECON1中包含接收使能、发送请求、DMA控制和存储区选择位。设置ECONl=OOOO0110B,通过当前过滤器的数据包写入接收缓冲器,访问Bank2中的寄存器。

还需设置以太网中断允许寄存器EIE、MAC控制寄存器MACONi、MAC控制寄存器MACON2和MAC地址,详细设置方法可参考本系统单片机源程序和ENC28J60数据手册

③主程序流程图主程序流程图如下图所示。

3.2中断服务程序设计中断服务程序流程图如下图所示。

3.3PC机程序设计PC机程序采用Labview编写,Labview(LaboratoryVirtu-时,基本上不写程序代码,取而代之的是流程图。Labview内置了便于应用的TCP/IP、AcTIveX等软件标准的库函数。本系统采用Labview的UDP控件实现UDP协议,方便快捷。

①PC机程序界面

PC机程序界面如上图所示,在目的地址框内输入邮件目的地址例如“202.96.170.165”,选择目的端口号8001和接收反馈信息端口号8002,然后输入邮件内容,点击运行按钮发送邮件。当单片机收到邮件后,则反馈“OK”信息,代表邮件已被单片机成功接收。

②PC机流程图

PC机流程图如下图所示。

图7中上半部分为发送程序,下半部分为接收程序。发送程序中将汉字转换成16x16的点阵数据采用了DLL技术,将转换程序做成DLL,然后在Labview中调用即可。

4.总结

本系统利用以太网控制器ENC28J60配置单片机网络系统,结构简单,设计方便;同是利用LED显示屏显示邮件,方案简单,价格便宜,具有极强的实用价值。

文章出处:【微信号:mcu168,微信公众号:玩转单片机】



我要推荐
转发到

友情链接