作者sintsu (sin)
看板ASM
标题Re: [讨论] RS485
时间Sun Feb 11 01:55:06 2007
※ 引述《sintsu (sin)》之铭言:
: 里面分别是SM0 SM1 SM2 REN TB8 RB8 TI RI
: SM0和SM1用来设定传输模式,SM2则是485通讯的关键之一
: REN是决定是有接收外部的串列资料,TB8&RB8也是多处理机通讯关键
: 再呼叫别台设备时,会先送出对方的位址值
: 且多了一个TB8=1的位元代表传输的是位址值而不是数据
: 接着才会传输数据(TB8=0)
: (我不知道万一对方没收到位址或是有错误怎麽办,自己写交握?)
: 讯号接收端
: 将SCON的SM2位元设定为1,并将收到的串列资料当作是位址,比对是否呼叫自己
: 如果是自己的话,则把SM2设为0,将後来收到的资料视为数据,接收完後再将SM2设为1
: 我有点不太知道RB8要什麽时後设定,资料里面没提到,感觉功能跟上面SM2的功能好像
推 loveflames:接收第九个位元时才设RB8? 02/10 04:25
一开始SM2=1、RB8=0,此时为位置接收模式
收到第九个资料位元值为1(TB8=1)的串列资料时
会将第九个资料位元值存入RB8,而RB8=1时进而触发串列中断
此时将接收的资料比对是否为自己的address,若是则继续下面步骤,不是则恢复RB8=0
若判断address为呼叫自己时,将SM2设定为0,进入一般数据接收模式
接收完数据後最後再将SM2设定为1、将RB8=0,恢复成位置接收模式等待下次呼叫
不知道上面步骤对不对,有请高手指点
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 221.169.181.124