本模塊的功能就是MAC子層、網(wǎng)絡(luò)層、傳輸層各層協(xié)議的具體實現(xiàn),這些子模塊作為數(shù)據(jù)傳輸?shù)耐ǖ溃枰哂幸欢ǖ木彺婧筒殄e能力,同時為了能擴展其他協(xié)議,還必須保持相互之間的獨立性。如圖4所示,硬件設(shè)備接收數(shù)據(jù)的過程就是以太網(wǎng)幀經(jīng)過每一層,去除各層的首部并核對校驗,最后獲得純粹的用戶數(shù)據(jù);發(fā)送數(shù)據(jù)的過程就是用戶數(shù)據(jù)每經(jīng)過一層,添加相應(yīng)的首部和校驗,直到組成一個完整的以太網(wǎng)幀。
(1) MAC子層的功能。設(shè)計中直接調(diào)用Altera公司提供的三速以太網(wǎng)控制器IP核實現(xiàn)MAC子層的功能,該IP核提供了統(tǒng)一的寄存器接口,用戶可以通過它來配置以太網(wǎng)最大幀長、源MAC地址、目的MAC地址和PHY地址等重要信息。如圖4所示,發(fā)送數(shù)據(jù)時,MAC模塊向數(shù)據(jù)幀添加以太網(wǎng)首部,并利用CRC算法添加32位的校驗碼;接收數(shù)據(jù)時,MAC模塊同樣要進(jìn)行CRC校驗,對于不正確的數(shù)據(jù)幀要予以丟棄,用戶也可以通過配置寄存器決定是否將校驗位一并送至上一層。
(2) UDP/IP協(xié)議棧的實現(xiàn)。相對于TCP協(xié)議的三次握手,UDP和IP協(xié)議面向無連接的性質(zhì)使其在硬件上可以快速實現(xiàn),至于連接的建立完全可以在應(yīng)用層實現(xiàn)。
如圖4所示,UDP和IP協(xié)議的功能在硬件上的實現(xiàn)有較多相同之處:對于上層發(fā)送的數(shù)據(jù)均需要添加相應(yīng)的首部和校驗和;對于下層接收的數(shù)據(jù),檢驗校驗和,并去除首部,然后才能送到上一層;由于首部中有該數(shù)據(jù)包的長度區(qū)域,所以無論是發(fā)送和接收,都需要將數(shù)據(jù)包全部緩存,才能確定其長度大小,相當(dāng)于一種“存儲-轉(zhuǎn)發(fā)”的機制。