单片机外文翻译-基于MCS-51单片机结构中16MB寻址空间的设计【中文4345字】【PDF+中文WOrd
单片机外文翻译-基于MCS-51单片机结构中16MB寻址空间的设计【中文4345字】【PDF+中文WOrd,中文4345字,单片机,外文,翻译,基于,MCS,51,结构,16,MB,寻址,空间,设计,中文,4345,PDF,WOrd
【中文4345字】
基于MCS-51单片机结构中16MB寻址空间的设计
景伟良,胡越利,曹家林(音译)
上海大学微电子研究与开发中心
中国上海市延长路149号,邮编200072
邮编:huyueli@shumchip.com ,电话:086- 021- 56331271
翻译:武俊宏 191001班,103568号
摘要:
本文所介绍的是一种基于MCS-51结构的MCU(微处理器,即单片机)进行16M字节寻址空间的设计。外部数据和程序存储容量从64KB扩大到到16MB而时分复用地址总线却没有增量这样的改变使得整个指令集趋于更好。因此,一个有着大量数据和复杂算法的程序可以在这个单片机上处理和运行。在前边的设计成功模拟之后, 在Nios(软核处理器)开发板实地实验验证了该设计是正确的。此外,此设计的增益在实际应用中效果良好,并允许单片机来控制一个拥有超过64KB的程序和巨大的数据的图像处理系统。
关键字:MCS51单片机,单片机,程序地址,寻址空间
1. 简介
一个SCMP(单芯片多处理器)架构在我们的“皮肤诊断“机器视觉芯片得到应用。它的每一个子处理器都有自己的责任,包括机器视觉的常用算法,数据库和知识库管理等,无需用户参与,而主处理器直接面向用户。其指令集与MCS-51系列完全兼容,可同样执行MCS-51的指令为用户处理某些图像处理算法。由于系统应用工程师不再需要学习专业的图像处理知识,而有关机器视觉的培训和编程就可以实现某些相关功能,因此机器视觉技术可以很容易的使用在各种单片机领域。
为了实现上述目标,一个单片机必须能够控制和处理复杂的计算。它机器视觉芯片的核心和基本组成部分。众所周知,,MCS-51的使用历史悠久,为满足各种各样的应用领域并且数量众多的第三方软件和仿真工具,因此,一个MCS-51结构的单片机被设计了出来。但MCS-51的程序空间和数据容量分别只有64 Kb[1]。这样的尺寸不能满足图像处理所需求的巨大数据量和复杂算法。如果51单片机的寻址空间可扩大而并不改变指令集和端口或引脚的定义, 那么MCS-51结构的单片机性能会在很大程度上得到改善和增强。本文提出了一种时分复用方法设计并实现16MB的数据空间和16MB程序地址空间。
2.16MB寻址空间的设计
2.1方案
2.1.1数据存储器
一个8位的SFR(特殊功能寄存器)“DPTR_PAGE”数据指针到被添加的一个16MB的外部数据存储器的页面地址,以便单片机访问这个16MB的空间。每一页的大小是64KB而16MB的数据存储器被分为256(28)页。作为一个标准的MCS-51单片机的寻址方法在每一页都是一样的。页面地址发出的Port2为最高的8位,通过Port0和Port2发送的中8位地址和低8位地址,就是作为一个标准的8051发送的16位地址。
图 1 外部数据存储器与单片机连接
单片机的连接方法及其外部数据存储器如图1所示。地址锁存1锁存低8位地址,地址锁存2锁存高8位地址。在高8位地址被锁存后,中8位地址会发送出去。
2.1.2程序存储器
开始前构思的关于使得单片机能够访问16MB程序存储器的两个设计想法:
其一是改变指令集。例如,原LCALL/LJMP addr16指令有16位操作数,我们可以改变它们为有24位操作数LCALL/LJMP addr24指令,而且在16MB的寻址空间中允许一个PA(程序地址)跳到另一个程序模块或者调用另一个任意子模块。这是在此设计议题下相对容易的修改,但标准的MCS-51编译程序必须进行修改,甚至重新设计。否则,原指令在标准的编译器下不能被正确解码。因此,这样修改指令集后的单片机难以广泛使用,也不利于它们的传播和兼容性使用。
另一种方案是对一个程序存储器进行逻辑分割,而不改变MCS-51的任何指令。一个可寻址的16MB程序存储空间包括256个数据块,而每一个数据块地址可确定24位地址中最高的8位。在每一个64KB的数据块中任何特定的地址包含了一个24位程序地址的中8位和低8位,而一个PC(程序计数器)保存这个程序地址中的低16位数据。
图 2 程序存储器的空间结构
为了使单片机设计具有更好的兼容性,我们采用第二种方法,即标准的MCS-51指令集是不变的还有额外的8位地址线也不添加。图2显示了扩展程序存储器的内存寻址空间结构。
2.2一个数据存储器的16MB寻址空间
2.2.1数据指针寄存器(DPTR)
一个数据指针由三个八位寄存器组成,分别是:DPTR_PAGE,DPTR_LOW和DPTR_HIGH。
DPTR_PAGE的地址为95H,该寄存器可以由用户自定义,它存储一个24位程序地址的高8位。
DPTR_LOW/DPTR_HIGH的地址是82H和83H,这两个寄存器也可以由用户自定义。它们保持一个24位程序地址的低8位和中8位。
2.2.2自动检测逻辑
这项工作提出了自动检测逻辑实现跨页的方式。
“ DEC DPTR ”指令,其地址为A5H ,是添加到单片机的。当单片机访问外部数据存储器时, INC DPTR / DEC DPTR指令可能导致DPTR的低16位的值从FFFFH改变为0000H或从0000H变成FFFFH以及跨页的情况业可能发生。在这样的情况下一个自动检测逻辑将会增加或减少DPTR_PAGE的内容,因此,数据可以被正确地写入或读出在16MB的数据存储器中的上一个或下一个页面。编码中实现跨页功能一些部分会在图3中显示 。其中,PC_CON [0]是“INC_DPTR”指令的一个解码信号而PC_CON [1]是“DEC_DPTR”指令的是一个解码信号。 CCLK信号是单片机的一个工作时钟。
图 3 一个自动检测逻辑的部分代码
2.3程序存储器的16M寻址空间
在单片机中, PC / PA / PRO_BLOCK / DPTR控制模块的设计计算和存下一个指令存储单元的地址。生成一个8位数据块地址,形成一个24位的程序地址和一个16位的程序计数器而DPTR就被这四个部分控制和管理。
2.3.1 PA(程序地址)和PC(程序计数器)
为了加快单片机的处理速度,就采取了一种预取技术。读取下一个指令的24位地址的第三阶段处于当前指令的最后一个机器周期。而程序存储器的每个内部单元地址来自一个PA根据所有被传输和存储的指令操作码和操作数这二者的地址。当MCU复位或电源供电时,24位PA的初始值是000000H 。
程序计数器(PC)是一个16位专用寄存器,并且可以使单片机处理一个64KB的空间。当MCU复位或电源供能时,一个16位PC的初始值为0000H 。 PC寄存器独立寄存器且不能访问用户[2]。
一个PA的低16位地址和整个PC的16位地址是一样的,除了当MOVCS指令执行时。例如,就像“ MOVC A,@A+PC”或“MOVC A,@A+DPTR”指令正在执行时,PC不发生变化,而PA的内容必须更改为(A+PC)或(A+DPTR)的值,以使MCU可以在更新后的地址读取数据并分配它们到累加器。因此,PC的控制逻辑电路和PA的有一些细微的不同之处。
2.3.2块地址生成器
块地址发生器负责产生PA的高8位地址,因此,块地址源顺的序设计正确与否将直接决定程序是否可以正常运行。块地址有三个来源除了默认值“00H”还有:用户可以自定义数据;RET / RETI指令执行后,从外部或内部PA的堆栈数据;程序跳转到相邻块后程序块地址的更新。请看图4:块地址生成器结构。
图 4 块地址生成器的结构
2.3.2.1 PRO_BLOCK 特殊功能寄存器
用户应该在LJMP/LCALL指令处理前定义确定的块地址,这是为了跳过其他模块或调用位于其它块的子模块。实现这一目标的具体方法是在单片机中添加一个名为PRO_BLOCK的新的特殊功能寄存器,其地址为FFH ,并且系统复位后,它的值将会被设置为00H。用户可以在运行LJMP / LCALL指令前写一个8位的块地址到这个SFR(特殊功能寄存器)中。在图4中,PRO_BLOCK_W是一个允许写入信号而REG_RESULT则存储由用户自定义的块地址。
2.3.2.2中断/调用后的块地址
如图4所示,Xramdi存储的块地址是从堆栈中弹出的一个外部数据存储器中的值,而Source_di中存储的块地址是从堆栈中弹出的一个内部数据存储器中的值。RET/RETI指令结束时,最初存储在外部或内部存储器中的块地址从堆栈中弹出并发送PRO_BLOCK SFR。
2.3.2.3一个块地址的自动增量
在图4中,下一个块地址(PRO_BLOCK+1)被存储在ROM_0。当程序运行时有序通过两个相邻的块,PRO_BLOCK SFR的值会自动更新到的ROM_0使得单片机在下一个块初就可以正确读取下一个操作码或操作数。
2.3.2.4相对跳转后的块地址
上一个块地址值( PRO_BLOCK - 1 )被存储在图4所示ROM_1中。当程序跳转到相对前一个块时, PRO_BLOCK SFR的值会自动更新到ROM_1。而当程序跳转到下一个块的相对块时, PRO_BLOCK的值更改到ROM_0。
3.仿真和验证
3.1在工作站上的仿真
工作站上对软核进行的仿真相对彻底(SUNW SUNW, ULTRA-60;SPARC SUN4U)。该工作站上的仿真工具是Verilog -XL(Cadence)。汇编语言代码测试CJNE指令的部分如图5中所描述。Test_bench的目的是验证16MB程序寻址空间的设计方案是正确的。当某个程序运行有序的通过两个相邻块时,PRO_BLOCK的值会自动增一。任何程序都可以在每块或整个区块不仅自由而且准确的进行相对跳跃。
图 5 CJNE指令的测试代码
测试结果的波形图如下所示。STATE是MCU状态机的一个信号和PROGA一样是24位PA 。
图 6 CPL 0D3H
图6是测试代码的起始波形,PORT0发送数据和一个PA的低8位的每一个其他阶段数。“B2 D3”是“CPL 0D3H”的机器代码。
图 7 CJNE @ R0, #01H, ADD0
在图7中,“B6 01 66”是“CJNE @ R0,#01H,ADD0”的机器代码。在该指令结束时,PROGA显示ADD0“1900C4H”的地址和“MOV P1,0D0H '将被处理。
图 8 MOV P1, 11H
在图8中,“B5 11 90”是“MOV P1,11H”的机器代码。由于如跳跃或调用这类指令没有处理,PROGA 从BLOCK_19到BLOCK_1A将会自增一。
图 9 CJNE @R1, #0E7H, ADD4
在图9中,“B7 E7 F2”是“CJNE @R1,#0E7H,ADD4”的机器代码。在该指令结束时,PRO_BLOCK从BLOCK_1A到BLOCK_19自减一,相对相邻块的跳转实现。
3.2 FPGA验证
软核在Altera Nios FPGA开发板上也被验证。一个特定的测试环境的描述如下:
外部中断源为零(IT0)设置为优先于外部中断源一(IT1)。该主程序运行时,IT1的有效信号比IT0的更早出现。而随着IT1子模块被处理,IT0产生有效信号。IT1的优先级较低,所以它的中断子模块将暂停而IT0的中断子模块将被执行。当IT0的子模块完成后,PA将会被改变到IT1子模块已被停止处而该模块将继续执行,直到执行到该子模块的底部。到那时,主程序将被再次激活。 IT0和IT1由一个Nios板上的两个乒乓键提供。该IT1子模块的作用是使LED的数字'1'有序的显示M次,而IT0子模块可以让LED的数字“0”有序的显示N次(M>>N)。主程序的功能是激活电路板上的蜂鸣器。中断入口的地址均位于block_0上和这三个模块被放在不同的块中。
在设计通过在Quartus平台(阿尔特拉公司)上的编译和仿真后,RTL(寄存器传输等级级)单片机的RTL(寄存器传输等级级)代码就是FPGA中的代码它和测试机代码被放在一个主板上的闪存里。
这个实验的目的是验证程序可以返回block_0以及24位的指针可以正确地推入或弹出堆栈。实验结果与我们预期的一样,实现这一功能的设计被证明是正确的。
4.结论
这个拥有16MB的数据和16MB寻址空间的单片机是基于MCS-51结构的单片机所设计的。该指令集与标准8051完全兼容,因此那些支持51系列的工具和第三方软件都可以使用。工作站和FPGA的仿真已验证了该设计是正确的。作为IP (知识产权)内核, MCU已被嵌入到SCMP(单芯片多处理器)结构的图像处理系统芯片中。成本低,功能强大,兼容性好和巨大的寻址空间,这些优点使这种MCU具有非常广泛的应用领域。
致谢
作者感谢包括逻辑、合成、位置、线路、CAD和测试产品工程师为整个设计团队所做的贡献。
参考资料
[1] 英特尔公司单片机手册,MCS-51Family,英特尔公司 (1984), pp. 6-8.
[2] Myke Predko,8051单片机的编程和自定义, McGraw-Hill (1999), pp. 7-8.
景伟良,1980出生于中国上海。2003年在中国上海大学获得电气工程工学学士学位。
他目前就读于上海大学,攻读微电子和固体电子学硕士学位,他的研究兴趣是具有高设计性能和图像处理系统的SCMP结构单片机。
胡越利,1982年在上海科技大学获得应用物理的理学学士学位,1989年获得电气工程专业的工程硕士学位。
目前他以副教授的身份工作于上海大学微电子研发中心。他的研究领域包括数字IC设计,影像处理与机器视觉。
曹家林,上海大学微电子研发中心主任,上海大学副校长。
作为一位教授,他的研究领域包括图案识别和VLSI电路。
收藏
编号:233075393
类型:共享资源
大小:197.77KB
格式:ZIP
上传时间:2023-10-02
12
积分
- 关 键 词:
-
中文4345字
单片机
外文
翻译
基于
MCS
51
结构
16
MB
寻址
空间
设计
中文
4345
PDF
WOrd
- 资源描述:
-
单片机外文翻译-基于MCS-51单片机结构中16MB寻址空间的设计【中文4345字】【PDF+中文WOrd,中文4345字,单片机,外文,翻译,基于,MCS,51,结构,16,MB,寻址,空间,设计,中文,4345,PDF,WOrd
展开阅读全文
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。