APP下载

流程图化的嵌入式系统开发平台*

2017-04-19李毅航涂强唐立军

单片机与嵌入式系统应用 2017年2期
关键词:图形化功能模块流程图

李毅航,涂强,唐立军

(1.长沙理工大学 物理与电子科学学院,长沙 410114;2.近地空间电磁环境监测与建模湖南省普通高校重点实验室)

流程图化的嵌入式系统开发平台*

李毅航1,2,涂强1,2,唐立军1,2

(1.长沙理工大学 物理与电子科学学院,长沙 410114;2.近地空间电磁环境监测与建模湖南省普通高校重点实验室)

面向嵌入式零代码基础使用者和低成本开发者,搭建了一个基于STM32的软硬件一体化编程的流程图化的嵌入式系统开发平台。该平台采用STM32作为硬件载体,用QT跨平台C++图形用户界面搭建简单易懂的流程图操作界面。硬件框图界面能驱动嵌入式设备,用编译软件封装功能模块放置功能编辑盒,通过命令行调用编译器,调用外部烧录软件完成下载,代码查看器可直观监视编译全过程。测试结果表明,该平台可方便、快捷解决编程问题。

流程图编程;嵌入式系统;界面开发

引 言

流程图编程,即将程序代码与直观的图形相结合,用户在进行图形化编程时,无需考虑程序语法、句法的严格要求,具有程序结构直观、易于理解、交互方式简单等优点,将大量节省软件开发的人力资源和时间耗费[1-4]。LabVIEW为目前主流的图形化编程语言,是利用计算机技术解决复杂、繁琐、费时的编程问题和学习C++的重大突破,与传统的编程语言相比,可以节省80%的程序开发时间[5]。LabVIEW包含有强大的函数库,导致其要求有专业基础,且软件学习周期长。本文以C51和STM32单片机为研究对象,探索零代码基础嵌入式系统流程图开发平台,实现集预处理、编译、汇编、链接和硬件操作于一体的图形化开发平台。

1 嵌入式系统流程图化方案

嵌入式系统开发平台主要为方便嵌入式系统工作者编程需要,减少编程工作量,省略初学者学习嵌入式系统软件的程序。因此流程图式程序编译平台应该包括流程图界面、硬件框图界面、功能编辑盒、代码查看器、编译下载部分,用来完成流程图的搭建、初始化设置、变量定义、代码查看、编译及下载,如图1所示。首先,设计流程图软件界面,以方便在界面上实现功能模块操作,完成可视化的流程图设计。硬件框图界面能实现驱动嵌入式单片机设备功能,其次,功能编辑盒的设计,给每个模块都封装有实现常用功能的C语言函数,代码查看器能够显示功能模块中的代码,并直观监视编译全过程。最后,可通过命令行调用编译器和外部烧录软件来实现程序的编译和下载,实现流程图化嵌入式系统开发。

图1 流程图化嵌入式系统开发设计方案

2 具体设计

设计本平台,使得用户无需像传统编程一样逐条代码编写,直接将平台提供的功能模块连接成流程即可实现编程。平台功能通过4个方面实现:平台界面的搭建、功能模块代码编写及封装、硬件结构框图的构建、图形化程序的编译及下载。设计思路如图2所示。

图2 平台设计思路

2.1 平台界面的搭建

平台界面搭建是基于QT界面开发库编写实现的,主要包含5个部分,分别是菜单操作、功能编辑盒、软件流程图、硬件结构图和代码查看器。

菜单操作是利用QAction、QMenu搭建的快捷菜单,有新建、打开、保存、编译、下载、清除等一系列常用功能,同时可以打开或关闭软件流程图、硬件结构图、功能编辑盒、代码查看器等程序编写界面。

功能编辑盒由QTreeWidgetItem构成,搭建在QDockWidget建立的可停靠窗口中,包含有每个功能模块的代码和模块图形等信息,可自由选择停靠位置打开或关闭。

软件流程图是整个界面的核心部分,利用QDrag函数来实现对功能模块的拖拽,利用重写EventFilter函数来监控每一个控件事件的发生,并触发相关功能函数,如左键单击,能移动模块;左键双击,能设置输入参数和输出参数;右键单击,能连接流程线;右键双击,能删除模块。

代码查看器是利用QDockWidget建立的可停靠窗口,在嵌入式工作者进行流程图连线时,利用重写EventFilter函数可触发监控事件,把模块对应的C语言函数显示在代码查看器中,进而监视编译的全过程,并能对代码进行直接修改。实现原理如图3所示。

图3 开发平台界面实现原理

2.2 功能模块代码编写及封装

平台广泛采集通用的嵌入式系统功能模块,每个功能模块在编译器中完成功能代码函数的编写,并在平台头文件中声明,用户可直接在平台中实现功能函数调用。平台封装有开始、结束、循环、如果、否则等基本语句;LED灯A、LED灯B、按键A、按键B、蜂鸣器、显示屏等外界器件封装;延时、串口、定时器中断、PWM输出、ADC输入、光敏传感、温度传感、红外遥控等功能模块封装。封装好的模块可以直接作为图形添加到流程图中,应用结构化的设计模式与具体硬件相结合的方式,依靠提供的图形化环境开发一个完整的程序。同时,也可作为第三方平台,用户自行编写符合自身应用场景的函数来完善封装库,实现资源共享。封装原理如图4所示。

图4 功能模块封装原理

2.3 硬件结构框图的构建

平台基于STM32的软硬件一体化开发,通过QPaint函数完成单片机样图绘制、QTextEdit函数完成引脚标注、EventFilter监控事件发生,实现功能模块与单片机引脚的连接,输入驱动该设备的引脚编号,从而达到通过单片机引脚驱动硬件设备的目的,同时将会在代码查看器中显示硬件初始化函数,实现带有硬件设置的流程图化嵌入式系统编程。硬件结构框图构建原理如图5所示。

图5 硬件结构图设计原理

2.4 程序的图形化链接、编译及下载

平台开发时包含所有可能会用到的头文件,开始语句中包含主函数,功能编辑盒中的功能模块封装有完整的功能函数代码,程序自动文本补充返回值语句,故图形化程序的链接就是按照一般流程图的规则,将模块进行组合,完成所需程序设计。当流程图程序设计完成后,可开始编译,若显示编译通过,自动通过命令行调用编译器,完成对代码的预处理、编译、汇编,并以编译器的链接文件格式输出链接文件,完成对多个目标文件的链接,生成二进制代码hex文件,调用外部烧录软件实现下载功能。

3 系统测试

3.1 测试方案

测试方案是通过平台自带的基本语句和功能模块搭建一个流程图来实现一个实用案例,通过案例检测功能模块是否达到预期的效果,以及连接过程中是否会有异常发生。设计如下案例:用光敏传感器来读取光强,当光度值超过50时,LED红灯亮,蜂鸣器开启,显示屏显示具体光度值以及提示天亮了。当光度值低于50时,LED绿灯亮,蜂鸣器关闭,显示屏显示具体光度值以及提示天黑了。搭建流程图如图6所示。

图6 流程图搭建界面效果图

3.2 测试结果

当用日光照射时,LED显示红灯,显示屏上显示light intensity is 83,now the day is breaking,并伴有蜂鸣器的声音。当遮挡住日光时,LED显示绿灯,显示屏上显示light intensity is 3,now the dark is rising,没有蜂鸣器的响声。

测试结果表明:如图6所示的流程图可以很好实现案例所要求的功能,测试过程中文件的新建、打开、保存,程序的编译、下载均能正常响应,控件之间连接正常,平台界面在使用过程中也并未出现BUG,所有功能正常。

结 语

[1] 钟志超,张志胜,戴敏,等.流程图与类C语言实时转换方法[J].东南大学学报,2009,39(3):502-507.

[2] 陈瑞森.基于流程图编程的单片机软件系统开发[J].智能计算机与应用,2013(4):95-96,99.

[3] 郭国法,宫瑶,张开生.嵌入式课程递阶教学平台的设计与实现[J].单片机与嵌入式系统应用,2015(9):159-22,95.

[4] 朱云,曾晓勤,朱宁,等.基于图文法的程序流程图与源代码自动转换[J].计算机工程与科学,2015(5):937-945.

[5] 黄明,朱群雄.基于流程图的设备管理系统的设计与实现[J].计算机与应用化学,2009,26(8):1073-1078.

[6] LabVIEW——虚拟仪器系统的理想开发平台[J].国外电子测量技术,1996(4):52.

[7] 邢维巍,樊尚春.嵌入式图形用户界面开发平台[J].北京航空航天大学学报,2003(9):829-833.

[8] 范效玮.基于单片机的图形化编程平台的设计与实现[D].长沙:中南林业科技大学,2015.

[9] 万伟.PLC编程语言开发平台的设计[D].武汉:武汉理工大学,2007.

[10] 姚健东.一种通用图形化嵌入式开发平台的设计及应用[D].苏州:苏州大学,2010.

李毅航,主要从事嵌入式系统研究;唐立军(教授),主要从事信号检测与处理研究。

Flow Chart of Embedded System Development Platform

Li Yihang1,2,Tu Qiang1,2,Tang Lijun1,2

(1.School of Physics and Electronic Science,Changsha University of Science and Technology,Changsha 410114,China;2.Key Laboratory of Electromagnetic Environment Monitoring and Modeling in Hunan Province)

A software and hardware integration programming flow chart like embedded-system development platform based on STM32 is built for the beginners.The platform uses the STM32 as the hardware carrier,adopts QT to build the flow chart which is simple and easy to understand.The hardware block diagram can drive the embedded functional equipment.The function editor is arranged by the compiler software package function module,the download is finished by the command line calling the compiler and external burning software.The code viewer can directly monitor the whole process of compilation.The test results show that the platform can solve programming problems conveniently and quickly.

flow chart programming;embedded system;interface development

国家科技支撑计划课题(项目编号:2014BAH28F04);湖南省大学生研究性学习和创新性实验计划(项目编号:201510536017)。

TP368.2

A

�士然

2016-09-01)

猜你喜欢

图形化功能模块流程图
LKJ自动化测试系统图形化技术研究
基于ASP.NET标准的采购管理系统研究
专利申请审批流程图
专利申请审批流程图
输电线路附着物测算系统测算功能模块的研究
M市石油装备公服平台网站主要功能模块设计与实现
运用图形化听写式复习,构建高效地理课堂
功能模块的设计与应用研究
图形化地区电网无功优化软件开发与应用
宁海县村级权力清单36条