Chinaunix首页 | 论坛 | 博客
  • 博客访问: 78264
  • 博文数量: 107
  • 博客积分: 5380
  • 博客等级: 大校
  • 技术积分: 1180
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-07 10:53
文章分类

全部博文(107)

文章存档

2011年(107)

我的朋友
最近访客

分类:

2011-05-22 11:18:22

摘要:分析了Motorola MPC860嵌进式微处理性能和特片,描述了MPC860在ADM系统中的应用,突出了MPC860嵌进式微处理器的通讯处理能力。

关键词:STM MPC860嵌进式微处理器 ADM系统

1 MPC860

MPC860 PowerQUICC是当今比较流行、性能相当优越的单片集成嵌进式微处理器。它内部集成了微处理器和一些控制领域的常用外围组件,特别适用于互联网络和数据通讯。PowerQUICC可以称为MC68360在网络和数据通讯领域的新一代产品,各方面性能包括适应性、扩展能力和集成度等获得了较大进步。 MPC860 PowerQUICC通讯处理器可根据用户不的要求进步2~4个串行通讯控制器、不同规格的指令和数据缓存,各种级别的网络协议支持。该产品专为宽带接进设备如路由器、接进集线器、LAN/WAN交换机、PBX系统和STM网关等设计。

图1是MPC860结构图。它包括三个主要模块:PowerPC核心、系统接口单元(SIU)、通讯处理模块(CPM)。

PowerPC是主要的处理机单元,通常称为Embedded PowerPC核心(或EPPC)。它包括数据和指令的缓存和存储器治理单元(MMU),在40MHz时钟时为50 MIPS指令速度。

第二个主要的模块为系统接口单元(SIU)。主要包括:总线监视器、假中断监视器、软件看门狗、中断定时器和实时时钟(RTC)、复位控制器、不占用内部开销的片内总线仲裁、JTAG1149.1测试口。它的一个主要功能是提供内部总线和外部总线的接口。

第三个主要模拟为通讯处理机模块(CPM)。主要包括:RISC控制器、所有串行通道口支持连续接收和发送模式、5K字节双口RAM、16个串行DMA (SDMA)通道、三个平行I/O寄存器、四个波特率独立的发生器(可以连接到任意一个SCC和SMC,并答应运行中改变,支持自动波特率)、四个串行通讯控制器(SCC)(支持以太网、HDLC/SDLC、HDLC总线)、两个串行治理控制器(SMC)(UART方式或透明传输)、一个串行外围接口电路(SPI)(MC6830 SCP的扩展,支持主从模式,支持同一总线上多主操纵)、一个I2C(Inter-Integrated Circuit)接口(支持主从模式,支持多主环境)。CPM在几个不同的通讯设备如SCC和SMC上发送、接收数据,所有的通讯设备可以独立工作。 SCC和SMC也可以用于时分复用总线。

在图1中,CPM模块中有一个32位RISC微处理机。MPC860有两个CPU:PowerPC和32位RISC。PowerPC执行高层代码, RISC处理实际通讯的低层通讯功能。由于CPU分担了嵌进式PowerPC核的外围工作任务,这种双处理器体系结构功耗要低于传统体系结构的处理器。两个处理器主要是通过内部存储空间相互配合工作。在存储器区,每个处理器都可以设置控制位、读状态位。在图1中,有16个串行DMA单元。每个通讯设备都有一个发送DMA和接收DMA,32侠RISC控制这16个串行DMA在通讯设备和存储器之间传送数据。当MPC860接收数据时,串行DMA从通讯设备接收数据并放进存储器中;发送数据顺序相反,串行DMA从存储器中取数据,送到通讯设备,串行DMA只服务CPM的RISC,但是两个虚拟IDMA可以为用户DMA所用。

2 ADM系统

2.1 系统概述

ADM 即分插复用器,它是一个三端口设备,具有两个SDH光接口(线性接口),通过另一端可以灵活地上/下路复用在STM信号中的低速率信号。ADM内部还具有时隙交换功能,答应两个STM信号之间不同VC的互联,并能方便地进行带宽治理。在实际网络中,根据ADM的结构特点,可灵活地用在网络中不同的位置。在本系统中,主要任务是将155.52Mb/s的STM-1高速信号经光/电转换,从帧结构恢复出低速的2.048Mb/s的E1信号,其逆过程正好相反。从理论上来说,将STM-1信号可以上下63路E1信号,为了系统的可维护性和美观性,故采用4块支路,每块上下16路。

从图2可以看出,分插复用器ADM是一种新型的网络单元,是SDH中应用最广、最富特色的设备。它将同步复用和数字交叉连接功能综合于一体,具有灵活的分插任意支路信号的能力,在网络设计上有很大的灵活性;采用同步复用方式和灵活的复用映射结果,可使高速信号一次直接分插出低速支路信号,即所谓的一步复用特性。ADM利用时隙交换实现宽带治理,并且无需分接和终结整体信号,即可将各种G.703规定的接口信号(PDH)或STM-1信号(SDH)接进STM -M(M1)内作任何支路。

群路:对接收信号进行光 /电转换,再生恢复出接收数据,同时将高速的信号转变为并行的信号,从中分离出接收段开销SOH,并对指针进行解释,提取VC-4POH,进进虚容器VC -4处理,恢复下行的VC-4净负荷,同时提供FPGA(交叉叠加模块)接口;反过来将需要上行的VC-4净负荷插进VC-4通道开销POH,经过AU- 4指针调整,并插进段开销SOH,经电/光转化上线路,成为STM-1

蔽中断位;

MSRcpsr, r1 ;改变CPU的CPSR寄存器,进进到指定的FIQ模式;

MSRspsr, r2 ;保存前一模式;

LDRsp, =FIQ_STACK ;把FIQ模式下的堆栈起始值赋给当前的SP,FIQ_STACK是分配给FIQ模式堆栈空间(比如说1K字节)的起始地址。按这种方式设置其它模式下的堆栈。

DRAM的初始化根据系统配置信息来决定,由于系统不一定会用到DRAM,但是一定要做SDRAM的初始化。主要的处理内容是ROM和RAM基址的设定、数据总线的宽度、SDRAM的刷新时间等等,这些可以参照S3C4510B芯片的用户手册。特殊寄存器的设置主要是针对I/O口,比方说设定几个I/O位用做系统状态指示灯LED。寄存器的设定主要根据硬件的配置情况而定,值得留意的是由于这段启动代码是烧录到ROM中的,而中断向量必须位于零地址,所以在存储单元没有重新映射之前ROM基址的设定应该为零地址。

拷贝(image)主要是为了进步运行速度,编译天生的映像文件代码从ROM内拷贝到RAM中往,而程序的执行也就在RAM中。当然,启动代码对运行速度的要求不是很严格,所以这个拷贝动作可以不用做,让代码存放在ROM中,代码的执行也在ROM中,而运行中所需要的数据在RAM中。

内存的初始化是为C代码的运行开辟内存区,代码编译后会分为三个区:只读区、可读可写区,零初始化区。内存的初始化处理的内容是:当只读区截止地址即是可读可写区基址时,把零初始化区各字节清零;当只读区截止地址不即是可读可写区基址时,假如可读可写区基址小于零初始化基址,就从只读区截止地址处开始把数据拷贝到可读可写区基址处,直到到达零初始化基址,然后把零初始化区各字节清零,否则也只用把零初始化区各字节清零。

中断向量表是用于处理异常情况的,当发生异常时,首先要保存当前程序的返回地址和CPSR寄存器的值,然后进进到相应的异常向量地址,一般来说在异常向量地址是一个跳转指令,使程序进进相应的异常处理过程。由于中断向量表要位于系统的零地址,当把启动代码烧录到EEPROM中运行时就需要把ROM的地址定义到零地址,所以程序的进口处如下:

点击看原图

系统重新映射当你为了进步运行速度而把ROM的Image拷贝到RAM后,中断向量表就不是在零地址处,因此要重新映射存储单元

①Blkmem driver。Blkmem driver还是uClinux上使用最普通的Flash驱动器。它是为uClinux而设计的,但是它的结构相对比较简单,并且仅支持NOR Flash的操纵,需要在RAM中建立根文件系统。同时它也很难配置,需要代码修改表来建立Flash分区。尽管如此,它还是提供了最基本的分区擦/写操纵。

②MTD driver。MTD driver是Linux下标准的Flash驱动器。它支持大多数Flash存储设备,兼有功能强大的分区定义和映像工具。借用交叉存取技术(interleaving),MTD driver甚至可支持同一系统中不同类型的Flash,Linux内核中关于MTD driver配置有较为具体的选择项。

③RAM disk driver。在无盘启动的标准Linux中,用得最多的就是RAM disk driver;但它不支持底层的Flash存储器,仅对根文件系统的建立有意义,即根文件系统压缩以后存放在Flash的什么地方。

通过上面的比较可以看到,MTD driver提供对Flash最有力的支持同,同时它也支持在Flash上直接运行文件系统,譬如JFFS和JFFS2,而B1kmem driver则不支持。

5 根文件系统

uClinux中的文件系统可以有多种选择。通常情况下,ROMfs是使用最多的文件系统,它是一种简单、紧凑和只读的文件系统。ROMfs顺序存储文件数据,并可以在uClinux支持的存储设备上直接运行文件系统,这样可以在系统运行时节省很多RAM空间。

Cramfs是针对Linux内核2.4之后的版本所设计的一种新型文件系统,也是压缩和只读格式的。它主要的优点是将文件数据以压缩形式存储,在需要运行的时候进行解压缩。由于它存储的文件形式是压缩的格式,所以文件系统不能直接在Flash上运行。固然这样可以节约很多Flash存储空间,但是文件系统运行需要将大量的数据拷贝进RAM中,消耗了RAM空间。

考虑到多数系统需要能够读/写的文件系统,可以使用MTD driver的JFFS和JFFS2日志式文件在Flash头部建立根文件系统(Root Filesystem)。日志式文件系统可以免受系统忽然掉电的危险,并且在下一次系统引导时不需要文件系统的检查。由于JFFS和JFFS2文件格式是特别为Flash存储器设计的,二者都具一种称为“损耗平衡”的特点,也就是说Flash的所有被擦写的单元都保持相同的擦写次数。利用这些特有保护措施,Flash的使用周期得到相当大的提升。JFFS2使用压缩的文件格式,为Flash节省了大量的存储空间,它更优于JFFS格式在系统中使用。值得留意的是,使用JFFS2格式可能带来少量的Flash空间的浪费,这主要是由于日志文件的过度开销和用于回收系统的无用存储单元,浪费的空间大小约是两个数据段。

假如使用RAM disk,一般应选择EXT2文件格式,但EXT2并不是一块特别高效的文件存储空间。由于存在RAM disk上,所以任何改变在下一次启动后都会丢失。当然,也有很多人以为对嵌进式存储空间来讲,这是一种上风,由于每次系统启动都是从已知的文件系统状态开始的。

固然在Linux下有很多的文件格式可供选择,但是对于uClinux一般只选择上述的几种文件格式。另外一点就是如何在目标系统上建立根文件系统,步骤如下:首先在开发宿主机上建立一个目标机的根文件系统的目录树,然后利用嵌进式根文件系统天生工具在宿主机上天生目录树的二进制文件镜像,最后下载到目标机上就可以了。对于不同的文件格式有不同的二进制镜像天生工具,譬如JFFS的mkfs.jffs2、ISO9660的mkisofs。


(

Encounter数字实现系统的先进节点技术

分布式控制系统(DCS)的远景展看

一种谐波和无功电流检测的新算法

阅读(403) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~