基于双层CAN总线的声纳数据通信系统设计
V时,OUT1输出低电平,OUT2输出高电平;当电源电压低于4.8 V时,OUT1输出高电平,OUT2输出低电平。ICL7665的输出信号通过光电耦合器TLP281接入PIC18F4580的I/O口,实现对电源电压的监控,使电源电压误差<4%。TLP281通过电光和光电传递信号,在电气上隔离信号的发送端和接收端。这种隔离作用能有效抑制噪声,消除接地回路的干扰。电源监测与隔离电路原理图如图4所示。
2.3 软件设计
通信程序主要包括节点初始化程序、数据发送程序、数据接收程序以及CAN总线出错处理程序等。为便于移植和资源共享,系统软件设计采用C语言实现,软件遵循模块化设计思想,采用结构化程序设计方案,使其具有良好的扩展性。
在CAN通信过程中,初始化包括设置SPI接口的数据传输速率、CAN通信的波特率、MCP2510的接收过滤器和屏蔽器以及发送和接收中断允许标志位等。内部和外部CAN控制器在接收数据时采用中断方式,发送数据时采用查询方式。与内部CAN控制器不同的是,读、写MCP2510的发送和接收缓冲器必须通过SPI接口协议的读写命令来实现。写指令首先被发送到MCP2510的SI引脚,并在SCK的上升沿锁存每个数据位,然后发送地址和数据。指令执行完毕后,数据被写进指定的地址单元中,再通过SPI接口协议的写命令来设置发送位以启动发送。读操作时,首先将读指令和地址发送到MCP2510的SI引脚,并在SCK的上升沿锁存每个数据位。同时把存贮在这个地址单元中的数据在SCK的下降沿输出到SO引脚。当执行读写操作时,CS引脚应始终保持在低电平。外部扩展CAN总线软件设计的流程图,如图5所示。
3 系统测试
CAN总线协议有很好的错误校验措施,当硬件检测到数据在传送过程中发生错误时,会自动重新发送数据,当某一节点的错误严重时,总线会自动关闭该节点,且不影响其他节点的数据传送。
为了验证系统数据采集及通信可靠性,分别对CAN总线上位机与各中间控制器节点、中间控制器与各采集单元节点进行实时仿真测试。仿真通信介质采用100 m长屏蔽电缆,采用多种数据帧结构,选用总线速率为20 kB/s,传送数据域长度为8 bit的数据帧。分别进行上位机与节点的单帧和多帧通信。从主控状态显示情况来看,无数据传送出错和数据丢失现象,性能稳定,验证系统具有一定的可靠性。
4 结束语
本文结合CAN总线在航海领域的应用状况,在研究CAN总线技术和PIC单片机功能的基础上,设计了一种基于双层CAN总线的声纳数据传输系统。本系统通过结合PIC18F4580内置CAN控制器及外扩展CAN控制器的方式,以具有双CAN总线接口的单片机中间控制器为核心,采用分级、分区域组合的思想实现两级、多区域数据信息的采集。系统充分融合了CAN总线传输距离远,传输速率高,抗干扰能力强的特点,通过实验检测,文中所提出的设计方案可行,完全满足声纳数据传输系统高稳定性、高可靠性的要求。系统不仅适用于船舶声纳数据的采集,而且可对CAN总线在航空领域的应用提供参考。
- CAN总线系统测试技术(05-11)
- 基于CAN总线的GaAs光电阴极制备测控系统(07-27)
- 基于LabVIEW的智能开关综合保护装置的数据获取与处理(03-09)
- CAN总线网络测试研究(02-10)
- 基于CAN总线的航空电缆测试系统分布机研究(04-16)
- 基于DSP2812的带式输送机多路温度检测系统设计(06-18)