十六位单片机MCS-96数据总线控制

来源 :电子世界 | 被引量 : 0次 | 上传用户:hytsxz
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  十六位单片机MCS-96X序列内部的硬件构造比八位单片机MCS-51系列复杂,使得外围接口电路也变得复杂,主要体现在片外的总线配制方面。51系列单片机的总线片内、片外均为八位,不存在配制问题。而MCS-96片内是十六位结构,片外的数据总线可以配制成十六位,构成全十六位机;也可以配制成八位,构成准十六位机。当然,后者的性能会有所下降。而片外的数据总线又可分为程序存储器(ROM或EPROM)数据总线和数据存储器(RAM)数据总线,它们可以单独配制成十六位或八位,由此搭配而成的方式较多。可见,片外数据总线的配制成了十六位单片机外围接口中最复杂的部分。必须说明的是:这里所指的总线都是数据总线,因为不管片内片外,地址线均为十六位。在MCS-96中,以片内无程序存储器的芯片80C196XX(如80C196KB等)价格最低廉,故应用也最广。
  
  1.与系统总线有关的几条控制线
  
  系统总线的各种配制是依赖MCS-96的有关几条控制线(输入或输出脚)与芯片配置寄存器CCR的有关设置共同来实现的。它们是:
  (1)地址总线分离控制线 ALE / ADV 地址片的锁存信号,高电平有效的 ALE,或低电平有效的ADV。
  (2)读控制线 RD 从片外读取指令或数据时,RD低电平有效,而且总是按“字”进行。
  (3)写控制线 WRL 和 WRH 或 WR、BHE、A0 向片外数据存储器写入数据时,有写高位字节、写低位字节、同时写高位和低位字节(一个字)三种写入方式。根据总线配置的方式的不同,会出现不同的控制信号。
  (4)总线宽度选择线 BUSWIDTH 为0时选择八位;为1时选择十六位。但它还须与芯片配置寄存器CCR的D1位联合进行控制。
  (5)取指信号线 INST 80C196KB还输出一根取指信号线,平时该线输出低电平,只有在向片外取指时变为高电平(在地址有效期内)。利用这一特性可以将片外的程序存储空间和数据存储空间分开(类似51系列的PSEN信号线),使总的存储空间比原来的多出一倍。
  (6)准备就绪信号线READY 80C196为了适应片外慢速存储器或外设的时序要求,在正常执行的状态周期中插入等待周期,是否等待或等待多久由CCR寄存器的D5、D4位确定。
  为了使单片机能实现多种总线配置方案,满足存储器的接口要求和就绪控制,所有可供灵活选择的信息都集中在芯片配置寄存器CCR中。有关该寄存器内各位功能请见前期的“准十六位单片机8098及80C198”一文中的表2。
  


  外部数据总线的宽度不光与CCR 的D1位有关,还与控制线BUSWIDTH 的状态有关,两者的关系,如表 1所示。只有当D1=1,BUSWIDTH=1 时,数据总线宽度才为十六位。显见,当D1=1时,由BUSWIDTH的状态就可以单独决定总线的宽度,这可以通过地址线译码或程序运行来设定,使总线宽度随着功能的需求而进行动态的改变。
  
  2.MCS-96外部数据总线的四种控制方式
  
  (1)标准总线方式 当CCR D2=1,CCR D3=1 时,80C196提供写信号WR、BHE 和地址锁存信号ALE。当总线宽度为十六位时(BUSWIDTH=1),须由WR、BHE和地址线A0通过译码电路获得WR HIGH、WR LOW信号,用来分别写偶单元字节(低位字节)和奇单元字节(高位字节)。当总线宽度为八位时(BUSWIDTH=0),只须用WR信号就可。地址线送出时,ALE变高,其下降沿作为外部地址的锁存信号。
  (2)写选通方式 当CCR D1=1,且总线宽为十六位时( BUSWIDTH=1),WR、BHE 被WRL、WRH替代,分别向偶单元和奇单元写入一个字节。当总线宽度为八位时(BUSWIDTH=0),只使用WRL便可。地址锁存信号仍为ALE。写选通方式比标准方式的外部接口要简单,不需要译码电路,便可直接输出写信号。
  此外还有地址有效选通方式,地址有效写选通方式以1、2两种较为常用。单片机还会因片内是否有程序存储器而使外部的系统总线有所区别。当内部有程序存储器时(ROM、EPROM等),其外部总线只涉及数据存储器(RAM),结构显然要简单。
  外部程序存储器和数据存储器的数据总线并不要求使用相同的宽度,可以分别使用八位和十六位,这两者又会出现四种搭配方式:①八位总线程序存储器 + 八位总线数据存储器;②十六位总线程序存储器 + 八位总线数据存储器;③十六位总线程序存储器 + 十六位总线数据存储器;④八位总线程序存储器 + 十六位总线数据存储器。其中第四种通常不用。限于篇幅,下面仅以③为例进行说明。
  


  十六位总线程序存储器 + 十六位总线数据存储器 其电原理图见图1,这是一种全十六位机,我们采用了最常见的80C196KB。它的封装采用68脚的PLCC结构。本电路的总线方式为写选通方式,芯片配制寄存器CCR的内容为:11111011B(FBH),其意是:无保密,不等待,地址信号线ALE,写选通信号WRL和WRH,数据总线宽度十六位,BUSWIDTH=1。
  采用写选通方式,写信号线由标准方式的WR、BHE 自动转换为WRL、WRH,并直接对存储器进行写控制。它的取指及数据的读、写都是十六位的字操作(写数据时还可以单独由WRL或WRH分别对IC6或IC7进行字节操作)。故运行速度是最快的。
  在器件的选用上,由于很难找到十六位的地址锁存器,这里用两片八位的地址锁存器IC2、IC3串级使用,分别用于低八位、高八位的地址锁存,这是一种价廉物美的方式,使用上也方便。同样的原因,十六位的程序存储器也采用了这种方式,用两片八位的EPROM芯片IC4、IC5串级使用,分别用于低八位(偶单元)的程序存储和高八位(奇单元)的程序存储。由于程序存储空间为16K×16位,存储芯片只能用两片27128。地址区间为0000~7FFFH。
  对于数据存储器,也是用两片八位的RAM芯片IC6、IC7串级使用,IC6、IC7应用62128型号,该型号难找,此处用62256代替,将该片的地址脚A14接地即可。地址区间为8000~FFFFH。
  必须说明的是:经IC2、IC3锁存器输出的地址线A0~A15中,A0必须空出,而将A1~A14依次接到IC4、IC5的地址脚A0~A13上。原因是取指时每次读一个字(IC4、IC5各读一个字节,且两片的地址相同),给出的地址必须能包含IC4低位字节(偶单元)和IC5高位字节(奇单元)。采用上述接法可以选中一个字中对应的低位字节和高位字节,并通过AD0~AD7和AD8~AD15读入到单片机内。
  对于数据存储器,地址线A0也空出不用,A1~A14依次分别接到数据存储器IC6、IC7的A0~A13脚。不过,写数据存储器时,有三种写法:①可以写一个字(WRL、WRH同时变低),写低八位字节(WRL变低),写高八位字节(WRH变低)。
  它的地址译码由地址线A15控制,为低时选通程序存储器IC4、IC5;为高时通过反相器D选通数据存储器IC6、IC7。图2给出了相应的时序图。
  


  因IC4、IC5分别为偶单元和奇单元的存储芯片,应将目标代码文件依序分成0、2、4、6……2N(偶单元文件)和1、3、5、7……2N+1(奇单元文件)两个文件,并分别固化到IC4、IC5中。
  CCR芯片配置寄存器参数写入法 CCR是一个特殊的专用寄存器,无法通过对内部RAM的访问来改变CCR的内容,而该寄存器的内容对总线的设置又至关重要。80C196KB复位后不是从0000H开始运行,而是从2080H开始运行,而程序固化的起始地址却是从2000H开始。在2000~2079H单元中,除少数被定义外,大部分被保留下来用于未来的产品开发。其中有一个特殊的单元2018H称之为芯片配置字节(CCB),这个单元属于程序存储区的范围,应事先对其内容进行设置编程。当系统复位且只有复位时,CCB的内容才被自动装载到芯片配置寄存器CCR中,由此可见,CCR的内容是通过CCB的间接方式写入的。
  2018H(CCB)单元的编程方法虽有几种,但最方便的莫过于使用编辑器来进行。因为编辑器一般都有CCB的设置界面,操作者只须依总线的需要进行设置,再将它与已编制好的源程序一起进行汇编,获得目标程序,再进行固化就可以了。而编辑器的种类很多,功能也不尽相同,工作的平台也不相同,但我们总可以在集成调试软件界面的主菜单—子菜单中,找到一个有关的设置界面,其中有五项是对CCB参数的设置。从1~5依次是总线宽度设置、写控制线设置、地址选通设置、等待周期设置、保密设置。它们依次对应于CCR中的D1、D2、D3、D4、D5、D6D7。下述的具体设置对应于图1总线的写选通方式。
  设置完毕后,再将欲汇编的源程序调入窗口进行汇编,通过后,则刚才设置的内容已写入到2018H中。我们可以通过反汇编窗口进行查看,将程序区向前移至2018H单元,可以看到其内容是11111011(FBH)。
  奇、偶单元固化文件的获取 当程序存储器采用十六位数据总线时,如前面所述,必须将原来的固化文件一分为二,构成对应的偶(低八位)固化文件和奇(高八位)固化文件,并分别固化到偶(低八位)程序存储器IC4和奇(高八位)程序存储器IC5中。注意:这里所说的固化文件是指能用于程序存储器固化的可执行的二进制文件,而不是其它的文本文件。这类文件的后缀是 . ROM或 . BIN。 后缀为 .OBJ文件属格式机器码,这里不能使用。
  采用编辑器可以很方便地获得固化文件,但要将固化文件(暂取名为:FILE.ROM)一分为二获得对应的偶文件(暂取名为:FILE(0).ROM)和奇文件(暂取名为:FILE(1).ROM),几乎所有的编辑器都无能为力。这需要我们自己动手编制软件才能完成。
  


  首先,我们应先由FILE.ASM文件获取二进制固化文件FILE.ROM。获取该文件有多种方法,也可以采用编辑器。我们将文件的名称定为:FILE.ROM,记住文件的长度(字节数),将该文件放在某个子目录下(如C:\A96\FILE.ROM)。
  下面,我们用C语言和BASIC语言各编制出一个程序(程序见本刊网站),用于将固化文件一分为二获得对应的奇、偶文件,这两个程序的效果是相同的,读者可以根据自己熟悉的语言选用一种。以C语言程序为例说明其使用方法,将上面的二进制文件FILE.ROM的长度填入程序的第8行(a=XX)*[1],再将文件名及路径填入第10、16、17、18、25、32行*[2]。然后运行该程序。运行通过后,退出菜单界面,便可显示原二进制固化文件FILE.ROM及偶文件FILE(0).ROM和奇文件FILE(1).ROM的内容(以十六进制方式显示,便于查看)。读者可将三个文件进行核对,正确与否一看便知。在子目录A96下即可获得对应的奇、偶文件。图3给出了C语言程序的简易流程图,BASIC语言程序的流程图与图3大同小异,只是某些过程顺序有些改动,该程序填入文件长度(第2行*[1])和文件名及路径(第3、4、5行*[2]),运行后将直接显示上述三个文件的十六进制值。将偶文件和奇文件分别固化到IC4 和 IC5中,并分别插入各自的插座,不可插错。
  运行C语言程序时,有时需要连续运行两次方能获得对应的奇偶文件,而BASIC程序可以一次到位。
其他文献
随着屏幕尺寸的增大和电子技术的发展,电视的附加功能也变得越来越多,很多大屏幕电视带有或部分带有诸如国际制式、画中画、A1人工智能、200频道、中国丽音、图文电视、音响单独听、立体电视、DVR追时、防雷击、拉幕开关机、防雷击、低音炮、上网/游戏和万年历/电视鱼缸等五花八门的功能。这些附加功能令人眼花缭乱,也让广大消费者在选购时疑虑重重,如“这些附加功能都有什么用途、是否真的有用?”“哪些功能才是真正
期刊
sbgs 目前在数字电视尚未普及之际,我仍选CRT电视;若数字电视普及后可能考虑选择液晶电视!  lemon166 我选择液晶电视:纯平电视在内的传统阴极射线管(CRT) 电视由于体胖身沉、耗电量大,明显受到了来自液晶电视和等离子电视的严重挑战。液晶电视和等离子电视一样具有无辐射、图像无闪烁、厚度薄重量轻、色彩鲜艳、图像逼真等特点。虽然液晶电视在大屏幕化方面不及等离子电视,但液晶电视还有节能
期刊
  
期刊
海信TG-1B系列彩电采用东芝单片小信号处理电路TB1227N,由于控制系统软件不同,分两种电路,两种电路存储电台的数量不同,总线系统的调整方法和调整项目也不同,但两种电路的总线系统基本相同。  微处理器NA01(M37222M6-084SP)有3组总线输出:第一组NA01通过38脚的数据线(SDA1)和37脚的时钟线(SCL1)与被控电路N501视频解码/扫描小信号处理电路TB1227N的10、
期刊
前几天我为一位朋友重装系统,不料却发现了一个很奇怪的问题。  问题的起因是朋友的软驱损坏了,不能读盘,于是我帮他把软驱取下来打算送到电脑城维修,又看到他的系统比较混乱,顺便帮他重新安装了一次系统。朋友的这台电脑配置是C4 1.7G、QDI联想845GL主板(整合声卡、显卡和网卡)、256MB DDR内存、40GB希捷硬盘、15英寸LGl50S液晶显示器。由于我原来就已经将Win98的安装程序和驱动
期刊
以日本索尼、松下电器公司为代表的蓝光(BD)集团和以东芝、日本电气公司为代表的HD-DVD集团21日决定就统一下一代数码多用途光盘标准问题举行会谈,希望能共同开发出第三种下一代数码光盘技术,并使其成为世界标准。   蓝光集团与HD-DVD集团之间的下一代数码光盘标准之争,实际上是国际电器行业的下一代数码光盘以及光盘播放和录像机的标准之争。因为这两大集团几乎涵盖了世界上主要家用电器以及信息内容等硬件
期刊
TDA9181P是Philips公司2002年底推出的产品,它是一种自适应PAL/NTSC制的梳状滤波器,内设有二条延时线、时钟控制和输入钳位电路等,可适用的视频制式为PAL-B、G、H、D、I、M、N制和NTSC-M制。利用输入开关切换能选择两路复合视频输入信号CVBS,被选取的CVBS输入信号经滤波后可获得一个已经梳滤的亮度输出信号和一个已经梳滤的色度输出信号。利用开关电容电路技术,要求内部时
期刊
目前DV摄像机越来越多地走入了普通家庭。我们在购买数码摄像机的时候会注意到,它的技术指标除了常见的诸如CCD、镜头、变焦、防抖等指标外,还会有一个指标:低照度指标,也就是我们俗称的夜视功能。它是用lx来表示的。lx是一个亮度单位,它的意思是指在距离摄像机一米处点一根蜡烛,这一烛光的亮度就叫1lx。  我们来看看DV机是怎样来实现夜视功能的。  常见的DV机的夜视功能的实现可以分成两类。松下和JVC
期刊
目前摄像头是越来越便宜,越来越多的电脑用户在自己的电脑桌上安装了一只摄像头,使用腾迅QQ或MSN MESSENGER或YAHOO MESSENGER等网络工具和国内外的亲朋好友在网上进行“面对面”的聊天。  不过,目前绝大多数摄像头的像素仅为10~30万,最多也才35万左右,所以此时获得的影像是很粗糙的,色彩也是不能令人满意的。如果自己有一台数码摄像机(DV),把数码摄像机当作摄像头,(也就是使用
期刊
在当今社会,信息的高速发展,造成了人们对存储空间的急迫需求,大家都希望有一种可以存储大量数据,又很廉价的存储方式,这就是我这里为大家介绍的采用DV磁带+DVStreamerPRO2软件备份数据的新方式,DVStreamerPRO2是一个来自硅谷的小公司的产品,他们试图对磁带技术展开一次废物利用式的尝试。DV Streamer的总工程师在介绍自己的理念时说道:“目前摄像机使用的DV带和超八毫米磁带都
期刊