打印

请教51多机通信

[复制链接]
2074|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ayb_ice|  楼主 | 2008-11-1 15:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C8051F020(24M),与多个AT89C2051(12M)通信,2400波特率,数据打包传输,020发地址后如果立刻接着发数据,2051接收不可靠,有时不能正确接收,但在发送地址后延时几个MS,通信非常可靠,2051串行中断语句很精简,不会有问题,接收完后在主循环中处理.
从串口原理是讲,是在接收完9位数据后再判断是否要中断(第9位在最后发送),接收一个字节要几个MS,不用任何延时都是可以的.
望高手赐教!

相关帖子

沙发
dengm| | 2008-11-1 15:10 | 只看该作者

2051软件问题, 把2051的原码发上来

使用特权

评论回复
板凳
ayb_ice|  楼主 | 2008-11-1 15:53 | 只看该作者

不好意思

现在手上没有源代码.
  就是接到地址后判断与自身地址是否相等,如果相等就是SM2=0,接着接收数据包,如果在接收数据时收到RB8=1则立刻重新开始接收地址,接收到完整的数据后设置标志,主程序检测标志有效后立刻将数据移走,然后复位标志,标志有效时中断会丢掉接收的数据,其实主机发送数据包有很大的间隙.
  我主要想问我上面的说法,地址和数据间不用延时从理论上是不是对的?
另外我的硬件是485,本来是可以全双工通信的,但被人为设计成半双工的,平时主机处于接收状态,发送时软件强制设置tx_no=0,TI=1,然后在中断处理发送的数据和地址.

使用特权

评论回复
地板
dengm| | 2008-11-1 16:59 | 只看该作者

485 是半双工的

使用特权

评论回复
5
ayb_ice|  楼主 | 2008-11-1 17:00 | 只看该作者

现在有全双工的485

芯片是SIPEX的,具体型号不记得了.

使用特权

评论回复
6
xwj| | 2008-11-1 17:15 | 只看该作者

全双工的话就不叫485了

485的物理特性决定了:只能是半双工的!

全双工的那是422,实际上就是两个单方向使用的485,但要用4根线

使用特权

评论回复
7
lyjian| | 2008-11-1 20:54 | 只看该作者

422和485根本就不同

485就是一个纯电气的规范,全双工或半双工那是协议规范,和485根本就没任何关系。
谁说全双工的那是422?
422和485根本就不同,两个单方向使用的485还是484,不是什么422
422和485两者是不同的电气规范,只是相似而已。
大部分485都是使用使用半双工模式而已,但不代表485只有半双工模式。

使用特权

评论回复
8
hotyong| | 2008-11-2 12:38 | 只看该作者

-

使用特权

评论回复
9
冷漠| | 2008-11-2 14:23 | 只看该作者

不同意7楼!

你买一片MAX485,再买一片MAX422,看看里面的线路驱动器连接形式。

你再看看2个芯片的使用说明,告诉你什么叫485半双工差分线路(芯片应用可不关心用户软件协议),什么叫422全双工差分链路。

232、422、485都是物理层上的国际标准。它们最深规定到了信号管脚的使用协议。那么可以看看RS-485的管脚是如何使用的,它是单通道的,如何同时全双工双向流动?

使用特权

评论回复
10
s46410864| | 2008-11-2 16:27 | 只看该作者

晕菜!!

人家LZ说的是不延时行不行,你们搞什么啊,跑到485和422身上了,
晕菜,晕菜

使用特权

评论回复
11
lyjian| | 2008-11-3 11:34 | 只看该作者

两线半双工,四线全双工

使用特权

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

本版积分规则

222

主题

15450

帖子

34

粉丝