版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
以太网控制器(EthernetController)LPC1700系列Cortex-M3微控制器胡宏泽目录简介1硬件连接2内部结构3基本操作4小结5简介
以太网(Ethernet)是目前应用最广泛的局域网通讯方式,同时也是一种协议。以太网协议定义了一系列软件和硬件标准,从而将不同的计算机设备连接在一起。以太网简介|以太网的基本组成以太网(Ethernet)设备组网的基本元素:光纤和普通网线集线器路由器交换机以太网协议,通讯规则
简介|背景
在现实的工业控制领域系统中,各厂家产品兼容性差、价格昂贵、底层通信速度慢是现场总线技术一直没有得到大力推广的原因。工业以太网技术的出现和快速发展,不但很好的解决了这些问题,同时也为现场总线技术的发展开辟了一个更为广阔的空间。另外,嵌入式技术应用于智能测控系统中,具有以下特点:可以完成数据测量、数据处理、过程控制等多种任务;能确保一些任务的实时性;具有一定自诊断、自校正的功能;便于连接工业以太网,利用工业以太网实现远程监控和数据通信。这些都大大提高了测控系统的性能。简介|以太网控制器
以太网控制器是专门用于以太网连接的控制器,由以太网媒体接入控制器(MAC)和物理接口收发器(PHY)组成。MAC与PHY通讯采用MII接口(媒体独立接口)或者RMII接口(简化的MII)。
LPC1700系列单片机包含一个功能齐全的10/100Mbps以太网MAC,可以通过RMII与PHY组成一个完整的以太网控制器。
LPC1700
MACPHYRMII接口网络变压器简介|通讯系统OSI模型与TCP/IPISO定义的OSI(OpenSystemsInterconnection)模型。物理层数据链路层表示层会话层传输层网络层应用层物理层数据链路层表示层会话层传输层网络层应用层EthernetMACEthernetPHYTCP/UDP…IP/ICMP…HTTP/FTP/DHCP…未定义硬件软件TCP/IP协议简介|LPC1700系列单片机以太网特性支持10/100MbpsPHY器件,如10Base-T、100Base-TX、100Base-FX、100Base-T4;完全兼容IEEE802.3标准;支持VLAN帧;支持发送超长帧和接收任意长度的帧;自动冲突检测和重发;局域网唤醒;通过RMII(ReducedMediaIndependentInterface)连接外部PHY,MIIM管理PHY;映射到共享SRAM的接收和发送缓冲区;具有通过帧描述符数组分散/聚集以太网帧的DMA引擎;通过缓冲和预取数据优化内存管理;支持使用任何通讯介质的外部PHY。目录硬件连接2简介1内部结构3基本操作4小结5硬件连接PHYRMIIMIIMREF_CLKTX_ENTXD1RXD0RX_ERCRSMDIO以太网MACMDCTXD0RXD1以太网模块使用RMII(简化的媒体独立接口)协议和片上MIMM(媒体独立接口)串行总线、还有MDIO(管理数据输入/输出)来实现与片外以太网PHY之间的连接注意:LPC1700系列Cortex-M3的以太网MAC只具有RMII接口目录内部结构3简介1硬件连接2基本操作4小结5MAC寄存器说明MAC寄存器说明控制寄存器说明控制寄存器说明控制寄存器说明接收过滤寄存器说明以太网模块控制寄存器说明内部结构|整体组成中断MIIM控制MCFGMCMDMADRMWTDMRDDMIND模块控制IntStatusIntEnableIntClearIntSetPowerDown接收过滤RxFilterCtrlRxFilterWoLStatusRxFilterWoLClearHashFilterLHashFilterH接收控制RSVRxDescriptorRxStatusRxDescriptorNumberRxProduceIndexRxConsumeIndex发送控制TSV0,TSV1TxDescriptorTxStatusTxDescriptorNumberTxProduceIndexTxConsumeIndexMAC地址SA0SA1SA2全局控制MAC1,MAC2IPGT,IPGRCLRTMAXFSUPP,TESTCommandStatusFlowControlCounterFlowControlStatusMIIMRMIIMAC层PHY发送FIFO接收FIFO由DMA引擎创建于SRAM内部结构|MIIM操作MACMII管理控制器AHBPHY相关寄存器MDC时钟MDIO数据MCFGMCMDMADRMWDTMRDDMIND1MCFG[5:2]选择时钟MCMD[0]写/读写PHY/寄存器地址等待“busy”清零写数据配置命令地址写数据读数据状态读数据等待“busy”清零254354内部结构|以太网包格式前导码SFD目标地址源地址长度/类型数据FCS7个字节1个字节6个字节6个字节2个字节46-1500个字节4个字节前导码SFD目标地址源地址长度/类型数据FCS
前导码为连续7个字节的10101010序列,用于实现物理层帧接收的时序同步。
起始帧分界符用于指示帧的开始,其值为10101011。
目标地址指定数据帧的最终目标的地址,长度为48bit,其LSB可用于指定一个帧是一个地址(0)还是组/多播地址(1)。
源地址识别帧启动的站点。
这个字段的意义由它的数值来决定,当值不大于1500(十进制),表示MAC客户数据的字节数,当值大于1536(十进制),表示数据的类型,比如ARP协议的数值为0x0806。FCS是循环冗余校验(CRC)值,使用CRC-32算法通过目标地址、源地址、长度/类型、数据和填充字段计算得到,可由硬件自动生成。帧接收时,若CRC校验失败,可选择硬件自动过滤。
数据字段是一个0~1500字节的序列。在以太网协议中,规定这个字段最小值为46,最大值为1500,少了要填充,多了要分帧。
内部结构|SRAM中FIFO创建
LPC1700系列单片机的以太网无独立的FIFO,而是在共享SRAM中创建环形缓冲代替收发FIFO。发送控制TSV0,TSV1TxDescriptorTxStatusTxDescriptorNumberTxProduceIndexTxConsumeIndexTxProduceIndexTxConsumeIndexPACKETCONTROLDATABUFFERPACKETCONTROLDATABUFFERPACKETCONTROLDATABUFFERPACKETCONTROLDATABUFFERTxDescriptorTxDescriptorNumber-1012TxConsumeIndex=TxProduceIndex;FIFO空TxProduceIndex=TxDescriptorNumber-1;缓冲尾,返回缓冲头TxProduceIndex=TxConsumeIndex-1;FIFO满描述符的数目存放描述符首地址数据缓冲的首地址内部结构|收发控制Command[10]FullDuplex使能双工模式TxProduceIndex填充数据MAC2[5]PAD/CRCENABLE使能PAD/CRCRxDescriptor建立接收FIFOCommand[7]PassRxFilter使能接收过滤Command[0]RxEnable使能接收RxProduceIndex接收缓冲标签RxFilterCtrl[1]AcceptBroadcastEn使能接收广播帧MAC2[4]CRCENABLE使能CRC写操作发送FIFO接收FIFO读操作任意深度双工器发送器接收器TxDescriptor建立发送FIFO前导码SFD目标地址源地址长度/类型数据FCS前导码SFD目标地址源地址长度/类型数据FCS前导码SFD目标地址源地址长度/类型数据FCS0使能发送Command[1]TxEnable4512364351DMA引擎RxFilterCtrl[5]AcceptPerfectEn使能接收地址匹配帧2RxConsumeIndex12012内部结构|接收过滤接收过滤RxFilterCtrlRxFilterWoLStatusRxFilterWoLClearHashFilterLHashFilterH
接收过滤模块可以对接收到的数据包进行过滤,丢掉无用数据包,降低CPU的负荷和内存消耗。地址匹配过滤单播/多播/广播过滤魔法包过滤哈希表过滤前导码SFD目标地址源地址长度/类型数据FCSb7:b1b00:单播1:多播目标地址目标地址假设为48CRC32查找HashFilterHHashFilterL100101011001000110010101001110011001010110100001101101011001010131:063:32前导码SFD目标地址源地址长度/类型数据FCS前导码SFD目标地址源地址长度/类型数据FCS广播:目标地址位全为1目标地址=本机MAC地址?相等则通过。由AMD定义,用于唤醒主机哈希表对应位值为1则通过。内部结构|模块控制模块控制IntStatusIntEnableIntClearIntSetPowerDown模块控制包含了中断控制和整个模块电源控制。IntClearIntSetIntEnable……中断状态……输出中断
接收溢出中断;接收错误;接收FIFO为空;处理完一个描述符的数据缓冲;发送FIFO空栈错误;发送错误;发送FIFO空;发送一个描述符缓冲完成;软件中断;唤醒中断。以太网中断源清中断状态中断设置中断使能目录基本操作4简介1硬件连接2内部结构3小结5
DMA管理器利用存放在存储器中的帧描述符数组和状态数组来工作。描述符充当以太网硬件和设备驱动软件之间的接口。接收帧和发送帧各有一个描述符数组。驱动软件DMA接收引擎DMA发送引擎逻辑链路控制层媒体访问控制层(MAC)接收状态接收描述符发送状态发送描述符以太网硬件以太网驱动软件与硬件的关系
设备驱动软件和以太网硬件都能同时对描述符数组执行读和写操作,以“产生”和“消耗”描述符。在两者同时请求的情况下,AHB总线仲裁将使DMA硬件具有更高的优先级。一个描述符的“拥有者”可以是设备驱动软件,也可以是以太网硬件。只有描述符的“拥有者”才能描述符进行读写操作。具体顺序如下:需要注意的一点:软件必须预先分配好用来存放的描述符数组的寄存器
设备驱动程序“拥有”并建立描述符设备驱动软件将描述符/状态的“拥有权”传递给以太网模块,这时以太网模块会读取描述符并将信息写入状态区域以太网模块将描述符的“拥有权”传递回设备驱动程序,驱动程序使用状态信息并重复利用描述符以供其他帧使用描述符数组的拥有顺序设备驱动程序“拥有”并建立描述符DMA引擎更新状态缓冲驱动软件重新拥有描述符DMA引擎拥有描述符驱动软件更新描述符TxProduceIndex++或RxProduceIndex++TxConsumeIndex++或RxConsumeIndex++接收描述符数组和接收状态数组初始化步骤RxDescriptor=接收描述符数组首地址RxStatus=接收状态数组首地址RxDescriptorNumber=接收描述符的数量-1初始化接收描述符数组和接收状态数组RxConsumIndex=0初始化完毕发送描述符数组和发送状态数组初始化步骤TxDescriptor=发送描述符数组首地址TxStatus=发送状态数组首地址TxDescriptorNumber=发送描述符的数量-1初始化接收描述符数组和接收状态数组TxProduceIndex=0初始化完毕接收操作的使能与禁能复位之后,以太网模块的接收功能是禁止的。设备驱动程序将命令寄存器的RxEnable位以及MAC1配置寄存器中的“RECEIVEENABLE”位置位来使能接收功能ACTIVERxStatus=1INACTIVERxStatus=0RxEnable=1RxEnable=0并且接收完毕或RxProduceIndex=RxConsumeIndex-1复位发送操作的使能与禁能复位之后,以太网模块的发送功能是禁止的。设备驱动程序将命令寄存器的TxEnable位置位可使能发送通道。ACTIVETxStatus=1INACTIVETxStatus=0TxEnable=1TxEnable=0并且数据发送完毕或RxProduceIndex=RxConsumeIndex复位以太网发送数据流程软件建立发送描述符发送DMA引擎读取发送描述符数组发送DMA引擎发送数据写发送状态TxConsumeIndex++以太网接收数据流程软件建立接收描述符接收DMA引擎读取接收描述符数组接收DMA引擎接收数据写接收状态RxProduceIndex++设备驱动程序处理接收数据发送示例发送流控制示例
上述例子采用的是全双工模式,即发送一帧信息的同时也接收到一帧信息。设备驱动程序检测是否出现缓冲区溢出并设置FlowControlCounter寄存器的PauseTimer字段和MirrorCounter字段的值,此后它通过置位命令寄存器中的TxFlowControl位来使能发送流控制。基本操作|MAC初始化voidEthernetInit(void){PCONP|=0x40000000;PINSEL2=0x50150105;PINSEL3=(PINSEL3&~0x0000000F)|0x00000005;MAC1=MAC1_PASS_ALL;Init_PHY(void);Command=CR_RMII|CR_PASS_RUNT_FRM;rx_descr_init();tx_descr_init();MAC1=MAC1_PASS_ALL;MAC2=MAC2_CRC_EN|MAC2_PAD_EN;IntEnable=INT_RX_DONE|INT_TX_DONE;IntClear=0xFFFF;Command|=(CR_RX_EN|CR_TX_EN);MAC1|=MAC1_REC_EN;}选择RMII模式配置以太网电源、引脚解除软件复位状态通过MIIM接口配置PHY配置DMA引擎,描述符配置主机寄存器使能接收和发送通道基本操作|MAC初始化voidEMACTxDescriptorInit(void){unit32i;unit32*tx_desc_addr,*tx_status_addr;MAC_TXDESCRIPTOR=TX_DESCRIPTOR_ADDR;MAC_TXSTATUS=TX_STATUS_ADDR;MAC_TXDESCRIPTORNUM=EMAC_TX_DESCRIPTOR_COUNT-1;for(i=0;i<EMAC_TX_DESCRIPTORTOR_COUNT;i++){tx_desc_addr=(unit32*)(TX_DESCRIPTOR_ADDR+i*8);*tx_desc_addr=(unit32)(EMAC_TX_BUFFER_ADDR+i*EMAC_BLOCK_SIZE);*(tx_desc_addr+1)=(unit32)(EMAC_TX_DESC_INT|(EMAC_BLOCK_SIZE-1));}for(i=0;i<EMAC_TX_DESCRIPTOR_COUNT;i++){tx_status_addr=(unit32*)(TX_STATUS_ADDR+i*4);*tx_status_addr=(unit32)0;}MAC_TXPRODUCEINDEX=0x0;return;}发送描述符数量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 柠溪租房合同模板
- 尿素供货合同模板
- 木工验收合同范例
- 代发货物合同范例
- 工程招标合同范例6
- 厨房设备安装工程合同
- 换热站保养合同范例
- 按揭车子质押合同范例
- 通风空调工程电工施工合同
- 个人劳务雇佣合同范例
- 混凝土搅拌站应急处置方案
- 防爆柜使用说明
- 高中思想政治-高三一轮复习为人民服务的政府教学设计学情分析教材分析课后反思
- IVUS指导PCI的应用课件
- 医科大学课件:《传染病学-第七章-原虫病-第三节-黑热病》
- 《滇南本草》读书笔记思维导图
- 《制作实验装置模拟吸烟有害健康》跨学科实践主题学习单元教学设计
- 国际学术交流英语知到章节答案智慧树2023年哈尔滨工业大学
- 放射科专科护理模拟题库及答案
- 骨折愈合过程
- 工程项目监理人员管理制度
评论
0/150
提交评论