999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

千兆以太網(wǎng)物理層收發(fā)器功能測試方法

2022-08-12 01:54:10劉文元
現(xiàn)代信息科技 2022年7期
關(guān)鍵詞:調(diào)試功能

劉文元

(中國電科網(wǎng)絡(luò)通信研究院,河北 石家莊 050011)

0 引 言

隨著物聯(lián)網(wǎng)時代的到來,嵌入式系統(tǒng)的以太網(wǎng)設(shè)備需求量與日俱增,而負責以太網(wǎng)數(shù)據(jù)編碼和傳輸?shù)奈锢韺邮瞻l(fā)器的需求量也隨之增長。在加快集成電路產(chǎn)業(yè)自主可控步伐的趨勢下,PHY 芯片的研發(fā)工作正如火如荼地進行。

芯片的測試工作,是芯片在流片完成之后,交付給客戶之前的重要一環(huán),旨在驗證芯片的硬件功能,為終端用戶提供驅(qū)動程序的代碼原型。在產(chǎn)業(yè)實踐中,對于PHY 的UVM驗證工作雖有文獻可參考,但對于PHY 芯片的板級測試問題,尚無統(tǒng)一的標準,需要開發(fā)者自己按照PHY 的數(shù)據(jù)手冊編寫驅(qū)動。若沒有PHY 芯片廠商提供直接的技術(shù)支持,調(diào)試過程就會面臨苦難。

考慮到用戶可能會面臨的PHY 調(diào)試問題,基于一款自主研發(fā)的GPHY(Gigabit Physical Layer Transceiver)的功能驗證工作,本文首先介紹了GPHY 測試系統(tǒng)的架構(gòu),也即GPHY 的典型使用場景;然后著重論述了測試程序的設(shè)計,提出了將數(shù)據(jù)分階段loopback 的測試方法;最后展示了測試過程中的系統(tǒng)日志和基于LwIP 的網(wǎng)絡(luò)實驗結(jié)果。希望能為同行的以太網(wǎng)PHY 功能測試和應(yīng)用開發(fā)提供參考經(jīng)驗。

1 測試系統(tǒng)架構(gòu)

以太網(wǎng)是遵守IEEE 802.3 標準的局域網(wǎng),TCP/IP 參考模型中的物理層(PHY)一般由專用的數(shù)模混合集成電路來實現(xiàn),即PHY 芯片,而與之直接交互的就是數(shù)據(jù)鏈路層中的介質(zhì)訪問控制子層(MAC),因此PHY 芯片的功能驗證離不開MAC 的支持。

為了驗證GPHY 的功能,本文選取了一種基于Cortex-M4 內(nèi)核的32 位微控制器(MCU),它的APB 總線上掛載的以太網(wǎng)外設(shè)模塊支持千兆速率MAC(GMAC)的功能。以太網(wǎng)外設(shè)模塊中還集成了站管理接口(SMI),專門用于和外部PHY 之間的通信,以訪問PHY 芯片的寄存器。MCU 與GPHY 通過標準的千兆介質(zhì)獨立接口(GMII)來連接,GMII 提供了時鐘和數(shù)據(jù)的傳輸途徑。

為便于在線調(diào)試和單步跟蹤,選擇了使用非常廣泛的Keil-5 作為測試程序的開發(fā)環(huán)境,該環(huán)境自帶了交叉編譯工具,方便用戶移植本測試程序到特定的應(yīng)用場景。程序的在線調(diào)試與跟蹤依賴調(diào)試器CMSIS-DAP Debugger,它通過Jtag 接口與MCU 相連接,通過USB 接口與PC 相連接。此外,MCU 的UART 通過RS232 與PC 的串口相連接,在PC端開啟串口調(diào)試助手,可以查看包括了程序運行狀態(tài)、PHY寄存器狀態(tài)和測試信息的系統(tǒng)日志。PC 機上的網(wǎng)線通過水晶頭插在RJ-45 上,RJ-45 與PHY 芯片之間有一個負責電壓變換的器件H5007,二者之間的引線MDI+/-上傳輸?shù)氖遣罘中盘枴PHY 測試系統(tǒng)的架構(gòu)圖,如圖1所示。

圖1 GPHY 測試系統(tǒng)架構(gòu)圖

2 測試程序設(shè)計

為了方便逐級厘清PHY 測試中的問題,本文根據(jù)以太網(wǎng)數(shù)據(jù)信號的流經(jīng)途徑,設(shè)計了兩種類型的環(huán)回測試,內(nèi)部環(huán)回和外部環(huán)回分別如圖2和圖3所示。

圖2 GPHY 內(nèi)部環(huán)回結(jié)構(gòu)圖

圖3 GPHY 外部環(huán)回結(jié)構(gòu)圖

PHY 內(nèi)部環(huán)回用以檢查PHY 內(nèi)部數(shù)據(jù)流是否正常。期望的正常情況是 RXD[7:0]上的信號與TXD[7:0]上的信號相同,只是存在一段短暫時間上的滯后。在測試程序內(nèi)部,邏輯應(yīng)這樣設(shè)計:數(shù)據(jù)發(fā)送后,比較接收數(shù)據(jù)緩沖區(qū)與發(fā)送數(shù)據(jù)緩沖區(qū)之間的數(shù)據(jù)差異,即可判斷該項測試是否通過。若數(shù)據(jù)相同,則符合預(yù)期,測試通過;否則,測試未通過,這時系統(tǒng)會通過串口打印出數(shù)據(jù)差異的所在位置和錯誤提示信息。在PC 機上,開發(fā)人員根據(jù)這些日志,便可迅速定位問題。

在進行外部環(huán)回測試前,需要在RJ-45 上插入一個特制的水晶頭。該水晶頭的差分信號線要按照圖3所示,把對應(yīng)的差分信號線進行互連,水晶頭插入RJ-45 后,就實現(xiàn)外部環(huán)回測試所需的信號連接。外部環(huán)回與內(nèi)部環(huán)回的測試程序是一致的,差異點僅在于:外部環(huán)回模式要把GPHY 的0地址寄存器中的bit14 清零,以解除內(nèi)部環(huán)回模式。

環(huán)回測試的流程如圖4所示,其主要完成了如下6 項內(nèi)容。

圖4 環(huán)回測試流程圖

(1)設(shè)定系統(tǒng)時鐘,給APB 總線上的ETH 模塊提供125 MHz 的PLLCLK。

(2)UART 初始化,將UART 速率配置為“115 200 bps,8 bit,無校驗位”格式。通過重定義標準庫中的fputc實現(xiàn)對printf 函數(shù)的重定向,從而在日志中使用printf 格式化運行過程中變量,如寄存器的值、錯誤類型等,重定向的實現(xiàn)代碼如下所示:

在調(diào)試階段,我們期望盡可能詳細地觀察程序運行過程中的狀態(tài),而調(diào)試完成后,只想看關(guān)鍵的運行結(jié)果,忽略調(diào)試階段加入的日志。為了實現(xiàn)這一目的,通過如下所示的宏函數(shù)來輸出系統(tǒng)日志,便可動態(tài)地調(diào)整的日志等級。例如,當調(diào)試完畢后,進行循環(huán)的壓力測試時,可以把宏函數(shù)LOG()中的“l(fā)evel>=DBG”修改為,“l(fā)evel>=INFO”,那么調(diào)試階段所加入的DBG 等級的日志便不會輸出。

(3)為了測試不同速率(10M-Base/100M-Base/1000MBase)、雙工/ 半雙工(Full/Half Duplex)、環(huán)回/ 非環(huán)回(Loopback/Non-Loopback)、是否自協(xié)商 (Auto-Negotiation)等模式的組合情況,我們設(shè)計了統(tǒng)一的多參數(shù)函數(shù),來對PHY 寄存器的設(shè)定內(nèi)容進行封裝,函數(shù)聲明如下所示:

int PHY_TEST(int rate, bool duplex, bool loopback, bool Auto-Neg);

PHY 寄存器的讀寫依賴SMI 接口,我們封裝了讀寫操作的API,其聲明如下:

unsigned short SMI_Read(unsigned short Address);

void SMI_Write(unsigned short Address, unsigned short Data);

因為IEEE802.3 規(guī)定的PHY 寄存器的地址和數(shù)據(jù)寬度都是16 比特,故采用unsigned short(無符號半字)類型作為形參和返回值的類型。SMI_Read()用于查詢PHY 的狀態(tài)標志位,如Link 狀態(tài)、速度模式、自動交叉線等。SMI_Write()用于把PHY_TEST()傳入的形參寫入到PHY 的寄存器對應(yīng)的比特位。

(4)在設(shè)定以太網(wǎng)發(fā)送數(shù)據(jù)包時,我們把源地址和目標地址固定下來,數(shù)據(jù)段長度設(shè)定為最大1 500,類型為ARP 數(shù)據(jù)包,除了地址和包長度之外,其他數(shù)據(jù)使用rand()生成的偽隨機數(shù)來填充,這樣隨機化的數(shù)據(jù)讓測試更接近真實使用PHY 時的情況。

(5)為實現(xiàn)對ETH_DMA 接收和發(fā)送描述符的設(shè)定,編寫了如下的API:

void ETH_DMA_Desc(void *TxBuf, int TxSize, void*RxBuf, int RxSize);

ETH 發(fā)送數(shù)據(jù)時,ETH_DMA 從地址TxBuf 處搬移數(shù)據(jù)到GMII_TXD[7:0];ETH 接收數(shù)據(jù)時,ETH_DMA 從GMII_RXD[7:0]搬移數(shù)據(jù)到RxBuf。

(6)查詢ETH_MAC 的接收標志位,若沒有置位則循環(huán)查詢,當循環(huán)的累積的次數(shù)超過了設(shè)定的上限,說明沒有接收到數(shù)據(jù),使用如下語句輸出錯誤日志:

LOG(ERR,“ Receive polling timeout”);

若查詢到ETH_MAC 的接收標志置為1 時,表示接收到了有效數(shù)據(jù),并且接收已完成,這時通過對比接收到的數(shù)據(jù)包內(nèi)容與發(fā)送時的數(shù)據(jù)包內(nèi)容,如相同,則表明PHY 功能正常;如不同,則用如下語句輸出錯誤日志:

LOG(ERR, “Index:%u, Expect: %u,Real:%u ”, i,TxBuf[i], RxBuf[i]);

為了檢驗GPHY 穩(wěn)定性,在main 函數(shù)內(nèi),循環(huán)調(diào)用PHY_TEST(),內(nèi)部環(huán)回和外部環(huán)回測試若都能通過,即可證明GPHY 功能正常。GPHY 的功能有保障后,再移植TCP/IP 協(xié)議棧LwIP,不需要操作系統(tǒng),即可實現(xiàn)ping 命令測試、TCP-Server 等功能。

3 測試結(jié)果

內(nèi)部環(huán)回和外部環(huán)回的測試結(jié)果如圖5、圖6所示,圖中展示的是壓力測試過程中的系統(tǒng)日志,cnt 表示測試的計數(shù),每循環(huán)調(diào)用一次PHY_TEST();[result]后的內(nèi)容表示測試的結(jié)果,fail 或pass。

圖5 內(nèi)部環(huán)回測試結(jié)果

圖6 外部環(huán)回測試結(jié)果

環(huán)回測試完成后,確保了PHY 可工作正常,通過LwIP協(xié)議棧,可以實現(xiàn)MCU 作為TCP Server,在window 的命令行中,用ping 來測試PC 機與MCU 之間的網(wǎng)絡(luò)通路,實驗結(jié)果如圖7所示。

圖7 ping 測試結(jié)果

同時借助網(wǎng)絡(luò)調(diào)試助手,在PC 機上通過TCP Client 協(xié)議,連接上作為TCP Server 的MCU,我們在MCU 的應(yīng)用程序里設(shè)計Server 將收到的數(shù)據(jù),再發(fā)送回給client,實驗結(jié)果如圖8所示。

圖8 TCP-Server 測試結(jié)果

4 結(jié) 論

本文介紹了千兆以太網(wǎng)物理層收發(fā)器測試系統(tǒng)的架構(gòu),提出了根據(jù)數(shù)據(jù)流分階段對GPHY 進行環(huán)回測試的方法,闡述了環(huán)回測試程序的設(shè)計和實現(xiàn),其中設(shè)計的可分級調(diào)整的日志系統(tǒng)與統(tǒng)一的測試函數(shù)接口,方便了多輪循環(huán)壓力測試。最后,展示的兩種環(huán)回測試的日志和基于LwIP 的ping與TCP-Server 測試結(jié)果,表明本文提出的測試方法科學有效,有利于快速定位問題,代碼易于復(fù)用,同時可以為其他PHY 測試工作提供參考。

猜你喜歡
調(diào)試功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
基于航拍無人機的設(shè)計與調(diào)試
電子制作(2018年12期)2018-08-01 00:47:44
關(guān)于非首都功能疏解的幾點思考
核電廠主給水系統(tǒng)調(diào)試
中國核電(2017年1期)2017-05-17 06:10:11
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
無線通信中頻線路窄帶臨界調(diào)試法及其應(yīng)用
電子制作(2017年19期)2017-02-02 07:08:38
“簡直”和“幾乎”的表達功能
調(diào)壓柜的調(diào)試與試運行探討
工業(yè)電氣設(shè)備控制系統(tǒng)的安裝與調(diào)試
音頻處理器的調(diào)試
主站蜘蛛池模板: 国产99欧美精品久久精品久久| 国产9191精品免费观看| 色AV色 综合网站| 日韩av资源在线| 精品国产电影久久九九| 成年av福利永久免费观看| 亚洲国产在一区二区三区| 中文字幕丝袜一区二区| 欧美h在线观看| 91麻豆精品视频| 日韩第九页| 亚洲最大福利网站| 婷婷综合在线观看丁香| 欧美性精品| 91精品国产麻豆国产自产在线| 98超碰在线观看| 无码中文字幕精品推荐| 国产成人精品一区二区秒拍1o| 久久综合九九亚洲一区| www欧美在线观看| 东京热一区二区三区无码视频| 国产99视频精品免费观看9e| 国产精品亚洲一区二区三区z | 亚洲侵犯无码网址在线观看| 欧美另类精品一区二区三区| 黄网站欧美内射| 亚洲精品日产精品乱码不卡| 四虎国产成人免费观看| 欧美激情伊人| 伊人久久久久久久久久| 国产精品色婷婷在线观看| 秋霞午夜国产精品成人片| 伊人成人在线| 在线观看国产精美视频| 无遮挡国产高潮视频免费观看| 国产成人h在线观看网站站| 精品久久蜜桃| 亚洲欧美日韩高清综合678| 色综合久久综合网| 最新加勒比隔壁人妻| 日韩免费毛片视频| 国产精品无码影视久久久久久久 | 在线免费观看AV| 97av视频在线观看| 999国产精品| 亚洲第一成年免费网站| 99在线免费播放| 日韩黄色精品| 亚洲中文字幕无码爆乳| 狼友视频国产精品首页| 免费一极毛片| 久久久久青草大香线综合精品| 欧美另类视频一区二区三区| 女同国产精品一区二区| 青青青国产精品国产精品美女| av色爱 天堂网| 成人精品视频一区二区在线| 一级全免费视频播放| 激情六月丁香婷婷| 欧美精品亚洲精品日韩专区| 欧美日韩激情在线| 不卡无码网| 亚洲欧美日韩精品专区| 久久这里只有精品2| 成人综合久久综合| 影音先锋丝袜制服| 欧美成人在线免费| 国产第八页| 91在线播放免费不卡无毒| 亚洲自偷自拍另类小说| 国产福利在线免费观看| 亚洲伊人天堂| 国产久操视频| 免费日韩在线视频| 国产精品亚洲片在线va| 亚洲色图综合在线| 亚洲成人77777| 国产系列在线| 日韩不卡高清视频| 伊人网址在线| 97超爽成人免费视频在线播放| 99精品福利视频|