本发明涉及计算机总线驱动领域。更具体地,涉及一种嵌入式系统总线驱动领域的方法。
背景技术
嵌入式系统正随着internet的发展而在各个领域得到广泛的应用,作为优秀的操作系统代表,vxworks、qnx、rtems等实时操作系统实现了比其他操作系统更好的实时性、有效性、商用性、可裁减性以及互操作性,广泛应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。
现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。尤其是在嵌入式系统应用领域,现场总线更是得到了广泛的应用。由于总线的类型繁多,例如常见的有can总线、1553b总线、arnic429总线及基金会总线等,嵌入式操作系统需要对不同的总线分别进行驱动和应用的开发,不具有通用性,在开发过程中又存在大量的重复工作。
鉴于此,本发明的目的在于提供一种总线驱动方法、装置及存储介质,使用通用的实施技术,使得驱动方法可在各类软硬件平台通用,并扩展总线应用的功能。
技术实现要素:
为了解决上述技术问题,本发明的目的在于提供一种总线驱动方法、装置及存储介质,以缓解现有技术存在的问题。
第一方面,本发明提供了一种总线驱动方法,应用于嵌入式操作系统,包括:设置操作系统初始时加载总线配置;设置总线的控制器及寄存器地址,以支持操作系统访问;设置总线中断触发方式;设置操作系统在内核注册总线及总线资源;设置总线的读写功能。
可选地,根据总线的工作方式,设置总线的通信地址、总线控制器的初始参数。
可选地,设置总线监视器,以测量总线通信的工作参数,监视总线是否工作正常。
可选地,设置至少一条备份总线,当工作总线出现故障时,备份总线以热备份或冷备份的方式接替工作总线。
第二方面,本发明提供了一种总线驱动装置,应用于嵌入式操作系统,包括:操作系统配置模块,设置操作系统初始时加载总线配置,设置操作系统内核注册总线及总线资源;总线配置模块,设置总线的控制器及寄存器地址,以支持操作系统访问,设置总线中断触发方式,设置总线的读写功能。
可选地还包括:总线运行模块,根据总线的工作方式,设置总线的通信地址、总线控制器的初始参数。
可选地还包括:总线监视器模块,设置总线监视器,以测量总线通信的工作参数,监视总线是否工作正常。
可选地还包括:总线备份模块,设置至少一条备份总线,当工作总线出现故障时,备份总线以热备份或冷备份的方式接替工作总线。
第三方面,本发明提供了一种总线驱动装置,应用于嵌入式操作系统,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:设置操作系统初始时加载总线配置;设置总线的控制器及寄存器地址,以支持操作系统访问;设置总线中断触发方式;设置操作系统内核注册总线及总线资源;设置总线的读写功能。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令被处理器执行时实现第一方面所提供的总线驱动方法步骤。
本发明的有益效果如下:
本发明提供的技术方案可以包括以下有益效果:设置操作系统初始时加载总线配置;设置总线的控制器及寄存器地址,以支持操作系统访问;设置总线中断触发方式;设置操作系统内核注册总线及总线资源;设置总线的读写功能。这样,本发明提供的总线驱动方法,可在各类软硬件平台通用,且扩展了总线应用的功能,提高了总线的可靠性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一种实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例的一种总线驱动方法流程图;
图2是本发明第二实施例的一种总线驱动装置的结构示意图;
图3是本发明第三实施例的一种总线驱动装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
实施例一:
图1是本发明第一实施例的一种总线驱动方法流程图,如图1所示,该方法包括如下四个步骤。
步骤s101:进行操作系统配置。具体地,设置操作系统初始时加载总线配置,设置操作系统在内核注册总线及总线资源。
在一个可选的实施例中,操作系统使用vxworks,首先需要对bsp中的config.h文件进行配置,bsp主要是cpu的初始化,为整个软件系统提供底层硬件支持。例如以can总线为例,需要增加宏定义drv_canbus_user。此外,需要设置can总线需要用到的资源,例如时钟、通信速率等,在vxworks内核中注册这些资源,才能通过操作系统驱动硬件。
步骤s102:进行总线配置。具体地,设置总线的控制器及寄存器地址,以支持操作系统访问;设置总线中断触发方式;设置总线的读写功能。
在一个可选的实施例中,操作系统使用vxworks,总线使用can总线,在vxworks操作系统中设置can总线的地址,才可以访问操作寄存器的地址,否则操作寄存器一定会造成vxworks操作系统崩溃。在操作系统文件hwconf.c中确定gictrigger的数值,数组中定义了can的中断的触发方式,一般选择电平触发。根据总线的特点,制定总线读写程序,以支持总线的应用。
步骤s103:设置总线初始工作参数。具体地,根据总线的工作方式,设置总线的通信地址、总线控制器的初始参数。
在一个可选的实施例中,can总线的地址分为11位和29位两种模式,在通信前需要进行配置,才能进行总线通信工作。
在另一个可选的实施例中,1553b总线为主从控制总线,在通信前需要配置总线是bc(buscontroller总线控制端)还是rt(remoteterminal远置端);在通信系统内只能存在一个bc,可以存在多个rt,如果是rt还需要指定rt的地址。
步骤s104:设置总线监视器。具体地,设置总线监视器,以测量总线通信的工作参数,监视总线是否工作正常。
在一个可选的实施例中,1553b总线可设置bm(busmonitor),以监控1553b总线上各通信链路是否正常通信,以及监视通信负载等参数。
步骤s105:设置总线备份方法。具体地,设置至少一条备份总线,当工作总线出现故障时,备份总线以热备份或冷备份的方式接替工作总线。
在一个可选的实施例中,1553b总线本身就是双冗余的热备份总线,包含a和b两条总线。当总线a通信出现故障时,总线控制芯片会自动切换到b总线进行通信。
在另一个可选的实施例中,在总线通信中设置两条can总线,并设置为冷备份模式,当工作总线出现故障时,切换至备份总线。
实施例二:
本发明实施例提供了一种总线驱动装置,该装置主要用于执行本发明实施例上述内容所提供的总线驱动方法,以下对本发明实施例提供的总线驱动装置做具体介绍。
图2是本发明第二实施例的一种总线驱动装置的结构示意图。如图2所示,该总线驱动装置200包括以下模块。
操作系统配置模块201,设置操作系统初始时加载总线配置,设置操作系统内核注册总线及总线资源。
总线配置模块202,设置总线的控制器及寄存器地址,以支持操作系统访问,设置总线中断触发方式,设置总线的读写功能。
可选地包括:总线运行模块203,根据总线的工作方式,设置总线的通信地址、总线控制器的初始参数。
可选地包括:总线监视器模块204,设置总线监视器,以测量总线通信的工作参数,监视总线是否工作正常。
可选地包括:总线备份模块205,设置至少一条备份总线,当工作总线出现故障时,备份总线以热备份或冷备份的方式接替工作总线。
实施例三:
本发明实施例还提供了一种总线驱动装置。如图3所示,该实施例的总线驱动装置300包括:处理器301、存储器302、总线303,以及存储在存储器302中并可在处理器301上运行的计算机程序,例如该程序用于在驱动总线303工作。处理器301执行计算机程序时实现上述各个总线驱动方法实施例中的步骤,例如图1所示的步骤s101、s102、s103、s104和s105。或者,处理器301执行计算机程序时实现上述各装置实施例中各模块的功能,例如图2中的模块以驱动总线303工作。
示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器302中,并由所述处理301器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述总线驱动装置中的执行过程。例如,所述计算机程序可以被分割成操作系统配置模块和总线配置模块,各模块具体功能如下:操作系统配置模块,设置操作系统初始时加载总线配置,设置操作系统内核注册总线及总线资源;总线配置模块,设置总线的控制器及寄存器地址,以支持操作系统访问,设置总线中断触发方式,设置总线的读写功能。
所述总线驱动装置可以是单片机系统、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述总线驱动装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是总线驱动装置的示例,并不构成对总线驱动装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述总线驱动装置还可以包括输入输出设备、总线等。
所称处理器可以是微控制单元(microcontrollerunit,mcu),中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述总线驱动装置的控制中心,利用各种接口和线路连接整个总线驱动装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述总线驱动装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
实施例四:
总线驱动装置集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。