FPGA纯逻辑CAN通信IP系统及CAN报文收发调度方法与流程

摘要: 本发明涉及fpga硬件ip核设计,具体涉及一种fpga纯逻辑can通信ip系统及can报文收发调度方法。背景技术:1、can总线具有硬件布线简单、抗干扰能力强、...
FPGA纯逻辑CAN通信IP系统及CAN报文收发调度方法与流程

本发明涉及fpga硬件ip核设计,具体涉及一种fpga纯逻辑can通信ip系统及can报文收发调度方法。

背景技术:

1、can总线具有硬件布线简单、抗干扰能力强、通信实时性好、支持多节点广播通信、传输距离远的技术优势,广泛应用于汽车制造、信息通信等核心领域,是目前工控、车载控制系统中不可或缺的现场总线通信标准。在各类can总线实现架构中,基于现场可编程门阵列(fpga)搭建can通信系统,凭借其硬件时序精准可控、并行处理能力突出、场景适配灵活度高的特点,已成为高精度工业和车载can通信的主流实现方式,fpga端can通信架构的设计优劣,直接决定了整套控制系统的通信稳定性和工程场景适配能力。

2、随着智能车载设备与工业自动化设备功能的持续升级,设备总线的数据交互频次与传输体量大幅提升,行业对can总线通信的实时性、稳定性、带宽利用率和低资源开销要求愈发严苛。目前,本领域技术整体逐步向硬件自主可控、无软件调度延时、架构标准化通用、轻量化无主机部署的方向迭代,传统高度依赖软件调度、软硬件强耦合的can通信架构已难以适配当前高实时、高可靠、批量化的复杂工程场景。当前主流的fpga搭载can通信系统采用主控协同架构,该架构依靠异构cpu、zynq处理系统、microblaze嵌入式软核等主控设备,由主控运行软件程序主动对标准can控制器ip核进行操控,来完成参数配置、can报文收发、数据搬运以及状态检测等全部总线通信任务。在这一架构下,can控制器ip核本身仅承担协议层与物理层的基础功能,其寄存器配置、收发触发、数据读取等所有控制动作均依赖主控设备通过软件指令逐一下发,can总线通信的运行节奏实质上由主控设备的软件调度节奏所决定。

3、在车载电子、工业控制等实际应用场景中,主控设备往往同时并行运行多项业务线程,承担着人机交互、算法处理、多外设管理等复杂任务。当主控设备负载较高或者can通信线程优先级较低时,can通信线程的调度极易被其他业务抢占,进而造成can报文发送延迟、数据缓存堆积、can报文丢失等问题,严重情况下会造成总线通信中断,直接影响整车或整套工业控制系统的运行稳定性与安全性。在车载场景中,can总线承担着动力系统、制动系统、车身电子等关键安全相关报文的传输任务,报文延迟或丢失可能引发不可接受的安全后果;在工业控制场景中,can总线连接着传感器、执行器、可编程逻辑控制器等核心设备,通信中断可能导致生产线停机、设备损坏甚至人员安全事故。此外,该架构的数据交互需要经由主控cpu中转,数据传输过程中需要经过多次寄存器读写、多级缓存转发等多个流转环节,一方面带来较高传输时延、降低总线有效带宽利用率,另一方面持续消耗主控设备算力,提升系统整体资源占用水平。同时,该架构运行需要依托主控硬件以及嵌入式操作系统,在不具备主控硬件、无操作系统的轻量化嵌入式场景下难以搭建can总线通信功能,且整套通信系统的开发、调试、部署工作依赖嵌入式软件开发人员编写专用驱动程序和调度代码,软硬件耦合程度高,逻辑工程师难以独立完成对can通信功能的开发,人力依赖性强、研发流程复杂、开发成本高、周期长。

4、针对主控协同架构高度依赖主控设备的问题,本领域技术人员尝试采用在fpga内部自行实现can控制器的方式进行技术改进,形成了一些摆脱商用标准ip限制的改进方案。

5、例如,公开号为cn110321304a的公开技术“车载环境下fpga和stm32之间的总线通信系统”,该方案在fpga端采用硬件描述语言自行设计can控制器,通过寄存器模块、发送fifo模块、数据流处理模块、时序控制模块、接收数据过滤器、接收fifo模块、错误检测模块以及状态机模块的协同配合,以纯硬件逻辑及状态机方式实现can报文的收发控制,无需软核或硬核cpu参与。

6、又如,公开号为cn109962830a的公开技术“一种基于fpga的高效can总线接口”,该方案通过在fpga内部搭建数字can控制器逻辑实现基础can报文收发,试图缓解标准商用can ip核高度依赖主控、商用ip适配受限的问题,并简化硬件适配架构,降低对商用标准ip的使用依赖。上述自行实现can控制器的技术方案,代表了本领域为摆脱主控设备依赖而探索的另一技术方向,在特定场景下能够减少对主控设备软件调度的依赖。

7、上述自行实现can控制器的方案需要从协议层组包解包、crc校验、总线时序同步到位填充、错误检测等全部can2.0协议功能均由自定义逻辑重新实现,协议兼容性与运行稳定性需要经过大量验证才能达到成熟商用ip核的水平,且内部交互接口多采用自定义方式,未遵循axi_lite、apb、axis等工业通用总线标准,难以适配当前主流的fpga标准化开发体系。此外,部分此类方案仍采用软件轮询方式完成寄存器配置与数据收发调度,未完全脱离主控设备独立运行,在主控高负载工况下仍容易出现调度延迟、can报文积压和数据丢帧等问题。由此可见,本领域现有技术整体上呈现出两条技术路线:一条路线沿用主控协同架构,通过主控设备软件操作成熟的标准can控制器ip核,协议兼容性好、接口标准化程度高,但通信实时性与稳定性受制于主控设备运行状态,且无法在无主控场景下独立部署;另一条路线在fpga内部自行实现完整can控制器,能够减少对主控设备的依赖,但需要重新实现全部can协议功能,协议兼容性验证成本高、接口自定义程度高、跨平台移植与复用难度大,且部分方案仍未完全摆脱主控设备依赖。两条路线之间存在一个共同的根本性技术矛盾:基于fpga的can通信系统无法在“复用成熟标准can控制器ip核以保障协议兼容性与接口通用性”与“脱离主控设备由纯逻辑自主完成控制调度以保障通信实时性与无主机部署能力”之间同时实现。

8、这一根本性技术矛盾在实际工程应用中造成了一系列难以接受的后果。在车载电子领域,整车can网络节点众多、报文密集,且对通信实时性与功能安全等级要求极高,采用主控协同架构时,主控设备负载波动可能导致关键安全报文延迟,而采用自研控制器方案时,协议兼容性的充分验证又需要投入大量测试资源与时间成本,二者均难以同时满足车载场景对实时性、安全性、标准化的综合要求。在工业自动化领域,产线设备升级换代频繁、fpga芯片型号多样,主控协同架构受限于主控硬件条件难以适配小型化、轻量化设备,自研控制器方案则因接口自定义而难以在不同fpga平台间快速移植,导致设备维护与升级成本居高不下。在多节点分布式测控系统中,往往需要在同一fpga内扩展多路独立can通信节点,主控协同架构下多路can通信线程对主控资源的竞争进一步加剧了调度延迟风险,自研控制器方案则需要为每路节点重复实现完整协议逻辑,资源开销与验证工作量成倍增长。因此,本领域亟需一种能够在复用成熟标准can控制器ip核的基础上,摆脱主控设备依赖、由纯硬件逻辑自主完成can通信全部控制与调度的新型can通信架构,以满足高精度、高可靠、多场景的工业及车载通信需求。

技术实现思路

1、本发明的目的是针对现有技术对应的不足,提供一种fpga纯逻辑can通信ip系统及can报文收发调度方法,该系统采用物理上相互独立的双配置通路与类 dma 纯硬件自主调度架构,支持无主机独立运行与主机协同配置两种工作模式,在遵循标准总线协议、保障接口通用性的基础上,有效降低主控算力占用,提升can总线通信的实时性、稳定性与场景适配灵活性。

2、本发明的目的是采用下述方案实现的:

3、一种fpga纯逻辑can通信ip系统,整体集成于fpga芯片内部,采用类dma的纯硬件自主调度架构,不经过主控设备内存中转,由can主控逻辑模块直接在数据缓存模块与外部标准can控制器ip核之间完成can报文的硬件搬运与收发调度,包括can主控逻辑模块以及数据缓存模块;

4、所述can主控逻辑模块为纯硬件逻辑实现,通过标准总线接口对接外部标准can控制器ip核,内部设置有静态配置通路,静态配置通路用于输出逻辑综合阶段固化的硬件常量参数,can主控逻辑模块内部还设置有动态配置通路,动态配置通路与静态配置通路在物理上相互独立,动态配置通路用于传输寄存器配置参数、寄存器地址信号以及读写同步控制信号以实现运行阶段参数在线更新;两条通路在模块内部汇合后接入各配置寄存器,每个配置寄存器以静态配置通路输出的rtl例化参数作为复位初值,在系统上电复位期间完成静态初值载入,复位释放后由动态配置通路在寄存器写操作时更新寄存器值、在无寄存器写操作时保持当前值,重新上电复位时再次载入静态初值;动态配置通路的写入经使能寄存器门控,使能寄存器配置为0时参数配置寄存器值无效、配置寄存器保持静态初值,使能寄存器配置为1时参数配置寄存器值生效,使无主机独立运行模式下动态配置通路对应的外部配置接口悬空时固化参数仍持续有效;系统内部的配置交互链路与can报文数据交互链路在物理上相互独立、互不干扰;

5、系统具备两种可切换的工作模式,分别为无主机独立运行模式与主机协同运行模式;在无主机独立运行模式下,can主控逻辑模块仅通过静态配置通路读取固化的硬件常量参数完成上电初始化,apb从机配置模块旁路休眠,动态配置通路对应的外部配置接口(如apb配置接口)可悬空设置,由硬件有限状态机独立完成can报文收发调度;在主机协同运行模式下,can主控逻辑模块通过动态配置通路接收寄存器配置信号完成初始配置,并可在系统运行过程中在线更新控制参数,参数更新无需中断can总线通信或重启fpga;

6、can主控逻辑模块搭载有硬件有限状态机,基于配置通路获取的参数自主执行can报文收发调度;硬件有限状态机设置有复位状态、空闲状态、仲裁轮询工作状态以及异常处理状态,仲裁轮询工作状态下遵循先收后发的逻辑循环工作,优先轮询外部标准can控制器ip核的接收缓存状态处理can报文接收任务,接收任务完成后轮询检测数据缓存模块中待发送can报文的缓存状态并启动发送流程,can报文发送过程中若出现新的总线接收事件则优先跳转执行接收处理;

7、所述数据缓存模块与can主控逻辑模块连接,用于缓存待发送can报文和有效接收can报文;

8、can主控逻辑模块与数据缓存模块之间通过标准总线接口完成can报文数据交互,全部can报文收发调度与数据搬运由纯硬件逻辑自主完成,无需外部主控设备下发读写指令。

9、优选地,还包括apb从机配置模块,apb从机配置模块通过apb总线接收外部主控设备下发的寄存器配置指令,依次完成指令解析、地址解码与寄存器数值锁存后,向动态配置通路输出寄存器配置参数、寄存器地址信号以及读写同步控制信号;apb从机配置模块仅完成参数配置与状态上报交互,不参与任何can报文数据的传输与处理;硬件层面apb配置接口悬空时外部无驱动输入,由fpga内部上拉或默认逻辑保证不会出现不定态。

10、优选地,所述can主控逻辑模块还集成有硬件can报文异常处理单元,硬件can报文异常处理单元用于识别can报文的帧格式错误、数据校验错误以及can控制器ip核返回的总线协议错误;识别到异常时,硬件can报文异常处理单元在硬件逻辑内部丢弃异常can报文并同步生成故障标记,故障标记写入专用故障状态寄存器供外部读取,同时更新接收错误计数rec与发送错误计数tec,错误计数达到对应阈值时硬件自动执行总线关闭处理,全程无需外部主控设备介入。

11、优选地,can主控逻辑模块内置独立的状态监控机制,通过硬件逻辑主动轮询读取外部标准can控制器ip核的全部关键状态寄存器,获取的状态信息包括接收缓存状态、发送缓存状态、接收错误计数rec、发送错误计数tec、总线工作模式、中断标志位、总线错误码等核心运行参数,并将上述状态值实时同步至apb从机配置模块的专用监控寄存器中;该状态信息既可以通过apb总线上传至外部主控设备,也可以直接引出至fpga的虚拟输入输出(vio)调试接口,支持在线实时观测调试。

12、另外,上述fpga纯逻辑can通信ip系统的can报文收发调度方法,包括以下步骤:

13、s1、系统上电初始化:can主控逻辑模块通过配置通路获取参数,自主完成系统初始化,无需外部主控设备参与;系统预设为无主机独立运行模式时,can主控逻辑模块通过静态配置通路读取逻辑综合阶段固化的硬件常量参数,复位期间将rtl例化参数作为配置寄存器的复位初值载入,无寄存器写操作时配置寄存器保持该初值,自主完成上电初始化,全程无需外部主控设备介入;系统预设为主机协同运行模式时,can主控逻辑模块通过动态配置通路等待接收寄存器配置信号完成初始参数加载,系统运行过程中外部主控设备可随时下发指令更新内部控制参数,更新过程无需中断can总线通信、无需重启fpga;

14、s2、持续can报文收发循环调度:can主控逻辑模块通过硬件有限状态机循环执行can报文收发,通过标准总线接口对接外部标准can控制器ip核完成报文收发,与数据缓存模块之间完成can报文数据交互;遵循先收后发原则,优先通过标准总线接口对接外部标准can控制器ip核接收外部can物理总线上的can报文并完成协议校验,将有效can报文缓存至数据缓存模块,接收任务完成后轮询检测待发送can报文并完成帧仲裁、组帧后经外部标准can控制器ip核转换输出至外部can物理总线,can报文发送过程中若出现新的总线接收事件则优先跳转执行接收处理;

15、全部can报文收发调度与数据搬运由纯硬件逻辑自主完成,无需外部主控设备下发读写指令,不经过主控设备内存中转。

16、优选地,步骤s2中接收can报文时,can主控逻辑模块依据can2.0协议规范以硬件并行方式完成帧格式校验与数据crc校验,同时接收can控制器ip核返回的总线状态信号;识别到帧格式错误、数据校验错误或总线协议错误时,硬件逻辑内部自主丢弃异常can报文并同步生成故障标记,同时完成总线错误计数与错误帧应答,全程无需外部主控设备介入判断。

17、优选地,在步骤s2的持续调度过程中,can主控逻辑模块通过硬件逻辑主动轮询读取外部标准can控制器ip核的全部关键状态寄存器,获取接收缓存状态、发送缓存状态、接收错误计数rec、发送错误计数tec、总线工作模式、中断标志位、总线错误码等核心运行参数,并将上述状态值实时同步至专用监控寄存器中,状态信息通过apb总线上传至外部主控设备或直接引出至fpga的虚拟输入输出(vio)调试接口。

18、优选地,步骤s1的上电初始化中,can主控逻辑模块进入模式确认状态,完成工作模式校验、外部标准can控制器ip核的axi_lite寄存器初始化配置、硬件过滤器与中断掩码等配套参数配置,校验通过后跳转至仲裁空闲状态进入步骤s2。

19、本发明的有益效果在于以下几点:

20、一种fpga纯逻辑can通信ip系统,整体集成于fpga芯片内部,采用类dma的纯硬件自主调度架构,不经过主控设备内存中转,由can主控逻辑模块直接在数据缓存模块与外部标准can控制器ip核之间完成can报文的硬件搬运与收发调度,包括can主控逻辑模块以及数据缓存模块;

21、所述can主控逻辑模块为纯硬件逻辑实现,通过标准总线接口对接外部标准can控制器ip核,内部设置有静态配置通路,静态配置通路用于输出逻辑综合阶段固化的硬件常量参数,can主控逻辑模块内部还设置有动态配置通路,动态配置通路与静态配置通路在物理上相互独立,动态配置通路用于传输寄存器配置参数、寄存器地址信号以及读写同步控制信号以实现运行阶段参数在线更新;两条通路在模块内部汇合后接入各配置寄存器,每个配置寄存器以静态配置通路输出的rtl例化参数作为复位初值,在系统上电复位期间完成静态初值载入,复位释放后由动态配置通路在寄存器写操作时更新寄存器值、在无寄存器写操作时保持当前值,重新上电复位时再次载入静态初值;动态配置通路的写入经使能寄存器门控,使能寄存器配置为0时参数配置寄存器值无效、配置寄存器保持静态初值,使能寄存器配置为1时参数配置寄存器值生效,使无主机独立运行模式下动态配置通路对应的外部配置接口悬空时固化参数仍持续有效;系统内部的配置交互链路与can报文数据交互链路在物理上相互独立、互不干扰;

22、系统具备两种可切换的工作模式,分别为无主机独立运行模式与主机协同运行模式;在无主机独立运行模式下,can主控逻辑模块仅通过静态配置通路读取固化的硬件常量参数完成上电初始化,apb从机配置模块旁路休眠,动态配置通路对应的外部配置接口(如apb配置接口)可悬空设置,由硬件有限状态机独立完成can报文收发调度;在主机协同运行模式下,can主控逻辑模块通过动态配置通路接收寄存器配置信号完成初始配置,并可在系统运行过程中在线更新控制参数,参数更新无需中断can总线通信或重启fpga;

23、can主控逻辑模块搭载有硬件有限状态机,基于配置通路获取的参数自主执行can报文收发调度;硬件有限状态机设置有复位状态、空闲状态、仲裁轮询工作状态以及异常处理状态,仲裁轮询工作状态下遵循先收后发的逻辑循环工作,优先轮询外部标准can控制器ip核的接收缓存状态处理can报文接收任务,接收任务完成后轮询检测数据缓存模块中待发送can报文的缓存状态并启动发送流程,can报文发送过程中若出现新的总线接收事件则优先跳转执行接收处理;

24、所述数据缓存模块与can主控逻辑模块连接,用于缓存待发送can报文和有效接收can报文;

25、can主控逻辑模块与数据缓存模块之间通过标准总线接口完成can报文数据交互,全部can报文收发调度与数据搬运由纯硬件逻辑自主完成,无需外部主控设备下发读写指令。

26、本发明所述的fpga纯逻辑can通信ip系统,采用类dma的纯硬件自主调度架构,其can报文仲裁、总线时序控制、硬件有限状态机跳转、can报文收发流程调度等全部核心功能,均由fpga组合逻辑与时序逻辑构成的纯硬件逻辑自主实现,全程无需嵌入式软件调度,也无需外部主控设备下发读写控制指令。与传统依赖cpu或软核操作can控制器ip核的方案相比,本发明采用硬件固定时序调度,调度延时极低且时序固定,时序稳定性远优于软件调度方案,可有效满足工业can总线高实时、高可靠的通信需求。

27、具体而言,本发明采用类dma的纯硬件自主调度架构,can报文的搬运路径由传统主控协同架构下“can控制器ip核接收缓存→主控cpu经总线逐字读取→主控内存暂存→主控cpu经总线逐字写出”这一需要主控cpu多次介入、多级缓存转发的冗长路径,缩短为“外部标准can控制器ip核→axi_lite标准总线→can主控逻辑模块→axis标准总线→数据缓存模块(blockram资源映射的发送、接收fifo)”的硬件直连路径,反向发送亦然。数据缓存单元直接映射为fpga内部blockram资源,硬件有限状态机直接映射为触发器与组合逻辑电路,整体架构不包含任何软核处理器与嵌入式软件程序,can报文在数据缓存模块与外部标准can控制器ip核之间由硬件逻辑直接搬运,全程不经过主控设备内存中转。该架构一方面省去了主控cpu逐字读写、内存中转等流转环节,端到端传输路径最短、传输时延最低,总线有效带宽利用率显著提升;另一方面彻底释放了主控设备算力,主控设备无需再周期性介入can报文收发,系统整体资源占用水平大幅降低。

28、同时,本发明通过标准总线接口对接外部成熟标准can控制器ip核,既复用了成熟ip核的协议兼容性与接口通用性,又摆脱了主控设备对通信调度的制约,从根本上解决了复用标准ip核与脱离主控自主调度不可兼得的技术矛盾。

29、进一步而言,本发明并未采用在fpga内部自行实现完整can控制器的技术路线,而是将can2.0协议的物理层时序转换、位时序同步、差分信号收发、组帧解帧、crc校验、位填充等协议处理功能交由外部成熟的商用标准can控制器ip核(本实施例为xilinx官方axi_can(5.0)标准ip核)完成,自研的can主控逻辑模块仅通过axi_lite标准总线完成对该ip核的寄存器配置、待发送报文下发、接收报文回传与总线状态读取,并完整适配该ip核的基础帧收发、硬件过滤器配置、波特率配置、ip内部回环等全部标准功能。这一功能划分使得本发明在不重新实现、不重复验证can2.0协议栈的前提下,直接继承了成熟商用ip核经厂商长期验证的协议兼容性与运行稳定性,规避了自研can控制器方案协议兼容性验证成本高、稳定性风险大的固有缺陷;同时,对ip核的全部操控动作又由自研纯硬件逻辑以标准总线时序自主完成,不依赖任何主控cpu或软核。由此,本发明以“成熟协议ip核+纯硬件自主调度逻辑”的标准化协同架构,同时获得了自研方案的无主机自主能力与商用ip核方案的高协议兼容性,二者通过axi_lite、axis等标准总线解耦对接,模块边界清晰、替换升级方便。

30、本发明在can主控逻辑模块内部增设一动态配置通路,并使动态配置通路与静态配置通路在物理上相互独立,同时划分了配置交互链路与can报文数据交互链路两类工作链路,两类工作链路硬件通路相互独立、功能边界明确,不存在信号混杂与资源抢占问题:配置交互链路仅传输寄存器地址信号、配置参数、读写同步控制信号等配置类信号,专门用于系统的参数配置;can报文数据交互链路专门负责can报文的接收、缓存与发送交互工作。因此,本发明能够有效避免因配置指令与业务can报文并行传输而带来的信号串扰、can报文延迟、配置参数失真、总线拥堵等问题,从硬件底层保障了can报文传输的纯净性,从而大幅提升了工业场景下can总线通信的稳定性和可靠性。

31、尤为关键的是,静态配置通路与动态配置通路并非简单并联,而是在模块内部汇合后接入各配置寄存器:每个配置寄存器以静态配置通路输出的rtl例化参数作为复位初值,在系统上电复位期间完成静态初值载入,复位释放后由动态配置通路在寄存器写操作时更新寄存器值、在无寄存器写操作时保持当前值,重新上电复位时再次载入静态初值;动态配置通路的写入经使能寄存器门控,使能寄存器配置为0时参数配置寄存器值无效、配置寄存器保持静态初值,使能寄存器配置为1时参数配置寄存器值生效,使无主机独立运行模式下动态配置通路对应的外部配置接口悬空时固化参数仍持续有效。该硬件汇合机制具有不可替代的技术作用:若仅设置动态配置通路,则系统上电时必须存在主控设备并先行完成寄存器初始化,无主机场景下系统将无法启动;若仅设置静态配置通路,则参数经逻辑综合固化为硬件常量、运行阶段不可软件改写,设备无法在运行中在线调整工作模式、中断使能、滤波器等控制参数,场景适配灵活性差。本发明通过复位初值载入、写使能更新、无写保持与使能寄存器门控的硬件时序配合,使上电复位阶段固化参数必然被可靠载入(此时使能寄存器配置为0、参数配置寄存器值无效,保证无主机条件下系统亦可自主完成初始化),复位释放后动态通路仅在有效寄存器写操作时更新寄存器、无写操作时静态值持续保持,重新上电后再次加载静态固化参数;两种通路的切换完全由硬件复位时序与写使能逻辑决定,无需软件干预,不存在通路竞争、配置冲突或切换死区,从硬件机制上同时保证了“无主机必能启动”与“运行中可在线改参”两项相互制约的能力。

32、在本发明中,设置了两种可切换的工作模式,能够大幅拓宽系统的工程适用场景。在无主机独立运行模式下,can主控逻辑模块仅通过静态配置通路读取固化的硬件常量参数完成上电初始化,动态配置通路对应的外部配置接口(如apb配置接口)可悬空设置,完全依靠硬件逻辑独立完成can报文收发调度,适用于无主控、无软件介入的轻量化嵌入式硬件通信场景;在主机协同运行模式下,can主控逻辑模块通过动态配置通路接收寄存器配置信号完成初始配置,并可在系统运行过程中在线更新控制参数,参数更新无需中断can总线通信或重启fpga,可适配设备运行过程中的动态工况调整需求,解决了传统固定参数配置方案无法在线调试、场景适配灵活性差的问题。双配置通路架构兼顾了轻量化部署与灵活配置的双重需求,大幅拓宽了本fpga纯逻辑can通信ip系统的工程适用场景。

33、本发明中的硬件有限状态机在仲裁轮询工作状态下遵循先收后发的逻辑循环工作。先收后发调度策略优先处理来自外部can物理总线的接收任务,可有效避免因发送任务长期占用调度资源而导致的接收缓存溢出、接收报文丢失等问题;接收任务完成后轮询检测待发送can报文并启动发送,保障了发送任务的及时执行;尤为重要的是,can报文发送过程中若出现新的总线接收事件则优先跳转执行接收处理,即使发送缓存存在待发送报文,状态机也不会打断当前接收流程,确保了总线接收报文的实时响应,避免了高优先级接收报文被发送任务阻塞。上述全部调度逻辑由硬件有限状态机以固定时序实现,调度行为确定、无软件调度的不确定性,与纯硬件架构配合可实现极低的调度延时,进一步保障了工业can总线通信的实时性与可靠性。

34、先收后发仲裁策略之所以必须以硬件有限状态机固化实现,是由can总线的物理传输特性决定的:can报文由外部节点广播至总线,本节点若不在接收缓存被覆盖前及时读走,报文即永久丢失,接收动作具有严格的实时性与不可回溯性;而发送动作由本节点主动发起,发送缓存中的待发送报文可自然等待,二者实时性要求并不对等。本发明将“接收优先”固化为状态机的硬件仲裁规则,并在发送缓存已满的等待状态下仍持续监测总线接收事件、一旦出现接收事件立即打断当前发送流程优先跳转接收处理,使接收响应仅取决于硬件状态跳转的固定时钟周期,无需像软件方案那样经历中断请求、现场保护、任务切换等受系统负载与任务优先级影响的环节,从根本上消除了软件任务抢占带来的延时抖动,调度延时确定、可预测、可复现。

35、此外,本发明采用标准化总线接口和模块化分层设计,系统内部功能模块边界清晰、相互独立,整体可移植性与复用性优异,可稳定适配xc7a50t等主流fpga芯片,既可以单例化实现单路can通信,也可以多例化拓展多路并行can通信,整体系统架构便于工程移植、二次开发与功能裁剪,有效降低了fpga工业can通信项目的开发成本与迭代周期。本发明经过完整的功能仿真与xc7a50t fpga板级实物测试,在10帧id递增短can报文回环测试中收发精准、无错帧、无漏帧,在10000帧数据递增长can报文压力回环测试中收发帧数量完全匹配、错误帧计数为零、rec与tec错误计数器始终保持为0、全程无总线异常、无通信中断,经实测验证本系统在长时间、大吞吐量的高压通信工况下具备优异的稳定性与容错性,可长期适配工业现场复杂严苛的通信工况。

36、优选地,还包括apb从机配置模块,apb从机配置模块通过apb总线接收外部主控设备下发的寄存器配置指令,依次完成指令解析、地址解码与寄存器数值锁存后,向动态配置通路输出寄存器配置参数、寄存器地址信号以及读写同步控制信号;apb从机配置模块仅完成参数配置与状态上报交互,不参与任何can报文数据的传输与处理;硬件层面apb配置接口悬空时外部无驱动输入,由fpga内部上拉或默认逻辑保证不会出现不定态。

37、本发明在系统中增设一apb从机配置模块,该模块能够通过标准apb总线接收外部主控设备下发的寄存器配置指令,依次完成指令解析、地址解码与寄存器数值锁存后,向动态配置通路输出配置信号。apb总线为通用工业标准化总线协议,兼容性强、无私有接口限制,外部主控设备可通过标准apb接口便捷接入,无需定制私有通信协议。同时,apb从机配置模块仅完成参数配置与状态上报交互,不参与任何can报文数据的传输与处理,其职责边界与can报文数据交互链路严格分离,进一步保障了配置通路与数据通路的物理独立性。apb从机配置模块的引入为动态配置通路提供了标准化的外部配置输入接口,使系统具备了接收外部主控设备在线配置指令的硬件能力。

38、此外,硬件层面apb配置接口悬空时外部无驱动输入,由fpga内部上拉或默认逻辑保证不会出现不定态。该设计是无主机独立运行模式得以可靠落地的必要硬件保障:无主机模式下apb接口处于物理悬空状态,若不作上拉或默认电平处理,输入电平将处于不确定的高阻态,可能导致配置译码逻辑误触发、寄存器值随机跳变。本发明通过内部上拉或默认逻辑将悬空输入钳位于确定电平,确保apb从机配置模块在无主机模式下稳定旁路休眠、不产生误配置动作,使同一套硬件在“接口悬空”与“接口接主控”两种物理连接方式下均能稳定工作。

39、优选地,所述can主控逻辑模块还集成有硬件can报文异常处理单元,硬件can报文异常处理单元用于识别can报文的帧格式错误、数据校验错误以及can控制器ip核返回的总线协议错误;识别到异常时,硬件can报文异常处理单元在硬件逻辑内部丢弃异常can报文并同步生成故障标记,故障标记写入专用故障状态寄存器供外部读取,同时更新接收错误计数rec与发送错误计数tec,错误计数达到对应阈值时硬件自动执行总线关闭处理,全程无需外部主控设备介入。

40、本发明于can主控逻辑模块内集成硬件can报文异常处理单元,构建了全硬件自主异常处置机制。在系统运行过程中,can主控逻辑模块持续侦听外部can物理总线状态,对捕获的can报文信号进行解析与can2.0协议校验;一旦识别出帧格式错误、数据校验错误以及can控制器ip核返回的总线协议错误等异常情况,硬件can报文异常处理单元可在硬件逻辑内部自主丢弃异常can报文,并同步生成故障标记写入专用故障状态寄存器供外部读取,同时更新接收错误计数rec与发送错误计数tec,错误计数达到对应阈值时硬件自动执行总线关闭处理。上述异常识别、can报文丢弃、故障标记生成、错误计数更新以及总线关闭处置的全过程均由硬件即时完成,无需外部主控设备介入判断与处置,响应速度显著优于传统软件检测处理方案。该机制可有效拦截总线上的异常can报文,避免异常can报文占用总线资源、引发总线阻塞、干扰正常业务can报文传输,大幅提升了can总线的抗干扰能力与故障容错能力。

41、与传统软件轮询检测方案相比,本发明的硬件异常处置机制具有三方面突出优势:其一,校验过程硬件并行化,硬件can报文异常处理单元实时监测can总线位时序、crc校验域、can报文格式、位填充规则,帧格式校验、数据crc校验与总线状态信号接收以硬件并行方式同时进行,不占用硬件有限状态机的收发调度时隙,也不存在软件轮询周期内的检测盲区;其二,异常报文在逻辑接收处理阶段即被直接丢弃,不写入接收缓存、不向上层业务转发,从源头阻断异常报文占用缓存与总线资源,异常处理完成后状态机直接跳回仲裁空闲状态,不阻塞后续正常报文的收发;其三,rec接收错误计数器、tec发送错误计数器的计数更新与阈值判定全部由硬件自主完成,错误计数达到对应阈值时硬件自动执行总线关闭处理,遵循can2.0协议的错误计数规则与总线关闭机制且全程无需主控参与。在10000帧数据递增长can报文压力回环测试中,系统错误帧计数为零、rec与tec始终保持为0,实测验证了该硬件异常处置机制在大吞吐量工况下的容错可靠性。

42、优选地,can主控逻辑模块内置独立的状态监控机制,通过硬件逻辑主动轮询读取外部标准can控制器ip核的全部关键状态寄存器,获取的状态信息包括接收缓存状态、发送缓存状态、接收错误计数rec、发送错误计数tec、总线工作模式、中断标志位、总线错误码等核心运行参数,并将上述状态值实时同步至apb从机配置模块的专用监控寄存器中;该状态信息既可以通过apb总线上传至外部主控设备,也可以直接引出至fpga的虚拟输入输出(vio)调试接口,支持在线实时观测调试。

43、本发明在can主控逻辑模块内置独立的状态监控机制,通过硬件逻辑主动轮询读取外部标准can控制器ip核的全部关键状态寄存器,将接收缓存状态、发送缓存状态、接收错误计数rec、发送错误计数tec、总线工作模式、中断标志位、总线错误码等核心运行参数实时同步至apb从机配置模块的专用监控寄存器中。该状态监控机制由硬件自主完成状态采集与同步,不依赖外部主控设备的软件轮询,状态获取的实时性仅取决于硬件轮询的固定时钟周期,不受主控设备负载状况、任务优先级与软件轮询周期的影响,克服了传统主控协同架构中状态查询受软件调度节奏制约、状态更新滞后、高负载时状态采集漏拍的问题。

44、同时,该状态信息提供两条相互独立的观测通路:其一,状态值经apb总线上传至外部主控设备,使主控设备在需要时能够通过一次寄存器读取获得can控制器ip核的完整运行状态快照,便于集中运行监控、故障诊断与系统运维;其二,状态值可直接引出至fpga的虚拟输入输出(vio)调试接口,支持开发调试阶段通过在线逻辑分析仪实时观测系统内部状态。第二条通路对于无主机独立运行模式尤为重要——在无主控、无软件、无操作系统的轻量化部署场景下,传统依托主控调试软件观测系统状态的手段完全失效,纯硬件系统对外呈现为“黑盒”,问题定位极为困难;本发明通过vio接口为纯硬件自主运行系统保留了硬件级在线观测窗口,配合ila逻辑分析仪可实时抓取内部寄存器状态与信号时序,显著提升了纯硬件自主运行系统的可调试性、可观测性与工程可维护性。

45、另外,上述fpga纯逻辑can通信ip系统的can报文收发调度方法,包括以下步骤:

46、s1、系统上电初始化:can主控逻辑模块通过配置通路获取参数,自主完成系统初始化,无需外部主控设备参与;系统预设为无主机独立运行模式时,can主控逻辑模块通过静态配置通路读取逻辑综合阶段固化的硬件常量参数,复位期间将rtl例化参数作为配置寄存器的复位初值载入,无寄存器写操作时配置寄存器保持该初值,自主完成上电初始化,全程无需外部主控设备介入;系统预设为主机协同运行模式时,can主控逻辑模块通过动态配置通路等待接收寄存器配置信号完成初始参数加载,系统运行过程中外部主控设备可随时下发指令更新内部控制参数,更新过程无需中断can总线通信、无需重启fpga;

47、s2、持续can报文收发循环调度:can主控逻辑模块通过硬件有限状态机循环执行can报文收发,通过标准总线接口对接外部标准can控制器ip核完成报文收发,与数据缓存模块之间完成can报文数据交互;遵循先收后发原则,优先通过标准总线接口对接外部标准can控制器ip核接收外部can物理总线上的can报文并完成协议校验,将有效can报文缓存至数据缓存模块,接收任务完成后轮询检测待发送can报文并完成帧仲裁、组帧后经外部标准can控制器ip核转换输出至外部can物理总线,can报文发送过程中若出现新的总线接收事件则优先跳转执行接收处理;

48、全部can报文收发调度与数据搬运由纯硬件逻辑自主完成,无需外部主控设备下发读写指令,不经过主控设备内存中转。

49、本发明利用上述fpga纯逻辑can通信ip系统进行can报文收发调度时,彻底实现了纯硬件自主的can报文收发调度。步骤s1中,can主控逻辑模块通过配置通路获取配置参数自主完成系统初始化,上电过程全程无需外部主控设备参与;步骤s2中,can主控逻辑模块通过硬件有限状态机循环执行can报文收发,全部can报文收发调度与数据搬运由纯硬件逻辑自主完成,无需外部主控设备下发读写指令。该方法采用硬件固定时序调度,调度延时极低且时序固定,可有效满足工业can总线高实时、高可靠的通信需求。

50、在数据搬运层面,该方法中can报文由can主控逻辑模块直接在数据缓存模块与外部标准can控制器ip核之间完成硬件搬运与收发调度,不经过主控设备内存中转,数据传输路径短、流转环节少,在方法层面进一步降低了端到端传输时延,消除了主控设备中转带来的算力开销与软件等待时间。在调度时序层面,该方法的全部状态跳转、报文仲裁、异常处置均由硬件有限状态机按固定时钟周期自主完成,调度行为确定、延时固定、可预测、可复现,不存在软件调度方案中任务抢占、中断延迟、线程阻塞等不确定因素,在万帧级压力测试中实现零丢帧、零错误,调度时序稳定性经板级实测验证。

51、本发明在步骤s1中的系统上电初始化公开了两种可切换的工作模式。系统预设为无主机独立运行模式时,can主控逻辑模块通过静态配置通路读取逻辑综合阶段固化的硬件常量参数自主完成上电初始化,全程无需外部主控设备介入,适用于无主控、无软件的轻量化嵌入式场景;系统预设为主机协同运行模式时,can主控逻辑模块通过动态配置通路等待接收寄存器配置信号完成初始参数加载,系统运行过程中外部主控设备可随时下发指令更新内部控制参数,更新过程无需中断can总线通信、无需重启fpga。

52、在初始化通路的硬件配合上,复位期间各配置寄存器以静态配置通路输出的rtl例化参数作为复位初值完成载入,无寄存器写操作时配置寄存器保持该初值,保证固化参数在复位阶段一次性可靠载入;复位释放后,动态配置通路仅在有效寄存器写操作时更新寄存器值,主机协同模式下可由apb寄存器写操作实时更新参数,且动态改写值仅为fpga片内寄存器瞬时状态,重新上电复位后寄存器将再次加载静态固化参数、不会保存动态通路改写的配置。两种模式下的初始化均由硬件复位时序与写使能逻辑自动完成,无需软件干预切换,初始化流程确定、可靠且具有可恢复的确定上电状态。

53、本发明在步骤s2中进行收发调度时,硬件有限状态机遵循先收后发原则循环执行收发调度。该方法优先通过标准总线接口对接外部标准can控制器ip核接收外部can物理总线上的can报文并完成协议校验,可有效避免接收缓存溢出丢帧;接收任务完成后轮询检测待发送can报文并完成帧仲裁、组帧输出,保障发送及时性;can报文发送过程中若出现新的总线接收事件则优先跳转执行接收处理,确保了接收报文的实时响应。上述调度时序由硬件逻辑固定实现,行为确定、延时极低。在接收任务执行过程中,若外部上层业务下发新的待发送can报文,该报文会自动存入发送缓存单元暂存而不会丢失,待当前接收任务完成后由状态机自动调度发送;在发送缓存已满的等待状态下,状态机仍持续监测总线接收事件,若等待过程中出现新的接收事件,立即打断当前发送流程、优先跳转执行接收处理。该方法以硬件状态机的状态跳转规则完整实现了“接收绝对优先、发送有序等待、收发均不丢帧”的确定性调度,整个收发循环无需主控逐帧干预。

54、优选地,步骤s2中接收can报文时,can主控逻辑模块依据can2.0协议规范以硬件并行方式完成帧格式校验与数据crc校验,同时接收can控制器ip核返回的总线状态信号;识别到帧格式错误、数据校验错误或总线协议错误时,硬件逻辑内部自主丢弃异常can报文并同步生成故障标记,同时完成总线错误计数与错误帧应答,全程无需外部主控设备介入判断。

55、本发明在步骤s2中进行can报文接收处理时,can主控逻辑模块依据can2.0协议规范以硬件并行方式完成帧格式校验与数据crc校验,同时接收can控制器ip核返回的总线状态信号。识别到帧格式错误、数据校验错误或总线协议错误时,硬件逻辑内部自主丢弃异常can报文并同步生成故障标记,同时完成总线错误计数与错误帧应答,全程无需外部主控设备介入判断。该全硬件异常处置方法响应速度显著优于传统软件检测处理方案,可有效拦截异常can报文、避免总线阻塞、提升can总线的抗干扰能力与故障容错能力。

56、从处理流程看,can主控逻辑模块对还原后的can报文执行can2.0协议校验,一旦识别出异常,硬件can报文异常处理单元立即在硬件逻辑内部丢弃该异常报文,同步更新故障状态寄存器并生成故障标记,同时遵循can2.0协议规范完成总线错误计数与错误帧应答,异常处理完成后状态机直接跳回仲裁空闲状态继续下一轮轮询调度。该处理路径中,异常报文既不写入接收缓存、也不向上层业务转发,异常处置不打断、不阻塞正常收发循环,且错误计数、故障标记、错误帧应答等多项动作由硬件在同一接收处理阶段并行完成,处置时延固定为硬件逻辑延迟,相较于软件串行检测、软件决策、软件清错的处理方式,实时性与可靠性显著提升。

57、优选地,在步骤s2的持续调度过程中,can主控逻辑模块通过硬件逻辑主动轮询读取外部标准can控制器ip核的全部关键状态寄存器,获取接收缓存状态、发送缓存状态、接收错误计数rec、发送错误计数tec、总线工作模式、中断标志位、总线错误码等核心运行参数,并将上述状态值实时同步至专用监控寄存器中,状态信息通过apb总线上传至外部主控设备或直接引出至fpga的虚拟输入输出(vio)调试接口。

58、本发明在步骤s2的持续调度过程中,通过硬件逻辑主动轮询读取外部标准can控制器ip核的全部关键状态寄存器,将接收缓存状态、发送缓存状态、接收错误计数rec、发送错误计数tec、总线工作模式、中断标志位、总线错误码等核心运行参数实时同步至专用监控寄存器中。该状态监控方法与can报文收发调度由同一套硬件逻辑并行执行,状态采集嵌入状态机的轮询时序之中,不单独占用收发调度时隙、不抢占报文数据通路、不干扰正常报文传输,且不依赖主控软件轮询,保证了状态信息的完整性与实时性。

59、状态信息提供两种输出方式:通过apb总线上传至外部主控设备时,可供主控设备集中监控与故障诊断,主控无需自行反复读取can控制器ip核的多个状态寄存器、减轻主控软件负担;直接引出至fpga的虚拟输入输出(vio)调试接口时,支持开发调试阶段配合ila逻辑分析仪在线实时观测内部运行状态,为无主机独立运行模式下的问题定位、时序分析与性能评估提供了硬件级调试手段,弥补了纯硬件自主运行系统缺乏软件观测入口的不足。

60、优选地,步骤s1的上电初始化中,can主控逻辑模块进入模式确认状态,完成工作模式校验、外部标准can控制器ip核的axi_lite寄存器初始化配置、硬件过滤器与中断掩码等配套参数配置,校验通过后跳转至仲裁空闲状态进入步骤s2。

61、本发明在步骤s1的上电初始化中,硬件有限状态机进入模式确认状态(对应附图3中的mode_ident状态),集中完成工作模式校验、外部标准can控制器ip核的axi_lite寄存器初始化配置,同时完成硬件过滤器、中断掩码、位时序等配套参数的配置,校验通过后方跳转至仲裁空闲状态进入步骤s2。通过在正式进入收发循环调度之前设置专门的模式确认环节,可确保外部can控制器ip核的寄存器配置与本系统can主控逻辑模块的工作模式、过滤规则、中断设置严格一致,避免因配置未完成或两侧配置不一致即启动报文收发而导致的报文丢失、错误帧甚至总线冲突。

62、更为重要的是,硬件过滤器、中断掩码、位时序等配套参数在调度启动前一次性配置到位,形成硬件级初始化安全门限:只有模式校验与全部配套参数配置均通过后,状态机才由模式确认状态跳转至仲裁空闲状态,配置未完成或校验未通过时不进入收发调度,从状态机跳转逻辑上保证了系统从初始化阶段到稳态调度阶段的有序衔接与可靠过渡,防止系统在初始化不完整的状态下带病运行。该初始化方法与复位期间配置寄存器载入静态初值、无写保持的过程前后衔接,共同构成了无主机条件下系统上电即可确定性进入正常收发状态的完整硬件初始化链路。

63、名词解释:

64、一、通用技术术语

65、fpga:field programmable gate array的缩写,即现场可编程门阵列,是一种可由用户通过硬件描述语言编程配置内部逻辑电路的半导体器件,本发明的全部系统逻辑均集成于该器件内部。

66、can:controller area network的缩写,即控制器局域网,是一种广泛应用于工业控制、车载电子等领域的串行通信总线协议,本发明遵循can2.0协议规范。

67、can2.0:can总线协议的2.0版本,分为can2.0a(标准帧,11位标识符)与can2.0b(扩展帧,29位标识符),本发明完整适配该协议规范。

68、ip核:intellectual property core的缩写,即知识产权核,指预先设计完成、可重复使用的硬件逻辑功能模块。本发明中外部对接的axi_can(5.0)为xilinx官方提供的商用标准can控制器ip核。

69、dma:direct memory access的缩写,即直接存储器访问,是一种无需cpu参与即可在外设与内存之间直接搬运数据的硬件机制。本发明所称类dma,是指类似于dma的纯硬件自主数据搬运机制,但不经过主控设备内存中转,而是由can主控逻辑模块直接在axis数据缓存模块与can控制器ip核之间完成can报文的硬件搬运与收发调度,全程无需主控设备下发读写指令。

70、cpu:central processing unit的缩写,即中央处理器,传统can通信方案中由cpu或软核通过软件操作can控制器ip核完成收发调度,本发明以纯硬件逻辑替代该角色。

71、软核:指在fpga内部以逻辑电路形式实现的处理器核(如microblaze),需运行嵌入式软件才能完成控制调度,本发明不包含任何软核处理器与嵌入式软件程序。

72、rtl:register transfer level的缩写,即寄存器传输级,是硬件描述语言对数字电路行为的抽象描述层级,本发明的全部模块代码以verilog语言在rtl级完成设计。

73、verilog:一种广泛使用的硬件描述语言,用于描述数字电路的结构与行为,本发明的全部模块代码文件(.v)均采用verilog语言编写。

74、二、总线接口术语

75、apb:advanced peripheral bus的缩写,即高级外设总线,是arm公司amba总线规范中的一种低带宽、低功耗标准外设总线,主要用于寄存器配置与状态访问。本发明中apb从机配置模块通过apb总线对接外部主控设备。

76、axi:advanced extensible interface的缩写,即高级可扩展接口,是arm公司amba总线规范中的高性能存储器映射总线标准。

77、axi_lite:axi总线的轻量级子集,简化了突发传输与乱序访问等复杂功能,主要用于寄存器配置访问与状态读取。本发明中can主控逻辑模块通过axi_lite总线对接外部can控制器ip核,完成寄存器配置、待发送报文下发、接收报文回传与总线状态读取。

78、axi-stream:amba总线规范中的流式总线接口标准,简称axis,面向无地址的连续数据流传输,采用valid-ready握手机制。本发明中can报文数据交互全部基于axi-stream总线实现。

79、axis:axi-stream的简称,本发明中axis数据缓存模块、axis业务接口、axis通道等均指基于axi-stream总线标准的接口或模块。

80、valid-ready握手机制:axi-stream总线的核心传输协议:发送方在数据有效时置高valid信号,接收方在准备好接收时置高ready信号,当valid与ready同时为高电平时完成一次数据传输,该机制支持发送方与接收方以不同时钟速率工作。

81、valid:axi-stream总线的有效信号,由发送方驱动,置高表示当前总线上的数据有效。

82、ready:axi-stream总线的就绪信号,由接收方驱动,置高表示接收方已准备好接收数据。

83、tlast:axi-stream总线的帧结束标志信号,由发送方驱动,在一帧数据流的最后一个beat置位,表示当前beat为该帧的最后一个数据节拍。本发明中tlast在第4beat置位,表示一帧can报文传输结束。

84、beat:axi-stream总线上的单次数据传输节拍,即valid与ready同时为高电平时完成的一次数据传输。本发明中一帧can报文在32位axis总线上按4个beat连续传输。

85、spi:serial peripheral interface的缩写,即串行外设接口,是一种同步串行通信总线标准。本发明中fpga通过spi接口连接外部flash存储器存储固件。

86、三、模块与文件名称

87、can_top:本系统的顶层模块名称,内部例化apb从机配置模块、can主控逻辑模块、axis数据缓存模块三大子功能模块,对外引出apb配置接口、axis业务接口、axi_lite接口及can_h、can_l差分信号。

88、apb_slave.v:apb从机配置模块对应的verilog硬件描述语言代码文件名,该模块为本系统唯一的配置交互单元,通过标准apb总线对接外部主控设备。

89、can_ctrl.v:can主控逻辑模块对应的verilog硬件描述语言代码文件名,该模块为本系统的核心调度处理单元,全部功能由fpga组合逻辑与时序逻辑硬件实现。

90、axis_interconnect:总线互联单元的模块名称,对外引出多路标准axis业务接口,对内连接发送缓存单元与接收缓存单元,实现多路上层业务can报文的路由分发与汇聚。

91、axis_data_tx_fifo_0:发送缓存单元的模块名称,为标准axis异步fifo,用于缓存外部上层业务下发的待发送can报文,通过axis读通道向can主控逻辑模块输出。

92、axis_data_rx_fifo_1:接收缓存单元的模块名称,为标准axis异步fifo,用于缓存can主控逻辑模块写入的有效can报文,通过axis读通道向总线互联单元输出。

93、axi_can(5.0):xilinx官方提供的标准can控制器ip核,版本号为5.0,本发明中作为外部配套can控制器ip核使用,通过axi_lite总线与can主控逻辑模块连接,引出can_h、can_l两路差分信号对接外部can物理总线。

94、xilinx_ip:附图2中标注的xilinx官方ip核区域,即axi_can(5.0)标准can控制器ip核,处于can_top模块外部。

95、user_logic:附图2中标注的用户逻辑区域,即本发明的can_top顶层模块及其内部全部子模块,由申请人自行设计实现。

96、fifo:first in first out的缩写,即先进先出队列,是一种按写入顺序读出的数据缓存结构。本发明中发送缓存单元与接收缓存单元均采用axis异步fifo实现。

97、blockram:fpga内部的块随机存取存储器资源,是fpga厂商预先集成的大容量存储硬件,本发明中发送缓存单元与接收缓存单元映射为该资源实现。

98、四、寄存器名称

99、reg0~reg15:apb从机配置模块内部设置的16组配置寄存器编号,分别映射为不同功能的寄存器,用于锁存工作模式、波特率、中断使能、故障状态等不同类型的参数和状态信息。

100、msr:mode select register的缩写,即模式寄存器,用于配置can控制器ip核的工作模式,包括正常收发模式、内部回环测试模式。

101、brpr:baud rate prescaler register的缩写,即波特率预分频寄存器(本发明中称传输精度寄存器),用于can报文位时序精度配置。

102、btr:bit timing register的缩写,即位时序寄存器(本发明中称波特率配置寄存器),用于配置can总线通信波特率,通过内部硬件逻辑完成位时序分频计数。

103、ier:interrupt enable register的缩写,即中断使能寄存器,用于配置各类硬件中断事件的使能开关。

104、afr:acceptance filter register的缩写,即滤波器配置寄存器,用于配置can报文接收过滤功能的使能与模式,默认值为不过滤id、全部接收。

105、afmr1:acceptance filter mask register 1的缩写,即接收帧过滤掩码寄存器1,用于设置第一组接收帧id过滤的掩码值。

106、afir1:acceptance filter id register 1的缩写,即接收帧id匹配寄存器1,用于设置第一组接收帧过滤的目标匹配id值。

107、afmr2:acceptance filter mask register 2的缩写,即接收帧过滤掩码寄存器2,用于设置第二组接收帧id过滤的掩码值。

108、afir2:acceptance filter id register 2的缩写,即接收帧id匹配寄存器2,用于设置第二组接收帧过滤的目标匹配id值。

109、rec:receive error counter的缩写,即接收错误计数器,是can控制器ip核内部用于累计接收错误次数的寄存器,错误计数达到阈值时触发总线关闭处理。

110、tec:transmit error counter的缩写,即发送错误计数器,是can控制器ip核内部用于累计发送错误次数的寄存器,错误计数达到阈值时触发总线关闭处理。

111、五、信号与数据格式术语

112、can_h:can总线的高电平差分信号线,与can_l配合构成can物理总线的差分传输接口。

113、can_l:can总线的低电平差分信号线,与can_h配合构成can物理总线的差分传输接口。

114、id:identifier的缩写,即标识符,can报文帧头中的字段,用于标识报文优先级与内容类型,标准帧为11位,扩展帧为29位。

115、dlc:data length code的缩写,即数据长度码,can报文中用于指示数据场字节长度的字段,取值范围为0至8。

116、crc:cyclic redundancy check的缩写,即循环冗余校验,can报文中用于检测传输错误的校验字段,本发明中由硬件并行方式完成crc校验。

117、word0:本发明axis总线4beat帧格式中第3beat传输的数据场低32位,即can报文数据字段的前4个字节。

118、word1:本发明axis总线4beat帧格式中第4beat传输的数据场高32位,即can报文数据字段的后4个字节。

119、4beat帧格式:本发明自定义的axis总线can报文传输格式,一帧can报文在32位axis总线上按4个beat连续传输:第1beat传输帧id(11位标准帧或29位扩展帧,其余位补0),第2beat传输dlc及控制字段,第3beat传输数据场低32位(word0),第4beat传输数据场高32位(word1),tlast信号在第4beat置位表示一帧传输结束。

120、六、硬件有限状态机状态名称(对应附图3)

121、config:配置状态,对应复位状态,系统上电复位后进入该状态,完成初始参数加载。

122、mode_ident:模式确认状态,完成工作模式校验、can控制器ip核的axi_lite寄存器初始化配置、硬件过滤器与中断掩码等配套参数配置,校验通过后跳转至仲裁空闲状态。

123、rd_sr_0:读状态寄存器0状态,对应仲裁轮询工作状态(空闲状态),状态机在此状态下持续轮询can控制器ip核的接收缓存状态与发送缓存状态,按先收后发原则判断下一步跳转。

124、wr_tx:写发送状态,对应can报文发送状态,将待发送can报文组帧后通过axi_lite总线写入can控制器ip核的发送缓存。

125、rd_sr_1:读状态寄存器1状态,对应发送fifo判定状态,读取can控制器ip核的发送缓存状态寄存器,判断发送缓存是否可写入。

126、wr_intr_0:写中断寄存器0状态,对应发送中断清除状态,清除发送完成中断标志位。

127、wr_intr_1:写中断寄存器1状态,对应发送中断清除状态,完成发送收尾的中断标志位清除。

128、rd_sr_2:读状态寄存器2状态,对应发送完成校验状态,读取发送完成后的状态寄存器确认发送结果。

129、rd_rx:读接收状态,对应can报文接收状态,通过axi_lite总线从can控制器ip核的接收缓存中读取原始can报文数据。

130、wr_intr_2:写中断寄存器2状态,对应接收中断清除状态,清除对应接收中断标志位。

131、err:错误状态,对应异常处理状态,识别到帧格式错误、数据校验错误或总线协议错误时进入该状态,由硬件can报文异常处理单元完成异常报文丢弃、故障标记生成与错误计数更新。

132、七、本发明自定义架构术语

133、静态配置通路:本发明自定义术语,指can主控逻辑模块内部例化生成的硬件常量通路,参数在rtl逻辑综合阶段固化为硬件常量,fpga运行阶段不可通过软件改写,系统上电后由硬件直接通过该通路读取固化参数完成初始化,不依赖外部主控设备。

134、动态配置通路:本发明自定义术语,指can主控逻辑模块内部专用的寄存器配置传输通道,通过接收apb从机配置模块输出的寄存器配置总线信号,实现系统运行阶段的参数在线更新,更新过程无需中断通信或重启fpga。

135、配置交互链路:本发明自定义术语,指系统中仅传输寄存器地址信号、配置参数、读写同步控制信号等配置类信号的硬件通路,专门用于系统参数配置,与can报文数据交互链路物理独立。

136、can报文数据交互链路:本发明自定义术语,指系统中专门负责can报文接收、缓存与发送交互的硬件通路,与配置交互链路物理独立、互不干扰。

137、无主机独立运行模式:本发明自定义工作模式,指系统不连接外部主控设备、apb配置接口可悬空设置,仅通过静态配置通路读取固化的硬件常量参数完成上电初始化,由纯硬件有限状态机独立完成can报文收发调度、异常处置,全程无需外部主控设备参与的工作模式。

138、主机协同运行模式:本发明自定义工作模式,指系统通过apb总线连接外部主控设备,由外部主控设备通过动态配置通路完成初始参数配置,并可在系统运行过程中随时下发指令在线更新内部控制参数的工作模式。

139、先收后发:本发明自定义调度原则,指硬件有限状态机在仲裁调度时优先处理can报文接收任务,仅在总线无接收报文时处理发送任务,且在发送过程中出现新的总线接收事件时优先跳转执行接收处理的调度策略。

140、ip内部回环模式:本发明自定义测试模式,使能后can控制器ip核切断外部物理总线发送通路,在ip核内部将发送端口直接回接至接收端口,待发送报文无需输出至外部总线即可完成自环接收,用于验证can控制器ip核配置与axi_lite总线交互的功能正确性。

141、顶层逻辑回环模式:本发明自定义测试模式,使能后can主控逻辑模块切断去往can控制器ip核的发送通路,在can_top内部将axis发送侧数据直接回接至axis接收侧,待发送报文无需经过can控制器ip核即可在逻辑层完成自环接收,用于验证axis缓存链路与can报文处理逻辑的功能完整性。

142、八、fpga开发与测试术语

143、vivado:xilinx公司推出的fpga集成开发环境,用于完成逻辑综合、布局布线、比特流文件生成与下载调试,本发明采用该工具完成全流程开发。

144、artix-7:xilinx公司7系列fpga中的一个产品系列,面向低成本、低功耗应用,本发明通常采用该系列的xc7a50t型号芯片。

145、xc7a50t:xilinx artix-7系列的一款fpga芯片型号,本发明主要采用该型号芯片进行工程应用与实测验证。

146、xc7k325t:xilinx kintex-7系列的一款fpga芯片型号,本发明压力测试阶段更换该型号芯片开展大吞吐量验证,本发明ip核不绑定特定fpga器件。

147、ila:integrated logic analyzer的缩写,即集成逻辑分析仪,是xilinx fpga的在线调试核,用于实时观测内部信号时序与寄存器状态,本发明中配套ila搭建在线调试通路。

148、vio:virtual input/output的缩写,即虚拟输入输出核,是xilinx fpga的在线调试核,用于在线读写内部寄存器值与驱动虚拟输入信号,本发明中配套vio搭建在线调试通路。

149、parameter:verilog硬件描述语言中的参数关键字,用于在模块例化时传入可配置的常量值。本发明中静态配置通路通过rtl例化parameter参数集合实现参数固化,参数经逻辑综合后变为硬件常量。

150、比特流文件(bit文件):fpga经逻辑综合、布局布线后生成的配置文件,扩展名为.bit,包含fpga内部全部逻辑电路的配置信息,下载至fpga后即可实现预期硬件功能。

151、bin文件:由比特流文件转换生成的二进制烧录文件,扩展名为.bin,用于写入外部spi flash存储器,fpga上电后自flash加载该文件完成固件启动。

152、flash:闪存存储器,一种非易失性存储器件,本发明中采用spi型外部flash存储fpga固件烧录文件。

153、usbcanfd-200u:本发明中采用的can总线分析仪设备型号,用于作为测试设备下发测试can报文并捕获回传报文,统计收发帧计数与错误帧计数。