网卡是网络接口卡NIC(Network Interface Card)的简称,也叫网络适配器,它是物理上连接计算机与网络的硬件设备,是局域网最基本的组成部分之一。网卡插在电脑的主板扩展槽中,通过网线(如双绞线、同轴电缆)与网络共享资源、交换数据,可以说是必备的。它主要完成两大功能,一是将电脑的数据封装为帧,并通过网线(对无线网络来说就是电磁波)将数据发送到网络上去。二是接收网络上传来的数据帧,并将数据帧重新组合成数据,发送到所在的电脑中。网卡接收所有在网络上传输的信号,但只接受发送到该电脑的数据帧和广播帧,将其余的帧丢弃。然后,传送到系统CPu做进一步的处理。当电脑发送数据帧时,网卡等待合适的时间将分组插入到数据流中。接收系统同志电脑消息是否完整的到达,如果出现问题,将要求对方重新发送。
嵌入式网络协议在线识别的一个难题在于嵌入式设备的处理能力有限,各种硬件资源也是有限的,在有限的资源环境下处理大量的数据包是对嵌入式系统的一大挑战,针对当前使用的PPC网络处理器,本文提出了一种修改网卡驱动的方案,在网卡驱动层增加数据包过滤层,过滤掉那些不感兴趣的协议数据,把未知协议或者是应用层协议提交至上层协议栈进行进一步的分析。
2 MPC837X硬件系统及vxworks操作系统论文网
2.1 MPC837X硬件系统
MPC837X 套件是一套完整的基于飞思卡尔MPC837X 处理器的嵌入式开发平台。套件集成飞思卡尔MPC837X 处理器,512M的DDR2 SDRAM 以及16M的FLASH,可扩展NAND FLASH,开发板上则提供非常丰富的外设接口:2个10M/100M/1000M自适应以太网接口、2个三线RS-232 串口等。系统具有体积小、功耗小、处理能力强、网络功能强大等特点,能够装载和运行嵌入式Linux 操作系统或者Vxworks操作系统。
图2-1所示是MPC837X的模块图,处理器的核心采用的是e300的核心,带有32KB的高速指令缓存和32KB的高速数据缓存,支持浮点运算。总线上还有两个三速以太网控制器,四个SATA控制器,一个DDR内存控制器,USB控制器,PCI-E控制器等等。
MPC837X处理器模块图
系统的外部接口如图2-2所示:
MPC837X开发板及外部接口
1. 10/100/1000M自适应以太网口2个;
2. CPU JTAG口;
3. CPU自带异步串口2个,其中UART1为系统监控口;
4. 系统复位按键1个;
5. 外部中断按键3个;
6. PCI接口1个5V 32bit ;
7. PCI Express x2Lane 1个;
8. SATA接口2个;
9. RTC实时时钟一个;
10. USB Host A型插座一个;
11. 12V/3A电源输入端子;
12. 可编程GPIO LED5个;
13. 可编程蜂鸣器1个;
14. 外部总线输出1个;
15. 可编程8字型数码管4个;
16. 温度传感器1个;
MPC837X主板逻辑原理如图2-3所示:
开发板的逻辑原理
DDR总线上通过DDR2内存接口挂接了512M字节的内存;LocalBus总线上挂接了1片NorFlash和一片NandFlash;LocalBus总线经过数据和地址的驱动后,挂接数码管和对外总线输出;PCI插座直接连接CPU的PCI接口;PCI-E插座直接连接CPU的PCI-E接口;两个SATA插座直接连接CPU的两个SATA接口;GPIO发光二极管和蜂鸣器连接在CPU的GPIO上;RTC芯片连接在CPU的GPIO上;温度传感器连接在CPU的I2C上;TSEC1和TSEC2控制器在外部连接网络PHY后,分别经过网络变压器连接到外部的RJ45连接器;这两个PHY具有MDI/MDIX自动反序功能;控制器UART1和UART2工作于串口UART模式下,经过串口变压芯片后分别连接DB9接口,其中UART1是系统监控串口。文献综述