DS1629及其与单片机的接口设计
扫描二维码
随时随地手机看文章
摘要:介绍两线数字温度传感器/实时时钟芯片DS1629的特点、工作原理、应用中的接口设计和应注意的问题。
关键词:DS1629;两线总线;温度测量;单片机;接口设计
1DS1629的结构特性
DS1629是专门为了方便温度的数字化测量而设计的一种芯片,温度的测量精度为±2.0℃(典型值)。
DS1629由6个部分组成:数字温度传感器、实时时钟、两线串行接口、数据寄存器、温度和时钟报警比较器及时钟分频器和缓冲器。由制造商标定的温度传感器无需外部器件。芯片一上电就开始进行温度转换。主机(通常为单片机)可以周期性地读取温度寄存器中最新转换的温度值;由于转换是在“后台”进行的,读数据并不影响转换的过程。二进制数据的读/写通过两线总线进行,高位在前,每个寄存器的访问都采用8位的命令协议。芯片的引脚分布图如图1所示,引脚的功能为:SDA:串行口数据I/O端;SCL:串行口时钟I/O端;ALRM:报警输出;GND:接地端;X2:
32.768kHz反馈输出;X1:32.768kHz晶振输入;OSC:振荡器输出;VDD:2.2V~5.5V电源。
2DS1629的工作原理
在DS1629中,温度测量采用的是片上的温度测量技术,测量范围为-55℃到+125℃,芯片可以通过编程配置为转换一次即保存转换结果,然后转到待命状态;也可以配置成连接转换的工作模式。
2.1实时时钟/日历功能
DS1629的实时时钟/日历数据是通过两线的命令协议C0h来访问的。如果两线控制字的读/写控制位置为0,主机(单片机)就设置时钟(把数据写入时钟寄存器),反之则从时钟寄存器读取当前的时间值。
2.2报警功能
当DS1629的温度达到或超过存储在温度触发寄存器TH中的上限时,温度报警标志TAF就变为有效的高电平并一直保持到温度下降到温度下限寄存器TL中的值。
当时钟寄存器中的数值与时钟报警寄存器中的数值—致时,时钟报警标志CAF有效并一直保持到总线上的主机(单片机)通过C0h命令或C7h命令对时钟寄存器或时钟报警寄存器进行读/写操作时为止。
2.3SRAM的操作
DS1629中32个字节的SRAM是为用户设计的,其地址范围为00h~1Fh,可以通过两线协议17h对其进行读/写操作,读/写操作可以是单字节模式或页模式。
2.4配置/状态寄存器的操作
对配置/状态寄存器的访问是通过ACh命令来实现的,数据的读写总是高位(MSb)在前,低位(LSb)在后,对高位字节(MSB)可以进行读/写操作,对低位字节(LSB)则只能进行读操作,其格式如表1所示,各位的具体含义如下:
(1)温度转换模式位ISH。该位为1时,芯片在收到开始转换命令后进行转换;该位为0时则芯片连续进行温度转换并把最后一次的转换结果保存在温度寄存器中。其默认值是0。(2)报警信号控制位POL。(3)上电转换状态位CNV(默认值是0)。该位与ISH的不同组合确定具体的工作模式。当CNV和ISH为00时,芯片一上电就连续进行转换;为01时芯片在上电后自动进行一次温度转换,随后的转换是由温度转换命令启动的;为10时芯片在上电后进入待命状态,一旦有开始转换命令就连续进行转换;为11时芯片上电后进入待命状态,一有命令就启动一次转换并保存结果。(4)报警模式控制位A1和A0(默认值为00)。(5)振荡器输出设定位OS1和OS0(默认值为11)。(6)时钟报警标志位CAF。(7)温度报警标志位TAF。(8)时钟报警锁存位CAL。
2.5两线串行数据总线
DS1629支持两线总线和双向数据协议。通过漏极开路输出的I/O线SDA和SCL连接到总线上,在总线上属于从机。
根据读写控制位的不同数值,两线总线有两种不同的数据传输类型:(1)数据从主机(单片机)发送器传送到从机接收器,主机(单片机)传送的第一个字节是从机的地址,随后是若干字节的数据,从机每收到—个字节的数据就返回一个确认位。(2)数据由从机发送器传送到主机(单片机)接收器,第一字节(从机地址)由主机(单片机)发送,从机返回—个确认位,随后若干字节的数据由从机发送给主机(单片机)。除了最后—个字节外,主机(单片机)在收到所有的数据后需返回—个确认位。在收到最后—个字节时,主机(单片机)返回一个“非确认(高电平)”信号。
主机(单片机)产生串行时钟信号及起始和结束信号,一次数据传送以结束信号或重复的开始信号为结束。因为重复的开始信号也是下一次数据传输的开始,所以总线不会被释放。
DS1629有如下两种操作模式:(1)从机接收模式。串行数据和时钟分别通过SDA和SCL接收,每接收—个字节就返回—个确认位,只有在数据传输的开始和最后才识别开始和结束信号。在从机的地址和方向位(即读/写控制位)收到以后,地址的识别由硬件来完成。(2)从机发送模式。这—模式下第一字节的接收和处理与接收模式相同。但在这—模式下传输方向位将表示传输方向被反向,串行数据由DS1629通过SDA送出,而时钟信号则通过SCL输入。
2.6从机地址
控制字是主机(单片机)发出的开始信号后的第一个字节,它由高4位控制码、3位地址码和读/写控制位组成。对DS1629而言,控制码为二进制数1001。随后的3位(A2、A1、A0)是设备的选择位,由硬件设为高电平。控制字的最低位(读/写位)确定操作的具体类型,该位为1时读操作,反之则为写操作。
2.7控制字
DS1629的控制字有(1)配置寄存器指令ACh。若读/写位为0,该指令写入配置寄存器。该指令送出后,随后的数据字节被写入控制寄存器;若读/写位为1,随后读出的是存储在配置寄存器中的数据。(2)温度开始转换命令EEh。(3)温度结束转换命令22h。(4)读温度结果命令AAh。(5)访问时钟指令C0h。(6)访问时钟报警指令C7h。(7)访问温度上限TH指令A1h。(8)访问温度下限TL指令A2h。(9)访问存储器指令17h。[!--empirenews.page--]
从前面的介绍可以看出,由于DS1629芯片的地址固定为“111”,所以在两线总线上只能有一片DS1629,而且对只能作从机的DS1629而言,不管是发送还是接收数据,首先要由主机送出一位低电平的开始信号,随后是主机送出的与DS1629芯片通信的控制字10011110(二进制),接着是具体的诸如启动温度转换命令EEh、访问存储器命令17h等控制字,随后才是要传送的实际数据,最后是由主机送出的高电平的停止位,读/写操作则是由控制字中的读/写控制位确定的。DS1629每发送或者接收一个字节的命令或数据,都自动产生一位低电平的确认信号。
3DS1629与单片机的接口设计
假定51单片机的P1.0接SDA,P1.1接SCL,设定DS1629的工作模式为单次转换模式,禁止时钟输出,对温度及时钟均为高电平报警,则相应的程序段如下:
4结束语
DS1629给基于单片机的数字化温度的测量与控制带来了极大的方便,使得系统的设计大为简化。但在使用时需要注意以下几个方面:
(1)由于DS1629对时序及电特性参数要求较高,应严格按照DS1629的时序要求去操作。
(2)测温电缆线建议采用屏蔽双绞线,屏蔽层在源端单点接地。
(3)数据传输的方向由控制字中的读/写位确定。
(4)在一对两线总线上只能接一片DS1629;若需要使用多片,每片都需占单片机两根I/O线。每一对I/O线上除了接DS1629外,还可以接其他I2C器件。