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

发布者:gamma14最新更新时间:2006-08-07 来源: 电子技术应用关键字:嵌入式  构件  操作 手机看文章 扫描二维码
随时随地手机看文章

嵌入式Internet是随着嵌入式系统的广泛应用和计算机网络技术的发展而产生的一种新概念和技术,嵌入式系统以应用为中心,以计算机技术为基础,且软硬件可裁剪,现已赢得了巨大的市场。随着Internet的发展,各种设备都产生了连接性的需求,从冰箱到电表,似乎所有电器需要连入互联网。通过为现有嵌入式系统增加因特网接入能力来扩展其功能,以Internet为介质实现信息交互,从而产生了嵌入式Internet技术,要实现嵌入式设备的网络化,需要实现TCP/IP网络协议栈,但由于Internet上各种通信协议对计算机存储器、运算速度等的要求比较高,使得嵌入式系统协议栈的开发实现并不顺利。

目前过两个关键因素影响网络协议栈的开发,一是性能和效率,二是开发调试方便。传统的操作系统一般只能顾及其中的一个方面。例如在Linux、FreeBSD中,网络协议栈作为系统内核的一部分实现,通常具有较高的通信效率,但是不方便用户添加实现新的用户协议及根据特殊需要对协议的实现细节调整,同时对协议代码的维护、调试和开发也不方便,这个缺点在嵌入式领域表现的尤为突出。

由于嵌入式设备的多样性和通信需求的多样性,嵌入式领域的网络协议栈的复用率非常低。本文将构件技术引入网络协议栈的开发,并在国产和欣操作系统上实现了一个构件化的网络协议栈,很好地解决了开发与效率的问题。

1 和欣嵌入式操作系统的CAR构件技术

1.1 和欣嵌入式操作系统

和欣操作系统基于微内核,服务动态加载。内核包括硬件驱动(串口、USB、以太网卡、无线通信模块)、内存管理等系统基本服务,如图1所示。TCP/IP协议栈完全由构件实现,是运行在构件平台之上的一个服务构件,底层网卡、串口等设备得到数据之后将数据交上层服务构件处理。

和欣嵌入式操作系统是基于构件化软件模型,构件化软件设计思想贯穿了整个系统的设计与实现,系统实现本身就是构件模式,除内核中最底层控制部分外,所有系统功能都以构件接口形式提供。另外,操作系统对构件化软件模型提供了必要的运行环境,来源不同的构件可以在该环境上实现互操作,系统提供了构件自动寻址/自动加载机制,用户不必知道调用的构件程序是本地的还是来自于网上,即构件运行环境对用户透明。构件化系统的实现,使得操作系统本身具有高度的灵活性和扩展性。和欣采用了CAR构件技术。

1.2 CAR构件技术

CAR构件技术是在总结面向对象编程、面向构件编程技术的发展历史和经验的基础上,为更好地支持面向以Web服务为代表的下一带网络应用软件开发而发明的。CAR(Component Assembly Runtime)构件技术定义了一套网络编程时代的构件编程模型和编程规范,它规定了一组构件间相互调用的标准,使二进制构件可自描述并能够在运行时动态链接。

CAR构件技术通过二进制的封装及动态链接技术解决软件的动态升级和软件的动态替换问题,面向构件技术对一组类的组合进行封装,并代表完成一个或多个功能的特定服务,同时为用户提供多个接口。整个构件隐藏了具体的实现,只用接口提供服务。这样,在不同层次上,构件均可以将底层多个逻辑组合成高层次上粒度更大的新构件,构件之间通过约定的接口进行数据交换和信息传递,构件的位置相互透明,可以在同一个或不同的用户进程空间、不同的机器设置不同的构件上用不同的语言编写,只要其符合事先约定的构件规范。

2 和欣操作系统上的TCP/IP协议栈的特点与实现

2.1 和欣嵌入式操作系统上TCP/IP协议栈的特点

由于嵌入式系统在硬件资源的占有量以及处理器的处理能力等方面的限制,使得TCP/IP协议的嵌入式实现与其在通用操作系统中的实现有很大不同。首先,由于嵌入式处理器的时钟频率低,地址、数据总线窄,导致嵌入式系统对一个通用IP包的处理要花费更多的处理机时间,从而影响其他任务的执行,因此需要对庞大的复杂的TCP/IP协议栈进行裁剪,使之具有简单、高效的特点同时在设计嵌入式TCP/IP协议栈时要合理控制中断处理程序的大小,使得中断处理程序的运行时候尽可能短;同时把那些无实时性要求和费时的工作移到主程序中执行,从而保证协议的正确执行,具体来说,就是把TCP/IP协议的处理工作放到主程序中对网络接口的控制芯片采用循环查询方式,在其他中断任务的执行间隙处理TCP/IP协议,以牺牲系统的响应时间换取系统的可靠性,再者由于嵌入式的系统的存储空间有限,一般情况下只能开辟几KB字节的缓存区接收数据包,并且其存储空间固定,不是动态分配的。因此,遇到大数据包时就会出现缓冲区溢出的错误。通常,嵌入式系统接收的数据包类型仅为系统状态配置包、控制动作命令包、通信控制包等,这些包容量较小,由实时数据或网页向网络发送的数据包比较长,但可以通过设计格式加以控制。

和欣操作系统是基于微内核的操作系统, 其上的TCP/IP协议栈既可以运行在用户态,也可以运行在内核态度,具有通用接口和方便的框架,方便用户开发适合自己领域或特殊需要的网络协议栈,因为和欣操作系统提供了高效的进程上下文切换功能和进程间通信,所以整个网络协议栈作为一个用户态进程提供服务。使用前先创建网络构件实例,然后向操作系统注册服务。此后用户就可以使用网络编程接口了,如果用户对网络协议栈有更高的效率要求,则可以将该协议栈加载到内核态。

2.2 和欣嵌入式操作系统TCP/IP的实现

根据和欣嵌入式TCP/IP协议堆栈的特点,在实现嵌入式TCP/IP协议栈时只需要用到下述四个基本协议:TCP协议、ICMP协议、IP协议、ARP协议。其余的链路层协议如PPP协议需要在嵌入式TCP/IP协议栈下面的设备驱动程序中实现;而像HTTP、FTP这样的应用层协议则要在嵌入式TCP/IP协议栈上面的应用层中实现。

2.2.1 地址转化协议ARP

ARP协议为IP地址和以太网MAC地址建立一个映射表。这个协议对于以太网的TCP/IP协议的操作是必不可少的。为了节省空间,一个IP地址的ARP请求覆盖即将发送的数据包,该ARP请求就是因为要发送这个包而发送的。这种方法在假设上层会重发被覆盖的数据时采用。每隔十秒钟,表就会刷新一次,旧的记录被丢弃,在嵌入式TCP/IP协议栈中,记录的有效时间为1秒。

2.2.2 网络协议IP

在嵌入式TCP/IP中,IP协议执行两项功能:(1)封装来自上层的TCP数据包或ICMP数据包,计算IP数据包的检验和;(2)解析IP缓存中的数据包,检查数据包的协议字段,以判断该数据包应该交给ICMP协议还是TCP协议处理。基于嵌入式Web服务器与客户端通信的信息量很小,数据包的大小不会超过链路层的MTU(最大传输单元),嵌入式IP没有引入数据包分片和重组功能,标准的IP协议有选路功能,可以选择较短路径传送数据包,嵌入式IP中为了减少代码规模,未引入选路功能。

2.2.3 网际控制报文协议ICMP

在嵌入式TCP/IP协议栈中,只处理一种ICMP消息类型:ICMP回送消息。ICMP回复消息经常被用来调用ping程序测试对方主机是否在线。在嵌入式TCP/IP协议栈中,ICMP回送消息用一种十分简单的方式实现,即将ICMP类型的字段由"echo"类型改变为"echo reply"类型。改变IP首部的IP地址,将数据包送回发送者。

2.2.4 传输控制协议TCP

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

关键字:嵌入式  构件  操作 引用地址:基于IP核的PCI总线接口设计与实现

上一篇:EPON系统中ONU的设计
下一篇:CDMA 870~880MHz频段的结环行器设计

推荐阅读最新更新时间:2024-05-13 18:13

MIPS 连接和嵌入式外设解决方案问与答
MIPS 科技公司模拟业务部嵌入式外设总监 Luis Laranjeira 在学校学习和构建数字系统的时候,最大的挑战是找到足够的分立式元件,这样 MIPS 就能够在板卡级将其连接在一起。 假定 每个分立式芯片元件都非常强大,而且作用也因规格而异。接口及其灵活性总是 MIPS 最关心的问题。通常我的系统里都有一个 FPGA ,以便 MIPS 适应系统中不同的接口。 如今这个问题仍然是摆在 MIPS 面前的最大挑战,但是除了分立式芯片元件, MIPS 还有 IP 。随着实现现代、多功能 SoC 所需的复杂性增加,集成难度成为了一个主要瓶颈。连接 IP 通常包
[嵌入式]
芯片和操作系统 - 当前汽车供应链面临的关键问题思考
百人会是中国汽车工业发展的智库,百人会中领导透露的信息总是引人关注,你可以认为他是前瞻,他是指引。今天,以“重塑汽车核心供应链新格局”为主题,由中国电动汽车百人会、南京市江宁区人民政府联合主办的“2022全球新能源与智能网联汽车供应链创新大会”在南京开幕。 全国政协经济委员会副主任、工业和信息化部原部长苗圩在大会现场发表了以《当前汽车供应链面临的关键问题思考》为主题的演讲。对于汽车供应链思考其实熟悉我们公众号的读者都非常明确当前主要供应链问题就是两个:芯片和操作系统。领导在会上也主要就是讲了这两个问题,我基于会议直播整理如下,希望给大家一些信息和启发。一,当前汽车供应链面临的关键问题当前汽车对于“电动化”已经是大势所趋,
[汽车电子]
芯片和<font color='red'>操作</font>系统 - 当前汽车供应链面临的关键问题思考
国外四大智能电视操作系统谁更好
    智能电视正在悄然发生改变。以往,人们会关心其拥有多少应用。而今,操作系统才是关键。   所有智能电视都支持Netflix以及Amazon Instant,这方面日趋同质化。因此,用户更加关心产品所能提供的服务本身的品质。   该领域不存在行业标准,各种智能电视平台纷纷割据一方。LG、三星、松下和索尼便各自采用了不同的系统,它们分别是webOS、Tizen、火狐以及安卓。   这到底是全新的开始,或者只是新瓶装旧酒?下面,我们根据英国市场的情况,对炙手可热的四款智能电视平台依次进行介绍。    索尼:Android TV   索尼正式在2015年度采用了全球最佳智能电视平台。只要与安卓扯上关系,就会自动疏远
[家用电子]
慧荣科技荣获中国闪存市场峰会“最佳嵌入式应用奖” 扎根
慧荣科技公司(Silicon Motion Technology Corporation, 纳斯达克交易代码: SIMO)日前荣获中国闪存市场峰会(CFMS2017)颁发的“最佳嵌入式应用奖”,以表彰其多年来在中国嵌入式市场的产品和服务优异表现:其嵌入式控制器芯片开放SDK,大量应用在国内模组厂的EMMC和EMCP产品中,除原厂外芯片厂商外,嵌入式控制器市场份额总体全球第一。 随着大数据和人工智能时代的到来,在服务器,物联网,车载,通讯及终端等领域,对数据存储的需求与日剧增。2017年全球存储市场规模大约400亿美元,其中中国存储占据全球30%的市场。中国存储的发展受到全球存储厂商的重点关注。在过去的十余载中,慧荣科技为全球用
[嵌入式]
慧荣科技荣获中国闪存市场峰会“最佳<font color='red'>嵌入式</font>应用奖” 扎根
ARM嵌入式汽车节能控制系统
  引言   由于各种原因,公交车总是不断重复加速—减速或停车—再加速的过程。通过加装本节能装置,当汽车需要制动时,在主控单元的控制下,可将汽车行驶时具有的巨大动能通过空气压缩机转化成高压气体的势能并储存起来,从而实现汽车减速或停车。当汽车需要启动或加速时,用储存起来的高压气体势能代替燃油来驱动汽车,从而实现汽车能量的回收再利用,达到节能的效果。同时由于汽车在起动或加速时能耗最大,如果汽车是用燃油驱动,则此时油料燃烧不充分,燃烧效果最差,而且产生的噪音最大。   系统工作原理   本系统主要由三部分组成,即检测部分,控制部分和执行机构。检测部分包括踏板位置传感器、曲轴位置传感器、压缩机活塞位置传感器、汽车运行速度传感器、储气
[应用]
嵌入式实时系统开发的正确选择
入式系统通常是一个包含微处理器的特殊计算机系统,是一个较大系统或设备的组成部分,它在很大程度上决定了设备的功能特性。许多具备数字接口的设备如微波设备、录像机(VCR)和汽车等都会用到嵌入式系统。有些嵌入式系统需要使用操作系统,有些则用单个程序实现整个逻辑,但所有嵌入式系统提供的功能都要比通用计算系统更专业些。嵌入式系统功能包括: 1. 监视环境-从输入传感器读取数据,然后处理数据并显示结果。 2. 控制环境-产生并向激励器发送命令。 3. 转换信息-转换并处理收集到的数据。 虽然通过传感器和激励器完成与外部世界的交互是嵌入式系统的重要特点,但这些嵌入式系统还提供适合它们所在设备的特殊功能。嵌入式系统一般用来执行控制程序
[单片机]
<font color='red'>嵌入式</font>实时系统开发的正确选择
菜鸟如何快速学习labview操作硬件?
LabView 专用于 VISA 级与仪器的通信。只要仪器有 LabView 驱动程序(或即插即用驱动程序),程序就是直接的。但没有驱动程序的仪器,比如许多老仪器的编程就比较困难。 下面是三段视频介绍了是德科技的测试测量仪器是如何搭配 Labview 的过程。 This is a 3-part series on Automating Keysight Instruments with LabVIEW. Episode 1 - Getting Started - This is the first video in a series of videos demonstrating how to automate your
[测试测量]
菜鸟如何快速学习labview<font color='red'>操作</font>硬件?
人工智能热潮下物联网与嵌入式系统如何发展-主题讨论会
从谷歌的AlphaGo将人工智能推进大众视野起,在可预见的未来,人工智能会涉及到我们生活的各个方面,它们将会成为我们的朋友,成为我们的亲人,成为我们的伙伴。 人工智能的再次崛起并不是偶然的,主要得益于三大技术上的突破:算法、数据和算力,三者缺一不可,人工智能对处理能力和实时性有着极强的要求,边缘计算的兴起,这些与物联网和嵌入式系统密不可分。 身处这样一个时代,我们该如何看待这场即将到来的风暴呢?人工智能的应用日益普及,其中哪些细分市场会是物联网与嵌入式重点关注的方向呢?嵌入式研究和工程技术人员又该如何把握住人工智能所带来的重大机遇呢? 本次嵌入式系统联谊会主题讨论会将安排学术研讨会和企业家高峰论坛,邀请国内物联网和嵌入
[嵌入式]
小广播
最新应用文章

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved