微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > PowerPC简介及编程

PowerPC简介及编程

时间:03-23 来源: 点击:

PowerPC简介及编程



一.PowerPC芯片

PowerPC是早期Motorola和IBM联合为Apple的MAC机开发的CPU芯片,商标权同时属于IBM和Motorola,并成为他们的主导成品.IBM主要的PowerPC产品有PowerPC604s(深蓝内部的CPU), PowerPC750,PowerPCG3(1.1GHz).Motorola主要有MC和MPC系列.尽管他们产品不一样,但都采用PowerPC的内核.这些产品大都用在嵌入式系统中.



二. Motorola的MPC860简介(摘录)

MPC860 PowerQUICC (Quad Integrated Communications Controller) 内部集成了微处理器和一些控制领域的常用外围组件, 特别适用于通信产品. 包括器件的适应性, 扩展能力和集成度等. MPC860 PowerQUICC集成了两个处理块. 一个处理块是嵌入的PowerPC核, 另一个是通信处理模块( CPM, Communications Processor Module), 通信处理模块支持四个串行通信控制器(SCC, Serial Communication Controller), 实际上它有八个串行通道: 四个SCC,两个串行管理控制器 (SMC, Serial Management Channels), 一个串行外围接口电路 ( SPI, Serial Peripheral Interface ) 和一个I2C( Inter-Integrated Circuit ) 接口. 由于CPM分担了嵌入式PowerPC核的外围工作任务, 这种双处理器体系结构功耗要低于传统的体系结构的处理器.

1.单出口, 嵌入式PowerPC核32比特版本(与PowerPC结构定义完全兼容)32x32位通用寄存器(GPRs, General Purpose Registers)

4K数据Cache和4K指令Cache, 分别带有一个MMU.

存储管理单元(MMU)32-输入翻译后备缓冲器 ( TLBs )

32位数据,地址线

2.存储控制器(八个存储体)

单线存储模块无逢接口,静态随即存取存储器(RAM), EPROM, FLASH MEMORY或DRAM等。

DRAM 控制器可编程支持绝大多数不同大小和速度的存储器

不同码组长度32K至256M

3.四个16位定时器或两个32位定时器.

4.系统集成单元 ( SIU, Sytstem Intergration Unit ) 主要包括:

软件看门狗

中断定时器

PowerPC 时基和实时时钟 (RTC, Real Time Clock )

复位控制器

JTAG 1149.1 测试口

5.中断系统包括7根外部中断请求线, 12个具有中断能力的管脚, 16个内部中断源. 中断优先级可编程

6.通信处理器模块(CPM)主要包括:

RISC 控制器

5 K字节双口RAM

16个串行DMA (SDMA) 通道

三个平行 I/O 寄存器

7.四个波特率独立的发生器, 可以连接到任意一个SCC和SMC, 并允许运行中改变. 支持自动波特率

8.四个串行通信控制器 (SCC) ,支持以太网, HDLC/SDLC, HDLC 总线(用以实现基于HDLC的局域网)、AppleTalk, 7号信令系统, UART、BISYNC, 比特流透明传输, 基于帧的透明传输 (CRC可选), 支持PPP (Point to Point Protocol)的异步HDLC等标准协议

9.两个串行管理控制器 (SMC), UART方式或透明传输, 含GCI(General Circuit Interface)控制器, 可以连到时分复用通道

10.一个串行外围接口电路( SPI ), 是MC68302 SCP的扩展, 支持主从模式, 支持同一总线上多主操作

11.一个I2C ( Inter-Integrated Circuit ) 接口,支持主从模式, 支持多主环境

12.单插座PCMCIA-异步终端适陪器(ATA)接口

单PCMCIA插座

八储存或有效输入/输出(I/O)窗口


 
三内存映射

MPC860的内存资源(如寄存器等)映射在一个连续的16K Block存储区内,可通过SPR中的Internal Map Memory Register(IMMR)进行解析

对 Memory Registers 操作的几种方式

Indirectly Access Registers Via Memory-----------------------通过指定的I/O寄存器(I/O port)对一个寄存器操作,

如PCI部分I/O操作示例如下:

PCI地址I/O寄存器: PCICFGADR 0xEEC00000
PCI数据I/O寄存器: PCICFGDATA 0xEEC00004

具体操作方法:将所要读写的寄存器地址写入PCI地址I/O寄存器PCICFGADR,从PCI数据I/O寄存器PCICFGDATA读出数据,这个数据就是写入地址的寄存器的数据.

RegAddr = 0x80000000 | ((offset|BusDevFunc) & 0xFFFFFFFC);

RegAddr寄存器地址, 0x80000000 PCI core Address, offset寄存器偏移量

/*
* 写RegAddr到PCI I/O地址寄存器PCICFGADR
*/
sysPciOutLong(PCICFGADR, RegAddr);

/*
* 从PCI I/O数据寄存器读RegAddr数据data
*/
data = (unsigned int)sysPciInByte(PCICFGDATA | (offset & 0x3));

Directly Access Registers Via Memory-------------------------直接对寄存器操作

Indirectly Access Registers Via DCR-----------------------------同上,

Directly Access Regesters Via DCR-------------------------------同上,

 

四,PowerPC内核定义

双处理器结构既提供了程序运行的通用处理器,又提供了用于通信用处的特殊通信处理器(CPM).

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top