[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN101655825B - 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法 - Google Patents

一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法 Download PDF

Info

Publication number
CN101655825B
CN101655825B CN2008101424833A CN200810142483A CN101655825B CN 101655825 B CN101655825 B CN 101655825B CN 2008101424833 A CN2008101424833 A CN 2008101424833A CN 200810142483 A CN200810142483 A CN 200810142483A CN 101655825 B CN101655825 B CN 101655825B
Authority
CN
China
Prior art keywords
lpc
usb
data
bus
buffer zone
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
Application number
CN2008101424833A
Other languages
English (en)
Other versions
CN101655825A (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.)
Shenzhen Jiuniuyimao Intelligent Internet Of Things Technology Co ltd
Original Assignee
EVOC Intelligent Technology 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 EVOC Intelligent Technology Co Ltd filed Critical EVOC Intelligent Technology Co Ltd
Priority to CN2008101424833A priority Critical patent/CN101655825B/zh
Publication of CN101655825A publication Critical patent/CN101655825A/zh
Application granted granted Critical
Publication of CN101655825B publication Critical patent/CN101655825B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Information Transfer Systems (AREA)

Abstract

本发明涉及一种使用FPGA实现LPC-USB双向通信的装置及数据转换方法,该装置包括LPC总线、USB总线、现场可编程逻辑器件和USB模块,该现场可编程逻辑器件完成由LPC总线到USB总线的LPC数据到USB数据的协议转换和传送,以及完成由USB总线到LPC总线的USB数据到LPC数据的协议转换和传送。利用FPGA实现LPC总线与USB总线的全双工通信,来满足一些特殊应用场合,两台或多台计算机近距离通信问题,而不需要通过借助其他媒介来实现。该装置采用FPGA和USB控制芯片方案,在FPGA内部设立两个FIFO,替代外挂FIFO,而达到了高集成,因此把板卡面积做到最小,同时功耗做到最低,成本做到最少。另外,利用FIFO具有占用端口少的特性,使其在PC中只需占用不到2个字节的地址空间,从而大大节省地址空间。同时,利用了FPGA并行高速的特性,使本方案可满足高速全双工通信。

Description

一种使用FPGA实现LPC-USB双向通信的装置及LPC-USB和USB-LPC数据转换方法
技术领域
本发明涉及双向通信的装置,更具体地说,涉及一种使用FPGA实现LPC-USB双向通信的装置及LPC-USB和USB-LPC数据转换方法。
背景技术
低管脚数(Low Pin Count,LPC)总线是英特尔(Intel)公司定义的一个数据地址命令多路复用总线,工作在33MHz(兆赫)。在计算机领域,LPC总线已经逐渐取代了工业标准结构(Industry Standard Architecture,ISA)、X-bus(X总线)等而成为新的接口。
LPC总线具有串并的特性,既有串行总线的一些特性,又同时具有并行总线的一些特性。在通信过程中,具有传统串行通信协议中的帧信号、同步信号、应答信号,但在整个通信过程中又是以4位的并行数据传输。
然而,目前仍然有很多外围设备只提供其他类型的总线接口,如USB接口等。由于这些总线的工作频率,数据地址总线宽度以及读写时序等等与LPC总线不同,需要一定的操作才能实现它们之间的通信。他们之间的通信,需要对LPC总线的协议进行解析,进行协议的转换。
在工控领域,目前很多工控机主板已经能够提供多个USB接口,但不能实现与LPC总线的直接通信。业界致力于开发出转接卡以期能够方便的实现LPC总线与USB之间的通信。
可实现LPC-USB之间通信的技术方案有:
1、用CPLD或FPGA,搭配外置的双口RAM+USB芯片进行全双工通信;其缺点:独立的双口RAM,价钱不菲;操作双口RAM,容易出现竞争的问题,也就是同一时候,RAM两边同时对同一地址进行写操作,数据将会丢失;RAM的地址空间必须全部映射到计算机的编址空间,RAM的容量越大,占用的地址空间也越大;RAM的数据搬移,需要软件做复杂的空间管理,要实现对不同地址的数据有不同的操作,技术实现复杂。
2、单独使用CPLD或FPGA,搭配外置的2个FIFO芯片+USB芯片进行全双工通信;其缺点:同时需要用2颗FIFO芯片,价格不菲;需要用FPGA或CPLD,编写FIFO的接口程序与FIFO进行数据通信;需要用到4颗IC,增加了板卡面积,同时也增加了功耗。
3、FPGA内嵌处理器,如(NIOS II,Microblaze),外挂单口RAM+USB芯片,进行通信;其缺点:首先内嵌处理器,需要较大容量的FPGA,成本不好掌握;因为是内嵌处理器,所以在单个时间里,只能够对一个端口进行操作,所以只能是半双工模式;因为数据传输速率高达10MB/S,如果用内嵌处理器,就必须外挂高速缓冲模块,而性能不高的软处理器,将会是数据通道的瓶颈所在。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种使用FPGA实现LPC-USB双向通信的装置及LPC-USB和USB-LPC数据转换方法。
本发明解决其技术问题所采用的技术方案是:构造一种使用FPGA实现LPC-USB双向通信的装置,包括LPC总线、USB总线、现场可编程逻辑器件和USB模块;所述现场可编程逻辑器件控制完成由LPC总线到USB总线的LPC数据到USB数据的协议转换和传送,以及完成由USB总线到LPC总线的USB数据到LPC数据的协议转换和传送;所述USB模块用于实现所述现场可编程逻辑器件与USB总线的数据交换;
所述现场可编程逻辑器件包括:LPC-USB协议转换模块、USB-LPC协议转换模块,第一缓冲区、以及第二缓冲区;
其中,LPC-USB协议转换模块用于接收LPC总线发送的LPC数据,并将其进行协议转换后发送到第一缓冲区;
第一缓冲区用于由LPC数据到USB数据协议转换及传送过程中数据的缓存,并起到了一个良好的时钟域隔离作用;
第二缓冲区用于接收USB模块发送的USB数据,并用于由USB数据到LPC数据协议转换及传送过程中数据的缓存,并起到了一个良好的时钟域隔离作用;
USB-LPC协议转换模块用于接收第二缓冲区输出的USB数据,并将其进行协议转换后发送LPC总线。
在本发明所述的使用FPGA实现LPC-USB双向通信的装置中,所述第一缓冲区和第二缓冲区均是可进行16K byte数据读写的FIFO缓冲区。
在本发明所述的使用FPGA实现LPC-USB双向通信的装置中,所述第一缓冲区的写使能信号与所述LPC总线的控制端相连、读使能信号与所述USB模块的控制端相连、时钟信号分别与所述LPC总线和USB模块的控制端相连。
在本发明所述的使用FPGA实现LPC-USB双向通信的装置中,所述第二缓冲区的读使能信号与所述LPC总线的控制端相连、写使能信号与所述USB模块的控制端相连、时钟信号分别与所述LPC总线和USB模块的控制端相连。
在本发明所述的使用FPGA实现LPC-USB双向通信的装置中,所述现场可编程逻辑器件还包括:时钟控制管理模块,其包括输入端、第一输出端和第二输出端,其中,输入端与外部全局时钟管脚相连,第一输出端的输出与输入端的时钟同相位,第二输出端的输出与输入端的时钟反相位。
根据本发明的另一个方面,提供一种针对使用FPGA实现LPC-USB双向通信的装置的LPC-USB数据转换方法,其包括以下步骤:
S11、设置当前状态为开始状态;
S12、当所述LPC总线的高三位为011且帧信号为1时,设置当前状态为地址状态;
S13、接收32位地址,设置当前状态为数据状态;
S14、接收8位数据,设置当前状态为TAR1状态;
S15、当所述LPC总线为1111且帧信号为1时,判断所述32位地址的低20位是否为0XD0000,如果是,设置当前状态为SYNC状态,否则,进入步骤S1:
S16、将所述8位数据发送到第一缓冲区;
S17、结束LPC-USB数据转换。
在本发明所述的LPC-USB数据转换方法中,在步骤S11和S12之间还包括:设置所述LPC总线为高阻态,第一缓冲区的写使能信号置0;
在本发明所述的LPC-USB数据转换方法中,在步骤S13中,在每个LPC_CLK时钟周期接收4位地址,经过8个LPC_CLK时钟周期,接收所述32位地址。
在本发明所述的LPC-USB数据转换方法中,在步骤S14中,在每个LPC_CLK时钟周期接收4位数据,经过2个LPC_CLK时钟周期,接收所述8位数据。
在本发明所述的LPC-USB数据转换方法中,在步骤S16中,在发送所述8位数据之前,还包括设置第一缓冲区的写使能信号为1,并设置所述LPC总线为0000。
根据本发明的又一个方面,提供一种针对使用FPGA实现LPC-USB双向通信的装置的USB-LPC数据转换方法,其包括以下步骤:
S21、设置当前状态为开始状态;
S22、当所述LPC总线的高三位为010且帧信号为1时,设置当前状态为地址状态;
S23、接收32位地址,设置当前状态为TAR1状态;
S24、当所述LPC总线为1111且帧信号为1时,判断所述32位地址的低20位是否为0XD0001或0XD0002,如果是,设置当前状态为SYNC状态,并设置所述LPC总线为0101,否则,进入步骤S21;
S25、判断所述32位地址的低20位是否为0XD0001,如果是,进入步骤S26;否则,进入步骤S27;
S26、将所述第二缓冲区输出的数据发送到8位的数据寄存器中;
S27、设置当前状态为数据状态、设置所述LPC总线为0000、以及设置所述第二缓冲区的读使能信号为0;
S28、判断所述32位地址的低20位是否为0XD0001,如果是,进入步骤S29;否则,进入步骤S210;
S29、将存储在所述8位的数据寄存器中的数据发送到所述USB-LPC协议转换模块;
S210、在第1个LPC_CLK时钟周期,所述LPC总线的高2位置11,将所述第二缓冲区的空标志信号赋值给所述LPC总线的第1位,将所述第一缓冲区的满标志信号赋值给所述LPC总线的第0位,在第2个LPC_CLK时钟周期,设置所述LPC总线为1111;
S211、结束USB-LPC数据转换。
在本发明所述的USB-LPC数据转换方法中,在所述步骤S21和S22之间还包括:设置所述LPC总线为高阻态,第二缓冲区的读使能信号置0。
在本发明所述的USB-LPC数据转换方法中,在步骤S23中,在每个LPC_CLK时钟周期接收4位地址,经过8个LPC_CLK时钟周期,接收所述32位地址。
在本发明所述的USB-LPC数据转换方法中,在步骤S29中,在第1个LPC_CLK时钟周期,将存储在所述8位的数据寄存器中的数据的低4位发送给所述USB-LPC协议转换模块,在第2个LPC_CLK时钟周期,将存储在所述8位的数据寄存器中的数据的高4位发送给所述USB-LPC协议转换模块
实施本发明的使用FPGA实现LPC-USB双向通信的装置及LPC-USB和USB-LPC数据转换方法,具有以下有益效果:利用FPGA实现LPC总线与USB总线的全双工通信,来满足一些特殊应用场合,两台或多台计算机近距离通信问题,而不需要通过借助其他媒介来实现。该装置通过FPGA和USB控制芯片方案,在FPGA内部设立两个FIFO,替代外挂FIFO,而达到了高集成,因此把板卡面积做到最小,同时功耗做到最低,成本做到最少。另外,利用FIFO具有占用端口少的特性,使其在PC中只需占用不到2个字节的地址空间,从而大大节省地址空间。同时,利用了FPGA并行高速的特性,使本方案可满足高速全双工通信。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明使用FPGA实现LPC-USB双向通信的装置的系统框图;
图2是图1所示的装置实现LPC-USB数据转换方法的流程图;
图3是图2的状态机的状态转移图;
图4是图1所示的装置实现USB-LPC数据转换方法的流程图;
图5是图4的状态机的状态转移图;
图6是图1所示的第一缓冲区和第二缓冲区的配置图;
图7是图1所示的USB模块的系统框图;
图8是图1所示的FPGA和USB模块的接口连接示意图。
具体实施方式
对于本发明的使用FPGA实现LPC-USB双向通信的装置一特定应用,主要是在设备A和设备B之间进行数据交换,其中设备A通过LPC总线进行数据的收发,设备B通过USB总线进行数据的收发。如图1所示,在本发明使用FPGA实现LPC-USB双向通信的装置这一实施例中,包括LPC总线、USB总线、现场可编程逻辑器件和USB模块;该现场可编程逻辑器件控制完成由LPC总线到USB总线的LPC数据到USB数据的协议转换和传送,以及完成由USB总线到LPC总线的USB数据到LPC数据的协议转换和传送;USB模块用于实现现场可编程逻辑器件和USB总线的数据交换;对于该现场可编程逻辑器件包括:LPC-USB协议转换模块、USB-LPC协议转换模块,第一缓冲区(FIF01)、以及第二缓冲区(FIFO2);其中,LPC-USB协议转换模块用于接收LPC总线发送的LPC数据,并将其进行协议转换后发送到第一缓冲区;第一缓冲区用于由LPC数据到USB数据协议转换及传送过程中数据的缓存,并起到了一个良好的时钟域隔离作用;第二缓冲区用于接收USB模块发送的USB数据,并用于由USB数据到LPC数据协议转换及传送过程中数据的缓存,并起到了一个良好的时钟域隔离作用;USB-LPC协议转换模块用于接收第二缓冲区输出的USB数据,并将其进行协议转换后发送LPC总线。如图6所示,第一缓冲区和第二缓冲区均是可进行16K数据读写的FIFO缓冲区。另外,该现场可编程逻辑器件还包括CLKV模块(时钟控制管理模块),该CLKV模块主要实现对时钟的控制管理。把外部通过全局时钟管脚送入到FPGA的时钟,分两路输出,一路与输入的时钟同相位,一路与输入的时钟反相位,作为FPGA程序设计的参考时钟。在具体设计中,本发明申请的装置是通过运用顶层软件也称TOP模块,以定义整个程序的输入输出接口,并把外部接口的输入输出与各个实现具体功能的分模块组合连接起来,以实现它们之间的逻辑关系,并同时实现了与USB模块的交互。
在具体工作中,设备A把数据通过LPC总线传送到FPGA,并同时产生校验码,经过FPGA的处理,协议转换,把数据送给USB模块,通过USB模块的处理,把数据送给USB接口,此时设备B读取数据,并检验其正确性,以确定是否需要启动重传机制,这个过程实现LPC总线数据到USB的通信。相反方向,设备B把数据通过USB接口送给USB模块,经过USB模块的处理,进行分组传输,传送到FPGA并生成校验码,经过FPGA模块的处理,协议转换,把数据送给LPC总线,设备A读取数据,并检验其正确性,以确定是否需要启动重传机制,这个过程实现USB数据到LPC总线的通信。从而实现了LPC总线与USB之间的全双工通信。
当系统上电后,如果需要LPC总线发送数据到USB,则设备A通过LPC总线发送数据到FPGA,同时产生校验码,经过FPGA的处理,进行协议转换,把数据发送到USB模块,经过USB模块的处理,设备B通过USB接口读出数据,并检验其正确性,以确定是否需要启动重传机制;如果需要USB发送数据到LPC总线,设备B通过USB接口,把数据送给USB模块,同时产生校验码,经过USB模块的处理之后,发送数据到FPGA,经过FPGA模块的处理,进行协议转换,把数据发送到LPC总线,再由设备A读出数据,并检验其正确性,以确定是否需要启动重传机制。LPC总线与USB可以同时收发数据,以实现它们之间的全双工通信。整个数据交换过程是一帧一帧的发送数据,接收数据也是一帧一帧的接收;每一帧数据中同时包含有该帧的一些信息,包括校验和纠错方面的信息;在读取数据之后同时也读取到了校验方面的信息,如果发现该帧中某个或者某些数据有错,则发出一信息,启动重传机制,让发送方重新发送该帧数据,直到传输正确为止。
具体实施中,FPGA芯片采用XILINX公司的SPARTAN3A系列的芯片,具体型号为XC3S200A-4FT256C,开发平台为ISE9.2。其主要有三组信号:LPC总线与FPGA通信所需信号,USB模块与FPGA通信所需信号,共享数据线;具体的接口信号定义,如下表1:
 
信号名 方向 描述
LPC_FRAME_IO IN LPC的FRAME脚位
LPC_RST_N_IO IN LPC复位信号
LPC_CLK_IO IN LPC时钟信号
LPC_LAD_IO INOUT LPC数据和地址共享总线
USB_CLK IN USB时钟信号
F_FLAGA IN USB写标志信号
F_FLAGB IN USB读标志信号
F_SLOE OUT
F_SLRD OUT
F_SLWR OUT
UD_D INOUT 共享数据线
表1
对于LPC-USB协议转换模块,其主要根据LPC规范,LPC总线写数据过来,在FPGA内部,通过协议转换,把识别到的数据送入FPGA内部的第一缓冲区。LPC总线传输数据时有多种模式,该模块设计主要利用Memory Target写模式传输数据。LPC总线在传输数据时有多种不同的状态,该模块主要用状态机来实现不同状态的转换,以实现把终端计算机通过LPC总线发送的数据经过协议转换后写入FIFO1。
如图2和3所示,当上电复位后,状态机进入开始状态,即当前状态为开始状态;
当每一个LPC_CLK时钟上升沿来临时,开始对当前状态的判断;
当当前状态为开始状态时,首先使LPC总线的数据线置于高阻状态,第一缓冲区的写使能信号置0,当判断到LPC总线的数据线为0000且帧信号为0时,状态机转移到DIR状态,即当前状态改变到DIR状态,否则让当前状态处于开始状态;
当当前状态为DIR状态时,首先使LPC总线的数据线置于高阻状态,第一缓冲区的写使能信号置0,当判断到LPC总线的数据线信号为011且帧信号为1时,状态机转移到地址状态,即当前状态改变到地址状态,否则让其当前状态处于开始状态;
当当前状态为地址状态时,首先使LPC总线的数据线置于高阻状态,第一缓冲区的写使能信号置0,每个LPC_CLK时钟周期传送4位地址,经过8个LPC_CLK时钟周期,把32位的地址通过LPC总线的数据线传送过来,其中高12位忽略不用,低20位有效,之后状态机转移到数据状态,即当前状态改变到数据状态,否则让其当前状态处于地址状态;
当当前状态为数据状态时,首先使LPC总线的数据线置于高阻状态,第一缓冲区的写使能信号置0,每个LPC_CLK时钟周期传送4位数据,经过2个LPC_CLK时钟周期,把8位的数据通过LPC总线的数据线传送过来,之后状态机转移到TAR1状态,即当前状态改变到TAR1状态;
当当前状态为TAR1状态时,第一缓冲区的写使能信号置0,当判断到LPC总线的数据线为1111且帧信号为1时,等待4个LPC_CLK时钟周期,当第5个LPC_CLK时钟周期时,开始对地址状态传送来的20位地址进行判断,当为0XD0000时,状态机转移到SYNC状态,即当前状态改变到SYNC状态,否则让其当前状态处于开始状态;
当当前状态为SYNC状态时,把数据状态时传送过来的8位数据写入FIF01的数据输入端,把第一缓冲区的写使能信号置1,LPC总线的数据线置0000,之后状态机转移到TAR2状态,即当前状态改变到TAR2状态;
当当前状态为TAR2状态时,把第一缓冲区的写使能信号置0,LPC总线的数据线置1111,之后状态机转移到END状态,即当前状态改变到END状态;
当当前状态为END状态时,把第一缓冲区的写使能信号置0,LPC总线的数据线置高阻状态,之后状态机转移到开始状态,即当前状态改变到开始状态;
在其他状况时,状态机的当前状态保持为开始状态。
对于USB-LPC协议转换模块,该模块主要根据LPC总线规范,在FPGA内部,把第二缓冲区中的数据经过协议转换,LPC总线读取数据到终端计算机。LPC读取数据时有多种模式,该设计主要利用的是Memory Target读模式传输数据。LPC总线在传输数据时有多种不同的状态,该模块主要用状态机来实现不同状态的转换,以实现把第二缓冲区中的数据读取到终端计算机。
如图4和5所示,当上电复位后,状态机进入开始状态,即当前状态为开始状态;
当每一个LPC_CLK时钟上升沿来临时,开始对当前状态的判断;
当当前状态为开始状态时,首先使LPC总线的数据线置于高阻状态,第二缓冲区的读使能信号置0,当判断到LPC总线的数据线为0000且FRAME信号为0时,状态机转移到DIR状态,即当前状态改变到DIR状态,否则让当前状态处于开始状态;
当当前状态为DIR状态时,第二缓冲区的读使能信号置0,当判断到LPC总线的数据线线的高三位为010且帧信号为1时,状态机转移到地址状态,即当前状态改变到地址状态,否则让其当前状态处于开始状态;
当当前状态为地址状态时,首先使LPC总线的数据线线置于高阻状态,第二缓冲区的读使能信号置0,每个LPC_CLK时钟周期传送4位地址,经过8个LPC_CLK时钟周期,把32位的地址通过LPC总线的数据线传送,其中高12位忽略不用,低20位有效,之后状态机转移到TAR1状态,即当前状态改变到数据状态,否则让其当前状态处于地址状态;
当当前状态为TAR1状态时,第二缓冲区的读使能信号置0,当判断到LPC总线的双向数据线为1111且帧信号为1时,等待1个LPC_CLK时钟周期,当第2个LPC_CLK时钟周期时,开始对地址状态传送的20位地址进行判断,当为0XD0001或者为0XD0002时,状态机转移到SYNC状态并且把LPC总线的数据线置为0101,即当前状态改变到SYNC状态且把LPC总线的数据线置为0101,否则让其当前状态处于开始状态;
当当前状态为SYNC状态时,操作如下:当判断到地址状态传送的地址为0XD0001时,前2个LPC_CLK时钟周期,第二缓冲区的读使能信号置0,当前状态保持在SYNC状态,LPC总线的数据线置0101,当第3个LPC_CLK时钟周期时,第二缓冲区的读使能信号置1,状态机当前状态保持在SYNC状态,LPC总线的数据线置为0101,第4个LPC_CLK时钟周期时,把FIFO2的数据输出端输出的数据存储在8位的数据寄存器中,第二缓冲区的读使能信号置0,状态机转移到数据状态,即当前状态改变到数据状态,LPC总线的数据线置为0000;当判断到地址状态传送的地址为0XD0002时,首先第二缓冲区的读使能信号置0,前3个LPC_CLK时钟周期,当前状态保持为SYNC状态,LPC总线的数据线信号置为0101,第4个LPC_CLK时钟周期内,状态机转移到数据状态,即当前状态改变为数据状态,LPC总线的数据线置为0000;当判断到地址状态传送的地址为其他情况时,LPC总线的数据线置为高阻状态,第二缓冲区的读使能信号置0,状态机转移到开始状态,即当前状态改变为开始状态;
当当前状态为数据状态时,第二缓冲区的读使能信号置0,当判断到地址状态传送的地址为0XD0001时,在第1个LPC_CLK时钟周期,把在SYNC状态时存储在8位数据寄存器中的数据的低4位传送给LPC总线的双向数据线,同时当前状态保持为数据状态,在第2个LPC_CLK时钟周期,把在SYNC状态时存储在8位数据寄存器中的数据的高4位传送给LPC总线的数据线,状态机转移到TAR2状态,即当前状态改变为TAR2状态;当判断到地址状态传送的地址为0XD0002时,在第1个LPC_CLK时钟周期,LPC总线的数据线的高2位置11,把FIFO2的空标志信号赋值给双向数据线的第1位,把FIFO1的满标志信号赋值给LPC总线的数据线的第0位,同时当前状态保持为数据状态,在第2个LPC_CLK时钟周期,LPC总线的数据线置为1111,状态机转移到TAR2状态,即当前状态改变为TAR2状态;当判断到地址状态传送的地址为其他情况时,状态机转移到开始状态,即当前状态改变为开始状态;
当当前状态为TAR2状态时,第二缓冲区的读使能信号置0,LPC总线的双向数据线置为1111,状态机转移到END状态,即当前状态改变为END状态;
当当前状态为END状态时,把第二缓冲区的读使能信号置0,LPC总线的数据线置高阻状态,之后状态机转移到开始状态,即当前状态改变到开始状态;
在其他状况时,状态机的当前状态保持为开始状态。
在实施中,第一缓冲区、第二缓冲区、CLKV模块主要用利用Xilinx开发工具ISE9.2生成IP CORE,其中第一缓冲区和第二缓冲区为深度16K的FIFO,利用FPGA内部的时钟管理器DCM来实现CLKV模块。第一缓冲区主要实现LPC总线写数据、USB模块读数据的缓冲。LPC总线通过数据输入端送数据到第一缓冲区,USB模块通过数据输出端从第一缓冲区内读取数据,第一缓冲区的写使能信号和时钟信号与LPC总线控制端相连,第一缓冲区的读使能信号和时钟信号与USB模块控制端相连,在第一缓冲区满时送FULL标志到LPC总线,在第一缓冲区空时送EMPTY标志到USB模块,在第一缓冲区再有510个数据空时送PROG_EMPTY信号到USB模块。第二缓冲区主要实现LPC总线读数据、USB模块写数据的缓冲。USB模块通过数据输入端送数据到第二缓冲区,LPC总线通过数据输出端从第二缓冲区内读取数据,第二缓冲区的读使能信号和时钟信号与LPC总线控制端相连,第二缓冲区的写使能信号和时钟信号与USB控制端相连,在第二缓冲区满时送FULL标志到USB模块,在第二缓冲区空时送EMPTY标志到LPC总线。
如图7所示,USB模块使用Cypress 68013A作为USB转local bus的控制器,它内部集成了一颗增强型51内核,可以对USB通信中的相关寄存器做很多配置,同样也可以作为标准51调用。最左边是USB收发器,在收发器右边的是SIE(Serial Interface Engine),它也是USB的通信中,主要负责单元,它内部集成了USB打包、发包,以及收包,解包的硬件电路,并且留下了大量的寄存器,可让51内核配置。SIE右边,并且与其相连的是4KB可配置FIFO,数据从SIE中进入FIFO,在GPIF模块或51内核的控制下,以8bit/16bit的方式向外传输,也就是到达Local bus,然后进入FPGA。在USB传输协议中,我们的需求是:数据量要大并且数据传输可靠,采用bulk传输模式,它是支持错误重传机制的,在FIFO的配置上,我们采用了2个FIFO,一进出,各2Kbyte。
如图8所示为FPGA和USB模块的接口连接示意图,且具体接口定义,如下表2所示:
 
信号名 位宽 方向 描述
RDYO 1 IN FPGA发出的空标志位,表示读空
RDY1 1 IN FPGA发出的满标志位,表示写满
CTLO 1 OUT WEN#使能信号,控制FPGA中FIFO的写
CTL1 1 OUT REN#使能信号,控制FPGA中FIFO的读
CTL2 1 OUT OE#使能信号,选中FPGA中FIFO
 
USB_CLK 1 OUT USB给FPGA做接口同步的时钟,48MHz
Data 8 INOUT 双向数据
表2
本发明是通过几个具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。

Claims (12)

1.一种使用FPGA实现LPC-USB双向通信的装置,包括LPC总线和USB总线,其特征在于,该装置还包括:现场可编程逻辑器件和USB模块;所述现场可编程逻辑器件控制完成由LPC总线到USB总线的LPC数据到USB数据的协议转换和传送,以及完成由USB总线到LPC总线的USB数据到LPC数据的协议转换和传送;所述USB模块用于实现所述现场可编程逻辑器件和USB总线的数据交换;
所述现场可编程逻辑器件包括:LPC-USB协议转换模块、USB-LPC协议转换模块,第一缓冲区、以及第二缓冲区;
其中,LPC-USB协议转换模块用于接收LPC总线发送的LPC数据,并将其进行协议转换后发送到第一缓冲区;
第一缓冲区用于由LPC数据到USB数据协议转换及传送过程中数据的缓存;
第二缓冲区用于接收USB模块发送的USB数据,并用于由USB数据到LPC数据协议转换及传送过程中数据的缓存;
USB-LPC协议转换模块用于接收第二缓冲区输出的USB数据,并将其进行协议转换后发送LPC总线。
2.根据权利要求1所述的使用FPGA实现LPC-USB双向通信的装置,其特征在于,所述第一缓冲区和第二缓冲区均是可进行16K byte数据读写的FIFO缓冲区。
3.根据权利要求2所述的使用FPGA实现LPC-USB双向通信的装置,其特征在于,所述第一缓冲区的写使能信号与所述LPC总线的控制端相连、读使能信号与所述USB模块的控制端相连、时钟信号分别与所述LPC总线和USB模块的控制端相连。
4.根据权利要求2所述的使用FPGA实现LPC-USB双向通信的装置,其特征在于,所述第二缓冲区的读使能信号与所述LPC总线的控制端相连、写使能信号与所述USB模块的控制端相连、时钟信号分别与所述LPC总线和USB模块的控制端相连。
5.根据权利要求2所述的使用FPGA实现LPC-USB双向通信的装置,其特征在于,所述现场可编程逻辑器件还包括:时钟控制管理模块,其包括输入端、第一输出端和第二输出端,其中,输入端与外部全局时钟管脚相连,第一输出端的输出与输入端的时钟同相位,第二输出端的输出与输入端的时钟反相位。
6.一种针对权利要求1~5任一所述的使用FPGA实现LPC-USB双向通信的装置的LPC-USB数据转换方法,其特征在于,包括以下步骤:
S11、设置当前状态为开始状态;
S12、当所述LPC总线的高三位为011且帧信号为1时,设置当前状态为地址状态;
S13、接收32位地址,设置当前状态为数据状态;
S14、接收8位数据,设置当前状态为TAR1状态;
S15、当所述LPC总线为1111且帧信号为1时,判断所述32位地址的低20位是否为0XD0000,如果是,设置当前状态为SYNC状态,否则,进入步骤S1;
S16、将所述8位数据发送到第一缓冲区;
S17、结束LPC-USB数据转换。
7.根据权利要求6所述的方法,其特征在于,在步骤S11和S12之间还包括:设置所述LPC总线为高阻态,第一缓冲区的写使能信号置0;
8.根据权利要求6所述的方法,其特征在于,在步骤S13中,在每个LPC_CLK时钟周期接收4位地址,经过8个LPC_CLK时钟周期,接收所述32位地址;在步骤S14中,在每个LPC_CLK时钟周期接收4位数据,经过2个LPC_CLK时钟周期,接收所述8位数据。
9.根据权利要求6所述的方法,其特征在于,在步骤S16中,在发送所述8位数据之前,还包括设置第一缓冲区的写使能信号为1,并设置所述LPC总线为0000。
10.一种针对权利要求1~5任一所述的使用FPGA实现LPC-USB双向通信的装置的USB-LPC数据转换方法,其特征在于,包括以下步骤:
S21、设置当前状态为开始状态;
S22、当所述LPC总线的高三位为010且帧信号为1时,设置当前状态为地址状态;
S23、接收32位地址,设置当前状态为TAR1状态;
S24、当所述LPC总线为1111且帧信号为1时,判断所述32位地址的低20位是否为0XD0001或0XD0002,如果是,设置当前状态为SYNC状态,并设置所述LPC总线为0101,否则,进入步骤S21;
S25、判断所述32位地址的低20位是否为0XD0001,如果是,进入步骤S26;否则,进入步骤S27;
S26、将所述第二缓冲区输出的数据发送到8位的数据寄存器中;
S27、设置当前状态为数据状态、设置所述LPC总线为0000、以及设置所述第二缓冲区的读使能信号为0;
S28、判断所述32位地址的低20位是否为0XD0001,如果是,进入步骤S29;否则,进入步骤S210;
S29、将存储在所述8位的数据寄存器中的数据发送到所述USB-LPC协议转换模块;
S210、在第1个LPC_CLK时钟周期,所述LPC总线的高2位置11,将所述第二缓冲区的空标志信号赋值给所述LPC总线的第1位,将所述第一缓冲区的满标志信号赋值给所述LPC总线的第0位,在第2个LPC_CLK时钟周期,设置所述LPC总线为1111;
S211、结束USB-LPC数据转换。
11.根据权利要求10所述的方法,其特征在于,在所述步骤S21和S22之间还包括:设置所述LPC总线为高阻态,第二缓冲区的读使能信号置0;在步骤S23中,在每个LPC_CLK时钟周期接收4位地址,经过8个LPC_CLK时钟周期,接收所述32位地址。
12.根据权利要求11所述的方法,其特征在于,在步骤S29中,在第1个LPC_CLK时钟周期,将存储在所述8位的数据寄存器中的数据的低4位发送给所述USB-LPC协议转换模块,在第2个LPC_CLK时钟周期,将存储在所述8位的数据寄存器中的数据的高4位发送给所述USB-LPC协议转换模块。
CN2008101424833A 2008-08-19 2008-08-19 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法 Active CN101655825B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101424833A CN101655825B (zh) 2008-08-19 2008-08-19 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101424833A CN101655825B (zh) 2008-08-19 2008-08-19 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法

Publications (2)

Publication Number Publication Date
CN101655825A CN101655825A (zh) 2010-02-24
CN101655825B true CN101655825B (zh) 2011-01-19

Family

ID=41710119

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101424833A Active CN101655825B (zh) 2008-08-19 2008-08-19 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法

Country Status (1)

Country Link
CN (1) CN101655825B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102169470B (zh) * 2010-02-27 2014-01-29 比亚迪股份有限公司 一种ahb总线到bvci总线的转换桥
CN102207920B (zh) * 2010-03-30 2013-12-04 比亚迪股份有限公司 一种bvci总线到ahb总线的转换桥
CN104052456B (zh) 2014-06-23 2017-02-15 青岛海信电器股份有限公司 一种用于双向通信的电路
CN106598901A (zh) * 2016-12-08 2017-04-26 邦彦技术股份有限公司 基于FPGA的Local Bus转USB的系统及芯片
CN113868179B (zh) * 2021-09-10 2024-04-02 中国航空工业集团公司西安航空计算技术研究所 一种LPC_DPRam的通信装置及数据转换方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370603B1 (en) * 1997-12-31 2002-04-09 Kawasaki Microelectronics, Inc. Configurable universal serial bus (USB) controller implemented on a single integrated circuit (IC) chip with media access control (MAC)
CN1758232A (zh) * 2004-10-10 2006-04-12 中兴通讯股份有限公司 一种接口转换模块和对fpga进行配置的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370603B1 (en) * 1997-12-31 2002-04-09 Kawasaki Microelectronics, Inc. Configurable universal serial bus (USB) controller implemented on a single integrated circuit (IC) chip with media access control (MAC)
CN1758232A (zh) * 2004-10-10 2006-04-12 中兴通讯股份有限公司 一种接口转换模块和对fpga进行配置的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开2004-110409A 2004.04.08

Also Published As

Publication number Publication date
CN101655825A (zh) 2010-02-24

Similar Documents

Publication Publication Date Title
CN109857685B (zh) 一种mpu与fpga扩展多串口的实现方法
CN101477504B (zh) 数据传输系统及数据传输方法
CN101208678B (zh) 用于rs-232转i2c转换集成电路与主机间通信的软件层
CN101655825B (zh) 一种使用fpga实现lpc-usb双向通信的装置及lpc-usb和usb-lpc数据转换方法
CN203812236U (zh) 一种基于处理器和现场可编程门阵列的数据交换系统
EP1535169B1 (en) Improved inter-processor communication system for communication between processors
CN109411007B (zh) 一种基于fpga的通用闪存测试系统
CN1819554B (zh) 数据处理系统及其数据接口连接方法
CN112395230A (zh) 一种基于可编程逻辑器件的uart接口扩展电路
CN101436171A (zh) 模块化通信控制系统
CN100476775C (zh) 用于总线通信设备的主机控制器以及总线通信设备
WO2009000794A1 (en) Data modification module in a microcontroller
CN101004674A (zh) 处理器体系结构
CN101122894A (zh) 一种异步串行通讯控制器件
CN101778038B (zh) 基于千兆以太网的嵌入式设备高速数据传输系统
CN101534259B (zh) 异步通信控制器及其控制方法
CN101415027A (zh) 基于hdlc协议的通讯模块及数据实时转发存储控制方法
CN103488601A (zh) 一种时钟延时、数据访问方法、系统及设备
US11782636B2 (en) Method for data processing of an interconnection protocol to support multiple lanes, controller, and storage device
CN100462952C (zh) 接口可配置的通用串行总线控制器
CN105262659A (zh) 基于fpga芯片的hdlc协议控制器
CN115982071A (zh) 一种面向ddr3控制器的片上网络转换接口
US7610415B2 (en) System and method for processing data streams
CN115391253A (zh) 基于fpga的多通道的hart实现系统
CN103544133B (zh) 一种转换装置及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Assignee: Xi'an EVOC Intelligent Technology Co.,Ltd.

Assignor: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd.

Contract record no.: 2012610000049

Denomination of invention: Device for achieving LPC-USB two-way communication by using FPGA and data conversion method of LPC-US and USB-LPC

Granted publication date: 20110119

License type: Exclusive License

Open date: 20100224

Record date: 20120425

TR01 Transfer of patent right

Effective date of registration: 20230725

Address after: 518000 B2, 20/F, Yanxiang Science and Technology Building, No. 31, High-tech Fourth Road, Maling Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong Province

Patentee after: Shenzhen Jiuniuyimao Intelligent Internet of Things Technology Co.,Ltd.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District high in the four EVOC Technology Building No. 31

Patentee before: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right