Professional Documents
Culture Documents
基于DSP和FPGA的CANFD通信实现
基于DSP和FPGA的CANFD通信实现
6
2021 年 12 月 NAVIGATION AND CONTROL Dec. 2021
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Abstract: CAN bus is widely used in various industrial fields because of its simple and reliable communication meth⁃
od. With the development of industry, the control system is becoming more and more complex, and higher requirements for
data transmission rate and reliability are put forward, while the traditional CAN bus communication could no longer meet the
system requirements. To solve this problem, a method of CANFD bus communication based on DSP and FPGA is
proposed. The FPGA in parallel processing mode serves as a bridge between the DSP and the peripheral interface to data
transmission, enable control, and interrupt control to the CANFD controller. DSP reads the corresponding data through the
EMIF bus interface, and executes data processing and control instructions. After simulation and experiment verification,
the CANFD bus data transmission rate could reach 5Mbps and the bit error rate is less than 1%. Under high⁃speed condi⁃
tions, the system could realize the stability and reliability of CANFD bus data transmission.
Key words: CAN with flexible data⁃rate)CANFD) ; digital signal processing)DSP ) ; field programmable gate array
)FPGA) ; communication systems
数据通信协议, 最初是为了解决汽车中大量控制
0 引言 与测试仪器之间的数据交换, 由于其接口通信简
控制器局域网)Controller Area Network, CAN) 单实用、 成本合理, 已在各个工业领域得到广泛
为德国 Bosch 公司 20 世纪 80 年代开发的一种串行 应用, 成为国际上应用最广泛的开放式现场总线
收稿日期: 2021⁃07⁃07
54 导航与控制 2021 年 第 6 期
数据字 数据长度编码
节长度 DLC3 DLC2 DLC1 DLC0
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
图 1 系统硬件框图
CAN / CANFD 3 0 0 1 1
Fig. 1 Block diagram of system hardware
数据长度编码 4 0 1 0 0
5 0 1 0 1 2. 1 CANFD 控制器模块设计
6 0 1 1 0 CANFD 控 制 器 采 用 MCP2517, MCP2517 是
7 0 1 1 1 Microchip 公 司 开 发 的 一 款 带 SPI 接 口 的 外 部
CAN 数据长度编码 8 1 0/ 1 0/ 1 0/ 1 CANFD 控制器, 微处理器只需要支持 SPI 通信即
8 1 0 0 0 可扩展 CANFD。 MCP2517 控制器支持 CAN 2. 0B
12 1 0 0 1 和 CANFD 模式, 时钟频率可达 40MHz, 通过 SPI
16 1 0 1 0 可与 控 制 器 进 行 通 信, SPI 的 时 钟 频 率 可 达
20MHz; 31 个 FIFO 可配置为接收或发送; 32 个过
CANFD 数据 20 1 0 1 1
滤器和屏蔽器对象可设置来对接受报文的 ID 屏
长度编码 24 1 1 0 0
蔽; 仲裁域比特率高达 1Mbps, 数据段波特率高达
32 1 1 0 1
1Mbps; 发送报文可设置发送优先级。
48 1 1 1 0
CANFD 控制器模块设计电路如图 2 所示。
64 1 1 1 1
2. 2 CANFD 总线收发器模块设计
3 系统软件设计
梁, 在接收到信号上升沿时, 对相应数据进行锁
存, 完成信号的采集、 滤波、 解调, 再将数据库
存放在制定的内存存储器, DSP 通过 EMIF 总线接 系统软件设计主要分为模块初始化、 报文接
口读取相应数据, 并作新数据处理和控制指令的 收、 报文发送, 软件实现流程如图 5 所示。
执行, 且并行处理方式的 FPGA 对 CANFD 控制器 模块初始化是指 DSP 通过 FPGA 向 CANFD 控
进行数据传输和使能、 中断控制。 制器芯片发送配置信息, 对 CANFD 控制器进行初
支持 SPI 的 微 处 理 器 有 ARM、 STM32、 DSP、 始化设置, 模块初始化配置的流程如下:
FPGA, 采用 DSP + FPGA 模式来实现 CANFD 通信, 1) 选 择 工 作 模 式 为 配 置 模 式, 设 置 波 特 率
能够克服单片机固有的缺陷, 更能够满足对可靠性 可变。
有更高要求的航天航空控制的需求。 单片机处理速 2) 配置标称位时间和数据位时间寄存器, 根
度低、 接口少、 资源有限, 遇 到 强 干 扰 程 序 容 易 据想要设置的仲裁域和数据域的波特率值计算寄
跑飞[9⁃12] 。 存器设置值。
56 导航与控制 2021 年 第 6 期
图 2 CANFD 控制器模块原理图
Fig. 2 Schematic diagram of CANFD controller module
图 3 CANFD 总线收发器模块电路图
Fig. 3 Circuit diagram of CANFD bus transceiver module
图 4 信号隔离模块电路图
Fig. 4 Circuit diagram of signal isolation module
第6期 杨波等: 基于 DSP 和 FPGA 的 CANFD 通信实现 57
4 实验验证
4. 1 实验步骤和方法
DSP TMS320C6713 的 主 频 为 528MHz, FPGA
EP4CE6F17C8 的主频为 66MHz, MCP2517FD 芯片
的时 钟 频 率 为 40MHz, SPI 接 口 的 时 钟 频 率 为
20MHz。 所以, 将实验条件设置为通信电缆长 3m、
接收发送的报文长度为最大 64 字节。
CAN 总线通信最高传输速率为 1Mbps, 正常
可实现速率只能达到 500kbps, CANFD 由于控制域
和数字域采用不同的波特率进行数据通信, 通信
速率在理论上大于 CAN 总线通信。 在实验中验证
当 波 特 率 为 500kbps / 2Mbps 和 1Mbps / 5Mbps 时
CANFD 总线通信的准确性, 实验步骤为:
图 5 软件设计流程图 1) 首先使用 Modelsim 仿真软件对 FPGA 程序
Fig. 5 Flowchart of software design 进行时序仿真, 仿真结果预期一致则证明 FPGA 与
CANFD 控制器通信正常。
3) 配置 FIFO 控制寄存器, 设置 FIFO 的报文 2) DSP 通过 FPGA 来配置 MCP2517 控制寄存
深度、 有效负载大小、 报文发送优先级、 接收还
器的值, 将控制器设置为 CANFD 模式, 设置波特
是发送 FIFO、 设置非空 / 非满中断允许。
率、 ID 号和报文深度, 有效数据长度为 64 字节。
4) 设置接收过滤器和屏蔽寄存器。
3) 编写 DSP 程序实现 CANFD 总线的自发自收
5) 配置 CANFD 控制寄存器, 选择工作模式为
功能, 提前编辑 CANFD 总线要收发的数据信息,
CANFD 工作模式。
每次发送 200 个报文, 共发送 10 次。
模块初始化完成后, 可进行报文发送和接收
4) 利用 CANFD 通信调试上位机对比发送数据
配置, 配置流程如下:
与接收数据, 统计传输时间、 错误字节数, 计算
1) 读取发送 / 接收下一报文的地址: MCP2517
误码率。
控制器的 RAM 区没有对每个 FIFO 对象设置固定
的内存地址, 报文对象的地址取决于所选的配置, 4. 2 仿真验证及结果
率、 数 据 吞 吐 量 及 可 靠 性 提 出 了 更 高 的 要 求,
CANFD 总线通信方法已逐渐开始取代传统的 CAN
总线通信, 保证 CANFD 数据传输的稳定性和可靠
性也逐渐成为学者及工程师关注的重点。 本文采
用 DSP +FPGA + MCP2517 的方法来实现 CANFD 通
信, 并通过了仿真和实验验证, 结果表明: 该方
图 6 仿真验证时序结果 法降低了软件调试难度, 减轻了处理器的运行负
Fig. 6 Timing results of simulation verification 载, 提高了系统的抗干扰能力, 实现了 5Mbps 数
据传输速率, 是 CAN 总线最高传输速率的 5 倍。
由图 6 可知, 时序仿真结果与设想一致, 表
实际应用中会有通信距离、 环境温度等多种因素
现为: 当 DSP 控制 FPGA 的片选拉低且写使能信
影响通信效果, 本文提出的方法还需要通过更深
号拉低 后, FPGA 控 制 的 CANFD 的 片 选 被 拉 低,
入的研究来完善总结。
CANFD 的数据线上依次传输地址信息和数据信息
参考文献
)0x0001 和 0x02000300) , 证明了基于 DSP + FPGA
[ 1] Hartwich F. Controller area network with flexible data⁃rate
系统的 CANFD 通信可行性。
[ P ] . US Patent: 14 / 114784, 2014⁃03⁃13.
4. 3 实验验证及结果 [ 2] 熊海国, 马建明, 胡吉昌 . 基于 CAN 总线的六自由度
在 DSP + FPGA + CANFD 控制器实验平台上对 电动 平 台 状 态 监 测 [ J] . 导 航 与 控 制, 2012, 11 )3) :
4. 1 节中的 步 骤 2 ~ 步 骤 4 进 行 实 验 验 证, 通 过 74⁃78.
CANFD 测试盒和上位机来记录发送和接收的数据, XIONG Hai⁃guo, MA Jian⁃ming, HU Ji⁃chang. Status