基于 ENC28J60 与 ATmega16 的嵌入式以太网接口电路设计

2017-08-18 78 0

本文介绍一种以 ENC28J60 为核心的嵌入式以太网接口实现方案,并描述该系统硬件架构的设计方法。在简要介绍以太网控制器 ENC28J60 的结构、功能与外围电路的基础上,重点阐述 ENC28J60 与 ATmega16 之间的 SPI 通信设计。该方案成本低,可实现 500 kbps 以上的传输速率,能够满足嵌入式系统的 Internet 控制要求。

一、ENC28J60 的应用与外围电路

利用 ENC28J60 可以构成不同功能的网络终端节点,如网络服务器、具有 Internet 功能的设备、远程监控(数据采集与诊断)设备等。图 1 所示为基于 ENC28J60 的嵌入式网络接口硬件电路原理图。

基于 ENC28J60 与 ATmega16 的嵌入式以太网接口电路设计

图 1 基于 ENC28J60 的嵌入式网络接口电路

电路中包含:2 个 LED 状态指示灯,主要用于显示网络连接状态,包括 PHY 是否冲突、连接是否建立、是否正在接收数据、连接速度以及双工模式等;必需的偏置电阻 R3(2 kΩ,精度 1%);高速局域网电磁隔离模块(即 RJ45 以太网接口)。应用中,ENC28J60 的物理端口与隔离变压器 HR901170A 连接时必须符合 IEEE 802.3 对物理层规范的要求,例如 RJ45 插孔与隔离变压器的间隔应尽量小,输出和输入差分信号对的走线要有良好的隔离。

二、与 ATmega16 的 SPI 通信设计

电路中的主控制器采用 Atmel 公司的 ATmega16 单片机。它具有先进的 RISC(精简指令集计算机)结构、16 KB 可编程 Flash 存储器、512 B 的 EEPROM 和 1 KB 片内 SRAM,外设接口丰富,其 SPI 接口允许 ATmega16 与外设进行高速同步数据传输。本设计中 ATmega16 的 SPI 配置为主机模式,ENC28J60 为从设备。

ATmega16 的 SPI 工作模式由 CPOL、CPHA 设置,根据 ENC28J60 的 SPI 读写时序,应设置为模式 0。ATmega16 通过将 ENC28J60 的 CS 引脚置低实现与其的同步。SPI 时钟由写入 SPI 发送缓冲寄存器的数据启动;SPI MOSI(PB5)引脚上数据的发送顺序由寄存器 SPCR 的 DORD 位控制,置位时数据的 LSB(最低位)首先发送,否则数据的 MSB(最高位)首先发送。本设计选择先发送 MSB;接收到的数据被传送到接收缓冲寄存器,CPU 以右对齐方式从接收缓冲器中读取数据。

需要注意的是,当需要从 ENC28J60 中读取多个数据时,即使 ENC28J60 并不需要 ATmega16 串行输出的数据,每读取一个数据前都要向 SPI 发送缓冲器写一个数据以启动 SPI 接口时钟。由于 SPI 系统在发送方向只有 1 个缓冲器,而在接收方向有 2 个缓冲器,因此发送时一定要等到移位过程全部结束后才能对 SPI 数据寄存器执行写操作;接收数据时,需要在下一个字节移位过程结束之前通过访问 SPI 数据寄存器读取当前接收到的数据,否则第 1 个数据会丢失。

相关文章

压敏电阻的参数、特性与应用
基于 STC12C 与 SIM300 的智能家电防盗系统电路设计
基于 nRF24L01 与 DHT11 的无线温湿度测试系统电路设计
电冰箱电子温控器的原理与半自动除霜电路
基于 586-Engine 的无人机飞行控制器电路设计
三极管开关电路的改进接法:加速电容、图腾柱与驱动电路

发布评论