1-Wire 总线的基本通信协议 作为一种单主机多从机的总线系统,在一条1-Wire 总线上可挂接的从器件数量几乎不受限制。为了不引起逻辑上的冲突,所有从器件的1-Wire 总线接口都是漏极开路的,因此在使用时必须对总线外加上拉电阻(一般取5k>左右)。主机对1-Wire 总线的基本操作分为复位、读和写三种,其中所有的读写操作均为低位在前高位在后。复位、读和写是1-Wire 总线通信的基础,下面通过具体-程序详细介绍这 3 种操作的时序要求。(程序中 DQ 代表 1-Wire总线,定义为P1.0,u char 定义为u nsigned char) 1 1-Wire 总线的复位 复位是1-Wire,总线通信中最为重要的一种操作,在每次总线通信之前主机必须首先发送复位信号。如程序 1.1 所示,产生复位信号时主机首先将总线拉低 480-960μ s 然后释放,由于上拉电阻的存在,此时总线变为高电平。1-Wire 总线器件在接收到有效跳变的15-60μs 内会将总线拉低 60>240μ s,在此期间主机可以通过对DQ 采样来判断是否有从器件挂接在当前总线上。函数Reset()的返回值为0 表示有器件挂接在总线上,返回值为1 表示没有器件挂接在总线上。 程序 1.1 总线复位 在DS18820 中共有三种存储器,分别是ROM、RAM、EEPROM,每种存储器都有其特定的功能,可查阅相关资料。 3 1-Wire 总线ROM 功能命令 在DS18820 内部光刻了一个长度为64bit 的ROM 编码,这个编码是器件的身份识别标志。当总线上挂接着多个DS18820 时可以通过ROM 编码对特定器件进行操作。ROM 功能命令是针对器件的ROM 编码进行操作的命令,共有5 个,长度均为8bit(1By te)。 ①读 ROM(33H) 当挂接在总线上的1-Wire 总线器件接收到此命令时,会在主机读操作的配合下将自身的ROM 编码按由低位到高位的顺序依次发送给主机。总线上挂接有多个DS18820 时,此命令会使所有器件同时向主机传送自身的ROM 编码,这将导致数据的冲突。 ②匹配 ROM(55H) 主机在发送完此命令后,必须紧接着发送一个64bit 的ROM 编码,与此 ROM 编码匹配的从器件会响应主机的后续命令,而其他从器件则处于等待状态。该命令主要用于选择总线上的特定器件进行访问。 ③跳过ROM(CCH) 发送此命令后,主机不必提供 ROM 编码即可对从器件进行访问。与读 ROM 命令类似,该命令同样只适用于单节点的1-Wire,总线系统,当总线上有多个器件挂接时会引起数据的冲突。 ④查找 ROM(FOH) 当主机不知道总线上器件的ROM 编码...