版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实时嵌入式系统以太网接口及应用网络层次模型以太网层次模型以太网层次功能物理层:定义了数据传输与接收所需要的光与电信号,线路状态,时钟基准,数据编码电路等。并向数据链路层设备提供标准接口。数据链路层:提供寻址机制,数据帧的构建,数据差错检查,传输控制。向网络层提供标准的数据接口等功能。MAC帧物理层MAC层IP层以太网V2MAC帧目的地址源地址类型数据FCS6624字节46~1500IP数据报以太网的MAC帧格式1010101010101010101010101010101011前同步码帧开始定界符7字节1字节…8字节插入在帧的前面插入的8字节中的第一个字段共7个字节,是前同步码,用来迅速实现MAC帧的比特同步。第二个字段是帧开始定界符,表示后面的信息就是MAC帧。为了达到比特同步,在传输媒体上实际传送的要比MAC帧还多8个字节以太网接口的构成从硬件的角度看,以太网接口电路主要由MAC控制器和物理层接口(PhysicalLayer,PHY)两大部分构成。嵌入式网络应用的两种方案处理器加以太网接口芯片。芯片如RTL8019、RTL8029、RTL8139、CS8900、DM9000等,其内部结构也主要包含这两部分。自带MAC控制器的处理器加物理层接口芯片。如DP83848、BCM5221、ICS1893等。物理层芯片DP83848系统框图LPC1768的以太网接口LPC1700系列处理器的以太网模块包含一个全特性的10Mbps或100Mbps的以太网介质访问控制器(MAC),采用DMA硬件加速器可以提供最优化的性能。在LPC1700系列处理器的以太网模块中有16KB的专用SRAM数据缓存。用于保存收发的以太网数据帧。该缓冲区可由以太网DMA控制器使用。从而大大减轻了CPU对数据收发的开销。以太网模块与片外以太网物理层接口采用MII(介质独立接口)或RMII(简化的MII)协议,和片上的MIIM(MII管理)串行总线。LPC1768的以太网接口LPC1768的以太网RMII引脚和MIIM引脚引脚名称类型引脚描述ENET_TX_EN输出发送数据使能ENET_TXD[1:0]输出发送数据,2位ENET_RXD[1:0]输入接收数据,2位ENET_RX_ER输入接收错误ENET_CRS输入载波侦听/数据有效ENET_REF_CLK/ENET_RX_CLK输入参考时钟引脚名称类型引脚描述ENET_MDC输出MIIM时钟ENET_MDIO输入/输出MI数据输入和输出帧描述符与状态字以太网DMA控制器将每个以太网帧用一对描述和状态字来表示。描述符中包含了对应帧的数据起始地址以及数据长度。状态字则保存了DMA控制器处理该帧后(发送或接收)的结果。针对发送和接收分别对应有不同描述符与状态字队列。所以DMA控制器一共维护4个循环队列。发送描述符及状态字队列,接收描述符及状态字队列。接收描述符与状态字队列接收描述符控制字段作用接收状态字位段说明发送描述符与状态字队列描述符与状态字队列描述符队列是用户程序和以太网DMA控制器间数据交换的桥梁。DMA控制器将描述符及状态字队列维护为循环队列。队列的状态分为三种:满,半满,空。循环队列的操作通过“队头”和“队尾”实现。描述符与状态字队列以太网队列中的“队头”称为生产者(producer),负责将数据装入队列,“队尾”称为消费者(consumer),负责将数据从队列取出。发送队列发送数据DMA控制器CONSUMER用户程序PRODUCER接收队列接收数据DMA控制器PRODUCER用户程序CONSUMER循环队列工作原理为了实现循环队列的操作,以太网DMA控制器提供了4个描述符及状态字索引寄存器。由DMA维护的TxConsumeIndex,RxProduceIndex和软件驱动维护的TxProduceIndex,RxConsumeIndex。复位值均为0。每操作一个元素,索引加1。发送队列发送数据DMA控制器TxConsumeIndex用户程序TxProduceIndex接收队列接收数据DMA控制器RxProduceIndex用户程序RxConsumeIndex循环队列工作原理在以太网数据收发时,软件驱动程序通过ConsumeIndex和ProduceIndex的关系就可以判断循环队列的状态。当ConsumeIndex=ProduceIndex时,队列为空。当(ProduceIndex+1)%队列长度=ConsumeIndex时,队列满。循环队列索引的翻转(WRAPAROUND)问题:在两个索引加1后,超出了队列的范围时,索引应该从队头重新开始索引。由DMA硬件维护的两个索引由硬件解决翻转,由软件维护的两个索引需要软件解决翻转问题。循环队列工作原理接收队列接收数据DMA控制器RxProduceIndex用户程序RxConsumeIndex接收数据接收数据接收数据队列满队列空翻转接收数据以太网接收数据举例控制字PACKET0x7FE01411PACKET0x7FE01419PACKET0x7FE01409PACKET0x7FE01325状态字描述符队列状态字队列17控制字17控制字17控制字17数据包缓冲区RxProduceIndex=RxConsumeIndex=RxDescriptorNumber=30012312307状态字07状态字12状态字07F0,共8字节F1,共8字节F2,共3字节F0,共8字节0队列翻转RxDescriptorRxStatusLPC1700以太网接口寄存器LPC1700系列处理器以太网模块的寄存器分为4大类,包括MAC寄存器类17个寄存器、控制寄存器类17个寄存器、接收滤波器类5个寄存器,以及模块控制寄存器类5个寄存器,共计44个寄存器。详见表5.28应用举例本以太网接口实例实现LPC1700以太网接口的初始化,实现以太网接入及以太网数据收发。初始化内容:DP83848芯片初始化,以太网接口初始化,以太网缓冲区初始化。以太网接口初始化流程1、使能以太网引脚,打开EMAC控制器2、利用MAC_MAC1和MAC_COMMAND寄存器复位以太网模式3、初始化MAC控制寄存器,设置MAC_MAC1、MAC_MAC2、MAC_MAXF、MAC_CLRT、MAC_IPGR等寄存器4、使能RMII接口,复位RMII逻辑5、利用write_PHY()和read_PHY()函数操作DP83848:复位、检查芯片和链路状态、6、利用MAC_IPGT和MAC_SUPP寄存器配置速率和双工模式7、利用MAC_SA寄存器设置MAC地址8、设置收发DMA描述符9、利用MAC_RXFILTERCTRL寄存器设置接收滤波10、利用MAC_INTENABLE和MAC_INTCLEAR寄存器使能EMAC中断和清除中断标志11、接收和发送使能以太网接口接收发送缓冲区分配rx_descr_init()函数及tx_descr_init()函数用于接收与发送缓冲区的初始化。代码如下。以太网接口接收发送缓冲区分配4×8字节0x7FE000004×8字节3×8字节3×4字节4×1500字节3×1500字节接收描述符接收状态字发送描述符发送状态字接收缓冲区发送缓冲区用户程序的以太网帧表示以太网帧接收以太网帧发送LPC1768以太网驱动程序的层次结构硬件无关以太网功能:ethernet_init,ethernet_poll,ethernet_send帧操作:frame_send,frame
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 标准版2024建设工程设计合同
- 2024年聘用副总经理合同书
- 无劳动合同证明的获取途径分析
- 2024年承包鱼塘合同范本
- 抵押短期借款合同格式
- 加工协议书撰写要点
- 柴油发动机控制柜技术规格书
- 土地流转合同补充协议2024年
- 建筑工程合同履约中的安全控制
- 业务经理聘请合同
- 北京市第四中学2024-2025学年七年级上学期期中生物学试题(含答案)
- 体育教师先进个人事迹材料
- 2025届江苏省苏州市第一中学物理高三第一学期期末学业水平测试模拟试题含解析
- 企业财务管理数字化转型实施方案
- 第九课+发展中国特色社会主义文化+课件高中政治统编必修四哲学与文化
- 牙用漂白凝胶市场环境与对策分析
- 2024年山东省济南市中考英语试题卷(含答案)
- 人教版七年级道德与法治上册 期中复习知识梳理
- 3.1 农业区位因素及其变化 课件 高一地理人教版(2019)必修第二册
- 建筑施工企业(安全管理)安全生产管理人员安全生产考试参考题及答案
- 锅炉应急预案演练方案
评论
0/150
提交评论