PowerPC

2024-06-22

PowerPC(共7篇)

PowerPC 篇1

1 系统设计

硬件部分的设计主要以CPU和系统控制器为核心,通过各种接口总线连接外围部件。具体的原理框图如图1所示:

显示控制器采用ATI公司的显示芯片,分别安装在系统控制器的两条PCI总线上。

系统软件全部采用源代码可控的软件。一方面获得开源软件的技术积累,另一方面也方便修改和定制。整个软件系统的结构如图2。

Linux操作系统优点不再赘述。这里主要利用其图形功能。

XOrg是X Window System的官方参考实现。它是开放源代码的自由软件。

在本文中,图形显示系统基于Xorg构建。Xorg继承了XFree86的优点,同时又因跨平台兼容性强,硬件支持面广而被业界普遍采用。而正因为如此,各大显卡芯片厂商也相继推出了对应与Xorg的图形显示驱动,部分芯片还开放了驱动程序的源代码。另外,本文讨论的是一个多屏系统,而Xorg本身对多屏显示的支持是不错的。这也更有利于完成我们的研究计划。

2 关键技术

2.1 驱动程序及相关软件

2.1.1 显卡BIOS的作用

显卡BIOS固化在显示卡所带的一个专用存储器里。其中储存了显示卡的硬件控制程序和相关信息。显卡BIOS功能相当于主板BIOS对电脑的作用,它主要设定了显卡的一些参数、工作方式等等。此时时显卡能够按照事先设定好的程序进行工作,帮助显卡在没有驱动的情况下也能显示图像。

举个例子来说,我们经常听到有人通过刷新显卡BIOS的方式使显卡超频工作,其实就是修改了存储在显卡BIOS中的芯片最初的工作频率数值。

在X86平台上,一般显示卡只要正确地插在主板上就能开始工作,所以可以形象地说它是最典型的即插即用设备。开机后显示卡BIOS中的数据被映射到内存里并控制整个显卡的工作。在DOS下显示卡是不需要任何驱动程序的,Windows,Linux进入到图形界面时也依赖于显示卡BIOS的支持。无论从哪个角度来说,显卡BIOS在显卡的工作工程中发挥了非常重要的作用。

2.1.2 PowerPC上的BIOS

前面说过,显卡BIOS最初的设计就是为X86平台专用的。所以显卡BIOS的二进制代码也是只能被X86架构的cpu直接读懂。那么,PowerPC上应该如何利用BIOS里的信息来完成更多的工作呢?

要让PowerPC能够使用X86指令编写的BIOS代码,就需要一套机制来读懂BIOS内容,清楚BIOS执行过程中主机与显卡之间的交互,最后使显卡处于一个稳定完整的状态,并以此作为显卡最原始阶段的初始化驱动。这套过程需要的不仅仅是读取,更多的需要去理解指令所做的操作具体作用是什么,从而移植为当前需要的代码。

整个流程看起来大致如图3所示:

当然,仅仅有翻译指令的代码是不够的,因为BIOS代码中还有一些I/O指令,甚至一些中断操作。如何将X86的I/O指令完美的与Linux自身所带的X86虚拟I/O地址空间结合起来就需要更多的技术来实现。

同时,我们不能忘记了寄存器操作。因此在这里,合适的虚拟出一套机制,完成用PowerPC内存映射x86 CPU内部通用寄存器,段寄存器等等也是一定要做的事情。

我们分别用C语言完成了加减乘除、逻辑运算、堆栈操作这些基础指令集的功能,

每当我们从BIOS里读到一条指令,就在我们的X86虚拟机里执行一条前面代码示例中的一条对应的C函数代码,完成对应的寄存器、存储器和IO操作,从而完成了初始化工作。

除去少量细节部分的注意,当上面有提到的部分都处理完成的时候。我们就能够理解和“执行”BIOS代码了。完成了这些事情,这时候我们得到了一张被“处理过”的显卡。显卡芯片、显存等等一些与硬件系统紧密相关的设置都不用再去重置了。需要值得提醒的一点是,大家熟悉的同步,垂直刷新的相关工作数值。此时并不一定需要初始化好,当然这部分代码可以由BIOS来完成,也有一部分系统将这部分工作由显示控制程序来做。

2.1.3 多屏系统与PowerPC

上面分析了我们在执行显卡初始化部分的一些机制和难点。如果需要的仅仅是一张显卡,那么这些就已经够了。然而在一个多屏系统中,我们需要两张甚至三张,四张显卡,这时候情况就不一样了。

因为硬件地址译码窗口对齐大小的关系及传统X86 BIOS的做法局限,显卡I/O地址空间往往被局限在一个很小的范围内,这个范围一般是64K(0x0-0xffff)。当处于不同系统PCI总线窗口的各个显卡需要的I/O地址空间出现了重叠(这个问题在某些体系结构的处理器平台上并不存在),而最终却需要映射到不同的PCI物理I/O空间,出现了地址复用的问题。

在讨论我们的解决方法之前,我们先谈谈Linux中对IO系统的处理方式。

X86体系结构的CPU为外设专门实现了一个单独地地址空间,称为“I/O地址空间”或者“I/O端口空间”。这是一个与CPU地RAM物理地址空间不同的地址空间,所有外设的I/O端口均在这一空间中进行编址。CPU通过设立专门的I/O指令(如X86的IN和OUT指令)来访问这一空间中的地址单元(也即I/O端口)。这就是所谓的“I/O映射方式”(I/O-mapped)。与RAM物理地址空间相比,I/O地址空间通常都比较小,如X86 CPU的I/O空间就只有64KB(0-0xffff)。显然这是“I/O映射方式”的一个主要缺点。

PowerPC体系结构的CPU只实现一个物理地址空间,即RAM。在这种情况下,外设I/O端口的物理地址就被映射到CPU的单一物理地址空间中,而成为内存的一部分。此时,CPU可以象访问一个内存单元那样访问外设I/O端口,而不需要设立专门的外设I/O指令。这就是所谓的“内存映射方式”(Memory-mapped)。

那么如何解决上面提到的重叠问题呢?从原理上来说,我们为Linux的memroy映射I/O方式提供了另外一条路,即增加一条映射路径。从而解决了显卡I/O空间重叠时,BIOS的初始化方法。这个方法看起来大致是这样的(图4):

上述这种方法可以解决这种重叠问题,当我们的Xorg在多块显卡上跑起来时,我们做了一些截屏。如图5:

2.2 多屏显示中的触摸屏

2.2.1 优点

在我们的系统中,考虑到由于分辨率大,显示器多,鼠标来回移动会比较麻烦。在在这种特殊需求下,我们考虑加入触摸屏设计。通过触摸屏的控制,能够减轻对鼠标的依赖,方便快速的完成一些简单的操作,比如点击按钮,选中目标等。

在这里对加入触摸屏的优点稍微提一下。信息技术和自动化技术的高速发展使得直接人机交互过程越来越重要,触摸屏技术正是为了满足这种需求而产生的。触摸屏是一种最新的电脑输入设备,它可以让使用者只用手指轻轻地碰计算机显示屏上的图符或文字,就能实现对主机的操作,这样摆脱了键盘和鼠标操作,使人与机交互更为直截了当。它具有坚固耐用、反应速度快、节省空间、易于交流等许多优点。触摸屏是集信息显示、处理、通信和控制于一体的综合信息系统,在工程控制和商业服务等领域都有大量的应用。从大型飞行器的控制,到人们手中的手机,都可以看到它的身影。

2.2.2 实现方式及难点分析

我们的设计思路是一个触摸屏对应一个显示器。所以,如果是三个显示器,则加入三个触摸屏的设计。

既然是多屏系统,多触摸屏的设计,那么多个触摸屏在同一个图形系统中的工作需要协调。触摸屏驱动程序需要能够支持多屏协同工作,这就涉及到对不同硬件事件的处理及图形系统的坐标翻译问题。同时,该驱动程序还要能够模拟双击,拖动,交换左右键等动作。

另外,由于当前大部分触摸屏驱动程序并没有为我们的硬件系统设计,要将驱动程序移植到PowerPC上,需要一定的移植调试工作。

3 性能分析

3.1 屏幕数量

到目前为止,我们已经验证过三屏显示系统。该系统通过两块显卡的三路输出接口,成功完成三路输出不同却又是统一桌面的图形系统。整个系统由一套鼠标键盘控制。鼠标能够在三个显示器上来回移动,键盘则根据屏幕焦点来确定输入对象。从连续的角度看来,应该是下面这种样子(图6):

3.2 绘制性能

在开启扩展桌面显示功能后,我们对多屏显示系统的2D、3D性能做了全面的测试。测试结果如表1。

我们重复绘制一副图像多次。根据整个过程的绘制时间来判断性能高低。很显然,耗费时间越少,绘制性能越高。

从结果中对比单屏和三屏的现实性能,三屏系统明显耗费时间更多。可以想象,多屏系统因为扩展了分辨率,增加了显示面积,耗费了更多显存等原因,性能较单屏系统应该会有所下降。这个结果虽然令我们难过,却也在情理之中。然而,无意中测试到的另一些数据却引起了我们的注意。也许你已经发现,在三屏中第三个屏绘制图像的性能明显好过其他两个屏,甚至好过单屏的性能。这是为什么呢?

我前面讲过,我们的三屏系统是由两块显卡搭建而成的,第一块显卡双输出,分别输出到第一个和第二个屏,第二块显卡输出到第三个屏。如果图形测试跑在第二块显示卡上的时候,所带来的性能提高。我们分析认为,这主要是由于第二块显卡在图形系统中处于副显示卡的角色,从而负载相比主显示卡比较轻,所以性能相对更好。毕竟,主显示卡还要为FrameBuffer模式预留一些资源,还要显示更多的桌面控件等等,这些都会导致性能的浪费。无论如何,我们发现的这个结果不失为一种提高显示卡工作性能的方法,可以作为一些对显示性能有较高要求的特殊系统一种设计思路。

3.3 功能支持

通过本文描述方法搭建出来的多屏系统。功能支持非常完成。除了对3D性能支持不是很好之外,该系统能够全面支持Xorg的各种2D加速及扩展功能。包括XAA,EXA,硬件光标,帧缓冲模式,OpenGL图形库...等等。

在各扩展功能支持全面的基础上,我们的多屏系统在分辨率方面,相对单屏系统,有着无可比拟的优势。以目前的三屏系统为例,已经实现了4800×1200的分辨率(如图7),这种分辨率在单屏系统中很难实现,即使显示控制器支持,显示器也很难达到要求。

多屏系统的解决方案采用将屏幕分割的思路,在多个显示器上实现统一桌面,既方便了应用程序开发和使用,也增加了显示面积,不可不谓一箭双雕。

4 应用前景

针对于当前计算机领域日益增大的显示性能需求,本文中描述的思路主要用于在基于国产化硬件平台上研究如何增强图形显示的综合性能,如何扩展更多实用的显示功能。多屏领域是今后图形显示方面一个比较重要的方向,在高性能显示设备,显示控制设备方面有着较大的市场前景。

参考文献

[1]Jonathan Corbet:Linux设备驱动程序[M].北京:中国电力出版社,1991.

[2]Daniel P.Bovet and Marco Cesati:深入理解Linux内核[M].北京:中国电力出版社,1989.

[3]Karim Yaghmour:构建嵌入式Linux[M].北京:中国电力出版社,2009.

PowerPC 篇2

近年来, 随着远程预警探测雷达的规模越来越大, 集成的设备越来越多, 快速准确地收集和分析各工作单元工作是否正常就成为现实的需求。利用嵌入式技术对相应的设备工作参数进行采集, 一方面可以及时了解各工作单元的工作状态, 另一方面也可将采集的参数集中送至主控单元, 为主控单元做出控制命令提供参考依据。

2 系统硬件构成

电路设计上, 选用Freescale公司的Qorl Q P2020为主控芯片, 配置系统的各个参数, 由于系统要与雷达的多个工作单元进行数据交互, 为了减少接口芯片的种类, 采用FPGA来进行接口的衔接。

(1) Qorl Q P2020芯片介绍。P2020处理器基于45nm技术低功耗平台, 最高主频可达1.2G Hz。每个处理器包含两个e500 Power Architecture核心与外设, 可以实现通过网口在线下载并烧写操作系统和应用程序, 并通过以太网固化和更新Power PC程序, P2020凭借其低功耗设计及单线程高性能, 非常适合雷达数据采集控制层面的应用。

(2) FPGA芯片介绍。FPGA作为一种专用集成电路, 解决了定制电路的不足, 又克服了原有可编程器件门电路数量有限的缺点, 芯片编程配置灵活, 开发周期短, 系统简单, 具有集成度高、体积小、功耗低、高速I/O端口多、可在线系统编程等优点。在此选用Xilinx公司的XC7K325T。

(3) 底层数据采集。大型雷达需要采集的数据众多, 且考虑到兼容性, 我们通过多种方式来采集现场数据:通过RS232/RS422、TTL、IIC, 光纤、以太网直接进行数据采集, 系统的总体设计框图如图1所示。整套硬件设备可在单板中设计实现。

(4) 数据存储。对于数据存储, 由于系统实时采集各工作模块工作状态数据, 数据量不大, 且系统收到数据之后统一打包处理发送给主控单元, 并不会有太长的时间延时, 故数据存储只需要进行缓存, 我们采用FIFO对数据进行存储。

FIFO的本质, 其实就是一种特殊的双口RAM, 通过编程实现的FPGA内部有可用的双口RAM资源, 利用FPGA强大的内部资源, 在FPGA内部编写程序集成FIFO。XC7K325T内部具有16020Kb的Block RAM, 可以提供足够的双口RAM资源。本系统为了使代码模块共用, 减少开发的工作量, 取最大深度的FIFO进行统一设计, FIFO深度为2K*16bits。

(5) 光纤接口设计。Xilinx公司在其XC7K325T中最多集成了16路高速GTX, 为了方便用户对GTX的使用, Xilinx公司提供了一个对GTX进行Wrapper的IP core, 其名称是transceivers IP, 本系统采用起始号 (4字节) +功能号 (4字节) +数据 (128字节) +校验 (2字节) +结束号 (4字节) 的简化数据包模式进行远程数据的采集。

(6) IIC接口设计。IIC总线是双向、两线、串行、多主控接口标准, 具有总线仲裁机制, 本系统为了提高系统的集成度, 将IIC控制器嵌入FPGA内, 系统设计把控制器从逻辑上分成两个状态机, 分别为命令状态机和时序状态机, 其中, 命令状态机用于管理IIC总线上的命令状态, 并实现IIC总线读写操作命令状态的转移过程;时序状态机用于实现IIC总线启动、停止、读、写、确认等命令的具体时序关系。

3 FPGA与P2020通信

FPGA完成系统与外部接口的通信功能, 而P2020负责与主控进行数据交互, FPGA在其采集到数据后, 通过localbus将按协议打包好的数据发送给P2020, localbus采用数据/地址线复用的形式, 通过Buffer进行驱动和隔离, 采用16bits宽度, 本设计中采用Motorola CPU总线架构, 即大端模式。

4 软件设计

本系统软件设计的操作系统采用Wind River公司的Vx Works6.5版本。软件设计的主要工作是Vx Works操作系统BSP的设计实现。它的主要功能为屏蔽硬件, 提供操作系统的驱动及硬件驱动。Wind River公司在集成开发环境Work Bench中提供了许多典型设计的BSP软件包, 设计人员只需要在这些BSP上进行针对修改即可。本设计根据需要, 驱动程序设计包括NOR FLASH驱动、以太网接口驱动和Rapid IO接口驱动, 因不是本文讨论重点, 不再一一赘述。

5 结语

本文设计了一种对雷达各工作单元进行数据采集、运行状态及故障监视系统, 将Power PC引入系统应用中, 实现对雷达运行状态的实时监测, 其强大的数据通信、处理功能, 为大型雷达各设备工作状态的监控提供了有力保障。同时, 采用FPGA进行外部接口互连设计, 能够很好的对未来雷达设备的扩充提供兼容设计, 该设计具有硬件可裁减、可扩充、可升级、软件在线可编程的特点, 使得设计的系统在规模、功耗、体积上有很大的优势。经测试表明, 该设计能实时准确的采集远程数据, 运行稳定可靠, 满足了设计的技术指标, 效果良好。

参考文献

[1]付雪, 卜雄洙, 沈碧云.基于FPGA的高速数据采集存储系统的设计与实现[J].仪表技术, 2013 (12) :6-9.

PowerPC 篇3

基于静态配置数据存储器(SRAM)工艺的FPGA器件,在系统掉电后其内部配置数据将丢失,所以,一般不同的FPGA芯片都有相应的Flash PROMs或Compact Flash卡用来配置它。或者,在含有微处理芯片(MPC)的系统中,也可以使用微处理器产生配置时序,将配置数据置入FPGA中。以上2种方法,都只能限制于本地的配置,不能实现远程的配置。

本文提出了一种实时灵活远距离的配置FPGA的方法,此方法通过网络传送配置数据给微处理器,再通过微处理器产生配置时序来配置FPGA器件。这样,就实现了远距离灵活配置FPGA,配置时只需要通过网络传送控制转换操作。

1 总体设计方案与设计原理

首先利用Xilinx公司的ISE软件平台得到功能电路设计的逻辑代码,再使用Impact软件生成FPGA器件可以识别配置的比特流文件。该比特流文件通过网络传送到嵌入式系统并存储在DDR内存中,再由微处理芯片(Motorola MPC8540)控制通用输入输出口(GPIO)产生相应的时序,将比特流文件以一定位流方式导入到FPGA配置寄存器中,从而实现远程对FPGA的配置操作。

1.1 FPGA配置模式

Xilinx公司提供的Virtex-II Pro系列芯片的配置模式有:Slave-serial mode、Master-serial mode、Slave SelectMAP mode、Master SelectMAP mode、Boundary-Scan mode (IEEE 1532)。在Master-serial模式下,FPGA通过自己产生的配置时钟信号(CCLK)自动地从外部存储器下载比特流配置文件。Master-serial 模式下配置接口非常简单,只需要一根串行数据线(DIN)和2个控制信号(ΙΝΙΤ¯和DONE),FPGA在每个配置时钟CCLK的上升沿从DIN读入数据。而Slave-serial模式和Master-serial模式最大的区别在于,Slave-serial模式的配置时钟信号(CCLK)是由外部提供的。另外在Slave SelectMAP 模式、Master SelectMAP 模式下,FPGA每个时钟读取的数据宽度为1个字节而不是bit,所以当需要很高的配置速度时,一般选用这2种方式。Boundary-Scan(边界扫描模式)也是1种串行编程模式。来自电缆、微处理器或其他器件的外部逻辑被用来驱动特定的JTAG引脚:测试数据输入(TDI)、测试模式选择(TMS)和测试时钟(TCK)。在这种模式下,每个TCK载入1个bit的数据。

基于本系统的整体需求,Slave-serial配置过程中的时序逻辑易于控制和实现,对MPC管脚资源的消耗也小于SelectMAP模式,因此本系统设计就采用了Slave-serial配置模式。

1.2 配置文件

常见的几种FPGA配置文件有:bit文件、rbt文件、hex文件;PROM格式文件有:Intel MCS-86(mcs文件)、Tektronix TEKHEX(tek文件)和Motorola EXOR-macs(exo文件)。

bit文件是表征逻辑设计的二进制格式文件,它包括文件头和配置数据,一般情况下用于JTAG模式的配置,其中头文件中数据用于辅助配置,不包含功能逻辑代码。rbt文件其实就是用ASCII码表示的bit文件,它与bit文件的唯一区别在于,rbt文件的形式是用ASCII码,而bit文件的形式是二进制数。hex文件是一种ASCII码表征的格式文件,它的每一个16进制位代表了bit文件中的4个连续的二进制数,它主要应用于以处理器为基础的配置应用中[1]。

比较各种生成的文件格式,MCS文件是ASCII格式文件,文件方便于通过文本编辑器修改,适合于设计应用,因此本系统设计中采用MCS文件进行比特流文件的生成。提取配置文件时只关心包含设计逻辑代码的比特流信息,而对于文件格式参数设置等信息在此系统配置模式下是不需要的,应该予以剔除。

1.3 网络传输协议(改进的TFTP协议)

本系统中网络传输的功能是将Internet作为传输配置数据的媒体,并用嵌入式微控制器的程序存储器存储这些数据。

在本系统的设计中,使用基于UDP的TFTP协议通过网络传输配置文件,TFTP的基本通信过程为:客户端向服务器发出读或写请求;如果服务器接收读写请求,正式的数据传输开始,每段数据长度固定为512字节;长度小于512字节的数据段标志传输结束。

但是这种TFTP协议是一个简单文件传输协议,不具有复杂的交互存取接口和认证机制,不提供用户名和密码验证。为了保证和提高系统的安全性,本系统提出了一种为TFTP协议增加验证密码的机制。

2 系统方案实现

2.1 硬件电路设计

系统主要由网络传输部分与配置时序控制部分2大部分组成,使用的器件主要包括了MPC8540作为嵌入式系统芯片,FPGA采用了Xilinx公司的Virtex-II Pro XC2VP20芯片。系统首先通过网络接口,将比特流数据导入本地端,由于网络下载数据的时序同加载Virtex-II Pro FPGA的时序不满足同步要求,因此先将数据导入到本地端的储存器,再通过配置时序控制部分生成与FPGA同步的时序,然后将配置数据和MPC8540产生的控制信号按照FPGA时序要求逐步导入到FPGA中。同时,FPGA的状态信号ΙΝΙΤ¯和DONE输出到MPC8540的通用输入输出口,以MPC8540进行本地端的控制,所有的配置信号必须满足第2.2小节中所叙述的时序关系。

由于系统使用了PCI8501嵌入式系统,其中已经实现了MPC8540与网络通信的功能,具体的网络接口设计电路可以查看相关的PCI8501用户手册和文档,这里不再赘述。MPC8540将从网上接受到的配置文件存储本地端,再产生相应的配置时序对FPGA进行配置。下面详细介绍MPC8540与FPGA之间的接口电路。由于FPGA芯片选择(Slave-serial mode)被动串行配置方式,所以模式选择信号引脚(mode pins)(M2:M0)应拉高。MPC8540与FPGA的配置接口主要包括:1根串行数据线DIN,1根时钟线(CCLK),3根控制信号线。数据通过DIN在每个CCLK的上升沿读入FPGA。其电路示意图如图1所示。

2.2 软件设计

系统中需要设计的软件主要是针对MPC8540的操作。MPC8540的主要功能如下:

① 通过网络接口读取配置数据,存储到系统内存中;② 产生CCLK时钟脉冲;③ 产生配置时序,配置FPGA。

根据功能需求,MPC8540的软件部分主要分为2大部分,一部分为接受网络传输数据的接口子程序,另一部分为产生FPGA配置时序的接口子程序。

网络接口部分的程序需要完成的工作是使MPC8540能通过有密码验证功能的TFTP协议到本地主机上下载所需的文件。这里重点介绍对TFTP协议安全性方面的改进工作。

TFTP 协议允许在报文后面附加一些数据选项。这些数据选项主要用来协商传送数据块的大小和超时等待时间等信息。TFTP协议不提供用户名和密码验证。本系统将用户密码存储在数据选项字段中。添加用户密码的TFTP 写请求报文的格式如表1所示[2]。

MPC8540(嵌入式系统)和本地主机通过以太网连接在一起, 在MPC8540上运行的是TFTP服务器程序,在本地主机上运行TFTP 客户端程序。当用户对MPC8540传输配置数据时,TFTP客户端软件首先将用户密码存储在TFTP 写请求报文的选项字段中,并以值为0的一个字节数据作为结尾,然后将写请求报文发送给MPC8540。MPC8540收到这个TFTP写请求报文后,首先判断TFTP写请求报文的选项字段中是否包含以0结尾的数据,即是否包含密码。如果不包含密码则返回一个差错报文。如包含密码,则判断密码是否正确,如不正确,则返回一个差错报文。TFTP客户端在收到差错报文后,就会停止TFTP数据报文的发送。如果密码正确,则返回一个UNS报文,TFTP客户端收到UNS报文后,会开始发送TFTP数据报文。用这种方法可以防止非法用户对嵌入式系统进行远程控制。

下面介绍FPGA接口部分的程序,由于系统FPGA选用了Slave-serial模式,Slave-serial模式加载的总体流程如下:

① 加电:当FPGA上电后,其内部的状态机都被复位,并准备好后续的操作。这时,ΡRΟΜ¯ΙΝΙΤ¯和信号被FPGA置低。

② 器件初始化:器件上电完成后,其内部的配置存储器也同样需要复位操作。当器件完成这一操作后,它会使信号ΡRΟΜ¯ΙΝΙΤ¯先后置高。如果用户希望器件一直保持此状态,只需要使ΡRΟΜ¯ΙΝΙΤ¯信号中的任意一个拉低即可。

③ 数据加载:数据加载开始的标志是ΙΝΙΤ¯信号被FPGA置高。ΙΝΙΤ¯信号置高后,FPGA读入模式选择信号(mode pins)(M2:M0)的值,Slave-serial模式下(M2,M1,M0)的值为[111]。在这一阶段中,FPGA在外部时钟信号CCLK的上升沿,从管脚DIN读入一个比特的数据。

④ 器件启动:当FPGA下载完所有的配置数据后,就进入到器件启动(Start Up)阶段。Start-Up是从配置态到运行态的一个过渡带。在默认的情况下,当DONE信号被置高,配置实际上还没有结束,需要再经过4个CCLK周期才能完全结束。一般情况下,最佳的工程实现方案是读取完所有的配置数据后,再采样DONE信号的值[3]。

Slave Serial 模式加载时序如图2所示,系统加载时各种配置信号必须满足下面时序关系,否则配置工作无法正常完成。

在程序开始时,需要初始化MPC的GPIO是为了避免在FPGA启动瞬间发生数据总线的互相干扰。ΡRΟΜ¯保持低电平约20 μs,当能超过500 μs,同时FPGA的ΙΝΙΤ¯输出低,可以通过MPC强制拉低来实现无限制的延时。数据传输过程中,如果数据在FPGA内CRC校验出错,会通过ΙΝΙΤ¯管脚输出低电平来指示。

3 结束语

本技术已经在3G无线基站中实用。本方法实现了通过网络实时灵活地配置FPGA,使系统具有了很强的适应能力,能够因需求的变化而及时地配置FPGA来满足需求。而且FPGA的被动配置方式具有线路简单,易于实现等优点,有很强的通用性。相信这样一种灵活高效的配置方式会在将来得到更广泛的应用。

参考文献

[1]胡修林,席向涛,张蕴玉.嵌入式系统中FPGA的被动串行配置方式[J].单片机与嵌入式系统应用,2004(3):21-23.

[2]姜春霞,张文艳.基于以太网的嵌入式系统远程配置TFTP协议安全性改进[J].东北电力技术,2006(1):47-49.

PowerPC 篇4

Cache, 同时与主存的映射采用了组相联映像。虽然对程序员来说Cache是透明的, 但是对物理层和数据链路层设计者, 甚至对较高层软件开发者而言, 有必要搞清Cache的结构与运作原理。

1 Cache基本结构

如同虚拟存储器中将虚存空间和主存空间机械等分成相同大小的页一样, 在高速缓冲存储器中把Cache和主存机械等分成相同大小的块, 每一块由若干个字组成。

MPC8245内部数据Cache和指令Cache结构相同, 如图1所示。

如图1所示, MPC8245内部16K的Cache被配置成128组, 每组有4个块, 而每块则包含:32字节, 2个状态位和地址标签。这里Power Pc结构定义“块”作为一个与主存的交换单元 (Cache Line) , 为了加快调块速度, 采用多体交叉存储器时, 一个主存周期内由主存所能访问到的字数应等于每块的容量。对MPC8245来说可以同时打开4个内存页, 64位操作时突发Burst传输为4拍, Cache与主存交换数据则以32字节为单元。

2 Cache映像

Cache与主存的映像方式主要有3种

A.全相联映射方式

B.直接映射方式

C.组相联映射方式

MPC8245的Cache与主存采用组相联映射方式, 它与主存映像的规则如图2。

Cache的容量、块的大小、映象方式、替换策略以及程序执行中地址流的分布情况均影响Cache命中率。一般来说, Cache容量越大则命中率越高, 但当容量达到一定程度后, 容量的增加对命中率的改善并不大;Cache块容量加大, 命中率也明显增加, 但过犹不及, 增加到一定值之后反而出现命中率下降的现象;直接映象法命中率比较低, 全相联方式命中率比较高, 在组相联方式中, 组数分得越多, 则命中率下降。

全相联映射方式特点是主存中任意的一块都可以装入到Cache内的任意一个块, 直接映像方式特点主存按照Cache大小分区, 每个区内各个块只能一一对应到Cache相应位置。

相比之下, MPC8245采用了组相联映射方式, 该方式介于全相联映射和直接映射之间。如图2所示, 各组之间是直接映像, 组内各块间是全相联映像。比如说, 主存的第0组只能进入Cache的第0组, 而第1组只能进入Cache的第1组;而主存组内的各个块, 如主存的0、1、2、3和8、9、10、11块可进入Cache的第0、1、2、3中任意一块, 但不能进入Cache的4、5、6、7块。使用组相联方式降低了块冲突的概率, 也提高了Cache空间的利用率。

3 Cache操作

相对于MPC8245的处理器核而言, Cache的容量是主存的, 但是不独立编址。全硬件实现Cache与主存的数据交换, 同样替换调度算法也有专门的硬件来实现。MPC8245采用LRU近期最少使用 (LRU) 算法替换算法。

MPC8245的内部分立的Cache主要操作方式是Write-back和Write-through两种方式相结合。Write-back写回法:数据暂时只写入Cache, 用标志注明, 直到该页内容需从Cache中替换出来时, 才一次写入主存。速度快, 但是由于读操作可能引发写操作, 因此存在数据不一致隐患。Write-through写直达法:数据在写入Cahce时也同时写入主存, Cache写操作即为主存写操作, 速度慢, 对写操作来说没有起到高速缓存的作用。但是主存内容与Cache内容始终保持一致。MPC8245采用上述2种方法结合的方式, 用于多个Cache数据采用不一致的维护, 且在每一页或者每一块中操作方法都是可以编程的。

同样, MPC8245硬件支持Cache的禁止与使能。在MPC8245中, 对Cache的操作由编程者灵活使用。内部的HID0寄存器定义了Cache的工作模式。注意, Cache刚上电的时候, MPC8245还不能管理Cache。上电的时候指令Cache可关闭, 也可不关闭, 但数据Cache一定要关闭, 否则可能导致在刚开始的代码里面去取数据的时候, 系统会安排从Cache里面取数据, 而这时候RAM中数据还没有Cache过来, 导致数据预取异常。值得注意的是, MPC8245默认的数据Cache和指令Cache都是关闭的。

作为嵌入式应用, MPC8245支持将重要的中断服务程序或重要的指令序列锁定到Cache中。汇编语言定义了面向应用级Cache操作的指令。另外, 作为二代Power Pc结构, MPC8245仅提供了片内的一级Cache结构, 不支持二级Cache结构。而对于编程设计人员而言, 虽然Power Pc结构保持了很好的兼容性, 但在代码移植过程中还需注意Cache的组织和大小;虽然MPC8245支持52位的虚地址模式, 但是在嵌入式应用中尽量采用32位的物理地址模式, 内部指令数据Cache仅使用基本的MMU, 避免虚实地址的转换。

4 总结

本文主要介绍了MPC8245处理器的Cache组成结构与映像规则, 描述了该处理器在Cache方面的一些优点, 并对使用者提出了一些有帮助的建议与警告。在此基础上, 还分析了三种映射方式以及两种Cache操作方式的特性、进行了两两比较。

参考文献

[1]Freescale Semiconductor Literature Distribution Center.MPC8245Integrated Processor.Hardware Specifications Rev.9.http://www.freescale.com.2007.01.

[2]HSU P H, CHIEN S Y.Reconfigurable cache memory architecture forintegral image and integral histogram applications[C]//Proc of InternationalConference on Signal Processing Systems.Washington DC:IEEE Computer Society, 2011:151-156.

[3]刘邦运.PowerPC数据通信系统软件实现[D].北京:北京邮电大学, 2011.

[4]李娟.基于FGPA的1553B总线接口设计[J].微型机与应用, 2011, (12) :96-98.

[5]张静.高性能计算机系统中Cache的性能分析及改进.福建电脑, 2010, 7.

[6]Freescale Semiconductor Corp.QorIQTM P2020 Communications Processor Product Brief[M].America:Freescale Semiconductor, 2009.

PowerPC 篇5

关键词:模拟器,VxWorks操作系统,PowerPC平台

0 引言

在雷达研制过程中, 为了给信号处理分系统提供回波信号波形, 目标回波模拟器的存在至关重要。随着大规模集成电路和数字电路的发展, 雷达模拟器可以产生带有航迹信息且更为逼真的多目标回波信号, 模拟的雷达回波信号由目标运动轨迹, 噪声, 杂波等组成, 它为前期验证信号处理分系统以及终端开发跟踪动目标的相关算法提供了回波信号源。同时随着舰载, 陆基等雷达性能指标要求的不断提高, 对功能实时性要求提出了更高的要求, 基于多任务操作系统Vxworks的Power Pc平台在雷达技术软件开发中可以实现实时性、稳定性等方面的要求, 应用也越来越广泛, 本文针对相控阵雷达的实际应用环境, 对雷达软件进行了设计与实现。

1 硬件平台介绍

本文的雷达模拟器是基于飞思卡尔最新Alti Vec-enabled处理器MPC8640D的硬件平台, 在Vxworks操作系统上进行模拟器回波信号的开发。MPC8640D具有双e600内核, 工作主频可达到1GHz, 32GFLOPs最高处理能力, 有两个DDR2 SDRAM存储器接口, 每个CPU连接2个4GBytes DDR2 SDRAM存储器。模块提供了256Mbytes的带有写保护功能选择的Flash, 用于存储程序和静态信息, 板上连接了32KBytes NVSRAM, 用于存储启动信息和高优先级的系统信息, 在断电时NVSRAM可以自动将数据转存到片内的EEPROM。

板上主要的通信接口包括Rapid Io、Rocket Io、PCIE、网口等硬件模块主要结构框图如图1所示。板上主要由四片MPC8640D处理器和FPGA以及PCIE, SRIO, Gige转换芯片构成, 板内每片CPU之间通过1路*4速率可达3.125Gbps的SRIO通信, 可支持4个CPU之间全双工10Gb/s带宽的数据通信, 板上每个CPU集成了1路×8 PCIe接口到8640D处理器和FPGA芯片, 传输速率为2.5Gbps, 模块对外提供了4路×1 Rocket IO接口, 默认传输速率为2.5Gbps, 可实现板间的数据通信。同时, 模块中FPGA具有实现2个独立I2C的功能, 可配置为主从设备与VPX接插件相连, 当将其设置为从设备时可用来中断4个CPU。TI的6678浮点运算能力较AD的TS101, TS201运算速度快, TI的6678浮点运算能力可达到22.4 GFLOP, 而我们应用的MPC8640D可以达到32 GFLOP。

2 模拟器分系统的设计

文中所设计的模拟器产生的功能模块包括:线性调频信号, 目标和路、方位差、俯仰差路的方向图, 目标运动轨迹产生, 目标位置的坐标系转换, 求多普勒速度以及叠加背景杂波等。

2.1 相关模块之间通信接口及软件流程设计

本文中模拟器与控制中心机之间采用SRIO接口进行控制模式字及参数通信, 最终将产生的目标回波信号通过光纤接口传给信号处理单元。模拟器分系统在Power Pc平台上可通过在实时操作系统上建立多个任务, 产生目标回波线调信号, 同时还包括与相关分机之间的接口等, 具体软件处理流程如图2所示:

在Vxworks操作系统下, 首先通过CPUA对硬件进行扫链获取SRIO的ID号, 通过配置SRIO输入输出窗口, 可以实现接口SRIO的数据通信。初始化函数中完成对信号量的建立, 以及对任务的创建, 通过设置任务的数据运算类型、数据量大小以及优先级来配置多个任务函数, 优先级的设置可以有效解决任务之间执行中发生的冲突问题。光纤接口是通过FPGA中集成的专用高速串行数据收发模块来实现的, 可实现各种数据传输协议, 文中涉及的硬件模块上有6路光纤接口, 在模拟器部分实际应用中只应用到光纤发送, 对此功能进行简单介绍, 光纤的接收、发送是通过FPGA实现的, 可对前面板引出的2路光口和印制板连接器后出的4路Rocket IO进行数据的收、发操作, FPGA为每个Rocket IO接口实现32KB的发送缓冲, 如果缓冲区为空, 则发送中断给CPU, 将数据写入所配置通道对应的数据缓冲区, 缓冲区非空时, FPGA自动将数据通过Rocket Io送出。

2.2 各功能模块原理

雷达是通过目标对电磁波的反射来发现目标, 获取目标特征的。无论是船用雷达或是陆基雷达, 在其探测范围内不仅有探测目标, 同时可能存在很多我们不关心的其他物体, 它们都会对发射的电磁波产生反射, 进而被雷达接收产生的雷达回波, 其中包括有用信息和杂波信息。

2.2.1 雷达方程

雷达性能的诸多因素可通过雷达方程来描述, 如式 (1) 所示, 此系统中的天线为接收和发射共用的, 假设接收增益等于发射增益等于G。

式中Pr为雷达接收信号功率, Pl为雷达发射信号功率, G为接收、发射天线功率增益, δ为目标截面积, λ为波长, R为目标和雷达之间的距离。由式 (1) 得到以下有用信息:雷达接收功率与目标到雷达的距离R4成反比, 随着距离R的不断增加, 接收功率会逐渐减小, 当接收功率达到一定值且小于最小可检测信号功率时, 超出了检测距离范围。

2.2.2 天线方向图的模拟

对于跟踪目标需要通过和、差波束来获取, 和、差波束方向图的计算需要通过求出目标与天线中心之间的方位俯仰角度差, 当目标与天线重合时, 和路回波信号幅度达到峰值, 而差路幅度为零。

通过中心机传递的目标位置信息, 可通过将直角坐标系下的位置 (x, y, z) 转换为极坐标系下, 可得到给定目标的方位俯仰角, 并根据给定的天线波位值, 得到其方位角, 俯仰角, 可求得两者之间的离轴角, 利用和路与差路方向图与离轴角之间的关系求出目标在当前波位下的方向图信息。

雷达天线增益取决于天线方向图, 而常用的天线方向图有多种, 本文采用高斯型方向图, 公式如式 (2) 所示:

式 (2) θb为3db波束宽度, θ为目标偏离雷达波束轴线的夹角, 系数k的计算通过确定G (θ) 、离轴角、3db角求得, 这里我们采用k=-0.795。仿真图

如图3所示为天线方向图和路差路仿真图, 在和路方向图因子为最大值式, 差路方向图因子为零, 并且在轴向上始终保持和路大于差路。

具体实现时, 雷达模拟器已知天线波束的转动规律。而目标的方位俯仰角根据目标位置信息可以得到, 同时依据已知的天线波束运动规律可以得到天线和目标之间的夹角, 可根据式 (2) 求出和路的方向图。

2.2.3 坐标系转换

通常情况下模拟器已知大地坐标系下的目标参数, 文中模拟器的应用对象为船用雷达, 因此需要将大地坐标系下的目标位置转换为雷达阵面坐标系下的值, 方便最终求得目标径向距离和径向速度以及多普勒速度。

大地直角坐标系 (oexeyeze) 是以球心oe为坐标原点, oeze指向北极, oexe为起始天文子午面与地球赤道的交线, oeye为满足oexe到oeye右手坐标系 (绕Z轴x->y) 。

首先需要将大地坐标直角坐标系平移到雷达放置点, 之后通过连续三次的旋转与雷达阵面坐标系重合, 便可得出连坐标系之间的转换关系。

要将雷达坐标系转换到阵面坐标系上, 通过对坐标轴的旋转来实现:

(1) 将大地坐标系转换到船的甲板坐标系:根据已知的航向角, 假设甲板在偏离正北方向夹角为ψ, 绕oze轴顺时针方向旋转ψ, 转为坐标系oxe′ye′ze, 这里模拟器部分不考虑船摇角。

(2) 甲板坐标系转换到雷达阵面坐标系。根据具体阵面坐标和甲板坐标之间的关系, 做相应的角度旋转。

3 软件流程的实现

为了能够满足系统对实时性的要求, 在软件设计中我们建立了多个并行任务和流水线任务, 尽量节省运算时间, 并且建立切换函数以满足调试过程中随时对不同波形信号进行切换调试, 这样只需调用切换参数的函数便可随时切换不必重新启动目标机, 能够方便及时的实现各种功能之间的切换。

首先完成对硬件的初始化, 创建一片CPU的SRIO的输入窗口设置。创建任务task Spawn (“Rapidio_R”, , 0, Rapidio_A_Rec, 0, 0, …) 设置优先级为210, 数字越大优先级越低, 进入函数Rapidio_A_Rec () ;当收到中心控制计算机的每个PRT周期中断信号量的触发后, Rapid Io接收来自中心机的通信协议信息, 取工作状态模式字判断是否进入模拟方式, 是模拟工作模式则调用模拟目标运动的函数, 否则继续等待中断信号量。目标运动函数中调用方向图任务, 求解接收信号功率函数, 此函数中调用了大地直角坐标转换到阵面直角坐标系的任务函数, 任务与任务之间的调度通过设置任务优先级以及释放中断信号量来控制, 通过中断方向图任务函数求出给定目标的和路、方位差、俯仰差路的幅度增益, 同时可以根据目标信息求解径向速度, 进而求出多普勒频率以及相移, 利用库函数中自带的随机函数, 将产生的数据叠加在最终生成的回波信号上, 这里通过调用库函数的复数加对地址上的数据进行叠加, 耗时短。随后通过调用光纤发送函数rocket Io Tx Data And K (UINT8 channel, UINT32 base Addr, UINT32 size, UINT16 sof K, UINT16eof K, UINT16 dma Chan) ;驱动底层逻辑将产生的目标回波数据发送到信号处理分机。

4 结束语

基于Power PC平台的雷达模拟器设计, 能实时便捷的产生各种波形信号。Vxworks操作系统的多任务操作, 可有效提高多任务之间的调度效率, 避免了以往DSP等单核平台的流水线执行函数的形式, 大大节省函数执行时间。板内集成的光纤以及千兆网络接口能快速完成大数据量的通信, 目前随着基于Vxworks操作系统的Power PC硬件平台的不断发展, 在雷达系统中的应用越来越广泛, 处理数据的能力较传统方式快, 是应时代需求的产物, 基于Vxworks操作系统的Power PC硬件平台必将成为雷达设计中的发展趋势。

参考文献

[1]刘承禹.雷达模拟器系统软件研究[D].国防科技大学, 2003, 12.

[2]全厚德, 王春平, 孙书鹰, 张卫杰.雷达模拟器的设计与实现[J].太原:火力与指挥控制, 2002:79-81.

[3]邢福成, 王波, 孙保良, 关成斌.一种中频雷达模拟器的设计[J].海军航空工程学院学报, 2012:267-270.

[4]李海玉, 陈瑛琦, 赵蕾.某型雷达模拟器仿真系统的设计与实现[J].计算机工程应用技术, 2010:3539-3540.

PowerPC 篇6

1 Power PC处理器简介

1991年, Power PC联盟诞生, 该联盟由IBM、Apple和Motorola三大公司组成, 该联盟成立的宗旨是向Intel公司在处理器领域的龙头地位发起挑战。1992年, Power PC联盟向全世界展示了第一台Power PC处理器Power PC601, 此后的数20年里, Power PC处理器一代接着一代, 性能不断提升。603E、MPC755、MPC8245则是其中具有代表性的成功典型, 都有着广泛的产品应用。目前, Power PC系列处理器主要由Freescale公司研制生产, 经过20多年的发展, Power PC处理器从最初的100MHz, 现在已发展到2GHz, 且8核处理器也已进入产品阶段 (图1) 。

2 主要故障解析

2.1 Power PC处理器工作原理

若要在排故过程中能够游刃有余, 首先必须要对Power PC处理器的工作原理有一个大致的了解。简单来说, 处理器上电后在达到工作条件之后, 从自举地址开始取值执行--取值执行……, 而其工作条件需具备三个因素:供电, 时钟, 复位。图2为Power PC处理器的一个简易的工作原理图。

具体来说, Power PC处理器模块的工作结构又分很多种, 而其中最具典型的则是以下两种。 (1) 采用FPGA实现存储器控制的CPU结构。该结构主要用FPGA逻辑芯片来实现存储器控制器、中断控制器等一系列功能, 它的处理器一般采用性能不是很高的Power PC 603E, 在FPGA的内部实现看门狗、中断控制器等功能, 总线速度一般为33MHz。 (2) 采用桥接器实现存储器控制的CPU结构。相比于第一种结构, 该结构的使用范围更广, 它采用桥接器实现存储器控制器、中断控制器等功能, 而桥接器芯片采用TUNDRA公司的TSI107, TSI109、MAVELL公司的GT62640、e2v公司的MPC107。处理器则使用性能比较高的PowerP C750, 755等, 总线速度达到了66~133MHz。

2.2 排故基本思路

处理器在正常工作的几个必要条件:供电, 复位, 时钟。只要这三个条件满足, 处理器就可以发出总线请求进行取指令的操作。因而在排查故障时一定要进行电压测量、复位电路测量以及时钟电路测量。

时钟电路测试:用示波器测量晶振的输出管脚, 随后短时间内给Power PC处理器模块加电, 读取示波器测量的数值。用此方法依次测量板上的所有时钟数值 (33MHz、66MHz、100MHz等) 。

复位电路测试:还是用示波器测量。采用示波器双通道比较测量手动复位信号、CPU硬复位信号以及PCI复位信号。

那么, 如何判断Power PC处理器模块是否在正确的取指令呢?一般来说, 上文已经提过, 只要供电、时钟、复位正确, 处理器模块加电后会发出总线请求BR, 桥接器接到请求后会产生应答信号, 并同时产生FLASH片选。因此, 上电后测量TS*, ABB*, FLASHCS等信号, 若这些信号是周期性常有的, 便可判定处理器基本工作。若这些信号偶尔出现几次或直接没有, 则表明Power PC处理器模块的工作状态发生了问题。

2.3 几种常见故障的解决办法

(1) 电压输出不正常

上电后若发现电压异常, 应立即下电, 以防模块或部分芯片被烧毁。输出电压异常一般有两个原因:DC/DC周边电阻焊接错误 (漏焊、错焊、虚焊) 、DC/DC器件损坏 (LTM4600这类BGA封装的DC/DC经常在焊接后出现电压不正确的现象, 更换一次甚至多次后才正确。相比之下, JW1083及MSK5175等DC/DC基本没有器件问题, 大部分都是焊接故障) 。

(2) 无法扫描到FPGA或者CPLD

考虑到JTAG边界扫描电路相对简单, 这部分电路出问题很少, 因而此类故障基本都是因器件自身损坏导致。

(3) 复位输出不正常

复位输出错误基本是焊接或者器件的问题, 故障原因也不难找。利用示波器从源端一直测量到接收端, 基本上可以定位到某个器件上, 然后再进行相应的处理, 判断出是芯片损坏还是焊接问题。

(4) 处理器取指令出错

一般情况下, 通过测量周期信号来判定处理器工作是否正常, 但有些情况下, Power PC处理器不发BR, 桥接器不应答, 或者跑了几个周期后停滞。针对这些情况, 需做以下处理。

(1) 没有BR*:时钟、供电以及复位都正常的情况下, 还是没有发BR*, 最大可能是处理器周边的配置电阻有问题, 而具体的原因有可能是电阻没有焊接或焊接错误或电阻排桥连等。用示波器测量chkstpin, ckstpout信号以及锁相环配置、接口配置等信号, 并做出相应的处理方法。

(2) 桥接器无应答信号:这种情况下, 一般检查桥接器的焊接问题以及桥接器周围的配置电阻焊接。

(3) 信号周期性运行失败:这个问题较为常见而情况复杂, 处理器或桥接器焊接问题、周边电阻焊接问题都会导致信号周期问题, 采用回流焊接的模块, 98%的此类故障都是由BGA焊接引起。

(4) 没有FLASH片选:检查地址线是否正常, 或者桥接器配置为从PCI空间启动, 测量是否有PCI周期发出, 根据测量结果采取措施。

(5) 无法擦写FLASH:Power PC处理器模块上的FLASH芯片主要分为两种:Boot FLASH (又称system flash) 以及User FLASH。当boot flash发生故障时, 故障现象一般为无法启动, 或出现乱码。而User FLASH故障时的故障现象为用户无法擦写FLASH。这个时候, 需要利用仿真器检查User FLASH对应的数据, 并在仿真器下进行擦写操作, 从而定位至具体哪一片FLASH故障。FLASH故障的情况多为管脚脱焊或者虚焊, 其芯片自身损坏的可能性比较小。

3 举例说明

为了系统客观、详细的说明Power PC处理器模块的排故过程, 下面着重举一例加以说明。

故障现象:Power PC处理器模块上电无输出。

排故过程:

(1) 该模块的CPU芯片为PC755, 桥接器为PC107, 根据故障现象画出故障树 (图3) 进行排查。

(2) 根据故障树逐一排除可能因素。

(1) 供电电路故障排查

PC755内核电压为2.6V, 接口电压为3.3V;MPC107内核电压为2.5V, 接口电压为3.3V;其它芯片均为5V或3.3V电压。5V可由电源模块提供。3.3V、2.6V、2.5V分别由5V经电压转换器JW1083转换提供。

用电压表分别测量故障件的5V、3.3V、2.6V、2.5V电压正常, 该故障树节点可以排除。

(2) 复位电路故障排查

复位电路由MAX791和CPLD逻辑实现。MAX791提供检测电源电压当+5V低于4.65V时, 产生复位, 电源大于4.65V后, 产生大于200m S复位。

用示波器测量复位芯片的复位信号, 上电200m S后该信号状态为高电平, 表明复位信号正常, 该故障节点排除;

(3) 时钟电路故障排查

该模块上时钟有25MHz、16MHz、33MHz。33MHz输入到MPC107上, MPC107产生5路33MHz同步时钟供PCI设备使用, MPC107内部实现时钟锁相环电路, 经MPC107中的DLL产生4路同步时钟 (66MHz) 时钟供SDRAM使用, 产生2路同步时钟 (66MHz) 时钟供CPU使用。16MHz时钟给串行接口芯片ST16C2552使用, 25MHz时钟送给以太网电路。

用示波器测量故障件的各个时钟信号, 波形和频率均正常, 该故障树节点可以排除。

(4) 处理器电路、桥接器电路故障排查

检查处理器PC755和桥接器PC107外围电阻、电容焊接正确, 使用万用表测量外围电阻、电容无短路或虚焊, 对地、对电源电阻均正常, 排除外围阻容故障。

连接Trace32仿真器, 发现访问桥接器内部寄存器时异常, 数据跳变。初步定位为处理器PC755或桥接器PC107故障。

(5) SDRAM故障排查

连接Trace32仿真器, 访问SDRAM正常, 该故障节点排除。

(6) FLASH故障排查

连接Trace32仿真器, 访问FLASH数据跳变, 访问桥接器寄存器异常会导致访问FLASH数据错误, 故该故障节点排除。

(7) 串口电路故障排查

连接Trace32仿真器, 访问串口协议芯片寄存器数据跳变, 访问桥接器寄存器异常会导致访问串口协议芯片寄存器数据错误, 故该故障节点排除。

(3) 故障定位

根据上一步骤的分析, 先后将桥接器PC107和处理器PC755芯片重新植球焊接后, 故障现象依旧, 排除处理器和桥接器虚焊故障。

更换PC755芯片后, 子卡串口输出正常, 经反复测试工作正常。因此定位为PC755芯片损坏。

(4) 纠正措施

更换PC755芯片, 故障排除, Power PC处理器模块工作正常。

4 总结

本文主要介绍了基于Power PC处理器的CPU处理模块的主要故障及解决办法, 并通过举例的方法详细梳理了排故的过程始末。Power PC处理器模块的故障看似千变万化, 实则万变不离其宗。当然, 若要将其完全弄懂、弄精, 还有很长的路要走。除了芯片、焊接这两个主要因素外, 工艺、人为、设计等诸多细节同样会造成故障的出现。

摘要:因升级性能好、功耗低等优点, Power PC系列处理器在多种领域被广泛使用, 而在使用过程中, 出现了各式各样的故障。文章通过介绍Power PC系列处理器工作原理、案例解剖、举例说明的方法来分析其常见的故障, 以供研究。

关键词:PowerPC,故障,解析,PCI

参考文献

[1]张大波, 吴迪, 郝军, 等.嵌入式系统原理、设计与应用[M].北京:机械工业出版社, 2005.

[2]汤子赢, 哲凤屏, 汤小丹.计算机操作系统[M].第2版.西安:西安电子科技大学出版社, 2004.

PowerPC 篇7

1 系统工作原理

Power PC单板计算机可广泛用于信号数据处理,系统结构如图1所示。Power PC单板计算机作为LBE总线的主设备,通过LBE总线与从机1和MBI模块互连,通过VME总线与信号处理机通讯[3,4,5]。

2 硬件设计

Power PC单板计算机系统[6,7,8,9]结构框图如图2所示。

硬件电路设计包括监控电路、时钟电路、电压转换电路、处理器电路、MPC107桥控制器、存储器电路、定时器电路、中断电路、接口电路和控制逻辑电路。

2.1 监控电路

监控电路由FPGA和MAX791实现。主要功能包括电源监控功能,复位功能和看门狗功能。主机板模块复位包括:软复位、主机板复位、系统复位和加电复位。其中,软复位由写特殊端口产生;加电复位是由MAX791监视电源,在VCC>4.65 V后产生一个长度为200 ms的复位脉冲;主机板复位和系统复位由主机板不同的复位按钮产生。其中系统复位来自机箱面板的RSTIN*信号;LBE总线通过LRES*信号复位接口板、从机1板;主机板复位还要通过主机板的RESET*信号复位接口板的主机资源。主板可通过写VME接口控制寄存器的方法产生VME-SYSRESET信号。

实现软件运行轨迹的可靠性,处理机核心部件提供看门狗电路,定时周期0.1 s(50 n F电容)。看门狗电路由硬件实现,在地面调试状态下自动禁止,但可用软件设置使能/禁止。在实时状态下自动使能,当看门狗有效后产生中断,点亮本模块的故障灯。

总线超时电路用于处理器访问过程中LBE总线周期超时故障的恢复,该电路由硬件实现,总线超时后产生中断,点亮本模块的故障指示灯。

2.2 时钟电路

Power PC模块需要提供时钟信号供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Ω电阻。

2.3 电压转换电路

Power PC模块上的电源要求为MPC755内核电压为2.0 V,允许偏差为5%;Power PC接口电压为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实现。

2.4 处理器电路

Power PC模块采用MPC755,芯片的最高工作主频为350 MHz,核心频率设定为256 MHz。Power PC通过桥接器MPC107访问板内资源。主要集成以下功能块:超标量处理器、32 k B指令Cache和32 k B数据Cache、1 MB的L2Cache接口、128位宽内部数据通道,64位系统数据总线和L2Cache总线、32位地址线、64位数据线、整型数据类型有8,16和32位、浮点数据类型有32和64位。

MPC755的主要特性有:每指令周期可以从指令Cache中取4条指令;每时钟周期可以开始两条指令执行;每时钟周期可同时6条指令执行;大多数指令周期为单周期指令。MPC755有在系统测试和调试特性,JTAG接口可通过相应的硬件工具来测试数据处理。

2.5 MPC107桥控制器

MPC107 PCI桥接器/集成存储器控制器提供MPC6XX,MPC7XX,MPC74XX处理器到PCI总线的接口。MPC107提供功能有:一个高性能的存储器控制器,双处理器的支持,双通道DMA控制器,一个中断控制器,一路I2O消息控制器,一路I2C接口和一个时钟锁相环电路。MPC107内部有配置寄存器,配置寄存器基地址为0x FEC00000。

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总线驱动。

2.6 存储器电路

CPU模块上设计有8位BOOT Flash存储器、64位SDRAM存储器、64位Flash。CPU模块上MPC107内部实现Power PC存储器控制器,提供地址译码、数据处理周期访问时序、SDRAM时钟等来访问存储器。通过控制MPC107内部的一些寄存器来完成这些功能。

Power PC模块提供64位宽度的64 MB的SDRAM。SDRAM采用4片WED146S8030A实现,供电电压3.3 V,时钟频率100 MHz。

MPC107内置SDRAM存储器控制器,提供SDRAM的时序控制逻辑,并可提供SDRAM的访问时钟,时钟频率设计为66 MHz。Power PC和PCI主设备均可访问SDRAM。地址空间位于存储器的低端0x0000000—0x03FFFFFF。访问方式及时序控制可控制MPC107内部的寄存器来实现。

启动Flash采用容量为4 MB,按8位工作方式访问,芯片采用SM29LV256实现,工作电压为3.3 V。支持整片擦写,扇区写保护等。每个扇区支持100 000次的擦写周期。Flash操作按Byte方式来访问和操作。启动Flash地址分配在存储空间的高端,地址空间为FFC00000H~FFFFFFFFH。用于Power PC模块的启动,启动Flash上驻留启动程序,BIT测试程序,Flash在板编程程序和操作系统。

Flash由8片16位存储器组成,芯片采用国威公司生产的SM29LV256实现,工作电压3.3 V,设计容量256 MB。支持整片擦写,扇区写保护等。每个扇区支持100 000次的擦写周期,Flash操作按64位操作。Flash存储器用于用户程序的储存。NVSRAM容量32 k B,数据宽度8位,芯片采用STK14C88-5C45M实现。

2.7 定时器电路和中断电路

MPC107提供4路32位计数器,在定时器计数减至零时产生中断,可用于系统定时或产生周期总断。计数器工作时钟为MPC107供SDRAM的输入时钟的1/8,精度±50×10-6;计数器0保留作为系统时钟,其余3路计数器用作用户时钟,定时范围为121 ns~515 s。

Power PC模块上的中断控制器由MPC107内部集成的可编程中断控制单元(EPIC)实现,该中断控制器采用Open PIC体系结构实现,支持16级串行中断。中断控制器可根据中断源的特点设置中断的优先级和电平有效方式,中断的优先级可以通过软件进行设置。

2.8 接口电路

接口电路包括以太网通信接口电路、RS232接口电路、LBE总线接口和VME总线接口电路。

Power PC模块提供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桥逻辑,实现Power PC模块对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,则总线超时中断有效,点亮故障灯。

2.9 控制逻辑电路

控制逻辑由FPGA实现,采用Xilinx公司的XQV300芯片。主要实现以下逻辑控制功能:串行中断控制逻辑、复位逻辑、看门狗控制逻辑、访问Flash存储器逻辑、访问串口控制逻辑、离散量端口控制逻辑、RS232异步通信逻辑、LBE总线接口逻辑。

3 软件设计

系统软件是系统硬件与应用软件之间的桥梁,其为应用程序的开发提供支持。Power PC模块系统软件包括系统引导程序,Vx Works实时操作系统,在板编程程序,PUBIT以及硬件驱动程序等。

硬件系统通电后首先执行引导程序,引导程序根据离散量GSE#状态,判断显示维护菜单,或者启动应用程序,根据离散量DISin0状态,判断加载0#区应用程序或加载1#区应用程序。

系统加电后在启动操作系统之前,首先运行加电BIT(PUBIT),对硬件资源进行检测。PUBIT只包含产品的检测,检测结果存放于NVSRAM中,应用程序可通过函数读到PUBIT的结果。用户产品的硬件检测在应用程序中完成,通过读取系统软件提供的PUBIT结果,应用程序可以获得整个硬件资源的检测信息。

在板编程完成将程序或数据固化到Flash存储器的功能,在板编程可通过串口实现。在板编程模块由两部分程序组成,分别驻留在为目标机和宿主机上,目标机上的程序完成固化数据的接收,Flash存储器的数据的写入,固化后数据的校验,Flash测试代码和的计算;该部分程序事先固化到系统中,当系统处于编程状态时,启动它运行。宿主机上的程序完成固化文件参数的读取和固化数据的发送工作。

操作系统配置的功能包括:提供标准C/C++支持;提供文件系统以及标准输入输出支持;提供硬件初始化、信号量、消息队列、例外处理等系统内核功能支持;提供系统缓冲区、双向链表以及环型缓冲区等管理支持;提供网络接口的WDB调试支持;提供核心硬件管理功能,包括系统存储器、Cache、时钟、浮点运算、网络接口等的支持;提供多任务调度管理功能。

设备驱动程序分为两类:一类是操作系统工作必须的硬件资源的设备驱动软件(BSP),这些驱动程序必须与操作系统捆绑在一起,由操作系统统一管理;另一类是系统中其他硬件资源的驱动软件,这些程序独立于操作系统,以硬件支持库的形式提供用户调用。属于第一类的驱动包括时钟驱动、中断控制器驱动、串行调试通讯接口驱动、网络接口驱动等;属于第二类的驱动包括Flash存储器读写驱动,VME总线驱动程序,IO模块驱动程序等。为保证程序的可移植性和兼容性,需保持底层驱动函数接口保持不变。

4 结束语

本文介绍了基于Power PC755芯片的单板计算机。以Power PC 755处理器为核心电路,MPC107为桥芯片,其他功能选用标准接口,高集成度芯片实现,内部总线采用标准32位PCI总线接口,底板总线接口采用标准VME总线接口,LBE总线接口。结构简单、可靠性高,提高系统整体性能和性价比,有较好的继承性以及维护方便等特点。

摘要:为提高现代武器装备中抗恶劣环境计算机的处理能力,提出了一种基于PowerPC处理器的计算模块设计方法。该方法包括基于PowerPC处理器的计算模块的主要硬件设计思路和软件实现过程,通过采用PowerPC755处理器提高了计算机性能,具有高性能、低功耗、高灵活性的特点;经过实际应用验证,该方法效果良好。

【PowerPC】推荐阅读:

上一篇:体能考核下一篇:医学成像设备

本站热搜

    相关推荐