CN107783926B - 基于PowerPC与网口的FPGA与PC的通信方法 - Google Patents

基于PowerPC与网口的FPGA与PC的通信方法 Download PDF

Info

Publication number
CN107783926B
CN107783926B CN201610755309.0A CN201610755309A CN107783926B CN 107783926 B CN107783926 B CN 107783926B CN 201610755309 A CN201610755309 A CN 201610755309A CN 107783926 B CN107783926 B CN 107783926B
Authority
CN
China
Prior art keywords
data
powerpc
address
ram
gigabit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610755309.0A
Other languages
English (en)
Other versions
CN107783926A (zh
Inventor
邹佳伟
顾雨婷
马超
杨建超
史小斌
顾红
苏卫民
陆锦辉
曹鑫泉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Science and Technology
Original Assignee
Nanjing University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Science and Technology filed Critical Nanjing University of Science and Technology
Priority to CN201610755309.0A priority Critical patent/CN107783926B/zh
Publication of CN107783926A publication Critical patent/CN107783926A/zh
Application granted granted Critical
Publication of CN107783926B publication Critical patent/CN107783926B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3808Network interface controller

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Power Sources (AREA)

Abstract

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

Description

基于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设为中断模式,负责接收信号处理模块的数据写入完毕信号;GPIO3设为输出模式,负责通知信号处理模块读取数据。
协议:PC向FPGA发送的数据帧头为0xaa 0xab,帧尾为0xfa 0xfb;FPGA向PC发送的数据帧头为0xac 0xad,帧尾为0xfc 0xfd。网口-PowerPC连接模块读取RAM1中数据的起始地址是addr1,将数据写入RAM1的起始地址为addr2;信号处理模块读取RAM2中数据的起始地址为addr3,信号处理模块将数据写入RAM2的起始地址为addr4。
则FPGA与PC间的通信过程如下:
1.PC向FPGA发送数据控制信号处理模块
第一步:一开始通信处于空闲状态,RAM1地址端为addr1,写使能关闭。网口接收数据端数据不断流过一个两字节长度的数据窗。
第二步:数据窗数据为0xaa 0xab,接收到帧头。
第三步:RAM1地址端置为addr2,打开写使能。
第四步:第一个字节写入RAM1,地址端加4;第二个字节写入RAM1,地址端加4……如此重复。
第五步:数据窗数据为0xfa 0xfb,接收到帧尾,关闭RAM1写使能,地址端置为addr1,数据写入结束。反转GPIO1上的电平,触发PowerPC中断;网口-PowerPC连接模块恢复空闲状态。
第六步:PowerPC进入中断处理程序,PowerPC利用接收到的数据计算出信号处理模块需要的4个参数,将参数写入以addr3为起始地址的连续单元中。将GPIO3上的电平由低拉高,通知信号处理模块读取数据,再将GPIO3上的电平拉低准备下次使用。
第七步:信号处理模块读取参数,根据参数改变运行状态。
由此实现PC对信号处理模块的控制。上述过程的总流程图如图1所示,PowerPC的工作流程图如图2所示,千兆网口-PowerPC连接模块的工作流程如图3所示。
2.FPGA向PC发送数据控制信号处理模块
第一步:一开始通信处于空闲状态。RAM1地址端为addr1,写使能关闭,RAM2写使能关闭。
第二步:信号处理模块将数据写入RAM2,从地址addr4依次写入。写入完毕后将GPIO2上的电平反转,触发中断。
第三步:PowerPC进入中断处理程序,利用写入到RAM2中的数据计算出要发往PC的数据。并依次存入RAM1中从addr1+4开始的地址单元,写完后在接下来一个单元写入0xfc0xfd。
第四步:往RAM1addr1地址单元写入0xac 0xad,然后马上置零。
第五步:千兆网口-PowerPC连接模块读取到开始发送标志0xac 0xad,地址加4,读取数据,控制千兆网口IP核发送数据,地址加4,读取数据,发送数据……如此重复,直到读取到的数据为0xfc 0xfd,即结束发送标志。控制网口停止发送,RAM1地址端置为addr1。
由此实现了信号处理模块向PC的数据发送。上述过程的总流程图如图4所示,PowerPC的工作流程图如图5所示,千兆网口-PowerPC连接模块的工作流程如图6所示。
从上述过程中可知,PowerPC做的主要工作是参数的计算,数据的接收和发送是通过外部模块读写挂载在PowerPC上的双端口RAM实现的,不占用PowerPC的运行时间。在通信量较大且实时性要求较高的场合中,这种通信方法能为PowerPC节省大量时间处理其他工作。

Claims (3)

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.根据权利要求1所述的基于PowerPC与网口的FPGA与PC之间的通信方法,其特征在于,所述PowerPC向千兆网口发送数据前,PowerPC对RAM的数据写入顺序如下:
首先将要发送的数据从addr1+4地址单元开始顺序写入;在下一个地址单元写入表示结束发送的数据;然后在addr1地址单元中写入表示开始发送的数据,此时千兆网口-PowerPC连接模块读到该数据,开始依次读取后续地址单元数据并通过千兆网口发送;PowerPC写入表示开始发送的数据后立即往addr1地址单元写入0。
3.根据权利要求1所述的基于PowerPC与网口的FPGA与PC之间的通信方法,其特征在于,PowerPC与FPGA内除千兆网口-PowerPC连接模块之外的其他功能模块的通信过程如下:
(a)功能模块向PowerPC发送数据,功能模块将数据写入相应RAM的相应地址单元后,通过反转相应使用中断模式的GPIO口上的电平触发中断,使PowerPC进入相应中断处理函数处理这些数据;
(b)PowerPC向功能模块发送数据,PowerPC将数据写入相应RAM相应地址单元,然后将相应使用输出模式的GPIO上的电平由低拉高,给功能模块一个上升沿,通知读取数据,然后将GPIO口上的电平拉低以备下次使用。
CN201610755309.0A 2016-08-28 2016-08-28 基于PowerPC与网口的FPGA与PC的通信方法 Active CN107783926B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610755309.0A CN107783926B (zh) 2016-08-28 2016-08-28 基于PowerPC与网口的FPGA与PC的通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610755309.0A CN107783926B (zh) 2016-08-28 2016-08-28 基于PowerPC与网口的FPGA与PC的通信方法

Publications (2)

Publication Number Publication Date
CN107783926A CN107783926A (zh) 2018-03-09
CN107783926B true CN107783926B (zh) 2020-06-30

Family

ID=61441430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610755309.0A Active CN107783926B (zh) 2016-08-28 2016-08-28 基于PowerPC与网口的FPGA与PC的通信方法

Country Status (1)

Country Link
CN (1) CN107783926B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108763118A (zh) * 2018-05-19 2018-11-06 济南浪潮高新科技投资发展有限公司 一种powerpc和fpga的通信***及通信方法
CN108845537A (zh) * 2018-06-08 2018-11-20 山东超越数控电子股份有限公司 基于soc fpga的plc***中cpu与数字逻辑模块的通信方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9807124B2 (en) * 2014-09-08 2017-10-31 Level 3 Communications, Llc Lawful intercept provisioning system and method for a network domain
CN204303042U (zh) * 2014-12-30 2015-04-29 西安奇维科技股份有限公司 一种基于PowerPC和FPGA构架的高速数据记录仪
CN105426291B (zh) * 2015-12-08 2018-05-25 中国航空工业集团公司西安航空计算技术研究所 一种基于PowerPC处理器的性能监视方法

Also Published As

Publication number Publication date
CN107783926A (zh) 2018-03-09

Similar Documents

Publication Publication Date Title
WO2020258529A1 (zh) 一种基于bnrp的可配置并行通用卷积神经网络加速器
CN110417780B (zh) 定制化数据传输协议的多通道高速数据接口转化模块
CN105573239A (zh) 一种高速背板总线通讯控制装置及方法
CN107783926B (zh) 基于PowerPC与网口的FPGA与PC的通信方法
CN110837486A (zh) 一种基于FPGA的FlexRay-CPCIe通信模块
CN201639589U (zh) 基于arm的嵌入式双冗余网卡
CN105786741B (zh) 一种soc高速低功耗总线及转换方法
CN113518044B (zh) Epa设备
CN107436851B (zh) 串行外设接口四线隔离***及其控制方法
CN104914436A (zh) 基于魂芯一号的通用天气雷达信号处理器及处理三脉冲信号的方法
CN109446126B (zh) 基于emif总线的dsp与fpga高速通信***及方法
CN213906954U (zh) 一种边缘计算物联网网关
CN203617974U (zh) 一种基于fpga的可配置系数的滤波器及电子设备
CN205263807U (zh) 一种PCIe接口的双路FC电路结构
CN202282789U (zh) 一种伺服驱动器的soe通信转换卡
CN102013984A (zh) 二维网状片上网络***
CN206258865U (zh) 一种可重构的信号处理器asic架构
CN110096456A (zh) 一种高速率大容量缓存方法与装置
CN202334008U (zh) 多网口高速数据传输架构
CN110995604B (zh) 一种扩展SpaceWire端口的SpaceWire路由器级联结构
CN212572621U (zh) 一种云谷数据端
CN205003837U (zh) 一种基于云计算的物联网运营***
CN211349331U (zh) 一种数据存储扩展接口***
CN109902036B (zh) 基于emif接口的双速率1553b总线设备通信方法
CN207835492U (zh) 一种双缓存载波解调***

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant