PowerPC简介及编程
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).
- 车载MP3中Flash文件系统的设计与应用(11-11)
- 嵌入式系统的定义与发展历史(11-15)
- 小尺寸单片机在便携式设备中的应用(11-19)
- F1aSh存储器在TMS320C3X系统中的应用(11-11)
- 便携式多媒体播放器设计在硬软件方面的注意事项(11-19)
- 51单片机 Keil C 延时程序的简单研究!(11-15)