CAN总线读写#

本章介绍利用板子上了两路CAN接口进行回环测试。

硬件环境搭建#

基于”ps_hello”工程另存为一份ps_can,打开block design,配置ZYNQ核,选择CAN0和CAN1,点击OK即可。

../_images/image1101.png

保存设计,Generate Output Products

../_images/image270.png

重新导出硬件信息,不包含bitstream

../_images/image339.png

Vitis程序开发#

在Vitis软件中新建工程can_test,并引入example工程,xcanps_polled_example,此example工程是测试单个CAN接口的内部loopback,本实验是在此example基础上进行的修改,将两个CAN接口都设置为Normal Mode,并在外部连接起来,进行loopback测试。

../_images/image435.png
  1. 功能其实也比较简单,主要就是两路CAN的初始化,并设置为Normal Mode,然后是loopback。

../_images/image529.png
  1. CanLoopback函数也比较简单,先是CAN0发数据,CAN1接收数据并进行数据对比,然后清除RxBuffer的数据,再是CAN1发送数据,CAN0接收数据并进行数据对比,测试结束。

../_images/image627.png

下载测试#

  1. 利用杜绑线将CAN0的H和L分别与CAN1的H和L进行连接

../_images/image726.png
  1. 下载程序

../_images/image824.png
  1. 在串口看到打印信息,大家也可以进入Debug模式进行数据的观测。

../_images/image917.png