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

        ?

        基于FPGA的以太網(wǎng)MAC控制器的設(shè)計(jì)與實(shí)現(xiàn)

        2011-06-05 11:02:02丁世勇譚文文李桂英
        電子設(shè)計(jì)工程 2011年21期
        關(guān)鍵詞:物理層狀態(tài)機(jī)段長度

        丁世勇,譚文文,李桂英

        (1.山東科技大學(xué) 信息與電氣工程學(xué)院,山東 青島 266510;2.山東科技大學(xué) 理學(xué)院,山東 青島 266510)

        隨著網(wǎng)絡(luò)的飛速發(fā)展,因特網(wǎng)(Internet)在人們的生活中占據(jù)著越來越重要的地位。目前,以太網(wǎng)802.3協(xié)議和TCP/IP協(xié)議是嵌入式系統(tǒng)接入Internet的首選協(xié)議。而以太網(wǎng)(Ethernet)的核心思想是通過帶沖突檢測(cè)的載波偵聽多路訪問協(xié)議(CSMA/CD)[1]來控制對(duì)介質(zhì)的訪問以實(shí)現(xiàn)多用戶共享傳輸信道。根據(jù)OSI網(wǎng)絡(luò)七層參考模型,以太網(wǎng)對(duì)應(yīng)模型中的數(shù)據(jù)鏈路層和物理層,并把數(shù)據(jù)鏈路層分為邏輯鏈路層(LLC)和介質(zhì)訪問控制層(MAC)。以太網(wǎng)技術(shù)主要集中在物理層(PHY)和介質(zhì)訪問控制層(MAC)的實(shí)現(xiàn)上,MAC子層協(xié)議是數(shù)據(jù)幀收發(fā)的基礎(chǔ),負(fù)責(zé)上層數(shù)據(jù)和物理層比特流的封裝和解封、流量控制以及差錯(cuò)校驗(yàn)等功能,是以太網(wǎng)控制器的核心。

        1 總體設(shè)計(jì)方案

        以太網(wǎng)MAC控制器由5個(gè)主要部分組成,如圖1所示:主機(jī)接口模塊,發(fā)送模塊,接收模塊,控制模塊和MII(Media Independent Interface)管理模塊。主機(jī)接口包含AHB總線的master和slave接口,提供以太網(wǎng)控制器與上層協(xié)議之間的接口,用于數(shù)據(jù)的接收、發(fā)送以及對(duì)控制器內(nèi)的寄存器的設(shè)置,發(fā)送和接收模塊主要提供MAC幀的發(fā)送和接收功能,直接提供了到物理層芯片(PHY)的并行數(shù)據(jù)接口。MAC控制模塊用于執(zhí)行全雙工模式下的流量控制。MII管理模塊提供了介質(zhì)獨(dú)立接口用于連接數(shù)據(jù)鏈路層和物理層。

        圖1 以太網(wǎng)MAC控制器的主要組成部分Fig.1 Main component of Ethernet MAC controller

        2 發(fā)送模塊

        2.1 以太網(wǎng)數(shù)據(jù)幀格式

        以太網(wǎng)數(shù)據(jù)幀格式[2]如圖2所示,前導(dǎo)碼的字段長度為7 b,內(nèi)容為“101010..1010”;幀起始符字段長度為 1 b,內(nèi)容為“10101011”;標(biāo)志數(shù)據(jù)幀信號(hào)的開始;目的地址字段長度為7 b,可以為單播地址,多播地址或廣播地址;源地址字段長度為6 B,表示發(fā)送方的MAC地址;長度/類型字段長度為2 B,如果該值小于802.3協(xié)議規(guī)定的最大幀長度,則表示數(shù)據(jù)字段的字節(jié)個(gè)數(shù),如果大于最大幀長度則表示上層使用的協(xié)議;數(shù)據(jù)/填充字段的長度為46~1 500 B,表示數(shù)據(jù)字段的字節(jié)數(shù),若小于46 B,需要添加填充字段,確保數(shù)據(jù)字段的長度達(dá)到協(xié)議規(guī)定的最小長度46 B;校驗(yàn)碼字段長度為4 B,采用CRC校驗(yàn),計(jì)算范圍從目的地址到數(shù)據(jù)填充字段。

        圖2 數(shù)據(jù)幀格式Fig.2 Data frame format

        2.2 數(shù)據(jù)發(fā)送模塊

        數(shù)據(jù)發(fā)送模塊根據(jù)從主機(jī)接口發(fā)出的幀開始(TxStartFrm)和幀結(jié)束(TxEndFrm)信號(hào),從存儲(chǔ)器中獲取相應(yīng)的數(shù)據(jù),對(duì)其進(jìn)行數(shù)據(jù)幀格式的封裝后,根據(jù)CSMA/CD協(xié)議,在信道空閑的時(shí)候把數(shù)據(jù)以半字節(jié)的形式傳輸給PHY。最后由PHY發(fā)送到網(wǎng)絡(luò)上。

        發(fā)送狀態(tài)機(jī)模塊是數(shù)據(jù)發(fā)送模塊的核心,控制著整個(gè)發(fā)送過程,發(fā)送狀態(tài)機(jī)一共有10個(gè)狀態(tài):S_idle、S_pre、S_data0、S_data1、S_pad、S_fcs、S_ipg、S_jam、S_back、S_defer。 其狀態(tài)轉(zhuǎn)移圖如圖3所示。

        圖3 發(fā)送狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖Fig.3 State transfer diagram of transmitting state machine

        系統(tǒng)復(fù)位后,狀態(tài)機(jī)進(jìn)入S_defer狀態(tài)。當(dāng)載波偵聽信號(hào)(CarrierSense)變成無效時(shí),狀態(tài)機(jī)進(jìn)入S_ipg狀態(tài)。在等待一個(gè)幀間間隙(≥96個(gè)比特時(shí)間)[3]之后,狀態(tài)機(jī)進(jìn)入S_idle狀態(tài)。如果在幀間間隙的前2/3個(gè)周期檢測(cè)到信道忙則返回S_defer狀態(tài)。在空閑狀態(tài)下,當(dāng)主機(jī)向發(fā)送模塊發(fā)出幀起始信號(hào)(TxStartFrm),且載波空閑時(shí),狀態(tài)機(jī)進(jìn)入S_pre狀態(tài)。輸出使能信號(hào)(MtxEn)有效并開始向PHY發(fā)送數(shù)據(jù),7 B前導(dǎo)碼發(fā)送后,發(fā)送1 B的幀起始符。之后狀態(tài)機(jī)進(jìn)入S_data0狀態(tài),發(fā)送模塊將發(fā)送一個(gè)數(shù)據(jù)字節(jié)的低4位。之后狀態(tài)機(jī)進(jìn)入S_data1狀態(tài),發(fā)送模塊則發(fā)送字節(jié)的高4位。之后,狀態(tài)一直在S_data0和S_data1之間循環(huán),直至數(shù)據(jù)發(fā)送完畢。還剩下最后一字節(jié)時(shí),主機(jī)會(huì)發(fā)送幀結(jié)束信號(hào)(TxEndFrm)通知發(fā)送模塊。如果幀長度大于或等于最小幀長度(在PACKETLEN寄存器中定義),并且循環(huán)冗余碼校驗(yàn)(CRC)開啟,狀態(tài)機(jī)進(jìn)入S_fcs。發(fā)送完32比特的校驗(yàn)碼后,狀態(tài)機(jī)進(jìn)入S_defer狀態(tài),然后循環(huán)又重新開始。如果CRC不開啟,狀態(tài)機(jī)直接從S_data1轉(zhuǎn)入S_defer狀態(tài)。

        如果數(shù)據(jù)幀的長度小于最小幀長度,狀態(tài)就進(jìn)入S_pad狀態(tài),發(fā)送模塊根據(jù)系統(tǒng)設(shè)置來決定是否添加填充碼,然后進(jìn)入S_fcs狀態(tài)。如果數(shù)據(jù)幀的長度大于最大幀長度,發(fā)送模塊根據(jù)設(shè)置決定是否發(fā)送超長幀,如果不支持,狀態(tài)機(jī)直接進(jìn)入S_defer狀態(tài)。

        在發(fā)送數(shù)據(jù)過程中,發(fā)送模塊會(huì)一直檢查沖突檢測(cè)信號(hào)。如果發(fā)現(xiàn)沖突且狀態(tài)機(jī)正處于S_pre狀態(tài),狀態(tài)機(jī)在發(fā)送完前導(dǎo)碼和幀起始符后進(jìn)入S_jam狀態(tài),并發(fā)送擁塞碼,然后進(jìn)入S_back狀態(tài),以等待重試。之后狀態(tài)機(jī)經(jīng)S_defer和S_ipg回到S_idle狀態(tài)。如果重試計(jì)數(shù)器沒有達(dá)到重試最大值,發(fā)送模塊將重新開始發(fā)送剛才的幀;如果發(fā)現(xiàn)沖突時(shí)狀態(tài)機(jī)處于S_data0、S_data1或S_fcs狀態(tài)時(shí),且沒有超過沖突時(shí)間窗,狀態(tài)機(jī)馬上進(jìn)入S_jam狀態(tài)并發(fā)送擁塞碼,依次經(jīng)過 S_back、S_defer、S_ipg回到S_idle,并根據(jù)重試計(jì)數(shù)器的值決定是否重新發(fā)送剛才的數(shù)據(jù)幀;如果檢測(cè)到發(fā)生沖突的時(shí)間超過了沖突時(shí)間窗,狀態(tài)機(jī)將進(jìn)入S_defer狀態(tài),經(jīng)S_ipg到S_idle狀態(tài),并放棄重試。

        在全雙工模式下,發(fā)送數(shù)據(jù)幀過程中不會(huì)產(chǎn)生沖突。此時(shí),發(fā)送模塊將忽略PHY的載波偵聽和沖突檢測(cè)信號(hào),但幀與幀之間仍然要遵守幀間間隙規(guī)則,因此,全雙工模式下的發(fā)送狀態(tài)機(jī)沒有S_jam、S_back和S_defer 3個(gè)狀態(tài)。

        3 接收模塊

        該模塊的主要功能是接受物理層輸出的半字節(jié)數(shù)據(jù),并轉(zhuǎn)換成字節(jié)形式,判斷接受幀的各個(gè)字段,去除前導(dǎo)碼和幀起始符,對(duì)接受幀的目的地址進(jìn)行檢查,對(duì)接受數(shù)據(jù)幀進(jìn)行CRC校驗(yàn),根據(jù)校驗(yàn)結(jié)果判斷是否接收數(shù)據(jù)[4]。

        接收狀態(tài)機(jī)模塊是數(shù)據(jù)接收模塊的核心,控制著整個(gè)接收過程, 接收狀態(tài)機(jī)一共有 6個(gè)狀態(tài):S_idle、S_pre、S_sfd、S_data0、S_data1、S_drop。其狀態(tài)轉(zhuǎn)移圖如圖4所示。

        圖4 發(fā)送狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖Fig.4 State transfer diagram of receiving state machine

        系統(tǒng)復(fù)位后,接收狀態(tài)機(jī)進(jìn)入S_drop狀態(tài),如果接收使能信號(hào)(MRxDV)無效,狀態(tài)機(jī)進(jìn)入S_idle狀態(tài),并一直處于S_idle狀態(tài)等待輸入幀。一般情況下接收模塊在接收數(shù)據(jù)包之前會(huì)檢測(cè)前導(dǎo)碼,標(biāo)準(zhǔn)的前導(dǎo)碼7 B長,之后是1 B的幀起始符。由于以太網(wǎng)控制器也支持接收不帶前導(dǎo)碼只有幀起始符的數(shù)據(jù)幀。所以,當(dāng)MRxDV有效時(shí),判斷接收到得數(shù)據(jù)MRxD是否為0x5,如果不是,狀態(tài)機(jī)進(jìn)入S_pre模塊,并且一直處于S_pre狀態(tài)直至MRxD為0x5時(shí)狀態(tài)機(jī)轉(zhuǎn)入S_sfd狀態(tài)。當(dāng)MRxD為0xd且表示前后兩幀間隙是否滿足規(guī)定的信號(hào)IFGCounterEq24有效時(shí),狀態(tài)機(jī)進(jìn)入S_data0狀態(tài)以接收字節(jié)的低4位,之后進(jìn)入S_data1狀態(tài)以接收字節(jié)的高4位。直至數(shù)據(jù)傳輸完畢,PHY芯片使MRxDV無效,狀態(tài)機(jī)進(jìn)入S_idle。如果兩幀間隙不滿足規(guī)定,狀態(tài)機(jī)直接從S_sfd狀態(tài)進(jìn)入S_drop狀態(tài),直到MRxDV無效時(shí)進(jìn)入S_idle狀態(tài),循環(huán)重新開始。另外當(dāng)狀態(tài)機(jī)處于 S_pre、S_sfd、S_data0或S_data1時(shí)只要MRxDV變成無效,狀態(tài)都進(jìn)入S_idle狀態(tài)。

        4 MII管理模塊

        4.1 以太網(wǎng)管理幀格式

        MII對(duì)物理層寄存器的操作是通過發(fā)送管理幀來實(shí)現(xiàn)的,管理幀格式[5]如圖5所示。前導(dǎo)碼字段長度為4 B,全為1,已使物理層與數(shù)據(jù)同步;幀起始符字段長度為2 b,值為“01”;操作碼字段長度為 2 b,“01”表示寫操作,“10”表示讀操作;物理層地址字段長度為5 b,表示物理層地址;寄存器地址字段長度為5 b,表示物理層內(nèi)部的寄存器地址;轉(zhuǎn)換碼字段長度為2 b,表示數(shù)據(jù)輸入或輸出,讀操作時(shí)轉(zhuǎn)化碼為“Z0”,寫操作時(shí),狀態(tài)為“10”;數(shù)據(jù)字段長度為 2 b,表示寫入或讀出的寄存器的值。

        圖5 管理幀格式Fig.5 Management frame format

        4.2 MII管理模塊

        MII管理模塊提供了與外部PHY芯片交互的接口,可以對(duì)PHY里的配置寄存器進(jìn)行設(shè)置或讀出寄存器的狀態(tài)。接口有兩個(gè)信號(hào)組成:時(shí)鐘信號(hào) (MDC)和雙向數(shù)據(jù)信號(hào)(MDIO)。MDIO有輸入信號(hào)Mdi,輸出信號(hào)Mdo以及輸出使能信號(hào)MdoEn組成。MII管理模塊包含3個(gè)子模塊:時(shí)鐘產(chǎn)生模塊,移位寄存器模塊和輸出控制模塊。

        時(shí)鐘產(chǎn)生模塊產(chǎn)生時(shí)鐘信號(hào)Mdc用于與PHY通信,設(shè)置Mdc的頻率時(shí)要參照外部PHY芯片的說明??赏ㄟ^設(shè)置MIIMODER寄存器來設(shè)置Mdc的分頻系數(shù)。

        移位寄存器作用是在輸出數(shù)據(jù)時(shí)把并行數(shù)據(jù)一位一位串行的輸給外部PHY,接收輸入數(shù)據(jù)時(shí)把串行數(shù)據(jù)轉(zhuǎn)化為并行存入MIIRX_DATA寄存器。

        輸出控制模塊主要是產(chǎn)生輸出數(shù)據(jù)和輸出使能信號(hào),雖然MDIO是雙向數(shù)據(jù)信號(hào),但Mdi是輸入信號(hào),不屬于MAC控制器的一部分,如果在MIIMODER寄存器中設(shè)置前導(dǎo)碼(Preamble)有效,輸出控制模塊會(huì)在有效數(shù)據(jù)前產(chǎn)生32比特的前導(dǎo)碼

        5MAC控制模塊

        MAC控制模塊實(shí)現(xiàn)全雙工模式下的流量控制功能。當(dāng)接收站點(diǎn)的接收緩沖區(qū)快要溢出或者主機(jī)發(fā)出流量控制請(qǐng)求時(shí),就會(huì)發(fā)出流量控制請(qǐng)求至MAC控制模塊,MAC流量控制模塊在接收到流量控制請(qǐng)求后會(huì)發(fā)送PAUSE控制幀。數(shù)據(jù)幀發(fā)送端接收到PAUSE幀后,根據(jù)幀中的參數(shù)設(shè)置定時(shí)器。PAUSE定時(shí)器到之前,發(fā)送端將暫停發(fā)送數(shù)據(jù),從而防止接收緩存溢出。

        6 主機(jī)接口

        主機(jī)接口模塊為MAC控制器與上層協(xié)議模塊的接口,可將上層協(xié)議模塊輸入的數(shù)據(jù)傳輸?shù)綌?shù)據(jù)發(fā)送模塊,將數(shù)據(jù)接收模塊接收的數(shù)據(jù)輸出到上層模塊,并控制MII管理模塊。

        主機(jī)接口模塊內(nèi)有一組寄存器,可用于存儲(chǔ)上層協(xié)議對(duì)MAC設(shè)置的參數(shù)以及MAC的狀態(tài)信息。上層協(xié)議對(duì)MAC設(shè)置的參數(shù)包括接受超短幀使能、添加填充碼使能、全雙工模式或半雙工模式、發(fā)送和接收使能、幀間間隙的長度、最大幀和最小幀的長度、重試次數(shù)限制以及本機(jī)的MAC地址等。

        7 驗(yàn)證與仿真

        利用Modelsim對(duì)Ethernet控制器進(jìn)行了仿真[6],圖6為發(fā)送狀態(tài)機(jī)的仿真波形??梢钥吹綘顟B(tài)機(jī)在S_defer狀態(tài)時(shí)載波偵聽信號(hào)無效,隨即狀態(tài)機(jī)進(jìn)入S_ipg狀態(tài),在等待一個(gè)幀間間隙之后,狀態(tài)機(jī)進(jìn)入S_idle狀態(tài),此時(shí),幀起始信號(hào)(TxStartFrm)有效,狀態(tài)機(jī)進(jìn)入S_pre狀態(tài),發(fā)送完7 B前導(dǎo)碼和1 B幀起始符后,狀態(tài)機(jī)進(jìn)入S_data0,然后在S_data0和S_data1之間循環(huán),直至數(shù)據(jù)發(fā)送完畢。從圖6可知設(shè)計(jì)的時(shí)序與802.3規(guī)定的時(shí)序一致。

        圖6 發(fā)送狀態(tài)機(jī)的仿真波形圖Fig.6 Simulation wave chart of transmitting state machine

        8 結(jié)束語

        文中設(shè)計(jì)的以太網(wǎng)MAC控制器IP可正確接收和發(fā)送數(shù)據(jù),實(shí)現(xiàn)了802.3協(xié)議中MAC層的功能,可通過介質(zhì)獨(dú)立接口(MII)與以太網(wǎng)物理層芯片相連接,實(shí)現(xiàn)半雙工和全雙工兩種工作模式的傳輸。

        [1]Andrew S.Tanenbaum.計(jì)算機(jī)網(wǎng)絡(luò)[M].4版.潘愛民,譯.北京:清華大學(xué)出版社,2004.

        [2]龔堅(jiān),彭暉,喬廬峰,等.標(biāo)準(zhǔn)802.3以太網(wǎng)MAC控制器的FPGA設(shè)計(jì)與實(shí)現(xiàn)[J].軍事通信技術(shù),2005,26(4):21-24.GONG Jian,PENG Hui,QIAO Lu-feng,et al.FPGA design and implementation ofstandard 802.3 ethernetMAC Controller[J].Journal of Military Communications Technology,2005,26(4):21-24.

        [3]IEEE Std 802.3,2000 Edition Part3:Carrier sense multiple access with collision detection (CSMA/CD)access method and physical layer specifications[S].USA,LAN/MAN standards Committee of the IEEE Computer Society,2000.

        [4]許全泉,胡文江,蘇里.基于PFGA的以太網(wǎng)控制器設(shè)計(jì)[J].電子元器件應(yīng)用,2007,9(6):21-25.XU Quan-quan,HU Wen-jiang,SU Li.The design of ethernet controller based on FPGA[J].Electronic Component&Device Application,2007,9(6):21-25.

        [5]張博,張琨.基于FPGA的以太網(wǎng)MAC控制器的設(shè)計(jì)[J].科技情報(bào)開發(fā)與經(jīng)濟(jì),2009,19(27):97-99.ZHANG Bo,ZHANG Kun.The Design of Ethernet MAC Controller based on FPGA[J].Sci-tech Information Developmen&Economy,2009,19(27):97:99.

        [6]楊宗凱.數(shù)字專用集成電路的設(shè)計(jì)與驗(yàn)證[M].北京:電子工業(yè)出版社,2004:197-205.

        猜你喜歡
        物理層狀態(tài)機(jī)段長度
        基于K-ML-MPWFRFT的物理層安全傳輸技術(shù)
        公路聯(lián)網(wǎng)電子不停車收費(fèi)系統(tǒng)路側(cè)單元物理層自動(dòng)測(cè)試軟件研發(fā)
        基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
        過渡段長度對(duì)混合梁橋的受力影響
        多天線物理層安全傳輸系統(tǒng)性能分析
        高強(qiáng)鋼組合K型偏心支撐框架耗能梁段長度研究
        1Gbps電力線載波通信物理層算法設(shè)計(jì)
        不同自由段長度預(yù)應(yīng)力錨索力學(xué)特性分析
        預(yù)應(yīng)力錨索不同錨固長度對(duì)錨索及巖體的影響
        河南科技(2013年7期)2013-08-14 05:28:02
        FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
        国产高清一区二区三区视频| a级毛片在线观看| 四虎影视亚洲精品| 国产女主播免费在线观看| 日本高清视频在线观看一区二区 | 亚洲av日韩一区二三四五六七| 华人在线视频精品在线| 东北老女人高潮大喊舒服死了| 亚洲欧美日韩高清专区一区| 久久精品国产一区二区涩涩| 国产女主播一区二区三区| 中文字幕肉感巨大的乳专区| 日韩精品电影在线观看| 日韩一二三四区免费观看| 男人天堂这里只有精品| 久久亚洲国产成人精品性色 | 人妻少妇边接电话边娇喘| 国产AV无码专区亚洲AV桃花庵| 丰满人妻一区二区三区52| 老师开裆丝袜喷水视频| 无码久久精品国产亚洲av影片| 国产日韩AV无码免费一区二区 | 全球av集中精品导航福利| 丰满少妇又紧又爽视频| 黑丝美腿国产在线观看| 国产无套粉嫩白浆在线观看| 国内少妇偷人精品视频免费| 精品免费看国产一区二区白浆| 日韩有码中文字幕在线观看 | 人妻无码第一区二区三区| 亚洲av无码av日韩av网站 | 麻豆三级视频网站在线观看| 大陆国产乱人伦| 97人妻熟女成人免费视频| 黑丝美女被内射在线观看| 麻豆精品一区二区av白丝在线| 成片免费观看视频大全| 在线观看亚洲你懂得| 亚洲天堂av在线免费观看| 国产aⅴ无码专区亚洲av麻豆 | 久久精品无码一区二区三区免费|