一种通信接口及基于该接口的仿真应用方法

文档序号:9810769阅读:227来源:国知局
一种通信接口及基于该接口的仿真应用方法
【技术领域】
[0001]本发明属于计算机应用技术领域,尤其涉及一种通信接口及基于该接口的仿真应用方法。
【背景技术】
[0002]仿真软件(simulat1nsoftware)是专门用于仿真的计算机软件,它与仿真硬件同为仿真的技术工具。仿真平台是为大型科学计算/复杂系统动态特性建模研究、过程仿真培训、系统优化设计与调试、故障诊断与专家系统等,提供通用的、一体化的、全过程制成的,基于微机环境的开发与运行支撑环境。
[0003]在之前的仿真平台中,没有进行相应数据处理,仿真软件直接通过驱动软件接口进行数据接收。数据的发送一般通过定时器定时发送,数据的接收通过处理硬件中断的中断服务程序实现数据接收。采用这种数据接收处理方法的仿真软件在数据量较大时,硬件中断上报较为频繁,应用软件处理中断过程中易出现中断覆盖导致数据丢失的情况,且频繁的中断会影响应用程序性能。

【发明内容】

[0004]为了解决了仿真平台中节点处理数据速率过慢,导致数据丢失、应用软件性能下降的技术问题,本发明提供了一种通信接口及基于该接口的仿真应用方法。
[0005]本发明的技术解决方案:
[0006]—种通信接口,其特殊之处在于:包括写接口、读接口和数据存储模块,写接口用于将硬件中数据写入数据存储模块,读接口用于应用层从数据存储模块读取数据,数据存储模块用于存储数据。
[0007]写接口还用于判断数据存储模块是否存满,并设置存储满标志;
[0008]读接口还用于判断数据存储模块是否读完,并设置存储空标志;
[0009]数据存储模块采用双指针的循环存储方式。
[0010]基于该接口的仿真应用方法,包括以下步骤:
[0011 ] I)硬件接收到数据,上报数据接收中断;
[0012]2)驱动层截获中断,调用写接口,
[0013]判断数据存储模块状态:
[0014]若数据存储模块非满,将数据写入数据存储模块后,再次判断数据存储模块的存储状态:
[0015]若数据存储模块为不满,则设置非满标志;
[0016]若数据存储模块为满,则设置满标志;
[0017]若数据存储模块满,结束本次写入操作。
[0018]3)应用层定时中断触发,调用读接口,判断数据存储模块的状态:
[0019]若数据存储模块非空,则从数据存储模块中读取数据后,再次判断数据存储模块状态:
[0020]若数据存储模块为空,则设置空标志,
[0021]否则,设置非空标志;
[0022]若数据存储模块为空,结束本次读取操作。
[0023]本发明具有的优点效果:
[0024]1、本发明提供一种通信接口及基于该接口的仿真应用方法,在应用层和硬件之间设置驱动层,利用环形数据缓冲区和存取互斥机制,实现应用层和硬件之间的数据交互,解决了在仿真系统中数据接收时处理数据速率过慢,可能导致数据丢失、应用层性能下降的问题。
[0025]2、本发明提供的一种通信接口及基于该接口的仿真应用方法,利用环形数据缓冲区和存取互斥机制,同时处理数据接收和处理数据发送,这样既可降低中断频率,同时又不会丢失相应数据,提升了仿真系统的性能,而且,在对数据缓冲区进行操作过程中,均采用信号量(状态标志)实现两层交互访问数据缓冲区,避免数据访问冲突导致缓冲区清空或写入数据失败。
【附图说明】
[0026]图1是本发明的仿真软件模型编程处理结构图。
【具体实施方式】
[0027]下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。
[0028]—种通信接口,包括写接口、读接口和数据存储模块,写接口用于将硬件中数据写入数据存储模块,读接口用于应用层从数据存储模块读取数据,数据存储模块用于存储数据。
[0029]写接口还用于判断数据存储模块是否存满,并设置存储满标志;
[0030]读接口还用于判断数据存储模块是否读完,并设置存储空标志;
[0031 ]数据存储模块采用双指针的循环存储方式。
[0032]基于该接口的仿真应用方法,包括以下步骤:
[0033]I)硬件接收到数据,上报数据接收中断;
[0034]2)驱动层截获中断,调用写接口,
[0035]判断数据存储模块状态:
[0036]若数据存储模块非满,将数据写入数据存储模块后,再次判断数据存储模块的存储状态:
[0037]若数据存储模块为不满,则设置非满标志;
[0038]若数据存储模块为满,则设置满标志;
[0039]若数据存储模块满,结束本次写入操作。
[0040]3)应用层定时中断触发,调用读接口,判断数据存储模块的状态:
[0041]若数据存储模块非空,则从数据存储模块中读取数据后,再次判断数据存储模块状态:
[0042]若数据存储模块为空,则设置空标志,
[0043]否则,设置非空标志;
[0044]若数据存储模块为空,结束本次读取操作。
[0045]实施例:
[0046]—种通信接口及基于该接口的仿真应用方法,基于仿真软件模型,包括硬件、驱动层和应用层,在应用层和硬件之间设置驱动层,驱动层包括环形数据缓冲区和存取互斥机制,包括以下步骤,
[0047]步骤1、驱动软件加载运行;
[0048]步骤2、驱动软件创建环形数据缓冲;
[0049]步骤3、初始化缓冲区,将缓冲区数据初始化为0x0;
[0050]步骤4、仿真硬件从数据总线获取数据;
[0051]步骤5、硬件设置中断标志并上报中断;
[0052 ]步骤6、驱动层软件截获中断;
[0053]步骤7、进入中断服务程序;
[0054]步骤8、进行数据接收;
[0055]步骤9、查询数据缓冲区状态,获取数据缓冲区头部位置;
[0056]步骤10、将数据写入数据缓冲区,重新设置数据缓冲区头部位置;
[0057]步骤11、应用软件定时中断触发;
[0058]步骤12、应用软件进入定时中断服务程序;
[0059]步骤13、应用软件读取数据缓冲区中所有数据,并初始化缓冲区尾部和缓冲区头部,完成数据处理过程。
[0060]最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【主权项】
1.一种通信接口,其特征在于:包括写接口、读接口和数据存储模块,写接口用于将硬件中数据写入数据存储模块,读接口用于应用层从数据存储模块读取数据,数据存储模块用于存储数据。2.根据权利要求1所述的通信接口,其特征在于: 写接口还用于判断数据存储模块是否存满,并设置存储满标志; 读接口还用于判断数据存储模块是否读完,并设置存储空标志; 数据存储模块采用双指针的循环存储方式。3.基于该接口的仿真应用方法,包括以下步骤: 1)硬件接收到数据,上报数据接收中断; 2)驱动层截获中断,调用写接口, 判断数据存储模块状态: 若数据存储模块非满,将数据写入数据存储模块后,再次判断数据存储模块的存储状态: 若数据存储模块为不满,则设置非满标志; 若数据存储模块为满,则设置满标志; 若数据存储模块满,结束本次写入操作; 3)应用层定时中断触发,调用读接口,判断数据存储模块的状态: 若数据存储模块非空,则从数据存储模块中读取数据后,再次判断数据存储模块状态: 若数据存储模块为空,则设置空标志, 否则,设置非空标志; 若数据存储模块为空,结束本次读取操作。
【专利摘要】本发明涉及一种通信接口及基于该接口的仿真应用方法。在应用层和硬件之间设置驱动层,驱动层包括写接口、读接口和数据存储模块,写接口用于将硬件中数据写入数据存储模块,读接口用于应用层从数据存储模块读取数据,数据存储模块用于存储数据。解决了在仿真软件中数据接收时处理数据速率过慢,可能导致数据丢失、应用软件性能下降的问题。本发明利用环形数据缓冲区和存取互斥机制,同时处理数据接收和处理数据发送,这样既可降低中断频率,同时又不会丢失相应数据,提升了仿真软件的性能,而且,在对数据缓冲区进行操作过程中,均采用信号量实现两层软件交互访问数据缓冲区,避免数据访问冲突导致缓冲区清空或写入数据失败。
【IPC分类】G06F17/50
【公开号】CN105574242
【申请号】CN201510923099
【发明人】夏大鹏, 田泽, 杨峰, 蔡叶芳
【申请人】中国航空工业集团公司西安航空计算技术研究所
【公开日】2016年5月11日
【申请日】2015年12月11日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1