首页 / 一种实时开发系统

一种实时开发系统失效专利 实用

技术领域

[0001] 本实用新型涉及嵌入式开发领域,尤其涉及一种实时开发系统。

相关背景技术

[0002] 现有的通过代码编程去利用STM32核心板实现某种功能通常需要经历以下步骤:第一步:分析该项目所需要的晶振频率、程序的运行周期,IO的输出入数量、ADC端口数量、串口号的具体情况,进行选择满足需求的芯片。第二步:对芯片进行晶振频率、IO的输入输出、ADC端口、串口号的相关配置;第三步外设使能代码编写,串口使能代码、ADC使能代码、ADC使能代码编写。第四步外部传感器数据获取代码编写以及输出信号的编写。第五步进行相关算法代码转换,通过理解算法的基本原理并将其转换成C语言;第六步程序调试,现有的调试方法分为两种,第一种是程序断点调试,第二种是串口调试;第七步程序下载,程序下载主要有两种下载方式,第一种是串口下载方式,该方式需将程序转化成hex文件,在借助第三方软件进行下载,第二种是ST‑link下载方式,直接通过keil软件下载。
[0003] 传统的开发方式需要进行繁琐的底层配置,芯片配置、程序编写、程序下载等过程均需要多个软件的配合才能完成,流程较为繁琐;同时,传统的开发方式在调试算法时需要多次重复下载,导致调试过程繁琐;此外,传统的开发方式算法程序只能在STM32核心板上运行,大大增加了STM32核心板的运算量,使得开发过程变慢。

具体实施方式

[0034] 下列实施例是对本实用新型的进一步解释和补充,对本实用新型不构成任何限制。
[0035] 以下结合附图描述本实用新型实施例的实时开发系统。
[0036] 如图1所示,本实用新型实施例的一种实时开发系统,包括电子设备300、STM32核心板200、USB数据线401和ST‑LINK下载器402,所述电子设备300和STM32核心板200通过USB数据线401和ST‑LINK下载器402连接,所述电子设备300上运行有MATLAB Simulink;
[0037] 所述电子设备300用于:
[0038] 利用MATLAB Simulink 100根据用户需求建立算法模型和与STM32核心板200相应的执行模型,
[0039] 通过所述MATLAB Simulink 100自动生成所述执行模型的代码,将所述执行模型的代码进行编译,并下载至所述STM32核心板200;
[0040] 通过MATLAB Simulink 100自动生成所述算法模型的代码,并将所述代码进行编译和运行,得到指令数据并传输至所述STM32核心板200;
[0041] 所述STM32核心板200用于调用所述执行模型的代码运行所述指令数据,控制与所述STM32核心板200连接的待控制设备运行,并接收来自待控制设备的实时数据并传输至所述MATLAB Simulink 100;
[0042] 所述电子设备300还用于:
[0043] 当所述实时数据不符合所述用户需求,接收用户根据所述实时数据对所述算法模型的修改后,通过所述MATLAB Simulink 100对修改的算法模型重复执行自动生成代码、编译和运行,得到新的指令数据并传输至所述STM32核心板200,直至所述修改的算法模型符合所述用户需求。
[0044] 利用MATLAB Simulink 100建立算法模型和与STM32核心板200相应的执行模型,自动生成执行模型和算法模型的代码,并将执行模型的代码编译后直接下载至STM32核心板200,将算法模型的代码编译并运行后得到的指令数据直接传输至STM32核心板200,通过利用MATLAB Simulink 100在提高了程序的可阅读性的同时使得开发流程更加简便;同时,实时数据可以直接传输到MATLAB Simulink 100,提高了程序调试时的数据直观性,从而方便开发人员对算法模型进行修改,进而达到算法的开发调试过程更为简便快捷的有益效果;另外,通过在STM32核心板200中只运行执行模型的代码,在MATLAB Simulink 100中运行算法模型的代码得到指令数据,可以减少STM32核心板200的运算量,从而使得开发过程更加快捷。
[0045] 优选地,如图1所示,所述电子设备200还用于利用所述MATLAB Simulink 100封装串口监视包101;
[0046] 所述串口监视包101用于传输所述指令数据和实时数据。
[0047] 优选地,如图2所示,所述串口监视包101中包括串口配置模块103、串口接收模块104和串口发送模块105;
[0048] 所述串口配置模块103用于根据所述STM32核心板200和所述算法模型对所述串口接收模块104和串口发送模块105进行串口配置;
[0049] 所述串口接收模块104用于接收所述实时数据;
[0050] 所述串口发送模块105用于传输所述指令数据至所述STM32核心板200。
[0051] 优选地,所述电子设备300还用于通过所述MATLAB Simulink 100封装包括多个功能性模块的工具包102;
[0052] 所述工具包102用于将所述编译后执行模型的代码下载至所述STM32核心板200。
[0053] 优选地,所述MATLAB Simulink还用于封装包括多个功能性模块的工具包;
[0054] 所述工具包用于将所述编译后执行模型的代码下载至所述STM32核心板。
[0055] 优选地,如图3所示,所述工具包102中的功能性模块包括ADC模块、CAN模块、CRC模块、DAC模块、DCMI模块、FLASH模块、FSMC模块、I2C模块、IO模块、RCC模块、RESET模块、RTC模块、SDIO模块、SPI模块、TIM模块和UART模块中的至少一个。
[0056] 具体地,所述电子设备300可以是PC机,所述PC机上运行着MATLAB Simulink 100,利用MATLAB Simulink 100进行算法模型和执行模型搭建,以及程序下载,过程如下:
[0057] 1)开发人员利用MATLAB Simulink 100建立算法模型和包括STM32系统模块的执行模型,其中算法模型可以采用MATLAB Simulink100自带的算法模块直接进行算法的调用,只需根据用户需求进行基础参数的修改;也可以由开发人员自行编程建立算法模型。
[0058] 优选地,还可以从MATLAB Simulink 100中选择如示波器模块等的数据显示模块,可以显示程序模型中的各个节点位置的数据,还可以将多个数据进行组合绘制成图形,从而方便开发人员后期对算法模型和执行模型进行调试与分析。
[0059] 2)利用MATLAB Simulink 100直接调用串口监视包101和工具包102,利用串口监视包101传输所述指令数据和实时数据;利用工具包102将所述编译后执行模型的代码下载至所述STM32核心板。
[0060] 所述ST‑LINK下载器402用于建立PC机和STM32核心板的物理连接,从而使得MATLAB Simulink 100可以通过工具包102选择的功能性模块直接将所述编译后执行模型的代码下载至所述STM32核心板。
[0061] 所述USB数据线401用于建立PC机和STM32核心板在数据通讯上的物理连接,从而使得MATLAB Simulink 100可以通过串口监视包101传输所述指令数据和实时数据。其中,串口监视包101还可以将从PC机串口所读取到的实时数据进行数据类型等初步处理,从而方便后续根据实时数据对算法模型进行修改。
[0062] 具体地,利用MATLAB Simulink 100进行编译、运行以及下载的过程可以如下:
[0063] 1)对MATLAB Simulink 100的环境进行配置,选择解算器,并在PC机安上装好MDK编译器与ST‑LINK驱动、C/C++编译器,并进行先关系统参数的配置;其中MDK编译器是用来自动编译代码的,C/C++编译器是将MATLAB Simulink中的模型编译成C代码;
[0064] 2)根据STM32核心板中的芯片类型从MATLAB Simulink 100环境中选择芯片配置模块,选择相应的芯片及芯片相关的参数,从而建立执行模型;然后,根据STM32核心板和执行模型从工具包102中选择所需要的功能性模块,例如IO模块、ADC模块等;其余程序由技术人员自行进行设计,程序的设计所需的基本模块,例如逻辑运算、数学运算等都可以在MATLAB Simulink 100环境中找到;
[0065] 3)开发人员完成整个程序设计后,通过ST‑LINK下载器402将PC机与STM32核心板进行硬件连接,通过快捷键Ctrl+B,MATLAB Simulink100可以自动完成代码的生成、编译与下载。
[0066] 具体地,对算法模型的代码进行调试的过程可以如下:
[0067] 1)利用串口监视包101已经设定完成的波特率、数据长度、数据类型、以及PC机所对应的串口号,完成对STM32核心板的实时数据的读取;
[0068] 2)利用串口监视包101对实时数据进行初步处理和解析,同时开发人员从MATLAB Simulink 100环境中拖出相应的数据显示模块、图像显示模块等进行连接,根据以不同方式显示出来的实时数据直接对算法模型进行例如添加PID算法、滤波算法之类的修改和实时调试。
[0069] 其中,图像显示模块所绘制的曲线可以直观显示出来的响应速度、超调量等参数,对算法模型进行修改和实时调试后所加入的算法无需下载到STM32核心板中,可以直接在MATLAB Simulink 100运行,在调试界面验证完成后,可以直接将修改的算法模型代码进行编译并下载到STM32核心板中。
[0070] 3)利用串口监视包101将指令数据转化为与STM32核心板具有相同的数据长度和数据类型的一个或多个输入信号,并通过PC机串口将所述输入信号传输至STM32核心板中,并且在STM32核心板运行过程中,可以直接通过MATLAB Simulink 100改变其输入信号。
[0071] 优选地,串口监视包中设定了5种数据发送与接收方式,分别是Ascii、Binary、Binary vector、String buffer、Raw buffer;其中Binary、Binary vector数据发送与接收方式又设置了8种数据类型和数据宽度定义,8种数据类型分别是Double、SINGLE、INT8、UINT8、INT16、UINT16、INT32、UINT32。
[0072] 优选地,当PC机出现任何错误时发送复位请求信号给STM32核心板,STM32核心板接收到复位信号后进入复位状态,初始化所有变量,复位成功后修改为空闲状态,同时传输复位成功信号给PC机,PC机也初始化所有变量进入待机。
[0073] 所属技术领域的技术人员知道,本实用新型可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本实用新型还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0074] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本实用新型的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0075] 尽管上面已经示出和描述了本实用新型的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本实用新型的限制,本领域的普通技术人员在本实用新型的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页 第1页 第2页 第3页