亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于TMS320C6678的雙網(wǎng)卡研究與驅(qū)動(dòng)實(shí)現(xiàn)①

        2018-11-14 11:37:08何玲玲王永兵
        關(guān)鍵詞:描述符空閑字段

        何玲玲,王永兵

        (中國(guó)電子科技集團(tuán)公司 第三十二研究所,上海 201808)

        1 引言

        隨著嵌入式系統(tǒng)設(shè)備的廣泛應(yīng)用,當(dāng)設(shè)備需要與多個(gè)網(wǎng)絡(luò)設(shè)備交互數(shù)據(jù)時(shí),需要設(shè)備具有多網(wǎng)口、多連接的功能,同時(shí)能夠解析應(yīng)用規(guī)約[1].目前大部分對(duì)TMS320C6678處理器的應(yīng)用場(chǎng)景下,都要求網(wǎng)卡工作在switch模式,這樣兩個(gè)slave 端口始終接收到相同的數(shù)據(jù).所以不論是TI提供的keystone架構(gòu)下的網(wǎng)卡參考驅(qū)動(dòng),還是互聯(lián)網(wǎng)上能搜索到的關(guān)于此網(wǎng)卡的驅(qū)動(dòng)開發(fā),都是關(guān)于switch模式的.隨著TMS320C6678處理器的廣泛應(yīng)用,越來(lái)越多的場(chǎng)景需要使用雙網(wǎng)卡模式,即port1和port2作為兩個(gè)獨(dú)立的網(wǎng)卡使用,分別與不同的設(shè)備連接完成不同的功能,這就需要研究基于TMS320C6678的雙網(wǎng)卡驅(qū)動(dòng)實(shí)現(xiàn).

        本文從網(wǎng)卡模塊簡(jiǎn)介、驅(qū)動(dòng)原理分析、驅(qū)動(dòng)設(shè)計(jì)實(shí)現(xiàn)以及驅(qū)動(dòng)測(cè)試等多個(gè)方面介紹了基于TMS320C6678的雙網(wǎng)卡的原理和實(shí)現(xiàn),對(duì)TI keystone架構(gòu)下的多種DSP處理器的雙網(wǎng)卡模式的實(shí)現(xiàn)都具有參考和借鑒意義,能極大的擴(kuò)展該系列處理器的應(yīng)用范圍.

        2 TMS320C6678處理器的網(wǎng)卡介紹

        TMS320C6678處理器基于KeyStone I架構(gòu),片上集成了一個(gè)網(wǎng)絡(luò)協(xié)處理器NETCP,NETCP由千兆以太網(wǎng)交換子系統(tǒng)、包加速器PA (Packet Accelerator)和安全加速器SA (Security Accelerator Engine)組成[2].PA負(fù)責(zé)數(shù)據(jù)包的分類操作和修改操作,SA負(fù)責(zé)數(shù)據(jù)包的加密和解密,交換子系統(tǒng)由三端口網(wǎng)絡(luò)交換機(jī)、MDIO模塊和SGMII模塊組成,其組成框圖如下[3]:

        系統(tǒng)中三端口網(wǎng)絡(luò)交換機(jī)的host port(即port0)負(fù)責(zé)交換機(jī)與網(wǎng)絡(luò)協(xié)處理器NETCP之間的通信,兩個(gè)slave port(即port1和port2)分別與兩個(gè)SGMII模塊相連,負(fù)責(zé)交換機(jī)與SGMII之間的數(shù)據(jù)傳輸.NETCP與 主機(jī)之間的數(shù)據(jù)傳輸由PKTDMA完成.

        圖1 以太網(wǎng)交換子系統(tǒng)框圖[3]

        交換機(jī)主要由以下模塊組成: 流媒體數(shù)據(jù)接口、MAC控制器、MAC接收FIFO、信息統(tǒng)計(jì)模塊、時(shí)間同步模塊和ALE模塊.

        流媒體數(shù)據(jù)接口包括發(fā)送流媒體數(shù)據(jù)接口和接收流媒體數(shù)據(jù)接口.發(fā)送流媒體數(shù)據(jù)接口負(fù)責(zé)將數(shù)據(jù)包從port 0傳輸?shù)絅ETCP,交換機(jī)有兩個(gè)相同的發(fā)送流媒體數(shù)據(jù)接口(TXA和TXB),其中TXA輸出從port1傳給port0的數(shù)據(jù)包,TXB輸出從port2傳給port0的數(shù)據(jù)包.接收流媒體數(shù)據(jù)接口負(fù)責(zé)接收來(lái)自于NETCP內(nèi)的數(shù)據(jù)[3].

        MAC控制器不僅負(fù)責(zé)完成交換機(jī)與SGMII模塊之間的信號(hào)轉(zhuǎn)換,還負(fù)責(zé)與IEEE802.3以太網(wǎng)幀相關(guān)的操作; MAC接收FIFO供數(shù)據(jù)傳輸時(shí)使用; 信息統(tǒng)計(jì)模塊用來(lái)記錄三個(gè)端口數(shù)據(jù)收發(fā)的情況,便于網(wǎng)絡(luò)調(diào)試; 時(shí)間同步模塊的主要用途是檢測(cè)時(shí)間同步事件并生成時(shí)間戳,然后將此信息提供給主機(jī)軟件進(jìn)行處理.

        ALE模塊處理所有接收的包,確定每個(gè)包被發(fā)往哪個(gè)端口.當(dāng)ALE非能時(shí),所有數(shù)據(jù)包都被丟棄.當(dāng)ALE工作在bypass模式時(shí),MAC模塊接收的所有數(shù)據(jù)包都只給port0,port0可以發(fā)送定向包給port1或者(和)port2.

        3 雙網(wǎng)卡模式下的驅(qū)動(dòng)實(shí)現(xiàn)

        3.1 驅(qū)動(dòng)原理

        多核導(dǎo)航器是Keystone架構(gòu)的核心組成部分.多核導(dǎo)航器使用隊(duì)列管理子系統(tǒng)(Queue Manager SubSystem,QMSS)和打包DMA(PKTDMA)來(lái)控制和完成高速數(shù)據(jù)包在設(shè)備內(nèi)的傳輸.NETCP與主機(jī)之間的數(shù)據(jù)傳輸由PKTDMA完成,PKTDMA處理的數(shù)據(jù)是以描述符的形式存在的,描述符存在于隊(duì)列中,由QMSS的PDSP固件完成隊(duì)列中描述符的操作.當(dāng)網(wǎng)卡硬件初始化完成后,主機(jī)發(fā)送數(shù)據(jù)時(shí),從發(fā)送空閑隊(duì)列分配一個(gè)描述符,填寫描述符域和負(fù)載數(shù)據(jù)后,將描述符PUSH到發(fā)送隊(duì)列,隊(duì)列管理器為隊(duì)列提供一個(gè)層敏感(level sensitive)狀態(tài)信號(hào)量,負(fù)責(zé)DMA的調(diào)度操作,DMA控制器最終引入相應(yīng)通道的上下文,并且開始處理包.DMA控制器通過(guò)將數(shù)據(jù)塊中的內(nèi)容傳輸出去的方式,來(lái)清空緩沖區(qū).根據(jù)包大小域中指定的大小,包中的數(shù)據(jù)全部傳輸完之后,DMA會(huì)將包描述符的指針寫到隊(duì)列中,這個(gè)隊(duì)列在返回隊(duì)列管理(包描述符的返回隊(duì)列數(shù)目域)中被指定,通常指定為發(fā)送空閑隊(duì)列便于以后發(fā)送數(shù)據(jù)時(shí)使用.當(dāng)Rx DMA給定的通道上開始一個(gè)包接收操作時(shí),這個(gè)端口會(huì)從接收空閑隊(duì)列中取出一個(gè)描述符,將數(shù)據(jù)寫入描述符對(duì)應(yīng)的緩存中.當(dāng)整個(gè)包被接收之后,PKTDMA 將包描述符指針寫入相應(yīng)的接收完成隊(duì)列,用戶處理完接收數(shù)據(jù)包后,將描述符重新PUSH到接收空閑隊(duì)列供PKTDMA下次接收使用.

        主機(jī)發(fā)送數(shù)據(jù)時(shí),接收流媒體數(shù)據(jù)接口能夠從接收的將要發(fā)送給以太網(wǎng)交換機(jī)的描述符的PS_FLAGS字段中提煉出額外的控制信息.該字段的說(shuō)明如表1所示.

        從表1可看出,可以在發(fā)送描述符的PS_FLAGS字段中設(shè)置端口號(hào)從而將數(shù)據(jù)包定向發(fā)送給交換機(jī)的某個(gè)端口,前提是ALE必須工作在bypass模式.

        表1 PS_FLAGS字段說(shuō)明[3]

        數(shù)據(jù)接收時(shí),不論port1還是port2接收到數(shù)據(jù)都會(huì)傳輸?shù)絧ort0,通過(guò)發(fā)送流媒體數(shù)據(jù)接口傳輸?shù)絅ETCP,其中來(lái)自port1的數(shù)據(jù)通過(guò)TXA傳輸,來(lái)自port2的數(shù)據(jù)通過(guò)TXB傳輸.TXA和TXB不僅傳輸數(shù)據(jù)包,還提供了一些額外信息,這些信息由PKTDMA的接收f(shuō)low控制.接收f(shuō)low的配置寄存器C的部分字段描述如表2所示.

        表2 接收f(shuō)low的配置寄存器C的字段描述[4]

        Host packet描述符的字段描述見(jiàn)表3.

        從表2和表3可以看出,如果將網(wǎng)卡接收f(shuō)low的配置寄存器C的bit26-24(RX_SRC_TAG_LO_SEL)設(shè)置成4,則當(dāng)端口接收到數(shù)據(jù)時(shí),PKTDMA控制器會(huì)將接收描述符的word1的source tag-lo字段設(shè)置成該端口的SRC_ID值,兩個(gè)slave端口的SRC_ID值是不同的.網(wǎng)卡接收到數(shù)據(jù)時(shí),根據(jù)接收描述符的word1的source tag-lo字段的值就可判斷出該數(shù)據(jù)包來(lái)自哪個(gè)端口.

        表3 Host packet描述符的字段描述[4]

        3.2 驅(qū)動(dòng)實(shí)現(xiàn)

        為了實(shí)現(xiàn)TMS320C6678的雙網(wǎng)卡驅(qū)動(dòng),需要完成硬件初始化、數(shù)據(jù)包的發(fā)送和接收等功能.尤其是要解決好下面兩個(gè)問(wèn)題: 數(shù)據(jù)包發(fā)送時(shí),交換機(jī)內(nèi)部的接收流媒體數(shù)據(jù)接口需要知道它從NETCP接收的數(shù)據(jù)將要發(fā)給哪個(gè)端口; 接收到數(shù)據(jù)包后,驅(qū)動(dòng)需要根據(jù)接收的數(shù)據(jù)包判斷其來(lái)自哪個(gè)端口.

        (1) 網(wǎng)卡硬件初始化

        這里需要完成跟網(wǎng)卡工作相關(guān)的所有硬件的初始化,包括:

        a) 多核導(dǎo)航器的初始化

        多核導(dǎo)航器由隊(duì)列管理器、PKTDMA、導(dǎo)航云、打包數(shù)據(jù)結(jié)構(gòu)協(xié)處理器(Packed-Data Structure Processors,PDSP)固件等模塊組成[4].初始化時(shí),主要完成PDSP固件的下載和執(zhí)行.

        b) memory region的初始化

        完成網(wǎng)卡工作時(shí)使用的描述符區(qū)間的初始化工作,包括描述符的起始地址、大小、數(shù)量、使用的內(nèi)存區(qū)域的序號(hào)等的初始化.

        c) 描述符的初始化

        由于數(shù)據(jù)在NETCP與主機(jī)之間的傳輸由PKTDMA完成,數(shù)據(jù)包需要封裝成PKTDMA能夠識(shí)別的描述符格式.驅(qū)動(dòng)中使用了host packet描述符的格式.

        從已經(jīng)初始化的memory region中分配一定數(shù)量的發(fā)送空閑描述符和接收空閑描述符,并為每個(gè)描述符分配buffer地址空間,所有的發(fā)送空閑描述符被PUSH到發(fā)送空閑隊(duì)列,所有的接收空閑描述符被PUSH到接收空閑隊(duì)列.兩個(gè)網(wǎng)卡具有不同的描述符地址和不同的發(fā)送接收空閑隊(duì)列號(hào).

        d) SGMII_SERDES初始化

        依次配置PLL寄存器,兩個(gè)端口的發(fā)送配置和接收配置寄存器.

        e) SGMII模塊初始化

        配置兩個(gè)端口的連接模式(master或者slave)、工作模式(全雙工或半雙工)、連接速度、是否自動(dòng)協(xié)商等.

        f) MAC初始化

        設(shè)置MAC地址,雖然器件的MAC地址只有一個(gè),但是可以虛擬一個(gè)出來(lái),確保兩個(gè)端口分別配置了不同的MAC地址,除此之外,還配置了VLAN和接收幀的最大長(zhǎng)度.

        g) 三端口交換機(jī)switch初始化

        完成端口0的使能啟動(dòng)、網(wǎng)卡統(tǒng)計(jì)功能的配置(便于調(diào)試)以及ALE (Address Lookup Engine)的配置等,這里需要注意的是,雙網(wǎng)卡模式時(shí),ALE必須工作在bypass模式.

        由于需要通過(guò)接收描述符中的SRC_ID判斷接收數(shù)據(jù)的來(lái)源,所以分別為port1和port2設(shè)置SRC_ID值.port1和port2的SRC_ID值即TXA_SRC_ID和TXB_SRC_ID,可通過(guò)設(shè)置寄存器P0_CPPI_SRC_ID來(lái)設(shè)置.

        h) cppi初始化

        完成網(wǎng)卡的發(fā)送通道和接收通道的使能,接收Flow ID、接收空閑隊(duì)列和接收完成隊(duì)列的配置等.

        i) PA子系統(tǒng)初始化

        完成PA固件下載、廣播和組播路由配置、添加MAC地址到PA PDSP查找表等工作.

        j) 接收f(shuō)low初始化

        完成Rx DMA的接收完成隊(duì)列、接收空閑隊(duì)列、描述符類型等的配置,需要注意配置寄存器C的RX_SRC_TAG_LO_SEL字段要設(shè)置成4.

        (2) 數(shù)據(jù)包發(fā)送

        從發(fā)送空閑隊(duì)列分配一個(gè)描述符,填寫描述符域和負(fù)載數(shù)據(jù),注意在描述符word2的Protocol Specific Flags字段中指定數(shù)據(jù)包發(fā)給哪個(gè)端口,然后將描述符PUSH到發(fā)送隊(duì)列,PKTDMA將將數(shù)據(jù)包直接發(fā)送給指定的端口.

        (3) 數(shù)據(jù)包接收

        當(dāng)PKTDMA的接收完成隊(duì)列接收到數(shù)據(jù)后會(huì)產(chǎn)生接收完成中斷,在中斷服務(wù)程序中,根據(jù)接收描述符word1的source tag-lo字段的值即可判斷出數(shù)據(jù)的來(lái)源,從而做出正確處理.

        3.3 驅(qū)動(dòng)測(cè)試

        如果TMS320C6678開發(fā)板上的兩個(gè)網(wǎng)絡(luò)端口都通過(guò)RJ45接口引出來(lái)了,那么就把它們當(dāng)作兩個(gè)獨(dú)立的普通網(wǎng)卡,分別進(jìn)行測(cè)試驗(yàn)證即可.但是實(shí)際上有很多DSP6678開發(fā)板的網(wǎng)口只引出來(lái)了一個(gè),在使用中另一個(gè)端口通過(guò)特定的背板與其他以太網(wǎng)設(shè)備進(jìn)行通信.這里以TIC6678公板為例重點(diǎn)介紹只引出一個(gè)網(wǎng)絡(luò)端口的情況下的雙網(wǎng)卡測(cè)試方法.

        TIC6678公板的網(wǎng)卡0沒(méi)有通過(guò)RJ45接口引出來(lái),只引出了網(wǎng)卡1,通過(guò)配套的背板可以將兩塊公板的網(wǎng)卡0對(duì)連起來(lái).當(dāng)兩條鏈路都能正常通信時(shí),表明雙網(wǎng)卡能正常工作了.具體有以下兩種測(cè)試方法:

        (1) 兩塊公板的網(wǎng)卡1分別與兩臺(tái)PC機(jī)相連

        分別為兩塊公板的兩個(gè)網(wǎng)卡設(shè)置不同網(wǎng)段的IP地址,并分別與兩臺(tái)PC機(jī)相連,IP的具體要求以及整個(gè)測(cè)試系統(tǒng)的連接如圖2所示.

        圖2 TIC6678公板的雙網(wǎng)卡測(cè)試系統(tǒng)

        當(dāng)同時(shí)滿足以下測(cè)試結(jié)果時(shí),表明兩塊公板的雙網(wǎng)卡均工作正常.

        a) PC機(jī)1可以ping通公板1的網(wǎng)卡1,PC機(jī)1不能ping通公板2的兩個(gè)網(wǎng)卡;

        b) PC機(jī)2可以ping通公板2的網(wǎng)卡1,PC機(jī)2不能ping通公板1的兩個(gè)網(wǎng)卡;

        c)公板1 ping不通公板2的網(wǎng)卡1,公板2 ping不通公板1的網(wǎng)卡1;

        d) 兩塊公板的網(wǎng)卡0互相可以ping通.

        (2) 兩塊公板的網(wǎng)卡1互連

        當(dāng)兩塊公板的網(wǎng)卡1互相可以ping通,網(wǎng)卡0互相可以ping通,但是一塊板子的網(wǎng)卡1和另一塊板子的網(wǎng)卡0 ping不通時(shí),則雙網(wǎng)卡工作正常.

        3.4 測(cè)試結(jié)果

        按照?qǐng)D2的IP要求配置了通過(guò)背板連接的兩塊TIC6678開發(fā)板的網(wǎng)卡,并將它們的網(wǎng)卡1通過(guò)網(wǎng)線互連,網(wǎng)卡1互相可以ping通,網(wǎng)卡0互相可以ping通,測(cè)試結(jié)果如圖3和圖4所示.

        圖3 兩塊公板網(wǎng)卡1通過(guò)網(wǎng)線互連時(shí),公板1網(wǎng)卡ping公板2網(wǎng)卡

        圖4 兩塊公板網(wǎng)卡1通過(guò)網(wǎng)線互連時(shí),公板2網(wǎng)卡ping公板1網(wǎng)卡

        斷開兩塊公板的網(wǎng)卡1之間的網(wǎng)線,雙網(wǎng)卡模式下網(wǎng)卡1的網(wǎng)絡(luò)連接就斷了,測(cè)試結(jié)果如圖5和圖6所示.

        測(cè)試結(jié)果表明本文實(shí)現(xiàn)的基于TMS320C6678的雙網(wǎng)卡驅(qū)動(dòng)工作正常.雙網(wǎng)卡工作模式目前已在多個(gè)項(xiàng)目中投入使用.

        圖5 兩塊公板網(wǎng)卡1之間的網(wǎng)線斷開時(shí),公板1網(wǎng)卡ping公板2網(wǎng)卡

        圖6 兩塊公板網(wǎng)卡1之間的網(wǎng)線斷開時(shí),公板2網(wǎng)卡ping公板1網(wǎng)卡

        4 結(jié)論

        測(cè)試結(jié)果以及實(shí)際應(yīng)用情況表明,本文設(shè)計(jì)的基于TMS320C6678的雙網(wǎng)卡驅(qū)動(dòng)是成功的,該功能的實(shí)現(xiàn)使得TI KEYSTONE 1架構(gòu)下的DSP芯片的應(yīng)用范圍更加廣泛而不僅僅局限于switch模式下的應(yīng)用場(chǎng)景.

        猜你喜歡
        描述符空閑字段
        恩賜
        詩(shī)選刊(2023年7期)2023-07-21 07:03:38
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        基于結(jié)構(gòu)信息的異源遙感圖像局部特征描述符研究
        “鳥”字謎
        小讀者之友(2019年9期)2019-09-10 07:22:44
        Linux單線程并發(fā)服務(wù)器探索
        彪悍的“寵”生,不需要解釋
        利用CNN的無(wú)人機(jī)遙感影像特征描述符學(xué)習(xí)
        WLAN和LTE交通規(guī)則
        CHIP新電腦(2016年3期)2016-03-10 14:09:48
        CNMARC304字段和314字段責(zé)任附注方式解析
        無(wú)正題名文獻(xiàn)著錄方法評(píng)述
        福利视频一区二区三区| 国产女人91精品嗷嗷嗷嗷| 果冻蜜桃传媒在线观看| 一区二区免费电影| 一区二区三区人妻在线| 一区二区三区精品少妇| 三级黄色片免费久久久 | 精品久久久久久777米琪桃花| 国产精品国产三级国产专播| 久久久精品久久久国产| aaa日本高清在线播放免费观看| 亚洲色www成人永久网址| 精品国产亚洲一区二区三区演员表 | 五月综合激情婷婷六月色窝| 天天狠狠综合精品视频一二三区| av中文字幕在线资源网| 开心五月婷婷激情综合网| 亚洲国产av精品一区二区蜜芽| 狠狠色狠狠色综合| 日韩精品视频在线观看免费| 亚洲免费成年女性毛视频| 中文字幕人妻少妇伦伦| 中文无码久久精品| 99久久国语露脸精品国产| 国产亚洲欧美另类第一页| 草逼视频污的网站免费| 国产精品兄妹在线观看麻豆| 国产人成午夜免电影观看| 一区二区三区四区日韩亚洲| 亚洲黄色天堂网站在线观看禁18| 亚洲欧美乱日韩乱国产| 亚洲视频在线看| 国产成人精品中文字幕| 国产精品亚洲精品日韩已方| 欧美老妇与zozoz0交| 亚洲精品综合在线影院| 国产亚洲精品品视频在线 | 五月天激情小说| 国产蜜臀精品一区二区三区| 无人区乱码一区二区三区| 无码少妇一区二区三区芒果|