




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要:在嵌入式系统中,以太网控制器通常也是研究热点之一,MicroChip 公司的ENC28J60在嵌入式系统中应用价值较高,该芯片集成了MAC控制器和PHY,使用SPI接口,适合在引脚资源比较紧张的嵌入式系统中加入以太网连接功能,本文主要介绍了MicroChip 公司的ENC28J60控制器的初始化及其编程相关的注意和要点,并针对开发中可能遇到的一些问题进 行了探讨。关键字:ENC28J60 编程1. 以太网数据缓冲区(8K)读写/地址控制REG的相关作用:注意,这些REG除EPKTCNT 外都为16bits,以太网数据缓冲区地址为:0000h1FFFh1).ERDPT(分为H/L两个)MC
2、 U读缓冲器指针:-手册P28,MCU 读取缓冲区数据时,每次实际读取的地址由该REG保存.2).EWRPT(分为H/L两个)MCU写缓冲器指针:-手册P29,MCU 向缓冲区写入数据时,每次实际写入的地址由该REG保存.3).ERXRDPT( 分为H/L两个)接收读指针:-手册P17,P33, 定义禁止接收硬件写入的 FIFO 中的位置。 在正常操作中,接收硬件 (指网 络接口方向)将数据顺序写入,直到 ERXRDPT 所指单元(不包括该单元)。注意 ,该REG与释 放缓冲区的空间操作相关.4).ERXWRPT( 分为H/L两个)接收写指针:-手册P17,P33, 定义接收硬件收到的数据写入
3、的FIFO中的具体位置。在正常操作中,接收硬件(指网络接口方向)将数据顺序写入 ERXWRPT所指单元。注意,该REG为”只读”且与释放 缓冲区的空间操作相关.5).ETXST(分为H/L两个)发送缓区起始地址:-手册P17,在整个以太网数据缓冲区中,定义待发送数据区的首地址6).ETXND(分为H/L两个)发送缓区结束地址:-手册P17,在整个以太网数据缓冲区中,定义待发送数据区的尾地址7).ERXST(分为H/L两个)接收缓区起始地址:-手册P17,在整个以太网数据缓冲区中,定义接收硬件可以写入数据的缓冲区首地址8).ERXND(分为H/L两个)接收缓区结束地址:-手册P17,在整个以太网
4、数据缓冲区中,定义接收硬件可以写入数据的缓冲区尾地址9).EPKTCNT(8bits)以太网数据包计数器:-手册P43,P45,当硬件允许的时候,每次收满一个以太网数据包 (64bytes) 时,EPKTCNT +1, 最大值为255,此时不论缓冲是否还有空闲也不再接收数据.每次前移ERXRDPT(即释放接收缓冲区操作)后,EPKTCNT-1,最小值为0.注意:在以上9个REG中,名称中带有” X”的规定的地址都是给以太网接收器使用的(即:从以太网一侧访问8K缓存),只有ERDPT和EWRPT是MCU通过SPI接口访问8K缓冲区用的.访问 的关系如下图:其中ERXWRPT 和ERXRDPT可以
5、指向同一地址,应为ENC28J60 接收时会从 ERXWRPT指向的地址一直写到 ERXRDPT指向的地址前一个空间 (即手册所谓的”不包括ERXRDPT指向 的单元”)此时整个接收缓冲区全部可用.8K空间中,实际用来进行发送缓冲的空间由寄存器组ETXST和ETXND确定,实际用来进行接受缓冲的空间由寄存器组ERXST和ERXND确定.显然,8K空间中可以多余一些什么也不用的位置2. MII 和PHY寄存器的操作:PHY寄存器负责对 PHY接口的配置,MCU不能直接从SPI接口访问这些 REG,但是主控可以通 过MAC组的一组特殊控制 REG来访问PHY控制寄存器,MAC组中的这些特殊的控制
6、REG即 称为Mil接口寄存器.对MCU而言,不会有直接访问 PHY的可能,所有的PHY操作都必须经过 Mil寄存器来完成.还需 注意,PHY有部分为16bits,写入的时候必须先写低 8bits,当写入高8bits的时候控制的设定将 立即起效.3. 控制器结构和初始化过程MCUCmrrt忖II召f10 Mbpis Eth&rnot初始化的过程应该是:初始化 ETH组REG-> 初始化 MAC 组REG-> 通过Mil初始化 PHY 组REG(需要查询 硬件稳定)Stepl :ETH组控制寄存器初始化1) .EIE初始化-手册P67,以太网中断允许控制主控SPI写控制REG
7、(WCR),发岀2byte,REG 地址0h1b,数据为:0b01011011+0bAAAAAAAA(A-8bits实际数据)2) . EIR 查询-手册P68,以太网中断状态获取主控SPI读控制 REG(RCR),发岀2byte, REG 地址0h1C,数据为:0b01011100+0bXXXXXXXX(X为了保持 SPCK 发岀的无效数)读取的有效数据在 SPI发送的第二个有效字节返回.3) .ESTAT 查询-手册P66,获得PHY就绪状态(以及以太网的各种错误状态)主控SPI读控制 REG(RCR),发岀2byte, REG 地址0h1D,数据为:0b01011101+0bXXXXXX
8、XX(X为了保持 SPCK 发岀的无效数 )读取的有效数据在 SPI发送的第二个有效字节返回.4) .ECON2 初始化-手册P16,IC节能控制,数据包指针寄存器控制主控SPI写控制REG(WCR),发岀2byte,REG 地址0h1E,数据为:0b01011110+0bAAAAAAAA(A-8bits实际数据)5) .ECON1 初始化-手册P15,特别注意其中对 BANK03的选择位,写不同的控制 REG需要多次改变 BankO3的选择.-手册P16,IC节能控制,数据包指针寄存器控制主控SPI写控制REG(WCR),发岀2byte,REG 地址Oh1F,数据为:0b01011111+0
9、bAAAAAAAA(A-8bits实际数据)6) .ERXFCON接收过滤器初始化-手册P48,首先需要写EC0N1 ,选择访问Bankl ,此后主控SPI写控制REG(WCR),发岀2byte,REG 地址0h18,数据为:0b01011000+0bAAAAAAAA(A-8bits实际数据)Step2 :ETH组地址寄存器初始化1) .寄存器组 ETXST 和ETXND 就位-定义发送缓冲区范围ETXSTL/H主控 SPI 写控制 REG(WCR), 发岀 4byte,REG 地址 0h04(L),0h05(H), 数据为:0b01000100+0bAAAAAAAA(A-8bits实际数据,
10、ETXSTL)0b01000101+0bAAAAAAAA(A-8bits实际数据,ETXSTH)ETXNDL/H主控 SPI 写控制 REG(WCR), 发岀 4byte,REG 地址 0h06(L),0h07(H), 数据为:0b01000110+0bAAAAAAAA(A-8bits实际数据,ETXNDL)0b01000111+0bAAAAAAAA(A-8bits实际数据,ETXNDH)2) .寄存器组 ERXST 和ERXND 就位-定义接收缓冲区范围ERXSTL/H主控 SPI 写控制 REG(WCR), 发岀 4byte,REG 地址 0h08(L),0h09(H), 数据为:0b01
11、001000+0bAAAAAAAA(A-8bits实际数据,ERXSTL)0b01001001+0bAAAAAAAA(A-8bits实际数据,ERXSTH)ERXNDL/H主控 SPI 写控制 REG(WCR), 发岀 4byte,REG 地址 OhOa(L),OhOb(H), 数据为:0b01001010+0bAAAAAAAA(A-8bits实际数据,ERXNDL)0b01001011+0bAAAAAAAA(A-8bits实际数据,ERXNDH)3) . ERXWRPT 和口 ERXRDPT 就位-注意其范围要随应用中定义的数据帧的大小变化,且每次处理完接收以后要操作ERXRDPT释放空间.
12、ERXWRPTL/H主控 SPI 写控制 REG(WCR),发岀 4byte,REG 地址 OhOC(L),OhOD(H), 数据为:0b01001100+0bAAAAAAAA(A-8bits实际数据,ERXRDPTL)0b01001101+0bAAAAAAAA(A-8bits实际数据,ERXRDPTH)注意:初始化时,ERXWRPTL/H一般取等于 ERXSTL/HERXRDPTL/H主控 SPI 写控制 REG(WCR), 发岀 4byte,REG 地址 OhOE(L),OhOF(H), 数据为:0b01001110+0bAAAAAAAA(A-8bits实际数据,ERXRDPTL)0b01
13、001111+0bAAAAAAAA(A-8bits实际数据,ERXRDPTH)注意:ERXRDPT 与ERXWRPT 的差值应该大于 1个以太网数据帧的长度,如果ERXRDPT=ERXWRPT则整个接收缓冲区可以连续使用4) .根据MCU从以太网接收数据的需要,ERDPT就位ERDPTL/H主控 SPI 写控制 REG(WCR),发岀 4byte,REG 地址 OhOO(L),OhO1(H), 数据为0b01000000+0bAAAAAAAA(A-8bits实际数据,ERDPTL)0b01000001+0bAAAAAAAA(A-8bits实际数据,ERDPTH)5) .根据MCU向以太网发送数
14、据的需要,EWRPT就位EWRPTL/H主控 SPI 写控制 REG(WCR),发岀 4byte,REG 地址 0h02(L),0h03(H), 数据为0b01000010+0bAAAAAAAA(A-8bits0b01000011+0bAAAAAAAA(A-8bitsStep3 :MAC组寄存器初始化(注意:MAC组寄存器映射在Bank2/3.实际数据,EWRPTL)实际数据,EWRPTH)访问前需要调整 ECON1 中的BSEL0/1)如果初始化发生在上电复位之后,初始化前必须查询 ESTAT.CLKRDY( 手册P33)MAC寄存器的初始化顺序不重要,一般按照(手册P34)说明的顺序:1)
15、 .MACON2.MARST位清0 MAC 初始化退岀.主控SPI写控制 REG(WCR), 发岀2byte,REG 地址0h01(Bank2)数据为:0b01000001+0bAAAAAAAA(A-8bits实际数据)2) .MACON1初始化-MARXEN 位置1使能 MAC 接收.-启动全双工方式,TXPAUS 和RXPAUS位置1.主控SPI写控制 REG(WCR), 发岀2byte,REG 地址0h00(Bank2)数据为:0b01000000+0bAAAAAAAA(A-8bits实际数据)3) .MACON3 初始化-将PADCFG.TXCRCEN. 和FULDPX 位置1,使能帧
16、自动填充,使能自动 CRC生成.(要注意其 中FRMLNEN位的使用).主控SPI写控制 REG(WCR), 发岀2byte,REG 地址0h02(Bank2)数据为:0b01000010+0bAAAAAAAA(A-8bits实际数据)4) .MACON4一般保持默认值5) .MAMXFL(16bitsREG,分为 H/L 两部分)就位-确定网络帧的最大字节数(暂定义应用中的帧长度都为64bytes).数据为主控 SPI 写控制 REG(WCR),发岀 4byte,REG地址(Bank2)0h0A(L),0h0B(H),0b01001010+0bAAAAAAAA(A-8bits实际数据,MAM
17、XFLL)0b01001011+0bAAAAAAAA(A-8bits实际数据,MAMXFLH)6) .MABBIPG 就位-背对背包时间间隔就位,全双工时置入值固定为15h主控SPI写控制 REG(WCR), 发岀2byte,REG 地址0h04(Bank2)数据为:ObO1OOO1OO+ObOOO1O1O17) .MAIPGL 就位-非背对背包时间间隔就位,全双工时置入值固定为12h(L)和0Ch(H)主控 SPI 写控制 REG(WCR),发岀 4byte,REG 地址(Bank2) 0h06(L)0h07(H) 数据为:0b01000110+0b00010010(MAIPGLL)0b01
18、000111+0b00001100(MAIPGLH)注意:正常使用时,应该米用全双工方式,此时MACLCON1/2 可保持默认值8).MAC 地址就位(映射在Bank3)-将6字节的MAC地址写入寄存器组:MAADR0MAADR5.主控 SPI 写控制 REG(WCR), 发岀 6byte,REG 地址(Bank3) 0h000h05 数据为:0b01000000+0bAAAAAAAA(A-8bits实际数据,MAADR1)0b01000001+0bAAAAAAAA(A-8bits实际数据,MAADR0)0b01000010+0bAAAAAAAA(A-8bits实际数据,MAADR3)0b01
19、000011+0bAAAAAAAA(A-8bits实际数据,MAADR2)0b01000100+0bAAAAAAAA(A-8bits实际数据,MAADR5)0b01000101+0bAAAAAAAA(A-8bits实际数据,MAADR4)Step4 :PHY组寄存器初始化注意:如果初始化发生在上电复位之后,初始化前必须查询ESTAT.CLKRDY( 手册P33)(注意:PHY组寄存器的 Mil接口 REG映射在Bank2,访问前需要调整 ECON1中的BSEL0/1)与PHY相关的Mil寄存器共有6个分别是:MICON 手册 P21,MII 控制 REGMICMD 手册 P21,MII 命令
20、REGMIREGADR 手册 P19,PHY 访问地址 REGMIWRL/H 手册P19,PHY 写数据REG高/低,注意,该REG组必须先写入 L再写入H,写入H 会触发Mil控制事件.MIRDL/H 手册P19,PHY 读数据REG高/低.在读之前应将 MICMD 的MIIRD 位置1,这样可 以触发PHY事件且使 MISTAT.BUSY =1,当Mil获得了 PHY值以后,MIIRD 不会自动清 0.所 以在查询MISTAT.BUSY =0以后要手动清 0.MISTAT 手册P22,MII 状态REG,反映PHY的状态,在读/写PHY之前应该先查询此 REG当 MISTAT.BUSY =
21、0时才可以进行操作.根据手册P38, 一般只需要配置 3个PHY模块并且要查询 PHY的工作状态1).PHCON1的手动操作-虽然可以通过外接 LED的方式确定半双工/全双工方式,但是手工设置 PHC0N1.PDPXMD 位 的值是更加安全的方法,同时也要手工修改 MAC0N3中的FULDPX位.-PHY 地址OOh,通过Mil操作时,流程在手册 P19主控 SPI 写控制 REG(WCR), 发岀 2byte*3, 给 MIREGADR,MIWRL/H 3 个 REG地址(Bank2 )0h14(MIREGADR),0h16(MIWRL),0h17(MIWRH),数据为:0b01010100
22、+0b00000000(00h)0b01010110+0bAAAAAAAA(实际数据一L字节应该是写入0b01010111+0b00000000(实际数据,在这里发出的数据无效写入后,MII字节 1 MIREGADR字节 1 MIREGADRPHCON1的实际值)字节 1 MIREGADR,仅触发PHY事件).自动触发 PHY事件,MISTAT.BUSY的地址,字节2 写入PHCON1的地址,字节2 写入MIWRL的地址,字节2 写入MIWRH的地址的 8bits的 8bits自动置1.2).PHLCON 的设置-根据外结LED电路的实际结构,有可能要修改这个REG.-PHY 地址00h,通过Mil操作时,流程在手册 P19主控 SPI 写控制 REG(WCR), 发岀 2byte*3, 给 MIREGADR,MIWRL/H 3 个 REG地址(Bank2)0h14(MIREGADR),0h16(MIWRL),0h17(MIWRH),数据为:ObO1O1O1OO+ObOOO1O1OO(14h)字节 1 MIREGADR的地址,字节2 写入PHLCON的地址0b01010110+0bAAAAAAAA( 实际数据一L字节应该是写入字节
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025标准网签版建筑工程合同模板
- 2025企业租赁合同协议标准版
- 2025年降酶退黄类药物合作协议书
- 2025技术转让合同范本(中英文对照)
- 2025年磐安县农产品收购合同
- 2025个人住宅庭院景观规划合同
- 2025二级建造师建筑实务知识点:合同价款约定详解
- 2025私营企业员工试用期合同模板
- 2025年外贸合同法律风险评估
- 2025年叔丁基苯酚项目合作计划书
- 软件质量证明书
- 高考标准化考场建设方案详细
- 人民医院肿瘤科临床技术操作规范2023版
- 高压-引风机电机检修文件包
- 2023届物理高考二模考前指导
- GB/T 39486-2020化学试剂电感耦合等离子体质谱分析方法通则
- GB/T 11085-1989散装液态石油产品损耗
- GXH-3011A1便携式红外线CO分析仪
- NYT 393-绿色食品 农药使用准则
- 2022年四川省阿坝州中考数学试卷及解析
- 综采工作面末采安全技术措施
评论
0/150
提交评论