80C51原始IP核内部RAM的扩展方案

发布者:梦中徐来最新更新时间:2014-09-11 来源: eefocus关键字:80C51  IP核  RAM的扩展 手机看文章 扫描二维码
随时随地手机看文章
引言
  80C51系列单片机是一类经典的8位微处理器,其设计方法和体系结构一直是其他各类单片机设计的参考典范,自从20世纪80年代面世以后,得到了极大的发展与应用。直到今天,市场上还有一大部分单片机应用成品将其作为处理核心。基于80C51系列单片机无知识产权保护、市场应用广泛等优点,对其进行功能拓展,既有利于经济上节约成本,也有利于成果的推广使用。而随着单片机应用日趋复杂化,传统的51系列单片机在设计上的不足逐渐显现出来。如在现有128字节内部RAM基础上,处理一些比较复杂的算法就显不足。鉴于此,本文在Oregano公司设计的8051 IP核(即下述MC8051)基础上,进行了对其内部RAM高128字节扩展。给出一种新的扩展设计方法,实现了对与一般RAM区地址空间相连的高128字节的间接寻址操作,并以此为基础,对内部RAM进行了可达64 KB的扩展实现,通过了相应的软硬件仿真测试。
1 对MC8051高位128字节的扩展设计
  对MC8051高位128字节的扩展设计主要分3个方面加以说明:一是传统80C51系列的内部基本结构;二是高128字节的寻址方式;三是对IP核内部的RAM地址选择控制。
1.1 传统80C51系列的内部基本结构
  80C51是经典的单片机系列,具有典型的单片机体系结构,由CPU系统、ROM、RAM、I/O口以及特殊功能寄存器SFR、2个16位定时/计数器、5个中断源和1个串口组成。针对本文所要讨论的内容,这里介绍一下80C51存储结构和寻址方式:80C51系列单片机存储器结构采用哈佛型结构,物理上共分片内外程序存储器、片内外数据存储器4个存储空间。对于数据存储器,片内外数据存储器地址彼此独立,指令寻址各自不同,这里主要关注片内数据存储单元的结构。
  8051单片机共有7种寻址方式,这里只对其中3种作一下简要介绍:立即寻址,操作码后的一个字节就是实际操作数本身;寄存器寻址,操作码后为某一寄存器编号,寄存器的内容为操作数;寄存器间接寻址,其与寄存器寻址的区别在于前者寄存器中的内容就是操作数,而后者寄存器中的内容为操作数地址,此地址指向的寄存器中存入的数据才是实际操作数本身。
1.2 高128字节的寻址方式
  由前面介绍内容可知,MC8051内部RAM分为地址相连、功能不同的两部分:低128字节的内部用户RAM区和高128字节的特殊功能寄存器区(SFR)。这两部分均可用寄存器直接、间接寻址方式进行寻址操作。经过设计修改的8051,低128字节的功能和操作方式完全不变,对其高128字节,分为地址重叠和功能不同的两部分,以不同的寻址方式加以区别,控制操作。高128字节如果作为内部用户RAM使用,只可以通过寄存器R0、R1进行寻址,以地址为85H的寄存器单元为例,若此时85H作为SFR,则用命令“MOV 85H, #33H”;若此时作为一般内部用户RAM单元,则用命令:
  MOV R0,# 85H
  MOV @R0,#33H
  在MC8051中,寄存器R0、R1只应用于寄存器间接寻址使用,即R0、R1中存储的内容为间接寻址中操作数的地址。对高128地址空间,如果作为一般的RAM寄存区使用,只采用间接寻址;如果作为特殊功能寄存器区(SFR),则采取除间接寻址外的其他寻址方式。这样就可以通过只对R0、R1中内容进行条件判定,确定是否触发对高128地址空间进行一般RAM数据操作。
1.3 IP核内部的RAM地址选择控制
  在MC8051中,对低128字节用户RAM区的读写有专门的地址输出ram_address_out。由于1个字节的寻址长度为256,所以ram_address_out只取内部地址s_adr低7位,即ram_address_out<=s_adr(6 downto 0),辅以RAM写使能控制,实现对低128字节的读写。这里由于要对RAM区扩展成为256字节,所以用户RAM区的地址应该可以寻址256字节长度。这就要求对IP核中对RAM区的地址传递有相应的修改,修改后地址的具体传递过程如图1所示。

图1 RAM地址传递控制
  一个完整的执行过程如下所述:首先CPU从ROM读取指令,然后到内部状态机进行指令解释,送入译码器执行具体的数据和地址的存取操作(译码器中通过地址多路选择器adr_mux和数据多路选择器data_mux来实现对地址和数据的控制)。如果此时命令不涉及寄存器间接寻址,由图1可知,取到的RAM地址就是一般8051的执行结果。如果此时进行寄存器间接寻址,则可分为两种情况:一是对高128字节的间接寻址,此时的操作目的,是要对高128字节进行一般RAM的数据操作;二是除第一种情况外的一般寄存器间接寻址操作。由于SFR不能使用寄存器间接寻址,所以这两种情况可以根据R0、R1中存储的地址的最高位进行判别。
  第一种情况:最高位为“1”时,说明高128字节(80H~FFH)作为一般RAM来使用,此时把R0、R1中的地址赋给RAM地址,同时置RAM使能控制ram_write_en为“1”,实现对某一高位地址的写操作。还以85H为例,执行指令“MOV R0, #85H”, R0中内容变为85H,然后执行“MOV @RO,#33H”,此时R0用作间接寄存器,进行间接寻址,且寄存器中的字节最高位为“1”,对RAM区操作的地址就是间接寄存器中寄存的地址85H,从而实现对85H的数据存储。
  第二种情况:最高位为“0”时,说明只是对低128字节进行间接寻址操作,执行过程如一般8051。
2 64 KB内部RAM的扩展设计
  通过对一个特殊移存器(选取84H,记为SRAM0)的软件配置,在高128字节内部RAM扩展设计的基础上,可以实现内部64 KB RAM的扩展。在对高128字节内部RAM的扩展设计中,通过对s_address_ram最高位进行判断,确定地址信号s_address1,进而作为内部RAM地址ram_address_out输出。以这个方法为基础,将ram_address_out改为16位长,SRAM0中内容与s_address1的值并置作为ram_address_out输出,即ram_address_out<= SRAM0&s_address1,可以实现对内部RAM 64 KB的扩展。此时对数据进行存取时,每次对84H赋值后,CPU对数据进行存取,对64 KB内部RAM的寻址,就相当于以SRAM0为页地址指针,以256字节为页深度进行页面寻址操作。相比较于以XRAM作为数据存储区,本设计有两个优势: 其一,除SRAM0中为全0的情况,其余地址空间均可直接寻址,而XRAM地址空间只能间接寻址,在进行大量数据反复存储调用时,可以缩短代码长度,有效提高执行速度;其二,由于内部数据传输指令MOV大多为单指令周期指令,而外部数据传输指令MOVX全部是双指令周期指令,所以在进行大量数据存取时,执行速度会有较大提高。
3 软硬件仿真测试
  采用由Model技术公司开发的ModelSim SE 6.0进行功能仿真,利用Keil公司的Keil uVision2编写51汇编测试程序,编译产生可执行文件载入ROM进行功能测试,最终的仿真结果与Keil uVision2中编译执行结果相对照,验证设计功能的正确性。对设计的测试采取黑盒测试法,测试程序是已有的一些比较复杂的算法,如DES、AES。以DES为例,明密文存取、密钥生成、中间值暂存和结果都放在高128字节来处理,仅用到低128字节区的可位寻址区,密文地址空间为90H~97H ,明文地址空间为98H~9FH, 明文数据为38H、33H、32H、37H、31H、34H、32H、33H,密钥地址空间为80H~87H,密钥数据为00H、31H、31H、33H、34H、35H、36H、07H,最后将80H~87H和90H~97H地址空间中的数据结果送入地址空间48H~5FH中,如图2所示。
  将二进制.dua可执行文件载入ROM,使用ModelSim对其进行功能仿真,结果如图3所示。

图2 Keil运行结果

图3 ModelSim仿真结果
  两方结果对照:128~135这8个高位寄存数为:00H、00H、7EH、E1H、CCH、F0H、00H、8EH,144~159这16个高位寄存数为:26H、33H、21H、3DH、31H、0FH、1DH、4DH、00H、88H、1EH、5FH、E6H、E7H、21H、F1H,图中的160~163位, 是用于暂存32位圈子密钥的,这里不作详细介绍,通过对照可知结果正确。硬件实现采用Altera公司的CycloneII系列的EP2C35F672C6器件作为设计载体,在QuartusII 5.0下对系统进行编译综合下载,使用RS232串口,在每次复位时,对RAM的明文和初始密钥进行重新配置,利用串口输出验证结果。实验结果均正确。
结语
  针对8051现有的RAM内部数据缓存不能满足实际应用要求的现况,本文给出了一种新的对内部RAM高128字节的扩展实现方案,并以此为基础,对内部RAM进行了64 KB的扩展设计;通过了相应的软、硬件仿真测试,验证了设计的正确性。
参考文献
[1] http://oregano.at/ip/ip12.htm.
[2] 吴炳胜,王桂梅,等.80C51单片机原理与应用[M]. 北京: 冶金工业出版社,2001.
[3] 卢毅,赖杰.VHDL与数字电路设计[M]. 北京:科学出版社.2001:99139.
温圣军、王简瑜(硕士研究生),主要研究方向为密码学与密码工程;
张鲁国(副教授、硕士生导师),主要研究方向为嵌入式信息安全系统与密码工程。
关键字:80C51  IP核  RAM的扩展 引用地址:80C51原始IP核内部RAM的扩展方案

上一篇:基于单片机和光照检测的开关控制裝置设计
下一篇:一种高效的蓄电池性能监测系统的设计方案

推荐阅读最新更新时间:2024-03-16 13:41

I2C器件接口IP核CPLD设计
摘要:根据单片机I2C串行扩展的特点,在EDA软件MaxplusII的环境下,利用AHDL语言,建立IP核。此设计利用状态机实现,在给出设计的同时详细说明IP核的建立过程,并下载到芯片通过硬件试验验证。 关键词:可编程逻辑器件 I2C串行扩展 IP核 由于CPLD数字设计结构化的趋势,将出现针对CPLD不同层次的IP(Intellectual Property)核。各个IP核可重复利用,可大大提高设计能力和效率。国外各大公司都推出了专门的IP核,我国也迫切需要发展自己的IP核。本文针对I2C的主方式串行扩展通信的特点,详细给出设计过程和结果。 1 IP核简介   IP核是指:将一些在数字电路中常用但比较复杂的功能块,如F
[半导体设计/制造]
(笔记总结)80C51中断系统
80C51的中断系统的结构 80C51的中断系统有5个中断源,2个中断优先级,可实现二级中断嵌套。 1.(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。当CPU检测到P3.2引脚上有有效的中断信号时,中断标志IE0(TCON.1)置1,向CPU申请中断。 2.(P3.3)可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。当CPU检测到P3.3引脚上有有效的中断信号时,中断标志IE1(TCON.3)置1,向CPU申请中断。 3.TF0(TCON.5),片内定时/计数器T0溢出中断请求标志。当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。 4.TF1(TCON.7),
[单片机]
(笔记总结)<font color='red'>80C51</font><font color='red'>的</font>中断系统
Tensilica授权瑞萨电子ConnX BBE16 DSP IP核
   Tensilica日前宣布,瑞萨电子购买了Tensilica ConnX BBE16 DSP(数字信号处理)IP(知识产权)核,用于即将上市的数字电视芯片的设计。 Tensilica基带业务部门副总裁兼总经理Eric Dewannain表示:“瑞萨电子是先进半导体解决方案的领先供应商,拥有开发数字电视芯片的成功经验。通过大规模的技术评估鉴定,瑞萨电子选用了Tensilica业界流行的ConnX BBE16 DSP内核,我们深感荣幸。ConnX BBE16 DSP是一款超高性能的16-MAC(乘数累加器)DSP引擎,是家庭无线网络、多标准广播接收器和数字电视解调器的理想选择。”  
[工业控制]
【知识点】80C51单片机内部结构
单片机按存储结构可分为二类:一类是哈佛结构,另一类是普林斯顿结构。哈佛结构所谓哈佛结构是指程序存储器地址空间与数据存储器地址空间分开的单片机结构,如80C51单片机采用哈佛结构,所以80C51单片机的程序存储器地址空间与数据存储器地址空间是分开的,各有64K存储空间。 普林斯顿结构所谓普林斯顿结构是指程序存储器地址空间与数据存储器地址空间合并的单片机结构,如MCS-96单片机采用普林斯顿结构,所以MCS-96单片机的程序存储器地址空间与数据存储器地址空间是合并的,共有64K存储空间。 1.单片机的CPU 图1是80C51单片机的内部结构框图。若除去图中的存储器电路和I/O部件,剩下的便是CPU。它可以分为运算器和控制器两部
[单片机]
【知识点】<font color='red'>80C51</font>单片机<font color='red'>的</font>内部结构
80C51单片机定时器/计数器介绍
定时器/计数器介绍 定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。 TF1:定时器1溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除。或用软件清除。 TF0:定时器0溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除,或用软件清除。 在现在很多新MCU中,不只有两个 定时/计数器,例如STC15系列就有四个定时/计数器,但是在使用上操作上是大同小异的。
[单片机]
<font color='red'>80C51</font>单片机<font color='red'>的</font>定时器/计数器介绍
一种跳频MSK信号检测算法及FPGA 实现
  引言   采用MSK 调制的跳频通信具有主瓣能量集中、旁瓣衰落滚降快、频谱利用率高和抗干扰能力强等优点,在军事通信中应用广泛。如美军现役的联合战术信息分发系统采用的通信信号,工作带宽969~1 206 MHz,跳频速率为70000 多跳/ s, 单个频点驻留时间约为13 s,信号持续时间* s, 总共有51个间隔为3 MHz 的信道,码速率为5 MHz。已知在该工作频段内主要还存在单频、窄带调幅和线性调频等信号。为了准确截获并识别目标信号,针对此信号环境设计了一种MSK 信号检测识别方法,并使用FPGA 进行了设计实现。   1 算法设计   1.1 宽带跳频信号实时检测算法   用现代技术来实现宽带数字化接收的一个实
[测试测量]
一种跳频MSK信号检测算法及FPGA 实现
学习单片机时遇到常见问题
1.什么是单片机? 简单地说,单片机就是一个小计算机系统。为了说明清楚这个问题,得要从计算机说起。提到计算机,大家可能马上会想到“显示器、鼠标、键盘”,不过,这不是一个计算机的核心和关键,计算机的核心部分在一边的机箱里呢。打开机箱,可以看到,机箱里有主板、硬盘、光驱等。仔细观察主板,这上面有CPU、内存条、BIOS芯片,通常还有25针的打印机接口等,这些部件都是通过主板上的连线相互连接。 不论计算机复杂程度如何,它总是由运算器,控制器,存储器,输入/输出接口,总线这五个部分组成。通常运算器和控制器被做成一块芯片,也就是CPU(中央处理器)。在计算机主板上,内存条和BIOS芯片就是存储器,25针打印机接口就是输出/输出设备
[单片机]
学习单片机时遇到<font color='red'>的</font>常见问题
一种可进化IP核设计和实现
摘要:提出一种可进化IP核的设计和实现方法。这种IP核采用进化硬件的设计思想,将遗传算法运用于硬件电路的设计中,使电路能根据当前的环境自动进行内部电路的时化,从而生成最有效的电路,并能在普通的FPGA器件上实现。可进化IP核以HDL源泉代码的形式表示,与普通IP核的复用方式相同,可被综合到不同的目标可重构器件中去,大大减少了复杂系统的设计时间,提高了设计的利用率,是可进化硬件一个颇具潜力的发展方向。 关键词:进化硬件 可进化IP核 FPGA 可重构 虚拟可重构电路 引言 随着信息技术的飞速发展,计算机系统面临的问题越来越复杂,如何保证复杂系统的可靠性成为一个不容忽视的问题。可进化硬件给我们提供了一个很好的解决方案。可进化硬
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved