一种1-Wire总线免上拉电阻端口配置方法
【技术领域】
[0001]本发明属于1-Wire电子设计技术领域,尤其涉及一种1-Wire总线免上拉电阻端口配置方法。
【背景技术】
[0002]1-Wire网络在物理实现上通常表现为一个开漏模式的主设备连接I个或多个开漏模式的从设备(Ι-Wire器件),数据总线上接一个上拉电阻用于将总线上拉到3V或5V。在数据通信的间隙,IWire器件通过数据总线获得电源。IWire器件内部集成了一个SOOpF的电容用于储存从数据线上“窃”得的能量,并在通信期间给自身供电。1-Wire总线是双向总线,由主器件向从器件启动复位和读写操作。其基本操作有4种??写1、写0、读和复位,高级的字节操作可以由前3个操作组合得到。决定1-Wire总线的状态的器件有3种:主器件、上拉电阻和从器件,1-Wire总线在默认状态(空闲状态)主从设备均高阻输出,总线被正电源经由上拉电阻拉成高电平,从设备在此期间“充电”。在应用中上拉电阻R的大小要根据系统的能耗限制、通信速度和网络大小进行慎重选择。电阻越大,主器件或从器件释放总线后由电源将总线拉成高电平所花的时间也就越多,当电阻大到一定程度,甚至有可能导致上升时间太长而不能满足1-Wire器件的时序要求;电阻越小,则将总线拉高的能力也越强,在主器件或从器件输出低电平的时候通过电阻的电流也就越大,能耗也就越大,而过小的电阻也会导致上拉能力太强以至于1-Wire主、从器件无法将总线电平拉低。
【发明内容】
[0003]本发明针对现有技术中的问题,提供一种1-Wire总线免上拉电阻端口配置方法,通过编程动态配置主控制器端口的输入输出方式与1-Wire从器件实现免上拉电阻进行接口的方案。该方案还具有强上拉和便于节能设计等特点,可以用于多节点和长距离传输的1-Wire网络设计中和低功耗的应用中。
[0004]本发明解决其技术问题所采用的技术方案是:提供一种1-Wire总线免上拉电阻端口配置方法,复位操作包括以下步骤,步骤一,将主控制器端口设置为推挽输出模式并输出1,为1-Wire从器件充电;步骤二,主控制器端口推挽输出模式输出0,并延时H,在延时时间内,1-Wire从器件在检测到总线的低电平后,其内部电路复位;步骤三,主控制器端口设为推挽输出模式并输出1,保持时间Il ;步骤四,将主控制器端口设置为弱上拉输入状态,延时12,并检测总线是否被拉低;步骤五,等待J1,然后主控制器端口设置为推挽输出模式并输出I。复位完成。在复位后的空闲状态,主控制器端口均应处于推挽输出高电平的状态,以便为后续操作充电。
[0005]按上述技术方案,所述步骤一中,为1-Wire从器件充电时间至少2.5 μ s (G),步骤二中,延时时间H为480?960 μ s,步骤三中,时间11为2?6 μ s,步骤四中,延时时间12为30?200 μ S,步骤五中,等待时间Jl为10?20 μ S。
[0006]按上述技术方案,写I操作包括以下步骤,将主控制器端口设置为推挽输出模式并输出O,持续时间2?15 μ S (A),将主控制器端口设置为推挽输出模式并输出1,持续时间20 ?45 μ s (B)。
[0007]按上述技术方案,写O操作包括以下步骤,将主控制器端口设置为推挽输出模式并输出0,持续时间35?60 μ s (C),将主控制器端口设置为推挽输出模式并输出1,持续时间大于2.5 μ s (D) ο
[0008]按上述技术方案,读总线操作包括以下步骤,步骤一,将主控制器端口设置为推挽输出模式并输出0,持续时间2?15 μ S(A);步骤二,将主控制器端口设置为推挽输出模式并输出1,持续时间2?4 μ s (El);步骤三,主控制器端口配置为弱上拉输入模式,持续时间2?5 μ s(E2);步骤四,主控制器读总线状态,得到该次读总线的结果;步骤五,等待时间大于2.5 μ S(F),将主控制器端口设置为推挽模式并输出I。
[0009]本发明产生的有益效果是:(I)免除了上拉电阻的需要;(2)在免上拉电阻的接口方式中是通过主控制器内部的推挽电路实现总线电平的上拉,而主控制器内部的推挽电路一般是由MOSFET实现的,具有强的驱动能力,实现了强驱动能力的1-Wire网络的目标。因此采用该方法,还可以驱动需要较大电流的1-Wire从器件或1-Wire网络;(3)通过采用推挽+弱上拉(开漏)实现传统方案中的上拉电阻的功用,还具有降低系统功耗的优点。在传统方案中,如果VCC选择5V,在主控制器输出低电平时,上拉电阻中的电流达到I = U/R=5V/4.7ΚΩ ^ 1.1mA,在手持系统中,属于耗电量较大的部件,本发明方法中主控制器输出的高低电平均为推挽模式,相应消耗的电流就要小很多,主要是电平转换电流和MOS管的泄漏电流,一般为微安级别。(4)在没有采用额外的电源线对1-Wire从器件供电的系统中,如果1-Wire从器件获取的是温度、压力等缓变信号,仅偶尔需要进入工作状态,主控制器在1-Wire从器件的非工作状态期间输出推挽的0,可以实现使得1-Wire从器件断电从而达到降低系统功耗的目的。
【附图说明】
[0010]下面将结合附图及实施例对本发明作进一步说明,附图中:
[0011]图1是本发明实施例1-Wire总线免上拉电阻端口配置方法基本操作波形图;
[0012]图2是传统上拉电阻形式1-Wire总线的基本操作波形图。
【具体实施方式】
[0013]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0014]本发明实施例中,提供一种1-Wire总线免上拉电阻端口配置方法,复位操作包括以下步骤,步骤一,将主控制器端口设置为推挽输出模式并输出1,为1-Wire从器件充电;步骤二,主控制器端口推挽输出模式输出0,并延时H,在延时时间内,1-Wire从器件在检测到总线的低电平后,其内部电路复位;步骤三,主控制器端口设为推挽输出模式并输出1,保持时间Il ;步骤四,将主控制器端口设置为弱上拉输入状态,延时12,并检测总线是否被拉低;步骤五,等待J1,然后主控制器端口设置为推挽输出模式并输出I。复位完成。在复位后的空闲状态,主控制器端口均应处于推挽输出高电平的状态,以便为后续操作充电。
[0015]当前通用的各类控制器中,端口通常是可配置的,一般可以配置为开漏、(弱)上拉和推挽模式以及其他模式。例如Silab公司的C8051FXXX系列单片机,意法半导体公司(STMicroelectronics)的CotexM3的控制器STM32F10XXX系列控制器,这些控制器的引脚均可以通过编写程序实现端口模式的动态配置。在1-Wire总线的各个阶段,可以根据时序要求动态配置主器件的引脚的模式,从而替代上拉电阻的功能。以常用的温度测量芯片DS18B20为例,该芯数据手册中,推荐的上拉电阻是4.7ΚΩ,而C8051F单片机和STM32F10X内部集成的上拉电阻大小分别为约4.7ΚΩ X21和4.7ΚΩ X8.5,都远远大于推荐值。如果仅仅利用控制器内部的上拉电阻,也不能满足时序要求,必须巧妙地利用片内集成的推挽输出来模拟更强的上拉能力。通过使用本发明方法,不仅免除了上拉电阻的需要,还具有驱动能