传统的CAN总线节点之间通信的控制方式有2种,一种是利用单片机控制独立的CAN总线控制器;另一种是用带有CAN总线控制器的单片机进行控制。这2种方式都存在线路复杂,系统稳定性不高以及无法实时处理大理数据信息的弱点。本系统采用SoPC技术对CAN总线通信进行控制,可编程片上系统(System on a Programmable Chip,SoPC)技术是由ALTEra公司提出的一种灵活、高效的片上系统(Systemon a Chip,SOC)解决方案,是一种特殊的嵌入式系统。本系统中用嵌入式软核NiosⅡ作为控制器,以MieroChip公司的MCP2515作为CAN总线控制器。
以往的CAN总线收发器,通常采用2个高速光耦(如6N137),以实现电气隔离和电源上的DC—DC隔离,从而提高CAN总线通信的抗干扰性,另外还需要对阻抗进行调节、匹配才能搭出合理的电路,本系统采用广州周立功公司的CTM1050T。模块作为CAN总线收发装置。它是一款带隔离的高速CAN收发器芯片,该芯片内部集成了所有必需的CAN隔离与收发器件,能直接与CAN总线控制器的TXD,RXD引脚相连,具体电路连接如图4所示。
系统采用这种拓扑结构,最大的好处在于降低了系统线路的复杂程度,同时提高了系统的稳定性,并在一定程度上降低了功耗和生产成本。
2.2 软件设计中的关键问题
本系统软件设计主要包括2个方面,一是系统对于电气火灾的预测与预报的算法实现;二是上位机监控软件的设计和下位机功能软件的实现。
设计本系统主要是为了解决传统火灾预警系统中的误报、漏报率高的问题,实验测试表明,火灾探测器一段时间内的各采集的量值相互独立,呈一种相关随机分布,火灾探测信号是非平移随机过程,因此本文对探测器的量测判断提出一种新的决策方法,即模式分类判别方法,火灾探测器在临界点附近的传感器的量值判断,对应着实际情况就是2类分类的问题,第一类是线路一般故障,不会引发火灾;第二类是线路存在严重故障,有发生火灾的可能性,一般在临界点(阈值)范围的传感器在实际情况中会出现几种情况:正常,报警,但是在这一临界点上,出现这各种情况却是一种随机分布,也就是说在临界点上是一种概率分布,当传感器检测到的值到了一定的范围(一般取临界点的一个范围)内,为了减少漏报和误报,在系统设计的过程中采用贝叶斯决策进行情况分类,于是问题转化为对特定模式的决策分类问题。
上位机软件主要是显示目前系统的运行状况和预测结果,下位机SoPC系统功能软件中与CAN总线通信部分的软件设计是整个系统软件设计中较为关键的部分,SoPC系统中采用NiosⅡ为处理器,通过Avalon总线与定制的SPI核在FPGA芯片EP2C8Q208C8N中进行系统集成,这一过程可以通过QuartusⅡ软件中的SoPC Builder工具完成,然后通过集成开发环境NiosⅡIDE对定制的SPI的IP核进行访问与操作,待仿真验证无误后,利用ISP电缆线将程序烧写至SoPC系统的配置芯片中,使CAN总线节点正常工作,上、下位机程序流程图如图5,图6所示。