新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于1-WireTM技术的单片机单线通信的实现

基于1-WireTM技术的单片机单线通信的实现

作者:时间:2012-02-20来源:网络收藏

在构成一个较大规模的应用系统中,不可避免地要采用多机系统,经常涉及到系统间的信息交换。在速率要求不高的情况下,我们希望进行的双方占用尽可能少的端口连线。美国Dallas公司生产的数字温度传感器 DS1820仅用1根口线进行信息交换,该可以很方便地应用到系统间的上来。

本文引用地址:http://www.eepw.com.cn/article/172049.htm

1 发送和接收

通信的数据交换仅在1根总线上完成,对主机和从机必须有严格的时序要求,可以借助“时隙”传输来数据的发送与接收。

如图1(a),主机向从机发送一位信息时,先由主机将总线由高(“1”)拉低(“0”)1~15μs,然后根据发送的信息是“1”还是“0”,置总线为相应的逻辑“1”或“0”,持续时间大于45~60μs后释放总线。从机检测到总线由高变低后,在15~60μs的时间窗内采样总线,若为高,则收到 “1”,否则收到“0”。主机发送一位的总时间要求大于60μs,以便为最坏情况提供足够的时间裕量。

当主机需要接收数据时,采用如图1(b)的时隙,先由主机将总线拉低1~15μs,然后释放。从机检测到总线由高变低后置总线为逻辑“1”或“0”,持续时间不少于15μs。主机在释放总线的15μs时间内采样总线,以接收从机发送的“1”或“0”,同样,要求接收

一位的总时间不少于60μs。

13.jpg

由此可见,主机和从机进行通信,总是由主机发起的,即将总线由高拉低,除非被主机请求,否则从机无法主动发送数据。除了主机外,从机之间也无法进行通信。

2 复 位

进行通信前需要进行总线复位,可以采用如图2的时隙来。先由主机保持总线480~960μs的低电线为“0”,持续时间为60~240μs。主机在释放总线后检测从机发出的应答信号,如果检测到总线为“0”,则表示从机存在并有应答,主机就可以通过产生接收或发送时隙来控制信息传输。若总线上没有从机应答或从机不存在,则主机会收到“1”。

14.jpg

3 通信流程

挂接在单总线上各子系统的通信,需要分配给每个系统惟一的软件地址,当某一个系统需要信息交换时将主动发送复位信号扮演主机角色,各从机侦听到来自总线上的复位信号后先进行地址匹配,一旦握手成功,主从机间就可以进行数据传输。设从机软件地址为8位,采用如表1所示的协议字,实现通信的流程如图3 所示。

15.jpg


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭