掌桥专利:专业的专利平台
掌桥专利
首页

一种兼容不同生产厂家主控板硬件状态的方法

文献发布时间:2023-06-19 16:06:26



技术领域

本发明属于计算机控制技术领域,具体涉及一种兼容不同生产厂家主控板硬件状态的方法。

背景技术

目前,作为大型电子系统的核心计算控制部件的主控计算机板一般由不同厂家设计完成。比如,瞄准设备系统(以下简称瞄准系统)主要由惯性寻北设备、自准直光管等设备组成,能提供高精度的瞄准定向信息。惯性寻北设备内部的核心计算部件是主控计算机板(以下简称主控板)一般由DSP、FPGA、FLASH等芯片以及相关的接口器件构成,如见图2所示。主控板由两家单位负责研制,要求采用相同的芯片、器件,但是各家所设计的FPGA软件、接口驱动程序等技术状态不一样,因此两家主控板硬件状态存在一定差异。一般情况下,需要设计两套配置项软件分别适配各家的主控板,但是两套配置项软件的配置管理工作量很大,容易造成设计、管理人员的精力浪费。为了减少系统软件的配置管理相关工作量,本发明提供一种兼容不同生产厂家主控板硬件状态的系统软件设计方法。

发明内容

为了解决现有技术中存在的上述问题,本发明提供一种兼容不同生产厂家主控板硬件状态的方法。

为了实现上述目的,本发明采用以下技术方案。

第一方面,本发明提供一种兼容不同生产厂家主控板硬件状态的方法,包括以下步骤:

定义一个用于区分主控板生产厂家的ID寄存器;

在所述ID寄存器中写入表示主控板生产厂家的值,第i个生产厂家的值为x

通过读取所述ID寄存器的值并与x

进一步地,将地址值等于0x7C3C0050的FPGA存储单元作为每个生产厂家的主控板上的ID寄存器。

进一步地,所述接口包括串口、网口、CAN口。

进一步地,通过在初始化程序中定义驱动函数宏,在主程序中调用驱动函数宏,实现对不同生产厂家接口驱动函数的调用。

更进一步地,所述驱动函数宏为带返回值参数的函数。

更进一步地,所述函数宏为不带返回值参数的函数。

更进一步地,识别主控板的生产厂家及调用接口驱动函数的方法包括:

定义全局变量X,并初始化为X=x

系统软件初始化时,读取ID寄存器的值id,若id∈{x

系统软件执行过程中,读取X的值,若X=x

更进一步地,所述方法还包括:若X=x

进一步地,所述方法还包括:将系统软件写入每个生产厂家的主控板。

更进一步地,将系统软件写入主控板的方法具体包括:将系统软件代码采用DSP的开发编译器CCS6进行编译生成out文件,再用可执行文件转换器将out文件转换为bin文件,将所述bin文件通过专用的烧写软件烧写到各生产厂家的主控板上。

与现有技术相比,本发明具有以下有益效果。

本发明通过定义一个表示主控板生产厂家的ID寄存器,在所述ID寄存器中写入表示主控板生产厂家的值x

附图说明

图1为本发明实施例一种兼容不同生产厂家主控板硬件状态的方法的流程图。

图2为瞄准系统惯性寻北设备主控板与外部设备的连接示意图。

图3为瞄准系统硬件ID识别及接口驱动程序调用流程图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚、明白,以下结合附图及具体实施方式对本发明作进一步说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例一种兼容不同生产厂家主控板硬件状态的方法的流程图,包括以下步骤:

步骤101,定义一个用于区分主控板生产厂家的ID寄存器;

步骤102,在所述ID寄存器中写入表示主控板生产厂家的值,第i个生产厂家的值为x

步骤103,通过读取所述ID寄存器的值并与x

本实施例提供一种能够兼容不同生产厂家主控板硬件状态的系统软件的设计方法。在实际应用中,很多大型电子系统的主控板由多家单位负责研制,虽然采用相同的硬件芯片、器件,但是各家所设计的接口驱动程序等技术状态不一样,因此不同厂家的主控板硬件状态存在一定差异。这就需要设计多套配置项软件分别适配各家的主控板,配置管理工作量很大。为此,本实施例提供一种系统软件设计方法,通过设置一个用于厂家识别的ID寄存器,兼容不同厂家主控板的硬件状态差异。

本实施例中,步骤101主要用于定义一个ID寄存器。所述ID寄存器的用处是用ID寄存器的值来区分主控板的生产厂家,也就是根据主控板中所述ID寄存器的值就可以知道所述主控板的生产厂家。

本实施例中,步骤102主要用于向所述ID寄存器中写入表示主控板生产厂家的值。为了区分不同的生产厂家,向不同厂家主控板的ID寄存器写入的值x

本实施例中,步骤103主要用于识别主控板的生产厂家及调用对应生产厂家的接口驱动函数。本实施例通过读取主控板上ID寄存器的值,并与x

本实施例通过设置ID寄存器,使系统软件运行启动过程中可准确识别主控板的生产厂家,确保后续调用相应接口驱动程序正确无误,程序运行稳定、可靠,有效解决了采用单个配置项软件兼容多个硬件状态主控板的难题。

作为一可选实施例,将地址值等于0x7C3C0050的FPGA存储单元作为每个生产厂家的主控板上的ID寄存器。

本实施例给出了ID寄存器的一种具体应用实例。瞄准系统的惯性寻北设备内部的主控板一般由DSP、FPGA、FLASH等芯片以及相关的接口器件构成,如图2所示。本实施例的ID寄存器就是针对图2所示的主控板设置的,所述ID寄存器为地址值等于0x7C3C0050的FPGA存储单元。

作为一可选实施例,所述接口包括串口、网口、CAN口。

本实施例给出了常用的几种系统接口。本实施例给出系统接口包括串口、网口和CAN口,仍然是惯性寻北设备主控板上的三种接口,如图2所示。值得说明的是,本实施例只是给出了几种较佳的实施方式,并不否定和排斥其它可行的实施方式,比如并行接口等。

作为一可选实施例,通过在初始化程序中定义驱动函数宏,在主程序中调用驱动函数宏,实现对不同生产厂家接口驱动函数的调用。

本实施例采用函数宏方式定义和调用接口驱动函数。计算机科学里的宏(Macro)是一种批量批处理的称谓。一般说来,宏是一种规则或模式,或称语法替换,用于说明某一特定输入如何根据预定义的规则转换成对应的输出。采用函数宏方式可方便地实现不同生产厂家接口驱动函数的调用。下面给出两个生产厂家A、B时函数宏的一个实例:

#define Function1(p1,p2,...)if(ID=0xAA)Function1_A(p1,p2,...);elseif(ID=0xBB)Function1_B(p1,p2,...)

上面代码表示的含义是:如果ID=0xAA,将接口驱动函数宏全部用厂家A的对应函数进行替换;如果ID=0xBB,将接口驱动函数宏全部用厂家B的对应函数进行替换。

作为一可选实施例,所述驱动函数宏为带返回值参数的函数。

函数宏有两种不同形式,一种带返回值参数,另一种不带返回值参数。本实施例定义的驱动函数宏带返回值参数。下面给出一种具体的实例:

#define Function2(p1,p2,...,re)if(ID=0xAA)re=Function2_A(p1,p2,...);elseif(ID=0xBB)re=Function2_B(p1,p2,...)。

作为一可选实施例,所述函数宏为不带返回值参数的函数。

本实施例定义的驱动函数宏不带返回值参数。下面给出一种具体的实例:

#define Function1(p1,p2,...)if(ID=0xAA)Function1_A(p1,p2,...);elseif(ID=0xBB)Function1_B(p1,p2,...)。

作为一可选实施例,识别主控板的生产厂家及调用接口驱动函数的方法包括:

定义全局变量X,并初始化为X=x

系统软件初始化时,读取ID寄存器的值id,若id∈{x

系统软件执行过程中,读取X的值,若X=x

本实施例给出了识别主控板的生产厂家及替换接口驱动函数的一种技术方案。为了方便,本实施例通过定义一个全局变量X来存放读取的ID寄存器的值。X的数据类型可定义为字符型。定义X时将其初始化为x

作为一可选实施例,所述方法还包括:若X=x

本实施例是上一实施例的改进方案。在将X的值与生产厂家的ID值{x

作为一可选实施例,所述方法还包括:将系统软件写入每个生产厂家的主控板。

前面的实施例给出了兼容不同厂家主控板的系统软件的设计方法,所述系统软件只是在原系统软件的基础上进行了少许的改进。系统软件改进设计完成后,还要将其烧写到不同厂家的主控板中。烧写完成后,不同厂家的主控板就可以直接插入使用了。

作为一可选实施例,将系统软件写入主控板的方法具体包括:将系统软件代码采用DSP的开发编译器CCS6进行编译生成out文件,再用可执行文件转换器将out文件转换为bin文件,将所述bin文件通过专用的烧写软件烧写到各生产厂家的主控板上。

本实施例给出了将系统软件写入主控板的一种技术方案。本实施例给出的系统软件烧写方法是针对图2所示的瞄准系统的主控板结构(DSP+FPGA+FLASH)。先利用DSP开发编译器CCS6对系统软件代码进行编译生成out文件,然后再将out文件转换为bin文件,最后将所述bin文件烧写到各厂家的主控板中。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

相关技术
  • 一种兼容不同生产厂家主控板硬件状态的方法
  • 一种无线AP中兼容不同天线数的硬件的处理方法
技术分类

06120114700145