基于网络处理器IXP1200的以太网上联卡设计
“异日图将好景”通过精心收集,向本站投稿了8篇基于网络处理器IXP1200的以太网上联卡设计,下面是小编整理后的基于网络处理器IXP1200的以太网上联卡设计,欢迎大家阅读借鉴,并有积极分享。
篇1:基于网络处理器IXP1200的以太网上联卡设计
基于网络处理器IXP1200的以太网上联卡设计
摘要:以太网上联卡是以ATM技术为内核的DSLAM设备中的一块板卡,DSLAM设备通过它可直接与IP网络相连,由于在进行ATM与IP转换时要消耗大量资源,因而很容易使上联卡成为整个系统的瓶颈。文章提出了一种基于网络处理器IXP1200的以太网上联卡设计方案,该方案利用IXP1200网络处理器强大的数据处理能力和高度的灵活性来实现对数据的线速处理,同时也可根据需要增加新的功能。关键词:以太网上联卡;网络处理器;ATM;以太网;微码;IXP1200
随着网络通讯技术的高速发展,宽带接入技术成了当前电信接入技术的热点。由于早期的宽带技术以ATM为核心,各大厂家提供的核心芯片和线路接口芯片都是基于ATM技术的。而数据网络主要以TCP/IP为核心,因此,为了解决ATM和TCP/IP的融合问题,就需要在DSLAM设备上提供ATM到以太网的转换。但转换过程中需要进行大量的数据处理,因此容易产生系统瓶颈,而上联卡的设计就是为了解决在DSLAM设备中的ATM信元和以太网帧之间的高速转发问题。本文提出了一种基于网络处理器IXP1200的上联卡设计方案,并对该方案的实现过程进行了详细分析。
(本网网收集整理)
1 网络处理器IXP1200主要特性
网络处理器是一种硬件可编程器件,通常是一种芯片,它是专门为处理网络数据包而设计的。通过对硬件架构和指令集的优化,该网络处理器不但可提供线速处理数据包的高质量硬件功能,同时还具备极大的系统灵活性。
IXP1200是英特尔公司生产的一款高档网络处理器,也是IXA(Internet Exchange Architecture)架构的核心产品。IXP1200的内部结构如图1所示,它内含1个主频最高可达232MHz的处理核心StrongARM、6个RISC结构的可编程微引擎(每个微引擎包含4个硬件线程)、64位和最高104MHz的IX Bus、32位的SRAM接口单元(工作频率为核心频率的一半)、64位的SDRAM接口单元(工作频率为核心频率的一半)、32位和最高66MHz的PCI总线接口单元等。IXP1200通过FBI接口单元和IX Bus相连接。另外还有一套集成开发环境,可用于对微引擎进行应用开发,它支持汇编和C编程语言。
(1)StrongARM Core
通过StrongARM Core可实现CPU的主要功能,同时可启动系统、管理和控制对网络处理器的其它单元、处理微引擎无法处理的数据包和一些异常状况。
(2)微引擎
微引擎是可编程的32-bit RISC处理器,它的指令集是专门针对网络和通信应用而设计的。通过对各个线程进行编程,可单独执行数据包的转发和处理,而无需StrongARM Core干预,因而可减轻StrongARM Core的负担,特别适合高速数据的处理和转发。
(3)SDRAM单元
SDRAM单元可提供IXP1200与SDRAM的接口,最大可支持256M字节的SDRAM。虽然SDRAM的访问速度较慢,但存储空间大,因而可用来存储大容量的数据结构(如数据包和路由表等),并可在系统运行时存储操作系统的'代码。
(4)SRAM单元
SRAM单元可为三种类型设备提供通用总线接口。这些设备包括最大可达8M字节的SSRAM、复位后StrongARM Core执行代码所在的FLASH或E-PROM等、BOOTROM设备和其它慢速端口设备(如CAM)、加密设备和MAC或PHY设备的控制状态接口。SRAM访问速度较快,但存储空间小,主要用来存储查找表和缓存描述符等需要快速访问的数据结构。
(5)PCI单元
PCI单元用于提供与PCI设备相连的接口,可用于下载操作系统和配置程序。
(6)FBI单元
图1中的哈希单元、IX总线接口和Scrachpad内存统称为FBI单元。IXP1200通过FBI单元和IX Bus相连,来实现外设与IXP1200之间数据包的收发,以便使微引擎可以访问这些数据包,并利用线程对其进行转发。实际上,StrongARM Core也可以访问这些数据包,并对其进行异常处理或上层协议处理。
2 以太网上联卡的设计方案
以太网上联卡的基本功能是实现ATM信元和以太网帧之间的转发,即从LVDS接口收到来自核心卡的ATM信元流后,根据封装协议(如RFC1483桥接协议)转换成以太网帧,然后建立相应的MAC地址与ATM PVC的对应关系,并通过以太网上联口送往IP网络;也可以从以太网上联口接收来自IP网络的以太网帧,然后根据
建立的MAC地址与ATM PVC的对应关系,将其转换成ATM信元流,再通过LVDS接口送往核心卡。
在上联卡中,ATM信元和以太网帧之间的转发是由网络处理器中的微引擎完成的。要使以太网上联卡不成为网络的瓶颈,微引擎必须能以线速来处理数据包(以太网帧或ATM信元),即在下一个数据包到来以前,完成对当前数据包的处理。因此,每个数据包的最大允许处理时间应小于数据包之间的间隔时间。
在进行设计时,应根据以太网上联卡具体功能的实现,并结合网络处理器IXP1200所拥有的硬件资源来进行合理的分配使用。这样可以最大限度地发挥系统性能,本设计中,以太网上联卡需要实现以太网接收处理、CRC计算产生、ATM发送处理、ATM接收处理、CRC校验、以太网发送等六个主要任务,而由于IXP1200刚好拥有六个微引擎,因此,将这六个单独的任务分配在每个微引擎上,并在处理上将其搭建成多流水线结构的程序架构,可以取得很好的处理效果。图2给出了网络处理器IXP1200的六个微引擎的任务分配方案,该分配方案的整个处理流程可以分为两个方向,一是上行方向,即ATM到以太网的数据映射,二是下行方向,即以太网到ATM的数据转换。
在上行方向,ATM接收引擎把收到的ATM信元组装成AAL5 PDUs,并根据封装协议转换成以太网帧,同时建立相应的MAC地址与ATM PVC的对应关系,然后送到CRC-32校验队列。接下来由CRC-32校验引擎对队列中的PDUs执行CRC校验并把PDUs送到以太网的发送队列。而以太网发送引擎的任务则主要是把发送队列中的以太网帧从以太网上联口发送出去。
在下行方向,以太网接收引擎接收来自以太网上联口的以太网帧,并将其封装成AAL5 PDUs后送到CRC-32产生队列,同时根据建立的MAC地址与ATM PVC的对应关系进行查找以得到ATM信元头部。接着由CRC-32产生引擎为队列中的PDUs生成CRC校验值,并把PDUs送到UBR队列。最后由ATM发送引擎把PDUs分割(segment)成ATM信元后,从ATM端口发送出去。
3 以太网上联卡的硬件设计
图3所示是以太网上联卡的硬件电路,该硬件电路主要包括四个部分:以太网处理单元、IXP1200网络处理单元、FPGA控制逻辑单元、ATM及LVDS背板总线处理单元。
3.1 以太网处理单元
以太网处理单元是上联卡的上联处理部分,用于连接路由器或者三层交换机等数据网络设备。该单元主要包括RJ45接口、变压器隔离电路、LXT9763以太网物理层芯片和IXF440 MAC层芯片。其中RJ45接口以及变压器隔离电路是以太网处理接口的标准单元电路,LXT9763主要完成802.3协议中描述的物理层功能,它主要通过MⅡ总线和IXF440芯片相连接。IXF440芯片主要完成802.3协议中描述的MAC层功能,同时提供与网络处理器的IX总线接口,实际上,该芯片是网络处理器中IX总线的SLAVE设备。
3.2 IXP1200网络处理单元
IXP1200网络处理单元是整个以太网上联卡的核心,它主要通过IX总线与外部芯片进行相连,是IX总线的MASTER设备,所有的处理软件均运行在网络处理器中。
IXP1200网络处理单元由网络处理器IXP1200及外部芯片(如SDRAM?SRAM?Flash等)构成。SDRAM和SRAM单元是可共享的智能单元。其中SDRAM单元可以被IXP1200的StrongARM内核以及微引擎和PCI总线上的设备直接访问,这样可以支持SDRAM与微引擎或IX总线以及PCI总线之间的快速移动数据,而SRAM单元则具有比SDRAM单元更快的访问时间,通常可以用来存储需要快速查找的表格,以提高性能。
3.3 FPGA控制逻辑单元
由于在英特尔公司所提供的网络处理器解决方案中,外部的数据接口是IX总线,该总线是英特尔提供的专有数据总线,而以太网上联卡中所采用的ATM芯片的外部接口为标准的UTOPIA总线。所以,为了实现芯片间的互联,应采用FPGA来完成IX总线和UTOPIA总线间的变换,即在IX总线端实现IX总线的SLAVE接口,在ATM端实现UTOPIA 总线的SLAVE接口。通过该FPGA逻辑控制单元可为ATM到以太帧的转换提供物理层的控制功能。FPGA逻辑控制单元的实现对于完成以太网上联卡的设计非常关键。
3.4 ATM与LVDS背板总线单元
该处理单元主要完成以太网上联卡中的网络处理器单元与背板ATM的无缝连接。由于DSLAM设备的设计核心是基于ATM技术,为了将网络处理器单元应用在基于ATM的DSLAM设备中,必须采用该处理单元来实现系统互连。
DSLAM设备系统中的其它板卡主要用于完成ATM交换以及ADSL设备的线路接口。而背板是基于LVDS总线的高速差分总线,它具有抗干扰能力。这对于高密度的DSLAM设备来说是非常重要的。实际上,上联卡就是通过ATM的物理层芯片与高速LVDS总线进行互联,从而使该板卡无缝插接在系统之中。
>4 以太网上联卡的软件设计
以太网上联卡的软件主要运行在网络处理器IXP1200中。为了方便基于网络处理器IXP1200的开发,英特尔公司特别推出了高度集成且具有强大开发能力的开发工具SDK2.0。这个开发工具包中包含有IXP1200 Developer WorkBench,是一个集成的开发工具,专门用来写符号微码,并且具有汇编器以及优化设备,还提供了一个不需要硬件的IXP1200模拟器,可支持软件模式下的仿真和调试,因而具备友好的用户接口和调试环境。
网络处理器IXP1200的软件开发主要基于两个层面,一个是高层软件,通常指运行在网络处理器IXP1200 StrongArm内核上的管理软件、路由协议软件以及所有的系统所需任务,这部分软件通常需要一个嵌入式操作系统,目前的开发主要基于Linux操作系统。另一个层面是底层软件,这部分软件主要运行于六个微引擎之上,可用于完成包的快速处理,包括包的快速转发和基本的二层协议处理等,这部分软件采用微码形式来完成,但应特别注意软件部分的代码优化,即用尽可能少的指令来完成处理。在网络处理器IXP1200中,每个微引擎提供有2k字大小的代码存储空间。此外,每个微引擎中也包含四个线程,这四个线程可构成硬件多线程。由于微引擎内部包含有大量的GPR以及SRAM、SDRAM传输寄存器,因此,在采用微线程进行相对寻址模式时,每个线程都具有自己特定的寄存器组,从而极大地加快了线程切换的速度。在IXP1200中进行微码设计有一个重要原则:即当一个线程在等待资源时,应将该线程切换出去,以让其它线程占用微引擎的处理,这样可进行快速切换,以保证各个线程都能够充分利用微引擎的处理机,而不会因为一个在等待资源线程,造成处理器的浪费。微码的组织也是按照这一原则来进行的。图4所示是高层软件的程序主流程图。高层软件的目的是完成整个硬件和软件的初始化,同时将微码程序加载到网络处理器的六个微引擎中,并启动运行。
底层软件的微码流程分为两个部分,其任务分配和以上讨论的六个微引擎的任务分配一致。它也分为两个方向,即ATM到以太网方向和以太网到ATM方向。图5所示是其微码的软件流程图。
5 结束语
本文介绍的基于网络处理器IXP1200的以太网上联卡,已经成功应用于DSLAM设备中,并解决了DSLAM设备与IP网络的高速互联问题。经过测试?本卡性能良好,系统运行稳定。
篇2:基于网络处理器IXP1200的以太网上联卡设计
基于网络处理器IXP1200的以太网上联卡设计
摘要:以太网上联卡是以ATM技术为内核的DSLAM设备中的一块板卡,DSLAM设备通过它可直接与IP网络相连,由于在进行ATM与IP转换时要消耗大量资源,因而很容易使上联卡成为整个系统的瓶颈。文章提出了一种基于网络处理器IXP1200的以太网上联卡设计方案,该方案利用IXP1200网络处理器强大的数据处理能力和高度的灵活性来实现对数据的线速处理,同时也可根据需要增加新的功能。关键词:以太网上联卡;网络处理器;ATM;以太网;微码;IXP1200
随着网络通讯技术的高速发展,宽带接入技术成了当前电信接入技术的热点。由于早期的宽带技术以ATM为核心,各大厂家提供的核心芯片和线路接口芯片都是基于ATM技术的。而数据网络主要以TCP/IP为核心,因此,为了解决ATM和TCP/IP的融合问题,就需要在DSLAM设备上提供ATM到以太网的转换。但转换过程中需要进行大量的.数据处理,因此容易产生系统瓶颈,而上联卡的设计就是为了解决在DSLAM设备中的ATM信元和以太网帧之间的高速转发问题。本文提出了一种基于网络处理器IXP1200的上联卡设计方案,并对该方案的实现过程进行了详细分析。
1 网络处理器IXP1200主要特性
网络处理器是一种硬件可编程器件,通常是一种芯片,它是专门为处理网络数据包而设计的。通过对硬件架构和指令集的优化,该网络处理器不但可提供线速处理数据包的高质量硬件功能,同时还具备极大的系统灵活性。
IXP1200是英特尔公司生产的一款高档网络处理器,也是IXA(Internet Exchange Architecture)架构的核心产品。IXP1200的内部结构如图1所示,它内含1个主频最高可达232MHz的处理核心StrongARM、6个RISC结构的可编程微引擎(每个微引擎包含4个硬件线程)、64位和最高104MHz的IX Bus、32位的SRAM接口单元(工作频率为核心频率的一半)、64位的SDRAM接口单元(工作频率为核心频率的一半)、32位和最高66MHz的PCI总线接口单元等。IXP1200通过FBI接口单元和IX Bus相连接。另外还有一套集成开发环境,可用于对微引擎进行应用开发,它支持汇编和C编程语言。
(1)StrongARM Core
通过StrongARM Core可实现CPU的主要功能,同时可启动系统、管理和控制对网络处理器的其它单元、处理微引擎无法处理的数据包和一些异常状况。
(2)微引擎
微引擎是可编程的32-bit RISC处理器,它的指令集是专门针对网络和通信应用而设计的。通过对各个线程进行编程,可单独执行数据包的转发和处理,而无需StrongARM Core干预,因而可减轻StrongARM Core的负担,特别适合高速数据的处理和转发。
(3)SDRAM单
[1] [2] [3] [4]
篇3:RAID卡・什么是处理器
RAID卡・什么是处理器
处理器描述了RAID卡核心处理芯片的名称或者说是工作速度。目前市场上销售的.RAID控制卡可以划分为两大类:一类卡上集成专门的RISC处理器――核心处理芯片,完全通过硬件实现RAID功能,被称为硬件RAID控制卡;另外一种控制卡本身不含有处理器,没有核心处理芯片,所有RAID计算全部由系统CPU来完成,被称为固件RAID控制卡。固件RAID卡的价格相对便宜一些,一般都在100美元以下。由于RAID卡所需要的运算量相对固定,因此这个参数并不太重要,并且生产RAID卡的厂商一般并不完全公布此参数。篇4:嵌入式处理器MPC8250与CF卡的接口设计
嵌入式处理器MPC8250与CF卡的接口设计
摘要:从如何设计嵌入式处理器与CF卡之间的接口、如何高效率地编制读写程序出发,介绍了嵌入式处理器与CF卡的接口设计和编程技巧。关键词:CF卡 PCI局部总线 扇区
最近几年,嵌入式处理器蓬勃发展,在通信、航空航天、医疗设备、消费类电子产品等领域一展身手。嵌入式处理器的外围设备也日新月异,例如记忆棒、USB口、CF卡等。本文从硬件和软件角度出发,介绍了CF卡在嵌入式系统中的设计和使用技巧。
由于CF卡具有携带方便、易于升级、存储量大、抗震性好等优点,应用范围越来越广。1995年10月,SanDisk、柯达、卡西欧、惠普、摩托罗拉、佳能等125家厂商发起成立了CompactFlash协会,致力于制定新一代的基于RAM和ROM技术的固态非易失的存储介质标准――CF卡标准?使不同厂家开发的CF卡及其接口器件可以互相兼容。目前,CF卡标准已有1.4版本,容量从最早的2M字节到现今的1G字节。
同时,CF卡遵从ATA-IDE工业设计标准,连接装置与 PCMCIA卡相似,只不过CF卡是50引脚(PCMCIA卡68引脚),可以很容易插入无源68引脚 TypeII适配卡并完全符合PCMCIA电力和机械接口规格。另外,CF卡的兼容性佳,不仅同时支持3.3V和5V的电压,而且不同的CF卡都可以用单一的机构读写,特别是CF卡升级换代时也可以保证旧设备的兼容性。而纯电子运动的CF卡耗电量很低,仅为IBM微型硬盘的5%。
1 系统设计
图1是笔者开发的嵌入式系统框图。其中,嵌入式处理器是MPC8250,PCI1410A是连接PCI总线和CF卡的一种接口芯片。
MPC8250芯片是Motorola公司开发的.一款PowerPC系列嵌入式处理器。芯片采用小巧而强大的32位超标量体系结构PowerPC 603e处理器内核,最高主频为300MHz。它集成了PCI桥、PCI仲裁器、存储器控制器、中断控制器、DMA控制器、16K字节指令高速缓存和16K字节数据高速缓存等部件。MPC8250具有三个可配置为百兆或十兆以太网的FCC口,四个可配置为串口或网口的SCC口,一个多通道HDLC接口。该芯片适用于对成本、空间、功耗和性能都有很高要求的应用领域,例如路由器/接线器、多路MODEM、网络存储应用和图像显示等系统。
PCI1410A芯片是TI公司开发的一种高性能的PCI到CF卡的控制器,支持遵循CF卡标准的各类CF卡。它符合PCI总线标准,既可以工作于PCI主设备模式,也可以工作于PCI从设备模式。
MPC8250与PCI1410A之间通过32位PCI局部总线连接,工作频率33MHz。MPC8250用作PCI主设备,PCI1410A用作PCI从设备,同时采用MPC8250内部的PCI仲裁器。
本设计选用SanDisk公司的型号为SDCFB-64-101的C
[1] [2] [3] [4] [5]
篇5:网络计算机中IC卡读写器子系统设计
网络计算机中IC卡读写器子系统设计
摘要:针对网络计算机安全问题,提出了一种完整的智能IC卡读写器子系统设计方案。此方案讨论了基于单片机的IC卡读写器硬件和软件设计、基于PC/SC行业规范的读写器驱动程序设计和IC卡的软硬件选取。关键词:网络计算机 安全 单片机 智能IC卡 IC卡读写器 PC/SC ISO7816
随着网络的飞速发展和计算机技术的不断进步,计算机应用模式正发生着巨大的变革。网络计算机(NC)的出现标志着计算机体系结构的革新,代表着未来计算机系统的发展方向。由于网络计算机可以采用开放源码操作系统,为发展带有自主知识产权的核心技术创造了有利条件。在开放源代码的操作系统中,Linux是一种较好的选择。它源代码公开,可以根据要求自行剪裁并且稳定,对资源要求低,有大量应用软件支持。按照网络电脑的特定需求,可以开发出具有自主智能产权的CPU,从而提高网络电脑的安全。网络电脑走的是一种网络服务器集中式管理的道路,具有成本低廉、管理费用低的优势。
为此,国家863计算机软硬件技术主题发展规划提出了以下要求:组织优势力量,研究网络计算机系统的关键技术,研制网络计算机系列产品,选择若干典型应用领域的进行应用示范,以此推动国产微处理器芯片和系统软件的发展,促进我国电子政务、网络教育、金融、社区服务、企业管理等方面的信息化建设。
随着计算机网络的迅速发展,网络计算机的安全问题显得非常突出。尤其在某些特殊领域,如电子政务等,安全问题显得极端重要。目前,在计算机安全方面,有各种不同的方法,但效果都不太好。本文提出的智能IC卡技术,在网络计算机是一种全新的方法,能够很好地实现网络计算机的安全。智能IC卡(Smart IC)具有较高的安全性,以前主要用在金融、电信等领域,笔者把此技术推广应用到网络计算机,以提高安全性。智能IC卡本身含有自行研制的COS(Chip OS)和加密算法,并采用多密钥、多加密算法体系,对所有的敏感数据文件加密保护。如图1所示。
(本网网收集整理)
IC卡子系统是整个网络计算机系统网络安全的核心,它保存了加密算法所需要的私有密钥,供加密算法对网络上传输的数据加密使用。
1 IC卡读写器硬件开发方案
IC卡作为一种信息技术可以广泛应用于许多行业领域,如金融、电信等,不同领域均有各自不同的应用特点、应用环境和应用要求。IC卡在某一领域的应用,必须适应该领域的特点。国际上有关组织及部分针对各个领域的不同要求,制定了IC卡在某一领域应用所应参考或遵循的应用标准。不过所有智能IC卡都必须符合国际标准化组织的ISO/IEC 7816国际标准。读写器的硬件也必须遵循ISO/IEC 7816国际标准。
ISO/IEC 7816标准要求IC卡与IC卡读写器使用串行通信,时序要求非常严格。常用的MCS51系列单片机速度较慢,每个指令周期需要12个机器周期,较难达到该标准所要求的严格时序。Microchip公司的PIC系列单片机采用RISC结构,每个指令周期为4个时钟周期,并且除转移指令外,所有指令都可以在一个指令周期内完成,速度较快,能够满足该标准对时序的严格要求。所以采用一片PIC16C73单片机作为IC卡读写器的控制器。
读写器与IC卡的通信,采用半双工的ISO 7916-3字符帧协议标准。3.57MHz的晶振为IC卡和读写器提供时钟。在缺省工作方式下,IC卡和读写器的通信速率为9600bps。即时钟频率为3.57MHz,每372个时钟输入或输出一个比特位。在未来需要较高通信速度时,可以在对程序作较小改动的前提下,提高晶振频率,如采用2×3.57MHz的晶振。
IC卡读写器与NC之间的通信,可以采用USB接口、并口、串口、PS/2口等多种方案。采用USB接口可以实现即插即用和热拔插等功能。但使用USB接口,电路和协议都很复杂,并且增加USB接口器件会较大地增加系统成本。并口有较高的通信速度,但通信线路较多,硬件比较复杂,可靠性不好,且IC卡读写器并不需要太高的通信速度,故使用并口也不是理想的方案。而PS/2口一般固定给键盘和鼠标等标准外设使用,使用PS/2口就会占用这些标准外设的接口,故也不在考虑范围之内。使用串口通信虽然速度慢,但却具有硬件成本低、软件实现简单、运行可靠等优点。而通信速度完全可以满足IC卡读写器的要求。所以IC卡读写器采用了RS232串口与NC主机通信的方案。
整个系统使用5V电压供电。IC卡读写器采用低功耗设计,系统电源从RS232接口的信号线上获得。RS232接口的电压为±12V,经过电源稳压器件LP2950将12V电压变为+5V,给IC卡读写器所有器件提供电源。
IC卡读写器硬件的原理框图如图2所示。
IC卡各引脚接到单片机I/O口上,由单片机对IC卡进行读写。由于PC(NC)机的RS232接口电平与单片机的逻辑电平不同,所以需要对串口信号进行电平转换。图2中
使用了电平转换器件。它把单片机的TTL逻辑电平转化为RS232接口的±12V电平,实现单片机与RS232的透明传输。转换后的信号直接接在RS232接口上。
2 IC卡读写器软件开发方案
IC卡读写器驱动程序由读写器与IC卡通信的通信程序、读写器与NC或PC通信的通信程序以及NC与读写器通信的驱动程序三部分组成。其中,NC与IC卡读写器通信的程序符合PC/SC规范,它与PC/SC规范的中间件结合,向应用程序提供符合PC/SC规范的API函数。
2.1 读写器与IC卡通信的通信程序
该通信程序采用ISO 7816-3字节协议标准编制。使用T=0,即字符协议,主要实现与IC卡的通信。由于选用的时钟为3.57MHz,在IC卡I/O口默认的9600bps通信速度下,每隔372个系统时钟脉冲,I/O状态可能变化一次。所以,为了准确读取IC卡I/O状态,在IC卡输出的每一位脉冲中间,即I/O启动186个时钟周期后,读取I/O状态。为了排除可能的干扰,在186个时钟周期的两侧再采样两点,共取样三点。三个采样点之间每两个点间隔24个时钟周期。如果三点取样值都为1,则输出为1;如果三点取样值都为0,则输出为0;如果三点取样值中有两点为1,一点为0,则输出为1;如果三点取样值中两点为0,一点为1,则输出为0。如图3所示。
2.2 读写器与NC的通信的通信程序
读写器与NC的通信程序采用异步串行口协议,双方通信先握手取得同步,然后再进行串行口通信。读写器通过串口接收NC发来的命令,并将执行结果通过串口发回。读写器与NC的通信在不影响读写器与IC卡通信的前提下完成。
2.3 NC的驱动程序
NC通信程序驻留于NC,它与读写器的通信程序通信。这个程序符合PC/SC规范。规范规定的分层模块结构见图4。
图4中的ICC就是Integrated Circuit Card,即IC卡。IFD就是Interface Devices,即IC卡读写器。IC卡插入读写器后,通过IC卡读写器IFD与NC驱动程序的IFD Handler层通信。ICC Resource Manager层管理各种不同的IC卡读写器和IC卡资源。每一种IC卡读写器通过各自的IFD Handler接口函数与ICC Resource Manager层通信,ICC Resource Manager层根据上层软件的要求,将上层软件发来的命令分别发到相应的IFD Handler,再通过它发给IC卡读写器和IC卡。而ICC-Aware Applications层对上层应用软件提供一个通用的API接口,以满足不同的应用程序对不同的IC卡和读写器的编程要求。Service Provider层介于ICC-Aware Applications层和ICC Resource Manager层之间,要吧提供文件的存取控制和驱动程序的加密通信功能。当然,在不使用加密通信功能时,也可以不用这一层。
NC的驱动程序根据规范要求,提供符合标准的IFD Handler层接口函数,其余各部分由符合规范的中间件提供。应用程序调用间件提供的API函数发送命令。中间件把应用程序发来的命令编译成动态链接库的IFD Handler接口函数发给IC卡读写器,最终发给IC卡。最后,IC卡将返回结果通过一系列相反的过程返回给应用程序。
3 Smart IC卡开发方案
IC卡芯片具有写入数据和存储数据的能力,IC卡存储器的内容根据需要可以有条件地由外部读取,以供内部信息处理的判定。根据卡中所嵌入的集成电路的`不同可以分成三类:
(1)存储器卡,卡中的集成电路为EEPROM(可以用电擦除的可编程只读存储器);
(2)逻辑加密卡,卡中的集成电路具有加密逻辑和EEPROM;
(3)CPU卡,卡中的集成电路包括中央处理器CPU、EEPROM、随机存储器RAM以及固化在只读存储器ROM中的片内操作系统COS(Chip Operating System)。
除此之外,IC卡根据读写方式不同,可分为接触式IC卡和非接触式IC卡两种。由于网络安全要求,IC卡在使用时必须一直插在读写器内。非接触IC卡由于其读写器没有专用卡座,尽管有寿命长等优点,但不适用于网络安全应用。
同时,由于CPU卡计算能力强,可以使用自己的COS操作系统,甚至使用硬件完成加密算法。而IC存储卡仅具有存储功能,安全性不如CPU卡好,的怪SNCS(Smart Network Computer System)的IC卡子系统采用接触式CPU卡。
网络计算机安全系统的IC卡设计满足标准化(国际标准)和智能化,既有安全性又有易维护性。它由硬件和软件两部分组成。
(1)硬件
采用CPU卡,它含有CPU及RAM、ROM等。具有优秀的安全性能,可能有效防止黑客对IC卡解密。
(2)软件
・通信程序
IC卡软件即COS(Chip Operating Systarm),它是智能卡芯片内的一个监控软件,用于接收和处理外界发给智能卡的各种信息,管理卡内的存储器,并给出相应的应答信息。它有IC卡与读写器的通信程序。该通信程序完成与读写设备之间的通信,必须满足7816-3字符帧协议。该协议含有T=0字符传送协议和T=1数据块传送协议。
・安全文件系统
COS文件系统与普通文件系统不同,它着重强调文件系统的安全性,除提供通常的字符流文件操作外,还提供记录文件的读写操作等。对每种不同的文件操作进行不同的访问权限保护。COS中的文件系统与上层应用软件的用户权限管理相结合,共同完成对IC卡文件的访问。由于IC卡的文件存储介质采用EEPROM,每次写文件操作时,必须对要写入的介质先进行擦除操作。
・安全机制
安全机制用于身份鉴别和IC卡与读写设备双方的认证工作及各种数据的加密、数据完整性检查等操作。每个用户IC卡上都有用户的一个私钥,服务器把用公钥加密后的数据经IC瞳用自己的私钥解密后将正确的信息通过网络送给服务器,由服务器根据解密的信息完成对用户权限的鉴别。
・加解密算法
加解密算法,用于对传入IC卡的数据进行加、解密,此外它还提供扩展接口,方便用户增加新的加密算法。
・命令解译
命令解译是COS的上层软件,它实现ISO7816-4的各种命令和CA命令。
根据串口窃电IC卡读写器设计技术思想,IC卡读写器采用低功耗元器件(PIC16C73B低功耗单片机和74LV125A等),同时采用分离元件取代MAX系列的RS232接口电路,实现了无需外接电源的串口IC卡读写器。经实验测试,整个电路功耗低于10mA,完全可以由串口提供电源。
本项目实现的串口IC卡读写器完全符合ISO7816-1/2/3标准以及PC/SC规范;软件实现采用分层结构,实现了T=0的字符传输协议。
经实验测试,读写器稳定可靠地实现IC卡复位应答、读IC卡读写器件状态字、读一个随机数据、读取IC卡序列号以及选择一个文件等操作;在计算机与IC卡之间,可以实现数据的透明传输。此IC卡子系统既可以工作在Linux平台上,也可以工作在Windows系列平台上。
篇6:网络计算机中IC卡读写器子系统设计
网络计算机中IC卡读写器子系统设计
摘要:针对网络计算机安全问题,提出了一种完整的智能IC卡读写器子系统设计方案。此方案讨论了基于单片机的IC卡读写器硬件和软件设计、基于PC/SC行业规范的读写器驱动程序设计和IC卡的软硬件选取。关键词:网络计算机 安全 单片机 智能IC卡 IC卡读写器 PC/SC ISO7816
随着网络的飞速发展和计算机技术的不断进步,计算机应用模式正发生着巨大的变革。网络计算机(NC)的出现标志着计算机体系结构的革新,代表着未来计算机系统的发展方向。由于网络计算机可以采用开放源码操作系统,为发展带有自主知识产权的核心技术创造了有利条件。在开放源代码的操作系统中,Linux是一种较好的选择。它源代码公开,可以根据要求自行剪裁并且稳定,对资源要求低,有大量应用软件支持。按照网络电脑的特定需求,可以开发出具有自主智能产权的CPU,从而提高网络电脑的安全。网络电脑走的是一种网络服务器集中式管理的道路,具有成本低廉、管理费用低的优势。
为此,国家863计算机软硬件技术主题发展规划提出了以下要求:组织优势力量,研究网络计算机系统的关键技术,研制网络计算机系列产品,选择若干典型应用领域的进行应用示范,以此推动国产微处理器芯片和系统软件的发展,促进我国电子政务、网络教育、金融、社区服务、企业管理等方面的'信息化建设。
随着计算机网络的迅速发展,网络计算机的安全问题显得非常突出。尤其在某些特殊领域,如电子政务等,安全问题显得极端重要。目前,在计算机安全方面,有各种不同的方法,但效果都不太好。本文提出的智能IC卡技术,在网络计算机是一种全新的方法,能够很好地实现网络计算机的安全。智能IC卡(Smart IC)具有较高的安全性,以前主要用在金融、电信等领域,笔者把此技术推广应用到网络计算机,以提高安全性。智能IC卡本身含有自行研制的COS(Chip OS)和加密算法,并采用多密钥、多加密算法体系,对所有的敏感数据文件加密保护。如图1所示。
IC卡子系统是整个网络计
[1] [2] [3] [4] [5]
篇7:网络处理器软件开发模型的研究
摘要:网络处理器的高速处理和灵活的可编程性,使它成为当今网络中数据处理的有效解决方案。本文深入探讨网络处理器的软件开发模型。首先,介绍Intel IXP2400网络处理器硬件结构和软件开发平台,然后给出基于网络处理器的路由转发系统的设计实例,阐述网络处理器开发的关键环节,最后提出网络处理器软件开发所面临的主要问题和挑战。
关键词:网络处理器 软件开发模型 微引擎 微模块 核心组件
引言
随着当今网络规模和性能迅速增长,Internet主干网络流量的指数性增长及新业务接连的出现,这就要求网络设备具有线速和智能的处理能力。网络处理器NP(Network Processor)便是一种新兴、有效的统一解决方案。它适用于各层网络处理,具有ASIC高速处理性能和可编程特性,既能保证系统灵活性,又能完成线速处理数据包所要求的高性能硬件功能。目前,网络处理器已经涌现出了一些成功的应用范例。这些应用主要包括:基于网络处理器的路由交换设备、智能安全设备和入侵检测设备等。比如,北京联想使用IBM的PowerNP构成了电信级的防火墙设备。与此同时,围绕着网络处理器应用展开的相关研究也得到了飞速发展,一些企业和科研机构也给予了足够重视。例如,Intel专门投资支持全球100所大学进行网络处理器及其相关应用的研究。
由于网络处理器特殊的体系结构,它的软件编程模型与传统网络应用/嵌入式应用开发有较大不同,更为复杂。本文将以Intel IXP2400网络处理器为例,对网络处理器软件开发模型进行较为详细地探讨。
1 网络处理器硬件架构
在一般程序设计中,可以不考虑操作系统和编译程序、线程调度的细节、寄存器的数量和容量,而在网络处理器的程序设计中,忽略这些因素就不能编写出优化的程序。在对网络处理器,尤其是微引擎编程之前,需要仔细了解网络处理器的系统结构和硬件平台。下面以Intel的IXP2400为例来说明。
IXP2400网络处理器是Intel在推出的第二代互联网交换架构(IXA)网络处理器。其中,IXP2400是面向中高端应用的网络处理器,可用于实现OC-48的网络路由交换设备。
(本网网收集整理)
Intel的IXP2400网络处理器结构允分体现了SoC(System on Chip)的思想。如图1所示,它的内部主要包括8个完全可编程的4线程微引擎(Mev2)和1个XScale核。此外,还有用于连接外部MAC设备的MSF单元、连接各种存储器和总线的接口单元等。这些单元通过内部的高速数据总线和控制总线彼些协作。
XScale核(core)是ARM系列处理器的一种,它在IXP2400中起控制和管理作用。具体包括:对系统初始化;提供系统的时钟;建立并管理路由表;提供一个对应于IXP2400各寄存器、存储器和外部存储器的地址映射表等。XScale核在系统启动时,从BootROM开始执行引导程序,对整个IXP2400系统进行初始化。
IXP2400中的每一个微引擎其它就是一个32位RISC处理器,可以由4个并行硬件线程共享。数据包的接收、处理和发送等任务,均由微引擎中的各线程并行执行微引擎指令存储区中的微代码程序来完成。网络处理器数据的高速转发正是因为充分利用了硬件的并行性,来弥补线速转发中的内存访问的延迟。
IXP2400嵌在开发板的中心,周围通过数据线连接着各种设备,如SRAM,SDRAM等。SDRMA主要用来存放需要处理和转发的数据包等,也作为XScale核的内存;SRAM主要存放对数据包包头进行处理所需的重要信息和数据包的队列描述等内容。通过IXP2400的数据单元是一个64字节的MAC包(MPKT),在每收到一个包的时候,MAC将一个数据分成若干个MPKT,MPKT就是网络处理器处理数据的单位。
综上所述,IXP2400拥有网络处理的一般特点,从系统角度看,IXP2400属于一个并行式的多算是器共享总线的计算机系统。对于网络处理器的程序设计和一般计算机的程序设计有很大不同。
篇8:网络处理器软件开发模型的研究
网络设备性能和可编程能力最终由运行在网络处理器平台上的软件决定,其中,选择何种编程模式是关键。评价网络处理器编程模式有两个基本准则:一个是编程模式所能涉及的层,即哪些功能能够编程以及编程能达到的层;另一个重要方面就是处理器衬淫的编程模型。由于网络处理器平台服务于软件功能需要,所以编程方法的关键是在不牺牲设备性能的前提下,使用成熟技术和现有软件模式,保证产品的可靠性,加快开发速度。
基于运行在核心处理器和协处理器的不同硬件之上,网络处理器可分成数据平面与控制平台。
数据平面主要运行在微引擎处理之上,是实现输入端口和输出端口间高速转发数据包的处理功能,具有线速执行特点,并充分利用数据包的无关性,采取并行处理方式。控制平面一般运行在网络处理器核上,处理路由表更新、管理数据平面任务与状态、完成高层的QoS控制等。这些操作的性能要求低于
数据层面,因此通常采用高性能通用处理器硬件平台。为了有效支持网络处理功能,控制平面与数据平面之间存在复杂的信息交互与依赖关系。
IXP2400的软件开发也分为内核程序和微代码两部分。XScale内核的开发通常可以使用基于ARM平台嵌入式操作系统开发工具链,如WindRiver公司的Tornado或基于GNU的Linux工具链等;另一部分是对微引擎的编程,这部分使用Intel公司提供的Developer Workbench开发环境,主要使用微代码来进行编程。Developer Workbench提供了完善的编译、链接、仿真和调试功能。为了方便开发人员开发,消除平面之间通信等一些细节,Intel提供了它的网络处理器开发模型,称为IXA可移植框架(portability framework)如图2所示。
Intel IXA可移植框架中最重要的组成部分就是在微引擎上和XScale核上开发的代码模型。基于不同硬件上开发的代码模块分别为微模块(microblock)和核心组件(core component)。每一个模块都代表了一个进行包处理的代码单元。这里实际上引入了构件的思想,开发人员将各种模块以一定的顺序组织在一起,组成一个特定的应用。下面分别对框架中的各个层次进行讨论。
(1)微模块
数据平面的微引擎在逻辑上分成一个或多个微模块(microblock)。每一个微模块都是一个宏或者一个微引擎或由Intel提供的一些底层库写成的函数。微模块之间彼此独立,这些就提高了代码的可重用性,同时也简化了微引擎手代码的编写。微引擎与Intel XScale核共享一部分内存,大部分网络包的处理都通过微引擎来进行,一些例外的包将传递给Intel XScale核心组件来处理。微模块从功能上一般包括与一些高层协议相关包的处理微模块和与硬件紧密相关的微模块。前者包括IPv4转发、网桥、网络地址转换(NAT)等;后者包括包的接收和发送模块及分组队列管理模块等。
(2)核心组件
核心组件(Core Component)运行在XScale核上,实现了相关微模块的配置、管理和例外处理等工作。一个核心组件可能管理着多于一个微模块。具体来讲,核心组件主要完成以下一些功能:配置微模块(通过引入变量的静态配置和控制模块的动态配置);初始化维护一些可能被其它应用程序修改的数据结构;提供了一个例外处理和控制消息处理机制来处理微模块发送过来的包和消息。
(3)微引擎数据平面优化库
微引擎数据平面优化库(optimized microengine data plane library)包括一些底层的微引擎宏指令和用微引擎的特殊C语言写的函数库,用来编写微模块和一些微引擎的代码。这些为是经过Intel优化的,非常高效,代码的占用小,同时也是非常底层的。库主要包含三信方面:对处理器硬件单元的操作,比如对微引擎内部的本地内存(local memory)、临界区(critical sections)操作等;协议头的解析函数,如IPv4、IPv6协议等;哈希单元的查找,CRC等。
(4)微模块基本设施库
微模块基本设施库(microblocks infrastructure library)提供了访问暂存包描述符的API,Dispatch Loop的实现是通过它来完成的。一个Dispatch Loop将运行在一个微引擎内部线程之间的多个微模块组成一个microblock组。关键的地方是,Dispatch Loop提供了一种多个微模块之间高效共享包的描述符、包头信息等重要数据结构的方式,实现了多个微模块间的数据传递。Dispatch Loop也提供了向其它Dispatch Loop也提供了向其它Dispatch Loop和XScale核之间发送和接收包的接口。
(5)资源管理库
资源管理库(resource management library)是XScale核的一个软件组件,它向内核提供了微引擎的API,比如硬件的资源管理接口,大大简化了硬件初始化的任务,配置和资源的共享;微模块与核心组件之间的通信API,开发者屏蔽了微引擎与XScale核之间通道的一些细节。
(6)核心组件基本设施库
核心组件基本设施库(core components infrastructurelibrary)为XScale核心组件设计和构造提供了一些底层的API,同时也提供了组件之间传递包和消息的机制。其于核心组件基本设施库的一个核心组件一般都要包含以下函数:1个初始化函数;1个结束函数;1个或多个包的处理名句柄;1个或多个消息处理句柄。
(7)操作系统服务层
操作系统服务层(operating system services layer)对运行在XScale核上的代码提供了一个抽象层。开发人员编写的XScale核心运行代码包括资源管理库。应该利用这一层,而不是直接去利用操作系统提供的API,从而提高系统的可移植性。OSSL主要提供了以下几类接口:线程管理、同步原语、互斥操作、定时器、内存管理和消息日志。
(8)控制平面平台开发工具包
控制平面的PDK(Platform Development
Kit)为XScale核心组件与运行控制平面的.软件之间提供了接口。它所提供的API编程接口现在是符合国际网络处理器论坛(NPF)提出的标准的,各种控制平面的网络协议栈和用它可以很方便的集成进来。
3 网络处理器应用实例
利用Intel IXA可移植框架来实现Intel IXP2400的一个简单路由转发系统。数据分组在IXP2400中的流动过程如下:以太网MAC器件接收数据,放入MSD单元的接收缓存当中,向微引擎发出信号,表示数据已经收到,微引擎将接收缓存中数据传输到SDRAM,微引擎通过对MSF总线单元的访问命令将前几个字节(分组头)传送到传输寄存器中,微引擎对分组的以太网头进行修改,而将数据分组写入发送队列,然后通知MSF单元将数据分组传送给适当的MAC器件。图3所示为典型路由器应用系统中的数据流。
在图3所示的处理转发结构中,每一个模块代表一个微模块。发送和接收模块和MSF硬件紧密相关。处理器芯片的MSF总线接口单元中有一对BUFFER,即输入BUFFER和输出BUFFER,分别用作接收和发送的缓冲区。开发者通过用这些相应的硬件寄存器,硬件设备可自动进行相应的转发处理。
图3
接收线程将自己的信息写入MSF的FREELIST单元控制豁口,其中包括了线程号、微引擎号与存放接收控制字(RSW)的寄存器地址,等待MSF的信号将数据从RBUFFER中移入SDRAM。发送微模块要选择并等待一个有效的TBUFFER,再将数据从SDRAM中移入TBUFFER,并写入相应的控制寄存器,标识分组要发送的端口,分组的发送由TSM硬件自动完成。
在中间处理包的各个模块中,代码首先从便存储器(SCRATCHPAD MEMORY)中将接收线程放入的包信息取出,进行以太网头的有效性验证,根据IP头的信息查找路由表,将以太网头更新。其中每一个处理都是由一个微模块来实现的。各个模块合在一起构成了一个Dispatch Loop,各个模块在便存储器中共享包描述符信息,其中dlNextBlock全局变量为下一个处理微模块的标识。Dispatch Loop的部分代码如下(简略)。
while(1){
dl_source(); //从接收线程取下包描述符
if(dlBufHandle= =0){ //dlBufHandle是Dispatch
//Loop维护的一个全局变量
continue;
}
Ethernet_validate();//验证这个包是一个有效的以太网头
Ethernet_strip_header();//去掉以太网头
Ipv4_five_tuple_class();//进行IPv4 classifier的转发
If(dlNextBlock= =IX_DROP){//clNextBlock也是全局变量,表示下一个
Goto drop; //跳转到丢弃包的处理模块
}
Ethernet_add_header();//添加新的以太网头
D1_sink(); //将处理后的包描述符放入发送缓冲区中
Drop:
Dl_BufDrop(dlBufHandle); //丢弃包的处理
}
Intel IXP2400开发平台中,微代码的源文件是*.uc格式的,经过预处理生成*.ucp的中间文件,进而进行汇编生成*.list汇编文件。微引擎程序的连接器将汇编程序的多个输出文件转变成一个可下载的微程序映像(image)。缺省情况下,连接器生成的微代码映像文件的扩展名为uof。连接器也可以生成C结构的程序格式,这样的输出文件与内核程序一起进行编译和连接。
Intel提供的资源管理库中,对微引擎部分的函数提供了接口,可以将uof文件当作Flash文件系统的一个普通文件进行处理。在内核代码初始化时,将uof文件读入内存,然后加载。但是如果要作成最终产品时,Intel推荐采用.c格式的文件,并直接链入到所开发的内核工程中。
【基于网络处理器IXP1200的以太网上联卡设计】相关文章:
1.凡卡教学设计
10.网络设计师级上午考试真题






文档为doc格式