CN108920193A - Fpga和cpu间sdio通信接口实现方法、及装置 - Google Patents
Fpga和cpu间sdio通信接口实现方法、及装置 Download PDFInfo
- Publication number
- CN108920193A CN108920193A CN201810469549.3A CN201810469549A CN108920193A CN 108920193 A CN108920193 A CN 108920193A CN 201810469549 A CN201810469549 A CN 201810469549A CN 108920193 A CN108920193 A CN 108920193A
- Authority
- CN
- China
- Prior art keywords
- sdio
- fpga
- cpu
- equipment
- data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Detection And Correction Of Errors (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种FPGA和CPU间SDIO通信接口实现方法、及装置,包括:FPGA作为从设备,不具有接口协议IP核,所述FPGA自定义SDIO通信接口,采用SDIO的通信协议。CPU作为主设备,CPU获取混杂设备驱动流程,用于与SDIO设备进行匹配,完成驱动的注册与加载;CPU在驱动中会注册一个混杂设备,以供应用程序访问。本通信接口适用于大多数设计中的CPU和FPGA的通信接口,能够满足非高速接口的通信需求。
Description
技术领域
本发明涉及FPGA和CPU数据通信接口的应用技术领域,尤其涉及一种FPGA和CPU间SDIO(安全数字输入输出)通信接口实现方法、及装置。
背景技术
FPGA已经被越来越广泛的应用到了各种电子产品中,不同生产商、不同型号的FPGA 价格相差较多,并且FPGA的IP核支持的接口也不相同。
同时CPU对通信协议的支持也存在着限制。FPGA和CPU的通信接口有的速率太低不能满足应用需求,有的协议复杂FPGA端难于实现。
因此,在实际的使用过程中,怎样保证高通信速率、低误码率,怎样提高代码的可移植性、通信的可靠性成为了当前需要解决的问题。
参见图1,传统的CPU和FPGA的通信如下:
1、低速易实现通信协议
此种通信协议主要包括UART、IIC、SPI等,这些通信协议对于CPU或者FPGA来说实现起来都比较简单,但是传输速率较低,在通信速率较高的场合不能够使用。
2、高速数据通信协议
高速的通信协议比较常用的是MAC,此种通信协议对于CPU来说实现起来比较容易,但是对于FPGA来说,厂家提供MAC核的FPGA实现起来比较容易,对于部分国产FPGA 来说不带MAC核。实现起来比较困难,工作量大。针对一些自定义的通信接口,FPGA 侧实现起来可能较为简单,但是CPU侧有Linux操作系统,设计到驱动程序的编写和移植工作。工作量大,对人员的要求高,实现起来比较困难,通信的可靠性也不能够得到保障。
发明内容
本发明提供了一种FPGA和CPU间SDIO通信接口实现方法、及装置,本发明实现了CPU作为主设备,FPGA作为从设备的自定义SDIO通信接口,满足了非高速接口的通信需求,详见下文描述:
一种FPGA和CPU间SDIO通信接口实现方法,所述方法包括:所述FPGA对接收到的命令包进行CRC7校验,校验通过才能够对命令进行响应;
所述FPGA发送响应,并在响应数据包的结尾加上CRC7校验结果;
所述FPGA内部存储一个SDIO的寄存器表,用于SDIO通信的初始化;
所述FPGA对接收到的数据进行CRC16校验,并把校验结果以中断的形式进行传输;
所述FPGA传输数据,并且在数据的末尾加上CRC16校验结果。
一种FPGA和CPU间SDIO通信接口实现装置,所述装置包括:作为从设备的FPGA,所述FPGA包括:
第一校验模块,用于对接收到的命令包进行CRC7校验;
发送模块,用于发送响应,并在响应数据包的结尾加上CRC7校验结果;
存储模块,用于存储一个SDIO的寄存器表,用于SDIO通信的初始化;
第二校验模块,用于对接收到的数据进行CRC16校验,并把校验结果以中断的形式进行传输;
数据发送模块,用于发送数据到CPU,并且在数据的末尾加上CRC16校验结果。
另一实施例,一种FPGA和CPU间SDIO通信接口实现方法,所述CPU作为主设备,所述方法包括:
所诉CPU完成平台设备、驱动的加载;
所述CPU完成SDIO设备的探测,完成SDIO初始化,添加SDIO设备节点;
所述CPU获取总线设备驱动流程,完成SDIO总线的注册和探测;
所述CPU注册SDIO设备驱动流程,用于与SDIO设备进行匹配,完成驱动的注册与加载;
所述CPU注册一个混杂设备,以供应用程序访问。
另一实施例,一种FPGA和CPU间SDIO通信接口实现装置,所述装置包括:作为主设备的CPU,所述CPU包括:
平台设备注册模块,用于对SDIO主控设备进行注册;
平台驱动注册模块,用于匹配SDIO主控设备,实现系统内核对SDIO主控设备的访问;
SDIO设备扫描模块,用于对接入SDIO主控设备的SDIO从设备进行扫描;
SDIO设备初始化模块,用于对探测到的SDIO从设备进行初始化;
SDIO设备加载模块,用于对已初始化的SDIO从设备进行加载,将其添加到内核的设备驱动框架中;
混杂设备注册模块,用于获取混杂设备驱动流程,且用于与SDIO设备进行匹配,完成驱动的注册与加载。
另一实施例,一种FPGA和CPU间SDIO通信接口实现方法,所述方法包括:
FPGA对接收到的命令包进行CRC7校验,校验通过才能够对命令进行响应;
FPGA通过SDIO通信接口把响应发送给CPU,在响应数据包的结尾需要加上此包的CRC7校验结果;
在FPGA内部存储一个SDIO的寄存器表,完成SDIO通信的初始化;
FPGA对通过SDIO通信接口接收到的数据需要进行CRC16校验,并把校验结果以中断的形式传送给CPU;
在CPU读取数据的时候,FPGA通过SDIO通信接口将数据传送给CPU,并且在数据的末尾加上CRC校验结果。
另一实施例,一种FPGA和CPU间SDIO通信接口实现装置,所述装置包括:作为主设备的CPU,以及作为从设备的FPGA;
所述FPGA包括:
第一校验模块,用于对接收到的命令包进行CRC7校验;
发送模块,用于发送响应,并在响应数据包的结尾加上CRC7校验结果;
存储模块,用于存储一个SDIO的寄存器表,用于SDIO通信的初始化;
第二校验模块,用于对接收到的数据进行CRC16校验,并把校验结果以中断的形式进行传输;
数据发送模块,用于发送数据到CPU,并且在数据的末尾加上CRC16校验结果;
所述CPU包括:
平台设备注册模块,用于对SDIO主控设备进行注册;
平台驱动注册模块,用于匹配SDIO主控设备,实现系统内核对SDIO主控设备的访问;
SDIO设备扫描模块,用于对接入SDIO主控设备的SDIO从设备进行扫描;
SDIO设备初始化模块,用于对探测到的SDIO从设备进行初始化;
SDIO设备加载模块,用于对已初始化的SDIO从设备进行加载,将其添加到内核的设备驱动框架中;
混杂设备注册模块,用于获取混杂设备驱动流程,且用于与SDIO设备进行匹配,完成驱动的注册与加载。
本发明提供的技术方案的有益效果是:
1、本发明应用于FPGA和CPU之间的数据通信接口,FPGA程序中使用的是FPGA 的一些基本单元,代码简单,可移植性强,CPU端的代码修改也比较少,容易实现;
2、通过实验验证SDIO通信的速率和可靠性,能够满足最初的代码开发需求;
3、本通信接口适用于一些大多数设计中的CPU和FPGA的通信接口,能够满足非高速接口的通信需求;
4、从成本和应用环境来说,本发明为器件的选型提供了更大的选择空间。
附图说明
图1为传统的CPU和FPGA的通信示意图;
图2为种FPGA和CPU间SDIO通信接口实现方法的示意图;
图3为FPGA的原理连接示意图;
图4为一种FPGA和CPU间SDIO通信接口实现方法的流程图;
图5为一种FPGA和CPU间SDIO通信接口实现装置的结构示意图;
图6为一种FPGA和CPU间SDIO通信接口实现方法的另一流程图;
图7为一种FPGA和CPU间SDIO通信接口实现装置的另一结构示意图;
图8为一种FPGA和CPU间SDIO通信接口实现方法的另一流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。
基于对背景技术中存在问题的考虑,本发明实施例实现了自定义的SDIO通信接口, SDIO通信接口大多应用于WIFI、bluetooth、相机等设备上,其通信速率能够满足中高速通信需求,通信协议简单,并且带有CRC校验、错误重传等功能。本方案实现了基于FPGA(本发明实施例选用的FPGA只具有FPGA的一些基本单元,没有接口协议IP核)和CPU 之间的数据通信。
本发明实施例提供了一种CPU作为主设备,FPGA作为从设备的自定义SDIO通信接口,本设计中的FPGA采用的是高云的GW1N-18,CPU采用的是君正的X1000。本方案实现的原理框图如图2所示。
具体实现时,还可以采用其他型号的器件,本发明实施例仅是以上述器件型号为例进行说明,本发明实施例对此不做限制。
在本设计中CPU作为HOST(主)设备,FPGA作为DEVICE(从)设备进行数据的通信。下面对本实现方法进行详细说明。
一、SDIO通信协议
SDIO采用HOST-DEVICE模式,所有通信都由HOST端(CPU)发命令,DEVICE 设备(FPGA)只要解析HOST命令就可与HOST进行通信。SDIO总线的内部结构定义如下:
1)CLK(时钟)信号线:HOST给DEVICE的时钟信号;
2)CMD(命令提示符)信号线:采用双向的信号线,用于传送命令和响应;
3)DAT0-DAT3(数据)信号线:四条双向的数据线,用于传送数据。
在SDIO总线定义中,DAT1信号线复用为中断线。在SDIO的1bit模式下DAT0用来传输数据(此部分的数据均为上述需要传送的数据,即为命令和响应,下述均相同,不做赘述),DAT1用作中断线。在SDIO的4bit模式下DAT0-DAT3用来传输数据,其中DAT1 复用作中断线(即,DAT1信号线即用于传输数据,也用作中断线)。本次实现的方案中采用的是4bit模式。
SDIO的每次操作都是由HOST在CMD信号线上发起一个CMD,对于有的CMD, DEVICE需要返回Response(响应)信号,有的则不需要。具体实现时,根据实际应用中的需要进行设定,本发明实施例对此不做限制。
对于读命令,首先HOST会向DEVICE发送命令,紧接着DEVICE会返回一个握手信号,此时,当HOST收到回应的握手信号后,会将数据放在4位的数据线(即DAT0-DAT3 信号线)上,在传送数据的同时会跟随着CRC(循环冗余校验)校验码。当整个读的数据传送完毕后,HOST会再次发送一个命令,通知DEVICE操作完毕,DEVICE同时会返回一个Response。
对于写命令,首先HOST会向DEVICE发送命令,紧接着DEVICE会返回一个握手信号,此时,当HOST收到响应的握手信号后,会将数据放在4位的数据线上,在传送数据的同时会跟随着CRC校验码。当整个写的数据传送完毕后,HOST会再次发送一个命令,通知DEVICE操作完毕,DEVICE同时会返回一个Response。
在组合卡(由存储器与SDIO组成)的时钟最高速度同SD卡的最高速度一样,要高于25MHz。
二、分析协议X1000的实现部分
由于在君正X1000中不存在可以直接使用的SDIO应用接口程序,需要对内核程序进行相应的修改。
在X1000一端,安装了Linux操作系统,Linux操作系统上电后,首先注册SDIO主控的平台设备(platform_device)和驱动程序(platform_driver),平台设备和驱动程序成功注册后,通过mmc_rescan函数进行SDIO设备的探测。
当Linux操作系统成功探测到SDIO从设备后,会将其注册到Linux操作系统的设备模型中,但此时在Linux操作系统中只是添加了SDIO设备节点,要与其进行通信,还需要加载该SDIO设备(即CPU将外设接口看做是一个设备)对应的驱动程序。
本方案中需要编写一个混杂设备驱动程序与SDIO从设备进行匹配。混杂设备驱动程序中,需要匹配对应的SDIO设备功能号,完成驱动的注册与加载。同时在该驱动中会注册一个混杂设备,以供应用程序访问。至此,应用程序就可与SDIO设备进行通信了。SDIO 设备的基本注册流程如下:
1、Platform_device_register(),此函数完成平台设备的注册
2、Platform_driver_probe(),完成平台驱动的探测
3、Mmc_schedual_delayed_work(),对延迟工作函数进行调度
4、Mmc_rescan(),扫面mmc设备
5、Mmc_attach(),访问mmc设备
6、Mmc_add__card(),添加mmc设备
7、Mmc_add_func(),添加mmc相关函数
8、sdio_driver_register(),SDIO设备的驱动注册
9、misc_register(),misc杂散设备注册。
三、分析协议FPGA的实现部分
在本设计中采用的是高云的FPGA,高云FPGA不具有支持SDIO协议的IP核,所以需要编写代码来完成通信协议的实现部分。在本设计中FPGA根据收到不同的CMD命令给出不同的响应。具体的通信协议可以参考SDIO的通信协议(两个通信协议相同,在此不做赘述)。在通信过程中,FPGA涉及部分如下:
1)对于FPGA接收到的命令包进行CRC7校验,校验通过才能够对命令进行响应。
2)部分命令需要把响应发送给CPU,在响应数据包的结尾需要加上此包的CRC7校验结果。
3)在FPGA内部存储一个SDIO的寄存器表,完成SDIO通信的初始化。
4)对于FPGA接收到的数据需要进行CRC16校验,并把校验结果以中断的形式传送给CPU。
5)在CPU读取数据的时候,FPGA将数据传送给CPU,并且在数据的末尾加上CRC 校验结果。
其中,上述CRC7和CRC16均是本领域的专业术语,本发明实施例对此不做赘述。
四、自定义SDIO接口
根据上面的问题,本发明实施例引进了SDIO通信协议,FPGA的原理连接图如图3所示:
SDIO通信协议采用了六根GPIO(通用输入/输出)线:CMD、CLK、以及DAT[3:0]。
其中,CMD和DATA均为输入输出双向端口,节省了端口资源。
在实际开发的过程中,FPGA代码简单,资源占用量少,使用的FPGA的资本资源LUT(查找表)、RAM(随机存取存储器)、FIFO(先入先出队列),代码的移植性强。
CPU侧在原有的程序上进行修改和添加,难度较小。在通信的过程中采用4bit模式,时钟采用25MHz,则传输速率理论值为100Mbps。
在实际使用的过程中,可以通过提高时钟速率来提高通信的速率。并且通信过程中有 CRC校验,可以实现错误重传,保证了传输的可靠性。
最后对完成的通信接口进行测试,通信速率可以达到60Mbps,对收发数据的正确性进行验证,未发现数据错误。能够满足最初对通信接口的设计要求。
实施例1
一种FPGA和CPU间SDIO通信接口实现方法,参见图4,该方法包括以下步骤:
101:FPGA对接收到的命令包进行CRC7校验,校验通过才能够对命令进行响应;
102:FPGA发送响应,并在响应数据包的结尾加上CRC7校验结果;
103:FPGA内部存储一个SDIO的寄存器表,用于SDIO通信的初始化;
104:FPGA对接收到的数据进行CRC16校验,并把校验结果以中断的形式进行传输;
105:FPGA传输数据,并且在数据的末尾加上CRC16校验结果。
其中,FPGA作为从设备,不具有接口协议IP核,所述FPGA自定义SDIO通信接口,采用SDIO的通信协议。
进一步地,FPGA采用高云的GW1N-18型号的器件。
综上所述,本发明实施例提供的FPGA代码简单,资源占用量少,使用的FPGA的资本资源LUT(查找表)、RAM(随机存取存储器)、FIFO(先入先出队列),代码的移植性强。
实施例2
一种FPGA和CPU间SDIO通信接口实现装置,参见图5,该装置包括:作为从设备的FPGA,FPGA包括:
第一校验模块1,用于对接收到的命令包进行CRC7校验;
发送模块2,用于发送响应,并在响应数据包的结尾加上CRC7校验结果;
存储模块3,用于存储一个SDIO的寄存器表,用于SDIO通信的初始化;
第二校验模块4,用于对接收到的数据进行CRC16校验,并把校验结果以中断的形式进行传输;
数据发送模块5,用于发送数据到CPU,并且在数据的末尾加上CRC16校验结果。
综上所述,本发明实施例提供的FPGA自定义SDIO通信接口,采用SDIO的通信协议,通过SDIO接口与CPU的通信,满足了通信需求。
实施例3
一种FPGA和CPU间SDIO通信接口实现方法,参见图6,CPU作为主设备,该方法包括以下步骤:
201:CPU完成平台设备、驱动的加载;完成SDIO设备的探测,完成SDIO初始化,添加SDIO设备节点;CPU获取总线设备驱动流程,完成SDIO总线的注册和探测;
202:CPU注册SDIO设备驱动流程,用于与SDIO设备进行匹配,完成驱动的注册与加载;CPU注册一个混杂设备,以供应用程序访问。
进一步地,驱动的注册包括:
1)用于实现平台设备注册的函数、用于实现平台驱动注册的函数;
2)用于实现探测SDIO设备的函数;用于实现SDIO节点的添加;
3)用于实现获取总线设备驱动流程,完成SDIO总线的注册和探测;
4)用于实现混杂设备的注册函数,实现上层应用对SDIO设备的访问。
综上所述,本发明实施例实现了CPU通过SDIO接口与FPGA的通信,满足了通信需求。
实施例4
一种FPGA和CPU间SDIO通信接口实现装置,参见图7,该装置包括:作为主设备的CPU,CPU包括:
获取模块6,用于完成平台设备、驱动的加载;完成SDIO设备的探测,完成SDIO初始化,添加SDIO设备节点;获取总线设备驱动流程,完成SDIO总线的注册和探测;
注册模块7,用于注册SDIO设备驱动流程,用于与SDIO设备进行匹配,完成驱动的注册与加载;CPU注册一个混杂设备,以供应用程序访问。
综上所述,本发明实施例实现了CPU通过SDIO接口与FPGA的通信,满足了通信需求。
实施例5
一种FPGA和CPU间SDIO通信接口实现方法,参见图8,该方法包括以下步骤:
301:FPGA对接收到的命令包进行CRC7校验,校验通过才能够对命令进行响应;
302:FPGA通过SDIO通信接口把响应发送给CPU,在响应数据包的结尾需要加上此包的CRC7校验结果;
303:在FPGA内部存储一个SDIO的寄存器表,完成SDIO通信的初始化;
304:FPGA对通过SDIO通信接口接收到的数据需要进行CRC16校验,并把校验结果以中断的形式传送给CPU;
305:在CPU发送命令的时候,根据相应的结果来判断相应是否需要重新发送;
306:在CPU读取数据的时候,FPGA通过SDIO通信接口将数据传送给CPU,并且在数据的末尾加上CRC校验结果,CPU根据校验结果来判断数据是否需要重新读取;
307:在CPU发送数据的时候,FPGA通道SDIO通信接口将FPGA侧CRC校验结果发送给CPU,CPU根据校验结果来判断数据是否需要重传。
综上所述,本发明实施例通过上述步骤301-307实现了CPU通过SDIO接口与FPGA的通信,满足了通信需求;且使用了FPGA的一些基本单元,代码简单,可移植性强,CPU 端的代码修改也比较少,容易实现。
实施例6
一种FPGA和CPU间SDIO通信接口实现装置,参见图1,该装置包括:作为主设备的CPU,以及作为从设备的FPGA。
其中,CPU和FPGA的具体结构参见上述实施例2和4,本发明实施例对此不做赘述。
本发明实施例对各器件的型号除做特殊说明的以外,其他器件的型号不做限制,只要能完成上述功能的器件均可。
本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种FPGA和CPU间SDIO通信接口实现方法,其特征在于,所述方法包括:所述FPGA对接收到的命令包进行CRC7校验,校验通过才能够对命令进行响应;
所述FPGA发送响应,并在响应数据包的结尾加上CRC7校验结果;
所述FPGA内部存储一个SDIO的寄存器表,用于SDIO通信的初始化;
所述FPGA对接收到的数据进行CRC16校验,并把校验结果以中断的形式进行传输;
所述FPGA发送数据,并且在数据的末尾加上CRC16校验结果。
2.根据权利要求1所述的一种FPGA和CPU间SDIO通信接口实现方法,其特征在于,
所述FPGA作为从设备,不具有接口协议IP核,所述FPGA自定义SDIO通信接口,采用SDIO的通信协议。
3.根据权利要求1所述的一种FPGA和CPU间SDIO通信接口实现方法,其特征在于,
所述FPGA采用高云的GW1N-18型号的器件。
4.一种FPGA和CPU间SDIO通信接口实现装置,其特征在于,所述装置包括:作为从设备的FPGA,所述FPGA包括:
第一校验模块,用于对接收到的命令包进行CRC7校验;
发送模块,用于发送响应,并在响应数据包的结尾加上CRC7校验结果;
存储模块,用于存储一个SDIO的寄存器表,用于SDIO通信的初始化;
第二校验模块,用于对接收到的数据进行CRC16校验,并把校验结果以中断的形式进行传输;
数据发送模块,用于发送数据到CPU,并且在数据的末尾加上CRC16校验结果。
5.一种FPGA和CPU间SDIO通信接口实现方法,其特征在于,所述CPU作为主设备,所述方法包括:
所诉CPU完成平台设备、驱动的加载;
所述CPU完成SDIO设备的探测,完成SDIO初始化,添加SDIO设备节点;
所述CPU获取总线设备驱动流程,完成SDIO总线的注册和探测;
所述CPU注册SDIO设备驱动流程,用于与SDIO设备进行匹配,完成驱动的注册与加载;
所述CPU注册一个混杂设备,以供应用程序访问。
6.根据权利要求5所述的一种FPGA和CPU间SDIO通信接口实现方法,其特征在于,所述驱动的注册包括:
1)用于实现平台设备、平台驱动注册的函数;
2)用于实现探测SDIO设备的函数;用于实现SDIO节点的添加;
3)用于实现获取总线设备驱动流程,完成SDIO总线的注册和探测;
4)用于实现混杂设备的注册函数,实现上层应用对SDIO设备的访问。
7.根据权利要求5所述的一种FPGA和CPU间SDIO通信接口实现方法,其特征在于,所述CPU采用君正X1000型号的器件。
8.一种FPGA和CPU间SDIO通信接口实现装置,其特征在于,所述装置包括:作为主设备的CPU,所述CPU包括:
平台设备注册模块,用于对SDIO主控设备进行注册;
平台驱动注册模块,用于匹配SDIO主控设备,实现系统内核对SDIO主控设备的访问;
SDIO设备扫描模块,用于对接入SDIO主控设备的SDIO从设备进行扫描;
SDIO设备初始化模块,用于对探测到的SDIO从设备进行初始化;
SDIO设备加载模块,用于对已初始化的SDIO从设备进行加载,将其添加到内核的设备驱动框架中;
混杂设备注册模块,用于获取混杂设备驱动流程,且用于与SDIO设备进行匹配,完成驱动的注册与加载。
9.一种FPGA和CPU间SDIO通信接口实现方法,其特征在于,所述方法包括:
FPGA对接收到的命令包进行CRC7校验,校验通过才能够对命令进行响应;
FPGA通过SDIO通信接口把响应发送给CPU,在响应数据包的结尾需要加上此包的CRC7校验结果;
在FPGA内部存储一个SDIO的寄存器表,完成SDIO通信的初始化;
FPGA对通过SDIO通信接口接收到的数据需要进行CRC16校验,并把校验结果以中断的形式传送给CPU;
在CPU发送命令的时候,根据相应的结果来判断相应是否需要重新发送。
在CPU读取数据的时候,FPGA通过SDIO通信接口将数据传送给CPU,并且在数据的末尾加上CRC校验结果;根据校验结果来判断数据是否需要重新读取;
在CPU发送数据的时候,FPGA通道SDIO通信接口将FPGA侧CRC校验结果发送给CPU,CPU根据校验结果来判断数据是否需要重传。
10.一种FPGA和CPU间SDIO通信接口实现装置,其特征在于,所述装置包括:作为主设备的CPU,以及作为从设备的FPGA;
所述FPGA包括:
第一校验模块,用于对接收到的命令包进行CRC7校验;
发送模块,用于发送响应,并在响应数据包的结尾加上CRC7校验结果;
存储模块,用于存储一个SDIO的寄存器表,用于SDIO通信的初始化;
第二校验模块,用于对接收到的数据进行CRC16校验,并把校验结果以中断的形式进行传输;
数据发送模块,用于发送数据,并且在数据的末尾加上CRC16校验结果;
所述CPU包括:
平台设备注册模块,用于对SDIO主控设备进行注册;
平台设备驱动注册模块,用于匹配SDIO主控设备,实现系统内核对SDIO主控设备的访问;
SDIO设备扫描模块,用于对接入SDIO主控设备的SDIO从设备进行扫描;
SDIO设备初始化模块,用于对探测到的SDIO从设备进行初始化;
SDIO设备加载模块,用于对已初始化的SDIO从设备进行加载,将其添加到内核的设备驱动框架中;
混杂设备注册模块,用于获取混杂设备驱动流程,且用于与SDIO设备进行匹配,完成驱动的注册与加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810469549.3A CN108920193B (zh) | 2018-05-16 | 2018-05-16 | Fpga和cpu间sdio通信接口实现方法、及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810469549.3A CN108920193B (zh) | 2018-05-16 | 2018-05-16 | Fpga和cpu间sdio通信接口实现方法、及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108920193A true CN108920193A (zh) | 2018-11-30 |
CN108920193B CN108920193B (zh) | 2021-08-03 |
Family
ID=64403783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810469549.3A Active CN108920193B (zh) | 2018-05-16 | 2018-05-16 | Fpga和cpu间sdio通信接口实现方法、及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108920193B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971621A (zh) * | 2020-01-09 | 2020-04-07 | 四川卫士通信息安全平台技术有限公司 | 基于sdio接口的嵌入式多cpu互联电路、互联方法及驱动方法 |
CN111831330A (zh) * | 2020-07-10 | 2020-10-27 | 深圳致星科技有限公司 | 用于联邦学习的异构计算系统设备交互方案 |
CN113395285A (zh) * | 2021-06-17 | 2021-09-14 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种cpu与fpga间的网络层通信方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169770A (zh) * | 2007-11-26 | 2008-04-30 | 中兴通讯股份有限公司 | Cpu接口转换系统 |
JP2015230565A (ja) * | 2014-06-04 | 2015-12-21 | アルプス電気株式会社 | 通信機器 |
CN107710179A (zh) * | 2015-06-22 | 2018-02-16 | 高通技术国际有限公司 | 具有多个sdio单元的多址单sdio接口 |
CN107741915A (zh) * | 2017-10-25 | 2018-02-27 | 武汉精测电子集团股份有限公司 | 一种基于sdio接口的fpga板级通信装置及通信方法 |
-
2018
- 2018-05-16 CN CN201810469549.3A patent/CN108920193B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101169770A (zh) * | 2007-11-26 | 2008-04-30 | 中兴通讯股份有限公司 | Cpu接口转换系统 |
JP2015230565A (ja) * | 2014-06-04 | 2015-12-21 | アルプス電気株式会社 | 通信機器 |
CN107710179A (zh) * | 2015-06-22 | 2018-02-16 | 高通技术国际有限公司 | 具有多个sdio单元的多址单sdio接口 |
CN107741915A (zh) * | 2017-10-25 | 2018-02-27 | 武汉精测电子集团股份有限公司 | 一种基于sdio接口的fpga板级通信装置及通信方法 |
Non-Patent Citations (2)
Title |
---|
刘雨沁: "基于 FPGA 的 SDIO 通信接口的设计实现", 《通信技术》 * |
姜铁程: "基于S5PV210 的 Android 示波器硬件设计", 《中国优秀硕士学位论文全文数据库 工程科技II辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110971621A (zh) * | 2020-01-09 | 2020-04-07 | 四川卫士通信息安全平台技术有限公司 | 基于sdio接口的嵌入式多cpu互联电路、互联方法及驱动方法 |
CN110971621B (zh) * | 2020-01-09 | 2023-07-11 | 成都三零嘉微电子有限公司 | 基于sdio接口的嵌入式多cpu互联电路、互联方法及驱动方法 |
CN111831330A (zh) * | 2020-07-10 | 2020-10-27 | 深圳致星科技有限公司 | 用于联邦学习的异构计算系统设备交互方案 |
CN113395285A (zh) * | 2021-06-17 | 2021-09-14 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种cpu与fpga间的网络层通信方法 |
CN113395285B (zh) * | 2021-06-17 | 2023-04-25 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种cpu与fpga间的网络层通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108920193B (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8924603B2 (en) | Protocol adapter for passing diagnostic messages between a host computer and vehicle networks operating in J1939 or J1708 protocol | |
CN103559156B (zh) | 一种fpga与计算机之间的通信系统 | |
US7149835B2 (en) | System for extending length of a connection to a USB device | |
CN108132897B (zh) | 一种基于zynq平台软核的srio控制器 | |
CN204595844U (zh) | Usb多电脑切换器 | |
JP2004280818A (ja) | Usbホストへ接続されているユニバーサルシリアルバススマートカード装置をシミュレートするシステム及び方法 | |
US6442628B1 (en) | Method and system for automatically determining maximum data throughput over a bus | |
CN101317364A (zh) | 一种实现业务板和主控板通信的装置和方法 | |
CN108920193A (zh) | Fpga和cpu间sdio通信接口实现方法、及装置 | |
CN101788972A (zh) | 一种数据传输的系统与方法 | |
CN107741915A (zh) | 一种基于sdio接口的fpga板级通信装置及通信方法 | |
CN113760748A (zh) | 一种fpga原型验证装置及方法 | |
CN115499505B (zh) | Usb网卡和通信方法 | |
CN108563595A (zh) | 一种远距离传输usb数据的系统及方法 | |
CN107506324A (zh) | 转接设备、远程通信系统、数据传输方法及装置 | |
US20030146976A1 (en) | Digital camera system enabling remote monitoring | |
CN110971621B (zh) | 基于sdio接口的嵌入式多cpu互联电路、互联方法及驱动方法 | |
EP0115348A2 (en) | Remote initialization of interconnected communications stations | |
CN107861803A (zh) | 一种基于中断的xp系统下cpci总线rs422通信驱动方法 | |
CN102929828B (zh) | 同时支持标准和非标准i2c接口的数据传输方法及装置 | |
CN109800194A (zh) | 基于Linux系统的SDIO接口数据传输方法及装置 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN107168909A (zh) | 转接设备、远程通信系统、数据传输方法及装置 | |
CN106452838A (zh) | Usb设备模拟装置及方法 | |
US20220173772A1 (en) | Exchange of data between a nfc reader and a dual nfc interface transponder |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: Room 4, Floor 1, No. 139 Shenzhou Avenue, Binhai High-tech Zone, Binhai New Area, Tianjin, 300392 Patentee after: Tianjin Photoelectric Gathered Energy Communication Co.,Ltd. Address before: 300211 No. 335, Jinjiang Road, Tanggu, Binhai New Area, Tianjin Patentee before: JUNENG SPECIAL COMMUNICATION EQUIPMENT CO.,LTD., TOEC GROUP CO.,LTD. |