CN104021086B - 一种8位单片机读写16位存储单元ram的实现方法 - Google Patents
一种8位单片机读写16位存储单元ram的实现方法 Download PDFInfo
- Publication number
- CN104021086B CN104021086B CN201410225644.0A CN201410225644A CN104021086B CN 104021086 B CN104021086 B CN 104021086B CN 201410225644 A CN201410225644 A CN 201410225644A CN 104021086 B CN104021086 B CN 104021086B
- Authority
- CN
- China
- Prior art keywords
- address register
- write
- vub
- cpld
- ram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种8位单片机读写16位存储单元RAM的实现方法包括以下步骤:1)将16位RAM每个存储单元通过vUB分成高8位和低8位两部分;2)用CPLD/FPGA连接单片机和RAM;3)单片机将初始目标地址分三次写入CPLD/FPGA地址缓存器;4)将CPLD/FPGA地址缓存器中地址写入RAM地址寄存器MCUwrAddr、MCUrdAddr;5)单片机将8位数据写入选通的RAM单元,写入完成后写地址寄存器MCUwrAddr加1;6)单片机从选通单元读取8位数据,读取完成后读地址寄存器MCUrdAddr加1,重复5)可连续写入数据,重复6)可连续读取数据。本发明可以实现8位单片机读写16位存储单元RAM。
Description
技术领域
本发明属于电子设计自动化领域,具体涉及一种8位单片机读写16位存储单元RAM的实现方法。
背景技术
随着电子技术的进步和电子器件制造工艺的提高,市面上的16位和32位单片机越来越多,但是8位单片机因其制造设计工艺成熟、价格低廉等特点,市场占有率仍然很高,尤其在成本敏感和可靠性要求较高的场合,更占有绝对优势,由于大多8位单片机内部资源有限,经常需要外扩存储器,8位单片机可以很方便与8位存储单元RAM连接,但是,对16位存储单元的RAM操作不方便,一定程度限制了8位单片机的使用范围。
发明内容
本发明的目的在于克服上述现有技术的缺点,提供了一种8位单片机读写16位存储单元RAM的实现方法,该方法可以实现8位单片机读写16位存储单元RAM。
为达到上述目的,本发明所述的8位单片机读写16位存储单元RAM的实现方法,包括以下步骤:
1)将16位存储单元RAM中每个存储单元的初始目标地址通过vUB分成高8位和低8位,得高低位判断标志;
2)通过CPLD/FPGA地址缓存器将单片机与16位存储单元RAM相连接;
3)8位单片机将初始目标地址及高低位判断标志分三次写入到CPLD/FPGA地址缓存器中,其中,第一次,8位单片机通过0x8010操作端口将初始目标地址的低8位写入到CPLD/FPGA地址缓存器的ADDR_BUF[7..0]中;第二次,8位单片机通过0x8011操作端口将初始目标地址的高8位写入到CPLD/FPGA地址缓存器的ADDR_BUF[15..8]中;第三次,8位单片机将高低位判断标志通过0x8014操作端口写入CPLD/FPGA地址缓存器的vUB_BUF中;
4)将CPLD/FPGA地址缓存器中ADDR_BUF内的初始目标地址通过0x8012操作端口写入到RAM地址寄存器的MCUwrAddr及MCUrdAddr中,同时将CPLD/FPGA地址缓存器中vUB_BUF内的高低位判断标志通过0x8015操作端口写入到vUB中;
5)8位单片机通过0x8009操作端口将8位单片机内的8位数据写入到选通的RAM单元中,写入完成后,写地址寄存器MCUwrAddr加1;
6)重复步骤5),连续写入所有数据;
7)8位单片机通过0x8008操作端口从选通的RAM单元中读取8位单片机内的8位数据,读取完成后,读地址寄存器MCUrdAddr加1;
8)重复步骤7),连续读取所有数据。
所述高低位判断标志为当vUB=0时,选中高8位,当vUB=1时,选中低8位。
步骤4)所述将CPLD/FPGA地址缓存器中ADDR_BUF内的初始目标地址通过0x8012操作端口写入到RAM地址寄存器的MCUwrAddr及MCUrdAddr中的具体操作过程为:当0x8012端口写入数据的第0位为1,即bit0=1时,将CPLD/FPGA地址缓存器中ADDR_BUF内的初始目标地址写入到RAM地址寄存器的MCUrdAddr中,当0x8012端口写入数据的第1位为1,即bit1=1时,CPLD/FPGA地址缓存器中ADDR_BUF内的初始目标地址写入到RAM地址寄存器的MCUwrAddr中。
步骤4)所述将CPLD/FPGA地址缓存器中vUB_BUF内的高低位判断标志通过0x8015操作端口写入到vUB中的具体操作为:当0x8015端口写入数据的第0位为1,即bit0=1时,将CPLD/FPGA地址缓存器中vUB_BUF内的高低位判断标志写入vUB的MCUrd_vUB中,当0x8015端口写入数据的第1位为1,即bit1=1时,将CPLD/FPGA地址缓存器中vUB_BUF内的高低位判断标志写入到vUB的MCUwr_vUB中。
本发明具有以下有益效果:
本发明所述的8位单片机读写16位存储单元RAM的实现方法在实现的过程中,先将16位存储单元RAM中每个存储单元的初始目标地址分为高8位及低8位,得高低位判断标志,再通过CPLD/FPGA地址缓存器将单片机与16位存储单元RAM相连接,然后将初始目标地址及高低位判断标志分三次写入到CPLD/FPGA地址缓存器中,再将CPLD/FPGA地址缓存器中的内容存储到RAM地址寄存器及vUB中,然后即可通过8位单片机从选通的RAM单元中读出数据以及往RAM单元中写入数据,通过数据的读出及写入各自独立,在分频时钟下,读出操作及写入操作互不干扰,并且单次读操作完成后,读地址自动加1,单次写操作完成后,写操作自动加1,连续读写操作方便,极大的提高了连续读写效率。
附图说明
图1为本发明中实施例一的设计原理图;
图2为本发明中实施例一的仿真实验结果图。
具体实施方式
下面结合附图对本发明做进一步详细描述:
本发明所述的8位单片机读写16位存储单元RAM的实现方法包括以下步骤:
1)将16位存储单元RAM中每个存储单元的初始目标地址通过vUB分成高8位和低8位,得高低位判断标志;
2)通过CPLD/FPGA地址缓存器将单片机与16位存储单元RAM相连接;
3)8位单片机将初始目标地址及高低位判断标志分三次写入到CPLD/FPGA地址缓存器中,其中,第一次,8位单片机通过0x8010操作端口将初始目标地址的低8位写入到CPLD/FPGA地址缓存器的ADDR_BUF[7..0]中;第二次,8位单片机通过0x8011操作端口将初始目标地址的高8位写入到CPLD/FPGA地址缓存器的ADDR_BUF[15..8]中;第三次,8位单片机将高低位判断标志通过0x8014操作端口写入CPLD/FPGA地址缓存器的vUB_BUF中;
4)将CPLD/FPGA地址缓存器中ADDR_BUF内的初始目标地址通过0x8012操作端口写入到RAM地址寄存器的MCUwrAddr及MCUrdAddr中,同时将CPLD/FPGA地址缓存器中vUB_BUF内的高低位判断标志通过0x8015操作端口写入到vUB中;
5)8位单片机通过0x8009操作端口将8位单片机内的8位数据写入到选通的RAM单元中,写入完成后,写地址寄存器MCUwrAddr加1;
6)重复步骤5),连续写入所有数据;
7)8位单片机通过0x8008操作端口从选通的RAM单元中读取8位单片机内的8位数据,读取完成后,读地址寄存器MCUrdAddr加1;
8)重复步骤7),连续读取所有数据。
所述高低位判断标志为当vUB=0时,选中高8位,当vUB=1时,选中低8位。
步骤4)所述将CPLD/FPGA地址缓存器中ADDR_BUF内的初始目标地址通过0x8012操作端口写入到RAM地址寄存器的MCUwrAddr及MCUrdAddr中的具体操作过程为:当0x8012端口写入数据的第0位为1,即bit0=1时,将CPLD/FPGA地址缓存器中ADDR_BUF内的初始目标地址写入到RAM地址寄存器的MCUrdAddr中,当0x8012端口写入数据的第1位为1,即bit1=1时,CPLD/FPGA地址缓存器中ADDR_BUF内的初始目标地址写入到RAM地址寄存器的MCUwrAddr中。
步骤4)所述将CPLD/FPGA地址缓存器中vUB_BUF内的高低位判断标志通过0x8015操作端口写入到vUB中的具体操作为:当0x8015端口写入数据的第0位为1,即bit0=1时,将CPLD/FPGA地址缓存器中vUB_BUF内的高低位判断标志写入vUB的MCUrd_vUB中,当0x8015端口写入数据的第1位为1,即bit1=1时,将CPLD/FPGA地址缓存器中vUB_BUF内的高低位判断标志写入到vUB的MCUwr_vUB中。
实施例一
参考图1及图2,8位单片机向16位存储单元RAM写入的数据为0x56,RAM地址为0x3344,该存储单元高8位选通(vUB=0)。
具体包括以下步骤:
1)8位单片机将初始目标地址分三次写入CPLD/FPGA地址缓存器;
a)8位单片机将初始目标地址的低8位通过0x8010操作端口写入ADDR_BUF[7..0],其中,操作数为0x44,即通过CPLD/FPGA转化,8位单片机本次写操作结束后,ADDR_BUF[7..0]的值为0x44;
b)8位单片机将初始目标地址的高8位通过0x8011操作端口写入ADDR_BUF[15..8]中,操作数为0x33,即通过CPLD/FPGA转化,8位单片机本次写操作结束后,ADDR_BUF[15..8]的值为0x33;
c)8位单片机将高低位判断标志通过0x8014操作端口写入vUB_BUF中,操作数为0x01,即通过CPLD/FPGA转化,单片机本次写操作结束后,vUB_BUF的值为0x01;
2)将CPLD/FPGA地址缓存器ADDR_BUF内的初始目标地址通过0x8012操作端口写入RAM地址寄存器的MCUwrAddr及MCUrdAddr,操作数为0x03,即ADDR_BUF内容同时写入MCUwrAddr及MCUrdAddr,MCUwrAddr和MCUrdAddr的值都变为0x3344;
3)将vUB_BUF内的高低位判断标志通过0x8015操作端口写入vUB中,将vUB_BUF内的高低位判断标志同时写入MCUrd_vUB和MCUwr_vUB,MCUrd_vUB和MCUwr_vUB的值在分频时钟下分时取反赋给vUB;
4)8位单片机将8位数据通过0x8009操作端口写入选通的RAM单元,写入数据为0x56,此过程CPLD/FPGA模拟产生一个写信号vWR,vWR低电平的时间段,vD的数据为0x5600,即RAM0x334地址单元的高8位将被写入0x56,低8位数据总线由于vUB为0而未选通,不会有数据写入,写入完成后写地址寄存器MCUwrAddr加1,MCUwrAddr由0x3344变为0x3345,重复上述操作,即可连续写入数据;
5)8位单片机通过0x8008操作端口从选通的RAM单元中读取8位数据,读取完成后读地址寄存器MCUrdAddr加1,MCUrdAddr由0x3344变为0x3345,重复上述步骤,即可连续读取数据。
Claims (4)
1.一种8位单片机读写16位存储单元RAM的实现方法,其特征在于,包括以下步骤:
1)将16位存储单元RAM中每个存储单元的地址通过vUB分成高8位和低8位,得高低位判断标志;
2)通过CPLD/FPGA地址缓存器将单片机与16位存储单元RAM相连接;
3)8位单片机将初始目标地址及高低位判断标志分三次写入到CPLD/FPGA地址缓存器中,其中,第一次,8位单片机通过0x8010操作端口将初始目标地址的低8位写入到CPLD/FPGA地址缓存器的ADDR_BUF[7..0]中;第二次,8位单片机通过0x8011操作端口将初始目标地址的高8位写入到CPLD/FPGA地址缓存器的ADDR_BUF[15..8]中;第三次,8位单片机将高低位判断标志通过0x8014操作端口写入CPLD/FPGA地址缓存器的vUB_BUF中;
4)将CPLD/FPGA地址缓存器中ADDR_BUF内的初始目标地址通过0x8012操作端口写入到RAM地址寄存器的MCUwrAddr及MCUrdAddr中,同时将CPLD/FPGA地址缓存器中vUB_BUF内的高低位判断标志通过0x8015操作端口写入到vUB中;
5)8位单片机通过0x8009操作端口将8位单片机内的8位数据写入到选通的RAM单元中,写入完成后,写地址寄存器MCUwrAddr加1;
6)重复步骤5),连续写入所有数据;
7)8位单片机通过0x8008操作端口从选通的RAM单元中读取8位单片机内的8位数据,读取完成后,读地址寄存器MCUrdAddr加1;
8)重复步骤7),连续读取所有数据。
2.根据权利要求1所述的8位单片机读写16位存储单元RAM的实现方法,其特征在于,所述高低位判断标志为当vUB=0时,选中高8位,当vUB=1时,选中低8位。
3.根据权利要求1所述的8位单片机读写16位存储单元RAM的实现方法,其特征在于,步骤4)所述将CPLD/FPGA地址缓存器中ADDR_BUF内的初始目标地址通过0x8012操作端口写入到RAM地址寄存器的MCUwrAddr及MCUrdAddr中的具体操作过程为:当0x8012端口写入数据的第0位为1,即bit0=1时,将CPLD/FPGA地址缓存器中ADDR_BUF内的初始目标地址写入到RAM地址寄存器的MCUrdAddr中,当0x8012端口写入数据的第1位为1,即bit1=1时,CPLD/FPGA地址缓存器中ADDR_BUF内的初始目标地址写入到RAM地址寄存器的MCUwrAddr中。
4.根据权利要求3所述的8位单片机读写16位存储单元RAM的实现方法,其特征在于,步骤4)所述将CPLD/FPGA地址缓存器中vUB_BUF内的高低位判断标志通过0x8015操作端口写入到vUB中的具体操作为:当0x8015端口写入数据的第0位为1,即bit0=1时,将CPLD/FPGA地址缓存器中vUB_BUF内的高低位判断标志写入vUB的MCUrd_vUB中,当0x8015端口写入数据的第1位为1,即bit1=1时,将CPLD/FPGA地址缓存器中vUB_BUF内的高低位判断标志写入到vUB的MCUwr_vUB中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410225644.0A CN104021086B (zh) | 2014-05-26 | 2014-05-26 | 一种8位单片机读写16位存储单元ram的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410225644.0A CN104021086B (zh) | 2014-05-26 | 2014-05-26 | 一种8位单片机读写16位存储单元ram的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104021086A CN104021086A (zh) | 2014-09-03 |
CN104021086B true CN104021086B (zh) | 2016-12-07 |
Family
ID=51437851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410225644.0A Active CN104021086B (zh) | 2014-05-26 | 2014-05-26 | 一种8位单片机读写16位存储单元ram的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104021086B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107358804A (zh) * | 2017-09-04 | 2017-11-17 | 吴世贵 | 一种交通灯车流量检测方法 |
CN107729269A (zh) * | 2017-09-28 | 2018-02-23 | 西安交通大学 | 一种NANDFlash到FPGA内部块RAM的缓存方法 |
CN113721858B (zh) * | 2021-09-06 | 2023-08-29 | 上海星秒光电科技有限公司 | 一种存储器的快速读写方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731371A (zh) * | 2005-09-07 | 2006-02-08 | 大唐微电子技术有限公司 | 数字信号处理系统中访问存储单元的方法及其处理系统 |
CN101308697A (zh) * | 2008-07-10 | 2008-11-19 | 哈尔滨工业大学 | 基于sdram的大容量fifo突发缓存器及数据存储方法 |
US8037292B2 (en) * | 2006-06-30 | 2011-10-11 | Lenovo (Beijing) Limited | Method for accelerating BIOS running |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6298443A (ja) * | 1985-10-25 | 1987-05-07 | Hitachi Ltd | デ−タ処理装置 |
-
2014
- 2014-05-26 CN CN201410225644.0A patent/CN104021086B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731371A (zh) * | 2005-09-07 | 2006-02-08 | 大唐微电子技术有限公司 | 数字信号处理系统中访问存储单元的方法及其处理系统 |
US8037292B2 (en) * | 2006-06-30 | 2011-10-11 | Lenovo (Beijing) Limited | Method for accelerating BIOS running |
CN101308697A (zh) * | 2008-07-10 | 2008-11-19 | 哈尔滨工业大学 | 基于sdram的大容量fifo突发缓存器及数据存储方法 |
Non-Patent Citations (3)
Title |
---|
8位单片机的16位外部总线扩展与应用;于良耀等;《单片机与嵌入式系统》;20061231(第6期);第69-71页 * |
基于双口RAM的数据采集系统设计;孙爱东等;《电子测量技术》;20060430;第29卷(第2期);第90-94页 * |
用8097单片机访问16位RAM中的奇地址字;张涛;《装甲兵工程学院学报》;19981231;第12卷(第3期);第30-34页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104021086A (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104750619B (zh) | 数据储存装置以及快闪存储器控制方法 | |
CN105702300B (zh) | 一种基于FPGA的NAND Flash容错系统 | |
CN104951334B (zh) | FPGA双片QSPI flash的程序加载方法 | |
CN104021086B (zh) | 一种8位单片机读写16位存储单元ram的实现方法 | |
CN103136028A (zh) | 一种基于fpga的flash存储器远程在线升级方法 | |
CN101719098B (zh) | Nandflash芯片组存储控制器 | |
CN102332311A (zh) | 一种基于fpga的nand flash器件单粒子效应测试方法 | |
US20100191901A1 (en) | Non-volatile storage device, host device, non-volatile storage system, data recording method, and program | |
CN106326171A (zh) | 硬盘背板的硬盘类型识别方法和装置 | |
CN107290654A (zh) | 一种fpga逻辑测试结构及方法 | |
CN104361143A (zh) | 一种便携式数据采集卡及其方法 | |
CN106024036A (zh) | 一种基于fpga的多路音频数据格式转换方法 | |
CN104679681A (zh) | Ahb总线访问片上sram的高速桥装置及其工作方法 | |
CN104408213A (zh) | 一种便携式数据采集卡 | |
CN106292544B (zh) | 基于pcie接口硬件板卡及其总线控制方法及系统 | |
CN110058809A (zh) | 存储装置及其调试系统 | |
CN202632525U (zh) | 微波交通状态检测器 | |
CN106774027A (zh) | 一种电网智能数据处理系统 | |
Jie et al. | Design of multi-channel data acquisition system based on FPGA | |
CN103856210B (zh) | 一种控制fpga编程新地址的方法、装置及编程电路 | |
CN102110047B (zh) | 一种在开发系统中读写ram的方法 | |
CN201477641U (zh) | 汽车数据采集sd存储装置 | |
CN206515664U (zh) | 一种电网智能数据处理系统 | |
CN201210246Y (zh) | 带sm卡存储功能的汽车esp数据采集系统 | |
CN104346484A (zh) | 带非易失性存储器的处理器芯片仿真器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |