3 智能节点的硬件设计
智能节点硬件框图见图2。由于智能节点在同一时间可能要进行很多动作,如数据的采集,与上位机的通信,界面的显示等,为了保证数据的正确采集和可靠传输,本系统采用双MCU结构,从MCU负责数据的采集、保存和报警功能。而主MCU负责数据的转发,现场的界面显示等功能。主、从MCU都采用AT89C55。其内部具有20K的EPROM,并且自带看门狗电路,简化了电路连接,提高了系统的抗干扰性。它具有双DPTR结构,从而使片外寻址的编程更加灵活和简化。
ADC8016是逐次比较式16路8位A/D转换器。它包含有一个8位A/D转换器和16路的单端模拟信号多路转换开关。在一个智能节点中需要4块ADC8016对64路的数据进行转换。
由于电压、电流和温度信号是通过分流器变换成电压量之后才进行采集的。由于分流器变换出来的电压量是毫伏级的,而ADC8016的输入范围是0~5V,所以由分流器变换出来的电压量要通过信号放大电路之后才进入AD转换器。信号放大电路由两级的运算放大器构成,从而提高了系统的精度。
为了提高系统的抗干扰能力,在数据采集芯片ADC0816和AT87C55之间加入光耦隔离。要注意的是,这里要采用快速光耦,因为如果采用光耦的开关速度太慢,由ADC出来的数据是传送不到采集MCU那边的。因此我们采用了快速光耦6N137。而现场报警的功能是通过蜂鸣器来实现。
主、从MCU之间的数据、信息的传递是通过双口RAM(CY7C007)来实现的。从MCU采集到的数据储存到双口RAM中,主MCU在适当时候从双口RAM中取出数据,并对数据进行发送。为了保证采集的数据不因下位机掉电或其他故障而丢失,主MCU在数据发送之前,先把数据存放在掉电非易失存储器里。在CY7C007中地址最高的两个字节7FFE、7FFF和两边的INTL、INTR引脚可作为左右两边的控制信号来用。当左边向7FFE写数据时,右边的INTR引脚会变低,当右边向7FFE读数据时,INTR引脚复位,而INTR引脚是低电平有效的。对7FFF做类似的操作时,INTL引脚也会有同样的功能。而本系统中,就是根据CY7C007这一特点,把CY7C007的INTR引脚连到主MCU的INT0引脚。当从MCU检测到有故障时,就向双口RAM的7FFE写数据,从而向主MCU发出报警信号,让MCU马上进入中断,进行相应的处理。