当前位置: 首页 > 专利查询>王超专利>正文

一种基于分层架构思想的单片机程序构建方法技术

技术编号:33450511 阅读:28 留言:0更新日期:2022-05-19 00:34
本发明专利技术公开了一种基于分层架构思想的单片机程序构建方法,涉及计算机技术领域。本发明专利技术构建单片机程序时,采用分层构建,从上往下分别为:设备层、业务逻辑层、传输协议层、通信接口层、硬件抽象层和物理层;程序内部数据从业务逻辑层逐层向下传递到物理层或者从物理层逐层向上传递到业务逻辑层,每一层只与相邻层通过模块对象的API进行数据交换。本发明专利技术基于分层架构思想的单片机程序构建方法,使得代码层次结构分明,容易阅读;分层和模块化实现了代码的弱耦合,使得程序代码容易扩展和修改。改。改。

【技术实现步骤摘要】
一种基于分层架构思想的单片机程序构建方法


[0001]本专利技术属于计算机
,涉及一种基于分层架构思想的单片机程序构建方法。

技术介绍

[0002]一般情况下单片机程序与电脑程序相比,复杂程度较低,但并不意味着单片机程序不需要架构设计。当前很多软件工程师在编写单片机程序时,经常将业务逻辑代码与数据解析等底层代码“混合”编写在一起,程序代码强耦合,这样编写的代码具有以下缺点:(1)代码不易阅读;(2)代码不易扩展;(3)代码不易修改;(4)不易团队合作;因此需要开发一种单片机程序构建方法,来规范单片机程序开发的。

技术实现思路

[0003]本专利技术为了弥补现有技术的不足,提供了一种基于分层架构思想的单片机程序构建方法,使得代码层次结构分明,容易阅读;分层和模块化实现了代码的弱耦合,使得程序代码容易扩展和修改。本专利技术是通过如下技术方案实现的:本专利技术提供了一种基于分层架构思想的单片机程序构建方法,构建单片机程序时,采用分层构建,从上往下分别为:设备层、业务逻辑层、传输协议层、通信接口层、硬件抽象层和物理层;包括如下步骤:S1根据实际业务场景创建一个设备模块对象,完成设备层的创建;S2根据实际业务场景创建一个或多个业务逻辑模块对象,完成业务逻辑层的创建;S3根据实际业务场景中的数据传输协议定义一个或多个传输协议模块对象,完成传输协议层的创建;S4根据实际业务场景创建一个或者多个通信接口模块对象,完成通信接口层的创建;S5通过芯片配置,生成硬件抽象模块对象,完成硬件抽象层的创建;S6将设备模块对象、业务逻辑模块对象、传输协议模块对象、通信接口模块对象和设备抽象模块对象进行相邻层的相互绑定,完成上下层通信通道;S7在main函数中的无线循环语句中调用全局设备模块对象变量的Work函数;S8如果有定时器处理,则在定时器回调函数中调用全局设备模块对象变量的TimerHandler函数;S9在设备抽象层的数据发送完毕回调函数中调用全局设备模块对象变量的CompleteSendOneFrame函数;S10在设备抽象层的数据发送完毕回调函数中调用全局设备模块对象变量的CompleteReadOneFrame函数;S11单片机程序建构完成。
[0004]本专利技术的有益效果是:
本专利技术在构建单片机程序时,采用分层设计,从上往下分别为:设备层、业务逻辑层、传输协议层、通信接口层、基础库层、物理层。程序内部数据从业务逻辑层逐层向下传递到物理层或者从物理层逐层向上传递到业务逻辑层,每一层只与相邻层通过模块对象的API进行数据交换,对任何一层内部代码进行修改(不修改API函数的话)不会对相邻层产生影响,对不相邻的层更不会有影响。最终通过这种分层设计来实现程序代码的解耦。
[0005]本专利技术(1)代码层次结构分明,容易阅读;(2)分层和模块化实现代码弱耦合,使得程序代码容易扩展和修改,也不容易在此过程中出错;(3)程序开发规范化、标准化,有利于团队合作开发(不同的研发人员可并行研发不同的模块或者层级),加快开发进度。
附图说明
[0006]下面结合附图对本专利技术作进一步的说明。
[0007]图1为本专利技术的六层架构示意图。
[0008]图2为本专利技术的单片机程序构建流程图。
具体实施方式
[0009]为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本专利技术。但是本专利技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本专利技术内涵的情况下做类似改进,因此本专利技术不受下面公开的具体实施例的限制。
[0010]附图为本专利技术的一种基于分层架构思想的单片机程序构建方法的具体实施例。构建单片机程序时,采用分层构建,从上往下分别为:设备层、业务逻辑层、传输协议层、通信接口层、硬件抽象层和物理层;构建单片机程序包括如下步骤:S1根据实际业务场景创建一个设备模块对象,完成设备层的创建;S2根据实际业务场景创建一个或多个业务逻辑模块对象,完成业务逻辑层的创建;S3根据实际业务场景中的数据传输协议定义一个或多个传输协议模块对象,完成传输协议层的创建;S4根据实际业务场景创建一个或者多个通信接口模块对象,完成通信接口层的创建;S5通过芯片配置,生成硬件抽象模块对象,完成硬件抽象层的创建;S6将设备模块对象、业务逻辑模块对象、传输协议模块对象、通信接口模块对象和设备抽象模块对象进行相邻层的相互绑定,完成上下层通信通道;S7在main函数中的无线循环语句中(while循环中)调用全局设备模块对象变量的Work函数;S8如果有定时器处理,则在定时器回调函数中(编程工具自动生成的回调函数)调用全局设备模块对象变量的TimerHandler函数;S9在设备抽象层的数据发送完毕回调函数中(编程工具自动生成的回调函数)调
用全局设备模块对象变量的CompleteSendOneFrame函数;S10在设备抽象层的数据发送完毕回调函数中调用全局设备模块对象变量的CompleteReadOneFrame函数;S11单片机程序建构完成。
[0011]程序内部数据从业务逻辑层逐层向下传递到物理层或者从物理层逐层向上传递到业务逻辑层,每一层只与相邻层通过模块对象的API进行数据交换;对任何一层内部代码进行修改(不修改API函数的话)不会对相邻层产生影响,对不相邻的层更不会有影响。例如通信协议格式发生改变,则只需要修改传输协议层代码即可,可最大程度减少协议修改对整改程序代码的影响。
[0012]定义一个全局设备模块对象变量,定义一个或多个全局业务逻辑模块对象变量,并为每个业务逻辑模块对象变量定义与之对应的一个全局通信接口模块对象变量和一个全局传输协议模块对象变量,并在程序的入口函数(main函数)中初始化以上定义的这些变量。
[0013]设备层原则上只有一个设备模块对象,设备层是对整个设备的抽象,存储设备的一般属性信息和所有下层业务逻辑层中实现的抽象结构体对象指针;用于抽象设备层的结构体必须以设备层基础结构体定义,除了程序初始化阶段,其他阶段6层结构之外的代码只能通过设备模块对象提供的API接口调用6层结构之内的功能,起到对外屏蔽内部细节的作用。因为设备模块对象中存储着所有业务逻辑模块对象的指针,因此不同业务模块对象之间的相互通信是由设备模块对象作为中介完成的,这样可以减少程序中全局变量的定义。
[0014]设备层包括设备层基础结构体和设备层实际设备模块结构体。
[0015](1)设备层基础结构体,设备模块对象中存储的一般属性数据都在设备层基础结构体中定义,业务逻辑模块数量和所有业务逻辑模块对象的指针;同时设备模块对象对外提供的标准API函数接口,也都在设备层基础结构体中定义,包括:AddBusLayer、CompleteSendOneFrame、CompleteReadOneFrame、Work、Start、TimerHandler、GetBusLayer。
[0016]主要函数介绍:本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分层架构思想的单片机程序构建方法,其特征在于,构建单片机程序时,采用分层构建,从上往下分别为:设备层、业务逻辑层、传输协议层、通信接口层、硬件抽象层和物理层;包括如下步骤:S1根据实际业务场景创建一个设备模块对象,完成设备层的创建;S2根据实际业务场景创建一个或多个业务逻辑模块对象,完成业务逻辑层的创建;S3根据实际业务场景中的数据传输协议定义一个或多个传输协议模块对象,完成传输协议层的创建;S4根据实际业务场景创建一个或者多个通信接口模块对象,完成通信接口层的创建;S5通过芯片配置,生成硬件抽象模块对象,完成硬件抽象层的创建;S6将设备模块对象、业务逻辑模块对象、传输协议模块对象、通信接口模块对象和设备抽象模块对象进行相邻层的相互绑定,完成上下层通信通道;S7在main函数中的无线循环语句中调用全局设备模块对象变量的Work函数;S8如果有定时器处理,则在定时器回调函数中调用全局设备模块对象变量的TimerHandler函数;S9在设备抽象层的数据发送完毕回调函数中调用全局设备模块对象变量的CompleteSendOneFrame函数;S10在设备抽象层的数据发送完毕回调函数中调用全局设备模块对象变量的CompleteReadOneFrame函数;S11单片机程序建构完成。2.根据权利要求1所述的基于分层架构思想的单片机程序构建方法,其特征在于,程序内部数据从业务逻辑层逐层向下传递到物理层或者从物理层逐层向上传递到业务逻辑层,每一层只与相邻层通过模块对象的API进行数据交换。3.根据权利要求1所述的基于分层架构思想的单片机程序构建方法,其特征在于:定义一个全局设备模块对象变量,定义一个或多个全局业务逻辑模块对象变量,并为每个业务逻辑模块对象变量定义与之对应的一个全局通信接口模块对象变量和一个全局传输协议模块对象变量,并在程序的入口main函数中初始化以上定义的这些变量。4.根据权利要求1所述的基于分层架构思想的单片机程序构建方法,其特征在于:设备层是对整个设备的抽象,存储设备的一般属性信息和所有下层业务逻辑层中实现的抽象结构体对象指针;用于抽象设备层的结构体必须以设备层基础结...

【专利技术属性】
技术研发人员:张帅王超刘金海郑瑞良
申请(专利权)人:王超
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1