发新帖我要提问
12
返回列表
打印

IIC双击互相通信问题

[复制链接]
楼主: caoyonglu
手机看帖
扫描二维码
随时随地手机跟帖
21
yewuyi| | 2013-11-12 11:12 | 只看该作者 回帖奖励 |倒序浏览
caoyonglu 发表于 2013-11-11 18:37
如果我想单片机A向单片机B发送完数据以后,等单片机B执行完程序以后,再给单片机A发送一个数据,单片机A在 ...

从机的应答机制就是起到这个作用,但IIC应答机制有其规定的要求,例如时序。

使用特权

评论回复
22
江枫渔火| | 2013-11-12 11:43 | 只看该作者
yewuyi 发表于 2013-11-12 11:10
遵守IIC的协议则不行,IIC的理论上也不行。

如果想自定协议的话,则和IIC无关,自己根据自己的需要自编 ...

应该楼主的意思是这样的:
完成了上一次通信之后,主从就没关系了,处于各自运行状态,总线处于高电平空闲状态。而主机自己把自己变换为从机模式,从机也把自己改为主机模式。这样再次由原来的从机也就是现在的主机发起通信,应该是没问题的吧。有的单片机是通过配置寄存器可以设置为主机模式或从机模式的吧。这个切换不是由IIC来切换的。

双机互连有一主一从就行了,至于哪个是主哪个是从,应该无关紧要~只要他们自己具备处理主或从的信号机制~

使用特权

评论回复
23
vkic007| | 2013-11-12 14:00 | 只看该作者
我想楼主是不了解iic吧!通常主机模式下接口发送数据,也可以接收数据。此时主机模式主要是始终信号始终是由主机方发出的,从机只是在相应的同步时钟下完成数据收发。

使用特权

评论回复
24
兰天白云| | 2013-11-12 16:34 | 只看该作者
楼主不了解IIC,IIC有IIC的规矩,不安规矩它是不会理你的

使用特权

评论回复
25
caoyonglu|  楼主 | 2013-11-13 15:09 | 只看该作者
vkic007 发表于 2013-11-12 14:00
我想楼主是不了解iic吧!通常主机模式下接口发送数据,也可以接收数据。此时主机模式主要是始终信号始终是 ...

主机只要把发送数据改成接收数据即可?那从机要进行哪些设置呢?

使用特权

评论回复
26
amw2738| | 2013-11-13 21:52 | 只看该作者
主机在读取从机的数据时,如果从机接收完命令后想对数据进行处理后再返回,可以拉低SCL,以达到延迟发送

使用特权

评论回复
27
vkic007| | 2013-11-14 09:42 | 只看该作者
caoyonglu 发表于 2013-11-13 15:09
主机只要把发送数据改成接收数据即可?那从机要进行哪些设置呢?

不需要进行设置。发送的时候,你是写硬件的iic的buf,接收的时候,直接去读buf就可以了。不需要重新设置。建议楼主看看iic协议

使用特权

评论回复
28
DYCN| | 2013-11-15 09:24 | 只看该作者
yewuyi 发表于 2013-11-12 11:08
当然不是

从我回帖子到你回我的这个帖子,大概只有二十几分钟。我猜测您可能根据您多年的工作经验直接做出的回答。但个人还是建议您去看一看IIC的协议,咱做技术的要严谨。

还是附上IIC的标准吧。

UM10204_v5.pdf (1.31 MB)

使用特权

评论回复
29
yewuyi| | 2013-11-15 11:46 | 只看该作者
DYCN 发表于 2013-11-15 09:24
从我回帖子到你回我的这个帖子,大概只有二十几分钟。我猜测您可能根据您多年的工作经验直接做出的回答。 ...

1、IIC严格意义不能算多主机,个人认为只有像CANBUS这样才算多主机,IIC的多主机是要辅助切换开关电路来完成,实在是一种偷换概念。

2、即使使用辅助切换开关来实现多主机,IIC也是无法实现主机和从机的角色互换。

使用特权

评论回复
30
DYCN| | 2013-11-15 12:37 | 只看该作者
yewuyi 发表于 2013-11-15 11:46
1、IIC严格意义不能算多主机,个人认为只有像CANBUS这样才算多主机,IIC的多主机是要辅助切换开关电路来 ...

1.您直接否定了IIC标准里的定义及说明,因为协议里明确写到“It is a true multi-master bus...”(第三页倒数第五行)
2.IIC的实际使用中也不需要通过辅助电路来切换主从关系。我不太清楚您是需要怎么添加辅助电路来完成的,但个人从协议来分析看不出有这种需求。
3.或许就“多主”这个词本身应该也一探讨一下。

还是建议您仔细研读一下协议,当然有时间的话我也愿意再去看一次,以了解自己的认识是否完全正确。我这里也有周立功翻译的中文版协议,如果需要我也可以贴上来。当然更建议看原版。

使用特权

评论回复
31
yewuyi| | 2013-11-15 18:11 | 只看该作者
DYCN 发表于 2013-11-15 12:37
1.您直接否定了IIC标准里的定义及说明,因为协议里明确写到“It is a true multi-master bus...”(第三 ...

1、你那个英文的手册,我没有详细看过。
2、我所了解的有关IIC的多主机结构主要是如附件所示。

3、在附件中结构中是需要主机切换的。

使用特权

评论回复
32
DYCN| | 2013-11-19 10:47 | 只看该作者
yewuyi 发表于 2013-11-15 18:11
1、你那个英文的手册,我没有详细看过。
2、我所了解的有关IIC的多主机结构主要是如附件所示。

1.如果想深入讨论,还是希望可以看一下,不然可能就没什么讨论的空间了。而且从技术人员的角度来讲,既然已经发现有不同,就一定要追到底。
2.你的图我确实没看过,如果有完整的文档或说明我也希望可以研究一下,因为只一张图我不了解其完整的应用场景,也无法完整的了解其这样做的原因,也许是真的需要切换,也许是节点数,也许热备,也许是负载电容影响等等,这个可猜测的余地有点过大了。

使用特权

评论回复
33
yewuyi| | 2013-11-19 12:00 | 只看该作者
DYCN 发表于 2013-11-19 10:47
1.如果想深入讨论,还是希望可以看一下,不然可能就没什么讨论的空间了。而且从技术人员的角度来讲,既然 ...

IIC接口设计与应用.pdf (946.94 KB)


如果你有兴趣,可以再深入的研究一下,资料见附件,我以前大概比较过,基本就是一份英文资料的翻译本,但那些原文的英文资料找不到了。

使用特权

评论回复
34
xlsf1048| | 2014-7-23 15:10 | 只看该作者
可以设IO口,通过高低电平来请求主机读从机数据的吧

使用特权

评论回复
35
hlhfootbal| | 2014-8-27 21:39 | 只看该作者
给楼主以下建议,希望有用:
1.主机通过IIC发送数据给从机
2.查询从机的状态
3.主机通过IIC读取从机的数据

这样避免主从机切换的问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则