1 引言
随着科学技术的发展,嵌入式处理器在通信设备、消费电子、军用电子等领域有了广泛的应用,而且对处理器的处理速度、功耗及工作温度都有了更加严格的要求,尤其在汽车电子、军用电子等方面的应用。
PowerPC 体系结构是一种精简指令集计算机(Reduced Instruction Set Computer,RISC)体系结构,具有高性能和低功耗的特点,主要应用在嵌入式系统中,可以作为单板计算机,进行高性能计算和图像处理。
在PowerPC 家族中,现在应用最为广泛的是G4 系列, G4 对G3 的重大改进有两个,第一是支持对称多处理器(SMP)结构,第二是G4 引入了一流的AltiVec 技术来处理矢量运算。
AltiVec 技术是一个128 位的SIMD 矢量处理引擎,据Motorala *估可以使性能提升到原来的4.3 倍。
本文以PowerPC G4 主机处理器为例,介绍标准6U 高度CompactPCI 单板计算机的硬件设计以及实时操作系统VxWorks 的BSP 开发过程。
2 单板计算机硬件开发
单板计算机的整体框图如图1 所示。
整个单板的设计分为三个部分:电源模块,PowerPC 部分和通信接口部分。其中PowerPC 部分和外围接口以PCI 总线为分界线,PowerPC 部分包括PowerPC、host bridge、SDRAM 和FLASH。
外围接口包括网口、串口、通过PCI 总线扩展的接口和扩展的二级PCI 总线。网口和串口在开发阶段用于单板和开发主机通信,并能在单板嵌入操作系统后作为多个单板之间的通信接口。框图中PowerPC 没有指定具体的型号,可以选择IBM 的如PPC750, 也可以选择Freescale的如PowerPC G4 系列的MPC74XX,host bridge 可以选择MARVELL 公司的MV64360 或MV*60。用户可以根据的不同需要选择相应的组合。
2.1 电源模块的设计
电源是任何一个电路系统至关重要的部分,所有的信号传输都是基于准确而稳定的电源基础上的。CPCI 连接器提供的电源有5V、3.3V、12V 和-12V,整个单板上需要的电源有多种:主电源5V、PowerPC 的内核电源、host bridge 内核电源、DDR SDRAM 电源和其余I/O总线电源3.3V。对电流需求大,电源稳定性要求高的,应采用可编程的DC/DC 控制芯片完成电源的转换。
电源模块的PCB 布板也要进行小心处理, 主要有以下几个方面需要注意。
a) 放置去藕电容:随着一定数量的去藕电容被放置在板上,电路板本身特有的谐振可以被抑制掉,从而减少噪声的产生,还可以降低电路板边缘辐射以缓解电磁兼容问题。为了提高电源供电系统的可靠性和降低系统的制造成本,应考虑如何经济有效地选择去藕电容的系统布局。
b) 降低电源供电系统的阻抗:一个低阻的电源供电系统(从直流到交流)是获得低电压波动的关键:减少电感作用,增加电容作用,消除或降低那些谐振峰是设计目标。为达到此目标应降低电源和地板层之间的间距; 增大平板的尺寸;提高填充介质的介电常数;采用多对电源和地板层。
2.2 PowerPC 部分
PowerPC 部分包含PowerPC1&2,host bridge,DDR SDRAM,SRAM 和Flash。此部分是整个单板计算机的核心,电路设计调试难度也最大PowerPC1&2 和DDR SDRAM 部分速度较快,电路设计要注意PCB 布线选择合适的拓扑结构和布线策略, 以保证信号完整性。
a) 拓扑结构的灵活应用
在 PCB 设计中常用的拓扑结构有菊花链拓扑和星形拓扑。要根据不同的情况采用不同的拓扑结构。
一般而言,对于多负载的总线系统常采用菊花链拓扑,并在最远端的负载处进行适当的终结。菊花链拓扑的优势在于易于进行阻抗控制,端接简单,网络的布线长度短,布线较为方便,只要各个接收器在接收信号时间上的差别在允许的范围内就可以采用菊花链拓扑进行布线(这也说明菊花链拓扑不适用于高速系统),注意要让菊花链的分支线尽量短。Local bus 上的外设我们是用的此种拓扑结构,local bus 上有Flash、DDR SRAM、SRAM 等外设。
星形拓扑一般在时钟网络或对信号同步要求高的网络中应用,其共同点就是要求各接收器在同一时刻收到驱动端发来的信号,星形拓扑的布线难度比菊花链拓扑的要大,占用空间也大。实际的星形拓扑会存在端接传输线分支,驱动器与公共节点间存在传输线分支,这些都会劣化信号,所以在设计星形拓扑一般需要仿真,以保证信号的完整性。
PowerPC1&2(U1、U2)和host bridge(U3)采用星形拓扑结构,其后仿真图形如图2 所示,基本满足信号完整性。时钟电路采用星形拓扑结构,一个晶振作为host bridge的输入基准时钟,其余时钟都由host bridge 来提供。另外 PLL 要选择合适的参数配置,使得芯片和电路稳定运行。
b) 严格的等长布线要求
在SDRAM 设计时,要注意调整管脚SDRAM_SYNC_OUT 和SDRAM_SYNC_IN 之间的布线长度,使得SDRAM 数据相对时钟的建立时间和保持时间得到很好的满足。PCI 部分的时钟要注意管脚PCI_SYNC_OUT 和PCI_SYNC_IN 之间的布线长度和PCI_CLK 相同。
2.3 通信接口部分:
通信接口实现人-机、机-机之间的信息交互和数据的传输,无论是在系统调试,还是在系统应用中都非常重要。如图1 所示,host bridge 集成了两个串口和3 个千兆网控制器,通过外接串口和网口的收发器设计用户所需的通讯接口。
串口和网口在开发过程中起着重要的作用。利用串口,通过超级终端或其它终端软件,可以看到调试过程中的打印的信息,以帮助调试;利用网口,可以通过网络下载文件或者挂载文件系统。
此外,host bridge 提供两组PCI 总线,可以通过PCI 扩展一些外设接口如IDE、USB、网络等,可以根据需要进行相应的扩展。同时可以扩展出PMC 接口,连接标准的PMC 设备。另外,选择一组PCI 总线,通过PCI to PCI bridge 将其引到J1 和J2,可以与外设板相连,便于系统的扩展,或者在对系统运算处理能力要求较高而希望功耗在比较理想范围内的高端应用场合,可以让两个或者两个以上的处理器以多处理器的方式协同工作,组成不同的多机系统。
3 VxWorks BSP 开发
嵌入式系统的开发,需要在硬件设计完成后嵌入操作系统才能进行上层程序的开发。VxWorks 是美国风河公司推出的一个实时操作系统,它是专门为实时嵌入式系统设计开发的操作系统内核,它强大而且比较复杂的操作系统,包括了进程管理,存储管理,设备管理,文件系统管理,网络协议及系统应用等几个部分,但只占用了很小的存储空间,并可高度裁减,保证了系统能以较高的效率运行。在系统开发过程中一项重要的工作内容是开发板级支持包BSP(Board Support Package)。
3.1 BSP 的概述
BSP 由头文件、源文件、makefile 文件和派生文件组成。它集成了与硬件相关的软件和部分硬件无关的软件,提供VxWorks 访问硬件的驱动程序和相关设备的初始化操作,能对CPU、目标机和系统资源等进行初始化。在初始化过程中,不但对CPU 内部状态寄存器、控制寄存器、高速缓存进行设置,为上层软件系统提供硬件环境的支持,而且为操作系统正常运行进行资源初始化。
3.2 调试过程
系统设计时采用Bootrom 加VxWorks 的方式,这种启动形式有其独特优点,如适应硬件、方便现场调试等。系统采用的调试工具是Wind River 公司的调试软件visionCLICK 及仿真器Wind River ICE。具体步骤如下图 所示:
(1) 系统连接
连接好仿真器和目标板。主要是电源、串口、JTAG 口。
(2)打开超级终端
上电后,用仿真器的串口连接电脑的RS 232 串口,打开超级终端,按下仿真器的复位键,在超级终端可看到仿真器的相关信息。主要看IP Address,主机(host)的IP 的地址要和仿真器的IP 地址在同一IP 段,在超级终端可运行help 命令,可看到各种命令,均可运行。运行"eth-setup"命令可更改仿真器的IP 地址。
(3) 新建工程
打开 visionCLICK,新建工程,按照提示设置,主要有:configuration file,symbolfile,download file 和sourcepath,其他的选项默认,生成bootrom uncmp.ab
(4)程序下载、调试和修改
连接仿真器,下载,运行。提示无误后,可观察各窗口的寄存器,内存等单元的值,进试,如有错误,修改源代码,重新开始编译、下载,直到完全正确为止。
(5)网络调试
BootROM 调试完后,把目标板的以太网口和主机的网口相连,VxWorks 会自动从网口引导,把编译好的VxWorks 加载到目标板,进行调试。
(6)程序固化和脱机运行
最后全部完成后,把BootROM 和VxWorks 都固化到目标板上,以便脱机运行。
4 结束语
本文作者创新点:选择PowerPC G4 系列开发单板机,易于控制整板的低功耗,实现多数据流并行处理;同时系统丰富的接口设计和标准的CPCI 结构,便于系统的扩展和组建多机系统。随着科技的发展,该种计算机在消费电子、通信设备、工业控制和军用电子等领域均有良好的应用前景。