![[机械模具数控自动化专业毕业设计外文文献及翻译]【期刊】基于MCS-51单片机结构中16MB寻址空间的设计-中文翻译_第1页](http://file.renrendoc.com/FileRoot1/2017-12/1/5fe4bfd3-91f4-4a8f-bd8c-732ef8ab1439/5fe4bfd3-91f4-4a8f-bd8c-732ef8ab14391.gif)
![[机械模具数控自动化专业毕业设计外文文献及翻译]【期刊】基于MCS-51单片机结构中16MB寻址空间的设计-中文翻译_第2页](http://file.renrendoc.com/FileRoot1/2017-12/1/5fe4bfd3-91f4-4a8f-bd8c-732ef8ab1439/5fe4bfd3-91f4-4a8f-bd8c-732ef8ab14392.gif)
![[机械模具数控自动化专业毕业设计外文文献及翻译]【期刊】基于MCS-51单片机结构中16MB寻址空间的设计-中文翻译_第3页](http://file.renrendoc.com/FileRoot1/2017-12/1/5fe4bfd3-91f4-4a8f-bd8c-732ef8ab1439/5fe4bfd3-91f4-4a8f-bd8c-732ef8ab14393.gif)
![[机械模具数控自动化专业毕业设计外文文献及翻译]【期刊】基于MCS-51单片机结构中16MB寻址空间的设计-中文翻译_第4页](http://file.renrendoc.com/FileRoot1/2017-12/1/5fe4bfd3-91f4-4a8f-bd8c-732ef8ab1439/5fe4bfd3-91f4-4a8f-bd8c-732ef8ab14394.gif)
![[机械模具数控自动化专业毕业设计外文文献及翻译]【期刊】基于MCS-51单片机结构中16MB寻址空间的设计-中文翻译_第5页](http://file.renrendoc.com/FileRoot1/2017-12/1/5fe4bfd3-91f4-4a8f-bd8c-732ef8ab1439/5fe4bfd3-91f4-4a8f-bd8c-732ef8ab14395.gif)
已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于 MCS-51 单片机结构中 16MB 寻址空间的设计 景伟良, 胡越利 ,曹家林(音译) 上海大学微电子研究与开发中心 中国上海市延长路 149 号,邮编 200072 邮编: ,电话 :086- 021- 56331271 摘要: 本文所介绍的是一种基于 MCS-51 结构的 MCU(微处理器,即单片机)进行16M 字节寻址空间的设计。外部数据和程序存储容量从 64KB 扩大到到 16MB 而时分复用地址总线却没有增量这样的改变使得整个指令集趋于更好。因此,一个有着大量数据和复杂算法的程序可以在这个单片机上处理和运行。在前边的设计成功模拟之后, 在 Nios(软核处理器)开发板实地实验验证了该设计是正确的。此外,此设计的增益在实际应用中效果良好,并允许单片机来控制一个拥有超过 64KB 的程序和巨大的数据的图像处理系统。 关键字: MCS51 单片机,单片机,程序地址,寻址空间 1. 简介 一个 SCMP(单芯片多处理器)架构在我们的 “皮肤诊断 “机器视觉芯片得到应用。它的每一个子处理器都有自己的责任,包括机器视觉的常用算法,数据库和知识库管理等,无需用户参与,而主处理器直接面向用户。其指令集与MCS-51 系列完全兼容,可同样执行 MCS-51 的指令为用户处理某些图像处理算法。由于系统应用工程师不再需要学习专业的图像处理知识,而有关机器视觉的培训和编程就可以实现某些相关功能,因此机器视觉技术可以很容易的使用在各种单片机领域。 为了实现上述目标,一个单片机必须能够控制和处理复杂的计算。它机器视觉芯片的核心和基本组成部分。众所周知 ,, MCS-51 的使用历史悠久,为满足各种各样的应用领域并且数量众多的第三方软件和仿真工具,因此,一个 MCS-51结构的单片机被设计了出来。但 MCS-51 的程序空间和数据容量分别只有 64 Kb1。这样的尺寸不能满足图像处理所需求的巨大数据量和复杂算法。如果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 块地址生成器的结构 PRO_BLOCK 特殊功能寄存器 用户应该在 LJMP/LCALL 指令处理前定义确定的块地址,这是为了跳过其他模块或调用位于其它块的子模块。实现这一目标的具体方法是在单片机中添加一个名为 PRO_BLOCK 的新的特殊功能寄存器,其地址为 FFH ,并且系统复位后,它的值将会被设置为 00H。用户可以在运行 LJMP / LCALL 指令前写一个 8位的块地址到这个 SFR(特殊功能寄存器)中。在图 4 中, PRO_BLOCK_W 是一个允许写入信号而 REG_RESULT 则存储由用户自定义的块地址。 中断 /调用后的块地址 如图 4 所示, Xramdi 存储的块地址是从堆栈中弹出的一个外部数据存储器中的值,而 Source_di 中存储的块地址是从堆栈中弹出的一个内部数据存储器中的值。 RET/RETI 指令结束时,最初存储在外部或内部存储器中的块地址从堆栈中弹出并发送 PRO_BLOCK SFR。 一个块地址的自动增量 在图 4 中,下一个块地址( PRO_BLOCK+1)被存储在 ROM_0。当程序运行时有序通过两个相邻的块, PRO_BLOCK SFR 的值会自动更新到的 ROM_0 使得单片机在下一个块初就可以正确读取下一个操作码或操作数。 相对跳转后的块地址 上一个块地址值( 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 次( MN)。主程序的功能是激活电路板上的蜂鸣器。中断入口的地址均位于 block_0 上和这三个模块被放在不同的块中。 在设计通过在 Quartus 平台(阿尔特拉公司)上的编译和仿真后, RTL(寄存器传输等级级 )单片机的 RTL(寄存器传输等级级 )代码就是 FPGA 中的代码它和测试机代码被放在一个主板上的闪存里。 这个实验的目的是验证程序可以返回 block_0 以及 24 位的指针可以正确地推入或弹出堆栈。实验结果与我们预期的一样,实现这一功能的设计被证明是正确的。 4.结论 这个拥有 16MB 的数据和 16MB 寻址空间的单片机是基于 MCS-51 结构的单片机所设计的。该指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 反复练习护士资格证考试试题及答案
- 光电工程的绿色改造试题及答案
- 2024年卫生管理证书考试试题及答案构建
- 公共卫生决策支持试题及答案讨论
- 厨房火灾考试题及答案
- 2024-2025年高中化学 专题3 第2单元 芳香烃教学设计 苏教版选修5001
- 2024心理咨询师考试中的案例分享试题及答案
- 2025年乡村全科执业助理医师考试专项训练试题及答案
- 初级药师考试关键知识回顾试题及答案
- 全面了解激光技术领域的考试知识试题及答案
- 医学教程 常见肺炎的影像诊断
- 人教版五年级英语单词
- 学校“五项管理”工作方案
- 2025年高中数学学业水平(合格考)知识点
- 大象版科学三年级下册全册练习题(含答案)
- 新《斜视弱视学》期末考试复习题库(含答案)
- 四川省会计师事务所服务收费标准
- 幼儿园中班科学活动《各种各样的鸟》课件
- 中国矿产资源集团招聘笔试题库2024
- 高速公路机电工程实施性施工组织设计计划作业指导书
- 部编版二年级下册语文课文必背内容(课文、古诗、日积月累)
评论
0/150
提交评论