CN108920193A - Fpga和cpu间sdio通信接口实现方法、及装置 - Google Patents

Fpga和cpu间sdio通信接口实现方法、及装置 Download PDF

Info

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
Application number
CN201810469549.3A
Other languages
English (en)
Other versions
CN108920193B (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.)
Tianjin Photoelectric Gathered Energy Communication Co ltd
Original Assignee
TIANJIN TOEC JN SPECIAL COMMUNICATION EQUIPMENT CO Ltd
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 TIANJIN TOEC JN SPECIAL COMMUNICATION EQUIPMENT CO Ltd filed Critical TIANJIN TOEC JN SPECIAL COMMUNICATION EQUIPMENT CO Ltd
Priority to CN201810469549.3A priority Critical patent/CN108920193B/zh
Publication of CN108920193A publication Critical patent/CN108920193A/zh
Application granted granted Critical
Publication of CN108920193B publication Critical patent/CN108920193B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding 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间SDIO通信接口实现方法、及装置
技术领域
本发明涉及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设备进行匹配,完成驱动的注册与加载。
CN201810469549.3A 2018-05-16 2018-05-16 Fpga和cpu间sdio通信接口实现方法、及装置 Active CN108920193B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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板级通信装置及通信方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
刘雨沁: "基于 FPGA 的 SDIO 通信接口的设计实现", 《通信技术》 *
姜铁程: "基于S5PV210 的 Android 示波器硬件设计", 《中国优秀硕士学位论文全文数据库 工程科技II辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
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.