新闻中心

EEPW首页>测试测量>设计应用> 基于1一Wire总线的嵌入式测温系统设计

基于1一Wire总线的嵌入式测温系统设计

作者: 时间:2009-05-08 来源:网络 收藏

1.2.1 复位/应答时序
DS2480B接到主机复位命令后将拉低512 μs后释放,等待2μs(短路/中断采样)后检测上是否有短路或中断信号,如果没有则等待8μs(应答采样)后检测总线上是否有应答脉冲,再等待512μs(延迟)后向主机发送命令应答字。如果总线上有短路或中断信号则等待4 096 μs后再次检测总线。时序如图3所示。
1.2.2 写1/读数据时序
DS2480B在写1/读数据时序中先将总线拉低8~15 μs(写1低),3~10μs(数据采样)数据采样偏移后对总线采样并读从器件应答。再经过49 μs(等待高)1/读数据时序结束。时序图如图4所示。
l. 2.3 写0时序
DS2480B的写O时序中先将总线拉低57弘s(写O低)然后释放总线,3~10μs后写0时序结束。如图5所示。

DS2480B可以被看作包含2个静态和多个动态的状态机。上电后DS2480B自动进入两个静态之一的命令模式。此时主机应向DS2480B发送1次复位命令,用来校准DS2480B内部的时序产生器,所有的1一通信过程都必须以复位命令开始。此后DS2480B准备好接收及执行任何合法命令。在命令模式下微处理器可以改变1一网络的通信速度、供电方式、改变1一wire通信波形等。DS2480B从命令模式转换到下一个静态一数据模式后将从TXD管脚上收到的信息字节转换成相应的1一通信波形并将从器件返回的应答字节通过RXD管脚返回给微处理器。也就是说对1一wire从器件DSl8820的操作必须在数据模式下进行。

2 系统设计
系统设计包括硬件设计和软件设计2部分。
2.1 系统硬件设计
与DS2480B桥接器一起工作的UART应支持8位字长、无奇偶校验、9 600波特率(b/s)的通信方式。该系统采用Silicon公司生产的C8051F040作为主处理器,(;8051F040有2个uART串口,且满足桥接器对UART的要求。温度采集转换芯片为Dallas公司生产的DSl8820。系统原理图如图6所示。

其中从C8051F040的UART到DS2480B需用1片QS3245进行3~5 V的电平转换。1一Wire总线上过多的噪声会影响l―wire通信的正确性,为了滤除电路中的噪声保护。DS2480B的1一Wire端口不受静电损伤DS2480B的1一w管脚外接RC滤波电路。在本设计中只涉及到基本DS2480B操作,在需要进行EPROM编程的设计中应串接2个DS9503。
2.2 系统软件设计
给出的1一Wire总线驱动程序是结合图4所述电路,以C8051F040单片机为主控制器,使用内部时钟频率24.5 MHz编写而成,其中包括DS24.80B复位子程序、DS2480B初始化子程序、总线复位子程序、温度采集子程序、温度值读取子程序。C8051F040系统内部有64 KB FLASH存储器可以用来存储程序代码。C代码设计调试工具为Silicon公司提供的单片机集成开发环境。
控制器上电后,对自身和DS2480B进行初始化并与DS2480B取得同步。由于DS2480B中没有晶振,它必须通过采样主机发送的字节来调节自身的时基。主控制器在低于9 600波特率条件下发送1次0字节可以产生1次复位信号。Ds2480B复位后所有参数恢复到缺省状态,在该设计中1一Wire网络长度在10 m之内,属于小型长度,为了取得良好的性能,选择在“flexi―ble speed”下进行标准速度通信。对DS2480B复位和初始化是进行正确1一Wire通信的前提,当网络中应答数据包长度或格式不正确时,也必须重新对DS2480B复位和初始化。
所有的1一Wire操作都是从复位1一Wire总线开始的。每次采集温度值和读取温度值操作前最好对总线进行1次复位操作,同时检测来自总线上的从器件的在线应答脉冲。驱动程序流程图如图7所示,部分程序代码如下所示:

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭