文件名称:以太网包-史上最直白的ica教程
文件大小:5.26MB
文件格式:PDF
更新时间:2024-06-23 16:19:24
LPC23XX 中文资料
广州周立功单片机发展有限公司 第11章 以太网控制器 LPC23xx 用户手册 ©2008 Guangzhou ZLGMCU Development CO., LTD 116 11.5 DMA操作概述 DMA 引擎利用存储器中的接收描述符数组和发送描述符数组。与描述符相关的存储器 缓冲区可以包含一个完整的以太网帧或其中的一部分。在发送以太网帧时,发送 DMA 引擎 根据需要使用描述符(一个或多个),获得(集中)一帧中的所有部分并按顺序将它们发送 出去。在接收以太网帧时,接收 DMA 引擎也根据需要使用描述符(一个或多个),找到存 放(分散)接收帧中的所有数据的位置。 描述符数组的基址寄存器,表示描述符数组入口数目的寄存器以及描述符数组输入/输 出指针都包含在以太网模块中。描述符入口以及所有的发送包和接收包数据都存放在存储器 中,它不是以太网模块的一部分。描述符入口告知相关的帧数据存放在存储器中的位置、数 据如何处理,以及每个以太网处理结果的状态。 DMA 引擎中的硬件对如何将以太网 MAC 输入的数据保存到存储器中进行控制,从而 将与状态相关的片段保存起来,并针对输入的数据让硬件接收指针向前移动。驱动软件必须 对接收到的数据的部署、描述符数据地址的更改进行处理(以避免非必要的数据移动),并 让软件接收指针向前移动。这两个指针在描述符数组中创建了一个环形队列,它们允许 DMA 硬件和驱动软件知道在使用时哪个描述符(若有的话)是可用的,以及该描述符数组为空还 是为满。 同样,驱动软件必须建立指向将被以太网 MAC 发送出去的数据的指针,给出每个数据 片段的指令,并针对流出的数据让软件发送指针向前移动。DMA 引擎中的硬件读取该信息 并在可能的情况下将数据发送到以太网 MAC 接口,从而对状态进行更新并让硬件发送指针 向前移动。 11.6 以太网包 图 11.2 阐述了以太网包中的不同区域。