張 榮,徐曉斌,羅 晟,張國(guó)賢,龐立鵬
(中國(guó)電子科技集團(tuán)公司第58研究所,江蘇 無(wú)錫 214035)
在網(wǎng)絡(luò)接口芯片的設(shè)計(jì)驗(yàn)證過(guò)程中,不僅要測(cè)試電參數(shù),而且還要對(duì)協(xié)議和通信性能進(jìn)行測(cè)試驗(yàn)證,單靠測(cè)試機(jī)已無(wú)法滿足設(shè)計(jì)驗(yàn)證需要,因此設(shè)計(jì)了一套基于網(wǎng)絡(luò)接口芯片的以太網(wǎng)應(yīng)用與驗(yàn)證系統(tǒng)??梢赃M(jìn)行寄存器級(jí)和指令級(jí)驗(yàn)證和調(diào)試,對(duì)芯片進(jìn)行協(xié)議功能測(cè)試。
系統(tǒng)支持寄存器級(jí)和指令級(jí)驗(yàn)證和調(diào)試以及通信協(xié)議測(cè)試。具體功能點(diǎn)見(jiàn)表1。
系統(tǒng)框架如圖1所示。系統(tǒng)由硬件板卡、驅(qū)動(dòng)、應(yīng)用程序三部分組成。硬件板卡主要負(fù)責(zé)搭載網(wǎng)絡(luò)接口芯片,它通過(guò)PCI接口與PC機(jī)相連。驅(qū)動(dòng)部分其底層為網(wǎng)絡(luò)接口芯片驅(qū)動(dòng)[1],其上有兩個(gè)分支,一條通過(guò)NDIS到TCP/IP從而與應(yīng)用層連接,另一條則從芯片驅(qū)動(dòng)引入一個(gè)WDM接口,響應(yīng)上層IRP請(qǐng)求[2]。應(yīng)用層利用Socket和底層接口與驅(qū)動(dòng)連接[3]。底層接口實(shí)現(xiàn)應(yīng)用層與WDM驅(qū)動(dòng)之間的連接,它使用Windows接口IOCTL實(shí)現(xiàn)應(yīng)用層與驅(qū)動(dòng)層之間的通信。應(yīng)用層實(shí)現(xiàn)了人機(jī)交互界面和數(shù)據(jù)通信功能。
表1 系統(tǒng)功能表
圖1 系統(tǒng)框架圖
圖2 驅(qū)動(dòng)框架UML模型圖
本系統(tǒng)設(shè)計(jì)的驅(qū)動(dòng)為NDIS-WDM型小端口驅(qū)動(dòng)[4]。使用開(kāi)發(fā)工具Driver Studio和WDK。驅(qū)動(dòng)模型如圖2所示。驅(qū)動(dòng)框架提供了若干個(gè)hook接口,通過(guò)實(shí)現(xiàn)這些函數(shù),完成驅(qū)動(dòng)的開(kāi)發(fā)。
驅(qū)動(dòng)設(shè)計(jì)UML模型如圖3所示。主要設(shè)計(jì)了5個(gè)類來(lái)完成各自相應(yīng)的工作,其中E100bexDriver負(fù)責(zé)注冊(cè)驅(qū)動(dòng)。E100bexAdapter負(fù)責(zé)數(shù)據(jù)設(shè)備初始化、數(shù)據(jù)收發(fā)、管理中斷等。E100bexCard類主要負(fù)責(zé)對(duì)網(wǎng)絡(luò)接口芯片進(jìn)行操作,直接與硬件進(jìn)行交互。E100bexPciInformation負(fù)責(zé)PCI信息采集,通過(guò)一定的接口將PCI的信息導(dǎo)出。E100bexPhy 負(fù)責(zé)PHY相關(guān)操作。當(dāng)驅(qū)動(dòng)加載以后,其流程如圖4所示。
圖3 驅(qū)動(dòng)UML模型圖-類圖
圖4 驅(qū)動(dòng)工作流程圖
應(yīng)用軟件框架如圖5所示,主要由應(yīng)用層和接口兩部分組成。應(yīng)用界面層主要負(fù)責(zé)人機(jī)交互,提供各種操作接口,接口負(fù)責(zé)對(duì)驅(qū)動(dòng)接口進(jìn)行封裝,負(fù)責(zé)提供WDM接口。使用SOCKET進(jìn)行網(wǎng)絡(luò)通信。
圖5 應(yīng)用軟件層次圖
圖6為應(yīng)用軟件工作流程圖,首先執(zhí)行初始化工作,初始化完成后,打開(kāi)設(shè)備,根據(jù)不同的需求執(zhí)行不同的分支,完成相應(yīng)的功能。
應(yīng)用層框架如圖6所示,采用多文檔系統(tǒng),使用文檔視圖架構(gòu),主要有主框架、子框架、對(duì)話框構(gòu)成,使用MFC類庫(kù)進(jìn)行編程[5]。主框架負(fù)責(zé)創(chuàng)建工具欄、狀態(tài)欄,創(chuàng)建主窗口,接受并響應(yīng)用戶指令。子框架從CMDIChildWndEx類繼承而來(lái),完成其應(yīng)有的功能。主框架和子框架一起構(gòu)成多文檔應(yīng)用程序的整體框架。應(yīng)用層軟件由多個(gè)界面組成,其層次如圖7所示。
圖6 應(yīng)用軟件流程圖
圖7 應(yīng)用層界面層次圖
本系統(tǒng)在使用時(shí),連接關(guān)系如圖8所示,測(cè)試板卡與PC之間通過(guò)PCI接口相連,測(cè)試板卡通過(guò)以太網(wǎng)與另一臺(tái)PC連接。測(cè)試系統(tǒng)主界面如圖9所示,界面上半部分是配置選項(xiàng),下半部分輸出測(cè)試日志。
圖8 測(cè)試系統(tǒng)連接示意圖
圖9 主界面圖
在測(cè)試時(shí),測(cè)試人員首先選擇需要測(cè)試的模塊并指定測(cè)試流程,然后開(kāi)始測(cè)試。一般的測(cè)試流程如圖10所示,測(cè)試過(guò)程結(jié)束后,系統(tǒng)會(huì)保存測(cè)試結(jié)果。如果測(cè)試中發(fā)現(xiàn)電路故障,系統(tǒng)會(huì)讀取內(nèi)部統(tǒng)計(jì)計(jì)數(shù)器和內(nèi)部寄存器的值以便定位故障點(diǎn)。
圖10 測(cè)試流程示意圖
本系統(tǒng)相對(duì)傳統(tǒng)測(cè)試機(jī)測(cè)試具有以下優(yōu)勢(shì):
(1)可以全面測(cè)試芯片接口,尤其可以對(duì)電路通信進(jìn)行測(cè)試,比傳統(tǒng)測(cè)試機(jī)更加全面。
(2)使得對(duì)電路的測(cè)試更加靈活。測(cè)試人員可以根據(jù)需要增減測(cè)試模塊、制定測(cè)試流程。
(3)可以更快定位電路故障。
傳統(tǒng)測(cè)試機(jī)需要基于仿真結(jié)果編制測(cè)試碼,而網(wǎng)表級(jí)仿真往往需要大量的時(shí)間。本系統(tǒng)使得設(shè)計(jì)和測(cè)試人員可以根據(jù)需要制定測(cè)試方案,快速定位故障點(diǎn),而無(wú)需經(jīng)過(guò)漫長(zhǎng)的仿真、制作測(cè)試碼的過(guò)程。
完成了系統(tǒng)的開(kāi)發(fā),可以進(jìn)行寄存器級(jí)和指令級(jí)驗(yàn)證和調(diào)試,使得對(duì)芯片的驗(yàn)證測(cè)試更加全面,芯片故障定位更加快速,芯片開(kāi)發(fā)更便捷,調(diào)試更容易,降低客戶開(kāi)發(fā)難度,加快開(kāi)發(fā)速度。
[1] 徐小娟,黃新,徐幫耿. 基于Windows網(wǎng)絡(luò)體系結(jié)構(gòu)的網(wǎng)卡驅(qū)動(dòng)程序開(kāi)發(fā)[J]. 信息技術(shù), 2008,(18):7-7.
[2] 劉炎,馮穗力,葉梧,徐宇強(qiáng). WDM/NDIS網(wǎng)絡(luò)驅(qū)動(dòng)程序?qū)崿F(xiàn)方法的研究[J]. 計(jì)算機(jī)應(yīng)用研究,2001,(8):118-120.
[3] 朱輝生. VC中基于SOCKET的網(wǎng)絡(luò)編程[J]. 計(jì)算機(jī)應(yīng)用與軟件,2004, 21(4):118-119.
[4] 賀鵬,李建東,陳彥輝. 帶有WDM底層接口的NDIS微端口驅(qū)動(dòng)程序?qū)崿F(xiàn)方法的研究[J]. 現(xiàn)代電子技術(shù),2004,(2): 93-94.
[5] 馮曉靜,馬毓堃,王玉爽. 基于MFC的聊天程序的設(shè)計(jì)與實(shí)現(xiàn)[J]. 機(jī)電工程, 2012,(7):46-45.