本发明属于dsp嵌入式软件,具体涉及一种便携的飞行控制系统跨平台移植方法。
背景技术:
1、为更好的保障信息安全和提升国家在高科技领域的竞争力,国产化芯片的设计与应用推广势在必行。发展自主研发技术,推进国产化替代工程实施,解决国家信息安全的核心问题。
2、早期的飞行器大多使用进口芯片,在产品更新换代的过程中,国产化替代的需求明显。嵌入式飞控计算机作为飞控系统的核心,其内嵌的飞行控制软件是飞行器的神经中枢,需要实时处理飞行数据,进行导航、制导控制解算,还要完成飞控系统、电气系统等设备的任务管理与调度。嵌入式软件与桌面应用软件不同,它是软件与硬件的结合,在嵌入式软件跨平台移植过程中需要考虑更多软件和硬件异常相关的问题。由于现代飞行器功能日趋复杂,因此在国产化替代方案中,嵌入式软件更新换代和维护所需要做的工作越来越繁重。
技术实现思路
1、本发明解决的技术问题是:克服现有技术的不足,提出一种便携的飞行控制系统跨平台移植方法,能有效降低软件在跨平台移植过程中的时间和人力成本,提高软件开发的效率。
2、本发明的技术方案是:一种便携的飞行控制系统跨平台移植方法,包括:
3、将架构设计为硬件驱动层、中间链路层、功能应用层的分层架构;
4、根据待移植平台参数以及飞行控制任务需求,按照建立好的分层架构配置上述各层的文件,并将文件交叉编译,生成可执行的二进制文件;
5、将可执行的二进制文件烧录到待移植的平台中进行调试,直至待移植平台实现的功能满足任务需求,完成跨平台移植。
6、硬件驱动层负责与外设连接;中间链路层负责gpio的操作以及对通信协议的组帧、解帧、消息识别与维护,起到承上启下的作用;功能应用层负责飞行前地面检查指令及起飞后的导航、制导和控制。
7、所述硬件驱动层代码设计逻辑为:根据芯片手册配置待使用的gpio管脚,确保该管脚能够正常输入输出;根据时序配置uart和emif通信接口,确保通信正常;配置定时器确保定时准确。
8、所述中间链路层代码设计逻辑包括:对硬件驱动层捕获到的管脚电平进行多次采样滤波处理,提高gpio判断的可靠性;将功能应用层的控制电平传递给硬件驱动层控制输出。
9、所述中间链路层代码设计逻辑包括:设计api模块对硬件驱动层的上行数据进行接收,并进行帧有效性检查;如果检帧有效则将数据传输给功能应用层使用,否则识别为废帧。
10、所述中间链路层代码设计逻辑包括:设计api模块对功能应用层的下行数据进行接收,并按照标准协议进行帧组合,将组帧后的数据转发给硬件驱动层输出。
11、所述功能应用层代码设计逻辑包括:
12、设计飞行前地面检查指令及起飞后的导航、制导和控制逻辑,并将其封装成二进制文件;
13、将头文件分层设计,将每一个源文件的头文件包含在该源文件上一层的头文件中,从而对各层的源文件进行声明;
14、将得到的二进制文件和头文件添加至目标平台所在的工程中;
15、在主函数中添加对飞行控制定时器、标志位的定义,并在对应头文件中声明;
16、在硬件驱动层中引用头文件,确保全局变量使用正常。
17、本发明与现有技术相比的优点在于:
18、1、传统飞行控制系统的硬件驱动和功能部分耦合度高,在进行跨平台移植的过程中对软件代码的改动量极大,甚至相当于重新开发了一个新软件,这会消耗大量的时间和人力成本,降低工作效率。现有技术中对嵌入式c软件跨平台移植的方法论述较少,且同样需要做大量修改来适配硬件驱动和功能逻辑之间的数据传输,影响工作效率。本发明采用软件分层的开发方式,通过规范标准化接口进行模块化编程,能解决传统飞行控制软件各层间耦合度高的问题,降低应用层与底层驱动之间的耦合度,在进行国产化平台移植的过程中通过调用设计好的api模块能快速与不同硬件平台相匹配,提高软件开发的效率。
19、2、在对飞行控制系统跨平台移植过程中,由于源文件众多,且各文件所包含的函数具有极强的逻辑对应关系,直接移植源码容易导致软件逻辑错误,代码整合后需要重新进行调试,这会降低软件移植的效率。本发明在模块化编程的基础上,将功能应用层独立出来,只保留与中间链路层的api接口模块和api的声明需要调用,并将功能应用层源代码封装成二进制文件,在保证软件能与硬件驱动层正常通信的同时避免功能应用层代码移植过程中发生逻辑错误,且软件移植后无需重新进行单元级测试,无需更改各功能模块中的软件代码,大大提高二次开发的效率。
20、3、传统的软件跨平台移植中,难免进行软件源代码的移植,容易将源代码泄露,这不利于知识产权的保护。本发明在模块化编程的基础上在维护好上下行数据流,能将飞行控制软件中的核心算法部分转化为二进制文件,具有一定的保密性,在一定程度上能避免软件在跨平台移植过程中知识产权被泄露。
1.一种便携的飞行控制系统跨平台移植方法,其特征在于,包括:
2.根据权利要求1所述的一种便携的飞行控制系统跨平台移植方法,其特征在于,硬件驱动层负责与外设连接;中间链路层负责对管脚电平进行滤波,帧的有效性检查,以及进行帧组合,起到承上启下的作用;功能应用层负责飞行前地面检查指令及起飞后的导航、制导和控制。
3.根据权利要求2所述的一种便携的飞行控制系统跨平台移植方法,其特征在于,所述硬件驱动层包括:配置待使用的gpio管脚,确保该管脚能够正常输入输出;根据时序配置uart和emif通信接口,确保通信正常;配置定时器确保定时准确。
4.根据权利要求2所述的一种便携的飞行控制系统跨平台移植方法,其特征在于,所述中间链路层对管脚电平进行滤波,包括:对硬件驱动层捕获到的管脚电平进行多次采样滤波处理,提高gpio判断的可靠性;将功能应用层的控制电平传递给硬件驱动层控制输出。
5.根据权利要求2所述的一种便携的飞行控制系统跨平台移植方法,其特征在于,所述中间链路层帧的有效性检查,包括:设计api模块对硬件驱动层的上行数据进行接收,并进行帧有效性检查;如果检帧有效则将数据传输给功能应用层使用,否则识别为废帧。
6.根据权利要求2所述的一种便携的飞行控制系统跨平台移植方法,其特征在于,所述中间链路层进行帧组合,包括:设计api模块对功能应用层的下行数据进行接收,并按照标准协议进行帧组合,将组帧后的数据转发给硬件驱动层输出。
7.根据权利要求2所述的一种便携的飞行控制系统跨平台移植方法,其特征在于,所述功能应用层包括:
8.根据权利要求2所述的一种便携的飞行控制系统跨平台移植方法,其特征在于,所述功能应用层包括:在主函数中添加对飞行控制定时器、标志位的定义,并在对应头文件中声明;在硬件驱动层中引用头文件,确保全局变量使用正常。