dsa三线通信协议

来源:互联网 发布:电梯事故数据 编辑:程序博客网 时间:2024/06/09 19:54

DSA通讯协议:
主机:EM78P372N
从机:3518E
1.主机通讯申请:主机在Data为1时,将data=0,并检测ack是否为0(从机响应)
2.从机检测通讯:从机在闲时检测data是否为0,如果为0,表示有通讯申请。
3.从机响应通讯申请:从机写ack=0表示接受申请。
4.通讯申请完成:从机响应申请之后,检测data是否为1,如果为1,表示同步完成,从机写ack=1表示准备接受数据了。
5.主机检测ack是否为1,表示可以发送数据了。

6.主机发数据到data7.主机将stb=0,通知从机数据已经发送8.从机从data读数据9.从机写ack=0,表示数据已经收取10.主机检测ack=011.主机写stb=1,表示准备发送第二个数据12.从机检测stb是否为1,表示从机准备接受第二个数据13.从机写ack=1表示准备接受数据14.主机发现ack=1,准备发送第二个数据。重复上述传输数据主机写ack=0从机等待ack=0,如果ack=0,写stb=0主机等待stb=0,并写ack=data=1从机检测ack=1,从机写stb=1,准备下一轮通讯

从机端程序流程:
开始:
检测data是否为0
data为0,则写ack=0,并检测data是否为1
如果data=1,写ack=1,可以开始接受数据了。

数据:
等待stb为0,读取数据,写ack=0
等待stb=1,写ack=1
等待stb为0开始接受第二个数据。

从机接受完数据后,写ack为1,stb应该还是1,应该stb为0表示可以读取数据。

结束:
检测ack=0,写stb=0,等待ack为1,写stb=1,通讯结束。

引脚:5-2 data 输入模式,
5-3 ack 输出模式,
0-5 stb

主机端流程(主机3518E主动发送数据到从机单片机):
(1)主机检测data是否为1,如果等于1,表示DSA总线空闲,如果为0表示DSA总线忙.
(2)主机检测到data为1,开始通信申请建立.

(3)建立通信:主机写data=0,表示申请与从机通信
(4)主机检测ack是否为0,为0表示从机对通信做出应答.
(5)主机检测到ack=0后,写data=1.
(6)主机写完data后,检测ack是否为1,如果ack=1,表示从机应答,通信申请已经建立.

(7)开始数据传输过程
(8)主机写第一个数据到data,并写stb=0,通知从机数据发送完成.
(9)主机检测ack是否为0,ack=0表示从机读取完成
(10)主机检测到ack=0后,主机写stb=1,表示告诉从机申请发第二个数据
(11)主机检测ack是否为1,如果ack=1,表示从机应答做好准备,可以发送第二个数据了.
(12)主机发第二个数据

(13)数据发送完成
(14)完成步骤12后,主机不想发送数据了,此时主机主动结束通信
(15)主机写ack=0,并检测std是否为0
(16)主机检测到stb=0,主机写ack=data=1
(17)主机等待stb为1,如果stb=1,此时通信结束.

0 0
原创粉丝点击