当 NCN26010 需要在单对以太网数据段上传输数据时ec呼叫系统官网时有少许留意事项,更加是由于该器件正在没有精确装备的处境下无法介入众点数据段(multi−drop segment)通讯。别的,倘使装备欠妥,尚有可以长远扰乱全豹数据段。本利用札记旨正在为用户供给针对其特定利用的装备指南。这里仅描绘了所需的根本创立,并通过装备示例对这些创立实行了研究。本文为第一个人,将先容任务形式、利用新闻等。
NCN26010 供给 IEEE 802.3cg 规范轨则的强制和可选任务形式,并供给扩展效用:
咱们将核心先容OPEN定约 MACPHY SPI 允诺的根本效用。相闭注意新闻,倡议用户查阅的OPEN定约 TC6 文档1.0 版。
为了阐明该个人的根本用处,本利用札记起首研究了何如读写装备寄存器,以及何如通过 SPI 接口发送实践以太网帧数据。
接下来将先容一组根本装备以及 MAC 内部所在过滤器(Address Filter)和过滤器掩码(Filter Mask)的应用。
NCN26010 告竣了 OPEN定约 TC6 SPI 允诺的全豹必备效用。该允诺应用 SPI 接口接受和发送以太网帧,并通过所谓的掌握下令工作调换装备数据。
通过查看32位长通讯报头(Header)的最高有用位(MSB),能够区别掌握工作和数据工作。
当第31位(DNC = 数据 – 非下令)被置为0时,吐露这是一个掌握下令。掌握下令的格局如下:
为了传输以太网数据(双向),上位机必要发送有用的数据传输报头,随后紧跟实践的以太网数据。数据传输报头的特质是第31位被置1。以下是与NCN26010器件应用闭系的数据报头字段。
必要留意的是,正在NCN26010的利用中,只应用 NORX、DV、SV、SWO、EV、EBO 和强制(奇数)校验 P 字段。全豹其他位倡议永远发送0。
关于寄存器写入掌握工作(寄存器写入),包蕴32位寄存器实质和32位占位数据(dummy data)
SPI行动一种双向全双工通讯形式,每传输/接受一位数据就必要一个SCK(串行时钟)跳变。为了正在寄存器读写工作中接受适宜数目的字节,MCU上位机必要通过MOSI线器件发送占位字节(dummy bytes)。
相接的MCU务必也许正在继续开MACPHY的SPI芯片选取的处境下竣工全豹工作。
为寄存器读写打定两个 12 字节长的数组类似最为简便。正在数组中填入精确的数据(报头和写入数据),然后通过 SPI 以 12 字节的批量传输形式发送,同时将结果接受到 12 字节的接受缓冲区中。
这将供给一个通过 MOSI 发送、通过 MISO 接受的字节数组,其实质如下:
读取该寄存器的步骤例程务必查看数据流的末了两个 32 位字。倒数第二个 32 位字(回显报头,字节 4 至 7)应等于通过 MOSI 线发送到 MACPHY 的下令报头,而末了一个 32 位字则包蕴寄存器的实践数据。请留意,寄存器读取老是返回32位字的寄存器实质,假使根源寄存器仅包蕴16位可用实质。
当因为应用无效的奇偶校验位打算形式导致报头格局谬误,或SPI传输谬误酿成报头浮现奇偶校验谬误时,回显的掌握报头及全豹后续的32位字都将变为0x40000000,这外白存正在“报头谬误,HEADER BAD”处境。所以,MACPHY将粗心该下令。相接的上位性能够运用该新闻来检测掌握下令(Control Command)谬误,并触发从头传输精确的掌握下令。
假设您思要向NCN26010内部的MAC Control 0寄存器写入数据,以便正在集成的MAC与PHY之间启用TX(发送)和RX(接受)传输,同时让MACPHY打算以太网帧的帧校验序列(FCS),以减轻 MCU 的打算责任。
要启用TX和RX,而且让MAC打算并自愿附加FCS(帧校验序列)到它将发送的每个以太网帧上,必要正在寄存器中创立第 8 位(FCSA)、第 1 位(TXEN)和第 0 位(RXEN)。这将发作一个包蕴 0x00000103 值的待写入的数据字。
与上述寄存器读取示例相似,咱们起首必要确定单个寄存器写入的精确掌握下令报头。依照上述计划,咱们能够取得:
确定报头后,咱们就能够正在数组中填入要写入寄存器的数据。如许咱们就取得了一个字节数组,通过MOSI发送,通过MISO接受,实质如下:
请留意,奇偶校验的任务形式与寄存器读取示例类似。倘使报头中的奇偶校验位浮现谬误,则随后的 32 位字将被创立为 0x40000000。正在这种处境下,MACPHY 不会蜕化寄存器的实质。相接的 MCU 务必相应地统治这种处境,应用完善的报头从头发送寄存器写入工作。别的,厉重的是要先发送 MSB 数据。
相闭何如正在一次 SPI 传输中读取相连寄存器所在的注意新闻,倡议本利用札记的读者查阅OPEN定约 TC6 文档。
OA-TC6 允诺的策画不只应允通过 SPI 接口告竣器件装备,况且还能运用统一接口以半双工或全双工形式双向传输以太网帧,简直取决于上位机编制上运转软件的效用而定。但请留意,搀杂数据段上的实践以太网通讯永远是半双工的。以太网帧以分块(Chuck)的方式实行双向传输。
NCN26010 推广 OA SPI 允诺,通过“数据块”(data chunks)与相接的上位机摆设或编制传输以太网数据。
数据块是以太网帧的一个人,或者正在较短的帧中,它能够是全豹以太网帧。正在发送数据时,数据块包蕴一个数据报头,其后是预订义数目的有用(pay load)数据。NCN26010能够装备每个数据块的pay load数据为8、16、32或64字节,默认创立为64字节。当上位机从NCN26010 MACPHY接受数据时,起首发送pay load数据,之后陪同一个32位的数据报尾,报尾向上位机指示:
倘使全豹以太网帧的长度超越了单个数据块所能传输的数据量,则必要将其切割成适合数据块的片断。只须 NCN26010 摆设内部的 4 k byte 发送和接受缓冲区有足够的空间,这一观点就维持正在 NCN26010 和上位机摆设之间断绝以太网帧调换而不损失数据。
以太网帧数据可以包蕴也可以不包蕴 4 字节 FCS(帧校验序列),简直取决于何如装备。当装备为打算并自愿附加 FCS 时,由上位机摆设向 NCN26010 发送数据时估计不会附加 FCS。同样,当启用NCN26010内部的FCS反省时,输入帧无需供给FCS,由于无效帧(FCS校验谬误的帧)将不会存储正在RX缓冲区(即被甩掉)。
正在“存储转发”形式下,完善的数据帧会正在被发送到单对绞线以太网数据段或从以太网序言接受之前,整个存储正在器件的缓冲区内。
直通形式对上位机上运转的软件的延迟和模糊量本能有更厉苛的请求,由于上位机务必永远跟上以太网数据的输入和输出速率。正在应用众义务操作编制时,长时期的断绝任事例程或不适宜的义务切换会导致通讯速率减慢,从而因TX缓冲区欠载(underruns)或RX缓冲区超限(overruns)而导致数据损失。
本利用札记将不涉及应用NCN26010的“直通”形式实行数据调换的实质,而是紧要聚焦于“存储转发”形式的操作。
正在 存储转发 形式下运转时,上位机必要工夫闭怀缓冲区的填充秤谌,加倍是 RX 端或下行(downstream)数据流。关于 TX 上行(upstream)数据流,上位机上运转的软件能够轻松地延缓数据发送,直到所需的足足数据块数目(即,与现在谋划传输的以太网帧巨细相般配的数目)因为上位机无法直接掌握RX(downstream)数据流,若摆设以半双工形式调换数据,应优先统治RX数据流。
除其他装备选项外,数据块巨细(chunk size)的选取会对将NCN26010相接到上位机MCU或编制的SPI接口施加最低速率请求。
正在应用简便装备时,只应允新的以太网帧从数据块的来源最先,所需的SPI速率取决于以太网帧的长度以及数据块的巨细:以下图外阐明了这种干系。
从这张图外中,这种步骤的限制性变得显而易睹。当利用紧要应用短帧时,依据NCN26010的装备形式,较小的数据块巨细可以会带来更高的模糊量。正在这种简便的装备中,异常处境是应用长度为65字节的帧和64字节巨细的数据块。这将必要21 MHz的SPI速率。
NCN26010策画维持串行时钟(SCLK)上的SPI速率高达25 MHz。所以假使正在这种处境下,MACPHY 的速率也足以传输所需的数据;然而,利用步骤或驱动步骤务必同时统治 RX 和 TX。跟着以太网帧巨细的增大,默认的 64 字节数据块巨细必要下降 SPI 接口的时钟频率,以保障数据传输。
正在众点(multi−drop)传输境况中,咱们能够假设大个人数据流都正在 RX 倾向。因为 10Base-T1S 的半双工性格,假使以半双工形式统治 SPITX 和 RX 数据流,25 MHz SCLK 也能正在民众半处境下供给安靖的数据流而不会损失数据。
当 NCN26010 必要正在单对以太网数据段上传输数据时,上位机必要发送一系列包蕴完善以太网帧数据的有用数据块。
新的以太网帧将从数据报头的 SV 符号(肇端有用)置 1 最先。正在简便处境下,帧只应允正在CS(片选)信号被置位后的数据块肇端处最先,肇端字偏移量(Start Word Offset)将永远为0。倘使以太网帧也许容纳正在一个独立的数据块内,那么有用数据(payload)末了一个字节的EV(End Valid,完了有用)符号也必要被创立。请留意,当要传输的以太网帧数据短于以太网帧长度(包含源所在/主意所在、长度、字段/其他类型和 FCS)的最小请求 64 字节时,则NCN26010内的MAC会自愿增加填充字节,以将帧扩展到其最小所需长度。当NCN26010被装备为不自愿增加FCS时,填充字节以及FCS才必要由上位机供给。
正在第一种处境下,用户必要发送一个数据报头,紧随其后的是实践的帧数据。该数据报头必要创立以下这些位:
EBO(End Byte Offset,完了字节偏移)指向有用数据的末了一个字节。必要留意的是,假使以太网数据没有占满全豹数据块(比如,ARP播送帧长度为46字节,于是默认的64字节数据块并不会被全体运用),利用步骤如故必要永远发送全长数据块。
正在应用64字节数据块且必要发送一个长度为46字节的ARP播送帧的处境下,EBO将指向第45个字节,由于正在数据块中的第一个字节索引为0。
正在第二种处境下,必要两个数据块来容纳payload数据,那么第一个数据报头必要创立:
倘使向 NCN26010 MACPHY 传输payload数据时必要两个以上的数据块,则第一个报头与前一种处境相同:
因为正在数据传输前要先传输报头,所以向 MACPHY 发送数据块的利用步骤老是要比数据块的payload数据众发送 4 个字节。
由此,8 字节的数据块必要 12 字节,16 字节的数据块必要 20 字节,32 字节的数据块必要 36 字节,64 字节的数据块必要 68 字节。
请留意,假使数据块未整个应用,这些长度也是固定的。正在 EV=1 数据块的 EBO 之后发送的数据为 不属意 数据,能够是任何随机数据。为便当应用,倡议正在数据块中填入全为 0 的字节。
与发送掌握工作一律,数据工作也是双向同时实行的。通过 SPI 接口向 NCN26010 发送数据时,上位机将通过 NCN26010 的 MISO(主入从出,Master In Slave Out)引脚接受 MACPHY 返回的类似字节数。广泛处境下,数据从一个足够大的缓冲区发送和接受,该缓冲区可容纳发送帧数据所需的所少有据块。输入的数据将进入第二个(即接受)缓冲区。
发送到 MACPHY 的数据正在每个数据块之前带有 32 位报头新闻,MACPHY 发送出的数据块正在实践数据之后有一个 32 位报尾新闻。
报尾包蕴了上位机用来指引进一步通讯的新闻,无论其是发返璧是接受更众半据。报尾的各字段正在文献[2]的第7.3.7节中有注意注明。NCN26010器件不供给OPEN定约界说的可选时期戳效用,所以RTSA(位7)和RTSP(位6)字段将不应用,永远为0。
以太网数据调换最简便但也最慢的形式是半双工形式。正在发送帧时,倘使正在数据报头中创立了 NORX 符号,NCN26010 就会被指示正在接受上位机发送的 TX 帧数据时,不向上位机发送以太网数据。
同样,当数据报头的 DV 符号创立为零时,上位机可正在不供给 TX 数据的处境下接受帧数据。
正在这种任务形式下,相接的上位机该当优先读取帧而非发送帧,或者以“公道共享”的形式瓜代实行发送和接受。倡议是尽量疾速地清空接受缓冲区。
转载请注明出处:MT4平台下载
本文标题网址:当NCN26010需要在单对以太网数据段上传输数据时ec呼叫系统官网