摘要 芯片MPC8280的主频最高为450 MHz,仅靠运转在其上的软件虽可完结路由交流功用,但交流容量仅约为40 Mbit·s-1,无法满意多路千兆交流功能要求。运用MPC8280的PCI口外接千兆交流芯片BCM56514,能打破这一功能瓶颈。依据MPC8280的PCI驱动,使得MPC8280经过PCI却婵占涠列床僮鳌⑴渲每占涠列床僮骱I/O空间的读写操作,并完结对BCM56514的装备、操控及路由表的更新,从而使MPC8280在路由交流范畴得以运用。
近年来,多媒体通讯技能运用迅猛发展,对网速的要求也敏捷提高。为习惯这一趋势,与网络相关的终端设备和路由交流设备的功能均亟需提高。在当今中国,核算机作为网络终端设备,网口的标配速率已由100 Mbit·s-1改为1 000 Mbit·s-1,交流机、路由器等作为路由交流设备,交流容量量级也由本来100 Mbit·s-1上升到1 000 Mbit·s-1乃至10 Gbit·s-1。MPC8280是由Freescale公司推出的双地址总线双处理器芯片,自其推出以来,因其丰厚的外围接口已在航空航天、通讯电子、医疗器械、交通设施等范畴得到广泛运用,然而在今天火急需求的大容量路由交流范畴,却因其最高主频为450 MHz的约束,依托运转在MPC8280上的软件扣除中止处理、体系管理等开支外,完结的交流容量仅为40 Mbit·s-1,在多路千兆交流运用中存在功能瓶颈。运用MPC8280的PCI口外接千兆交流芯片BCM56514,使得运转在MPC8280上的软件仅作路由核算和路由表的保护,而将交流操控交由BCM56514完结,可打破功能瓶颈。完结PCI驱动规划是这一办法能得以施行的先决条件,MPC8280经过PCI内存空间读写操作、装备空间读写操作和I/O空间读写操作,完结对交流芯片的装备、操控及路由表的更新,从而使MPC 8280在大容量路由交流范畴得到老练运用。
1 PCI常识介绍
PCI为Peripheral Component Interconnect的缩写,是一种总线标准,用于外围设备互联。现在运用2.2版别的PCI标准。主要由时钟信号(PCI_CLK)、操控信号 (FRAME、IRDY、DEVSEL、TRADY、STOP、IDSEL)、地址数据复用信号AD[31:0]及校验和过错指示信号(SERR、PERR)构成。地址和数据信号可扩展到64 bit,时钟信号常用33 MHz,可扩展到66 MHz,速率可达528 MByte/s。选用分段分层结构,其总线拓扑结构如图1所示。
2 PCI驱动规划
PCI驱动经过装备寄存器,完结总线初始化,并供给PCI装备空间读写、PCI内存空间读写、PCI I/O空间读写和中止函数接口。上层运用运用这些操作接口发现外部交流芯片,并能获取交流芯片信息,完结对外接交流芯片的装备管理、路由表更新、状况回读等操作,终究完结PCI驱动规划。
2.1 PCI驱动流程规划
首要经过设置寄存器,使芯片跳出PCI重启状况,接着依据体系的地址分配对Outbound和Inbound寄存器组进行装备,然后对PCI运用的字节序、过错状况和Master形式进行装备,最终使能PCI内存空间读写和装备空间读写。运用UML的活动图对PCI驱动流程规划建模如图2所示。
2.2 装备空间读写规划
指令依照必定的数据格局优先写到CONFIG_ADDR寄存器,然后经过向CONFIG_DATA寄存器填入数据,完结写操作,或从CONFIG_DATA读出数据,完结读操作。不管CONFIG_ADDR寄存器的数据是否需求改动,每次操作都必须先对CONFIC_ADDR寄存器操作,然后才可对CONF%&&&&&%_DATA寄存器操作,不然操作无效。指令数据格局如图3所示。
装备空间操作时,地址译码进程如下:例如Device Number为0b01011时,对应的十进制数为11,则Bit[31:11]中的Bit11置1,其他Bit为0,此刻在硬件大将IDSEL信号连接到Bit11的PCI设备将被选中;若Device Number为0b01100时,对应的十进制数为12,则Bit[31:11]中的Bit12置1,其他Bit为0,此刻在硬件大将IDSEL信号连接到Bit12的PCI设备将被选中;Device Number的特别界说如下;0b01010将选定Bit[31];0b11111将履行特别操作;0b00000将对PCI桥本身进行操作。译码成果的格局如图4所示。
共有两种操作类型:了ype 0操作和Type1操作。Type0操作适用于方针设备和PCI桥在同一总线上,PCI桥直接依据从上层总线接收到指令中的Device Number进行地址译码,并将Bit[31:11]数据中对应的Bit置1,Bit[1:0]设置成0x00,在PCI总线装备操作的地址时段,将译码成果发送到PCI总线的AD[31:0]上。
Type1操作适用于方针设备和PCI桥不在同一总线上,需经过PCI桥将完好的数据持续向下传递。当PCI桥在装备空间操作的地址时隙从AD[31:0]收到指令时,判别方针设备是否在其担任的规模内,若不在,将不处理。若在,则将AD[31:0]的数据和PCI_C/_BE完好的向下传递;若发现方针设备为本层设备,将操作变为Type0操作,选中方针设备。
2.3 内存空间读写规划
MPC8280的PCI内存读写分为MPC8280自动建议的PCI内存空间读写和MPC8280被迫引起的PCI内存空间读写。在进行PCI内存空间读写时,需地址译码。
MPC8280自动建议的PCI内存空间读写,MPC8280侧地址译码流程如图5所示。先对操作地址进行判别,若落在MPC8280的内部存储器映射寄存器(IMMR)规模内,接着就需判别是否落在PCI寄存器,依据判别成果决议是否对PCI寄存器进行操作或不做处理。若不是落在MPC8280的IMMR规模,需判读是否落在PCI OutBound空间,若落于PCI OutBound空间,则需依据寄存器的装备,对地址进行译码,并将译码后的成果在地址时隙被发送到PCI总线的地址管脚,若未落在PCI OutBound空间,却落于PCIBR0或PCIBR1寄存器界说的规模内,则将地址直接经过地址时隙发送至PCI总线的地址管脚。