您的位置: EDA中国门户网站 >> 论坛 >> HDL语言 >> 查看帖子
字体: 小 中 大 | 打印 发表于: 2008-8-26 11:54 作者: deaddy 来源: EDA中国门户网站
QUOTE:
原帖由 deaddy 于 2008-8-26 16:45 发表 谢谢楼上的回复,你说的这些我明白,协议里面有说。 我想说的是:接收机在接受到发送机发送的最后一个数据后,在响应位产生一个响应或者不响应,但是接收机怎么知道它接收到的这个数据是最后一位呢?
原帖由 deaddy 于 2008-8-26 17:37 发表 但是发送多少数据是由发送机决定的啊,我要做的是从机-接收机,发送机放松多少数据事先应该是不知道的啊,我应该根据SCL和SDA线的状态来判断吧?但是我想不出来怎么判断,好像应该有个预判一样
最新回复
deaddy (2008-8-26 14:54:07)
下雨天儿 (2008-8-26 15:24:09)
yadog (2008-8-26 16:10:15)
无数据:SCL=1,SDA=1;
开始位(Start):当SCL=1时,SDA由1向0跳变;
停止位(Stop):当SCL=1时,SDA由0向1跳变;
数据位:当SCL由0向1跳变时,由发送方控制SDA,此时SDA为有效数据,不可随意改变SDA;
当SCL保持为0时,SDA上的数据可随意改变;
deaddy (2008-8-26 16:45:24)
我想说的是:接收机在接受到发送机发送的最后一个数据后,在响应位产生一个响应或者不响应,但是接收机怎么知道它接收到的这个数据是最后一位呢?
还有一种情况就是接收机不能接收更多数据是怎么回事?
[ 本帖最后由 deaddy 于 2008-8-26 16:52 编辑 ]
nqq (2008-8-26 17:24:49)
clwyl (2008-8-26 17:31:21)
QUOTE:
接收机里面是用状态机实现的, 接收机运行到最后一个数据状态后就进入应答状态了。deaddy (2008-8-26 17:37:56)
deaddy (2008-8-26 17:39:51)
nqq (2008-8-26 17:50:00)
QUOTE:
既然你是做从机,那发送机就是主机,主机可以发结束而不需从机判断来发不响应。那你不用考虑这个问题我仍认为I2C只是作为一个接口,在实际使用中需要配合其他具体的功能,比如要传送什么数据,干什么用的之类的,那么怎么会不知道要发送多少数据呢
deaddy (2008-8-26 18:09:22)
还有不能接收更多数据是怎么回事?
nqq (2008-8-26 18:49:51)
ilove314 (2008-8-26 22:57:21)
deaddy (2008-8-27 10:01:09)
nqq (2008-8-29 16:31:14)
这个写程序不需要考虑