基于单片机的温度巡检系统的设计

发布时间 : 星期六 文章基于单片机的温度巡检系统的设计更新完毕开始阅读

通讯中,由于SN75176的发送和接收都由同一器件完成,并且发送和接收使用同一物理链路,必须对控制信号进行切换。控制信号何时为高电平,何时为低电平,一般以单片机的TI,RI信号作参考。

发送时,检测TI是否建立起来,当TI为高电平后关闭发送功能转为接收功能。 接收时,检测RI是否建立起来,当RI为高电平后,接收完毕,又可以转为发送[23]。 在理论上虽然行得通,但在实际联调中却出现传输数据时对时错的现象。根据查证有关资料,并在联调中借助存储示波器反复测试,才发现一个值得注意的问题,我们可以查看单片机的时序:

图3.10 串行口模式3时序图

单片机在串行口发送数据时,只要将8位数据位传送完毕,TI标志即建立,但此时应发送的第九位数据位(若发送地址帧时)和停止位尚未发出。如果在这是关闭发送控制,势必造成发送帧数据不完整。如果单片机多机通讯采用较高的波特率,几条操作指令的延时就可能超过2位(或1位)数据的发送时间,问题或许不会出现。但是如果采用较低波特率,如9600,发送一位数据需100μs左右,单靠几条操作指令的延时远远不够,问题就明显地暴露出来。接收数据时也同样如此,单片机在接收完8个数据位后就建立起RI信号,但此时还未接收到第九位数据位(若接收地址帧时)和停止位。所以,接收端必须延时大于2位数据位的时间(1位数据位时间=1/波特率),再作应答,否则会发生总线冲突。

③总线上所连接的各单机的发送控制信号在时序上完全隔开。为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线的使用权必须进行分配才能避免竞争,连接到总线上的单机,其发送控制信号在时间上要完全隔离。

25

总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任意两个单机的发送控制信号在时间上完全分开,避免总线争端。

3.5主控机部分 3.5.1 电路设计

主控机主要负责控制从机,包括设置从机信息和收集从机检测信号,然后将收集到的数据进行存储、分析、显示、打印,并能根据用户设置的报警阈值进行声光报警。这部分的硬件电路设计除了键盘、液晶、打印机等常规外设外,增加了一片24C04用来保存温度数据,另外,增加了一片日历时钟芯片PCF8563。

24C04是基于IC总线的串行EPROM,存储容量512个字节,它占用单片机资源很少,仅占用了两根I/O线,数据一旦写入可保存100年,避免了普通RAM掉电保护的麻烦,非常适合于各类仪器仪表和控制装置的参数保存。

主控机每个整点收集一次数据,并将数据保存到E2PROM。每个温度数据占用2个字节,这样,我们设计共保存24组历史数据,占用24?4?2?192个字节。当存满24组数据后,整点再次接收数据时,将最早保存的数据删除,其他数据依次前移为新数据空出位置。

PCF8563是低功耗的CMOS实时时钟/日历芯片,它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过IC总线串行传递

这两部分电路设计原理图如下:

2

[24]

2

2

图3.11 主机24C04与8563部分电路原理图

3.5.2 所用器件介绍

PCF8563:PCF8563是PHILIPS公司推出的一款工业级内含IC总线接口功能的具有极低功耗的多功能时钟/日历芯片。PCF8563的多功能报警功能,定时功能,时钟输出功能以及中断输出功能能完成各种复杂的定时服务,甚至为单片机提供看门狗功能。内部时钟电路,内部振荡电路,内部低电压检测电路(1.0V)以及两线制I2C总线通讯方式,不但使外围电

26

2

路极其简洁,而且也增加了芯片的可靠性。同时每次写数据后,内嵌的字地址寄存器会自动产生增量。当然作为时钟芯片,PCF8563亦解决了2000年问题。因而,PCF8563是一款性价比极高的时钟芯片,它已被广泛用于电表,水表,气表,电话,传真机,便携式仪器以及电池供电的仪器仪表等产品领域。

PCF8563的特性:宽电压范围1.0~5.5V,复位电压标准值0.9V;超低功耗;可编程时钟输出频率为32.768KHz,1024Hz,32Hz,1Hz;四种报警功能和定时器功能;内含复位电路,振荡器电路和掉电检测电路;开路中断输出;400KHzI2C总线,其从地址:读,0A3H;写,0A2H。

PCF8563原理:PCF8563有16个8位寄存器;一个可自动增量的地址寄存器,一个内置32.768KHz的震荡器(带有一个内部集成的电容),一个分频器,一个可编程时钟输出,一个定时器,一个报警器,一个掉电检测器和一个400KHzI2C总线接口。

所有16个寄存器设计成可寻址的8位并行寄存器,但不是所有位都有用。前两个寄存器(内存地址00H,01H)用于控制寄存器和状态寄存器内存地址02H~08H用于时钟计数器,地址09H~0CH用语报警寄存器(定义报警条件),地址0DH控制CLKOUT管脚的输出频率,地址0EH和0FH分别用于定时器控制寄存器和定时寄存器。秒,分钟,小时,日,月,年,分钟报警,小时报警,日报警寄存器,编码格式为BCD,星期和星期报警寄存器不以BCD格式编码。

当一个RTC寄存器被读时,所有计数器的内容被锁存,因此,在传送条件下,可以禁止对时钟/日历的读错。

①报警功能模式

一个或多个报警寄存器MSB清0时,相应的报警条件有效,这样,一个报警将在每分钟至每星期范围内产生一次。设置报警标志位AF(控制/状态寄存器2的位3)用于产生中断,AF只可以用软件清除。

②定时器

8位的倒计数器(0FH)由定时器控制寄存器控制,定时器控制寄存器用于设定定时器的频率,以及设定定时器有效或无效。定时器从软件设置的8位二进制数倒计时,每次到计数结束,定时器设置标志位TF,定时器标志位TF只可以用软件清除,TF用于产生一个中断,每个到计数周期产生一个脉冲作为中断信号。TI/TP控制中断产生的条件。当读定时器时,返回当前到计数的数值。

③CLKOUT

管脚CLKOUT可以输出可编程的方波。CLKOUT频率寄存器决定方波的频率,CLKOUT可以输出321.7678KHz,1024,32,1Hz的方波。CLKOUT为开路输出管脚,上电时输出有效,无效时输出为高阻抗。

④复位

PCF8563包含一个片内复位电路,当振荡器停止工作时,复位电路开始工作。在复位状

27

态下,I2C总线初始化,寄存器TF,VL,TD1,TD0,TESTC,AE被置逻辑1,其他的寄存器和地址指针被清0。

⑤掉电检测器和时钟监控

PCF8563内嵌掉电检测器,当VDD低于VLOW时,位VL被置1,用于指明可能产生不准确的时钟/日历信息,VL标志位只可以用软件清除,当VDD慢速降低达到VLOW时,标志位VL被置,这时可能会产生中断。

⑥EXT_CLK测试模式

测试模式用于在线测试,建立测试模式和控制RTC的操作。

测试模式由控制/状态寄存器1的位TEST1设定,这时CLKOUT管脚成为输入管脚。在测试模式状态下。通过CLKOUT管脚输入的频率信号代替片内的64Hz频率信号,每64个上升沿将产生1秒的时间增量。

注意:进入EXT_CLK测试模式时时钟不与片内64HZ时钟同步,也确定不出预分频的状态。

⑦电源复位(POR)替换模式

POR的持续时间直接也振荡器的起动时间有关。一种内嵌的长时间起动的电路可使POR失效,这样可使设备测试加速。

当进入替换模式时,芯片立即停止复位,操作通过IC总线进入EXT_CLK测试模式。设置TESTC逻辑0可消除替换模式,再次进入替换模式只有在设置TESTC为逻辑1后进行。在普通模式时设置TESTC为逻辑0没有意义,除非想阻止进入POR替换模式

⑧石英晶片频率调整

方法一 定值OSCI电容——计算所需的电容平均值,用此值的定值电容,通电后在CLKOUT管脚上测出的频率应为32.768KHZ,测出的频率值偏差取决于石英晶片,电容偏差和器件之间的偏差。平均偏差可达5分钟/年。

方法二 OSCI微调电容——可通过调整OSCI管脚的微调电容使振荡器频率达到精确值,这时可测出管脚CLKOUT上的32.768KHZ信号。

方法三 OSCI输出——直接测量管脚OSCI的输出。

[25]

2

28

联系合同范文客服:xxxxx#qq.com(#替换为@)