打印

一片单片机如何同时进行两种通信?

[复制链接]
1852|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laibour|  楼主 | 2011-6-10 08:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问一下,如何用一片单机同时进行I2C和232通信?
沙发
yewuyi| | 2011-6-10 08:52 | 只看该作者
晕,不管是IIC还是232,那怕再加上SPI、USB等,只要MCU的处理速度够,它们都只是MCU执行的一个任务而已,至于如何安排任务执行,那方法就是五花八门了,没有统一定则

使用特权

评论回复
板凳
kami03372| | 2011-6-10 09:48 | 只看该作者
一边处理I2C,一边处理232呗.......
自己分配呗!

使用特权

评论回复
地板
XIEYUANBIN| | 2011-6-10 13:32 | 只看该作者
你一个人,需要“同时”做两件事你怎么办

使用特权

评论回复
5
huayuguo| | 2011-6-10 14:51 | 只看该作者
不知道有没那种内存地址可以映射的单片机,将I2C和232的数据寄存器全映射成一个 估计就应该符合你的意思了

使用特权

评论回复
6
laibour|  楼主 | 2011-6-10 21:42 | 只看该作者
晕,不管是IIC还是232,那怕再加上SPI、USB等,只要MCU的处理速度够,它们都只是MCU执行的一个任务而已,至于如何安排任务执行,那方法就是五花八门了,没有统一定则 ...
yewuyi 发表于 2011-6-10 08:52

谢谢!因为学得不精,还是不太理解。我现在的情况是,I2C要和另一片单片机交换数据,然后232通过无线模块进行收发。因为两个方向的数据又是随机出现的,还是不太明白,当232和I2C同时处于接收状态时(肯定都会用到中断来接收对吧?),如果一种通信被另一种通信所中断的话,数据就会丢失。不知道我理解的对不对,还请指教。

使用特权

评论回复
7
yewuyi| | 2011-6-11 08:39 | 只看该作者
谢谢!因为学得不精,还是不太理解。我现在的情况是,I2C要和另一片单片机交换数据,然后232通过无线模块进行收发。因为两个方向的数据又是随机出现的,还是不太明白,当232和I2C同时处于接收状态时(肯定都会用到 ...
laibour 发表于 2011-6-10 21:42


不对。
1、中断是有优先级的,不是想怎么就怎么的
2、接收是有缓冲的,这个由硬件自动完成,不需要中断,只有当缓冲区出现了数据后才会发生中断要求
3、通信协议是需要带恰当的校验和重发机制的,当检查到错误后应该进行数据重发

使用特权

评论回复
8
laibour|  楼主 | 2011-6-12 21:31 | 只看该作者
不对。
1、中断是有优先级的,不是想怎么就怎么的
2、接收是有缓冲的,这个由硬件自动完成,不需要中断,只有当缓冲区出现了数据后才会发生中断要求
3、通信协议是需要带恰当的校验和重发机制的,当检查到错误后应 ...
yewuyi 发表于 2011-6-11 08:39

谢谢!我可不可以这样理解,假如我把232接收设为高优先级中断,I2C接收设为低优先级中断。当I2C处于接收时,232可以中断I2C,这时I2C就可能不能接收一个完整的数据所以不会发出应答信号,I2C发送方因为没有收到应答而采取重发。而232接收中断因为一直处于高优先级中断,所以能一次性完整地接收整个数据。I2C只是“见缝插针”的形式或者232空闲的时候进行接收。

使用特权

评论回复
9
yewuyi| | 2011-6-13 08:47 | 只看该作者
谢谢!我可不可以这样理解,假如我把232接收设为高优先级中断,I2C接收设为低优先级中断。当I2C处于接收时,232可以中断I2C,这时I2C就可能不能接收一个完整的数据所以不会发出应答信号,I2C发送方因为没有收到应答 ...
laibour 发表于 2011-6-12 21:31


错:
要看清楚第2点,接收一般都是带缓冲的,你把DATASHEET中的相关内容看完再说吧。

问LZ一个问题,UART为什么在处理已经接受到的数据时依然可以正常接收发送方正在发送的数据?

使用特权

评论回复
10
李冬发| | 2011-6-14 03:35 | 只看该作者
ls的 ccxlslr,真没得说。

使用特权

评论回复
11
laibour|  楼主 | 2011-6-15 14:47 | 只看该作者
错:
要看清楚第2点,接收一般都是带缓冲的,你把DATASHEET中的相关内容看完再说吧。

问LZ一个问题,UART为什么在处理已经接受到的数据时依然可以正常接收发送方正在发送的数据? ...
yewuyi 发表于 2011-6-13 08:47

单片机是在已接收到数据,发出中断请求后才会进入中断状态读取数据。而如何处理接收的数据可以根据自己需要完成的功能在主程序中合理安排,应该是这样了,谢谢!

使用特权

评论回复
12
caiy10101| | 2011-6-26 09:05 | 只看该作者
到底几楼的是正确的

使用特权

评论回复
13
lanyong| | 2011-6-26 10:50 | 只看该作者
有多核mcu.

使用特权

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

本版积分规则

22

主题

81

帖子

0

粉丝