以太网控制器的制作方法

文档序号:6478755阅读:272来源:国知局

专利名称::以太网控制器的制作方法
技术领域
:本申请案的
技术领域
涉及以太网控制器。
背景技术
:以太网控制器(明确地说,独立的以太网控制器)经设计以充当用于任何类型的微处理器或微控制器的以太网网络接口。此类控制器可具有相当大的存储器,且可包括例如串行外围接口(SPI)总线等专用接口。在一些实施例中,此类以太网控制器还可使用SPI总线或任何其它有能力的接口连接集成在微控制器中。以太网控制器处置所有通信协议,且包含大缓冲器以用于传入和传出消息的中间存储。独立或集成的以太网控制器处置传入和传出数据包的协调以及包过滤。以太网控制器可进一步包含内部直接存储器存取(DMA)模块,以实现快速数据吞吐率和硬件辅助的校验和计算。以太网控制器与微控制器或微处理器的通信可以中断驱动的方式建立。微控制器或微处理器可经由SPI接口与以太网控制器通信并控制以太网控制器。为此,以太网控制器包含系统控制单元,其解译并执行通过所述接口接收到的有限量的命令。可通过多个控制寄存器来提供许多控制功能。在具有SPI接口的以太网控制器中,命令的宽度为8位,且因此只有有限数目的位(例如,五个位)可用以寻址寄存器。然而,这仅允许存取32个不同寄存器。如果以太网控制器具有(例如)超过100个寄存器,那么直接存取所有寄存器需要一个以上命令字节。为了提供对寄存器的快速读取和写入存取,常常使用分组方案。然而,每一组在寄存器数目上是受限的,且需要始终为可存取的重要寄存器需要被镜射到所有组。这进一步限制额外可用寄存器的数目。
发明内容根据一实施例,一种控制器包含控制单元,其可操作以经由I/O接口接收命令和数据;多个寄存器,其布置成寄存器块,所述寄存器块被划分为多个寄存器组,其中至少一个寄存器控制所述控制器的功能;寄存器地址单元,其包含用于通过多种寻址方案存取所述多个寄存器中之一的逻辑,其中所述寻址方案至少包含由所接收数据提供的直接地址、由来自所接收命令的部分地址和存储在组寄存器中的组地址提供的组合式地址,以及通过所接收命令形成多个预定地址选择的地址。根据进一步实施例,所述组寄存器可为所述寄存器块中具有单个地址的单个寄存器。根据进一步实施例,所述寄存器地址单元可包含地址寄存器,其与所述寄存器组耦合以用于寻址所述寄存器组。根据进一步实施例,所述地址寄存器可与可控制的自动递增单元耦合。根据进一步实施例,所述组合式地址可通过组合所述部分地址与所述组地址而产生,其中所述部分地址形成所述组合式地址的最低有效位,且所述组地址形成所述组合式地址的最高有效位。根据进一步实施例,所述组合式地址可通过将所述部分地址添加到所述组地址而产生。根据进一步实施例,所述地址寄存器可与第一多路复用器的输出耦合,所述第一多路复用器接收所述预定地址、所述直接地址和所述组合式地址中之一。根据进一步实施例,所述控制器可包含第二多路复用器,所述第二多路复用器接收多个组地址且输出所述组地址。根据进一步实施例,所述I/O接口可为SPI接口。根据进一步实施例,所述控制器可为以太网控制器。根据另一实施例,一种控制包含具有多个寄存器的寄存器组的控制器的操作的方法可包含以下步骤经由I/O接口接收命令;解码所述命令,且依据所述命令,通过经由所述I/O接口接收直接地址、从所述命令提取部分地址或通过所述命令从多个预定地址选择地址来确定地址;在提取部分地址的情况下,组合所述部分地址与存储在组寄存器中的组地址;以及使用所述地址来寻址所述寄存器组以用于读取或写入存取。根据进一步实施例,所述组寄存器可为所述寄存器块中具有单个地址的单个寄存器。根据进一步实施例,所述组合所述部分地址的步骤可包含组合所述部分地址与所述组地址,其中所述部分地址形成所述组合式地址的最低有效位,且所述组地址形成所述组合式地址的最高有效位。根据进一步实施例,所述组合所述部分地址的步骤可包含将所述部分地址添加到所述组地址。根据进一步实施例,所述解码步骤可包含解码写入命令的步骤,且进一步包含以下步骤经由所述I/O接口接收数据,其中将第一数据写入到所述地址下的寄存器组;以及经由所述I/O接口接收进一步数据,其中在使地址递增之后,将所述进一步数据写入到所述寄存器组。根据进一步实施例,可重复所述接收和写入进一步数据的步骤,直到经由I/O接口接收到控制信号为止。根据进一步实施例,所述控制信号可为芯片选择信号。根据进一步实施例,所述解码步骤可包含解码读取命令的步骤,且所述方法进一步可包含以下步骤经由I/O接口发射数据,其中从所述地址下的寄存器组读取第一数据,且经由所述I/O接口发射所述第一数据;以及从所述寄存器组读取进一步数据,且经由所述I/O接口发射所述进一步数据,其中在使所述地址递增之后,从所述寄存器组读取所述进一步数据。根据进一步实施例,可重复所述读取和发射进一步数据的步骤,直到经由所述I/O接口接收到控制信号为止。根据进一步实施例,所述控制信号可为芯片选择信号。根据进一步实施例,所述I/O接口可为SPI接口。根据进一步实施例,所述控制器可为以太网控制器.所属领域的技术人员从以下图式、描述和所附权利要求书中将容易明白本发明的其它技术优点。本申请案的各种实施例只能获得所陈述优点的子集。任何优点对于实施例来说都不是决定性的。通过参考结合附图而进行的以下描述,可获得对本发明及其优点的较完整理解,在附图中,相同参考编号指示相同特征,且其中图1是如在独立的以太网控制器或用于微控制器的集成模块中使用的以太网控制器模块的框图;图2a和图2b说明用于存取以太网控制器内的寄存器的控制逻辑的不同实施例;图3展示根据实施例的示范性控制寄存器;以及图4展示根据实施例的来自和去往以太网控制器的命令/地址/数据流。虽然已参考本发明的实例实施例描绘、描述且界定了本发明的实施例,但此类参考并不暗示对本发明的限制,且不应推断有此限制。如所属领域的且受益于本发明的一般技术人员将想到,所揭示的标的物能够在形式和功能上具有相当大的修改、更改和相当多的均等物。所描绘并描述的本发明的实施例只是实例,且并非本发明的范围的穷举。具体实施例方式图1展示可为独立的以太网控制器或集成(例如)在微控制器中的以太网控制器模块的以太网控制器100的框图作为控制器的实施例。以太网控制器100包含典型的物理层(PHY)170,其具有发射单元TX和接收单元RX,用于经由网络发射和接收实际模拟数据。此物理层170与媒体接入控制(MAC)数据链路层150耦合,以用于实施实际以太网标准(IEEE802.3)。Mac层150与接收单元135和发射单元145耦合,所述接收单元135和发射单元145可包括相应的滤波器单元流控制和主机接口。以太网控制器还可包括直接存储器存取(DMA)控制器140,其能够执行(例如)校验和评估。可实施仲裁器130以切换实际缓冲器125与模块135、140和145之间的耦合。所述缓冲器可被设计为双端口缓冲器,且因此还通过控制寄存器提供存取,以允许具有有限寻址能力的接口存取缓冲器的整个范围。为此,可提供多个地址和数据寄存器120,以间接寻址缓冲器125。缓冲器控制寄存器120可与总线接口115和串行或并行输入/输出(I/O)接口105耦合。串行I/O接口可为(例如)SPI接口或任何其它合适的电路间接口。因此,I/O接口可包含(例如)一芯片选择输入引脚CS、一个或一个以上数据输入/输出引脚以及一时钟输入引脚。总线接口115还可提供额外的中断信号,以提供对以太网控制器100的额外控制。以太网控制器100可在内部由系统控制单元110控制,系统控制单元110控制以太网控制器100的相应单元。此外,可提供多个控制寄存器190,其可经由接口105来存取,如下文中将更详细地阐释。缓冲器存取寄存器120可为控制寄存器190(CRB)的一部分,如虚线所指示。而且,MAC层可包括另外的寄存器,其可经由CRB中的寄存器来存取。可提供包计数器185以对所发射的包的数目进行计数。Mac层150和/或发射逻辑135和接收逻辑145可与此包计数器耦合以实现自动递增功能。系统控制单元110也可与包计数器耦合,以对此计数器执行软件控制的递减功能。计数器值可映射到CRB中的特殊功能寄存器。系统控制单元110从串行或并行接口105接收命令(操作码),且提供对这些命令的解码。所述命令可提供对至少一些或所有寄存器的读取和写入,进而致使执行相应控制器的某些功能。明确地说,系统控制Iio可提供相应的控制序列以执行对缓冲器125的读取和写入存取,如下文将更详细地阐释。时钟单元160提供所需要的以太网发射时钟信号。图2a展示用于存取多个寄存器以控制以太网控制器的功能性的控制逻辑的实施例的某些细节。控制寄存器单元190被划分为四个块。每一块可包含(例如)32个寄存器。因此,单元190可包含128个不同寄存器,其可由单个字节寻址。任何其它寄存器分布和数目都是可能的。图2所展示的寻址逻辑允许三种不同存取方法。为此,多路复用器210包含三个不同输入、一选择输入Adr_Select和一与地址寄存器或锁存器240耦合的输出,所述地址寄存器或锁存器240用以寻址寄存器组190。信号Adr_Select在不同存取方法之间进行选择,且从发送到以太网控制器的命令解码。如果Adr_Select选择输入1,如图2所示,那么使用分组方案来执行控制寄存器190的寻址。在此情况下,发送到以太网控制器100的命令由单个操作码组成,所述操作码含有寄存器的部分地址。控制寄存器单元190中的指定寄存器控制多路复用器220选择(例如)四个组开始地址中之一。这些组开始地址(000、001、010、011)被用作最高有效位,且与地址信号Adr的剩余下部最低有效5个位组合。因此,根据此实施例的分组方案使用由所述命令提供的5个位和由组寄存器选择的固定上部3个位。根据此实施例,各自具有32个寄存器的8个组将是可能的,尽管图2中所示的实例仅使用4个组。如所属领域的技术人员将了解,视命令字节或字的设计而定,可定义其它组结构。组寄存器可位于控制寄存器块190中,且可在所有组中在相同地址处可用。然而,组寄存器还可存储(例如)在固定地址块230中或任何其它合适位置处。在Adr_Selct选择输入2的情况下,那么所述命令包含(例如)两个字节,第一字节为操作码,且第二字节为控制寄存器单元190内的寄存器的实际地址。虽然此实施例中仅使用128个寄存器或更少寄存器,但此方案将允许直接寻址控制寄存器单元190中多达256个不同寄存器。即使这种类型的寻址允许每个寄存器可存取,但需要将2个字节发射到以太网控制器100,这可能减慢操作。在Adr_SelCt选择输入3的情况下,那么可经由单字节命令直接存取预定数目个寄存器。例如组选择寄存器、流控制寄存器、中断控制等多个寄存器需要始终可存取。然而,在时间关键的操作中,当对寄存器的存取优选通过分组方案来执行时,此些寄存器可能不可直接存取。因此,如上文所述,先前以太网控制器提供此些关键寄存器到每一组中的映射。然而,这构成寄存器空间的浪费,且显著减少寄存器的数目。因此,根据一实施例,已识别出对操作来说最有意义的寄存器,且已将其地址存储(例如)在块230中。因此,对于寄存器的有限子集,提供1字节命令以用于读取和/或写入存取。从块230选择这些地址是通过解码发射到以太网控制器100的相应的1字节操作码来执行的。这些寻址方案中的任一者可用以读取/写入或选择性地设置可寻址寄存器中的任一者中的位。可通过使自动递增单元250与地址寄存器240耦合来实施自动递增功能。自动递增单元250在对寄存器组190的存取已完成之后,使寄存器240中的地址递增。为此,自动递增单元250可包含控制输入以用于激活和去活此功能。此外,自动递增功能可包括绕回功能,一旦已到达寄存器组190的结束地址,绕回功能就使寄存器240中的地址复位到0x0000。如之前所提及,缓冲器控制寄存器120可为控制寄存器块190的一部分。然而,存取缓冲器控制寄存器120的控制逻辑可依据所述命令而执行与针对其它控制寄存器不同的存取功能。当用于读取或写入缓冲器寄存器的特定命令被发送到以太网接口时,系统控制110存取这些寄存器,如上文所述。然而,当包读取或写入命令被发送到以太网接口时,虽然可以所描述的不同方式中之一来选择这些寄存器,但并不寻址这些寄存器以对相应寄存器执行读取/写入功能,而是将这些寄存器用于间接读取和写入包缓冲器。因此,控制寄存器存取逻辑经设计以区分不同寄存器存取模式。图2b展示替代实施例,其中缓冲器控制寄存器120与控制寄存器块190分离。此设计可有助于存取逻辑,因为仅需要直接寻址以用于读取/写入功能的所有寄存器合并在控制寄存器块190中,而可用于间接存取和用于直接存取的寄存器布置在块120中。在一个实施例中,这些寄存器可(例如)通过具有最高有效地址位“100.”来与分组方案分离。然而,在另一实施例中,这些寄存器可(例如)通过额外的第五组来存取。如图2b中所示,这些寄存器可为包缓冲器地址寄存器,如下文相对于用于存取包缓冲器125的特定操作码更详细地阐释。如图4所示,通过由处理器或微控制器发送的命令来执行以太网控制器的经由接口105的通信和控制。为此,将第一字节400(字节0)发送到以太网控制器。此字节0包含操作码,且还可包括部分地址。如果所述操作码编码写入命令,那么可在随后的周期中将一个或一个以上字节410、420(字节1、字节2等)发送到接口。多个写入命令可以突发模式操作,在突发模式下,将在接口处接收到的数据写入到连续地址中,其中开始地址由在字节0或字节1中提交的第一地址定义。为了结束此自动突发模式,可使用接口处的控制信号来结束此自动突发模式。举例来说,可否定芯片选择信号CS,以指示突发的结束,因此,可在触发突发传送的相应命令后执行单个或多个数据发射,如图4中所指示。如果操作码编码读取命令,那么可在随后的周期中将一个或一个以上字节430、440(字节1、字节2等)返回给处理器或微控制器。此外,可使用芯片选择信号来确定将多少返回数据发送回到处理器。如图4所示,字节0用以发射读取操作码。在嵌入字节0中的地址的情况下,将把下一个字节430从以太网控制器100发射到处理器或微控制器。在长地址的情况下,发射到以太网控制器100的字节1包含地址,且字节2将是从以太网控制器100返回的第一数据。取决于处理器或微控制器何时否定芯片选择信号,以太网控制器100返回一个或多个数据。对于一些命令,自动递增功能自动递增原先提交的地址。然而,一些命令可能要求特别地选择和自动递增功能。因此,以太网控制器100可以突发模式从恒定地址发射数据。下文描述各种示范性命令、其结构及其功能。所有示范性命令还在以下表1到表3中概述。首先,将描述设置/清除特殊功能寄存器位的所有操作码的操作。图3展示控制以太网控制器的某些操作的控制寄存器300作为实例。将结合相应的操作码来阐释某些位的功能性。这些操作码可包括RESET操作码此操作码设置配置寄存器中的控制寄存器位(S0FTRST),其导致装置的软复位。FCDIS操作码此操作码将控制寄存器300中的两个寄存器位8和9设置为00(F⑶ISABLE模式),以停用流控制。FCSINGLE操作码此操作码将控制寄存器300中的两个寄存器位8和9设置为01(FCSINGLE模式),以针对单个发射启用流控制。FCMULTIPLE操作码此操作码将控制寄存器300中的两个寄存器位8和9设置为10(FCMULTIPLE模式),以针对多个发射启用流控制。FCCLEAR操作码此操作码将控制寄存器300中的两个寄存器位8和9设置为11(FCCLEAR模式),以停止流控制。WPKTCDEC操作码此操作码设置控制寄存器300中的PKTCDEC寄存器位7,其致使包计数器递减。UDAEN操作码此操作码设置控制寄存器300中的UDAEN寄存器位6,其启用用户所定义的区域中的地址绕回。UDADIS操作码此操作码清除控制寄存器300中的UDAEN寄存器位6,其停用用户所定义的区域中的地址绕回。DMAC0PY操作码此操作码将控制寄存器300中的三个DMA控制寄存器位3、4、5设置为110,其将用初始校验和值$0000来开始DMA复制操作。DMAC0PYU操作码此操作码将控制寄存器300中的三个DMA控制寄存器位3、4、5设置为111,其将用从ECKSUM寄存器加载的初始校验和值开始DMA复制操作。DMACKSUM操作码此操作码将控制寄存器300中的三个DMA控制寄存器位3、4、5设置为100,其将用初始校验和值$0000来开始仅DMA校验和操作。DMACKSUMU操作码此操作码将控制寄存器300中的三个DMA控制寄存器位3、4、5设置为101,其用从ECKSUM寄存器加载的初始校验和值开始仅DMA校验和操作。DMAST0P操作码此操作码清除控制寄存器300中的DMASTART寄存器位2,其终止当前DMA操作。TXSTART操作码此操作码设置控制寄存器300中的TXRTS寄存器位1,其开始包的发射。TXSTOP操作码此操作码清除控制寄存器300中的TXRTS寄存器位1,其终止包的发射。RXSTART操作码此操作码设置控制寄存器300中的RXEN寄存器位0,其启用包的接收。RXSTOP操作码此操作码清除控制寄存器300中的RXEN寄存器位0,其启用包的接收。SETIRQIE操作码此操作码设置中断控制寄存器中的IRQIE寄存器位,其启用中断。CLRIRQIE操作码此操作码清除中断控制寄存器中的IRQIE寄存器位,其停用中断。接下来,描述读取或写入内部组选择寄存器(BANKSEL[1:0])的所有操作码的操作。这些操作码可包括用于选择四个组中之一的BOSEL、B1SEL、B2SEL、B3SEL,以及用于读取当前所选择的组的RBSEL。当0pCOde[7:3]=5'bllOOO被发送到以太网控制器时,可执行组选择WRITE命令,且待写入的值在Opcode[2:1]中。这允许用单个字节来解码组选择WRITE操作码,而不要求将组选择寄存器镜射到所有组。通过此命令,可独立于已选择了什么组而用单字节命令来直接存取相应的选择寄存器。接下来,描述读取或写入SFR寄存器的所有操作码的操作。RCR操作码此操作码从组选择寄存器和字节0(Address[40])中的地址所指向的CRB/MAC寄存器读取。读取数据在下一字节中返回,且内部SFR地址寄存器递增1。为了仅接收单个寄存器内容,必须通过否定芯片选择(CSn)引脚来终止此命令。否则,所返回的下一字节将为Address[40]+1,且接着为Address[40]+2等等。一旦Address[40]到达$FF,其就将转返到$00而不影响组选择寄存器。RCRU操作码此操作码在不使用组选择寄存器的情况下从CRB/MAC寄存器读取。字节1含有寄存器的完整7位寄存器地址。读取数据在下一字节中返回,且内部SFR地址寄存器递增1。为了仅接收单个寄存器内容,必须通过否定芯片选择(CSn)引脚来终止此命令。否则,所返回的下一字节将为Address[40]+1,且接着为Address[40]+2等等。一旦Address[40]到达$FF,其就将转返到$00而不影响组选择寄存器。WCR操作码此操作码向组选择寄存器和字节0(Address[40])中的地址所指向的CRB/MAC寄存器写入。写入数据在下一字节中呈现,且内部SFR地址寄存器递增1。为了仅发射单个寄存器内容,必须通过否定芯片选择(CSn)引脚来终止此命令。否则,所写入的下一字节将为Address[40]+1,且接着为Address[40]+2等等。一旦Address[40]到达$FF,其就将转返到$00而不影响组选择寄存器。WCRU操作码此操作码在不使用组选择寄存器的情况下向CRB/MAC寄存器写入。字节1含有寄存器的完整7位寄存器地址。写入数据在下一字节中呈现,且内部SFR地址寄存器递增1。为了仅发射单个寄存器内容,必须通过否定芯片选择(CSn)引脚来终止此命令。否则,所写Λ的下一字节将为Address[70]+1,且接着为Address[70]+2等等。一旦Address[70]到达$FF,其就将转返到$00而不影响组选择寄存器。BFS操作码此操作码设置组选择寄存器和字节0(Address[40])中的地址所指向的CRB寄存器中的个别位。设置掩码在下一字节中呈现,且内部SFR地址寄存器递增1。为了仅掩蔽单个寄存器内容,必须通过否定芯片选择(CSn)引脚来终止此命令。否则,所修改的下一字节将为Address[40]+1,且接着为Address[40]+2等等。一旦Address[40]到达$FF,其就将转返到$00而不影响组选择寄存器。BFSU操作码此操作码在不使用组选择寄存器的情况下设置CRB寄存器中的个别位。字节1含有寄存器的完整7位寄存器地址。设置掩码在下一字节中呈现,且内部SFR地址寄存器递增1。为了仅设置单个寄存器内容中的位,必须通过否定芯片选择(CSn)引脚来终止此命令。否则,所修改的他下一字节将为AddreSS[7:0]+l,且接着为AddreSS[7:0]+2等等。一旦Address[7:0]到达$FF,其就将转返到$00而不影响组选择寄存器。BFC操作码此操作码清除组选择寄存器和字节0(Address[40])中的地址所指向的CRB寄存器中的个别位。清除掩码在下一字节中呈现,且内部SFR地址寄存器递增1。为了仅发射单个寄存器内容中的清除掩码,必须通过否定芯片选择(CSn)引脚来终止此命令。否则,所修改的下一字节将为Address[40]+1,且接着为Address[40]+2等等。一旦Address[40]到达$FF,其就将转返到$00而不影响组选择寄存器。BFCU操作码此操作码在不使用组选择寄存器的情况下清除CRB寄存器中的个别位。字节1含有寄存器的完整位寄存器地址。清除掩码在下一字节中呈现,且内部SFR地址寄存器递增1。为了仅发射用于单个寄存器内容的清除掩码,必须通过否定芯片选择(CSn)引脚来终止此命令。否则,所修改的下一字节将为Address[70]+1,且接着为Address[70]+2等等。一旦Address[7:0]到达$FF,其就将转返到$00而不影响组选择寄存器。操作码RCR/WCR/BFS/BFC与RCRU/WCRU/BFSU/BFCU操作码之间的基本差异是地址格式。对于RCR/WCR/BFS//BFC操作码,内部BANKSEL[1:0]寄存器驱动SFR寄存器地址的位65。对于RCRU/WCRU/BFSU/BTOU操作码,在操作码之后的第一字节中传递完整的7位地址,从而不要求组切换。接下来,阐释读取或写入包缓冲器的所有操作码的操作。RBMTX操作码此操作码执行从ETXRDP寄存器所指向的地址处的包缓冲器的读取。如果启用地址自动递增,那么ETXRDP寄存器将在所述读取被执行之后更新如下如果读取地址等于TX缓冲器结束地址,那么将把TX缓冲器开始地址加载到ETXRDP寄存器中。如果读取地址等那么在执行读取之后,ETXRDP将转到$0000。否则,ETXRDP寄存器将递增1。如果不启用地址自动递增,那么ETXRDP寄存器的内容将保持不变。只要芯片选择引脚被断言,此命令就有效,进而允许数据从包缓冲器突发,如上文所阐释。RBMRX操作码此操作码执行从ERXRDP寄存器所指向的地址处的包缓冲器的读取。如果启用地址自动递增,那么ERXRDP寄存器将在所述读取被执行之后更新,如下如果读取地址等于RX缓冲器结束地址,那么将把RX缓冲器开始地址加载到ERXRDP寄存器中。如果读取地址等于$FFFF,那么在执行读取之后,ERXRDP将转到$0000。否则,ERXRDP寄存器将递增1。如果不启用地址自动递增,那么ERXRDP寄存器的内容将保持不变。只要芯片选择引脚被断言,此命令就有效,进而允许数据从包缓冲器突发。RBMUDA操作码此操作码执行从EUDARDP寄存器所指向的地址处的包缓冲器的读取。如果启用地址自动递增,那么EUDARDP寄存器将在所述读取被执行之后更新如下如果读取地址等于用户所定义区域结束地址,那么将把用户所定义区域开始地址加载到ETXRDP寄存器中。如果读取地址等于$FFFF,那么在执行读取之后,EUDARDP将转到$0000。否则,EUDARDP寄存器将递增1。如果不启用地址自动递增,那么EUDARDP寄存器的内容将保持不变。只要芯片选择引脚被断言,此命令就有效,进而允许数据从包缓冲器突发。此外,必须通过否定芯片选择(CSn)引脚来终止此命令。WBMTX操作码此操作码执行向ETXWRP寄存器所指向的地址处的包缓冲器的写入。如果启用地址自动递增,那么ETXWRP寄存器将在所述读取被执行之后更新如下如果写入地址等于TX缓冲器结束地址,那么将把TX缓冲器开始地址加载到ETXWRP寄存器中。如果写入地址等那么在执行写入之后,ETXWRP将转到$0000。否则,ETXRDP寄存器将递增1。如果不启用地址自动递增,那么ETXWRP寄存器的内容将保持不变。只要芯片选择引脚被断言,此命令就有效,进而允许数据突发到包缓冲器中。此外,必须通过否定芯片选择(CSn)引脚来终止此命令。WBMRX操作码此操作码执行向ERXWRP寄存器所指向的地址处的包缓冲器的写入。如果启用地址自动递增,那么ERXWRP寄存器将在所述读取被执行之后更新如下如果写入地址等于RX缓冲器结束地址,那么将把RX缓冲器开始地址加载到ERXWRP寄存器中。如果写入地址等那么在执行写入之后,ERXWRP将转到$0000。否则,ERXRDP寄存器将递增1。如果不启用地址自动递增,那么ERXWRP寄存器的内容将保持不变。只要芯片选择引脚被断言,此命令就有效,进而允许数据突发到包缓冲器中。此外,必须通过否定芯片选择(CSn)引脚来终止此命令。WBMUDA操作码此操作码执行向EUDAWRP寄存器所指向的地址处的包缓冲器的写入。如果启用地址自动递增,那么EUDAWRP寄存器将在所述读取被执行之后更新如下如果写入地址等于用户所定义区域结束地址,那么将把用户所定义区域开始地址加载到EUDAWRP寄存器中。如果写入地址等于$FFFF,那么在执行写入之后,EUDAffRP将转到$0000。否则,EUDARDP寄存器将递增1。如果不启用地址自动递增,那么EUDAWRP寄存器的内容将保持不变。只要芯片选择引脚被断言,此命令就有效,进而允许数据突发到包缓冲器中。此外,必须通过否定芯片选择(CSn)引脚来终止此命令。接下来,描述读取或写入包缓冲器指针寄存器的所有操作码的操作(ETXRDP[PKT_ADDR_MSB0]、ETXffRP[PKT_ADDR_MSB0]、ERXRDP[PKT_ADDR_MSB0]、ERXffRP[PKT_ADDR_MSB0]、EUDARDP[PKT_ADDR_MSB0]、EUDAWRP[PKT_ADDR_MSB0])。WTXRDP操作码此操作码用以改变ETXRDP寄存器的内容。字节1被写入到ETXRDPL中,且必须始终存在。如果存在字节2,那么将其写入到ETXRDPH中。如果不需要字节2,那么在字节1之后必须否定芯片选择引脚。在芯片选择的否定之后或在字节2之后的下一字节被视为新命令。RTXRDP操作码此操作码用以读回ETXRDP寄存器的内容。字节1含有ETXRDPL的内容,且必须始终存在。如果存在字节2,那么其含有ETXRDPH的内容。如果不需要字节2,那么在字节1之后必须否定芯片选择引脚。在芯片选择的否定之后或在字节2之后的下一字节被视为新命令。WRXRDP操作码此操作码用以改变ERXRDP寄存器的内容。字节1被写入到ERXRDPL中,且必须始终存在。如果存在字节2,那么将其写入到ERXRDPH中。如果不需要字节2,那么在字节1之后必须否定芯片选择引脚。在芯片选择的否定之后或在字节2之后的下一字节被视为新命令。RRXRDP操作码此操作码用以读回ERXRDP寄存器的内容。字节1含有ERXRDPL的内容,且必须始终存在。如果存在字节2,那么其含有ERXRDPH的内容。如果不需要字节2,那么在字节1之后必须否定芯片选择引脚。在芯片选择的否定之后或在字节2之后的下一字节被视为新命令。WUDARDP操作码此操作码用以改变EUDARDP寄存器的内容。字节1被写入到EUDARDPL中,且必须始终存在。如果存在字节2,那么将其写入到EUDARDPH中。如果不需要字节2,那么在字节1之后必须否定芯片选择引脚。在芯片选择的否定之后或在字节2之后的下一字节被视为新命令。RUDARDP操作码此操作码用以读回EUDARDP寄存器的内容。字节1含有EUDARDPL的内容,且必须始终存在。如果存在字节2,那么其含有EUDARDPH的内容。如果不需要字节2,那么在字节1之后必须否定芯片选择引脚。在芯片选择的否定之后或在字节2之后的下一字节被视为新命令。WTXWRP操作码此操作码用以改变ETXWRP寄存器的内容。字节1被写入到ETXWRPL中,且必须始终存在。如果存在字节2,那么将其写入到ETXWRPH中。如果不需要字节2,那么在字节1之后必须否定芯片选择引脚。在芯片选择的否定之后或在字节2之后的下一字节被视为新命令。RTXWRP操作码此操作码用以读回ETXWRP寄存器的内容。字节1含有ETXWRPL的内容,且必须始终存在。如果存在字节2,那么其含有ETXWRPH的内容。如果不需要字节2,那么在字节1之后必须否定芯片选择引脚。在芯片选择的否定之后或在字节2之后的下一字节被视为新命令。WRXWRP操作码此操作码用以改变ERXWRP寄存器的内容。字节1被写入到ERXWRPL中,且必须始终存在。如果存在字节2,那么将其写入到ERXWRPH中。如果不需要字节2,那么在字节1之后必须否定芯片选择引脚。在芯片选择的否定之后或在字节2之后的下一字节被视为新命令。RRXWRP操作码此操作码用以读回ERXWRP寄存器的内容。字节1含有ERXWRPL的内容,且必须始终存在。如果存在字节2,那么其含有ERXWRPH的内容。如果不需要字节2,那么在字节1之后必须否定芯片选择引脚。在芯片选择的否定之后或在字节2之后的下一字节被视为新命令。WUDAWRP操作码此操作码用以改变EUDAWRP寄存器的内容。字节1被写入到EUDAWRPL中,且必须始终存在。如果存在字节2,那么将其写入到EUDAWRPH中。如果不需要字节2,那么在字节1之后必须否定芯片选择引脚。在芯片选择的否定之后或在字节2之后的下一字节被视为新命令。RUDAWRP操作码此操作码用以读回EUDAWRP寄存器的内容。字节1含有EUDAWRPL的内容,且必须始终存在。如果存在字节2,那么其含有EUDAWRPH的内容。如果不需要字节2,那么在字节1之后必须否定芯片选择引脚。在芯片选择的否定之后或在字节2之后的下一字节被视为新命令。DraUGFSM操作码此操作码返回内部状态机的快照,且仅可用于工厂调试和测试。如果不需要字节2或字节3,那么必须分别在字节1或字节2之后否定芯片选择引脚。在芯片选择的否定之后或在字节3之后的下一字节被视为新命令表1<table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table>表2<table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table><table>tableseeoriginaldocumentpage18</column></row><table>已结合可通过外部微控制器或处理器经由I/O接口控制的以太网控制器阐释了所描述的对布置在寄存器组内且用以控制功能性的寄存器的存取方案。然而,本发明不限于以太网控制器,而是可在经由例如SPI接口等I/O接口控制的其它类型的独立控制器中使用。权利要求一种控制器,其包含控制单元,其可操作以经由I/O接口接收命令和数据;多个寄存器,其布置成寄存器块,所述寄存器块被划分为多个寄存器组,其中至少一个寄存器控制所述控制器的功能;寄存器地址单元,其包含用于通过多个寻址方案来存取所述多个寄存器中之一的逻辑,其中所述寻址方案至少包含由所接收数据提供的直接地址、由来自所接收命令的部分地址和存储在组寄存器中的组地址提供的组合式地址以及通过所接收命令形成多个预定地址选择的地址。2.根据权利要求1所述的控制器,其中所述组寄存器是所述寄存器块中具有单个地址的单个寄存器。3.根据权利要求1所述的控制器,其中所述寄存器地址单元包含与所述寄存器组耦合以用于寻址所述寄存器组的地址寄存器。4.根据权利要求3所述的控制器,其中所述地址寄存器与可控制的自动递增单元耦合5.根据权利要求1所述的控制器,其中所述组合式地址是通过组合所述部分地址与所述组地址而产生的,其中所述部分地址形成所述组合式地址的最低有效位,且所述组地址形成所述组合式地址的最高有效位。6.根据权利要求1所述的控制器,其中所述组合式地址是通过将所述部分地址添加到所述组地址而产生的。7.根据权利要求3所述的控制器,其中所述地址寄存器与第一多路复用器的输出耦合,所述第一多路复用器接收所述预定地址、所述直接地址和所述组合式地址中之一。8.根据权利要求7所述的控制器,其进一步包含第二多路复用器,所述第二多路复用器接收多个组地址且输出所述组地址。9.根据权利要求1所述的控制器,其中所述I/O接口是SPI接口。10.根据权利要求1所述的控制器,其中所述控制器是以太网控制器。11.一种控制包含具有多个寄存器的寄存器组的控制器的操作的方法,所述方法包含以下步骤经由I/O接口接收命令;解码所述命令,且依据所述命令通过经由所述I/O接口接收直接地址、从所述命令提取部分地址或通过所述命令形成多个预定地址选择地址来确定地址;在提取部分地址的情况下,组合所述部分地址与存储在组寄存器中的组地址;使用所述地址来寻址所述寄存器组以用于读取或写入存取。12.根据权利要求11所述的方法,其中所述组寄存器是寄存器块中具有单个地址的单个寄存器。13.根据权利要求11所述的方法,其中所述组合所述部分地址的步骤包含组合所述部分地址与所述组地址,其中所述部分地址形成所述组合式地址的最低有效位,且所述组地址形成所述组合式地址的最高有效位。14.根据权利要求11所述的方法,其中所述组合所述部分地址的步骤包含将所述部分地址添加到所述组地址。15.根据权利要求11所述的方法,其中所述解码步骤包含解码写入命令的步骤,且进一步包含以下步骤经由所述I/O接口接收数据,其中将第一数据写入到所述地址下的所述寄存器组;以及经由所述I/O接口接收进一步数据,其中在使所述地址递增之后将所述进一步数据写入到所述寄存器组。16.根据权利要求15所述的方法,其中重复所述接收和写入进一步数据的步骤,直到经由所述I/O接口接收到控制信号为止。17.根据权利要求16所述的方法,其中所述控制信号是芯片选择信号。18.根据权利要求11所述的方法,其中所述解码步骤包含解码读取命令的步骤,且所述方法进一步包含以下步骤经由所述I/O接口发射数据,其中从所述地址下的所述寄存器组读取第一数据,且经由所述I/O接口发射所述第一数据,以及从所述寄存器组读取进一步数据,且经由所述I/O接口发射所述进一步数据,其中在使所述地址递增之后从所述寄存器组读取所述进一步数据。19.根据权利要求18所述的方法,其中重复所述读取和发射进一步数据的步骤,直到经由所述I/O接口接收到控制信号为止。20.根据权利要求19所述的方法,其中所述控制信号是芯片选择信号。21.根据权利要求1所述的控制器,其中所述I/O接口是SPI接口。22.根据权利要求1所述的控制器,其中所述控制器是以太网控制器。23.一种以太网控制器,其包含控制单元,其可操作以经由SPI接口接收命令和数据;多个寄存器,其布置成寄存器块,所述寄存器块被划分为多个寄存器组,其中至少一个寄存器控制所述控制器的操作;寄存器地址单元,其包含用于通过多个寻址方案来存取所述多个寄存器中之一的逻辑,其中所述寻址方案至少包含由所接收数据提供的直接地址、由来自所接收命令的部分地址和存储在组寄存器中的组地址提供的组合式地址以及通过所接收命令形成多个预定地址选择地址,其中所述组寄存器是所述寄存器块中具有单个地址的单个寄存器。24.根据权利要求23所述的控制器,其中所述寄存器地址单元包含与所述寄存器组耦合以用于寻址所述寄存器组的地址寄存器,且其中所述地址寄存器与可控制的自动递增单兀華禹合。25.根据权利要求24所述的控制器,其中所述地址寄存器与第一多路复用器的输出耦合,所述第一多路复用器接收所述预定地址、所述直接地址和所述组合式地址中之一。全文摘要本发明提供一种控制器,明确地说,一种以太网控制器,其具有控制单元,其可操作以经由I/O接口接收命令和数据;多个寄存器,其布置成寄存器块,所述寄存器块被划分为多个寄存器组,其中至少一个寄存器控制所述控制器的功能;寄存器地址单元,其具有用于通过多个寻址方案来存取所述多个寄存器中之一的逻辑,其中所述寻址方案至少具有由所接收数据提供的直接地址、由来自所接收命令的部分地址和存储在组寄存器中的组地址提供的组合式地址以及通过所接收命令形成多个预定地址选择的地址。文档编号G06F13/38GK101821723SQ200880112783公开日2010年9月1日申请日期2008年11月21日优先权日2007年11月21日发明者迈克尔·西蒙斯申请人:密克罗奇普技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1