一.以太网控制器
以太网控制器也叫以太网适配器,就是俗称的网卡,以太网控制器使用一个特定的物理层和数据链路层标准。文档1使用的是ENC28J60,自己项目中用的是W5200。之前没接触过,用到了也没有好好学习,整好趁此机会学习一下。
ENC28J60是带有标准串行外设接口(SPI)的独立以太网控制器,它可以作为任何配备有SPI通信接口的单片机的以太网接口,它符合IEEE802.3的全部规范,采用一系列包过滤机制对传入数据包进行限制,还提供了一个内部DMA模块,以实现快速数据吞吐和硬件支持的IP校验和计算。与主控制器的通信通过两个中断引脚和SPI实现,数据传输速率高达10Mb/s。两个专用的引脚用于连接LED,进行网络活动状态指示。
二.DMA
DMA就是直接内存存取,所谓直接内存存取,就是DMA既可以指内存和外设直接存取数据这种内存访问的计算机技术,又可以指实现该技术的硬件模块(对于通用计算机PC而言,DMA控制逻辑由CPU和DMA控制接口逻辑芯片共同组成,嵌入式系统的DMA控制器内建在处理器芯片内部,一般称为DMA控制器,DMAC)。使用DMA的好处就是它不需要CPU的干预而直接服务外设,这样CPU就可以去处理别的事务,从而提高系统的效率,对于慢速设备,如UART,其作用只是降低CPU的使用率,但对于高速设备,如硬盘,它不只是降低CPU的使用率,而且能大大提高硬件设备的吞吐量。通过DMA模块,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能嵌入式系统算法和网络是很重要的。更具体的内容参见http://blog.youkuaiyun.com/bugouyonggan/article/details/17796803