1、基于 ARM-LPC2368 的网络接口的设计与实现 2008-06-30 嵌入式在线 收藏 | 打印 本文以微处理器 LPC2368 为核心、 DP83848C 为以太网物理层接口芯片,详细地介绍了嵌入式以太网接口的实现方法。 首先对微处理器 LPC2368 和物理层芯片 DP83848C 作了简单的介绍,然后给出了基于 LPC2368 的以太网接 口的硬件设计,最后简述了其软件的实现过程。 引言 随着 Internet 技术的迅速发展,人们对信息共享的要求也不断提高。目前,嵌入式系统已经渗透到我们生活的每个角落,它与网络的完美结合,为我们共享信息提供了很大的便利。 PHILIPS 公司的
2、LPC2368 是一款优秀的微处理器,基于它的嵌入式系统如果没有以太网接口,那么其应用价值也就会大打折扣。因此,就整个系统而言,以太网接口电路应是必不可少的,但同时也是相对较复杂的。 以太网接口电路主要由 MAC 控制器和物 理层接口( Physical Layer, PHY)两大部分构成。 LPC2368 内嵌一个以太网控制器,支持精简的媒体独立接口( Reduced Media Independent Interface, RMII)和带缓冲 DMA 接口( Buffered DMA Interface, BDI),可在半双工和全双工模式下提供 10M/100Mbps 的以太网接入。因此,
3、 LPC2368 内部实际上己经包含了以太网 MAC 控制,但并未提供物理层接口,所以,需要外接一片物理层芯片以提供以太网的接入通道。在这里选用 National Semiconductor 公司的 DP83848C 作为以太网物理层接口芯片,它提供了包括 MII/RMII/SNI 接口,可以很方便地与 LPC2368 连接。 LPC2368 和 DP83848C 的介绍 2.1 微处理器 LPC2368 LPC2368 是基于 ARM7TDMI-S 内核的 32 位微控制器,可在高达 72MHz 的频率下操作,其功能强大且成本效率高,支持 10/100Ethernet、全速( 12Mbps)
4、 USB 2.0 和 CAN 2.0B;具有高达 512KB 的片内 Flash、 58KB 的 SRAM、 10 位 A/D 和 D/A 转换器和一个 IRC 振荡器,还带有 SD 存储卡接口可供选择, 100引脚 LQFP封装 (14141.4mm)。广泛应用于工业控制、 POS 系统、协议转换、加密系统等领域 1。 2.2 物理层芯片 DP83848C DP83848C 是一个 10/100Mb/s 单端低功耗物理层器件,有几种智能降功耗模式,包括有 25MHz 时钟输出 ,很容易通过外接变压器和双绞线媒体接口;支持两种 IEEE 802.3u MII 和 RMII Rev 1.2,方便
5、了设计;集成的亚层支持 10BASE-T 和 100BASE-TX以太网协议;低功耗小于 270mW、 3.3V MAC 接口;可配置的 SNI 接口; 48 引脚 LQFP 封装 (7x7mm)。DP83848C 作为一种以太网物理层收发器,广泛应用于高端外围设备、工业控制和工厂自动化操作、通用的嵌入式应用领域 2。 硬件部分设计 3.1 电路框图 LPC2368 与 DP83848C 连接比较简单,直接通过 RMII 接口连接即可。连接好后, DP83848C 再通过网络隔离变压器和 RJ45 接口接入传输媒体,其电路框图如图 1 所示。 3.2 以太网接口实际电路原理图设计 DP8384
6、8C 支持几种 MAC 接口方式:( 1) MII;( 2) RMII (Reduced MII); (3)10 Mb 串行网络接口( Serial Network Interface, SNI)。在这里我们使用的是 RMII 接口方式,通过设置引脚 pin39 和 pin6 来确定,如表所示。 表 : MII 方式选择 MII_MODE (pin39) SNI_MODE (pin6) MAC Interface Mode 0 0 或 1 MII Mode 1 0 RMII Mode 1 1 10 Mb SNI Mode 由表可以看出, pin39 应接上高电平, pin6 应接上低电平。同时
7、因为在芯片内部 pin6 下拉,默认为 0,所以只要设置 pin39 接上高电平即可,这样微处理器 LPC2368 就可以同 PHY 芯片 DP83848C 通过 RMII 接口方式连接。它们之间通过 RMII 接口连接,芯片和控制器连接所使用的引脚数目会比较少,且数据传送速率是每次 2 位,即频率 50MHz,所以需要一个 50MHz 的晶体振荡器连接到 pin34 X1 脚。 在 RMII 方式下,主要使用到的引脚有: 1 串行管理: MDC( pin31) 、 MDIO( pin30); 2MAC 数据: TX_EN( pin2)、 TXD1:0( pin4 pin3)、 RX_ER(
8、pin41)、 CRS_DV( pin40)、 RXD1:0( pin44 pin43); 3 时钟: X1(pin34 ,RMII 参考时钟是 50MHz)、 X2(pin33)。 Pin27 置高使得 DP83848C 以 100Mbps 的速率工作 , LED 显示 DP83848C 的工作状态。 16ST8515 为网络隔离变压器,其主要是起信号传输、阻抗匹配、波形修复、杂波抑制以及高电压隔离等 作用,以保护系统的安全。通过 protel 99 SE 画出电路原理图如图所示。 软件的实现主要有三个部分:系统的初始化、数据的发送和接收。 初始化部分完成以太网接口在使用之前的初始化工作,主
9、要包括设置相关的寄存器、分配和初始化发送与接收缓冲区等。 在网络接口层对应的数据包是完整的以太 网帧格式的,因此要实现数据的发送和接收就必须按以太网 IEEE802.3 协议来进行,该协议所定义的帧结构如表 2 所示。 每个网卡在出厂的时候有个全球固定的物理地址( MAC 地址)。当总线上的一个节点发送一个数据帧,总线上其他的网络节点都拷贝该数据帧,每个节点检查数据帧的目的物理地址,如果和自己的物理地址匹配的话,该节点的网卡就接受该数据帧传给上层协议处理,反之如果不匹配,该节点就丢弃数据帧。 采用中断的方式发送和接收数据。 发送数据帧:将要发送的数据封装成以太帧 ,并写入发送缓冲区;检测网络中
10、有无数据在传送,即上一个帧是否发送完毕,如果网络中仍有数据在传送,则暂时不能发送帧,若网络中没有数据,则可以立即发送此帧;在发送该帧时,可同时封装下一个数据帧,并将其写入第二个发送缓冲区;当中断服务程序检测到第一个数据帧发送完毕时,则可发送下一个数据帧。重复以上过程,直到所有数据帧都发送完毕。发送数据帧的流程图如图 3 所示。 接收数据帧:等待直到有数据帧到达,将此数据帧保存到 FIFO 缓存中,然后察看该数据帧的目的地址,若为 NIC 的 MAC 地址或广播地址,并且经检验没 有出错,则把此数据传送到接收缓冲中,并向处理器提出中断,将接收到的数据帧从 NIC 本地缓存连续读人到系统内存中。接
11、收数据帧的流程图如图所示。 图 发送数据帧流程图 图 4 接收数据帧流程图 本文讲到了利用微处理器 LPC2368 和 PHY 芯片 DP83848C 来设计以太网接口。由于微控制器 LPC2368 和物理层芯片 DP83848C 的优良性能,使得该接口电路具有结构简单、体积小、功耗低等许多优点,是实现嵌入式系统与网络连接的微处理器 LPC2368,通过精简的媒体独立接口与物理层芯片进行连接,在保证同样功能的情况下,使得布线更加简单,可以大大减小设计时的出错率。 本文以微处理器 LPC2368 为核心、 DP83848C 为以太网物理层接口芯片,详细地介绍了嵌入式以太网接口的实现方法。 首先对
12、微处理器 LPC2368 和物理层芯片 DP83848C作了简单的介绍,然后给出了基于 LPC2368 的以太网接口的硬件设 计,最后简述了其软件的实现过程。 关键词: 嵌入式系统,以太网, LPC2368, DP83848C 引言 随着 Internet 技术的迅速发展,人们对信息共享的要求也不断提高。目前,嵌入式系统已经渗透到我们生活的每个角落,它与网络的完美结合,为我们共享信息提供了很大的便利。 PHILIPS 公司的 LPC2368 是一款优秀的微处理器,基于它的嵌入式系统如果没有以太网接口,那么其应用价值也就会大打折扣。因此,就整个系统而言,以太网接口电路应是必不可少的,但同时也是相
13、对较复杂的。 以太网接口电路主要由 MAC 控制器 和物理层接口( Physical Layer, PHY)两大部分构成。 LPC2368 内嵌一个以太网控制器,支持精简的媒体独立接口( Reduced Media Independent Interface, RMII)和带缓冲 DMA 接口( Buffered DMA Interface, BDI),可在半双工和全双工模式下提供 10M/100Mbps 的以太网接入。因此, LPC2368 内部实际上己经包含了以太网 MAC 控制,但并未提供物理层接口,所以,需要外接一片物理层芯片以提供以太网的接入通道。在这里选用 National Sem
14、iconductor 公司的 DP83848C 作为以太网物理层接口芯片,它提供了包括 MII/RMII/SNI 接口,可以很方便地与 LPC2368 连接。 LPC2368 和 DP83848C 的介绍 2.1 微处理器 LPC2368 LPC2368 是基于 ARM7TDMI-S 内核的 32 位微控制器,可在高达 72MHz 的频率下操作,其功能强大且成本效率高,支持 10/100Ethernet、全速( 12Mbps) USB 2.0 和 CAN 2.0B;具有高达 512KB 的片内 Flash、 58KB 的 SRAM、 10 位 A/D 和 D/A 转换器和一个 IRC 振荡器,
15、还带有 SD 存储卡接口可供选择, 100 引脚 LQFP 封装 (14141.4mm)。广泛应用于工业控制、 POS 系统、协议转换、加密系统等领域 1 。 2.2 物理层芯片 DP83848C DP83848C 是一个 10/100Mb/s 单端低功耗物理层器件,有几种智能降功耗模式,包括有 25MHz 时钟输出 ,很容易通过外接变压器和双绞线媒体接口;支持两种 IEEE 802.3u MII 和 RMII Rev 1.2,方便了设计;集成的亚层支持 10BASE-T 和 100BASE-TX以 太网协议;低功耗小于 270mW、 3.3V MAC 接口;可配置的 SNI 接口; 48引脚
16、 LQFP 封装 (7x7mm)。DP83848C 作为一种以太网物理层收发器,广泛应用于高端外围设备、工业控制和工厂自动化操作、通用的嵌入式应用领域 2。 硬件部分设计 3.1 电路框图 LPC2368 与 DP83848C 连接比较简单,直接通过 RMII 接口连接即可。连接好后,DP83848C 再通过网络隔离变压器和 RJ45 接口接入传输媒体,其电路框图如图 1 所示。 图 1 微控制器 LPC2368 与 PHY 芯片 DP83848C 的以太网接口电路框图 3.2 以太网接口实际电路原理图设计 DP83848C 支持几种 MAC 接口方式:( 1) MII;( 2) RMII (
17、Reduced MII); (3)10 Mb 串行网络接口( Serial Network Interface, SNI)。在这里我们使用的是 RMII 接口方式,通过设置引脚 pin39 和 pin6 来确定,如表所示。 表: MII 方式选择 MII_MODE (pin39) SNI_MODE (pin6) MAC Interface Mode 0 0 或 1 MII Mode 1 0 RMII Mode 1 1 10 Mb SNI Mode 由表可以看出, pin39 应接上高电平, pin6 应接上低电平。同时因为在芯片内部 pin6下拉,默认为 0,所以只要设置 pin39 接上高电
18、平即可,这样微处理器 LPC2368 就可以同PHY 芯片 DP83848C 通过 RMII 接口方 式连接。它们之间通过 RMII 接口连接,芯片和控制器连接所使用的引脚数目会比较少,且数据传送速率是每次 2 位,即频率 50MHz,所以需要一个 50MHz 的晶体振荡器连接到 pin34 X1 脚。 在 RMII 方式下,主要使用到的引脚有: 1 串行管理: MDC( pin31)、 MDIO( pin30); 2MAC 数据: TX_EN( pin2)、 TXD1:0( pin4 pin3)、 RX_ER( pin41)、 CRS_DV( pin40)、RXD1:0( pin44 pin
19、43); 3 时钟: X1(pin34 ,RMII 参考时钟是 50MHz)、 X2(pin33)。 Pin27 置高使得 DP83848C 以 100Mbps 的速率工作 , LED 显示 DP83848C 的工作状态。 16ST8515 为网络隔离变压器,其主要是起信号传输、阻抗匹配、波形修复、杂波抑制以及高电压隔离等作用,以保护系统的安全。通过 protel 99 SE 画出电路原理图如图所示。 图 以太网接口实际电路原理图 4 软件实现过程 软件的实现主要有三个部分:系统的初始化、数据的发送和接收。 初始化部分完成以太网接口在使用之前的初始化工作,主要包括设置相关的寄存器、分配和初始化
20、发送与接收缓冲区等。 4.1 以太网工作原理 在网络接口层对应的数据包是完整的以太网帧格式的,因此要实现数据的发送和接收就必须按以太网 IEEE802.3 协议来进行,该协议所定义的帧结构如表 2 所示。 表 2:标准的以太帧格式 同步位 分隔位 目的地址 源地址 帧类型 数据 段 填充 校验位 56Bit 8Bit 48Bit 48Bit 16Bit 1500Byte 可选 32Bit 每个网卡在出厂的时候有个全球固定的物理地址( MAC 地址)。当总线上的一个节点发送一个数据帧,总线上其他的网络节点都拷贝该数据帧,每个节点检查数据帧的目的物理地址,如果和自己的物理地址匹配的话,该节点的网卡
21、就接受该数据帧传给上层协议处理,反之如果不匹配,该节点就丢弃数据帧。 4.2 发送与接收数据帧 采用中断的方式发送和接收数据。 发送数据帧:将要发送的数据封装成以太帧,并写入发送缓冲区; 检测网络中有无数据在传送,即上一个帧是否发送完毕,如果网络中仍有数据在传送,则暂时不能发送帧,若网络中没有数据,则可以立即发送此帧;在发送该帧时,可同时封装下一个数据帧,并将其写入第二个发送缓冲区;当中断服务程序检测到第一个数据帧发送完毕时,则可发送下一个数据帧。重复以上过程,直到所有数据帧都发送完毕。发送数据帧的流程图如图 3 所示。 接收数据帧:等待直到有数据帧到达,将此数据帧保存到 FIFO 缓存中,然
22、后察看该数据帧的目的地址,若为 NIC 的 MAC 地址或广播地址,并且经检验没有出错,则把此数据传送到接收缓冲中, 并向处理器提出中断,将接收到的数据帧从 NIC 本地缓存连续读人到系统内存中。接收数据帧的流程图如图所示。 图 发送数据帧流程图 图 4 接收数据帧流程图 5 结束语 本文讲到了利用微处理器 LPC2368和 PHY 芯片 DP83848C 来设计以太网接口。由于微控制器 LPC2368 和物理层芯片 DP83848C 的优良性能,使得该接口电路具有结构简单、体积小、功耗低等许多优点,是实现嵌入式系统与网络连接的不错选择。 本文作者创新点:使用功能强大的微处理器 LPC2368
23、,通过精简的媒体独立接口与物理层芯片进行连接,在保证同样功能的情况下,使得布线更加简单,可以大大减小设计时的出错率。 天天电子开发网 ARM论坛 ARM 开发软件及实用工具介绍及下载 ARM 开发软件及实用工具介绍及下载 问 ARM 开发软件及实用工具介绍及下载 以下软件均可在 下载中心下载( HTTP 高速) 一、编译器介绍 1、 ADS1.2 ADS是 ARM 公司的集成开发环境软件,他的功能非常强大。他的前身是SDT, SDT 是 ARM 公司几年前的开发环境软件,目前 SDT 早已经不再升级。ADS包括了四个模块分别是: SIMULATOR; C 编译器;实时调试器;应用函数库。 A
24、DS的编译器调试器较 SDT 都有了非常大的改观, ADS1.2 提供完整的WINDOWS界面开发环境。 C 编译器效率极高,支持 c 以及 c+,使工程师可以很方便的使用 C 语言进行开发。提供软件模拟仿真功能,使没有 Emulators的学习者也能够熟悉 ARM 的指令系统。配合 FFT-ICE 使用, ADS1.2 提供 强大的实时调试跟踪功能 ,片内运行情况尽在掌握。 ADS1.2 需要硬件支持才能发挥强大功能。目前支持的硬件调试器有 Multi-ICE 以及兼容 Multi-ICE 的调试工具如 FFT-ICE。而简易下载电缆不能支持 ADS1.2 版本: ADS1.2 软件大小: 130M 本站下载地址: http:/
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。