本发明专利技术属于多个CPCI设备访问控制及中断复用的方法,具体涉及一种提高VxWorks实时性的CPCI设备中断复用方法。目的是提供一种高效的、可扩展的设备访问及中断复用处理的方法。包括:步骤1、对设备设置中断方式;步骤2、编写驱动;步骤3、编写设备操作函数;步骤4、编写各个设备的中断服务程序;步骤5、调用设备操作函数对设备进行操作。本发明专利技术的优点是:对于不同的设备设置不同的中断方式,并且精简传统的驱动标准的结构;传统处理方式每个设备的每次中断响应及处理需要15us左右,而抛开标准驱动格式,采用上述方式,每个设备的每次中断响应及处理仅需要5us左右,当系统复杂度更高,设备更多时,这种时间的优势便更加可以体现。
【技术实现步骤摘要】
—种提高VxWorks实时性的CPCI设备中断复用方法
本专利技术是一种基于嵌入式操作系统VxWorks,为提高系统执行效率及实时性,解决 多个CPCI设备访问控制及中断复用的方法,具体应用于多个CPCI设备共存的控制系统。
技术介绍
Vxfforks作为嵌入式实时操作系统,由于其性能高、具有很好的安全性和可靠性, 已经成为事实上的工业标准和军用标准,目前应用于许多领域。随着某些控制系统功能要 求的增多,单一系统中的功能接口设备数量在不断增加,处理好这些功能接口设备在一个 系统中的共存问题,尤其是中断冲突问题,对于整个系统工作的稳定性、可靠性以及良好的 实时性具有非常重要的意义。目前多功能板卡的控制系统中常采用CPCI总线将各个具有独立功能的板卡进行 集成,由VxWorks统一控制管理,使其在同一系统中分别实现不同的功能。VxWorks提供了 对标准CPCI接口设备的支持。对每一个系统中的CPCI设备,操作系统会为其分配一个中 断号,并且有可能给不同的设备分配相同的中断号。VxWorks对某一 CPCI设备的访问控制, 常用的方法即标准驱动方式,应用程序通过操作系统内核调用操作系统提供的标准接口模 块访问设备。这种方式下,被访问控制设备大致分为三种类型字符设备、块设备和网络 设备,根据不同的设备类型设备驱动程序的管理也被划分成与设备类型对应的三种模块。 Vxfforks的I/O系统为用户提供了与设备无关的用户接口,应用程序通过标准接口 openO、 read O > write O、ioctl O访问设备控制程序。当向系统中添加设备时,操作系统会向自身 的设备列表中添加新的结点,除了设备列表外,Vxfforks操作系统还管理驱动程序描述表, I/O系统通过这个表存储驱动程序的各个函数的入口点。只要是在系统中安装过的驱动程 序都会在这个表中的相应的入口点。根据设备驱动的主要功能,标准接口的设备驱动程序 需要的标准函数一般包括注册、卸载函数,打开、关闭函数,读、写操作函数,设备控制函数 和中断服务函数。目前大部分应用实现中,VxWorks对CPCI设备的控制均采用了上面提到的访问方 式。这种方法在系统中只有一个CPCI设备时是没问题的,但当系统中有多个CPCI设备时, 它的缺点及带来的问题就会暴露1、操作系统的驱动程序描述表的大小是固定的,因此在系统的一次运行中,只能 安装有限的驱动程序,当系统中存在的设备多时,无法共同工作;2、对于每个CPCI设备,由于必须按照系统规定实现所有需要的接口函数,因此接 口函数繁多;3、当多个CPCI设备都需要使用中断时,系统可能会为不同设备分配相同的中断 号,对使用相同中断号的不同设备的中断复用实现复杂;4、由于对设备的很多操作都需要回调函数,中断响应的执行效率不高,实时性效 果不理想。
技术实现思路
本专利技术的目的是针对上述的VxWorks系统中多个CPCI设备共存时设备访问及中 断控制的缺点和问题,提供一种高效的、可扩展的设备访问及中断复用处理的方法,只要是 使用VxWorks操作系统,系统中共存多个CPCI设备的应用模式都可以使用。本专利技术是这样实现的,其中, 包括步骤1、对设备设置中断方式;对于不同的设备设置不同的中断方式的步骤,其中,设置为对于由采用外部设备清除中断的处理方式的设备,采用电平触发方式来产生中 断,当VxWorks完成中断处理后,由VxWorks直接通过写双口 RAM固定地址清中断;对于采用自行清除中断的处理方式的设备,采用边沿触发的中断处理方式,操 作系统在响应中断后专心处理数据,连续的数据读取完成后,芯片自身清除自身的中断状 态;步骤2、编写驱动;对标准驱动方式中使用的函数进行精简与选择、在标准驱动方式众多需要包含和 实现的函数中,选择使用以下函数找到PCI设备的函数;获取PCI设备地址空间的函数;获取系统为PCI设备分配的 中断号函数;中断设置函数;步骤3、编写设备操作函数;步骤4、编写各个设备的中断服务程序;在自行实现中断服务程序后,直接利用系统提供的中断设置函数设置中断服务程 序,使得系统被中断时能够调用此中断服务程序处理中断。本专利技术的优点是1、对系统中的设备数量没有限制,处理步骤也不会增加,以前常用的标准方式当 设备增加时,工作量是成倍增加的,每个设备必须完整的实现一整套符合标准接口的函数 包,而采用以上方式只需要在各个步骤中增加该设备相关的一点内容,大大减少了工作2、系统中断复用的控制分散到各个设备的中断服务程序中实现,不会过多的增加 操作系统的负荷,提高了系统对中断的响应和处理速度,经工程中通过示波器实际测量,当 系统中的4块设备同时工作、有中断复用情况存在,并频繁产生中断时,传统处理方式每个 设备的每次中断响应及处理需要15us左右,而抛开标准驱动格式,采用上述方式,每个设 备的每次中断响应及处理仅需要5us左右,当系统复杂度更高,设备更多时,这种时间的优 势便更加可以体现;5、实时性良好,对不同设备采取设置不同的中断触发方式及中断清除方式,充分 发挥设备的特性,提高了统实时性。本专利技术通过一个实际应用环境的实现,说明给出不同类型设备采用的访问控制、 中断触发方式、中断清除方式,在以后的实际应用环境中可快速解决VxWorks系统中多 CPCI设备共存且有中断复用情况时的控制访问及中断处理。具体实施方式下面结合具体实施例对本专利技术做进一步的说明某控制设备采用VxWorks操作系统,系统中包含4种CPCI接口的设备。分别实现 1553B通讯、串行接口通讯、开关量控制以及网络数据交换功能,各个设备均需使用中断,中 断号由操作系统分配,有设备中断复用情况。与CPCI总线连接使用PCI9052控制芯片。具体的设备控制访问及中断处理方法实现包括如下步骤1:首先通过硬件配置工具PLX_M0N配置各个设备的PCI9052芯片的中断控 制寄存器。该步具体配置的内容根据设备自身的特点及使用方式来确定,在该控制系统中, 1553B通讯设备为智能设备,自身有处理器负责处理1553B总线上的消息,并将处理后的消 息放在双口 RAM中,以中断方式通知操作系统取走消息。1553B板卡自身的处理器只能产 生中断,无法自动清除中断,中断的清除工作必须由操作系统主动完成。开关量板卡的情况 与1553B板卡类似,将这种类型的设备中断触发方式配置为电平触发。串行接口设备的特 点是收到一定量的数据是会产生中断,当数据被取走后会自动清除中断,操作系统不需要 做清除中断的操作,网络接口设备的情况与串行接口设备类似,这种可以自动清除中断的 设备将中断触发方式配置为边沿触发方式。步骤2 :编写驱动代码,根据各个设备的VENDER ID和DEVICE ID获得操作系统为 各个设备分配的资源,包括地址空间、中断号,并且以非独享的方式为各个设备设置中断服 务程序入口;不需要实现标准驱动模式所要求的众多接口函数,对标准驱动方式中使用的函数 进行了精简与选择。该功能模块操作伪代码描述如下>找到PCI设备。在操作系统中找到已安装的设备,目前介绍的系统中包含4块板卡,在其它应用中可根据板卡情况增加或减少pciFindDevice(1553B_VENDER_ID,1553B_DEVIC本文档来自技高网...
【技术保护点】
一种提高VxWorks实时性的CPCI设备中断复用方法,其特征在于:包括:步骤1、对设备设置中断方式;对于不同的设备设置不同的中断方式的步骤,其中,设置为:对于:采用由外部设备清除中断的处理方式的设备,采用电平触发方式来产生中断,当VxWorks完成中断处理后,由VxWorks直接通过写双口RAM固定地址清中断;对于:采用自行清除中断的处理方式的设备,采用边沿触发的中断处理方式,操作系统在响应中断后专心处理数据,连续的数据读取完成后,芯片自身清除自身的中断状态;步骤2、编写驱动;对标准驱动方式中使用的函数进行精简与选择、在标准驱动方式众多需要包含和实现的函数中,选择使用以下函数:找到PCI设备的函数;获取PCI设备地址空间的函数;获取系统为PCI设备分配的中断号函数;中断设置函数;步骤3、编写设备操作函数;步骤4、编写各个设备的中断服务程序;在自行实现中断服务程序后,直接利用系统提供的中断设置函数设置中断服务程序,使得系统被中断时能够调用此中断服务程序处理中断。
【技术特征摘要】
【专利技术属性】
技术研发人员:牛俊慧,张典国,鞠锋,
申请(专利权)人:中国航天科工集团第三研究院第八三五七研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。