CN107783926B - 基于PowerPC与网口的FPGA与PC的通信方法 - Google Patents
基于PowerPC与网口的FPGA与PC的通信方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3808—Network 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的通信方法。
背景技术
随着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口上的电平拉低以备下次使用。
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)
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)
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处理器的性能监视方法 |
-
2016
- 2016-08-28 CN CN201610755309.0A patent/CN107783926B/zh active Active
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 |