文献翻译基于MCS51单片机结构中16MB寻址空间的设计.docx

上传人:b****7 文档编号:10137928 上传时间:2023-02-08 格式:DOCX 页数:11 大小:150.78KB
下载 相关 举报
文献翻译基于MCS51单片机结构中16MB寻址空间的设计.docx_第1页
第1页 / 共11页
文献翻译基于MCS51单片机结构中16MB寻址空间的设计.docx_第2页
第2页 / 共11页
文献翻译基于MCS51单片机结构中16MB寻址空间的设计.docx_第3页
第3页 / 共11页
文献翻译基于MCS51单片机结构中16MB寻址空间的设计.docx_第4页
第4页 / 共11页
文献翻译基于MCS51单片机结构中16MB寻址空间的设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

文献翻译基于MCS51单片机结构中16MB寻址空间的设计.docx

《文献翻译基于MCS51单片机结构中16MB寻址空间的设计.docx》由会员分享,可在线阅读,更多相关《文献翻译基于MCS51单片机结构中16MB寻址空间的设计.docx(11页珍藏版)》请在冰豆网上搜索。

文献翻译基于MCS51单片机结构中16MB寻址空间的设计.docx

文献翻译基于MCS51单片机结构中16MB寻址空间的设计

 

毕业(设计)论文

英文翻译

 

系别

专业

班级

学生姓名

学号

指导教师

报告日期

基于MCS-51单片机结构中16MB寻址空间的设计

景伟良,胡越利,曹家林(音译)

上海大学微电子研究与开发中心

中国上海市延长路149号,邮编200072

邮编:

huyueli@,电话:

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的程序空间和数据容量分别只有64Kb[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/LJMPaddr16指令有16位操作数,我们可以改变它们为有24位操作数LCALL/LJMPaddr24指令,而且在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自动检测逻辑

这项工作提出了自动检测逻辑实现跨页的方式。

“DECDPTR”指令,其地址为A5H,是添加到单片机的。

当单片机访问外部数据存储器时,INCDPTR/DECDPTR指令可能导致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.1PA(程序地址)和PC(程序计数器)

为了加快单片机的处理速度,就采取了一种预取技术。

读取下一个指令的24位地址的第三阶段处于当前指令的最后一个机器周期。

而程序存储器的每个内部单元地址来自一个PA根据所有被传输和存储的指令操作码和操作数这二者的地址。

当MCU复位或电源供电时,24位PA的初始值是000000H。

程序计数器(PC)是一个16位专用寄存器,并且可以使单片机处理一个64KB的空间。

当MCU复位或电源供能时,一个16位PC的初始值为0000H。

PC寄存器独立寄存器且不能访问用户[2]。

一个PA的低16位地址和整个PC的16位地址是一样的,除了当MOVCS指令执行时。

例如,就像“MOVCA,@A+PC”或“MOVCA,@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.1PRO_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_BLOCKSFR。

2.3.2.3一个块地址的自动增量

在图4中,下一个块地址(PRO_BLOCK+1)被存储在ROM_0。

当程序运行时有序通过两个相邻的块,PRO_BLOCKSFR的值会自动更新到的ROM_0使得单片机在下一个块初就可以正确读取下一个操作码或操作数。

2.3.2.4相对跳转后的块地址

上一个块地址值(PRO_BLOCK-1)被存储在图4所示ROM_1中。

当程序跳转到相对前一个块时,PRO_BLOCKSFR的值会自动更新到ROM_1。

而当程序跳转到下一个块的相对块时,PRO_BLOCK的值更改到ROM_0。

3.仿真和验证

3.1在工作站上的仿真

工作站上对软核进行的仿真相对彻底(SUNWSUNW,ULTRA-60;SPARCSUN4U)。

该工作站上的仿真工具是Verilog-XL(Cadence)。

汇编语言代码测试CJNE指令的部分如图5中所描述。

Test_bench的目的是验证16MB程序寻址空间的设计方案是正确的。

当某个程序运行有序的通过两个相邻块时,PRO_BLOCK的值会自动增一。

任何程序都可以在每块或整个区块不仅自由而且准确的进行相对跳跃。

图5CJNE指令的测试代码

测试结果的波形图如下所示。

STATE是MCU状态机的一个信号和PROGA一样是24位PA。

图6CPL0D3H

图6是测试代码的起始波形,PORT0发送数据和一个PA的低8位的每一个其他阶段数。

“B2D3”是“CPL0D3H”的机器代码。

图7CJNE@R0,#01H,ADD0

在图7中,“B60166”是“CJNE@R0,#01H,ADD0”的机器代码。

在该指令结束时,PROGA显示ADD0“1900C4H”的地址和“MOVP1,0D0H'将被处理。

图8MOVP1,11H

在图8中,“B51190”是“MOVP1,11H”的机器代码。

由于如跳跃或调用这类指令没有处理,PROGA从BLOCK_19到BLOCK_1A将会自增一。

图9CJNE@R1,#0E7H,ADD4

在图9中,“B7E7F2”是“CJNE@R1,#0E7H,ADD4”的机器代码。

在该指令结束时,PRO_BLOCK从BLOCK_1A到BLOCK_19自减一,相对相邻块的跳转实现。

3.2FPGA验证

软核在AlteraNiosFPGA开发板上也被验证。

一个特定的测试环境的描述如下:

外部中断源为零(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]MykePredko,8051单片机的编程和自定义,McGraw-Hill(1999),pp.7-8.

景伟良,1980出生于中国上海。

2003年在中国上海大学获得电气工程工学学士学位。

他目前就读于上海大学,攻读微电子和固体电子学硕士学位,他的研究兴趣是具有高设计性能和图像处理系统的SCMP结构单片机。

胡越利,1982年在上海科技大学获得应用物理的理学学士学位,1989年获得电气工程专业的工程硕士学位。

目前他以副教授的身份工作于上海大学微电子研发中心。

他的研究领域包括数字IC设计,影像处理与机器视觉。

曹家林,上海大学微电子研发中心主任,上海大学副校长。

作为一位教授,他的研究领域包括图案识别和VLSI电路。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1