MyException - 我的异常网
当前位置:我的异常网» WinCE » 问个内存电路接口以及访问有关问题

问个内存电路接口以及访问有关问题

www.myexceptions.net  网友分享于:2013-02-27  浏览:18次
问个内存电路接口以及访问问题
昨天看了一下电路图,发现内存(SDRAM)和2440接口有点不可思议,后来仔细对比。
发现问题在LDQM,UDQM这两个引脚,他们接到2440的四个nWBE引脚。内存资料是这么说的:Data Input/Output Mask Controls output buffers in read mode and masks input data in write mode 一些中文文档是这么说的:在读模式下控制输出缓冲;在写模式下屏蔽输入数据。按照这种接法(2片内存都是错位2位,并且时钟分开)我觉得内存是分开高16位和低16位分别访问的(以前有人使用同一个时钟驱动导致失败就证明了这点),但是让我纳闷的是2440是怎么控制四个nWBE引脚来完成任务的?并且,我看访问内存的时候都是直接访问32位地址的。真的迷茫了,不知道2440是如何实现的。请高手指点一下。谢谢。

下图是内存连接图,关键部分我都大了红圈。
http://p.blog.csdn.net/images/p_blog_csdn_net/gooogleman/EntryImages/20081113/2-32M SDRAM.jpg



------解决方案--------------------
实际上,它把两片 16 位的内存组合成 32 位来用了,这两片内存都接在了控制芯片同一个 BANK 地址上,利用 地址线 数据线 SCLK LDQM UDQM 这 3 个引脚来控制 32 位数据的读写。
------解决方案--------------------
访问控制信号:为了实现ARM存储器访问指令LDR/STR字节、半字和字访问的三种方式,在S3C2440的存储器组中,除了Bank0以外的所有地址空间都可以通过编程设置为8位、16位或32位对准访问,Bank0可以设置为16位或32位。引脚nWBE[3:0](写字节使能)实现8bit ROM芯片组的三种访问方式,或者SRAM不使用UB/LB(在BWSCON中设置)的情况下,与UB/LB连接。引脚nBE[3:0](在使用SRAM情况下的字节允许信号)在SRAM使用UB/LB(是否使用可在BWSCON中设置)的情况下与UB/LB连接。DQM[3:0](SDRAM数据屏蔽信号)引脚实现对SDRAM的三种访问。还有nWAIT、nXBREQ/nXBACK引脚。
------解决方案--------------------
这个一点也不复杂。
内存的这种接法,使它可以以8位访问,也可以16位访问,也可以32位访问
那4个信号nWBE3~0,正是字节选通控制。

按8位访问,也就是代码中若有:
 *(unsigned char *) 0x30000000 = 0x78;
就是一个字节写,这时只有nBWE0信号有效

如果是0x30000001,则只有nBWE1有效(低),其它无效(高)。

再举个例,如果是按16位访问呢?
如果是16位访问,代码一般就是:
*(unsigned short *)0x30000000 = 0x1978;
这是一个16位写。但此时要注意,最低位必须是0,而不能是1,比如地址0x30000001就会使CPU异常,因为必须16位对齐!
dat16 = *(unsigned short *)0x30000002;
这是一个16位读

在16位访问时,0x30000000地址写操作中,nWBE1, 0 = 低,nWBE3, 2 = 高。当0x30000002时,则是nWBE3,2为低,nWBE1,0为高(无效)

32位时则是4字节对齐,也就是最低的两个地址位A1,A0必须为0,即对于32位访问,0x30000001, 0x30000002, 0x30000003都会导致异常(出错)

对于32位访问,0x30000000的下一个地址是0x30000004,因为这个地址是字节地址,但一下子就访问了0x30000000~0x30000003四个字节,也就是nWBE3~0四个信号一起反应!!!


不同的CPU访问的机制是不一样的,这要具体看手册了,是分开片选的
------解决方案--------------------
只能按8位的整倍数访问,如果不是的话,就会出错。因为sdram 的存储是以8位为单位的(物理的)
而总线是32位所以 错开两位 左移2位 

至于两块sdram 的并联,我的理解如下

c U1 U2
0 0123456701234567 0123456701234567
1 0123456701234567 0123456701234567
2 0123456701234567 0123456701234567
3 0123456701234567 0123456701234567

两个16位的拼成一个32位的

cpu读 0那行的时候,通过nBWEx 控制UDQM, LDQM选择高低 半字 ,然后传数据到数据线上

虽然地址线共享,但数据线没有共享,所以我猜 他是同时的,只是通过nBWEx的控制对高低 半字分开读取,再传到相应的数据线上。


分时(或同时,具体也不清楚,只是个人猜测)



不知道大家能否看懂我的意思,表达力太差劲了

文章评论

老程序员的下场
老程序员的下场
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
 程序员的样子
程序员的样子
程序员和编码员之间的区别
程序员和编码员之间的区别
中美印日四国程序员比较
中美印日四国程序员比较
程序员都该阅读的书
程序员都该阅读的书
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
每天工作4小时的程序员
每天工作4小时的程序员
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
我是如何打败拖延症的
我是如何打败拖延症的
10个调试和排错的小建议
10个调试和排错的小建议
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
Java程序员必看电影
Java程序员必看电影
总结2014中国互联网十大段子
总结2014中国互联网十大段子
我的丈夫是个程序员
我的丈夫是个程序员
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
一个程序员的时间管理
一个程序员的时间管理
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
代码女神横空出世
代码女神横空出世
如何成为一名黑客
如何成为一名黑客
漫画:程序员的工作
漫画:程序员的工作
那些争议最大的编程观点
那些争议最大的编程观点
旅行,写作,编程
旅行,写作,编程
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
鲜为人知的编程真相
鲜为人知的编程真相
程序员的鄙视链
程序员的鄙视链
编程语言是女人
编程语言是女人
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有