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作为从设备的自定 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。