PowerPC和Dallas的时钟芯片接口设计

2007-03-09 19:03:27来源: 互联网
摘要:分析摩托罗位的PowerPC系列处理器和Dallas的实时时钟芯片的时序,并详细给出一种较为实用的接口设计方法。 关键词:实时时钟 CPLD PowerPC 地址/数据复用 在通信领域,摩托罗位的PowerPC(如MPC850、MPC860、MPC8260等)的应用越来越广泛。由于这些嵌入式CPU上集成着丰富的通信资源(如快速以太网接口、 多个串口等),而且有较高的运行速度和较低的价位,故在一些远程测控领域的应用也越来越多。同时在许多系统中都需要实时时钟,而应用最广泛的当数Dallas的时钟芯片。摩托罗拉的PowerPC系列地址线和数据线是独立的,而Dallas的时钟芯片的地址线和数据线是复用的。本文以MPC860和DS1687为例,给出接口的设计方法和电路。因为用CPLD来实现,进步增加了通用性。 1 DS1687的功能和时序特点 在我们开发的宽带接入服务器(BNAS)中用到了MPC860,作为客户端与RADIUS服务器配合实现对用户信息的认证、鉴权、计费等功能。在处理计费信息时需要有实时时钟基准,我们选择了Dallas的DS1687实时时钟芯片。DS1687的引脚分布如图1所示。 DS1687具有以下主要功能: *集成晶振和锂电池,芯片中RAM的数据在掉电后不会丢失; *解决千年虫问题; *集成242字节的NVRAM; *可编程方波输出; *输出32.768kHz信号,以支持电源管理功能; *在不加电时数据至少保存10年。 DS1687的CPU接口为地址线数据线复用,读写时序分别如图2和图3所示。 2 MPC860的时序特点 MPC860有异步和同步两种总线接口,分别称为CPU和GPCM。UPM连接同步操作芯片,如SDRAM、SSRAM,具有较高的总线速度;GPCM连接异步操作的芯片,如异步时序内存、异步时序的专用芯片。MPC860的GPCM接口是地址和数据非复用的,基本操作时序如图4所示。为了简单起见,将读写时序在同一帧图上描述。其中片选读信号OE和写信号WE的上升或下降沿的位置可通过设置寄存器进行调整。 3 接口的设计原理和具体实现 从DS1687的时序看出,在一次读或写的操作中,地址/数据线先出现地址后出现数据;而GPCM接口在一次操作中,数据线输出数据,地址线输出地址。从这个特点出发,设想用MPC860的两次操作产生的时序来完成DS1687的一次操作。具体思路如下:把MPC860的数据线(D0…D7)与DS1687的地址/数据线(AD0…AD7)相连,通过MPC860的GPCM口直接输出的地址A11(也可根据内存空间划,随着选择一根地址线)、片选CS5(MPC860共有8个片选输出)、读信号OE和写信号WE的逻辑运算产生DS1687的ALE信号、读信号DS_RD、写信号DS_WE和片选信号DS_CS。逻辑运行如下: ALE=!(CS5)+A11+WE) DS_RD=OE+!A11 DS_WE=WE+!A11 DS_CS=CS5+/A11 上述逻辑用或门、非门很容易实现,但在本系统中,还要实现MPC860上电配置字设置、长监控时间的看门狗、MPC860与其它专用芯片的接口等其它功能,故选择可编程逻辑器件PLD来完成这些功能。随着PLD器件密度的提高和价格的下降,在系统中的应用会越来越广泛。在本设计中选择了Xilinx公司的CPLD器件XC95144。它属XC9500系列,由多个功能块(FB)和I/O块(IOB)组成,由开关矩阵FastCONNECTII完全互连。IOB提供器件的输入和输出缓冲,每个FB提供具有54个输入和18个输出的可编程逻辑的容量。该系列54个输入和18个输出的可编程逻辑的容量,该系列都是在系统可编程的,编程/擦除次数最少为1万次。CPLD的延时可以预测,适合作小规模的、对时序要求严格的逻辑。设计采用图形输入方式,逻辑原理如图5所示。 下面分析该电路的工作过程。当MPC860对DS1687进行读操作时(假设读取地址0x55的数据),首先执行一条地址为0x07060000,数据为0x55的写指令: REG8(0x07060000)=0x55 地址可根据系统定,但要保证A11=0,此时DS_RD、DS_WE、DS_CS均无效。DS1687的ALE信号在下降沿将AD0~AD7上的数据锁存作为地址,从ALE的表达式看到,ALE的下降沿正是WE的上升沿,而此时AD0~AD7上的数据也正是是指令写入的数0x55,也就是DS1687在ALE下降沿把0x55锁存作为地址。紧接着执行一条读取指令: value=REG8(0x07160000) 应保证读操作地址的A11=1。由操作时序和逻辑表达式可知,此时 ALE=0 DS_CS=CS5 DS_RD=OE 在DS_RD(OE)的上升沿,将0x55单元处的数据锁存进MPC860的value单元。 当MPC860对DS1687进行写操作时(假设地址为0x55,写入的数据为0xaa),需要两条写指针,第一条与读DS1687操作时相同,目的是把地址写入DS1687: REG8(0x07060000)=0x55 第二条同样是一条写指令: REG8(0x07160000)=0xaa 但目标地址要保证A11=1,此时接口输出的信号值为: ALE=0 DS_CS=CS5 DS_WE=WE 在DS_WE(即WE)的上升沿,将数据锁存进DS1687。 4 小结 在实际使用过程中,可以将读写DS1687分别编成一个函数,简化编程。该方法不仅适合于MPC860和DS1687的接口,也适合其它的数据地址非复用的CPU和数据地址复用的外围芯片的接口。该接口设计在BNAS系统中成功使用之后,已陆续在公司其他部门得到了应用。
编辑: 引用地址:http://www.eeworld.com.cn/designarticles/mcu/200703/12202.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved