您当前的位置:五五电子网电子知识单元电路接口电路基于IP内核的PCI总线接口设计与实现 正文
基于IP内核的PCI总线接口设计与实现

基于IP内核的PCI总线接口设计与实现

点击数:7936 次   录入时间:03-04 11:58:51   整理:http://www.55dianzi.com   接口电路

       TCP协议是面向连接的、端到端的可靠通信协议。它采用了许多机制保证传输可靠性,应用于嵌入式系统显得过于复杂。在嵌入式TCP/IP协议栈中,为了减少存储空间的占用,没有进入发送和接收数据的可靠窗口机制;通常,嵌入式Web服务器处于被动服务状态,所以可以将标准TCP有线状态机的主动创建连接的 SYN SENT状态、主动关闭连接的FIN WAIT1、FIN WAIT2、CLOSING、TIME WAIT状态裁剪。设计中还去掉了LISTENING状态,使它在CLOSED状态下就处于侦听状态,监听客户端的链接请求,这样避免了主动或被动打开及关闭的操作,使嵌入式TCP/IP协议栈更精简,嵌入式TCP/IP中到达TCP段的数据不被缓存,应用程序必须立即处理它。当然,这并不阻止应用层缓存数据。每次连接在发送数据时,无法同时处理多于一个的TCP段,TCP协议的实现原理比较复杂,在嵌入式TCP/IP协议中,实现TCP协议是一个最关键的问题。      

       2.2.5 构件化的协议栈       

       采用构件化方法实现网络协议栈的关键是:       

       (1)如何划分构件的粒度。需要根据用户的需要解决定,如果用户是开发一个新的协议

 栈,可以采用大粒度的构件划分方式(如图2所示),即把整个网络协议栈作为一个大的构件,继承预先定义的构件。

构件化协议框图


       (2)如何设计构件接口。要实现(1)所提到的构件的自由替换,必须设计良好的构件接口。所有的构件实现应该继承该接口。设计接口的原则是尽量保持接口的通用性和简洁性。当有新的功能添加时,可以通过继承实现新的接口方便地加入原有的框架,从而实现软件的无缝升级。      

       (3)提高网络通信的效率。一个高效的通信协议需要满足:1)上下文切换和定时器的轻型完成;2)多个协议具有统一的使用界面;3)在网络设备,核心层和用户层之间有高效的缓冲机制,避免不必要的拷贝。       

       如果操作系统提供了快捷的上下文切换及高效的进程间的通信,则整个网络协议栈便可以作为一个用户态进程对用户进程提供服务,如果进程上下文切换比较复杂,则整个网络协议栈可以作为动态链接库链入用户进程地址空间,但需要对多进程共享的数据加锁,进行同步访问控制。另外一种选择是将网络协议栈装入内核空间,也可以避免频繁的进程上下文切换带来的系统开销。       

       因为采用了通用的SOCKET编程接口作为最终提供给用户使用的接口,从而使多个协议具有统一的使用界面。同时,在采用细粒度构件的网络协议栈中,各层协议之间的接口也是精细构造的统一接口,为了避免大量数据的拷贝,需要设计良好的数据结构,同时采取"共享内存"的方法。网络协议各层次间尽量以指针方式传递数据。       

       构件化的网络协议栈具有以下优点:       

       (1)

针对不同网络应用的需求,能最大限度地利用领域相关知识进行调整,提高了性能。       

       (2)底层构件可以在不影响顶层使用的情况下进行修改。      

       (3)方便用户添加及开发调试新的协议。       

       该文采用上海科泰公司的CAR构件技术在和欣操作系统上实现了一个构件化的网络协议栈,该网络协议构件既可以加载在内核态,也可以加载到用户态,方便开发调试,有利于开发新网络协议栈,其他开发者采用构件的方法开发出了高效或者针对某特定领域的网络协议栈,可以方便地替换和欣操作系统上原有的网络协议栈。使用构件化的方法开发网络协议栈也可以推广到其他支持构件的操作系统上。




上一页  [1] [2] 


本文关键字:接口  接口电路单元电路 - 接口电路