IIC从机模式,跟上司有分歧,然后迷茫了。

[复制链接]
7970|16
 楼主| wyq165 发表于 2015-5-19 11:21 | 显示全部楼层 |阅读模式
以前一直从单片机做主机,给从设备发数据,而且从设备一般都是EPROM之类。

现在需要用单片机做IIC从机,其它设备做IIC主机。而单片机可能从其它通讯方式(比如蓝牙)收到数据,然后通过IIC接口传给主机。(类似蓝牙串口透传,但是现在接口不是串口而是IIC接口)。

我的想法是当单片机(IIC)从蓝牙接收到数据,就放到buf中,等待主机的轮询读取,
IIC主机通过轮询方式,读单片机(IIC从机)的数据,但是有个疑惑:
IIC主机读从机设备,NOACK 是IIC主机发的,而IIC主机不知道从机有多少可以读取的数据,如何解决?

上司说我的思路不对,他认为我的IIC方式是读取EEPROM的方式 (即:开始 从地址 应答 数据 非应答  停止),而现在IIC主从都是单片机,不需要这样的规则,由我们自己定。
我疑惑了,IIC就是这么规定的通讯方式,难道我还能自己定别的方式吗?而芯片的IIC控制器也是需要达到这样的约束才能实现,我如何自己定义?自己定义那就不叫IIC总线了。奈何上司不这么认为,难道我错了?
lyjian 发表于 2015-5-19 12:43 | 显示全部楼层
IIC主机读从机设备,NOACK 是IIC主机发的,而IIC主机不知道从机有多少可以读取的数据,如何解决?
****************
读多少不是主机或从机定,是写软件的人定。
ccxlslr 发表于 2015-5-19 12:45 | 显示全部楼层
可以自定。IIC只定义了基本格式。 中间要发什么数据。你可以自己定义。比如。你可以每次开始后。第一个包读取有多少字节。
也可以命令的方式。比如1命令读有多少字节。2命令离数据。3命令……,等等都可以根所需要自己定义
ccxlslr 发表于 2015-5-19 12:49 | 显示全部楼层
IIC只要能发送和接收数据就可以了。这是基本的。至于数据类容是什么,格式是什么是你自己定义的。完成不必要按照EEPROM来。当然最基本的IIC格式你是要遵守的,不然有些硬件集成的IIC没法工作。
ayb_ice 发表于 2015-5-19 12:49 来自手机 | 显示全部楼层
协议上再加协议
xmar 发表于 2015-5-19 12:51 | 显示全部楼层
IC主机不知道从机有多少可以读取的数据,如何解决?——可以用通信协议来解决。在传输的数据前面发送数据字节数。

自己定义那就不叫IIC总线了——这个说法不妥。IIC只是物理层。通信链路层当然可以自己定义。参考OSI通信7层协议。
lei129210 发表于 2015-5-20 13:30 | 显示全部楼层
你还没有离职啊。。。
mcuisp 发表于 2015-5-20 13:59 | 显示全部楼层
楼主还要加强学习,早日打通任督二脉
ningling_21 发表于 2015-5-20 15:35 | 显示全部楼层
自定协议,主机先查询从机有多少数据,再读取具体长度的数据
奔牛滚滚 发表于 2015-5-20 21:22 | 显示全部楼层
你上司是对的,自己定协议更好
 楼主| wyq165 发表于 2015-5-20 21:48 | 显示全部楼层
lei129210 发表于 2015-5-20 13:30
你还没有离职啊。。。

另一家了,兄弟
 楼主| wyq165 发表于 2015-5-20 21:51 | 显示全部楼层
ccxlslr 发表于 2015-5-19 12:49
IIC只要能发送和接收数据就可以了。这是基本的。至于数据类容是什么,格式是什么是你自己定义的。完成不必 ...

恩,我原来的意思就是最基本的协议要符合IIC的。 上司说不用,所以当时一下子迷茫了的。
 楼主| wyq165 发表于 2015-5-20 21:51 | 显示全部楼层
mcuisp 发表于 2015-5-20 13:59
楼主还要加强学习,早日打通任督二脉

恩恩,需要学习。来这里就是为了学习的。
 楼主| wyq165 发表于 2015-5-20 21:51 | 显示全部楼层
ningling_21 发表于 2015-5-20 15:35
自定协议,主机先查询从机有多少数据,再读取具体长度的数据

多谢,也是i这么想的。
 楼主| wyq165 发表于 2015-5-20 21:54 | 显示全部楼层
结贴要给分老是错误,只好以未满意结贴了。
风去 发表于 2015-5-20 22:15 | 显示全部楼层
yulin0668 发表于 2019-9-2 13:58 | 显示全部楼层
我也想这么做的,有没有demo???
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

359

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部