runfish的笔记 https://bbs.21ic.com/?540307 [收藏] [复制] [RSS]

日志

转:程序存储器与数据存储器

已有 1054 次阅读2009-7-17 05:26 |系统分类:单片机


单片机的存储空间有两种基本结构。一种是普林斯顿结构(Princeton),将程序和数据合用一个存储器空间,即ROM和RAM的地址同在一个空间里分配不同的地址。CPU访问存储器时,一个地址对应惟一的一个存储单元,可以是ROM,也可以是RAM,用同类的访问指令。另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,称为哈佛(Harvard)结构。CPU用不同的指令访问不同的存储器空间。由于单片机实际应用中“面向控制”的特点,一般需要较大的程序存储器。目前,包括MCS-51和80C51系列的单片机均采用程序存储器和数据存储器截然分开的哈佛结构。


① 数据存储器(RAM)


在单片机中,用随机存取的存储器(RAM)来存储数据,暂存运行期间的数据、中间结果、缓冲和标志位等,所以称之为数据存储器。一般在单片机内部设置一定容量(64B~256B)的RAM,并以高速RAM的形式集成在单片机内,以加快单片机的运行速度。同时,单片机内还把专用的寄存器和通用的寄存器放在同一片内RAM统一编址,以利于运行速度的提高。对于某些应用系统,还可以外部扩展数据存储器。


② 程序存储器(ROM)


单片机的应用中常常将开发调试成功后的应用程序存储在程序存储器中,因为不再改变,所以这种存储器都采用只读存储器ROM的形式。


单片机内部的程序存储器常有以下几种形式:


l          掩膜ROMMask ROM 它是由半导体厂家在芯片生产封装时,将用户的应用程序代码通过掩膜工艺制作到单片机的ROM区中,一旦写入后用户则不能修改。所以它适合于程序已定型,并大批量使用的场合。8051就是采用掩膜ROM的单片机型号。


l        EPROM 此种芯片带有透明窗口,可通过紫外线擦除程序存储器的内容。应用程序可通过专门的写入器脱机写入到单片机中,需要更改时可通过紫外线擦除后重新写入。8751就是采用EPROM的单片机型号。


l          ROMLESS 这种单片机内部没有程序存储器,使用时必须在外部并行扩展一片EPROM作为程序存储器。8031就是ROMLESS型的单片机。


l         OTPone time programmableROM 这是用户一次性编程写入的程序存储器。用户可通过专用的写入器将应用程序写入OTPROM中,但只允许写入一次。


l         Flash ROMMTP ROM闪速存储器 这是一种可由用户多次编程写入的程序存储器。它不需紫外线擦除,编程与擦除完全用电实现,数据不易挥发,可保存10年。编程/擦除速度快,4KB编程只需数秒,擦除只需10ms。例如AT89系列单片机,可实现在线编程,也可下载。这是目前大力发展的一种ROM,大有取代EPROM型产品之势。


在硬件上,通过不同的片选信号来区别。因为程序存储器只读的,所以只需要一根选通信号——PSEN(程序选择使能)。


而数据存储器是可读写的,所以需要两根选择信号:RD(读)跟WR(写)。




在软件上,通过使用不同的指令来访问ROM跟RAM区。访问ROM时使用MOVC指令,而访问RAM时,使用MOVX指令。


单片机会自动根据指令的不同,来产生不同的选通信号。



时序:先在P0上产生地址低八位,P2上产生高八位地址。然后发出ALE信号,通知锁存器将P0低八位地址锁存。然后,P0口上地址消失(P2上的地址仍然保持)。如果是读操作,则将P0口置为输入,然后发出RD信号。如果是写操作,则将要输出的数据放到P0口上,再发出WR信号。


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)