高 杨,王则胜
(镇江船艇学院,江苏镇江212003)
随着计算机、电子技术的发展,越来越多的数字化的航海仪器被应用到舰船上来,如GPS导航仪、北斗导航仪、罗兰 C、数字气象仪、测深仪、加装磁航向传感器的磁罗经等,这些航海仪器各司其职为舰船安全航行提供了重要保证,对于部分小型舰船这些仪器只能获取舰船当前航行过程中的相关数据,并不能传递、处理、利用彼此的信息,由于这些仪器安装位置比较分散,航行数据需要人工单独采集整理,比较费时费力,不利于船长在紧急情况下做出情况处置,尤其在战时,对于赢得战场战机比较被动。本论文的研究内容就是设计一个导航仪器的信息采集及转发装置,将比较分散的各相关的航海数据以电子显示的方式显示在带上位机的导航仪器上,以便船长综合分析航行数据,为船长做出情况处置提供数据依据。
装置主要由单片机控制电路、液晶驱动及显示电路、光电隔离及电平转换电路、键盘电路、CAN总线控制电路、旋转编码器等组成如图1所示。装置的控制核心选用了C8051F340单片机,该单片机具有高可靠性、高性能和强干扰能力,性价比高的优点[1]。装置的主要完成以下任务:利用单片机自带的串口采集标准的 IEC-61162-1异步串行信号如磁罗经的航向信息、北斗导航仪的位置信息、测深仪的水深信息等,利用可编程计数器/定时器阵列(PCA)采集编码器的角度信息(角度可以是方位值也可以使舷角值),再对这些信息进行打包处理,最后将打包后的信息发送CAN总线供带屏幕显示的导航仪器接收,以达到信息共享的目的,同时利用液晶驱动及显示电路显示实际采集的数据[2]。
各航海仪器与装置的连接主要是通过 RS232或RS485,电路的设计为了考虑装置的通用性,设置了两种电平转换电路。考虑到装置的安全,设计了光电隔离电路及将串行信号转换为 TTL信号[3]。电路如图2所示。
市面上8段数码显示电路众多,考虑到装置使用环境多在露天,8段数码管的显示效果不如液晶显示效果,装置的数据显示采用1621芯片作为驱动,用于显示采集到的数据[4]。
电路如图3所示。
装置采集到的信息采用 CAN总线的形式进行共享分发,本文设计的 CAN总线控制电路采用Philips公司生产的CAN微控制器SJA1000,该控制器符合 CAN2.0B协议,完全兼容PCA82C200;支持29位标识符模式,有64B的接收缓冲区、能通过验收屏蔽码寄存器和验收码寄存器对标准帧或扩展帧进行单向/双向接收滤波;对 CAN总线上的每一个错误可进行错误中断;可通过检测具体位来仲裁丢失中断等特性。通过与 RX、TX 连接的电路采用的是PCA82C250。它是SJA1000控制器与物理总线之间的接口,可以提供对总线的差动发送能力和对CAN控制器的差动接收能力,具有很强的抗干扰能力[5]。
本装置的软件框图如图4所示。主要用于系统自检、键盘扫描、数据采集、数据显示、数据转发功能的实现。
整个系统软件由主程序和子程序组成。主程序进行数据初始化设置,在系统通电后先进行系统自检。子程序包括设置液晶显示、键盘扫描、串口通信、PCA采集、CAN总线通信。键盘扫描采用中断方式,用扫描法识别被按下键来选择航海仪器数据源,采用串口中断形式来查询各航海仪器是否发送数据过来,采用可编程计数器PCA记录旋转编码器的脉冲数来计算旋转角度。航海仪器数据采集的实现流程图如图5所示。
上述单舰船航海仪器信息采集装置在设计方面充分利用 C8051F340单片机自身的软硬件资源,大大降低了软硬件设计的复杂度和整个装置开发、维护的成本,提高了系统的可靠性。相比其它实现方案,具有使用器件少、节约成本、调试方便等特点,很好地满足了航海仪器信息采集对实时性、同步性、通用性的要求。此装置在应用时配上不同的航海仪器,稍加改动,便可在舰船多个部门得到应用,因而具有较高的实用性和开发价值。
[1]尹海宏.基于单片机技术的数据采集系统的设计[J].信息技术,2008.
[2]唐宝成.基于C8051F020单片机的数据采集设计[J].科学与财富,2010.
[3]许文斌,曾全胜.单片机实时数据采集系统设计[J].机械与电子,2009.
[4]邬宽明.CAN总线原理和应用系统设计[M].北京:北京航空航天大学出版社,2001:1-32.
[5]Philips Semiconductors.SJA1000Stand-alone CAN controller.Preliminary specification[M],1997:46-49.