基于PowerPC与网口的FPGA与PC的通信方法技术

技术编号:17442021 阅读:27 留言:0更新日期:2018-03-10 14:43
本发明专利技术公开了一种基于PowerPC与网口的FPGA与PC之间的通信方法,该方法使数据在传输过程中无需PowerPC控制,而交由外部模块控制;当有数据写入RAM时,外部模块通过触发中断通知PowerPC处理数据;当PowerPC需要向功能模块传输数据时,通过GPIO口给功能模块上升沿,通知功能模块读取数据。本发明专利技术极大地减少了PowerPC在数据接收、存储和发送过程中的时间开销,在高实时性要求的场合能有效降低通信崩溃的可能性。

【技术实现步骤摘要】
基于PowerPC与网口的FPGA与PC的通信方法
本专利技术属于嵌入式
,特别是一种基于PowerPC与网口的FPGA与PC的通信方法。
技术介绍
随着FPGA技术的发展,FPGA以其并行、高速、可编程等特点在一些高实时性要求的场合发挥着越来越重要的作用。FPGA作为系统的一个模块需要和其他模块发生通信,常见的方式就是和PC之间的通信。基于FPGA本身的高速处理特性,对通信的速率一般也有较高要求。因此在FPGA中设计高效高速的通信方式是一个很重要的研究方向。一般来说,通信并不是简单的数据传输,还要经过一系列计算,将原始数据转化成接收端需要的数据形式。目前绝大对数FPGA使用硬件描述语言Verilog或VHDL开发,受硬件描述语言的特性和FPGA本身特性的限制,直接在FPGA中组合门阵列实现复杂计算是比较困难的。在一些FPGA中集成了嵌入式处理器,PowerPC就是其中一种,可用于进行比较复杂的计算。PowerPC虽然处理数据比较方便,但其内部指令是串行执行的,因此效率较低。PowerPC本身可以挂载各种通信接口,这些接口需要PowerPC来控制数据的接收和发送,这就使得本来效率就不高的PowerPC要兼顾数据的接收、存储、计算和发送,这在实时性要求较高的场合会导致PowerPC来不及处理数据,造成通信崩溃。因此减少数据的接收、存储和发送对PowerPC的时间占用是解决这个问题的关键。
技术实现思路
本专利技术的目的在于提供一种基于PowerPC与网口的FPGA与PC的通信方法。实现本专利技术目的的技术方案为:一种基于PowerPC与网口的FPGA与PC之间的通信方法,FPGA内设置有千兆网口-PowerPC连接模块,用于对PowerPC上挂载的RAM进行读写,通信方法包括:FPGA与PC之间没有数据传输时,RAM写使能关闭,地址端置为固定地址addr1,千兆网口-PowerPC连接模块持续读取该地址单元的数据;PowerPC向千兆网口发送数据时,PowerPC向addr1写入表示开始发送的数据,千兆网口-PowerPC连接模块读取到该数据后,将RAM地址端数值加4读取下一个单元的数据,通过千兆网口发送,地址再加4,读取数据发送,依次发送各地址单元数据,直到读取到表示结束发送的数据为止,然后千兆网口-PowerPC连接模块恢复无数据传输状态;千兆网口向PowerPC发送数据时,首先千兆网口-PowerPC连接模块判断到从千兆网口过来的帧头,将RAM地址置为addr2,打开写使能,将第一个数据写入RAM,地址加4,将接收到的第二个数据写入RAM,同理依次将接收到的数据写入RAM,直到接收到帧尾,然后千兆网口-PowerPC连接模块恢复无数据传输状态,并将相应GPIO口上的电平反转,触发中断,通知PowerPC处理数据。与现有技术相比,本专利技术的显著优点为:(1)本专利技术所有数据传输过程都通过直接读写PowerPC上挂载的双端口RAM实现,从而使PowerPC无需在此过程耗费时间,提高工作效率;(2)外部功能模块向PowerPC上挂载的双端口RAM写完数据后用中断的方式通知PowerPC处理数据,使PowerPC在数据写入后能够立即响应,保证通信的实时性;(3)本专利技术的千兆网口-PowerPC连接模块实现网口与PowerPC间的双向通信;(4)本专利技术对于除千兆网口-PowerPC连接模块之外的每个功能模块,都通过挂载在PowerPC上的一个双端口RAM和两个GPIO口来实现双向通信。附图说明图1是从PC发送数据到FPGA的总流程图。图2是从PC发送数据到FPGA时PowerPC的工作流程图。图3是从PC发送数据到FPGA时网口-PowerPC连接模块的工作流程图。图4是从FPGA发送数据到PC的总流程图。图5是从FPGA发送数据到PC时PowerPC的工作流程图。图6是从FPGA发送数据到PC时网口-PowerPC连接模块的工作流程图。具体实施方式本专利技术通过在PowerPC外使用硬件描述语言编写的门阵列程序直接对挂载于PowerPC的存储器进行读写的方式实现与PowerPC的通信,并将需要发送给PC的数据使用本专利技术中编写的连接PowerPC与千兆网口的模块控制千兆网口发送。使得在数据的读写过程中PowerPC可以做其他的事,从而减少了PowerPC的工作量。本专利技术的一种基于PowerPC与网口的FPGA与PC之间的通信方法,FPGA内设置有千兆网口-PowerPC连接模块,用于对PowerPC上挂载的RAM进行读写,通信方法包括:FPGA与PC之间没有数据传输时,RAM写使能关闭,地址端置为固定地址addr1,千兆网口-PowerPC连接模块持续读取该地址单元的数据;PowerPC向千兆网口发送数据时,PowerPC向addr1写入表示开始发送的数据,千兆网口-PowerPC连接模块读取到该数据后,将RAM地址端数值加4读取下一个单元的数据,通过千兆网口发送,地址再加4,读取数据发送,依次发送各地址单元数据,直到读取到表示结束发送的数据为止,然后千兆网口-PowerPC连接模块恢复无数据传输状态;千兆网口向PowerPC发送数据时,首先千兆网口-PowerPC连接模块判断到从千兆网口过来的帧头,将RAM地址置为addr2,打开写使能,将第一个数据写入RAM,地址加4,将接收到的第二个数据写入RAM,同理依次将接收到的数据写入RAM,直到接收到帧尾,然后千兆网口-PowerPC连接模块恢复无数据传输状态,并将相应GPIO口上的电平反转,触发中断,通知PowerPC处理数据。进一步的,所述PowerPC向千兆网口发送数据前,PowerPC对RAM的数据写入顺序如下:首先将要发送的数据从addr1+4地址单元开始顺序写入;在下一个单元写入表示结束发送的数据;然后在addr1地址单元中写入表示开始发送的数据,此时千兆网口-PowerPC连接模块读到该数据,开始依次读取后续单元数据并通过千兆网口发送;PowerPC写入表示开始发送的数据后立即往addr1单元写入0。进一步的,PowerPC与FPGA内除千兆网口-PowerPC连接模块之外的其他功能模块的通信过程如下:(a)功能模块向PowerPC发送数据,功能模块将数据写入相应RAM的相应地址单元后,通过反转相应使用中断模式的GPIO口上的电平触发中断,使PowerPC进入相应中断处理函数处理这些数据;(b)PowerPC向功能模块发送数据,PowerPC将数据写入相应RAM相应地址单元,然后将相应使用输出模式的GPIO上的电平由低拉高,给功能模块一个上升沿,通知读取数据,然后将GPIO口上的电平拉低以备下次使用。下面结合具体实施例对本专利技术作进一步说明。实施例假定在FPGA中编写了一个信号处理模块,这个模块要通过PowerPC和千兆网口与PC进行通信。则在PowerPC上挂载两块双端口RAM,记为RAM1和RAM2,使用32位数据线;三个GPIO口,记为GPIO1、GPIO2和GPIO3。RAM1负责与信号处理模块通信,RAM2负责与千兆网口-PowerPC连接模块通信。GPIO1设为中断模式,负责接收千兆网口-PowerPC连接模块的数据写入完毕信号;GPIO2本文档来自技高网...
基于PowerPC与网口的FPGA与PC的通信方法

【技术保护点】
一种基于PowerPC与网口的FPGA与PC之间的通信方法,其特征在于,FPGA内设置有千兆网口‑PowerPC连接模块,用于对PowerPC上挂载的RAM进行读写,通信方法包括:FPGA与PC之间没有数据传输时,RAM写使能关闭,地址端置为固定地址addr1,千兆网口‑PowerPC连接模块持续读取该地址单元的数据;PowerPC向千兆网口发送数据时,PowerPC向addr1写入表示开始发送的数据,千兆网口‑PowerPC连接模块读取到该数据后,将RAM地址端数值加4读取下一个单元的数据,通过千兆网口发送,地址再加4,读取数据发送,依次发送各地址单元数据,直到读取到表示结束发送的数据为止,然后千兆网口‑PowerPC连接模块恢复无数据传输状态;千兆网口向PowerPC发送数据时,首先千兆网口‑PowerPC连接模块判断到从千兆网口过来的帧头,将RAM地址置为addr2,打开写使能,将第一个数据写入RAM,地址加4,将接收到的第二个数据写入RAM,同理依次将接收到的数据写入RAM,直到接收到帧尾,然后千兆网口‑PowerPC连接模块恢复无数据传输状态,并将相应GPIO口上的电平反转,触发中断,通知PowerPC处理数据。...

【技术特征摘要】
1.一种基于PowerPC与网口的FPGA与PC之间的通信方法,其特征在于,FPGA内设置有千兆网口-PowerPC连接模块,用于对PowerPC上挂载的RAM进行读写,通信方法包括:FPGA与PC之间没有数据传输时,RAM写使能关闭,地址端置为固定地址addr1,千兆网口-PowerPC连接模块持续读取该地址单元的数据;PowerPC向千兆网口发送数据时,PowerPC向addr1写入表示开始发送的数据,千兆网口-PowerPC连接模块读取到该数据后,将RAM地址端数值加4读取下一个单元的数据,通过千兆网口发送,地址再加4,读取数据发送,依次发送各地址单元数据,直到读取到表示结束发送的数据为止,然后千兆网口-PowerPC连接模块恢复无数据传输状态;千兆网口向PowerPC发送数据时,首先千兆网口-PowerPC连接模块判断到从千兆网口过来的帧头,将RAM地址置为addr2,打开写使能,将第一个数据写入RAM,地址加4,将接收到的第二个数据写入RAM,同理依次将接收到的数据写入RAM,直到接收到帧尾,然后千兆网口-PowerPC连接模块恢复无数据传输状态,并将相应GPIO口上的电平反转,触发中断,通知PowerPC处理数据。2.根据权利要...

【专利技术属性】
技术研发人员:邹佳伟顾雨婷马超杨建超史小斌顾红苏卫民陆锦辉曹鑫泉
申请(专利权)人:南京理工大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1