打印

2个CPU的通讯问题

[复制链接]
2340|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mugenwon|  楼主 | 2007-3-22 10:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2个都是98c52,但是由于一个用了UART0所以就不能再用了。
设计目的是这样,两个CPU分工合作,一个专门负责显示和发声,包括LED,数码管,点阵,控制声音解码芯片。另一个负责其他事情。显示的cpu只接受不发送,从属于主cpu。两个cpu放在一起。

我打算用并行的通讯方式(数据线8根)以加快速度。只能用IO口。另外通讯不能影响从cpu的定时器0以免影响显示。
我打算这样:
各自用一根线连到对方的INT1,不通讯时包括数据线全1。当主机要发送时,先送数据,然后给从机发一个INT0上的低跳变(马上再变为1),让对方进入中断。从cpu进入中断后,记录数据,然后给主机INT1输出一个低跳变(马上再变为1)以做应答信号。主机确认,然后延时一下(干其他事情)。之后继续下一次发送。不知道这样做有没有问题。

相关帖子

沙发
winhiwang| | 2007-3-22 10:34 | 只看该作者

如果数据量不大用同步串行的方式就可以了,

  简单的方法,三线:发送请求,数据,时钟. (当然也可以省略发送请求,通过应当方式实现.)

基本原理:
1.主发送时给出发送请求,并置位数据;
2.从接收到请求后,保存数据,给出时钟,准备下一位数据.
3.主接收到时钟信号后设置下一位数据.
4.重复2-3直到数据发送完成.
5.取消发送请求.

注意:双方都要设定超时取消功能.
可以改变协议,是通讯更完善.

使用特权

评论回复
板凳
艾森豪威尔| | 2007-3-22 16:33 | 只看该作者

如果成本允许,可以加串口扩展芯片,比较简单

使用特权

评论回复
地板
无悔| | 2007-3-22 16:49 | 只看该作者

路过学习

使用特权

评论回复
5
otisyf| | 2007-3-22 18:43 | 只看该作者

re

虽没同时用2片MCU做过,但建议双机都使用串口中断,一个串口发送中断,一个串口接收中断,不知是否可以?

使用特权

评论回复
6
myway| | 2007-3-23 10:28 | 只看该作者

我用过I2C通讯,一个主一个从就好了

我用过I2C通讯,一个主一个从就好了

使用特权

评论回复
7
maychang| | 2007-3-23 10:47 | 只看该作者

AVR单片机在这种情况下用着方便

有异步串行口,SPI同步串行口,TWI二线同步串行口,都有对应的中断,而且速度都够快,完全可以满足数据传输要求。

使用特权

评论回复
8
sukejia| | 2007-3-23 13:19 | 只看该作者

AVR

ATMEGA16 128都很容易实现

使用特权

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

本版积分规则

96

主题

430

帖子

3

粉丝