1 引 言
PowerPC是1993年IBM,Apple和Motorola公司(其半导体部门现在分拆为Freescale公司)联盟的共同设计的。
PowerPC技术以RISC(精简指令集计算机)为基础,该技术由IBM的POWER(性能优化的增强RISC)体系结构而来。因PowerPC芯片具有高性能和低功耗的特点,主要应用在嵌入式系统。MPC7410是新一代G4处理器,通过加入AltiVec技术,处理能力达到4G FLOPS,而1.8 V的低电压操作大大降低了芯片的功耗,提高了系统的稳定性。MPC7410内部主频最高为500 MHz,每个时钟周期最多可以执行8条指令,其中包括4条矢量运算(AltiVec)指令和2条整型指令。系统采用MPC7410为核心处理器搭建嵌入式系统硬件平台。利用Tsi107芯片组的PCI接口连接以太网。网口是系统非常重要的通信接口,通常情况下操作系统映像的下载以及与外界的通信都是通过以太网口进行的。文中介绍了以太网接口硬件设计和VxWorks BSP的开发。
2 系统结构概述
整个系统结构框图如图1所示。
在系统中使用了Motorola公司的RISC处理器PowerPC7410作为核心处理器,该处理器具有高性能和低功耗的特点,外接一个2 MB L2作为二级缓存,以提高运算速度。以Tundra公司为PowerPC专门设计的桥芯片/存储器控制器Tsi107作为北桥芯片,利用60X总线和MPC7410相接,用以把60X总线信号转化为PCI总线信号,并管理FLASH和SDRAM。此设计充分利用60X总线高数据传输速率和优秀的连接性能,发挥了MPC7410的高可靠性和强大的处理能力,使该硬件平台具有很高的性能。
3 Tsi107的PCI接口
Tsi107的PCI接口与PCI 2.1规范兼容。使用一个32位地址/数据复用线。在PCI总线和处理器或本地memory之间提供内部缓冲。处理器读和写操作分别有1个32 B缓冲,memory操作具有2个32 B读缓冲和2个32 B写缓冲。PCI总线使用中央仲裁方式,每一个master都有它自己的请求()和获得()信号。可通过一个简单的请求——获得握手获得总线的控制权。仲裁在前一个访问时发生,故不会占用PCI总线的周期。
Tsi107为自身和另外最多5个PCI总线master提供总线仲裁逻辑,可通过设置PCI仲裁控制寄存器(PACR)的位15决定是否使能(置为1)或禁止(置为0)片内PCI仲裁器。在复位信号()为高时采集SDMA9以确定片内PCI仲裁器被使能(低)或禁止(高)。
片内PCI仲裁器使用一个可编程的、两级、round-robin仲裁算数逻辑,5个外部master的每一个,加上Tsi107使用PACR中的适当位被编成2个优先级,高或低。低优先级组在高优先级组中共同占用一个总线请求传输通道。系统中如果有N个高优先级设备和M个低优先级设备,则每一个高优先级设备最少会得到总线传输,每个低优先级的设备最少会得到总线传输。
4 地址映射关系
根据Tsi107在电路中所起的作用它的工作方式可以分为2种,host mode和agent mode。在host mode,PowerPC是整个板子的主CPU,Tsi107管理整个系统的Memory和PCI总线。在agent mode,PowerPC系统是一个PCI设备,Tsi107负责和PCI主桥通信,管理这个PCI设备局部的memory。整个PowerPC系统受PCI主桥管理。在本系统中Tsi107工作在host mode。Tsi107在host mode时可采用2种地址映射方式,map A和map B。在复位时通过地址映射配置引脚SDBA0选择地址映射方式。如果Tsi107工作在host mode并且SDBA0上拉,则Tsi107使用map B。建议不使用map A,使用map B时,PowerPC和PCI的地址映射关系如表1所示。
5 网口部分设计
网口部分的设计基于芯片组Tsi107控制的PCI总线,基本框图如图2。
网口部分主要由Intel 82559,网络隔离变压器和RJ4S接口3部分组成。82559是一个高集成度、高性能、低功耗的10/100 Mb/s快速以太网控制器,符合LON设计规范。物理尺寸只有15 mm×15 mm,是一款高性价比芯片。82559有完整的PCI接口,既可作主设备又可作从设备,在系统上电对其进行配置时只能作为从设备,正常工作后可作为主设备。32位的PCI控制器使82559在PCI总线上执行高速的数据传输。并且PCI控制器可处理通信任务,因而减轻CPU的负担。82559包含一个传输FIFO和一个接收FIFO,大小各为3 kB,在等待总线传输时可防止数据的流失。这将使82559利用最小的帧间距传送数据。82559可工作在全双工和半双工模式。82559连接一个E2PROM,E2PROM为硬件和软件提供上电初始化。在82559芯片上集成了MAC(介质访问子层)和PHY(物理层)的功能,通过片上的命令和状态寄存器经由PCI总线和PowerPC通信。H1102是一个网络隔离变压器,82559通过网络隔离变压器驱动RJ45网线接口,用来支持10/100BASE-T,实现与外界通信。
6 以太网的VxWorks BSP的开发
BSP即Board Support Package,板级支持包,是对目标系统的底层支持软件。对于具体的硬件平台,与硬件相关的代码都被封装在BSP中,由BSP向上提供虚拟的硬件平台,BSP与操作系统通过定义好的接口进行交互。BSP是所有与硬件相关的代码体的集合,是介于底层硬件和上层操作系统之间的一层,主要目的是为了支持操作系统,使之能够更好地运行于硬件系统。以下介绍了网口的VxWorks BSP的开发方法。
6.1 Tsi107的PCI接口的寄存器初始化
对Tsi107的PCI接口的寄存器初始化主要是对PCI命令寄存器,PCI状态寄存器,PCI仲裁控制寄存器等和PCI相关的寄存器设置。因用户手册上对各寄存器的参数进行了详细的说明,在此将不再赘述。
Tsi107中的32位配置寄存器地址是0x8000_00nn,nn是寄存器的相对偏移地址。对配置寄存器的访问采用间接方式,将配置寄存器的地址写到CONFIG_ADDR端口,则配置寄存器的内容将在CONFIG_DATA端口获得。CONFIG_ADDR端口的地址为:0xFEC0_0000~0xFEDF_FFFC,CONFIG_DATA端口的地址为0xFEE0_0000~0xFEEF_FFFF。
6.2 82559的PCI接口的寄存器初始化
对Tsi107的PCI接口的寄存器初始化包括对PCI命令寄存器,PCI状态寄存器,Cache行大小(CLS)寄存器等寄存器的设置,以便能够找到PCI设备82559,使PowerPC能够对该设备进行访问。
PCI定义了3个地址空间:PCI memory空间,PCII/O空间和PCI配置空间。PCI memory空间,PCI I/O空间采用直接访问。PCI支持2种类型的配置访问,type 0和type 1。AD[31:0]信号表示地址时根据配置访问的类型使用不同的形式,地址的低两位表明配置访问的类型——type 0(AD[1:0]=0b00)或type 1(AD[1:0]=0b01)。2种地址形式都表明了一个具体的设备和该设备的一个具体的配置寄存器。type 0用于在本地PCI总线上选择一个设备,type 1通过一个PCI-to-PCI桥传递配置请求到另一个PCI总线。系统采用type 0配置,如图3所示。
为访问配置空间,必须向CONFIG_ADDR寄存器写入一个32位的值,用于定义目标PCI总线、该总线上的目标设备和设备中要访问的配置寄存器。对CONFIG_DATA寄存器的一个读或写操作将使主桥将该访问转化为一个PCI配置周期(CONFIG_ADDR中的使能位被设置并且设备编号不是Ob1_1111)。
对于map B,处理器可在地址空间0xFEC0_0000~0xFEDF_FFFF中使用任何地址访问CONFIG_ADDR寄存器。尽管系统可以使用0xFEC0_0000~0xFEDF_FFFF中的任何地址,但一般使用地址0xFEC0_0CF8。为简化CONFIG_ADDR的地址通常被称为CF8。处理器可在地址空间0xFEE0_0000~0xFEEF_FFFF中的任何地址访问CONFIG_DATA寄存器。最常用的地址为0xFEE0_0CFC~0xFEE0_0CFF。为简化起见,一般指为CFC。
对于type 0配置,Tsi107把CONFIG_ADDR寄存器的设备编号转化为惟一的IDSEL信号,它们之间有一一对应的关系。功能编号和寄存器编号将不加改变的复制到AD[10:2],AD[1:0]在type 0配置时为0b00。
6.3 中断的实现
Tsi107的EPIC(可编程中断控制单元)支持5个外部中断。IRQ[0:4]信号代表了外部中断,它们被5个IRQ向量/优先级寄存器(IVPR0-IVPR4)控制和初始化。外部中断可被设置为电平或边沿触发。软件通过对向量/优先级寄存器的写操作为每一个中断源设置优先级,优先级的值在0~15之间,15最高。EPIC单元通过INT向处理器核申请中断。当处理器通过对EPIC单元中的中断响应寄存器(IACK)进行读操作以响应中断请求时,EPIC返回一个8位的中断向量到处理器,然后处理器处理该中断。处理器对EPIC单元的结束中断(EOI)寄存器进行写操作时,中断处理完成。
对EPIC的初始化主要是设置各中断源的优先级和中断向量的设置。包括对特征报告寄存器(FRR)、全局配置寄存器(GCR)、伪向量寄存器(SVR)、外部和内部中断寄存器等的设置。
7 结 语
搭建以MPC7410为核心处理器的嵌入式系统硬件平台,阐述以太网接口硬件设计和VxWorks BSP的设计方法,使以太网接口在系统中能正常通信。