图2 网状冗余在电源模块控制中的应用改进
进一步改进方案:在需要进一步提高系统的实时性的情况下,可以下载、上传分别使用图中A、B总线进行传输(如图2),从而可以将半双工类型的串行总线近似为全双工总线,理论上将系统的传输速率提高一倍,有效减少系统数据的传输延迟。极端情况下,即使上层网络或现场总线只有一个端口正常时,系统也不会崩溃,可以将该端口设成可收、发信息状态,只是降低了系统传输的速度,增加了控制信息传输延时,但与系统崩溃造成的损失相比将显得微不足道。
4.2节点硬件设计
设计选用PHILIPS公司新推出的一款功能强大的具有ARM7TDMI内核的32位微控制器LPC2294,内部集成有四路符合CAN规范CAN2.OB,ISO 11898-1标准的CAN控制器,总线数据波特率均可达1Mbps。
节点硬件电路组成:
CAN节点硬件电路如图3所示,由ARM微控制器LPC2294,CAN总线收发器TJA1050,高速光耦6N137和电源隔离模块B0505S等组成。由于四路CAN接口的外部电路完全一致,图中只给出了CAN3、CAN4接口的外部电路。
CAN控制器和物理总线之间的接口选用收发器TJA1050,不上电时,总线呈现无源特性,在性能上大大优于以前的CAN总线收发器。
4.3节点软件设计
软件调试环境采用ARM公司的ARM核处理器集成开发工具ADSv1.2。ADSv1.2集成了汇编、C、C++编译器和调试器,编译效率高,提供了功能强大的系统库,支持软件调试JTAG仿真调试及硬件调试。
对于一般的32位ARM应用系统,在运行主程序前必须初始化运行环境,即为ARM芯片编写启动代码。启动代码包括异常向量表、堆栈初始化、存储系统初始化和目标板初始化等,一般用汇编语言编写。对于本设计关键是编写CAN驱动程序,主程序通过调用驱动程序提供的接口来实现数据的接收和发送。驱动程序包括四部分内容:CAN控制器的初始化、接收数据、发送数据和总线异常处理。图4为主程序流程图。
图4 主程序流程图