FPGA和CPU间SDIO通信接口实现方法、及装置制造方法及图纸

技术编号:19634739 阅读:2324 留言:0更新日期:2018-12-01 15:31
本发明专利技术公开了一种FPGA和CPU间SDIO通信接口实现方法、及装置,包括:FPGA作为从设备,不具有接口协议IP核,所述FPGA自定义SDIO通信接口,采用SDIO的通信协议。CPU作为主设备,CPU获取混杂设备驱动流程,用于与SDIO设备进行匹配,完成驱动的注册与加载;CPU在驱动中会注册一个混杂设备,以供应用程序访问。本通信接口适用于大多数设计中的CPU和FPGA的通信接口,能够满足非高速接口的通信需求。

Implementation method and device of SDIO communication interface between FPGA and CPU

The invention discloses an implementation method and device of SDIO communication interface between FPGA and CPU, which includes: as slave device, the FPGA does not have IP core of interface protocol, and the self-defined SDIO communication interface of the FPGA adopts SDIO communication protocol. As the main device, CPU acquires hybrid device driver flow to match SDIO device and complete driver registration and loading; CPU registers a hybrid device in the driver to provide application access. This communication interface is suitable for the communication interface of CPU and FPGA in most designs, and can meet the communication requirements of non-high-speed interface.

【技术实现步骤摘要】
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(本本文档来自技高网
...

【技术保护点】
1.一种FPGA和CPU间SDIO通信接口实现方法,其特征在于,所述方法包括:所述FPGA对接收到的命令包进行CRC7校验,校验通过才能够对命令进行响应;所述FPGA发送响应,并在响应数据包的结尾加上CRC7校验结果;所述FPGA内部存储一个SDIO的寄存器表,用于SDIO通信的初始化;所述FPGA对接收到的数据进行CRC16校验,并把校验结果以中断的形式进行传输;所述FPGA发送数据,并且在数据的末尾加上CRC16校验结果。

【技术特征摘要】
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...

【专利技术属性】
技术研发人员:毕顺利唐占涛吴淑艳苏锦秀郭建岩张长利孟祥臣袁静
申请(专利权)人:天津光电聚能专用通信设备有限公司
类型:发明
国别省市:天津,12

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

1