[发明专利]基于双口的PowerPC与Microblaze交互系统及交互方法在审
申请号: | 201911238023.5 | 申请日: | 2019-12-06 |
公开(公告)号: | CN111190852A | 公开(公告)日: | 2020-05-22 |
发明(设计)人: | 朱强;杨帅 | 申请(专利权)人: | 中国航空工业集团公司洛阳电光设备研究所 |
主分类号: | G06F15/163 | 分类号: | G06F15/163;G06F13/42 |
代理公司: | 西北工业大学专利中心 61204 | 代理人: | 金凤 |
地址: | 471099 *** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 powerpc microblaze 交互 系统 方法 | ||
1.一种基于双口的PowerPC与Microblaze交互系统,其特征在于:
所述基于双口的PowerPC与Microblaze交互系统,包含PowerPC处理系统和MicroBlaze处理系统,MicroBlaze与PowerPC间采用FPGA内部双口RAM进行通信,PowerPC处理系统Local Bus通过局部并行总线与FPGA内部MicroBlaze处理系统通信,MicroBlaze处理系统包含双口RAM、MicroBlaze处理器和接口IP核,其中接口IP核包括RS422、ARINC429、SPI、GPIO和1553B。
2.根据权利要求1所述的一种基于双口的PowerPC与Microblaze交互系统,其特征在于:
所述基于双口的PowerPC与Microblaze交互系统包含初始化交互模块、接口数据收发交互模块和健康监控模块,在PowerPC处理系统和MicroBlaze处理系统上电后时,先执行初始化交互,完成MB处理器的上电自检、状态上报和接口初始化;之后PowerPC处理系统和MicroBlaze处理系统开始周期的进行接口数据收发交互,同时PowerPC处理器系统周期的对MicroBlaze处理系统进行健康监控,以便进行故障处理和上报;
所述初始化交互模块包括Microblaze运行后执行中断、CACHE初始化、执行上电自检、上报运行状态和接口初始化;
所述接口数据收发交互模块为提高发送效率,减少PowerPC的等待时间,两个处理系统之间的接口数据通过双口RAM上的循环缓冲区进行异步收发;
所述健康监控模块通过PowerPC处理器周期写入双口计数值,Microblaze读到计数值后再复制到另一个双口地址上,PowerPC再读取计数值查看是否和写入的值相同,用于判断Microblaze是否正常运行。
3.一种利用权利要求1所述基于双口的PowerPC与Microblaze交互系统的交互方法,其特征在于包括下述步骤:
所述基于双口的PowerPC与Microblaze交互系统的交互方法的详细步骤如下:
步骤1:初始化交互过程
初始化过程包括启动初始化和接口初始化,其中启动初始化完成后再执行接口初始化;
步骤1.1:启动初始化;
系统上电或者硬复位后,PowerPC端的操作系统启动时间远长于Microblaze启动时间,Microblaze端先完成初始化,并进入等待状态,PowerPC端则读取Microblaze的运行状态,并设置进入应用状态;
Microblaze上电启动后执行如下步骤:
a)初始化Microblaze的调试串口;
b)使能数据CACHE和指令CACHE;
c)初始化中断控制器;
d)清空与PowerPC交互的双口;
e)Microblaze设置自身状态为开始运行状态(start),表示Microblaze已经开始运行;
f)执行上电自检,自检内容包括双口读写(测试完后清空双口)、RS422内环测试、ARINC429内环测试;上电自检执行完后将上电自检结果存到双口的结构体中;
h)Microblaze设置自身状态为等待状态,标识Microblaze已经完成上电初始化,并开始进入MB的循环周期,每个周期都查看PowerPC发给Microblaze的命令;根据不同的命令进入不同的状态,执行不同代码;
PowerPC端初始化的步骤如下:
a)检查Microblaze是否已经到完成初始化并进入等待状态;
b)检查Microblaze的上电自检结果,如果自检正确,则执行步骤c,如果不正确,则执行步骤d;
c)设置Microblaze状态为应用状态,并判断Microblaze是否进入应用状态,如果没有进入,则执行步骤d,如果进入应用状态,则执行步骤e;
d)设置Microblaze状态为停止状态,并上报给应用软件返回值;
e)标记Microblaze状态为应用状态,并上报给应用软件初始化成功;
步骤1.2:接口初始化交互过程
接口初始化交互过程是指PowerPC端与Microblaze通过自定义的通信结构体(例如RS422/ARINC429)完成接口参数的传递、初始化状态交互过程,交互步骤如下:
a)PowerPC端在进行接口初始化前,先判断Microblaze是否在应用状态,只有Microblaze在应用状态才允许初始化接口和数据收发;如果在在应用状态,则执行步骤b;如果没有在应用态,则返回错误,不继续执行;
b)PowerPC端向双口结构体中填写接口初始化的参数,包括但不仅限于通道号、波特率、校验位、停止位信息;
c)PowerPC端向双口填写接口初始化命令,用来通知Microblaze可以根据接口初始化参数进行IP核的初始化;
d)Microblaze周期从双口中读取PowerPC端写入的命令,当检测到接口初始化命令后,Microblaze开始进入接口初始化流程,从双口中读取接口初始化参数;
e)Microblaze调用接口初始化函数,并将PowerPC端写入的初始化参数传入接口函数中;
f)Microblaze完成接口初始化后,向双口中置相应通道初始化完成标志;
h)PowerPC端周期查询Microblaze是否成功完成接口初始化,获取到Microblaze初始化成功后,完成整个初始化过程,如果查询到接口初始化失败,则返回给应用软件错误值;
步骤2:接口数据交互过程
PowerPC和Microblaze之间采用循环缓冲区的方式实现接口数据的异步收发;循环缓冲区有两个指针,分别是头指针和尾指针,当一端写数据时,只移动尾指针,另一端读数据时只移动头指针;当两个指针达到缓冲区大小时,再从头开始循环;
步骤2.1:接口数据发送步骤如下:
a)PowerPC端发送数据之前,先保存循环缓冲区中的头指针和尾指针;
b)PowerPC将发送的数据从尾指针开始写入到缓冲区中;
c)PowerPC完成数据写入后,修改尾指针;
d)Microblaze读取循环区的头指针和尾指针,并计算当前循环缓冲区中是否有数据,如果无数据,则下个周期继续读取,如果有数据,则进入步骤e;
e)Microblaze保存缓冲区中的头指针和尾指针,并从头指针开始读取数据;
f)Microblaze修改头指针;
f)Microblaze将双口中的数据写入到IP核的寄存器中,实现数据的发送;
步骤2.2:接口数据接收步骤如下:
a)Microblaze端接收到数据后,先保存循环缓冲区中的头指针和尾指针;
b)Microblaze将发送的数据从尾指针开始写入到缓冲区中;
c)Microblaze完成数据写入后,修改尾指针;
d)PowerPC读取循环区的头指针和尾指针,并计算当前循环缓冲区中是否有数据,如果无数据,则下个周期继续读取,如果有数据,则进入步骤e;
e)PowerPC保存缓冲区中的头指针和尾指针,并从头指针开始读取数据;
f)PowerPC修改头指针;
g)PowerPC将双口中的数据返回给应用软件,实现数据的接收;
步骤2.3:Microblaze健康监控过程
PowerPC通过标志位和计数值来判断Microblaze是否正常运行,PowerPC执行完初始化后,发起一个Microblaze健康监控任务,周期判断Microblaze是否健康,PowerPC与Microblaze的健康交互通过双口上的三个变量Monitorflag、monitorData1和monitorData2进行,其中,Monitorflag表示PowerPC是否可写,monitorData1表示PowerPC写计数值,对端读后再写到data2中,monitorData2为PowerPC读对端写的计数;
健康监控交互过程的具体步骤如下:
a)PowerPC给monitorData1赋值,且每个周期递增;
b)PowerPC置标志为1,此时Microblaze读取到此标志将monitorData1的值赋值给monitorData2;
c)Microblaze置标志为0,PowerPC判断标识是否为0,如果超过5次不为0,则认为Microblaze故障;
d)PowerPC判断monitorData2的值是否与写入的计数值相等,如果相等,则Microblaze正常,如果不相等,则判定为故障。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国航空工业集团公司洛阳电光设备研究所,未经中国航空工业集团公司洛阳电光设备研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911238023.5/1.html,转载请声明来源钻瓜专利网。