在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

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

            作者: 時間:2024-09-11 來源:安森美 收藏

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

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

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

            工作模式

            NCN26010 提供 IEEE 802.3cg 標(biāo)準(zhǔn)規(guī)定的強制和可選工作模式,并提供擴展功能:

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

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

            • 突發(fā)模式

            • 優(yōu)先級模式

            ?增強噪聲抗擾度 (ENI)


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


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


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


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


            圖 1. 簡化框圖


            應(yīng)用信息

            SPI 接口

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

            通過查看32位長通信報頭(Header)的最高有效位(MSB),可以區(qū)分控制事務(wù)和數(shù)據(jù)事務(wù)。


            控制命令報頭

            當(dāng)?shù)?1位(DNC = 數(shù)據(jù) – 非命令)被置為0時,表示這是一個控制命令??刂泼畹母袷饺缦拢?/span>

            圖 2. 控制命令格式


            數(shù)據(jù)報頭

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

            圖 3. 數(shù)據(jù)報頭字段


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


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

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


            控制命令以命令控制報頭開頭,隨后是:

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

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


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


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


            為寄存器讀寫準(zhǔn)備兩個 12 字節(jié)長的數(shù)組似乎最為簡單。在數(shù)組中填入正確的數(shù)據(jù)(報頭和寫入數(shù)據(jù)),然后通過 SPI 以 12 字節(jié)的批量傳輸方式發(fā)送,同時將結(jié)果接收到 12 字節(jié)的接收緩沖區(qū)中。


            寄存器讀取示例:

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


            首先,我們需要生成一個適當(dāng)?shù)膱箢^:按照此主題確定報頭:


            圖4


            確定報頭后,在數(shù)組中填入零字節(jié)進行讀取操作。

            這將提供一個通過 MOSI 發(fā)送、通過 MISO 接收的字節(jié)數(shù)組,其內(nèi)容如下:

            圖5


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


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


            寄存器寫入示例:

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

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


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


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

            圖6


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

            圖7


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


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

            圖8


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

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


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

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


            數(shù)據(jù)塊(Data Chunks)的概念

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


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

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

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

            • NCN26010 接收緩沖區(qū)中準(zhǔn)備讀取的數(shù)據(jù)塊的可用數(shù)量。

            • 當(dāng)前可用于 TX 數(shù)據(jù)傳輸?shù)目諗?shù)據(jù)塊的數(shù)量。


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


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


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


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


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


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


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


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


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


            圖9


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


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


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


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


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


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

            圖10


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

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

            我們需要區(qū)分以三種不同方式處理的幀數(shù)據(jù)情況:

            1.幀完全匹配一個數(shù)據(jù)塊

            2.以太網(wǎng)幀匹配兩個數(shù)據(jù)塊

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


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

            . SV = 1

            . DV = 1

            . EV = 1


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


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


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

            . SV = 1

            . DV = 1

            . EV = 0

            . EBO = 0

            . SWO = 0


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

            . SV = 0

            . DV = 1

            . EV = 1

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

            . SWO = 0


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

            . SV = 1

            . DV = 1

            . EV = 0

            . EBO = 0

            . SWO = 0


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

            . SV = 0

            . DV = 1

            . EV = 0

            . EBO = 0

            . SWO = 0

            Or 0xA0200000.


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

            . SV = 0

            . DV = 1

            . EV = 1

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

            . SWO = 0


            由于在數(shù)據(jù)傳輸前要先傳輸報頭,因此向 MACPHY 發(fā)送數(shù)據(jù)塊的應(yīng)用程序總是要比數(shù)據(jù)塊的payload數(shù)據(jù)多發(fā)送 4 個字節(jié)。


            由此,8 字節(jié)的數(shù)據(jù)塊需要 12 字節(jié),16 字節(jié)的數(shù)據(jù)塊需要 20 字節(jié),32 字節(jié)的數(shù)據(jù)塊需要 36 字節(jié),64 字節(jié)的數(shù)據(jù)塊需要 68 字節(jié)。


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


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



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

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


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


            NCN26010 器件的數(shù)據(jù)報尾結(jié)構(gòu)如下:

            圖11


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


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


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


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



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

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉