CN113032319A - 基于fpga的车载系统数据传输方法及同步高速串行总线结构 - Google Patents
基于fpga的车载系统数据传输方法及同步高速串行总线结构 Download PDFInfo
- Publication number
- CN113032319A CN113032319A CN202110342353.XA CN202110342353A CN113032319A CN 113032319 A CN113032319 A CN 113032319A CN 202110342353 A CN202110342353 A CN 202110342353A CN 113032319 A CN113032319 A CN 113032319A
- Authority
- CN
- China
- Prior art keywords
- data
- serial
- parallel
- sending
- crc
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M9/00—Parallel/series conversion or vice versa
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Detection And Correction Of Errors (AREA)
- Communication Control (AREA)
Abstract
本申请公开了一种基于FPGA的车载系统数据传输方法及同步高速串行总线结构,所述数据传输方法包括:根据一发送使能信号对发送数据进行拆分获得拆分数据,对所述拆分数据进行校验获得第一CRC校验值,并对所述拆分数据进行并串转换获得串行数据;根据一数据时钟使能信号接收所述串行数据并对所述串行数据进行串并转换获得并行数据,对所述并行数据进行校验获得第二CRC校验值;比较所述第一CRC校验值和所述第二CRC校验值,若一致,则根据所述并行数据更新用户端数据;若不一致,则丢弃所述并行数据并产生一复位信号进行复位。通过本申请,可提高数据传输速率,同时具有更高的稳定性和可靠性。
Description
技术领域
本发明涉及车辆通信技术领域。更具体的说,本发明涉及一种基于FPGA的车载系统数据传输方法及同步高速串行总线结构。
背景技术
在轨道车辆电气控制系统中,需要实现对大量数据的跨板卡高速传输和复杂的控制运算处理。其中,选用高性能的处理器芯片可以提高系统的控制运算处理能力,但是对于跨板卡的高速数据传输,目前没有能够兼顾成本和性能的成熟方案,逐渐成为制约车载控制系统性能提高的瓶颈。
目前常用的跨板卡数据传输方式为以下两种:1、使用FPGA模拟既有标准的Linkport总线接口,数据收发模块各4组差分对。其中,标准Linkport总线技术是ADI公司专门为DSP处理器TS201的高速通信设计的基于LVDS技术的总线接口;2、模拟传统并行总线接口。
但是以上方式仍存在以下问题:
1、采用第一种方式的缺点是总线链路层收发器FPGA软件在时钟上升沿和下降沿都要进行数据传输,违背了FPGA“一个工程中要使用同一时钟同一边沿触发”的设计原则,对FPGA软件可靠性要求较高,时序设计复杂,软件稳定性不高。并且由于收发数据模块各4组差分对,本质是一种并行总线设计,一个时钟沿要同时采样4根数据线,并行总线中传输的各个位必须处于一个时钟周期内的相同位置,对器件的性能和硬件PCB要求严格,设计难度大,致使总线时钟频率降低,稳定性和可靠性不高,通信质量差;
2、采用第二种方式的缺点是并行总线适用于短距离、低总线频率的数据传输,适用范围有限。并且并行总线的信号线数量非常多,会占用大量的管脚和布线空间,因此芯片和PCB板的尺寸很难实现小型化,特别是如果要用电缆进行远距离传输时,由于信号线的数量非常多,使得电缆变得非常昂贵和笨重。另外,在高速状态下并行口的几根数据线之间存在串扰,而并行口需要信号同时发送同时接收,任何一根数据线的延迟都会引起问题。其次是这种总线上通常挂有多个设备,且读写共用,各种信号分叉造成的反射问题会使得信号质量进一步恶化;
3、既有的模拟Linkport的总线链路层控制器传输校验使用累加求和,校验机制相对简单,无法满足高可靠性需求;
4、既有模拟Linkport的总线链路层控制器对上电初始化的要求严格,受串行缓存机制的限制,一旦初始化失败,总线通讯不再恢复。数据传输过程中发生校验错误,总线纠错处理能力差,传输过程中时钟信号暂态丢失,如出现丢脉冲或者时钟波形受干扰的情况,传输被打断,通信无法恢复。
发明内容
针对上述问题,本发明提供了一种基于FPGA的车载系统数据传输方法,所述方法包括以下步骤:
数据发送步骤:根据一发送使能信号对发送数据进行拆分获得拆分数据,对所述拆分数据进行校验获得第一CRC校验值,并对所述拆分数据进行并串转换获得串行数据;
数据接收步骤:根据一数据时钟使能信号接收所述串行数据并对所述串行数据进行串并转换获得并行数据,对所述并行数据进行校验获得第二CRC校验值;
比较更新步骤:比较所述第一CRC校验值和所述第二CRC校验值,若一致,则根据所述并行数据更新用户端数据;若不一致,则丢弃所述并行数据并产生一复位信号进行复位。
作为本发明的进一步改进,所述数据发送步骤包括:
发送端数据缓存步骤:根据所述发送使能信号将所述发送数据拆分获得所述拆分数据,然后将所述拆分数据依次存放在发送端双口RAM的存放端口的地址中;
发送端CRC校验步骤:在每个所述拆分数据存放的同时,将其输入到CRC校验函数,获得所述第一CRC校验值,将所述第一CRC校验值通过所述发送端双口RAM的所述存放端口写入;
并串转换步骤:在将所述第一CRC校验值写入的同时,触发并串转换使能信号,开始并串转换,基于所述发送端双口RAM的转换端口获取所述串行数据,同时产生一数据时钟使能信号;
串行数据发送步骤:发送所述串行数据。
作为本发明的进一步改进,所述数据接收步骤包括:
接收端数据缓存步骤:根据所述数据时钟使能信号判断是否缓存所述串行数据,若是则开始执行接收端双口RAM的转换端口的地址自加操作,将所述串行数据通过所述接收端双口RAM的所述转换端口依次缓存;
串并转换步骤:将所述串行数据最后缓存到所述接收端双口RAM的同时,启动串并转换,通过所述接收端双口RAM的存放端口获取所述并行数据;
接收端CRC校验步骤:在所述存放端口读出所述并行数据的同时,将其输入到所述CRC校验函数,获得所述第二CRC校验值。
作为本发明的进一步改进,所述发送端双口RAM和所述接收端双口RAM的配置一致。
作为本发明的进一步改进,所述接收端数据缓存步骤中,在所述数据时钟使能信号为高电平时执行所述串行数据的缓存。
作为本发明的进一步改进,所述发送端数据缓存步骤中,在所述发送使能信号为高电平时执行所述发送数据的拆分。
基于相同发明思想,本发明还基于任一项发明创造所揭示的基于FPGA的车载系统数据传输方法,揭示了一种基于FPGA的车载系统同步高速串行总线结构,
所述基于FPGA的车载系统同步高速串行总线结构包括:
数据发送单元,根据一发送使能信号对发送数据进行拆分获得拆分数据,对所述拆分数据进行校验获得第一CRC校验值,并对所述拆分数据进行并串转换获得串行数据;
数据接收单元,根据一数据时钟使能信号接收所述串行数据并对所述串行数据进行串并转换获得并行数据,对所述并行数据进行校验获得第二CRC校验值;
比较更新单元,比较所述第一CRC校验值和所述第二CRC校验值,若一致,则根据所述并行数据更新用户端数据;若不一致,则丢弃所述并行数据并产生一复位信号进行复位。
作为本发明的进一步改进,所述数据发送单元包括:
发送端数据缓存模块,根据所述发送使能信号将所述发送数据拆分获得所述拆分数据,然后将所述拆分数据依次存放在发送端双口RAM的存放端口的地址中;
发送端CRC校验模块,在每个所述拆分数据存放的同时,将其输入到CRC校验函数,获得所述第一CRC校验值,将所述第一CRC校验值通过所述发送端双口RAM的所述存放端口写入;
并串转换模块,在将所述第一CRC校验值写入的同时,触发并串转换使能信号,开始并串转换,基于所述发送端双口RAM的转换端口获取所述串行数据,同时产生一数据时钟使能信号;
串行数据发送模块,发送所述串行数据。
作为本发明的进一步改进,所述数据接收单元包括:
接收端数据缓存模块,根据所述数据时钟使能信号判断是否缓存所述串行数据,若是则开始执行接收端双口RAM的转换端口的地址自加操作,将所述串行数据通过所述接收端双口RAM的所述转换端口依次缓存;
串并转换模块,将所述串行数据最后缓存到所述接收端双口RAM的同时,启动串并转换,通过所述接收端双口RAM的存放端口获取所述并行数据;
接收端CRC校验模块,在所述存放端口读出所述并行数据的同时,将其输入到所述CRC校验函数,获得所述第二CRC校验值。
作为本发明的进一步改进,所述发送端双口RAM和所述接收端双口RAM的配置一致;所述接收端数据缓存模块中,在所述数据时钟使能信号为高电平时执行所述串行数据的缓存;所述发送端数据缓存模块中,在所述发送使能信号为高电平时执行所述发送数据的拆分。
与现有技术相比,本发明的有益效果如下:
1、提出了一种基于FPGA的车载系统数据传输方法及同步高速串行总线结构,同步高速串行总线为全双工通信总线,传输数据信号时只传输一组差分对信号数据,抗干扰能力强,工作速率高,在提高数据传输速率的同时节省布线空间,降低芯片的功耗;
2、同步高速串行总线的传输模式为数据发送端上升沿触发数据,数据接收端下降沿接收数据,这样接收端时钟下降沿会很稳定的卡在有效数据的中间位置,不会因为外部环境(温度等)变化影响数据采集,具有更高的稳定性和可靠性;
3、链路层时钟数据和用户层时钟数据完全隔离,并且可根据实际需求配置,具有更好的灵活性和通用性,数据传输效率满足当前车载控制系统的数据传输需求,提升了短周期通信的有效数据带宽;
4、设有故障自恢复机制,收发数据模块遵循标准CRC校验公式,接收端出现CRC校验错误时,不会更新数据,同时故障位上传,新的一包数据接收成功时故障位消除,校验准确性大大提高;
5、同步高速串行总线包含数据和时钟使能位,只有使能位有效(高电平)的时候才能进行数据接收和解析,防止在空闲时间,毛刺或者干扰进入数据接收端缓存区,导致上电通信建立失败,并且即使干扰信号进入接收端缓存区,由于错误校验和恢复机制,也不会影响通信的重新建立,具有更高的稳定性和可靠性;
6、同步高速串行总线链路层收发数据均使用两组差分对,一组差分对进行数据通信,另外一组差分对进行数据冗余备份,满足可靠性以及相关认证要求;
7、同步高速串行总线链路层软核设计做成一个FPGA通用模块,占用资源小,新项目不会因为使用此串行总线软核而耗费大量FPGA资源,该设计不局限某一款FPGA芯片,并且不要求FPGA芯片具有高速收发器资源,开发成本低,不但支撑当前既有车载控制器产品的需求,也可以作为新产品的通用模块使用,可成为车载控制系统背板高速通信的一种标准总线;
8、既适用于车载设备背板数据高速传输,同样适用于板卡内部芯片间数据高速传输,同时由于其链路层信号简单,能够兼容既有模拟Linkport的总线链路层控制器,无需重新开发任何硬件板卡。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明实施例提供的一种基于FPGA的车载系统数据传输方法整体流程图;
图2是本实施例所揭示的链路层驱动工作流程图;
图3是图1所揭示的步骤S1整体流程图;
图4是图1所揭示的步骤S2整体流程图;
图5是本发明实施例提供的一种基于FPGA的车载系统同步高速串行总线结构框架图;
图6是本发明实施例提供的链路层软件架构图;
图7是本实施例所提供的简化背板信号连接图。
其中:1、数据发送单元;2、数据接收单元;3、比较更新单元;11、发送端数据缓存模块;12、发送端CRC校验模块;13、并串转换模块;14、串行数据发送模块;21、接收端数据缓存模块;22、串并转换模块;23、接收端CRC校验模块。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一:
参照图1至图4所示,本实例揭示了一种基于FPGA的车载系统数据传输方法(以下简称“方法”)的具体实施方式。
具体而言,参照图1和图2所示,本实施例所揭示的方法包括以下步骤:
步骤S1、根据一发送使能信号对发送数据进行拆分获得拆分数据,对所述拆分数据进行校验获得第一CRC校验值,并对所述拆分数据进行并串转换获得串行数据。
具体而言,参照图3所示,步骤S1包括以下步骤:
S11、根据所述发送使能信号将所述发送数据拆分获得所述拆分数据,然后将所述拆分数据依次存放在发送端双口RAM的存放端口的地址中;
S12、在每个所述拆分数据存放的同时,将其输入到CRC校验函数,获得所述第一CRC校验值,将所述第一CRC校验值通过所述发送端双口RAM的所述存放端口写入;
S13、在将所述第一CRC校验值写入的同时,触发并串转换使能信号,开始并串转换,基于所述发送端双口RAM的转换端口获取所述串行数据,同时产生一数据时钟使能信号;
S14、发送所述串行数据。
具体而言,用户在输入发送数据的同时,给发送使能信号一个时钟周期宽度的高电平脉冲,触发同步高速串行总线的发送过程,在本实施例中以发送数据为512bits位宽为例进行说明。
具体而言,同步高速串行总线链路层在检测到发送使能信号后,将512bits发送数据拆分为32个16bits的数据,然后依次存放在发送端双口RAM的A端口(A端口即为存放端口)0-31地址中。其中双口RAM是FPGA的片内资源,包含A和B两个端口,每个端口分别对应一组数据、地址和控制信号,其数据宽度和存储深度可根据需求任意配置,本实施例中将A端口配置为16bits数据位宽,地址存储深度为64,B端口(B端口即为转换端口)配置为1bit数据位宽,地址存储深度为1024。
具体而言,将每个16bits数据写入发送端双口RAM的同时,将其输入到CRC校验函数,并将得到的CRC校验结果参与下一个16bits数据的CRC运算,在进行完32个16bits数的CRC运算后,便得到了一个16bits的CRC校验值,即第一CRC校验值,然后将该校验值通过发送端双口RAM的A端口写入地址为32的内存中。
其中,CRC(Cyclic Redundancy check,循环冗余检验)是串行数据流的有效检错方案,CRC最根本的原理就是将原始数据除以某个固定的数,然后所得的余数就是CRC校验码,根据校验码位数的不同,常用的CRC循环冗余校验算法有:CRC8、CRC12、CCITT CRC16、ANSI CRC16、CRC32。CRC信息字段和校验字段的长度可以任意选定。CRC是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在数据帧后面部分,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。并且CRC检错能力极强,开销小,易于用编码器及检测电路实现。从其检错能力来看,它所不能发现的错误的几率仅为0.0047%以下。同时从性能上和开销上考虑,均远远优于奇偶校验及算术和校验等方式。因而,基于以上分析,本实施例中使用CRC16算法。
具体而言,在将第一CRC校验值写入双口RAM的同时,触发并串转换使能信号,开始并串转换过程。并串转换过程通过操作双口RAM的B端口实现,通过B端口依次读取地址为0-527的1bit数据,将其赋值给输出信号,然后经过单端信号到差分信号的转换后输出到背板总线上。利用双口RAM进行并串转换模块的设计,在实现并串转换功能的同时,实现了用户层数据到链路层数据的跨时钟域处理。一般情况下用户端数据时钟频率小于链路层数据时钟频率,由于链路层数据时钟和用户端数据时钟的不同,如果不做跨时钟域处理,将会导致亚稳态出现,影响数据传输的稳定性,同时这两个时钟可根据实际需求配置。此外,使用双口RAM设计不占用FPGA内部任何逻辑资源,减小FPGA逻辑代码量,提高了FPGA链路层驱动软件的可靠性。
具体而言,在开始并串转换的同时,会产生一数据时钟使能信号。该使能信号在数据的第1个bit数据输出到背板总线的同时拉高,在第528个bit数据输出到背板总线后拉低,高电平一共持续528个时钟周期。
然后执行步骤S2、根据一数据时钟使能信号接收所述串行数据并对所述串行数据进行串并转换获得并行数据,对所述并行数据进行校验获得第二CRC校验值。
具体而言,参照图4所示,步骤S2包括以下步骤:
S21、根据所述数据时钟使能信号判断是否缓存所述串行数据,若是则开始执行接收端双口RAM的转换端口的地址自加操作,将所述串行数据通过所述接收端双口RAM的所述转换端口依次缓存;
S22、将所述串行数据最后缓存到所述接收端双口RAM的同时,启动串并转换,通过所述接收端双口RAM的存放端口获取所述并行数据;
S23、在所述存放端口读出所述并行数据的同时,将其输入到所述CRC校验函数,获得所述第二CRC校验值。
具体而言,接收端的数据缓存同样使用双口RAM实现,并且接收端只有在数据时钟使能信号高电平有效的时候才能进行数据接收和解析,防止在空闲时间,毛刺或者干扰进入数据接收端缓存区,提高了数据传输的可靠性。因此当检测到数据时钟使能有效后,开始执行接收端双口RAM的B端口地址的自加操作,实现将一帧数据的528bits通过B端口依次缓存到地址为0-527的地址中。其中,接收端双口RAM的配置与发送端双口RAM完全一致(将A端口配置为16bits数据位宽,地址存储深度为64,B端口配置为1bit数据位宽,地址存储深度为1024),简化了驱动设计。
具体而言,将第528bit缓存到接收端双口RAM的同时,启动串并转换过程。通过接收端双口RAM的A端口依次读出地址0-31内的16bits数据,并由低到高拼接为一个512bits的内部变量,即实现接收数据的串并转换。
具体而言,从接收端双口RAM的A端口读出16bits数据的同时,将其输入到CRC校验函数,并将得到的CRC校验结果参与下一个16bits数据的CRC运算,进行完32个16bits数的CRC运算后,得到16bits的第二CRC校验值。
然后执行步骤S3、比较所述第一CRC校验值和所述第二CRC校验值,若一致,则根据所述并行数据更新用户端数据;若不一致,则丢弃所述并行数据并产生一复位信号进行复位。
具体而言,将第二CRC校验值与从接收端双口RAM的A端口第32地址读出的第一CRC校验值进行比对,如果两者完全一致,代表校验通过,此时将接收正确标志位置1,同时更新用户端接收数据;如果两者不一致,说明校验未通过,此时将接收正确标志位置0,同时丢弃当前帧数据,用户端保持上一帧正常接收的数据。并且此时会产生一个复位信号对接收端数据缓存模块进行复位,保证不会对下一帧数据的通信造成影响,从而具备故障自恢复机制。
实施例二:
结合实施例一所揭示的一种基于FPGA的车载系统数据传输方法,本实施例揭示了一种基于FPGA的车载系统同步高速串行总线结构(以下简称“总线结构”)的具体实施示例。
参照图5和图6所示,所述总线结构包括:
数据发送单元1,根据一发送使能信号对发送数据进行拆分获得拆分数据,对所述拆分数据进行校验获得第一CRC校验值,并对所述拆分数据进行并串转换获得串行数据;
数据接收单元2,根据一数据时钟使能信号接收所述串行数据并对所述串行数据进行串并转换获得并行数据,对所述并行数据进行校验获得第二CRC校验值;
比较更新单元3,比较所述第一CRC校验值和所述第二CRC校验值,若一致,则根据所述并行数据更新用户端数据;若不一致,则丢弃所述并行数据并产生一复位信号进行复位。
具体而言,所述数据发送单元1包括:
发送端数据缓存模块11,根据所述发送使能信号将所述发送数据拆分获得所述拆分数据,然后将所述拆分数据依次存放在发送端双口RAM的存放端口的地址中;
发送端CRC校验模块12,在每个所述拆分数据存放的同时,将其输入到CRC校验函数,获得所述第一CRC校验值,将所述第一CRC校验值通过所述发送端双口RAM的所述存放端口写入;
并串转换模块13,在将所述第一CRC校验值写入的同时,触发并串转换使能信号,开始并串转换,基于所述发送端双口RAM的转换端口获取所述串行数据,同时产生一数据时钟使能信号;
串行数据发送模块14,发送所述串行数据。
具体而言,所述数据接收单元2包括:
接收端数据缓存模块21,根据所述数据时钟使能信号判断是否缓存所述串行数据,若是则开始执行接收端双口RAM的转换端口的地址自加操作,将所述串行数据通过所述接收端双口RAM的所述转换端口依次缓存;
串并转换模块22,将所述串行数据最后缓存到所述接收端双口RAM的同时,启动串并转换,通过所述接收端双口RAM的存放端口获取所述并行数据;
接收端CRC校验模块23,在所述存放端口读出所述并行数据的同时,将其输入到所述CRC校验函数,获得所述第二CRC校验值。
具体而言,所述总线结构还包括用户发送控制模块、PLL模块、跨时钟域处理模块、总线接口同步时钟等。
具体而言,本实施例提供一种点对点同步串行总线,总线同步时钟可达100Mhz,具备上电初始化通信建立技术、打断重连技术、总线传输校验技术、高速数据缓存技术以及高速数据时钟边沿数据采样技术,串行总线链路层软核设计做成一个FPGA通用模块,占用资源小,该设计不局限某一款FPGA芯片。本实施例中总线结构的基本参数和主要的技术性能为:(1)总线电平标准:LVDS25;(2)通讯方式:全双工;(3)总线时钟频率:最高可达100Mhz;(4)时钟单边沿触发数据;(5)校验方式:CRC校验;(6)数据帧大小:512bits;数据量度单位;(7)总线收发数据2组差分对,互为冗余设计。
具体而言,总线简化的背板信号连接如图7所示,时钟和数据均采用差分信号,可提高信号抗干扰能力。每个板卡包含发送和接收两部分,可独立工作,为全双工通信。传输的信号包含数据信号、时钟信号和使能位,只有使能位有效(高电平)的时候才能进行数据接收和解析。收发模块各有两组差分信号,一组差分对进行数据通信,另外一组差分对(图7中未画出)进行数据冗余备份,满足可靠性以及相关认证要求。
具体而言,数据发送端使用时钟上升沿触发数据发送,数据接收端使用时钟下降沿触发数据接收,这样接收端时钟下降沿会很稳定的卡在有效数据的中间位置,提高总线稳定性。另外,为了保证同步高速串行总线在本实施例中设置的100Mhz时钟频率下稳定运行,硬件PCB板需要进行差分信号的阻抗匹配和差分线等长设计。
具体而言,为了提高FPGA软件的可靠性,本实施例中没有手动编写串并和并串转换模块,节省了片内寄存器和逻辑资源。FPGA内部包含丰富的双口RAM硬件资源,同时两个端口的数据位宽大小在一定程度上是可配置的,例如:一片共享内存,CPU的内存访问数据单元是8位,DSP的内存访问数据单元是16位,两者都可以访问这片共享内存。本实施例充分利用FPGA内部的双口RAM的这一优势,将双口RAM的其中一个端口的数据位宽设置为1位,另一个端口的数据位宽设置为16位,这样即可以实现串并和并串转换功能。用户将16位数据或者1位数据写入双口RAM某一个端口之后,用户可以从另一个端口将1位或16位数据读出。不占用FPGA内部任何逻辑资源,减小FPGA逻辑代码量,提高了FPGA的可靠性。
具体而言,通信失败的最终表现形式都是数据接收端的数据CRC校验错误,本实施例中当数据接收端出现CRC校验错误的时候,会同时产生一个全局复位信号,不仅复位数据接收端的相关程序模块,也复位数据发送端的相关程序模块,等待用户下一次的数据发送使能信号,重新启动新一次的数据发送和数据接收,满足点对点同步串行总线打断重连功能、故障恢复功能要求。
具体而言,发送端数据缓存模块11和接收端数据缓存模块21为用户提供同步高速串行总线的访问接口。本实施例中以发送端和接收端的有效数据位宽是512bits为例,1帧数据(数据位512位和CRC校验位16位)大小为528bits,在时钟频率100Mhz条件下,传输时间为5.28μs,加上FPGA内部逻辑处理时间,100μs之内可以传输10帧数据,提升了短周期通信的有效数据带宽,完全满足现有车载控制系统对数据传输速率的要求。
本实施例所揭示的基于FPGA的车载系统同步高速串行总线结构与实施例一所揭示的一种基于FPGA的车载系统数据传输方法中其余相同部分的技术方案,请参考实施例一所述,在此不再赘述。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于FPGA的车载系统数据传输方法,其特征在于,包括:
数据发送步骤:根据一发送使能信号对发送数据进行拆分获得拆分数据,对所述拆分数据进行校验获得第一CRC校验值,并对所述拆分数据进行并串转换获得串行数据;
数据接收步骤:根据一数据时钟使能信号接收所述串行数据并对所述串行数据进行串并转换获得并行数据,对所述并行数据进行校验获得第二CRC校验值;
比较更新步骤:比较所述第一CRC校验值和所述第二CRC校验值,若一致,则根据所述并行数据更新用户端数据;若不一致,则丢弃所述并行数据并产生一复位信号进行复位。
2.如权利要求1所述的基于FPGA的车载系统数据传输方法,其特征在于,所述数据发送步骤包括:
发送端数据缓存步骤:根据所述发送使能信号将所述发送数据拆分获得所述拆分数据,然后将所述拆分数据依次存放在发送端双口RAM的存放端口的地址中;
发送端CRC校验步骤:在每个所述拆分数据存放的同时,将其输入到CRC校验函数,获得所述第一CRC校验值,将所述第一CRC校验值通过所述发送端双口RAM的所述存放端口写入;
并串转换步骤:在将所述第一CRC校验值写入的同时,触发并串转换使能信号,开始并串转换,基于所述发送端双口RAM的转换端口获取所述串行数据,同时产生一数据时钟使能信号;
串行数据发送步骤:发送所述串行数据。
3.如权利要求2所述的基于FPGA的车载系统数据传输方法,其特征在于,所述数据接收步骤包括:
接收端数据缓存步骤:根据所述数据时钟使能信号判断是否缓存所述串行数据,若是则开始执行接收端双口RAM的转换端口的地址自加操作,将所述串行数据通过所述接收端双口RAM的所述转换端口依次缓存;
串并转换步骤:将所述串行数据最后缓存到所述接收端双口RAM的同时,启动串并转换,通过所述接收端双口RAM的存放端口获取所述并行数据;
接收端CRC校验步骤:在所述存放端口读出所述并行数据的同时,将其输入到所述CRC校验函数,获得所述第二CRC校验值。
4.如权利要求3所述的基于FPGA的车载系统数据传输方法,其特征在于,所述发送端双口RAM和所述接收端双口RAM的配置一致。
5.如权利要求3所述的基于FPGA的车载系统数据传输方法,其特征在于,所述接收端数据缓存步骤中,在所述数据时钟使能信号为高电平时执行所述串行数据的缓存。
6.如权利要求2所述的基于FPGA的车载系统数据传输方法,其特征在于,所述发送端数据缓存步骤中,在所述发送使能信号为高电平时执行所述发送数据的拆分。
7.一种基于FPGA的车载系统同步高速串行总线结构,其特征在于,包括:
数据发送单元,根据一发送使能信号对发送数据进行拆分获得拆分数据,对所述拆分数据进行校验获得第一CRC校验值,并对所述拆分数据进行并串转换获得串行数据;
数据接收单元,根据一数据时钟使能信号接收所述串行数据并对所述串行数据进行串并转换获得并行数据,对所述并行数据进行校验获得第二CRC校验值;
比较更新单元,比较所述第一CRC校验值和所述第二CRC校验值,若一致,则根据所述并行数据更新用户端数据;若不一致,则丢弃所述并行数据并产生一复位信号进行复位。
8.如权利要求7所述的基于FPGA的车载系统同步高速串行总线结构,其特征在于,所述数据发送单元包括:
发送端数据缓存模块,根据所述发送使能信号将所述发送数据拆分获得所述拆分数据,然后将所述拆分数据依次存放在发送端双口RAM的存放端口的地址中;
发送端CRC校验模块,在每个所述拆分数据存放的同时,将其输入到CRC校验函数,获得所述第一CRC校验值,将所述第一CRC校验值通过所述发送端双口RAM的所述存放端口写入;
并串转换模块,在将所述第一CRC校验值写入的同时,触发并串转换使能信号,开始并串转换,基于所述发送端双口RAM的转换端口获取所述串行数据,同时产生一数据时钟使能信号;
串行数据发送模块,发送所述串行数据。
9.如权利要求8所述的基于FPGA的车载系统同步高速串行总线结构,其特征在于,所述数据接收单元包括:
接收端数据缓存模块,根据所述数据时钟使能信号判断是否缓存所述串行数据,若是则开始执行接收端双口RAM的转换端口的地址自加操作,将所述串行数据通过所述接收端双口RAM的所述转换端口依次缓存;
串并转换模块,将所述串行数据最后缓存到所述接收端双口RAM的同时,启动串并转换,通过所述接收端双口RAM的存放端口获取所述并行数据;
接收端CRC校验模块,在所述存放端口读出所述并行数据的同时,将其输入到所述CRC校验函数,获得所述第二CRC校验值。
10.如权利要求9所述的基于FPGA的车载系统同步高速串行总线结构,其特征在于,所述发送端双口RAM和所述接收端双口RAM的配置一致;所述接收端数据缓存模块中,在所述数据时钟使能信号为高电平时执行所述串行数据的缓存;所述发送端数据缓存模块中,在所述发送使能信号为高电平时执行所述发送数据的拆分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110342353.XA CN113032319B (zh) | 2021-03-30 | 2021-03-30 | 基于fpga的车载系统数据传输方法及同步高速串行总线结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110342353.XA CN113032319B (zh) | 2021-03-30 | 2021-03-30 | 基于fpga的车载系统数据传输方法及同步高速串行总线结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113032319A true CN113032319A (zh) | 2021-06-25 |
CN113032319B CN113032319B (zh) | 2023-09-05 |
Family
ID=76452921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110342353.XA Active CN113032319B (zh) | 2021-03-30 | 2021-03-30 | 基于fpga的车载系统数据传输方法及同步高速串行总线结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032319B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113965287A (zh) * | 2021-09-29 | 2022-01-21 | 中国船舶重工集团公司七五0试验场 | 一种基于FPGA的LinkPort通信系统及方法 |
CN114760008A (zh) * | 2022-03-29 | 2022-07-15 | 苏州联讯仪器有限公司 | 一种用于spi总线的通信方法、装置、设备及存储介质 |
CN114978417A (zh) * | 2022-03-29 | 2022-08-30 | 浙江大学 | 一种基于两路blvds总线的数据通信校验方法及系统 |
CN116795759A (zh) * | 2023-06-02 | 2023-09-22 | 上海蓝箭鸿擎科技有限公司 | 一种通用型异步串口的fpga实现方法 |
CN117931720A (zh) * | 2024-03-22 | 2024-04-26 | 南京大学 | 基于局部总线结构改进的串行总线及数据交互方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040130954A1 (en) * | 2002-09-13 | 2004-07-08 | Kazuya Ogawa | Data transfer unit and method |
CN105573239A (zh) * | 2016-01-11 | 2016-05-11 | 南京南瑞集团公司 | 一种高速背板总线通讯控制装置及方法 |
CN106209307A (zh) * | 2016-06-29 | 2016-12-07 | 醴陵恒茂电子科技有限公司 | 多颗fpga片间互联方法与系统 |
CN107483157A (zh) * | 2017-09-01 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种基于fpga的crc校验方法和系统 |
CN108628784A (zh) * | 2018-04-28 | 2018-10-09 | 湖南大学 | 串行通信器及串行通信系统 |
CN110515879A (zh) * | 2019-08-02 | 2019-11-29 | 广州粒子微电子有限公司 | 一种异步传输装置及其传输方法 |
CN111200581A (zh) * | 2018-11-19 | 2020-05-26 | 北京华航无线电测量研究所 | 基于lvds总线的数据收发模块 |
-
2021
- 2021-03-30 CN CN202110342353.XA patent/CN113032319B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040130954A1 (en) * | 2002-09-13 | 2004-07-08 | Kazuya Ogawa | Data transfer unit and method |
CN105573239A (zh) * | 2016-01-11 | 2016-05-11 | 南京南瑞集团公司 | 一种高速背板总线通讯控制装置及方法 |
CN106209307A (zh) * | 2016-06-29 | 2016-12-07 | 醴陵恒茂电子科技有限公司 | 多颗fpga片间互联方法与系统 |
CN107483157A (zh) * | 2017-09-01 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种基于fpga的crc校验方法和系统 |
CN108628784A (zh) * | 2018-04-28 | 2018-10-09 | 湖南大学 | 串行通信器及串行通信系统 |
CN111200581A (zh) * | 2018-11-19 | 2020-05-26 | 北京华航无线电测量研究所 | 基于lvds总线的数据收发模块 |
CN110515879A (zh) * | 2019-08-02 | 2019-11-29 | 广州粒子微电子有限公司 | 一种异步传输装置及其传输方法 |
Non-Patent Citations (3)
Title |
---|
戴亮: ""基带模块数字中频信号调制解调涉及研究"" * |
戴亮: ""基带模块数字中频信号调制解调涉及研究"", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》, 15 February 2018 (2018-02-15), pages 4 * |
戴亮: ""基带模块数字中频信号调制解调涉及研究"", pages 4 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113965287A (zh) * | 2021-09-29 | 2022-01-21 | 中国船舶重工集团公司七五0试验场 | 一种基于FPGA的LinkPort通信系统及方法 |
CN113965287B (zh) * | 2021-09-29 | 2023-09-01 | 中国船舶重工集团公司七五0试验场 | 一种基于FPGA的LinkPort通信系统及方法 |
CN114760008A (zh) * | 2022-03-29 | 2022-07-15 | 苏州联讯仪器有限公司 | 一种用于spi总线的通信方法、装置、设备及存储介质 |
CN114978417A (zh) * | 2022-03-29 | 2022-08-30 | 浙江大学 | 一种基于两路blvds总线的数据通信校验方法及系统 |
CN114978417B (zh) * | 2022-03-29 | 2023-12-19 | 浙江大学 | 一种基于两路blvds总线的数据通信校验方法及系统 |
CN116795759A (zh) * | 2023-06-02 | 2023-09-22 | 上海蓝箭鸿擎科技有限公司 | 一种通用型异步串口的fpga实现方法 |
CN117931720A (zh) * | 2024-03-22 | 2024-04-26 | 南京大学 | 基于局部总线结构改进的串行总线及数据交互方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113032319B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113032319B (zh) | 基于fpga的车载系统数据传输方法及同步高速串行总线结构 | |
CN111200581B (zh) | 基于lvds总线的数据收发模块 | |
CN110213143B (zh) | 一种1553b总线ip核及监视系统 | |
US7810013B2 (en) | Memory device that reflects back error detection signals | |
US7243173B2 (en) | Low protocol, high speed serial transfer for intra-board or inter-board data communication | |
CN114443170B (zh) | Fpga动态并行加卸载系统 | |
CN108600047B (zh) | 串行传输芯片及serdes电路测试方法 | |
CN112380157A (zh) | 一种带fifo缓存和校验功能的iic总线的通信装置 | |
CN114629966B (zh) | 一种基于fpga的hdlc协议实现方法与系统 | |
CN112395230A (zh) | 一种基于可编程逻辑器件的uart接口扩展电路 | |
CN112559410A (zh) | 一种基于fpga的lio总线扩展uart外设系统及方法 | |
JP3757204B2 (ja) | エラー検出/訂正方式及び該方式を用いた制御装置 | |
CN115454881A (zh) | Risc-v架构的调试系统及调试方法 | |
CN216352286U (zh) | 一种i2c总线的检测装置 | |
CN113709010B (zh) | 一种不限帧长的Modbus通信协议系统 | |
WO2022062925A1 (zh) | 通信方法、设备、系统及计算机可读存储介质 | |
CN112835834B (zh) | 数据传输系统 | |
CN111930582B (zh) | 系统管理总线检测平台、处理器及系统管理总线检测方法 | |
KR20080013973A (ko) | 통신 시스템의 적어도 2개의 가입자들 간의 통신을 위한방법 | |
CN114116584A (zh) | 接口板卡、用户设备及cpu的测试系统 | |
CN112147918B (zh) | 基于arm+fpga+dsp架构的异步数据交互方法及系统 | |
WO2014027223A1 (en) | Data bus network interface module and method therefor | |
CN112768444A (zh) | 集成电路芯片、数据分析系统及电子设备 | |
CN117435426B (zh) | 一种芯片内串行数据溢出校验方法 | |
CN114726482B (zh) | 一种spi数据传输方法 |
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 |