目前,随着信息产业的迅猛发展,各类船舶亟需配备更多质优价廉的中小型信息监控终端,用于监控气象状况、获取导航信息以便保证航行安全。以ARM、MIPS等领衔的32位处理器在信息监控终端应用中,显示出极大优势,但是一般以32位处理器构建的嵌入式系统往往需要配置外部FLASH和SDRAM,这样就使得开发和维护整个系统的成本较高,本设计采用高性能低功耗的AVR单片机和LCD液晶模块来设计信息监控终端,具有价格低廉、性能稳定、显示清晰、人机界面良好等优点,能够满足船舶对中小型信息监控终端的需求。
1 总体设计
信息监控终端主要由显示控制板、键盘、通信接口和液晶显示模块构成,具有数据收发、数据显示、人机交互和屏幕亮度调整等功能,其组成如图1所示。
工作过程为:系统初始化以后,信息监控终端按照设定的工作模式从通信接口接收数据,然后通过LCD控制器将数据发送到LCD液晶显示屏,通过键盘和显示屏实时响应用户的操作指令。
2 硬件设计
2.1 液晶显示模块与单片机
液晶显示模块选择EW32F00BCW,它是一款5英寸320×240点阵的液晶显示器,性能堪比日本原装的DMF50081,价格却便宜很多。该器件采用CCFL背光显示,显示方式为全透反显,显示颜色为蓝底白字,外型尺寸为139.0W×102.5H×13.2Dmm。
微控制器采用ATMEL公司AVR增强型单片机AT90CAN128。其主要性能是:采用CMOS技术和RISC架构;片内集成128 kB的FLASH程序存储器、4 kB的EEPROM和4 kB的SRAM数据存储器:具有JTAG接口;集成了8位和16位定时器/计数器、A/D转换器、SPI同步串口、UART异步串口、独立的CAN控制器;并且在软件上有效支持汇编语言及C高级语言。
2.2 显示控制电路
RA8835是一款成本低、通用性强的LCD控制器。它完全涵盖SED1335现有的功能,并加强了稳定性,且拥有制程较新及耗电较低的优势。RA8835的指令功能丰富,采用4位数据并行发送,可支持文字和图形的混合显示,并可将文字和图形的3层重叠显示、水平及垂直卷动等动态效果呈现于液晶屏上。图2是显示控制电路原理图,AVR单片机通过控制线和数据线与RA8835直接相连,控制显示内容和显示方式。为了储存显示内容并进行显示,RA8835需外接一至两片外部显示缓存62256。键盘采用2x4矩阵式接口,两根行线同时连接中断,有上下左右4个方向键,以及确认、返回、菜单、翻页4个功能键组成。
2.3 通信单元电路
由于不同船舶设备厂商提供了不同功能的产品和子系统,采用了不同的通信接口,信息监控终端需要配置多种通信接口才能与其进行通信,因此设计了常用的3种:RS232接口、RS422接口、CAN接口,电路组成如图3所示。
AT90CAN128具有两路串行USART接口,输出TTL电平,其中一路经过电平转换芯片MAX232转换为RS232电平,另外一路经过电平转换芯片MAX1482转换为RS422电平。在AT90CAN128的USART与电平转换芯片之间增加光电隔离,使输入端与输出端在电气上完全隔离,互不干扰。AT9 0CAN128内置CAN控制器,只需将控制器的发送端和接收端连接到CAN总线收发器即可构成CAN总线收发电路。CTM1050是一款带隔离的高速CAN收发器芯片,该芯片将CAN控制器的逻辑电平转换为CAN总线的差分电平并且具有DC 2500V的隔离功能及ESD保护作用。一般RS232通信都是与上位机直接相连,距离较短,因此在RS232电平上用稳压管进行简单保护。采用RS485和CAN通信时,一般距离较长,且多在舱室之外,雷电可能会造成总线损坏,所以除了设计电平转换,还必须加上隔离保护电路。
2.4 供电单元电路
供电单元在船电正常时采用交流220 V供电,并自动实现充电,充满电后自动断电;在船电故障时采用锂电池组供电,供电单元电路组成框图如图4所示。外部交流220 V电源通过适配器转化为14.8 V左右的直流,通过充电线路为锂电池组进行充电,保护线路用于防止过充、过放、过流和短路,然后经过稳压模块输出两路直流5 V,供给AVR单片机系统。由于LCD背光显示需要的特殊电源,因此通过冷阴极背光电源逆变器将直流5 V变换成交流1 300V供给LCD背光灯管。MAX5437是128级、高电压的数字电位器,采用简单的SPI接口代替机械调节,将DC/DC输出的-24 V电源变换为-10~24 V范围内可调,从而为液晶显示模块提供负电源和对比度调整电压。
3 软件设计
系统软件设计采用AVR Studio+Winavr集成开发平台。AVR Studio是在Windows操作系统下编写和调试AVR应用程序的嵌入式开发环境(IDE),Winavr是免费的AVR开发程序集,AVR Studio配合Winavr能够支持AVR C/C++程序的编辑、编译、连接以及生成目标代码,同时利用Atmel公司设计的实时在片仿真器JTAGICE mkⅡ能够实现系统的在线硬件仿真调试功能和目标代码的下载功能。为了方便程序调试和提高可靠性,软件设计采用自顶向下,逐步求精的结构化、模块化设计方法。终端主程序流程图如图5所示,上电后首先进行系统初始化设置,然后查询键盘状态,如果有键按下立即进行按键处理,否则按照设定的工作模式自动进行数据接收、显示和定时更新。在进行具体程序编写的时候,还需注意以下几个方面:
1)进行系统初始化的时候,需要完成对单片机I/O端口、SPI端口、异步串行端口、CAN端口等的初始化,同时还要禁止不使用的单片机功能模块,如JTAG端口、TWI端口等以降低整机功耗。
2)初始化完成后,还要对MAX5437的滑片位置进行设置。
由于其内部没有EEPROM,所以软件中利用单片机的EEPROM来记录滑片的位置信息。考虑到用户可能将液晶对比度调飞,程序中设计了通过键盘操作恢复出厂设置的功能。
3)采用中断和查询相结合的方式响应键盘。由于键盘行线同时连接单片机中断,程序不必一直查询键盘状态,只是中断产生以后才去扫描键盘,从而提高了单片机工作效率。
4 结束语
本文以AT90CAN128为核心,利用其丰富的片上资源,搭接必要的外围电路,软件设计与硬件电路紧密结合,提供了一种低成本高可靠性的船载中小型信息监控终端的设计方案。该终端显示清晰、工作稳定,可操控性强,具有较高的性价比和广泛的实用性,以及极好的推广应用价值。