eBox构建STM32快速辅助开发系统

2016-05-30 04:13申同强宋国志荆淑霞
关键词:开发应用程序创新

申同强 宋国志 荆淑霞

摘 要:eBox是一个运行在STM32平台上的涵盖了驱动层、系统层、标准应用软件层、用户软件层和bootloader的软硬件一体化的解决方案。丰富的标准驱动和标准应用,像用Arduino那样方便,性能又远高于arduino。操作系统的支持让eBox满足多任务系统的需求;标准应用提供多种控制算法、通信协议,满足不同应用场所的需求。

关键词:STM32;应用程序;创新;开发

1 STM32开发现状

就目前的开发方式而言,国内并没有一套完整的生态系统,来支持用户的快速开发,影响了企业开发的效率。主要原因有以下几点:

①官方固件库是面向STM32本身设计的,接口不够友好,使用比较困难,用户必须十分了解STM32本身特性,才能应用其固件库。

②驱动问题:由于设计电路板的差异性,会导致同样的芯片驱动程序无法在不同的电路板上运行,需要一个移植过程,移植非常困难。这样就导致用户永远无法避免移植的问题。

③缺少标准应用程序库的积累:由于工程师没有一个很好的架构控制,不能保证其代码的高重复利用率,就会导致工程师要不断的自己去重复这个开发过程。

和Arduino相比虽然硬件资源更丰富,主频更高,但是软件发展却远远不如Arduino发展的快。所以要重新整合STM32的软硬件资源,将其系统化、结构化。这样在同一的架构下才能保证慢慢的形成一个较为完备的生态系统。eBox就是一个完成这种系统化的软件支持。

2 eBox软件系统

2.1 eBox整体架构

eBox开发平台致力于开创新的开发模式,简化用户开发,增强代码复用率,实现多人协同联合开发。提供一套完整的开发解决方案,能适应于工业现场、运动控制、数据采集处理、消费类电子产品、物联网等不同应用场合的开发。

良好的程序框架有利于多人同时开发的分工合作。统一的编程标准便于程序的移植和重复利用。一个庞大的工程如果没有一个良好的程序结构和统一的编程标准,会导致程序耦合关系混乱、层次不明朗、代码易读性差、二次利用率低、难以维护等缺点。所以eBox软件系统严格地规范了架构,来保证所有代码能按照其特性进行层次区分。

2.2 面向对象编程

eBox是基于c/c++编程实现的。采用c++的几大优势:

①面向对象的思路可以更好地解决问题。

②封装性和隐蔽性:可以对一个对象进行封装处理,把它的一部分属性和功能对外界屏蔽。这样做的好处是大大降低了操作对象的复杂程度。

③抽象性:抽象的过程是将有关事物的共性归纳、集中的过程。抽象的作用是表示同一类事物的本质。在eBox中,这种抽象应用最多,最直观的就是驱动层。将一种外设芯片抽象出一个类。这个类包含了芯片的所有属性和方法。

2.3 外设固件库

外设固件库是指STM32内部的设备包括IO、UART、TIMER、SPI、IIC、RTC、FLASH、CAN、USB、WDG等设备。固件库将所有外设以c++的方式重新封装。为用户提供人性化的用户接口。以外设某种应用特性作为初始化参数。

外设固件库除了支持所有MCU外设功能外,还提供了很多系统功能,方便用户的使用,比如millis()、micros()服务为用户提供了基本的时间戳服务,delay_ms(),delay_us()提供标准的延时功能、random()为用户提供随机数产生的功能,还有很多字符串处理函数方便了用户的字符串查找、替换、数字转换。eBox固件库为用户提供了很多标准的常用函数,这样可以简化用户的编程,提高工程师开发的效率。

2.3.1 串口

2.3.2 使用示例

从以上可以看出使用这種封装方式可以大大简化用户的底层代码复杂度。

2.3.3 驱动层

eBox驱动是指基于eBox固件库针对某种芯片做的读写、控制程序它有标准的驱动程序框架做限制,不能任意编写,在eBox平台上可以实现任意合理硬件的兼容性,可移植性。

eBox驱动模式彻解决变传统STM32编程驱动的移植性差、功能不齐全等问题。让应用工程师和驱动工程师合理分工,加快项目开发进度。驱动可以多次利用,提高代码使用价值。开源驱动分享平台可以为大家提供大量驱动代码,尽可能的包含更多的芯片驱动,方便用户使用。

2.3.4 驱动层架构

2.3.5 按键驱动架构

驱动层很好地利用了c++类的特性。将非用户信息进行屏蔽,只留出拥护需要的方法。

2.3.6 驱动使用示例

2.4 标准应用层

2.4.1 网络通信

eBox的网络功能非常简洁,功能也非常强大,给用户提供了一套标准的socket接口,除此之外还有TCP、UDP、DNS等网络支持,大大方便用户对网络的需求。

2.4.2 文件系统

文件系统是在嵌入式领域中经常遇到的一个问题, eBox将此功能集成起来。留给用户的只有fatfs的标准接口。如果用户想在自己的board上使用eBox,只需修改sd的初始化的接口即可。

当然标准库不仅仅包含这两项,还有很多其他的内容比如常用数学库、控制算法库、色彩转换库等随着不断的发展会有更多的应用库加载进来,工程师可根据自己的需求来选择不同的库实现自己的算法。

3 总结

eBox是借鉴Arduino的思路来对STM32编程进行系统的改造,彻底改变STM32编程的分散化现状,打造一个完整的生态系统。目前eBox可以支持STM32F103全系列MCU。在今后的发展中会不断地把eBox移植到其他MCU平台。例如8051、NXP、飞思卡尔等。再构建一个超级生态圈,让应用层几乎不做任何修改就可以实现跨平台移植。这是eBox最终发展的目的。

参考文献:

[1]田军锋,林浒,姚壮,李杰.数控系统S型曲线加减速快速规划研究[J].小型微型计算机系统,2013(01).

[2]于洋,刘平.S型速度曲线进给率控制研究[J].制造技术与机床,2012(09).

猜你喜欢
开发应用程序创新
删除Win10中自带的应用程序
河南方言文化资源的保护及其开发利用的研究
遵义红色旅游开发对策研究
单片机在电子技术中的应用和开发
三星电子将开设应用程序下载商店
微软软件商店开始接受应用程序