<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > NCN26010 10Base-T1S器件的基本使用和配置,保姆級攻略來(lái)了

NCN26010 10Base-T1S器件的基本使用和配置,保姆級攻略來(lái)了

作者: 時(shí)間:2024-09-11 來(lái)源:安森美 收藏

10Base-T1S器件符合IEEE 802.3cg規范以及OPEN聯(lián)盟技術(shù)委員會(huì )6(Open  Alliance,TC6)的SPI(串行外設接口)協(xié)議,并具有各種可選附加功能。

本文引用地址:http://dyxdggzs.com/article/202409/462859.htm

為了正確可靠地運行,在配置時(shí)有一些注意事項,特別是因為該器件在沒(méi)有正確配置的情況下無(wú)法參與多點(diǎn)數據段(multi?drop segment)通信。此外,如果配置不當,還有可能長(cháng)期干擾整個(gè)數據段。本應用筆記旨在為用戶(hù)提供針對其特定應用的 配置指南。這里僅描述了所需的基本設置,并通過(guò)配置示例對這些設置進(jìn)行了討論。 本文為第一部分,將介紹工作模式、應用信息等。

工作模式

NCN26010 提供 IEEE 802.3cg 標準規定的強制和可選工作模式,并提供擴展功能:

?CSMA/CD 作為基本工作和后備協(xié)議

?物理層沖突避免機制 (PLCA)

  • 突發(fā)模式

  • 優(yōu)先級模式

?增強噪聲抗擾度 (ENI)


作為一款MAC-PHY(物理層-數據鏈路層)器件,NCN26010在一個(gè)單一芯片中集成了10Base-T1S物理層器件(Physical Layer Device)和符合IEEE802.3第4款的媒體訪(fǎng)問(wèn)控制器(Media Access Controller)。這種組合為低成本 MCU 提供了以太網(wǎng)通信功能,具備至少運行在15MHz且可軟件實(shí)現TCP/IP協(xié)議棧(例如,FreeRTOS+)的SPI接口。


我們將重點(diǎn)介紹OPEN聯(lián)盟 MACPHY SPI 協(xié)議的基本功能。有關(guān)詳細信息,建議用戶(hù)查閱的OPEN聯(lián)盟 TC6 文檔1.0 版。


為了說(shuō)明該部分的基本用途,本應用筆記首先討論了如何讀寫(xiě)配置寄存器,以及如何通過(guò) SPI 接口發(fā)送實(shí)際以太網(wǎng)幀數據。


接下來(lái)將介紹一組基本配置以及 MAC 內部地址過(guò)濾器(Address Filter)和過(guò)濾器掩碼(Filter Mask)的使用。


圖 1. 簡(jiǎn)化框圖


應用信息

SPI 接口

NCN26010 實(shí)現了 OPEN聯(lián)盟 TC6 SPI 協(xié)議的所有必備功能。 該協(xié)議使用 SPI 接口接收和發(fā)送以太網(wǎng)幀,并通過(guò)所謂的控制命令事務(wù)交換配置數據。

通過(guò)查看32位長(cháng)通信報頭(Header)的最高有效位(MSB),可以區分控制事務(wù)和數據事務(wù)。


控制命令報頭

當第31位(DNC = 數據 – 非命令)被置為0時(shí),表示這是一個(gè)控制命令??刂泼畹母袷饺缦拢?/span>

圖 2. 控制命令格式


數據報頭

為了傳輸以太網(wǎng)數據(雙向),上位機需要發(fā)送有效的數據傳輸報頭,隨后緊跟實(shí)際的以太網(wǎng)數據。數據傳輸報頭的特征是第31位被置1。以下是與NCN26010器件使用相關(guān)的數據報頭字段。

圖 3. 數據報頭字段


需要注意的是,在NCN26010的應用中,只使用 NORX、DV、SV、SWO、EV、EBO 和強制(奇數)校驗 P 字段。所有其他位建議始終發(fā)送0。


讀寫(xiě)配置和狀態(tài)寄存器

要寫(xiě)入或讀取單個(gè)寄存器,總共需要向 NCN26010 10Base-T1S MACPHY 發(fā)送 12 個(gè)字節。


控制命令以命令控制報頭開(kāi)頭,隨后是:

  • 對于寄存器寫(xiě)入控制事務(wù)(寄存器寫(xiě)入),包含32位寄存器內容和32位占位數據(dummy data)

  • 對于讀取控制事務(wù)(寄存器讀?。?,包含64位占位數據


SPI作為一種雙向全雙工通信方式,每傳輸/接收一位數據就需要一個(gè)SCK(串行時(shí)鐘)跳變。為了在寄存器讀寫(xiě)事務(wù)中接收適當數量的字節,MCU上位機需要通過(guò)MOSI線(xiàn)路向NCN26010器件發(fā)送占位字節(dummy bytes)。


連接的MCU必須能夠在不斷開(kāi)MACPHY的SPI芯片選擇的情況下完成整個(gè)事務(wù)。


為寄存器讀寫(xiě)準備兩個(gè) 12 字節長(cháng)的數組似乎最為簡(jiǎn)單。在數組中填入正確的數據(報頭和寫(xiě)入數據),然后通過(guò) SPI 以 12 字節的批量傳輸方式發(fā)送,同時(shí)將結果接收到 12 字節的接收緩沖區中。


寄存器讀取示例:

應用程序希望讀取位于 MMS0 地址 0x0001 的 MACPHY 的 SPI 識別寄存器。


首先,我們需要生成一個(gè)適當的報頭:按照此主題確定報頭:


圖4


確定報頭后,在數組中填入零字節進(jìn)行讀取操作。

這將提供一個(gè)通過(guò) MOSI 發(fā)送、通過(guò) MISO 接收的字節數組,其內容如下:

圖5


讀取該寄存器的程序例程必須查看數據流的最后兩個(gè) 32 位字。 倒數第二個(gè) 32 位字(回顯報頭,字節 4 至 7)應等于通過(guò) MOSI 線(xiàn)發(fā)送到 MACPHY 的命令報頭,而最后一個(gè) 32 位字則包含寄存器的實(shí)際數據。請注意,寄存器讀取總是返回32位字的寄存器內容,即使基礎寄存器僅包含16位可用內容。


當由于使用無(wú)效的奇偶校驗位計算方式導致報頭格式錯誤,或SPI傳輸錯誤造成報頭出現奇偶校驗錯誤時(shí),回顯的控制報頭及所有后續的32位字都將變?yōu)?x40000000,這表明存在“報頭錯誤,HEADER BAD”狀況。因此,MACPHY將忽略該命令。連接的上位機可以利用該信息來(lái)檢測控制命令(Control Command)錯誤,并觸發(fā)重新傳輸正確的控制命令。


寄存器寫(xiě)入示例:

假設您想要向NCN26010內部的MAC Control 0寄存器寫(xiě)入數據,以便在集成的MAC與PHY之間啟用TX(發(fā)送)和RX(接收)傳輸,同時(shí)讓MACPHY計算以太網(wǎng)幀的幀校驗序列(FCS),以減輕 MCU 的計算負擔。

請查閱NCN26010的數據手冊以找到MAC CONTROL0寄存器。它位于 MMS 1(內存映射選擇組 1)中,地址為 0x0000。


要啟用TX和RX,并且讓MAC計算并自動(dòng)附加FCS(幀校驗序列)到它將發(fā)送的每個(gè)以太網(wǎng)幀上,需要在寄存器中設置第 8 位(FCSA)、第 1 位(TXEN)和第 0 位(RXEN)。這將產(chǎn)生一個(gè)包含 0x00000103 值的待寫(xiě)入的數據字。


與上述寄存器讀取示例類(lèi)似,我們首先需要確定單個(gè)寄存器寫(xiě)入的正確控制命令報頭。按照上述方案,我們可以得到:

圖6


確定報頭后,我們就可以在數組中填入要寫(xiě)入寄存器的數據。 這樣我們就得到了一個(gè)字節數組,通過(guò) MOSI 發(fā)送,通過(guò) MISO 接收,內容如下:

圖7


請注意,奇偶校驗的工作方式與寄存器讀取示例相同。如果報頭中的奇偶校驗位出現錯誤,則隨后的 32 位字將被設置為 0x40000000。在這種情況下,MACPHY 不會(huì )改變寄存器的內容。連接的 MCU 必須相應地處理這種情況,使用完整的報頭重新發(fā)送寄存器寫(xiě)入事務(wù)。此外,重要的是要先發(fā)送 MSB 數據。


下面的代碼片段提供了一個(gè)生成命令事務(wù)報頭的函數實(shí)現示例:

圖8


上述示例說(shuō)明了如何生成有效的控制事務(wù),以支持單個(gè)寄存器的讀寫(xiě)操作。

有關(guān)如何在一次 SPI 傳輸中讀取連續寄存器地址的詳細信息,建議本應用筆記的讀者查閱OPEN聯(lián)盟 TC6 文檔。


發(fā)送和接收以太網(wǎng)幀

OA-TC6 協(xié)議的設計不僅允許通過(guò) SPI 接口實(shí)現器件配置,而且還能利用同一接口以半雙工或全雙工方式雙向傳輸以太網(wǎng)幀,具體取決于上位機系統上運行軟件的功能而定。但請注意,混合數據段上的實(shí)際以太網(wǎng)通信始終是半雙工的。 以太網(wǎng)幀以分塊(Chuck)的形式進(jìn)行雙向傳輸。


數據塊(Data Chunks)的概念

NCN26010 執行 OA SPI 協(xié)議,通過(guò)“數據塊”(data chunks)與連接的上位機設備或系統傳輸以太網(wǎng)數據。


數據塊是以太網(wǎng)幀的一部分,或者在較短的幀中,它可以是整個(gè)以太網(wǎng)幀。在發(fā)送數據時(shí),數據塊包含一個(gè)數據報頭,其后是預定義數量的有效(pay load)數據。NCN26010可以配置每個(gè)數據塊的pay load數據為8、16、32或64字節,默認設置為64字節。當上位機從NCN26010 MACPHY接收數據時(shí),首先發(fā)送pay load數據,之后跟隨一個(gè)32位的數據報尾,報尾向上位機指示:

  • 發(fā)送的數據中是否包含有效的以太網(wǎng)幀數據。

  • 在上一次傳輸中是否發(fā)現了錯誤。

  • NCN26010 接收緩沖區中準備讀取的數據塊的可用數量。

  • 當前可用于 TX 數據傳輸的空數據塊的數量。


如果整個(gè)以太網(wǎng)幀的長(cháng)度超過(guò)了單個(gè)數據塊所能傳輸的數據量,則需要將其切割成適合數據塊的片段。只要 NCN26010 設備內部的 4 k byte 發(fā)送和接收緩沖區有足夠的空間,這一概念就支持在 NCN26010 和上位機設備之間中斷以太網(wǎng)幀交換而不丟失數據。


以太網(wǎng)幀數據可能包含也可能不包含 4 字節 FCS(幀校驗序列),具體取決于如何配置。當配置為計算并自動(dòng)附加 FCS 時(shí),由上位機設備向 NCN26010 發(fā)送數據時(shí)預計不會(huì )附加 FCS。同樣,當啟用NCN26010內部的FCS檢查時(shí),輸入幀無(wú)需提供FCS,因為無(wú)效幀(FCS校驗錯誤的幀)將不會(huì )存儲在RX緩沖區(即被丟棄)。


NCN26010 可配置為存儲轉發(fā)(Store and Forward)模式或直通(Cut Though)工作模式。


在“存儲轉發(fā)”模式下,完整的數據幀會(huì )在被發(fā)送到單對絞線(xiàn)以太網(wǎng)數據段或從以太網(wǎng)媒介接收之前,全部存儲在器件的緩沖區內。


直通模式對上位機上運行的軟件的延遲和吞吐量性能有更嚴格的要求,因為上位機必須始終跟上以太網(wǎng)數據的輸入和輸出速度。在使用多任務(wù)操作系統時(shí),長(cháng)時(shí)間的中斷服務(wù)例程或不適宜的任務(wù)切換會(huì )導致通信速度減慢,從而因TX緩沖區欠載(underruns)或RX緩沖區超限(overruns)而導致數據丟失。


本應用筆記將不涉及使用NCN26010的“直通”模式進(jìn)行數據交換的內容,而是主要聚焦于“存儲轉發(fā)”模式的操作。


在 "存儲轉發(fā) "模式下運行時(shí),上位機需要時(shí)刻關(guān)注緩沖區的填充水平,尤其是 RX 端或下行(downstream)數據流。對于 TX 上行(upstream)數據流,上位機上運行的軟件可以輕松地延緩數據發(fā)送,直到所需的足夠數據塊數量(即,與當前計劃傳輸的以太網(wǎng)幀大小相匹配的數量) 由于 上位機 無(wú)法直接控制 RX ( downstream )數據流,若設備以半雙工方式交換數據,應優(yōu)先處理 RX 數據流 。


除其他配置選項外,數據塊大?。╟hunk size)的選擇會(huì )對將NCN26010連接到上位機MCU或系統的SPI接口施加最低速度要求。


在使用簡(jiǎn)單配置時(shí),只允許新的以太網(wǎng)幀從數據塊的開(kāi)頭開(kāi)始,所需的SPI速度取決于以太網(wǎng)幀的長(cháng)度以及數據塊的大?。阂韵聢D表說(shuō)明了這種關(guān)系。


圖9


從這張圖表中,這種方法的局限性變得顯而易見(jiàn)。當應用主要使用短幀時(shí),根據NCN26010的配置方式,較小的數據塊大小可能會(huì )帶來(lái)更高的吞吐量。在這種簡(jiǎn)單的配置中,極端情況是使用長(cháng)度為65字節的幀和64字節大小的數據塊。這將需要21 MHz的SPI速度。


NCN26010設計支持串行時(shí)鐘(SCLK)上的SPI速度高達25 MHz。因此即使在這種情況下,MACPHY 的速度也足以傳輸所需的數據;然而,應用程序或驅動(dòng)程序必須同時(shí)處理 RX 和 TX。隨著(zhù)以太網(wǎng)幀大小的增大,默認的 64 字節數據塊大小需要降低 SPI 接口的時(shí)鐘頻率,以保證數據傳輸。


在多點(diǎn)(multi?drop)傳輸環(huán)境中,我們可以假設大部分數據流都在 RX 方向。由于 10Base-T1S 的半雙工特性,即使以半雙工方式處理 SPITX 和 RX 數據流,25 MHz SCLK 也能在大多數情況下提供穩定的數據流而不會(huì )丟失數據。


當 NCN26010 需要在單對以太網(wǎng)數據段上傳輸數據時(shí),上位機需要發(fā)送一系列包含完整以太網(wǎng)幀數據的有效數據塊。


新的以太網(wǎng)幀將從數據報頭的 SV 標志(起始有效)置 1 開(kāi)始。在簡(jiǎn)單情況下,幀只允許在CS(片選)信號被置位后的數據塊起始處開(kāi)始,起始字偏移量(Start Word Offset)將始終為0。如果以太網(wǎng)幀能夠容納在一個(gè)單獨的數據塊內,那么有效數據(payload)最后一個(gè)字節的EV(End Valid,結束有效)標志也需要被設置。請注意,當要傳輸的以太網(wǎng)幀數據短于以太網(wǎng)幀長(cháng)度(包括源地址/目的地址、長(cháng)度、字段/其他類(lèi)型和 FCS)的最小要求 64 字節時(shí),則NCN26010內的MAC會(huì )自動(dòng)添加填充字節,以將幀擴展到其最小所需長(cháng)度。當NCN26010被配置為不自動(dòng)添加FCS時(shí),填充字節以及FCS才需要由上位機提供。


與控制事務(wù)報頭的計算類(lèi)似,數據事務(wù)報頭也可按下面的示例代碼生成:

圖10


發(fā)送以太網(wǎng)幀

在這里,我們僅描述了被稱(chēng)為 "TX 幀在數據塊邊界結束 "和 "每個(gè) TX 幀都匹配數據塊 "的 TX 幀發(fā)送情況。詳見(jiàn) [2]"圖 8:發(fā)送數據塊案例"。

我們需要區分以三種不同方式處理的幀數據情況:

1.幀完全匹配一個(gè)數據塊

2.以太網(wǎng)幀匹配兩個(gè)數據塊

3.以太網(wǎng)幀需要兩個(gè)以上的數據塊


在第一種情況下,用戶(hù)需要發(fā)送一個(gè)數據報頭,緊隨其后的是實(shí)際的幀數據。該數據報頭需要設置以下這些位:

. SV = 1

. DV = 1

. EV = 1


EBO(End Byte Offset,結束字節偏移)指向有效數據的最后一個(gè)字節。需要注意的是,即使以太網(wǎng)數據沒(méi)有占滿(mǎn)整個(gè)數據塊(例如,ARP廣播幀長(cháng)度為46字節,所以默認的64字節數據塊并不會(huì )被完全利用),應用程序仍然需要始終發(fā)送全長(cháng)數據塊。


在使用64字節數據塊且需要發(fā)送一個(gè)長(cháng)度為46字節的ARP廣播幀的情況下,EBO將指向第45個(gè)字節,因為在數據塊中的第一個(gè)字節索引為0。


在第二種情況下,需要兩個(gè)數據塊來(lái)容納payload數據,那么第一個(gè)數據報頭需要設置:

. SV = 1

. DV = 1

. EV = 0

. EBO = 0

. SWO = 0


而幀中的第二個(gè)也是最后一個(gè)數據報頭需要設置:

. SV = 0

. DV = 1

. EV = 1

. EBO = position of last valid pay load byte (最后一個(gè)有效payload字節的位置 )

. SWO = 0


如果向 NCN26010 MACPHY 傳輸payload數據時(shí)需要兩個(gè)以上的數據塊,則第一個(gè)報頭與前一種情況相似:

. SV = 1

. DV = 1

. EV = 0

. EBO = 0

. SWO = 0


在第一個(gè)數據塊之后和最后一個(gè)數據塊之前的所有報頭都需要:

. SV = 0

. DV = 1

. EV = 0

. EBO = 0

. SWO = 0

Or 0xA0200000.


最后一個(gè)報頭需要設置:

. SV = 0

. DV = 1

. EV = 1

. EBO = position of last valid pay load byte (最后一個(gè)有效payload字節的位置 )

. SWO = 0


由于在數據傳輸前要先傳輸報頭,因此向 MACPHY 發(fā)送數據塊的應用程序總是要比數據塊的payload數據多發(fā)送 4 個(gè)字節。


由此,8 字節的數據塊需要 12 字節,16 字節的數據塊需要 20 字節,32 字節的數據塊需要 36 字節,64 字節的數據塊需要 68 字節。


請注意,即使數據塊未全部使用,這些長(cháng)度也是固定的。在 EV=1 數據塊的 EBO 之后發(fā)送的數據為 "不關(guān)心 "數據,可以是任何隨機數據。為方便使用,建議在數據塊中填入全為 0 的字節。


與發(fā)送控制事務(wù)一樣,數據事務(wù)也是雙向同時(shí)進(jìn)行的。 通過(guò) SPI 接口向 NCN26010 發(fā)送數據時(shí),上位機將通過(guò) NCN26010 的 MISO(主入從出,Master In Slave Out)引腳接收 MACPHY 返回的相同字節數。通常情況下,數據從一個(gè)足夠大的緩沖區發(fā)送和接收,該緩沖區可容納發(fā)送幀數據所需的所有數據塊。輸入的數據將進(jìn)入第二個(gè)(即接收)緩沖區。



接收以太網(wǎng)數據

發(fā)送到 MACPHY 的數據在每個(gè)數據塊之前帶有 32 位報頭信息,MACPHY 發(fā)送出的數據塊在實(shí)際數據之后有一個(gè) 32 位報尾信息。


報尾包含了上位機用來(lái)引導進(jìn)一步通信的信息,無(wú)論其是發(fā)送還是接收更多數據。報尾的各字段在文獻[2]的第7.3.7節中有詳細解釋。NCN26010器件不提供OPEN聯(lián)盟定義的可選時(shí)間戳功能,因此RTSA(位7)和RTSP(位6)字段將不使用,始終為0。


NCN26010 器件的數據報尾結構如下:

圖11


這些字段可概括為以下功能:


以太網(wǎng)數據交換最簡(jiǎn)單但也最慢的方式是半雙工方式。在發(fā)送幀時(shí),如果在數據報頭中設置了 NORX 標志,NCN26010 就會(huì )被指示在接收上位機發(fā)送的 TX 幀數據時(shí),不向上位機發(fā)送以太網(wǎng)數據。


同樣,當數據報頭的 DV 標志設置為零時(shí),上位機可在不提供 TX 數據的情況下接收幀數據。


在這種工作模式下,連接的上位機應該優(yōu)先讀取幀而非發(fā)送幀,或者以“公平共享”的方式交替進(jìn)行發(fā)送和接收。建議是盡量快速地清空接收緩沖區。



關(guān)鍵詞: 安森美 NCN26010

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>