[讨论] 关于8080总线的疑惑

flashtt   2016-11-2 20:03 楼主
一直到没有好好研究过时序图,这方面很不理解,以8080并行总线为例,希望大家能帮忙解释。 捕获.PNG 片选和都数据命令选择端都好理解,但是读使能/写使能和数据端口无法理解, 读使能/写使能为什么要先变低一段时间,再变高一段时间,是不是在这段时间内数据有效,主机或者从机是不是就在这段时间内把数据读走了?如果是连续读写情况又是怎样的呢? 本帖最后由 flashtt 于 2016-11-2 20:03 编辑

回复评论 (10)

我个人是这样理解的,读的时候,读使能变低,从机收到这个下降沿的时候就开始准备向数据端口输出数据,等使能变高的时候,从机收到这个下降沿时就会把最终输出的数据锁存起来以保证后续主机读取数据的时候数据端口电平不会再变化;反过来,主机写的时候,写使能变低,从机收到这个下降沿后就知道主机端在准备输出数据,但是数据端口的电平有可能在变化,不能从总线上读取数据,等到主机端把数据准备好输出到数据端口后,写使能变高,将输出数据锁存起来以保证后续从机在读取数据时数据端口的电平不会变化,从机收到写使能上的上升沿,这时就可以从总线上读取数据了
点赞  2016-11-2 21:09
引用: bobde163 发表于 2016-11-2 21:09
我个人是这样理解的,读的时候,读使能变低,从机收到这个下降沿的时候就开始准备向数据端口输出数据,等使 ...

这样理解很合理,所以无论是写使能还是读使能高低电平都需要维持一个最短时间,我总结一下你的想法:

写的时候:写使能拉低,主机准备写的数据——>写使能拉高,主机锁存,从机开始读数据

读的时候:读使能拉低,从机准备被读的数据——>读使能拉高,从机锁存,主机开始读数据

大致清楚了,还有疑惑的是连续读写和读写转换时的时序解释
点赞  2016-11-2 21:33
实际上我正在理解stm32用FSMC控制LCD,用的以为地址线模拟的片选端,比如A0,驱动LCD的时候LCD就好像是一个PSRAM的里面只有两个16位的存储空间,往0x60000002写数据相当于往LCD写数据,往0x60000000写数据写数据相当于往LCD写命令(16位时地址偏移一位,这个也好理解,2bytes),这样的话CSX数据命令选择端的时序又有点不理解了,扯得有点远,大家可以集思广益一下
点赞  2016-11-2 21:49
实际上我正在理解stm32用FSMC控制LCD,用的以为地址线模拟的片选端,比如A0,驱动LCD的时候LCD就好像是一个PSRAM的里面只有两个16位的存储空间,往0x60000002写数据相当于往LCD写数据,往0x60000000写数据写数据相当于往LCD写命令(16位时地址偏移一位,这个也好理解,2bytes),这样的话CSX数据命令选择端的时序又有点不理解了,扯得有点远,大家可以集思广益一下
点赞  2016-11-2 21:49
引用: flashtt 发表于 2016-11-2 21:49
实际上我正在理解stm32用FSMC控制LCD,用的以为地址线模拟的片选端,比如A0,驱动LCD的时候LCD就好像是一个 ...

使用A0作为片选信息,写数据的时候,地址0x60000002和0x60000000的第一位即A0变为低,就相当于写的时候片选信息有效
点赞  2016-11-2 23:17
引用: flashtt 发表于 2016-11-2 21:33
这样理解很合理,所以无论是写使能还是读使能高低电平都需要维持一个最短时间,我总结一下你的想法:

...

连续读/写的话,要看从机是否支持地址自动增加,如果支持,只需要读/写第一个字节的时候附带地址,之后就是以此地址作为起始地址,每读/写一个字节,地址会自动加1;读写转换时的时序也很好理解,读和写和使能信号都是高电平为空闲状态,你需要写的时候就只操作写使能信号,读的时候只操作读使能信号,这样就不会错
点赞  2016-11-2 23:24
引用: bobde163 发表于 2016-11-2 23:17
使用A0作为片选信息,写数据的时候,地址0x60000002和0x60000000的第一位即A0变为低,就相当于写的时候片 ...

更正一下是用A0作数据/命令选择端,地址是从LSB开始写的吗,那比如说有的人用A0,有的人用A15,那从时间点上来说不就不一样了吗,读写使能开始拉低了,数据/命令选择端还没动?
无标题.png
点赞  2016-11-3 08:17
引用: flashtt 发表于 2016-11-3 08:17
更正一下是用A0作数据/命令选择端,地址是从LSB开始写的吗,那比如说有的人用A0,有的人用A15,那从时间 ...

很明显8080是使用并口的通信方式,地址线并不是从LSB一位一位的写,而是地址数据同时地输出到地址线上,所以不管你是用A0还是A15或其他地址线都没有关系,只要你个人知道是哪个就好。等将地址数据输出到地址线上之后才去使能读写信号,所以也不会出现数据/命令选择端滞后的情况。
点赞  2016-11-3 21:31
引用: bobde163 发表于 2016-11-3 21:31
很明显8080是使用并口的通信方式,地址线并不是从LSB一位一位的写,而是地址数据同时地输出到地址线上, ...

对哦,没想到这一点
点赞  2016-11-3 22:05
引用: flashtt 发表于 2016-11-3 22:05
对哦,没想到这一点

理解了就好了
点赞  2016-11-3 22:57
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复