本发明专利技术涉及嵌入式应用和数据通信领域,尤其是涉及一种基于中断判断机制的多处理器数据通讯方法。本发明专利技术针对现有技术数据存储和通信的问题,提供一种基于中断判断机制的多处理器数据通讯方法,解决中断异常导致数据包丢失的问题,实现高实时性和高可靠的数据交互。本发明专利技术通过数据接收方根据n端口随机寄存器发送的中断信号,接收相应数据,同时修改n端口随机寄存器中接收状态寄存器的状态值;数据发送方在下次写操作前,读取接收状态寄存器的状态值,并将该数据与上次操作的历史值进行比较,判定其余(n-1)个数据接收方是否正确接收数据发送方发送的数据,进行延时等待或再次写入。
【技术实现步骤摘要】
一种基于中断判断机制的多处理器数据通讯方法
本专利技术涉及嵌入式应用和数据通信领域,尤其是涉及一种基于中断判断机制的多处理器数据通讯方法。
技术介绍
在嵌入式系统的广泛应用的今天,随着系统集成度、复杂度和综合化程度的日益提高,经常需要设计多处理器协同完成信号处理和控制的复杂系统。多处理器系统设计技术的优点在于,可以通过计算能力的均匀分布,使系统具有较好的冗余能力,更快的处理速度,模块化的体系结构,并且简化编程难度。正因为多处理器系统的应用越来越广泛,如何解决好多处理器数据共享和交互问题也变得越来越重要。常见的不同处理器之间的通信方式包括借助通信寄存器通信方式,借助先进先出设备(FIFO)通信方式,借助双端口随机存储器通信方式,串行通信方式等等多种通信方式。如果需要在两个处理器之间进行大量数据传输的话,借助双端口随机存储器(DPRAM)则是最佳的选择方案。双端口随机存储器DPRAM与普通单口RAM不同,DPRAM芯片具有两组数据总线,两组地址总线,两组控制总线,只要不是同时访问同一存储单元,就允许两个端口对片内任何单元同时进行独立的读/写操作,而且互不干扰。借助双端口随机存储器DPRAM实现数据通信,在具体实现时又分为查询和中断两种机制,前者为上位机(获取信息的一方)定时或周期性的读取DPRAM内容并进行处理,这种机制设计简单,缺点是实时性较差,适用于实时性要求不高的应用;后者基于中断机制,实时性较高,缺点是依赖中断产生和响应机制,在复杂应用条件下,偶发性的丢中断现象可造成数据包丢失。基于中断机制的通用流程为,数据发送方写数据,然后向数据接收方触发接收数据中断。数据接收方相应中断,并执行读书操作,之后简单的将“接收状态寄存器”置为一个常量,当发送方再次写数时对“接收状态寄存器”数据判断,并根据其结果进行延时等待或再次写入,然而以上流程的正常运行依赖于中断机制的正确响应。但是,以上情况仅仅是适用于简化条件下(包括:优化的电磁环境干扰,上位机无中断嵌套机制),数据收发双方可正常发送、响应中断并完成数据通信,则简化的通信机制可实现可靠通信。实际工程应用中的真实情况是,由于电磁干扰、中断嵌套、软件调度、资源竞争多种原因,客观存在发送方未能正确给中断或接收方不能正常响应中断,即“丢中断”现象,从而导致数据包丢失。
技术实现思路
本专利技术所要解决的技术问题是:针对多处理器嵌入式系统中,基于DPRAM和中断机制的通信方法中丢中断问题,提供一种基于中断判断机制的多处理器数据通讯方法,此中断响应判决和补发机制,为解决中断异常导致数据包丢失的问题,在基于n端口随机存储器(DPRAM)通信机制中引入“中断未响应”概念,可有效解决由于中断响应问题导致的通信异常,实现高实时性和高可靠的数据交互。本专利技术采用的技术方案如下:一种基于中断判断机制的多处理器数据通讯方法包括:n个处理器分别通过n端口随机存储器进行数据传输,其中任意一个处理器作为数据发送方,其余(n-1)个处理器作为(n-1)数据接收方,所述n端口随机存储器包括n个数据长度寄存器、n个接收状态寄存器以及n个中断触发寄存器,所述每个处理器分别对应一个数据长度寄存器、接收状态寄存器以及中断触发寄存器,其具体步骤为:步骤1:数据发送方通过n端口随机存储器,向其余(n-1)个数据收方以中断方式发送数据;步骤2:数据接收方根据n端口随机寄存器发送的中断信号,接收相应数据,同时修改n端口随机寄存器中接收状态寄存器的状态值;步骤3:数据发送方在下次写操作前,读取接收状态寄存器的状态值,并将该数据与上次操作的历史值进行比较,判定其余(n-1)个数据接收方是否接收数据发送方发送的数据,进行延时等待或再次写入;步骤4:重复步骤3,实现数据发送方与数据接收方数据的传输。所述步骤1具体步骤包括:任意一个数据发送方发送数据给(n-1)个数据接收方时,n端口随机存储器对应的(n-1)个接收状态寄存器存储状态变量分别为Xi,n端口随机存储器对应的(n-1)个数据长度寄存器分别记录数据发送方发送数据的长度,同时n端口随机存储器中(n-1)个中断触发寄存器被写入中断信号值,然后n端口随机寄存器向其余(n-1)个数据接收方发送中断信号,Xi>1,所述Xi是个循环值。所示步骤2具体步骤包括:步骤21:(n-1)个数据接收方接收到中断信号时,将n端口随机存储器对应的(n-1)个接收状态寄存器存储状态变量Xi改为忙状态标志位,根据n端口随机存储器中数据长度寄存器中的数值,数据接收方读取n端口随机存储器中存储的数据;步骤22:(n-1)个数据接收方读取n端口随机存储器数据完成后,将n端口随机存储器中(n-1)个接收状态存储器中的忙状态标志位改为Xi+1=Xi+1,即将n端口随机存储器中(n-1)个接收状态寄存器状态改为响应状态;若数据接收方不接收中断信号,则接收状态寄存器Xi+1=Xi相同,即n端口随机存储器中接收状态寄存器为未响应状态。步骤3具体步骤:数据发送方再一次向n端口随机存储器发送数据时,判断n端口随机存储器中(n-1)个接收状态寄存器存储状态变量Xi+1与数据发送方上一次发送数据时的存储的状态变量Xi的关系:若Xi+1=Xi+1,则表示数据接收方响应接收了数据发送方的数据;若Xi+1=Xi,表示数据接收方未响应接收数据发送方的数据,Xi+1=忙状态,说明接收方正在读取数据。所述多端口随机存储器是双端口随机存储器,数据通讯方法具体包括:步骤111:数据发送方发送数据给数据接收方时,双端口存储器中的接收状态寄存器存储状态变量为Xi,双端口存储器中数据长度寄存器记录数据发送方发送数据的长度,同时双端口存储器中的中断触发寄存器被写入中断信号值,然后双端口寄存器向数据接收方发送中断信号,当数据发送方第一次向双端口存储器发送数据时,此时Xi>1,所述Xi是个循环值(此时i>0);步骤112:数据接收方接收到中断信号时,将双端口存储器中的接收状态寄存器存储状态变量Xi改为忙状态标志位,根据双端口存储器中数据长度寄存器中的数值,数据接收方读取双端口存储器中存储的数据;步骤113:数据接收方读取双端口存储器数据完成后,将双端口存储器中接收状态存储器中的忙状态标志位改为Xi+1=Xi+1,即将双端口存储器中接收状态寄存器状态改为响应状态;若数据接收方不接收中断信号,则接收状态寄存器Xi+1=Xi值相同,即双端口处理器中接收状态寄存器为未响应状态;步骤114:数据发送方再一次向双端口存储器发送数据时,判断双端口存储器中接收状态寄存器的此时的存储状态变量Xi+1与数据发送方发送数据的次数值Xi是否一致,若不一致,则表示数据接收方响应接收了数据发送方的数据;否则,表示数据接收方未响应接收数据发送方的数据;步骤115:重复步骤114,实现数据发送方与数据接收方数据的传输。综上所述,由于采用了上述技术方案,本专利技术的有益效果是:1)数据接收方读数完成后,在“接收状态寄存器中”写入一个“变量”代替常量,这里设置变量为“1~Xi”之间的循环计数值。数据发送方在下次写操作前读取接收状态寄存器的变量值,并将该数据与上次操作的历史值进行比较,并采取对应操作。2)基于中断机制完成数据交互;通过数据长度寄存器、中断触发寄存器、本文档来自技高网...

【技术保护点】
一种基于中断判断机制的多处理器数据通讯方法,其特征在于包括:n个处理器分别通过n端口随机存储器进行数据传输,其中任意一个处理器作为数据发送方,其余(n‑1)个处理器作为(n‑1)数据接收方,所述n端口随机存储器包括n个数据长度寄存器、n个接收状态寄存器以及n个中断触发寄存器,所述每个处理器分别对应一个数据长度寄存器、接收状态寄存器以及中断触发寄存器,其具体步骤为:步骤1:数据发送方通过n端口随机存储器,向其余(n‑1)个数据收方以中断方式发送数据;步骤2:数据接收方根据n端口随机寄存器发送的中断信号,接收相应数据,同时修改n端口随机寄存器中接收状态寄存器的状态值;步骤3:数据发送方在下次写操作前,读取接收状态寄存器的状态值,并将该数据与上次操作的历史值进行比较,判定其余(n‑1)个数据接收方是否接收数据发送方发送的数据,进行延时等待或再次写入;步骤4:重复步骤3,实现数据发送方与数据接收方数据的传输。
【技术特征摘要】
1.一种基于中断判断机制的多处理器数据通讯方法,其特征在于包括:n个处理器分别通过n端口随机存储器进行数据传输,其中任意一个处理器作为数据发送方,其余n-1个处理器作为n-1数据接收方,所述n端口随机存储器包括n个数据长度寄存器、n个接收状态寄存器以及n个中断触发寄存器,每个处理器分别对应一个数据长度寄存器、接收状态寄存器以及中断触发寄存器,其具体步骤为:步骤1:数据发送方通过n端口随机存储器,向其余n-1个数据收方以中断方式发送数据;步骤2:数据接收方根据n端口随机寄存器发送的中断信号,接收相应数据,同时修改n端口随机寄存器中接收状态寄存器的状态值;步骤3:数据发送方在下次写操作前,读取接收状态寄存器的状态值,并将接受状态寄存器的状态值与上次操作的历史值进行比较,判定其余n-1个数据接收方是否接收数据发送方发送的数据,进行延时等待或再次写入;步骤4:重复步骤3,实现数据发送方与数据接收方数据的传输;步骤2具体步骤包括:步骤21:n-1个数据接收方接收到中断信号时,将n端口随机存储器对应的n-1个接收状态寄存器存储状态变量Xi改为“忙状态”标志位,根据n端口随机存储器中数据长度寄存器中的数值,数据接收方读取n端口随机存储器中存储的数据;步骤22:n-1个数据接收方读取n端口随机存储器数据完成后,将n端口随机存储器中n-1个接收状态存储器中的忙状态标志位改为Xi+1=Xi+1,即将n端口随机存储器中n-1个接收状态寄存器状态改为响应状态;若数据接收方不接收中断信号,则接收状态寄存器Xi+1=Xi相同,即n端口随机存储器中接收状态寄存器为未响应状态;步骤3具体步骤:数据发送方再一次向n端口随机存储器发送数据时,判断n端口随机存储器中n-1个接收状态寄存器存储状态变量Xi与数据发送方上一次发送数据时的存储的状态变量Xi的关系:若Xi+1=Xi+1,则表示数据接收方响应接收了数据发送方的数据;若Xi+1=Xi,表示数据接收方未响应接收数据发送方的数据,Xi+1表示“忙状态”,说明接收方正在读取数据。2.根据权利要求1所述的一...
【专利技术属性】
技术研发人员:李洪伟,
申请(专利权)人:四川九洲空管科技有限责任公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。