刘 冰,孙爱中
(中航工业西安航空计算技术研究所 第6 研究室,陕西 西安 710068)
当前,数据处理系统要求处理器内核运算速度快并具有强大的数据吞吐量,PowerPC 是IBM 和Motorola 公司共同开发的高性能、低功耗32 位RISC 处理器[1],与其配套最多的总线标准是VME 总线[2],其具有高性能、并行性、实时性和高可靠性等特点,与32 位微处理器的接口灵活。鉴于此,文中设计了一种基于PowerPC755 配有VME总线的单板计算机,满足现代武器装备的需求。
PowerPC 单板计算机可广泛用于信号数据处理,系统结构如图1 所示。PowerPC 单板计算机作为LBE总线的主设备,通过LBE 总线与从机1 和MBI 模块互连,通过VME 总线与信号处理机通讯[3-5]。
图1 信号处理系统框图
PowerPC 单板计算机系统[6-9]结构框图如图2所示。
硬件电路设计包括监控电路、时钟电路、电压转换电路、处理器电路、MPC107 桥控制器、存储器电路、定时器电路、中断电路、接口电路和控制逻辑电路。
监控电路由FPGA 和MAX791 实现。主要功能包括电源监控功能,复位功能和看门狗功能。主机板模块复位包括:软复位、主机板复位、系统复位和加电复位。其中,软复位由写特殊端口产生;加电复位是由MAX791 监视电源,在VCC>4.65 V 后产生一个长度为200 ms 的复位脉冲;主机板复位和系统复位由主机板不同的复位按钮产生。其中系统复位来自机箱面板的RSTIN*信号;LBE 总线通过LRES* 信号复位接口板、从机1 板;主机板复位还要通过主机板的RESET*信号复位接口板的主机资源。主板可通过写VME 接口控制寄存器的方法产生VME-SYSRESET 信号。
实现软件运行轨迹的可靠性,处理机核心部件提供看门狗电路,定时周期0.1 s(50 nF 电容)。看门狗电路由硬件实现,在地面调试状态下自动禁止,但可用软件设置使能/禁止。在实时状态下自动使能,当看门狗有效后产生中断,点亮本模块的故障灯。
图2 PowerPC 单板计算机系统结构框图
总线超时电路用于处理器访问过程中LBE 总线周期超时故障的恢复,该电路由硬件实现,总线超时后产生中断,点亮本模块的故障指示灯。
PowerPC 模块需要提供时钟信号供MPC107,VME总线接口电路,以太网接口电路,串口使用,为减少时钟种类,提高系统工作可靠性,将32 MHz 作为基本时钟,该时钟提供给MPC107 使用,在MPC107 内部经锁相环倍频后产生64 MHz 时钟分别供CPU 和FPGA 使用,MPC107 提供3 路32 MHz 的PCI 时钟分别供FPGA,以太网和VME 总线接口芯片使用,在FPGA 内部将32 MHz 时钟分频为16 MHz 时钟供FPGA 内部串口逻辑使用。25 MHz 时钟供以太网接口电路使用。高频时钟信号在源端串接22 Ω 电阻。
PowerPC 模块上的电源要求为MPC755 内核电压为2.0 V,允许偏差为5%;PowerPC 接口电压为3.3 V;MPC107,FPGA 内核电压为2.5 V,允许偏差5%,接口电压为3.3 V;其他芯片均为5 V 或3.3 V。2.0 V、2.5 V和3.3 V 的电源变换电路用DC-DC 变换器JW1083 实现。
PowerPC 模块采用MPC755,芯片的最高工作主频为350 MHz,核心频率设定为256 MHz。PowerPC 通过桥接器MPC107 访问板内资源。主要集成以下功能块:超标量处理器、32 kB 指令Cache 和32 kB 数据Cache、1 MB 的L2Cache 接口、128 位宽内部数据通道,64 位系统数据总线和L2Cache 总线、32 位地址线、64位数据线、整型数据类型有8,16 和32 位、浮点数据类型有32 和64 位。
MPC755 的主要特性有:每指令周期可以从指令Cache 中取4 条指令;每时钟周期可以开始两条指令执行;每时钟周期可同时6 条指令执行;大多数指令周期为单周期指令。MPC755 有在系统测试和调试特性,JTAG 接口可通过相应的硬件工具来测试数据处理。
MPC107 PCI 桥接器/集成存储器控制器提供MPC6XX,MPC7XX,MPC74XX 处理器到PCI 总线的接口。MPC107 提供功能有:一个高性能的存储器控制器,双处理器的支持,双通道DMA 控制器,一个中断控制器,一路I2O 消息控制器,一路I2C 接口和一个时钟锁相环电路。MPC107 内部有配置寄存器,配置寄存器基地址为0xFEC00000。
MPC107 主要特性:存储器接口是32 位或64 位数据宽度,频率66 MHz,支持SDRAM、8 位,32 位,64 位BOOTROM、支持数据校验,读、更改、写,ECC;处理器接口是处理器总线66 MHz,支持第二个处理器、支持MPC6XX,MPC7XX,MPC74XX 处理器、支持存储器一致性、32 位或64 位数据宽度,32 位地址;PCI 接口兼容PCI2.1 规范,32 位PCI 接口,操作频率可达33 MHz,提供5 个PCI 设备的仲裁电路,有校验支持;还有2 通道DMA 控制器、消息管理单元、I2C 控制器、可编程中断控制器、集成PCI,SDRAM 时钟产生、可编程存储器和PCI 总线驱动。
CPU 模块上设计有8 位BOOT Flash 存储器、64 位SDRAM 存储器、64 位Flash。CPU 模块上MPC107 内部实现PowerPC 存储器控制器,提供地址译码、数据处理周期访问时序、SDRAM 时钟等来访问存储器。通过控制MPC107 内部的一些寄存器来完成这些功能。
PowerPC 模块提供64 位宽度的64 MB 的SDRAM。SDRAM 采 用4 片WED146S8030A 实 现,供 电 电 压3.3 V,时钟频率100 MHz。
MPC107 内置 SDRAM 存储器控制器,提供SDRAM 的时序控制逻辑,并可提供SDRAM 的访问时钟,时钟频率设计为66 MHz。PowerPC 和PCI 主设备均可访问SDRAM。地址空间位于存储器的低端0x0000000—0x03FFFFFF。访问方式及时序控制可控制MPC107 内部的寄存器来实现。
启动Flash 采用容量为4 MB,按8 位工作方式访问,芯片采用SM29LV256 实现,工作电压为3.3 V。支持整片擦写,扇区写保护等。每个扇区支持100 000次的擦写周期。Flash 操作按Byte 方式来访问和操作。启动Flash 地址分配在存储空间的高端,地址空间为FFC00000H ~FFFFFFFFH。用于PowerPC 模块的启动,启动Flash 上驻留启动程序,BIT 测试程序,Flash在板编程程序和操作系统。
Flash 由8 片16 位存储器组成,芯片采用国威公司生产的SM29LV256 实现,工作电压3.3 V,设计容量256 MB。支持整片擦写,扇区写保护等。每个扇区支持100 000 次的擦写周期,Flash 操作按64 位操作。Flash 存储器用于用户程序的储存。NVSRAM 容量32 kB,数据宽度8 位,芯片采用STK14C88-5C45M实现。
MPC107 提供4 路32 位计数器,在定时器计数减至零时产生中断,可用于系统定时或产生周期总断。计数器工作时钟为MPC107 供SDRAM 的输入时钟的1/8,精度±50×10-6;计数器0 保留作为系统时钟,其余3路计数器用作用户时钟,定时范围为121 ns ~515 s。
PowerPC 模块上的中断控制器由MPC107 内部集成的可编程中断控制单元(EPIC)实现,该中断控制器采用OpenPIC 体系结构实现,支持16 级串行中断。中断控制器可根据中断源的特点设置中断的优先级和电平有效方式,中断的优先级可以通过软件进行设置。
接口电路包括以太网通信接口电路、RS232 接口电路、LBE 总线接口和VME 总线接口电路。
PowerPC 模块提供1 路10/100 MB 以太网接口,采用Intel82551 芯片实现。接口采用RJ45 头双绞线。10 MB 以太网双绞线接口最大传输距离为185 m。100 MB以太网双绞线接口最大传输距离为100 m。以太网地址存于Flash 中,通过软件可以进行以太网地址的设定。
两路RS232 接口电路采用FPGA 逻辑实现,8 位数据宽度,按8 位方式访问。提供两路RS232 串行通讯接口,串行接口的工作时钟采用3.686 4 MHz,两路串行接口采用三线制传输,用于与开发平台的通讯,最大速率115 kbit·s-1。
LBE 总线接口采用PCI 总线实现,16 位读写访问,在FPGA 中设计实现PCI-LBE 桥逻辑,实现PowerPC模块对LBE 总线其他从设备的访问。当LBE总线访问超时(超时周期3.840 μs),报总线超时中断。
模块采用Universe II 接口芯片实现VME 总线接口,Universe II 主要特性包括:实现32 位,33 MHz PCI总线接口、内部集成大容量FIFO、提供可编程的DMA控制器、60 ~70 MBit·s-1的VME 总线传输速率、完全的VME 总线地址和数据传输模式、功能强大的寄存器集、可编程PCI 总线和VME 总线访问、完全VME 总线系统控制器功能、地址监视器功能和Auto-ID。Universe II提供VME 总线超时定时器,当VME 总线超时,报VXBERR 有效,结束当前VME 总线访问。在FPGA 内部设计实现VME 总线接口访问超时中断,当访问周期超过16 μs,则总线超时中断有效,点亮故障灯。
控制逻辑由FPGA 实现,采用Xilinx 公司的XQV300 芯片。主要实现以下逻辑控制功能:串行中断控制逻辑、复位逻辑、看门狗控制逻辑、访问Flash 存储器逻辑、访问串口控制逻辑、离散量端口控制逻辑、RS232 异步通信逻辑、LBE 总线接口逻辑。
系统软件是系统硬件与应用软件之间的桥梁,其为应用程序的开发提供支持。PowerPC 模块系统软件包括系统引导程序,VxWorks 实时操作系统,在板编程程序,PUBIT 以及硬件驱动程序等。
硬件系统通电后首先执行引导程序,引导程序根据离散量GSE#状态,判断显示维护菜单,或者启动应用程序,根据离散量DISin0 状态,判断加载0#区应用程序或加载1#区应用程序。
系统加电后在启动操作系统之前,首先运行加电BIT(PUBIT),对硬件资源进行检测。PUBIT 只包含产品的检测,检测结果存放于NVSRAM 中,应用程序可通过函数读到PUBIT 的结果。用户产品的硬件检测在应用程序中完成,通过读取系统软件提供的PUBIT结果,应用程序可以获得整个硬件资源的检测信息。
在板编程完成将程序或数据固化到Flash 存储器的功能,在板编程可通过串口实现。在板编程模块由两部分程序组成,分别驻留在为目标机和宿主机上,目标机上的程序完成固化数据的接收,Flash 存储器的数据的写入,固化后数据的校验,Flash 测试代码和的计算;该部分程序事先固化到系统中,当系统处于编程状态时,启动它运行。宿主机上的程序完成固化文件参数的读取和固化数据的发送工作。
操作系统配置的功能包括:提供标准C/C++支持;提供文件系统以及标准输入输出支持;提供硬件初始化、信号量、消息队列、例外处理等系统内核功能支持;提供系统缓冲区、双向链表以及环型缓冲区等管理支持;提供网络接口的WDB 调试支持;提供核心硬件管理功能,包括系统存储器、Cache、时钟、浮点运算、网络接口等的支持;提供多任务调度管理功能。
设备驱动程序分为两类:一类是操作系统工作必须的硬件资源的设备驱动软件(BSP),这些驱动程序必须与操作系统捆绑在一起,由操作系统统一管理;另一类是系统中其他硬件资源的驱动软件,这些程序独立于操作系统,以硬件支持库的形式提供用户调用。属于第一类的驱动包括时钟驱动、中断控制器驱动、串行调试通讯接口驱动、网络接口驱动等;属于第二类的驱动包括Flash 存储器读写驱动,VME 总线驱动程序,IO 模块驱动程序等。为保证程序的可移植性和兼容性,需保持底层驱动函数接口保持不变。
本文介绍了基于PowerPC755 芯片的单板计算机。以PowerPC 755 处理器为核心电路,MPC107 为桥芯片,其他功能选用标准接口,高集成度芯片实现,内部总线采用标准32 位PCI 总线接口,底板总线接口采用标准VME 总线接口,LBE 总线接口。结构简单、可靠性高,提高系统整体性能和性价比,有较好的继承性以及维护方便等特点。
[1] Motorola.MPC750 RISC microprocessor family user's mannual[M].USA:Motorola,2001.
[2] Cypress Semiconductor.VME bus interface handbook[M].USA:Cypress Semiconductor,2001.
[3] Tundra Semiconductor Corporation.TSI107 powerPC host bridge user manual[M].MA USA:Tundra Semiconductor Corporation,2003.
[4] 刘栋,余传松.Intel 系列微处理器应用于VME 系统的研究[C].北京:第九届全国核电子与核探测技术学术会,1999.
[5] 陈海荣.基于双核PowerPC 处理器的高性能计算模块设计[J].计算机测量与控制,2011,19(11):2824-2826.
[6] 刘丽君,贺占庄,李灏.基于PowerPC 的嵌入式系统硬件设计[J].计算机技术与发展,2008,18(2):251-253.
[7] 赵竹君,孙未.基于PowerPC 的嵌入式系统设计[J].现代电子技术,2007(9):33-35.
[8] 曹永红.基于PowerPC 的高速信号处理板设计[J].声学与电子工程,2005(4):37-39.
[9] 王长清,岑凡,蔡惠智.基于PowerPC 架构多核处理器嵌入式系统硬件设计[J].微计算机信息,2010(17):6-7.