微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 由外部总线访问MPC5554的内部存储器

由外部总线访问MPC5554的内部存储器

时间:04-02 来源:互联网 点击:
在基于双CPU的嵌入式应用中,通常都会涉及数据交互的问题。一般来说有两种数据交互的方案:一种是使用诸如SPI的通信协议直接进行数据传输,这种方法只适用于小规模的数据交互,对于批量数据则显得无能为力;另一种则是双CPU通过外部总线接口扩展外部共享存储器,例如双口RAM,通过共享存储器实现对交互数据的写入与读出,目前大部分双CPU都是采用这种方案。处理器中大都集成有较大规模的Flash存储器,如果能通过外部总线直接访问处理器的内存储器并进行读/写,就可以将共享存储器从片外移到片内。片内集成的存储器在速度和可靠性方面都比片外扩展的存储器要高很多,有些处理器集成的F1ash存储器还带有ECC校验,进一步提高了存储数据的可靠性。

1 处理器MPC5554的总线模式

MPC5554是Freescak公司推出的32位PowerPC系列处理器,其内核为PowerPC Book E结构的e20026CPU,外围有丰富的外设接口,包括有eMIOS、eQADC、DSPI、eSCI、eDMA、eTPU、FlexCAN等模块,可以方便地与外设进行连接。这款处理器广泛地应用在汽车电子和航空航天等场合,具有成熟可靠的体系结构和广泛的技术支持。

MPC5554的外部总线模块称为EBI(External BusInterface)模块,同其他处理器的外部总线模块一样,也可以扩展诸如F1ash、SSRAM以及异步存储器。EBI模块可以工作在许多不同的模式下,主要有以下几种模式:

    ◆单独主机模式,此模式下只响应处理器内部的命令,忽略所有的外部总线请求;
    ◆外部主机模式,此模式下可以响应处理器内部的命令和外部总线请求,并且允许外部主机访问内部地址空间;
    ◆模块禁止模式,模块被禁止后即停止工作;
    ◆16位数据总线模式,数据总线只有16位,DATA[O:15]有效,DATA[16:31]无效;
    ◆调试模式,当系统处于此模式下时,EBI模块不受影响,仍正常工作。

以上几种模式中,只有外部主机模式下可以实现外部主机访问MPC5554内部存储地址的功能。

2 MPC5554的外部主机模式

EBI Moclule Configuration Register(EBI_MCR)寄存器是EBI模块的配置寄存器,其中的EXTM位即为EBI的外部主机模式选择位,置1表示将EBI模块置为外部主机模式,置0表示为单独主机模式。在启动模块时,需要将MDIS位清O。

EBI模块的外部引脚在外部主机模式时全部需要使用,MPC5554与外部主机的硬件连接如图1所示。



2.1 内部存储空间地址编码

当EBI被配置为外部主机模式时,外部主机可以通过总线访问内部的存储空间。MPC5554,内部地址总线是32位,但外部地址总线只有24位,需要通过特殊的解码方式来将24位地址总线扩展为32位。EBI模块将外部总线的ADDR[8:11]这4位进行解码,作为内部总线ADDR[O:11]的12 位。解码的规则为:

①当外部地址总线的ADDR[8]=O时,EBI忽略外部数据,无效地址。

②当外部地址总线的ADDR[8]=1时,ADDR[9:11]用来选择为Flash存储地址的区块;匹配则进入该区块,不匹配则返回总线错误标志。

外部主机模式下具体的地址译码如表1所列。



2.2 外主模式下外部主机在内存储器上读写数据

外部主机在得到总线控制权后,通过拉低TS位来初始化对内存储器的操作。如2.1节所示,当地址线上的信号匹配时,即可访问内存储器空间,访问结束于TA信号或TEA信号出现。TA信号为正常结束信号,TEA信号则表示有总线上的错误。图2为外部主机读数据流程,图3为外部主机读数据时序。



图4和图5为外部主机写数据的流程和时序,与读数据时的大体类似。但需要注意的是,规定外主访问的最小延迟是3个总线周期,在实际系统中还需要根据具体访问的存储器块来决定。







3 系统设计

3.1 硬件设计

主芯片使用处理器MPC5554,其内部Flash有2 MB,通过EBI模块进行外部访问。外部主机使用Altera公司生产的Cyclone II系列FPGA芯片EP2C35F672,芯片的I/O资源丰富,选用的672引脚封装最大可用I/O为475个,对于I/O需求很多的应用非常适合。 EP2C35F672的33 216个LE单元,105个M4K的RAM块,可以满足较高要求的应用。

电路板上的电源种类较多,MPC5554需要有5 V、3.3V、1.5 V供电,EP2C35F672需要3.3 V和1.2 V供电,外部输入则为5 V。采用2片LT1765将5 V转换至3.3 V和1.2 V,1.5 V则利用NJD2783从3.3 V处生成。

根据图1所示的连接,将MPC5554的EXTAL、TS、TSIZ[0:1]、ADDR[8:31]、DATA[O:31]、RD_WR、BR、BG、 BB、TA、TEA等信号线全部接至FPGA的I/O处,其中EXTAL需要引至FPGA的PLL输出口作为外部输入时钟,其余的都接至普通I/O。

为了方便调试及观察结果,将MPC5554的1路SCI接口引出,通过MAX3232电平转换至RS232电平,然后连至PC上的串口,使用超级终端程序进行观察。

3.2 软件设计

软件的设计需要MPC5554与FPGA协同工作。首先需要将MPC5554配置为外主模式,在MPC5554的EBI模块里共有2个主要的配置寄存器,分别是EBI模块配置寄存器EBI_MCR和EBI总线监控寄存器EBI_BMCR。

EBI模块配置寄存器负责整个模块的基础配置,MDIS位控制EBI模块是否启用,EXTM位配置EBI是否为外主模式,DBM位控制。EBI为32位或 16位数据总线,EARP[O:1]用来设置总线请求的优先级。

EBI总线监控寄存器负责对总线监测控制,BMT[O:7]位为总线监测的超时周期,BME位控制总线监测的使能。

另外,还有一个总线传输错误状态寄存器EBI_TESR,TEAF位为传输错误标志位,BMTF为总线监测超时标志位。

EBI模块的初始化程序为:



在读取操作时,EBI模块在接收到FPGA发来的地址信息后,返回相应地址的数据信息;在写入操作时,EBI模块根据FPGA发来的地址信息,将数据信息写入相应地址。根据图2~图5的流程与时序,作为外部主机的FPGA起到发起数据传输并结束的作用。FPGA部分使用VHDL语言,只附上结构体里的 process部分。




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

网站地图

Top