APP下载

基于ARM9的自动气象站控制模块设计

2018-05-23刘怀芝

网络安全与数据管理 2018年4期
关键词:气象站内核嵌入式

叶 楠,刘怀芝,鹿 旭

(1.中船重工鹏力(南京)大气海洋信息系统有限公司,江苏 南京,210000; 2.中船重工鹏力(南京)新能源科技有限公司,江苏 南京,210000)

0 引言

随着居民生活水平的提高和气象意识的增强,近年来自动气象站得到了大力的发展。目前的自动气象站可自动地实现地面气象观测、气象数据存储和观测数据发送等功能。自动气象站需要可视化的人机界面,既能将气象数据传输给上级服务器,也能通过本地人机界面查看、控制自动气象站。因此可视化的液晶显示控制模块对于自动气象站是非常重要的。

目前国内外一般采用PC作为自动气象站的显示控制模块,利用VC、LabVIEW等软件设计显示控制软件,通常选用UART、TCP/IP、USB等协议进行数据/命令的传输[1-2]。自动气象站显示控制模块技术发展得很快,但同时也发现了很多问题。传统的硬件资源过于浪费,接口不够统一,现场布置过于繁琐,人机交互不够简单方便等,因此需要对传统的显示控制模块进行升级和改造[3]。

本文设计了一种基于ARM9的自动气象站控制模块。采用ARM9内核的AT91SAM9G35-CU芯片结合含触摸板的TFT-LCD液晶屏构成控制模块的硬件平台。为满足自动气象站控制模块多任务处理和人机操作直观方便的需求,采用经过裁剪的嵌入式Linux操作系统作为软件平台,并通过Qt图形开发软件设计人机交互界面的应用程序,移植到自动气象站控制模块软件平台中。本文所设计的自动气象站控制模块,既能满足传统气象站的多任务需求,又提供了现场查看、控制的功能,节省了硬件资源,体现了嵌入式设备的价值[4]。

1 硬件电路设计

基于自动气象站控制模块的功能需求以及人机交互界面美观方便的需求,采用Atmel公司的AT91SAM9G35-CU芯片作为MCU。以此MCU为核心,设计了电源电路、RTC时钟电路、LCD接口电路、触摸屏接口电路、背光接口电路、USB接口电路、SD卡接口电路、SPI接口电路、RS232接口电路、RJ45接口电路、RS485接口电路等,如图1所示。

图1 硬件总体框图

AT91SAM9G35-CU芯片主频达400 MHz,外设丰富,包含2个USB接口、4个UART接口、1个485接口、1个LCD、2个SPI接口、3个IIC接口、1个IIS接口、一个SD卡接口、1个RJ45接口。其16 KB指令高速缓存和16 KB数据高速缓存可为现有的程序和数据提供零时间等待响应,以确保对关键指令和数据的无延迟存取,并且EMC性能较好。

LCD模块采用奇美G070Y2-L01工业液晶屏,包含触摸板。该液晶显示屏分辨率为800×480,通过LVDS信号输出与AT91SAM9G35-CU芯片相连接。AT91SAM9G35-CU芯片内置LCD控制模块,无需外接LCD控制芯片。因液晶屏为LVDS信号输出,AT91SAM9G35-CU芯片引脚为TTL电平,需外接LVDS与TTL转换电路。LCD屏与AT91SAM9G35-CU芯片接口如图2所示。

图2 LCD屏接口电路

G070Y2-L01工业液晶屏携带触摸板。触摸板引出4根触摸线,分别为X+、X-、Y+、Y-。由于AT91SAM9G35-CU芯片内置A/D采样电路,可通过编写驱动程序将4根触摸线输出的电压信号转换为触点位置信息。同时液晶屏连接了背光接口,通过对AT91SAM9G35-CU芯片IO口的高低电平的控制,来实现控制背光开关的功能,本设计中控制PC20口的高低电平,程序控制1 min后自动关背光,待下次触摸再开启。触摸板电路和背光控制电路如图3所示。

图3 触摸板和背光电路

2 系统软件设计

2.1 操作系统的设计和实现

2.1.1软件平台的选择

目前,嵌入式操作系统种类繁多,比较主流的有Windows CE、μC/OS、嵌入式Linux、VxWorks等。表1对几种常用的嵌入式操作系统参数进行了简单的对比。

表1 主流嵌入式操作系统比较

从表1中可以看出,一方面嵌入式Linux系统与Windows CE和VxWorks相比,Linux代码是开放的,并且成本比较低。另一方面,μC/OS-II虽然小巧,但是它支持的外设比较少,嵌入式Linux系统与之相比就强大了很多。Linux系统具有功能强大的内核、处理能力高效稳定,支持很多的硬件设备,驱动资源丰富,大大降低了项目开发的周期;它的内核具有可裁剪性,可以根据不同的项目定制不同的内核,灵活性很强。同时,作为气象信息数据采集,采集频率为每秒1次,实时性要求相对不高,嵌入式Linux系统可以满足。综合起来,本设计选择了嵌入式Linux操作系统作为其软件平台[5-6]。

2.1.2嵌入式Linux系统的裁剪和移植

一般来说,向硬件平台中移植嵌入式Linux操作系统主要有以下几个步骤: BootLoader的裁剪和移植、内核的裁剪和移植、文件系统的裁剪和移植。在本设计中所采用的Altem公司的AT91系列芯片需在BootLoader移植前增加AT91bootstrap的移植。

(1)AT91bootstrap的移植

Altem公司生产的芯片在移植嵌入式操作系统Linux的过程中,第一步需移植其自身提供的bootstrap,其内容包含AT91系列芯片主要硬件的初始化功能。

(2)BootLoader的移植

U-Boot是目前为止功能最多、灵活性最好的BootLoader,通过交叉编译后代码尺寸都比较小,一般只有100~200 KB。U-Boot紧随AT91bootstrap移植入控制模块的Flash中,主要完成系统启动过程中的各种配置任务,建立合适的环境以便调用内核。

(3)内核的裁剪和移植

如今通用版本的Linux内核里面包含了很多的驱动程序,资源特别丰富,因此占用的内存资源也很大。由于Linux系统具有可裁剪性,因此可对Linux内核进行修改,裁剪一些不必要的驱动程序,选用适合自动气象站控制模块的必要的驱动程序,从而配置出适合资源有限的嵌入式设备的嵌入式Linux内核。本设计中通过make menuconfig命令进入可视化的内核配置界面,在内核中添加LCD驱动、触摸屏驱动、AD采样驱动等,以满足自动气象站控制模块所需要的功能要求。配置好内核后紧随U-Boot移植到控制模块的Flash中。

(4)文件系统的制作和移植

Linux文件系统的主要作用是保存系统文件和应用文件,在嵌入式系统启动后进行挂载,是整个嵌入式Linux系统的重要组成部分。本设计中采用最新的UBIFS文件系统。该文件系统可有效地解决JFSS2、YAFFS2等文件系统内存消耗大、损益均衡能力差、过渡损益等问题。制作UBIFS系统需用到mtd-utils、zlib、lzo、e2fsprogs等源码,经一系列编译、安装后生成可用的UBIFS系统,然后在内核之后移植到自动气象站控制模块的Flash中。

2.2 应用程序的设计和实现

2.2.1Qt/Embedded的移植

Qt/Embedded作为面向嵌入式系统图形用户界面的应用程序开发框架,其库采用C++封装,完全面向对象,可移植性好,界面设计美观,功能齐全,因此本设计采用Qt/Embedded作为应用程序开发平台[7-8]。

本设计中的应用程序开发是在PC中的Qt Creator软件下开发完成的。为了使通过交叉编译产生的Qt应用程序二进制文件能够在自动气象站控制模块中运行,需要向上节提到的UBIFS文件系统中移植Qt/Embedded库。通过Linux编译器交叉编译Qt/Embedded的源代码,生成以自动气象站控制模块为目标代码的Qt/Embedded库,移植入文件系统中usr/路径下[9]。

2.2.2用户UI设计

自动气象站控制模块的人机交互界面是在Qt Creator开发环境下完成的。Qt Creator包括项目生成向导、高级的C++代码编辑器、浏览文件及类的工具,集成了Qt Designer、Qt Assistant、Qt Linguist、图形化的GDB调试前端,集成了qmake构建工具等。通过Qt Designer可视化布局和格式构建器可配置生成美观简洁的人机交互界面。本方案中设计的人机交互界面功能如图4所示。

图4 人机交互界面功能

在本设计中,通过Qt Designer设计器,选择Widgets对话框,通过拖拉Push button、List View、Test Edit、Label等部件以及外部控件,构成自动气象站控制模块人工交互界面。

构建窗体界面的基本图形后,需要将这些图形按钮与应用程序结合起来。Qt中提供了信号与槽的机制。 Qt Designer设计器所支持的信号与槽机制提供了对象间的通信机制,使得人机交互功能可以得到迅速的响应。当用户点击刚刚添加的菜单按钮时,程序就会立刻跳转到与该按钮所连接的程序段上。在本设计中大量使用了信号与槽的机制,例如:

connect(pushbutton6,SIGNAL(clicked()),this,SLOT(pushbutton6_clicked()));

其中pushbutton6代表所点击按钮的编号,SIGNAL(clicked())表示执行动作为点击,SLOT(pushbutton6_clicked())代表需要去执行的槽函数。

利用AT91SAM9G35-CU芯片具有高效处理速度和丰富片上资源的特性,由Qt Designer所生成的用户UI界面简洁美观,响应速度快,易操作,既可实时观察数据,又可输入命令改变自动气象站控制模块的运行参数。如图5所示,点击液晶屏最下方的菜单栏上的相应功能按钮,就可切换到相应的功能界面,完成所需的显示和控制功能。

图5 实时数据显示界面

2.2.3多线程的应用程序设计

自动气象站本身的功能中需要完成数据采集、数据处理、数据存储、数据传输和人工交互等多种功能,控制模块作为自动气象站的核心部件就要在应用程序的设计中同时兼顾不同功能的正常运转和数据的共享操作。

本文的自动气象站控制模块应用程序设计中,采用QThread线程类,建立多线程的处理机制,使得控制模块可以快速响应不同的任务。在设计的过程中也兼顾了数据的独立和共享,使得整个控制模块运行稳定,操作快捷。系统软件整体工作流程如图6所示。

图6 系统软件整体工作流程

应用程序由main函数进入,开启Mainwindow线程。Mainwindow线程首先进行人机界面的配置工作,生成人机交互界面,然后陆续开启数据采集、数据处理、数据存储、数据传输等相关线程。各个任务之间数据可独有可共享,保证系统稳定运行。同时Mainwindow线程中包含大量与按钮绑定的槽函数,可随时响应用户的人工交互指令,高效便捷。部分程序如下:

fStarData = new KStarData(this);

fStarData->start();

//卫星发送模块完成.

ShowLineMessage("卫星发送模块完成." );

fDataRS485 = newDataRS485(this);

fDataRS485->start();

//数据采集模块完成

fDataSend = new ComDataSend(this);

fDataSend->start();

//串口数据上传模块完成

fSocketClient = new SocketClient(this);

fSocketClient->start();

fServer = new Server(this);

fServer->start();

//socket通信模块完成

fFileBackup = new FileBackup(this);

fFileBackup->start();

//数据备份模块完成

3 试验结果及运行情况

本设计应用于由中船重工鹏力(南京)大气海洋信息系统有限公司开发的DZB7型自动气象站中进行测试。控制模块通过AD采样接口接入风速风向传感器、温湿度传感器、雨量传感器,通过RS232接口接入气压传感器、卫星通信模块、GPRS通信模块等。

通过相关环境试验(包含EMC试验、高低温试验、正弦振动试验、Ka盐雾试验等)后,设备可实时显示当前的气象数据,人工交互功能响应迅速,数据采集、处理、储存、传输等功能运转正常。

试验结果表明,本文所设计的基于ARM9的自动气象站控制模块功能完善、运行可靠、操作便捷,达到了设计的预期目标。

4 结论

本文介绍了基于ARM9的自动气象站控制模块设计方法及流程,包括硬件电路设计、系统操作平台设计以及应用程序的设计等。选用AT91SAM9G35-CU芯片结合G070Y2-L01工业液晶屏硬件设计,可以提供更复杂、多彩、灵活的显示任务。将嵌入式Linux系统和基于Qt设计的UI界面、应用程序同时移植到AT91SAM9G35-CU芯片中,实现多任务处理、多界面显示、简单快捷的人工交互功能,完全适应自动气象站多变的任务需求,能承担更加灵活、美观的液晶显示任务,是嵌入式设备的主流发展方向。

参考文献

[1] 解伟.基于STM32的自动气象站控制模块设计 [J].电子测量技术,2014,37(7):107-110.

[2] 刘艳中,吕玉嫦.一种新型自动气象站触控屏交互式系统设计[J].电子测量技术,2016,39(7):145-148.

[3] 戴军建,张传胜.基于STM32的人机接口设计与实现 [J].长春工业大学学报,2012,33(6):673-675.

[4] 周欣.多功能自动气象站控制与管理系统 [J].电子测量与仪器学报,2011,25(4):5-8.

[5] 李秀娟,张晓东.嵌入式系统设计[M].北京:机械工业出版社,2013.

[6] 赵成.嵌入式系统应用基础[M].北京:国防工业出版社,2012.

[7] 任善全,吕强,钱培德.一个基于Qt/Embedded的嵌入式Linux应用程序的实现 [J].计算机应用于软件,2006,23(2):105-107.

[8] 吴子平,徐爱钧.基于Qt/Embedded的嵌入式GUI的研究与构建 [J].电脑开发与应用,2012,25(1):13-16.

[9] 吴燕燕,贺锋涛.基于ARM9平台上Qt/Embedded的移植与开发 [J].液晶与显示,2013,28(2):261-265.

猜你喜欢

气象站内核嵌入式
多内核操作系统综述①
珠峰上架起世界最高气象站
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
心灵气象站
TS系列红外传感器在嵌入式控制系统中的应用
Linux内核mmap保护机制研究
搭建基于Qt的嵌入式开发平台
自动气象站应该注意的一些防雷问题