基于82551的以太网测试与验证系统
2015-12-05徐晓斌张国贤庞立鹏
张 荣,徐晓斌,罗 晟,张国贤,庞立鹏
(中国电子科技集团公司第58研究所,江苏 无锡 214035)
1 引言
在网络接口芯片的设计验证过程中,不仅要测试电参数,而且还要对协议和通信性能进行测试验证,单靠测试机已无法满足设计验证需要,因此设计了一套基于网络接口芯片的以太网应用与验证系统。可以进行寄存器级和指令级验证和调试,对芯片进行协议功能测试。
2 系统设计
2.1 系统功能
系统支持寄存器级和指令级验证和调试以及通信协议测试。具体功能点见表1。
2.2 系统框架
系统框架如图1所示。系统由硬件板卡、驱动、应用程序三部分组成。硬件板卡主要负责搭载网络接口芯片,它通过PCI接口与PC机相连。驱动部分其底层为网络接口芯片驱动[1],其上有两个分支,一条通过NDIS到TCP/IP从而与应用层连接,另一条则从芯片驱动引入一个WDM接口,响应上层IRP请求[2]。应用层利用Socket和底层接口与驱动连接[3]。底层接口实现应用层与WDM驱动之间的连接,它使用Windows接口IOCTL实现应用层与驱动层之间的通信。应用层实现了人机交互界面和数据通信功能。
表1 系统功能表
图1 系统框架图
3 驱动设计
图2 驱动框架UML模型图
本系统设计的驱动为NDIS-WDM型小端口驱动[4]。使用开发工具Driver Studio和WDK。驱动模型如图2所示。驱动框架提供了若干个hook接口,通过实现这些函数,完成驱动的开发。
驱动设计UML模型如图3所示。主要设计了5个类来完成各自相应的工作,其中E100bexDriver负责注册驱动。E100bexAdapter负责数据设备初始化、数据收发、管理中断等。E100bexCard类主要负责对网络接口芯片进行操作,直接与硬件进行交互。E100bexPciInformation负责PCI信息采集,通过一定的接口将PCI的信息导出。E100bexPhy 负责PHY相关操作。当驱动加载以后,其流程如图4所示。
图3 驱动UML模型图-类图
图4 驱动工作流程图
4 应用软件设计
4.1 应用软件总体框架
应用软件框架如图5所示,主要由应用层和接口两部分组成。应用界面层主要负责人机交互,提供各种操作接口,接口负责对驱动接口进行封装,负责提供WDM接口。使用SOCKET进行网络通信。
图5 应用软件层次图
图6为应用软件工作流程图,首先执行初始化工作,初始化完成后,打开设备,根据不同的需求执行不同的分支,完成相应的功能。
4.2 应用层设计
应用层框架如图6所示,采用多文档系统,使用文档视图架构,主要有主框架、子框架、对话框构成,使用MFC类库进行编程[5]。主框架负责创建工具栏、状态栏,创建主窗口,接受并响应用户指令。子框架从CMDIChildWndEx类继承而来,完成其应有的功能。主框架和子框架一起构成多文档应用程序的整体框架。应用层软件由多个界面组成,其层次如图7所示。
图6 应用软件流程图
图7 应用层界面层次图
5 系统的使用
本系统在使用时,连接关系如图8所示,测试板卡与PC之间通过PCI接口相连,测试板卡通过以太网与另一台PC连接。测试系统主界面如图9所示,界面上半部分是配置选项,下半部分输出测试日志。
图8 测试系统连接示意图
图9 主界面图
在测试时,测试人员首先选择需要测试的模块并指定测试流程,然后开始测试。一般的测试流程如图10所示,测试过程结束后,系统会保存测试结果。如果测试中发现电路故障,系统会读取内部统计计数器和内部寄存器的值以便定位故障点。
图10 测试流程示意图
本系统相对传统测试机测试具有以下优势:
(1)可以全面测试芯片接口,尤其可以对电路通信进行测试,比传统测试机更加全面。
(2)使得对电路的测试更加灵活。测试人员可以根据需要增减测试模块、制定测试流程。
(3)可以更快定位电路故障。
传统测试机需要基于仿真结果编制测试码,而网表级仿真往往需要大量的时间。本系统使得设计和测试人员可以根据需要制定测试方案,快速定位故障点,而无需经过漫长的仿真、制作测试码的过程。
6 结论
完成了系统的开发,可以进行寄存器级和指令级验证和调试,使得对芯片的验证测试更加全面,芯片故障定位更加快速,芯片开发更便捷,调试更容易,降低客户开发难度,加快开发速度。
[1] 徐小娟,黄新,徐帮耿. 基于Windows网络体系结构的网卡驱动程序开发[J]. 信息技术, 2008,(18):7-7.
[2] 刘炎,冯穗力,叶梧,徐宇强. WDM/NDIS网络驱动程序实现方法的研究[J]. 计算机应用研究,2001,(8):118-120.
[3] 朱辉生. VC中基于SOCKET的网络编程[J]. 计算机应用与软件,2004, 21(4):118-119.
[4] 贺鹏,李建东,陈彦辉. 带有WDM底层接口的NDIS微端口驱动程序实现方法的研究[J]. 现代电子技术,2004,(2): 93-94.
[5] 冯晓静,马毓堃,王玉爽. 基于MFC的聊天程序的设计与实现[J]. 机电工程, 2012,(7):46-45.