logo资料库

XILINX ZYNQ裸机篇2019版.pdf

第1页 / 共632页
第2页 / 共632页
第3页 / 共632页
第4页 / 共632页
第5页 / 共632页
第6页 / 共632页
第7页 / 共632页
第8页 / 共632页
资料共632页,剩余部分请下载后查看
ZYNQ修炼秘籍裸机篇2019版
CH01 HelloWold/DDR/网口测试及固化
1.1 概述
1.2 最小系统分析
1.3 硬件电路分析
1.4 创建VIVADO工程
1.5 新建SDK工程
1.6 Hello World实验
1.7 MemTest内存测试程序
1.8 DRAMTest内存测试程序
1.9 LWIP协议对千兆网口测试
1.10 使用快捷按钮调试
1.11 固化程序
CH02 在线逻辑分析仪及软硬件调试技巧
2.1 概述
2.2 搭建FPGA BD工程
2.3 添加调试用IP CORE ILA
2.4 添加调试用IP CORE VIO
2.5 AXI4 添加 IP CORE ILA
2.6 编译FPGA工程
2.7 加载到SDK
2.8 加载逻辑分析仪波形窗口
2.9 ILA GPIO信号调试
2.10 ILA观察AXI4总线波形
2.11 VIO(虚拟机IO)的使用
2.12 SDK调试认识工具栏
2.12.1 Kill Break Point(使断点失效)
2.12.2 Resume(开始/重新开始运行)
2.12.3 Supend(暂停)
2.12.4 Terminate(结束)
2.12.5 Disconnect(断开连接)
2.12.6 Step in to(可以进入库函数调试)
2.12.7 Step Over(跳过当前函数)
2.12.8 Step Return(返回)
2.12.9 Program FPGA(下载FPGA bit)
2.12.10 Program Flash(固化FLASH)
2.12.11 Debug(调试)
2.12.12 RUN(直接运行)
2.13 SDK常用菜单
2.13.1 Project(与编译相关)
2.13.2 Run(与调试有关命令)
2.13.3 Xilinx(与程序下载相关)
2.13.4 Window(与软件相关的窗口)
2.14 SDK调试技巧之断点设置
2.15 SDK调试技巧之观察变量
2.16 SDK调试技巧之查看函数定义
2.17 SDK调试技巧之观察内存
CH03 XADC 实验
3.1 概述
3.2 采集参数
3.3 搭建FPGA BD工程
3.4 编译FPGA工程
3.5 新建SDK工程
3.6 测试结果
3.7 函数分析
3.7.1 XAdcPs_LookupConfig函数
3.7.2 XAdcPs_CfgInitialize函数
3.7.3 XAdcPs_SetSequencerMode函数
3.7.4 XAdcPs_SetAlarmEnables
3.7.5 XAdcPs_SetSeqInputMode
3.7.6 XAdcPs_SetSeqChEnables
3.7.7 XAdcPs_GetAdcData
CH04 PS MIO 实验
4.1 概述
4.2 GPIO简介
4.2.1 GPIO的控制寄存器地址空间
4.2.2 MIO内部构造分析
4.2.3 EMIO的特性
4.3 电路分析及实验预期
4.4 搭建BD工程
4.5 编译FPGA工程
4.6 新建SDK工程
4.7 测试结果
4.8 程序分析
CH05 PS EMIO 实验
5.1 概述
5.2 EMIO 和MIO的对比介绍
5.3 电路分析与实验现象
5.4 搭建BD工程
5.5添加PIN添加PIN约束
5.6编译FPGA工程
5.7 新建SDK 工程
5.8 实验结果
5.9 程序分析
CH06 AXI GPIO 实验
6.1 概述
6.2 搭建BD工程
6.3 编译FPGA工程
6.3 新建SDK工程
6.4 实验结果
6.5 程序分析
CH07 PL中断请求实验
7.1 概述
7.2 ZYNQ 中断介绍
7.2.1 ZYNQ中断框图
7.2.2 ZYNQ CPU软件中断 (SGI)
7.2.3 ZYNQ CPU 私有端口中断
7.2.4 ZYNQ PS和PL共享中断
7.3 搭建BD工程
7.4 编译FPGA工程
7.5 新建SDK工程
7.6 实验结果
7.7 程序分析
CH08 定时器中断实验
8.1 概述
8.2 中断原理
8.2.1 软件中断(SGI)
8.2.2 共享中断SPI
8.2.3 私有中断(PPI)
8.2.4 私有定时器
8.3 搭建FPGA BD工程
8.4 编译FPGA工程
8.5 新建SDK工程
8.6 实验结果
8.7 程序分析
8.7.1 timer_intr.c
8.7.1.1 Timer_init 函数
8.7.1.2 Timer_Setup_Intr_System函数
8.7.1.3 Timer_start函数
8.7.1.4 TimerIntrHandler函数
8.7.2 sys_intr.c
8.7.2.1 Init_Intr_System函数
8.7.2.2 Setup_Intr_Exception函数
8.8.3 main.c
CH09 UART串口中断实验
9.1 概述
9.2串口通信介绍
9.2 搭建FPGA BD工程
9.3 编译FPGA工程
9.4 新建SDK工程
9.5 实验结果
9.6 程序分析
9.6.1 Uart控制器
9.6.2 uartps_intr.c
9.6.2.1Init_UartPsIntr函数
9.6.2.2 UartPs_Setup_IntrSystem函数
9.6.2.3 UartPs_Intr_Handler
9.6.3 main.c
CH10 SPI通信测试实验
10.1 概述
10.2 SPI总线协议
10.2 搭建FPGA BD工程
10.3 添加PIN添加PIN约束
10.4 编译FPGA工程
10.5 新建SDK工程
10.6 硬件连线
10.7 实验结果
10.8 程序分析
10.8.1 SPI 控制器
10.8.2 spips.c
10.8.3 spi_test.c
CH11 I2C读写EEPROM实验
11.1 概述
11.2 I2C总线协议
11.3 EEPROM 24C02介绍
11.4 FPGA BD工程
11.5 I2C Polled方式读写EEPROM
11.5.1 I2c 控制器
11.5.2 I2cPs_Polled.c
11.5.3 eeprom.c
11.5.4 main.c
11.6 I2C中断方式读写EEPROM
11.6.1 I2cPs_intr.c
11.6.2 eeprom.c
11.6.3 main.c
11.7 硬件连线
11.8测试结果
CH12 I2C读写 RTC时钟实验
12.1 概述
12.2 RTC时钟DS1307介绍
12.3 FPGA BD工程
12.4 I2C Polled方式读写RTC时钟芯片
12.4.1 I2c 控制器
12.4.2 I2cPs_Polled.c
12.4.3 RTC_DS1307.c
12.4.4 mian.c
12.5 硬件连线
12.6 测试结果
CH13 CAN总线通信实验
13.1 概述
13.2 CAN总线介绍
13.2.1数据格式
13.2.2数据帧
1)、帧起始和结尾
2)、仲裁段
3)、控制段
4)、数据段
5)、CRC段
6)、ACK段
13.2.3远程帧
13.2.4数据帧与远程帧对比
13.2.5波特率
1)、采样时间
2)、波特率及采样时间参数计算
13.3 FPGA BD工程
13.4程序分析
13.4.1 CAN接口
1)、CAN数据帧结构
2)、波特率及采样时间设置
3)、CAN接口中断
4)、CAN数据发送
5)、CAN数据接收
13.4.2 main函数
13.5 硬件连线
13.6程序测试
13.6.1数据发送测试
13.6.2数据接收测试
13.6.3数据帧接收
13.6.4远程帧接收
13.6.5数据收发同时进行
CH14 TF/SD卡/EMMC读写实验
14.1 概述
14.3 FPGA BD工程
14.4 SD/TF卡读写程序
14.5 SD/TF卡读写测试结果
14.6 EMMC 读写程序
14.7 测试结果
CH15 AXI_Lite 总线详解
15.1 概述
15.2 AXI总线与ZYNQ的关系
15.3 AXI总线和AXI接口以及AXI协议
15.3.1 AXI总线概述
15.3.2 AXI接口介绍
15.3.3 AXI协议概述
15.3.4 AXI协议之握手协议
15.3.5 突发式读写
15.4 AXI4-Lite详解
15.4.1 AXI4-Lite源码查看
15.4.2 AXI-Lite 源码分析
15.5 观察AXI4-Lite总线信号
CH16 自定义IP User_GPIO实验
16.1 概述
16.2 创建IP
16.3 搭建FPGA BD工程
16.4 加载到SDK
16.5 程序分析
CH17 自定义IP AXI_PWM实验
17.1 概述
17.2 自定义IP的封装
17.3 用户IP的修改
17.4 FPGA BD工程
17.5 加载到SDK
17.6 程序分析
CH18 自定义IP频率计实验
18.1 概述
18.2 等精度频率计原理
18.2.1 引 言
18.2.2 频率测量原理
18.2.3 脉冲计数法
18.2.4 周期测频法
18.2.5 多周期同步测频原理及误差分析
18.3 等精度频率计设计
18.3.1 PS寄存器功能划分
18.3.2 具体实现
18.2.3 频率计PL部分代码设计
18.4 FPGA BD工程
18.5 导入到SDK
18.6 误差分析
CH19 利用BRAM进行PS与PL间数据交互
19.1 概述
19.2 基本原理
19.3 FPGA BD工程
19.3.2 PS配置
19.3.3 AXI BRAM Controller
19.3.4 Block Memory Generator
19.3.5 AXI GPIO
19.4逻辑设计
19.4.1 BRAM读时序
19.4.2 BRAM写时序
19.5 PS程序设计
19.5.1 main函数
19.5.2 GPIO输入输出
19.5.3 BRAM数据写入
19.5.4 BRAM数据读出
19.6 程序测试
CH20 利用EMIF进行PS与PL间数据交互
20.1 概述
20.2 FPGA BD工程
20.3 修改FPGA代码
20.4 SDK代码
20.5测试结果
CH21 利用AXI DMA进行批量数据环路测试
21.1概述
21.2 FPGA BD工程搭建
21.3 搭建好的FPGA BD工程
21.4 PS部分软件分析
21.4.1新建SDK工程
21.3.2 main.c源码的分析
21.3.3 dma_intr.c 源码分析
21.3.4 dam_intr.h 文件分析
21.4验证测试
CH22 利用AXI DMA批量发送数据到PS
22.2概述
22.2 FPGA BD工程
22.2.1 ZYNQ IP的设置
22.2.2 FIFO的设置
22.2.3 DMA的设置
22.2.4 GPIO的配置
22.3 FPGA 的发送代码
22.4 PS部分
22.5 验证测试
CH23 利用AXI VDMA 实现OV5640摄像头采集
23.1 概述
23.2 为什么要用VDMA
23.2.1 什么是帧缓存
23.2.2 双缓冲机制
23.2.3 Zynq硬件架构
23.2.4 VDMA的作用
23.3 VDMA概述
23.4 VDMA详细介绍
23.4.1 接口
23.4.1.1 时钟和复位
23.4.1.2 AXI总线相关信号
23.4.1.3 视频同步接口信号
23.4.1.4 GenLock相关信号
23.4.2 VDMA帧存格式
23.4.3 读写通道工作时序
23.4.3.1 读通道(MM2S)时序
23.4.3.2 写通道(S2MM)时序
23.4.4 寄存器
23.4.4.1 MM2S VDMA 控制寄存器(00h)
23.4.4.2 MM2S VDMA 状态寄存器(04h)
23.4.4.3 PARK_PTR_REG停留指针寄存器(28h)
23.4.4.4 MM2S 帧存起始地址(0x5C~0x98)
23.4.4.5 MM2S_FRMDLY_STRIDE MM2S帧延迟和跨度(58h)
23.4.4.6 MM2S_HSIZE MM2S水平方向尺寸(54h)
23.4.4.7 MM2S_VSIZE MM2S垂直方向尺寸(50h)
23.4.4.8 S2MM VDMA 控制寄存器(30h)
23.4.4.9 S2MM VDMA 状态寄存器(34h)
23.4.4.4 S2MM 帧存起始地址(0xAC~0xE8)
23.4.4.5 S2MM_FRMDLY_STRIDE S2MM帧延迟和跨度(A8h)
23.4.4.6 S2MM_HSIZE S2MM水平方向尺寸(A4h)
23.4.4.7 S2MM_VSIZE S2MM垂直方向尺寸(A0h)
23.4.5帧同步选项
23.4.6 Genlock同步机制
23.4.6.1 什么是Genlock?
23.4.6.2 Genlock Master
23.4.6.3 Genlock Slave
23.4.6.4 Dynamic Genlock Master
23.4.6.5 Dynamic Genlock Slave
23.5 OV5640图像采集传输系统
23.5.1 图像传输方案图
23.5.2 FPGA BD工程
23.6 FPGA工程 IP配置
23.6.1采集输入IP
23.6.1.1 MSXBO_OVSensorRGB565 自定义 IP
23.6.2.2 VID in IP模块
23.6.2 VDMA IP配置
23.6.3 ZYNQ IP配置
23.6.4 VTC IP的分析
23.6.4.1 VTC IP的参数介绍
23.6.4.2 VTC IP接口信号的定义
23.6.4.3 VTC IP配置寄存器
23.6.4.4 VTC IP配置
23.6.5 PLL时钟IP
23.6.6 VIDEO OUT输出IP
23.6.6.1 VIDEO OUT IP接口信号介绍
23.6.6.2 VIDEO OUT IP配置
23.7 PS部分
23.8 测试结果
23.8.1 测试连接
23.8.2 测试结果
CH24 利用AXI VDMA 实现MT9V034摄像头采集
24.1 概述
24.2 MT9V034摄像头参数
24.3 MT9V034图像采集传输系统
24.4 FPGA工程 IP配置
24.4.1采集输入IP
24.4.1.1 MT9V034时序
24.6.1.2 MTSensor 自定义IP
24.4.2 VID in IP配置
24.4.3 ZYNQ IP设置
24.4.4 VDMA配置
24.4.5 VTC IP设置
24.4.6 PLL时钟设置
24.4.7 添加DUBUG信号
24.5 PS部分
24.5.1 IIC驱动
24.5.2 main函数
24.6 验证测试
24.6.1 测试连接
24.6.2 测试结果
CH25 利用OSD实现双目摄像头字幕叠加
25.1 概述
25.2 双目图像采集传输系统架构图
25.3 FPGA BD工程
25.3.1 摄像头电路设计
25.3.2 Vid_in IP电路搭建
25.3.3 VDMA设置
25.3.4 OSD设置
25.3.5 PLL时钟设置
25.3.6 VTC设置
25.3.7 AXI IIC设置
25.4 软件部分设计
25.4.1 IIC实现
25.4.2 OSD驱动设计
25.4.3 VDMA配置
25.4.4 主程序设计
25.5 验证测试
25.5.1 测试连接
25.5.2 测试结果
CH26 SD卡读写电子广告屏实验
26.1 概述
26.2 FPGA BD工程
26.3 SDK程序
26.3.1 main.c
26.3.2 bmp.c
26.4 测试结果
26.5图片素材
26.7 注意事项
CH27 利用LWIP实现以太网数据传输
27.1 概述
27.2 搭建硬件系统
27.2.1 系统构架
27.2.2 ZYNQ IP配置
27.2.2.1 启用 HP 接口
27.2.2.2 启用PL 到PS 的中断资源
27.2.2.3 启动PS 部分的以太网接口
27.2.2.4 时钟的设置
27.2.3 DMA IP 配置
27.2.4 GPIO的配置
27.2.5 配置axi_ data_fifo _0
27.2.7 地址空间映射
27.3 FPGA的发送代码
27.4 PS部分BSP设置
27.4.1 SDK工程BSP设置
27.4.2 lwip函数库设置
27.5 PS部分程序分析
27.5.1 main.c分析
27.5.2 AXI DMA数据传输过程
27.5.3 TCP发送流程
27.5.4 开发板与电脑IP地址设置
27.6 连接测试
27.7 连不上调试助手解决
27.8注意事项
CH28 利用LWIP实现ADC DAQ7606数据采集
28.1 DAQ7606 采集卡图片
28.2 项目要求
28.2.1 功能要求
28.2.2 控制协议
28.3 方案构架
28.3.1 传输方案
28.3.2 数据包格式
28.4 FPGA 代码介绍
28.4.1 axidma_tcp_demo_wrapper.v
28.4.2 ad7606_ctrl.v
28.4.3 adc_to_axistream.v
28.4.4 axidma_tcp_demo.bd
28.5 PS 部分 BSP 设置
28.5.1 SDK 工程 BSP 设置
28.5.2 lwip 函数库设置
28.6 PS 部分程序分析
28.6.1 main.c 分析
28.6.2 AXI DMA 数据传输过程
28.6.3 串口控制命令
28.6.4 TCP 发送流程
28.7 连接测试
28.7.1 测试连接
28.7.2 修改电脑IP地址
28.7.3 连接网络助手并测试
28.8 连不上调试助手解决
28.9注意事项
CH29 基于TCP的QSPI Flash bin文件网络烧写
29.1 概述
29.2 基本原理
29.3 Bin文件
29.4 QSPI Flash
29.5 驱动程序
29.5.1 建立TCP Server
29.5.2 lwip库设置
29.5.3 程序解析
29.5.4 接收保存BOOT.bin文件
29.5.5 烧写QSPI Flash
29.5.6 TCP调试信息输出
29.6 网络调试助手操作方法
29.6.1 发送bin文件
29.6.2 发送启动Flash烧写命令
29.7 Bin文件更新验证
29.8 待改进之处
CH30 基于UDP的QSPI Flash bin文件网络烧写
30.1 概述
30.2 基本原理
30.2.1 Bin文件
30.2.2 QSPI Flash
30.3 驱动程序
303.1 main函数
30.3.2建立UDP连接
30.3.3 lwip库设置
30.3.4 程序解析
30.3.5接收保存BOOT.bin文件
30.3.6烧写QSPI Flash
30.3.7 UDP调试信息输出
30.4网络调试助手操作方法
30.4.1发送bin文件
30.4.2发送启动Flash烧写命令
30.5 Bin文件更新验证
30.6待改进之处
CH31 基于AMP实现裸机双核运行
31.1概述
31.2基本原理
31.2.1软件中断
31.2.2共享内存通信
31.2.3双核BOOT
31.3驱动程序
31.3.1 CORE0工程
31.3.1.1 main函数
31.3.1.2建立TCP Server
31.3.1.3 初始化软件中断
31.3.1.4 启动CORE1
31.3.1.5 数据写入共享内存
31.3.1.6 触发软件中断
31.3.1.7响应软件中断
31.3.2 CORE1工程
31.3.2.1 main函数
31.3.2.2初始化软件中断
31.3.2.3响应软件中断
31.3.2.4共享内存数据读出
31.3.2.5触发软件中断
31.4工程创建及设置关键步骤
31.5工程调试关键步骤
31.6生成BOOT.bin及双核BOOT验证
31.6.1 生成BOOT.bin
31.6.2 双核BOOT验证
CH32 PL扩展以太网LWIP通信(7XB only)
32.1 概述
32.2 基本原理
32.3 FPGA BD工程
32.3.1 IP 连线图
32.3.2 ZYNQ PS 设置
32.3.3 AXI 1G/2.5G Ethernet Subsystem
32.3.4 AXI Direct Memory Access
32.3.5 PL 至PS 的中断
32.3.6 时序约束
32.4 PS 程序设计
32.4.1 创建工程
32.4.2 LWIP 库的修改
32.4.3 网络测试
CH33 PL扩展以太网UDP通信(7XB only)
33.1 概述
33.2 Tri Mode Ethernet MAC设置
33.3 IP核结构
33.3.1 Tri Mode Ethernet MAC时钟网络
33.3.2 用户接口
33.4 IP核用户接口
33.4.1 independent_clock_bufg
33.4.2 signal_detect
33.4.3 Configuration_Vector
33.4.4 an_adv_config_vector
33.4.5 Status_Vector
33.4.6 IP核使用注意点
1.Tri Mode Ethernet MAC
2.AXI-Lite接口配置策略
33.5 例程设计
33.5.1 AXI-Stream DATA FIFO
33.5.2 AXI4-Stream Data Width Converter
33.6 例程测试
33.6.1 UDP环路测试
33.6.2 Ping、ARP测试
CH34 AXI-Lite总线音频驱动方案
34.1 概述
34.2 音频采集卡图片
34.2.1 ADAU1761介绍
34.2.2 音频子卡信号
34.2.3 音频子卡接口
34.3 音频模块驱动设计
34.3.1 ADAU1761 收发时序
34.3.2 收发模块驱动设计
34.3.3 创建ADAU1761的AXI4用户IP
34.4 创建工程中的关键设置
34.5 PS部分设计
34.6 测试
34.6.1 测试1
34.6.2 测试2
CH35 基于μGUI的触摸屏GUI界面设计
35.1 概述
35.2 基本原理
35.3 LCD 触摸屏
35.3.1 液晶屏
35.3.2 触摸屏
35.3.3 触摸屏唤醒
35.3.4 触摸中断
35.3.5 触摸信息获取
35.3.6 LCD触摸屏接口
35.3.6.1 RGB接口
35.3.6.2 LVDS接口
35.4 μGUI概述
35.4.1 μGUI库移植
35.4.1.1 添加单像素点像素值设置函数
35.4.1.2 调整各种变量类型定义
35.4.1.3 GUI窗口
35.4.1.4 GUI界面刷新
35.4.1.5 人机交互
35.4.2颜色空间
35.4.3字体大小
35.5 PL逻辑框架
31.5.1 PS设置
35.5.2 GUI界面显示
35.5.2.1 AXI VDMA设置
35.5.2.2 Video Timing Controller
35.5.2.3 AXI4-Sream to Video Out
35.5.2.4 AXI-Sream Subset Converter
35.5.3 AXI PWM
35.5.4 AXI GPIO
35.5.5 Clocking Wizard
35.5.6 IO口
35.5.6.1 RGB接口IO
35.5.6.2 LVDS接口IO
35.6 PS程序设计
35.6.1 main函数
35.6.2 时钟重配置
35.6.3 PWM信号输出
35.6.4 GPIO输入输出
35.6.5 I2C读取触摸信息
35.6.6 GUI界面显示
35.6.6.1 AXI VDMA
35.6.6.2 显示时序设置
35.6.7 定时器
35.6.8 GUI界面设计
35.6.8.1 GUI初始化
35.6.8.2 窗口1设计
35.6.8.3 窗口2设计
35.6.8.4 窗口3设计
35.6.8.5 窗口4设计
35.6.8.6 窗口5设计
35.7注意事项
35.7.1 更改GUI分辨率
35.7.2 RGB和LVDS接口可调电阻
35.7.3 提供测试例程FEP接口电压
35.7.4 测试连接
附录
附件1:摄像头
附件2:VGA时序标准
附件3:如何添加驱动库(SDK库移植)
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 裸机篇 2019 版 版本信息: 版本 REV2019 时间 04/01/2019 ZYNQ 修炼秘籍裸机篇 2019 版 电子版自学资料 常州一二三电子科技有限公司 溧阳米联电子科技有限公司 版权所有 米联客(MSXBO)04QQ 群:516869816 米联客(MSXBO)03QQ 群:543731097 米联客(MSXBO)02QQ 群:86730608 米联客(MSXBO)01QQ 群:34215299 第 1 页 共 632 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 裸机篇 2019 版 版本 Rev2016 Rev2017 Rev2018 Rev2019 时间 2016-07-03 2017-04-03 2017-08-21 2019-04-09 描述 2016 版本 2017 版本 2018 版本 ZYNQ 修炼秘籍裸机篇 2019 版本增加至 35 个课时,课程涵 盖了 SDK 软件工程创建、软硬件调试方法、封装 IP、程序固化 等方法,并且对 GPIO、中断、XADC、AXI4 等基础应用进行讲 解。数据传输部分讲解了 BRAM、EMIF 通信,DMA 通信,图像采 集传输部分讲解了基于 VDMA 图像采集传输方案。网络通信部 分讲解了 TCP/UDP 网络传输方案。内容简洁、通俗易懂、实用 性高,初学者可以快速掌握 ZYNQ SOC 开发方法。 ZYNQ 修炼秘籍裸机篇 2019 视频全新录制,文档全新归档, 资料更规范,内容更实用。 裸机篇内容并不代表 ZYNQ SOC 裸机的所有内容,我们后 续的章节还有更多关于 ZYNQ 开发的课程内容。 第 2 页 共 632 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 裸机篇 2019 版 感谢您使用米联客 XILINX FPGA 开发板,以及配套教程。公司自成立以来专注于 FPGA 硬件和软 件的开发,致力于为广大的 FPGA 爱好者、学生、教师、工程师、科研院所、科技企业提供可靠的硬 件、完善的软件和高质量的自学教程。 本章节课程涵盖了 SDK 软件工程创建、软硬件调试方法、封装 IP、程序固化等方法,并且对 GPIO、 UART、SPI、I2C、CAN、定时器、PL 中断、XADC、AXI4 等基础应用进行讲解。图像采集传输部分讲 解了基于 VDMA 图像采集传输方案。网络通信部分讲解了 TCP/UDP 网络传输方案。内容简洁、通俗易 懂、实用性高,是初学者入门并且掌握 ZYNQ 开发的必备自学教程。 本章课程内容所讲为 ZYNQ 裸机开发,内容方法适用于任何的 ZYNQ 发板,如果您正在使用的开发 板或者芯片型号和我们讲解演示的开发板型号不一致,请您根据硬件设计原理图自行修改 FPGA IO 定义,FPGA 芯片型号,或者参阅配套的 FPGA 工程代码。 完整的《ZYNQ 修炼秘籍》包含:“ 01_XILINX FPGA 入门篇”、 “02_ZYNQ 修炼秘籍裸机篇”、 “03_ZYNQ AXI4 自定义 IP-FDMA 读写 DDR”、“04_HLS 图像算法篇”、“05_SFP 高速串行通信篇” (仅具有高速接口的开发板配有)、“06_PCIE XDMA 应用篇”(仅具有高速接口的开发板配有)以及 “zynq-osrc-lab-linux 独立篇”。用户可以根据自身情况选择全部,或者部分学习各大章节提供的 课程内容。 虽然我们已经提供了非常全面详细的课程内容,但这不代表全部,我们还会继续更新,给广大 用户提供更多有价值的应用方案。 版权声明: 本手册版权归常州一二三电子科技有限公司/溧阳米联电子科技有限公司所有,并保留一切权利, 未经我司书面授权,擅自摘录或者修改本手册部分或者全部内容,我司有权追究其法律责任。 版主大神们都等着大家去提问--电子资源论坛 www.osrc.cn 扫描以下二维码注册论坛:www.osrc.cn 微信公众平台:MSXBO(米联客) 第 3 页 共 632 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 裸机篇 2019 版 目录 ZYNQ 修炼秘籍裸机篇 2019 版............................................................................................................................................. 1 CH01 HelloWold/DDR/网口测试及固化 ............................................................................................................................... 16 1.1 概述 .......................................................................................................................................................................... 16 1.2 最小系统分析 .......................................................................................................................................................... 16 1.3 硬件电路分析 .......................................................................................................................................................... 16 1.4 创建 VIVADO 工程 ................................................................................................................................................. 17 1.5 新建 SDK 工程 ........................................................................................................................................................ 29 1.6 Hello World 实验 ...................................................................................................................................................... 29 1.7 MemTest 内存测试程序 ........................................................................................................................................... 36 1.8 DRAMTest 内存测试程序 ........................................................................................................................................ 38 1.9 LWIP 协议对千兆网口测试 ..................................................................................................................................... 41 1.10 使用快捷按钮调试 ................................................................................................................................................ 47 1.11 固化程序 ................................................................................................................................................................ 47 CH02 在线逻辑分析仪及软硬件调试技巧 .......................................................................................................................... 48 2.1 概述 .......................................................................................................................................................................... 48 2.2 搭建 FPGA BD 工程 ................................................................................................................................................ 48 2.3 添加调试用 IP CORE ILA ...................................................................................................................................... 52 2.4 添加调试用 IP CORE VIO ...................................................................................................................................... 53 2.5 AXI4 添加 IP CORE ILA ........................................................................................................................................ 56 2.6 编译 FPGA 工程 ...................................................................................................................................................... 58 2.7 加载到 SDK ............................................................................................................................................................. 58 2.8 加载逻辑分析仪波形窗口 ...................................................................................................................................... 59 2.9 ILA GPIO 信号调试 ................................................................................................................................................. 60 2.10 ILA 观察 AXI4 总线波形 ...................................................................................................................................... 61 2.11 VIO(虚拟机 IO)的使用 .......................................................................................................................................... 63 2.12 SDK 调试认识工具栏 ............................................................................................................................................ 64 2.12.1 Kill Break Point(使断点失效) ..................................................................................................................... 64 2.12.2 Resume(开始/重新开始运行) ...................................................................................................................... 64 2.12.3 Supend(暂停)................................................................................................................................................ 64 2.12.4 Terminate(结束) ........................................................................................................................................... 64 2.12.5 Disconnect(断开连接) .................................................................................................................................. 64 2.12.6 Step in to(可以进入库函数调试) ................................................................................................................ 64 2.12.7 Step Over(跳过当前函数)............................................................................................................................ 64 2.12.8 Step Return(返回)......................................................................................................................................... 65 2.12.9 Program FPGA(下载 FPGA bit) .................................................................................................................. 65 2.12.10 Program Flash(固化 FLASH) ..................................................................................................................... 65 2.12.11 Debug(调试) ............................................................................................................................................... 65 2.12.12 RUN(直接运行) ......................................................................................................................................... 65 2.13 SDK 常用菜单 ........................................................................................................................................................ 65 2.13.1 Project(与编译相关) .................................................................................................................................... 65 2.13.2 Run(与调试有关命令) ................................................................................................................................. 66 2.13.3 Xilinx(与程序下载相关) ............................................................................................................................. 66 2.13.4 Window(与软件相关的窗口) ...................................................................................................................... 66 2.14 SDK 调试技巧之断点设置 .................................................................................................................................... 67 2.15 SDK 调试技巧之观察变量 .................................................................................................................................... 67 2.16 SDK 调试技巧之查看函数定义 ............................................................................................................................ 68 第 4 页 共 632 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 裸机篇 2019 版 2.17 SDK 调试技巧之观察内存 .................................................................................................................................... 69 CH03 XADC 实验 ................................................................................................................................................................. 71 3.1 概述 .......................................................................................................................................................................... 71 3.2 采集参数 .................................................................................................................................................................. 71 3.3 搭建 FPGA BD 工程 ................................................................................................................................................ 72 3.4 编译 FPGA 工程 ...................................................................................................................................................... 74 3.5 新建 SDK 工程 ........................................................................................................................................................ 75 3.6 测试结果 .................................................................................................................................................................. 75 3.7 函数分析 .................................................................................................................................................................. 76 3.7.1 XAdcPs_LookupConfig 函数 ........................................................................................................................ 76 3.7.2 XAdcPs_CfgInitialize 函数 ............................................................................................................................ 77 3.7.3 XAdcPs_SetSequencerMode 函数 ................................................................................................................. 80 3.7.4 XAdcPs_SetAlarmEnables ............................................................................................................................. 83 3.7.5 XAdcPs_SetSeqInputMode ............................................................................................................................ 83 3.7.6 XAdcPs_SetSeqChEnables ............................................................................................................................ 84 3.7.7 XAdcPs_GetAdcData ..................................................................................................................................... 86 CH04 PS MIO 实验 ............................................................................................................................................................... 88 4.1 概述 .......................................................................................................................................................................... 88 4.2 GPIO 简介 ................................................................................................................................................................. 88 4.2.1 GPIO 的控制寄存器地址空间 ...................................................................................................................... 89 4.2.2 MIO 内部构造分析 ....................................................................................................................................... 92 4.2.3 EMIO 的特性 ................................................................................................................................................. 92 4.3 电路分析及实验预期 .............................................................................................................................................. 93 4.4 搭建 BD 工程 ........................................................................................................................................................... 93 4.5 编译 FPGA 工程 ...................................................................................................................................................... 94 4.6 新建 SDK 工程 ........................................................................................................................................................ 94 4.7 测试结果 .................................................................................................................................................................. 97 4.8 程序分析 .................................................................................................................................................................. 97 CH05 PS EMIO 实验 ........................................................................................................................................................... 104 5.1 概述 ........................................................................................................................................................................ 104 5.2 EMIO 和 MIO 的对比介绍 ................................................................................................................................... 104 5.3 电路分析与实验现象 ............................................................................................................................................ 104 5.4 搭建 BD 工程 ......................................................................................................................................................... 104 5.5 添加 PIN 添加 PIN 约束 ........................................................................................................................................ 106 5.6 编译 FPGA 工程 ..................................................................................................................................................... 106 5.7 新建 SDK 工程 ..................................................................................................................................................... 106 5.8 实验结果 ................................................................................................................................................................ 107 5.9 程序分析 ................................................................................................................................................................ 107 CH06 AXI GPIO 实验 ......................................................................................................................................................... 109 6.1 概述 ........................................................................................................................................................................ 109 6.2 搭建 BD 工程 ......................................................................................................................................................... 109 6.3 编译 FPGA 工程 .....................................................................................................................................................111 6.3 新建 SDK 工程 .......................................................................................................................................................111 6.4 实验结果 ................................................................................................................................................................ 112 6.5 程序分析 ................................................................................................................................................................ 112 CH07 PL 中断请求实验 ....................................................................................................................................................... 115 7.1 概述 ........................................................................................................................................................................ 115 7.2 ZYNQ 中断介绍 .................................................................................................................................................... 115 第 5 页 共 632 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 裸机篇 2019 版 7.2.1 ZYNQ 中断框图 .......................................................................................................................................... 115 7.2.2 ZYNQ CPU 软件中断 (SGI) ...................................................................................................................... 116 7.2.3 ZYNQ CPU 私有端口中断 ........................................................................................................................ 117 7.2.4 ZYNQ PS 和 PL 共享中断 .......................................................................................................................... 117 7.3 搭建 BD 工程 ......................................................................................................................................................... 118 7.4 编译 FPGA 工程 .................................................................................................................................................... 120 7.5 新建 SDK 工程 ...................................................................................................................................................... 121 7.6 实验结果 ................................................................................................................................................................ 121 7.7 程序分析 ................................................................................................................................................................ 121 CH08 定时器中断实验 ........................................................................................................................................................ 129 8.1 概述 ........................................................................................................................................................................ 129 8.2 中断原理 ................................................................................................................................................................ 129 8.2.1 软件中断(SGI) ............................................................................................................................................ 129 8.2.2 共享中断 SPI .............................................................................................................................................. 129 8.2.3 私有中断(PPI) ....................................................................................................................................... 130 8.2.4 私有定时器 ................................................................................................................................................. 130 8.3 搭建 FPGA BD 工程 .............................................................................................................................................. 130 8.4 编译 FPGA 工程 .................................................................................................................................................... 131 8.5 新建 SDK 工程 ...................................................................................................................................................... 131 8.6 实验结果 ................................................................................................................................................................ 131 8.7 程序分析 ................................................................................................................................................................ 132 8.7.1 timer_intr.c .................................................................................................................................................... 132 8.7.2 sys_intr.c ....................................................................................................................................................... 139 8.8.3 main.c ........................................................................................................................................................... 140 CH09 UART 串口中断实验 ................................................................................................................................................. 141 9.1 概述 ...................................................................................................................................................................... 141 9.2 串口通信介绍 ......................................................................................................................................................... 141 9.2 搭建 FPGA BD 工程 .............................................................................................................................................. 142 9.3 编译 FPGA 工程 .................................................................................................................................................... 143 9.4 新建 SDK 工程 ...................................................................................................................................................... 143 9.5 实验结果 ................................................................................................................................................................ 144 9.6 程序分析 ................................................................................................................................................................ 145 9.6.1 Uart 控制器 .................................................................................................................................................. 145 9.6.2 uartps_intr.c .................................................................................................................................................. 146 9.6.3 main.c ........................................................................................................................................................... 159 CH10 SPI 通信测试实验 ...................................................................................................................................................... 160 10.1 概述 .................................................................................................................................................................... 160 10.2 SPI 总线协议 ........................................................................................................................................................ 160 10.2 搭建 FPGA BD 工程 ............................................................................................................................................ 162 10.3 添加 PIN 添加 PIN 约束 ..................................................................................................................................... 164 10.4 编译 FPGA 工程 .................................................................................................................................................. 164 10.5 新建 SDK 工程 .................................................................................................................................................... 165 10.6 硬件连线 .............................................................................................................................................................. 165 10.7 实验结果 .............................................................................................................................................................. 166 10.8 程序分析 .............................................................................................................................................................. 166 10.8.1 SPI 控制器 ................................................................................................................................................ 166 10.8.2 spips.c ......................................................................................................................................................... 167 10.8.3 spi_test.c ..................................................................................................................................................... 176 第 6 页 共 632 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 裸机篇 2019 版 CH11 I2C 读写 EEPROM 实验............................................................................................................................................ 177 11.1 概述 .................................................................................................................................................................... 177 11.2 I2C 总线协议 ........................................................................................................................................................ 177 11.3 EEPROM 24C02 介绍 .......................................................................................................................................... 180 11.4 FPGA BD 工程 ...................................................................................................................................................... 182 11.5 I2C Polled 方式读写 EEPROM ............................................................................................................................ 184 11.5.1 I2c 控制器 ................................................................................................................................................. 184 11.5.2 I2cPs_Polled.c ............................................................................................................................................ 185 11.5.3 eeprom.c ..................................................................................................................................................... 186 11.5.4 main.c ......................................................................................................................................................... 188 11.6 I2C 中断方式读写 EEPROM ............................................................................................................................... 188 11.6.1 I2cPs_intr.c ................................................................................................................................................. 188 11.6.2 eeprom.c ..................................................................................................................................................... 192 11.6.3 main.c ......................................................................................................................................................... 193 11.7 硬件连线 .............................................................................................................................................................. 194 11.8 测试结果 ............................................................................................................................................................... 195 CH12 I2C 读写 RTC 时钟实验 ........................................................................................................................................... 196 12.1 概述 .................................................................................................................................................................... 196 12.2 RTC 时钟 DS1307 介绍........................................................................................................................................ 196 12.3 FPGA BD 工程 ...................................................................................................................................................... 197 12.4 I2C Polled 方式读写 RTC 时钟芯片.................................................................................................................... 199 12.4.1 I2c 控制器 ................................................................................................................................................. 199 12.4.2 I2cPs_Polled.c ............................................................................................................................................ 200 12.4.3 RTC_DS1307.c ........................................................................................................................................... 201 12.4.4 mian.c ......................................................................................................................................................... 205 12.5 硬件连线 .............................................................................................................................................................. 207 12.6 测试结果 .............................................................................................................................................................. 207 CH13 CAN 总线通信实验 ................................................................................................................................................... 208 13.1 概述 .................................................................................................................................................................... 208 13.2 CAN 总线介绍 ...................................................................................................................................................... 208 13.2.1 数据格式 .................................................................................................................................................... 208 13.2.2 数据帧 ........................................................................................................................................................ 209 13.2.3 远程帧 ........................................................................................................................................................ 212 13.2.4 数据帧与远程帧对比 ................................................................................................................................ 213 13.2.5 波特率 ........................................................................................................................................................ 213 13.3 FPGA BD 工程 ...................................................................................................................................................... 217 13.4 程序分析 ............................................................................................................................................................... 217 13.4.1 CAN 接口 ................................................................................................................................................... 218 13.4.2 main 函数 ................................................................................................................................................... 220 13.5 硬件连线 .............................................................................................................................................................. 220 13.6 程序测试 ............................................................................................................................................................... 222 13.6.1 数据发送测试 ............................................................................................................................................ 222 13.6.2 数据接收测试 ............................................................................................................................................ 222 13.6.3 数据帧接收 ................................................................................................................................................ 222 13.6.4 远程帧接收 ................................................................................................................................................ 224 13.6.5 数据收发同时进行 .................................................................................................................................... 225 CH14 TF/SD 卡/EMMC 读写实验 ...................................................................................................................................... 228 14.1 概述 ...................................................................................................................................................................... 228 第 7 页 共 632 页
常州一二三/溧阳米联电子科技有限公司 米联客(MSXBO)www.osrc.cn ZYNQ 修炼秘籍 裸机篇 2019 版 14.3 FPGA BD 工程 ...................................................................................................................................................... 228 14.4 SD/TF 卡读写程序 ............................................................................................................................................... 229 14.5 SD/TF 卡读写测试结果 ....................................................................................................................................... 233 14.6 EMMC 读写程序 ................................................................................................................................................. 233 14.7 测试结果 .............................................................................................................................................................. 235 CH15 AXI_Lite 总线详解 ................................................................................................................................................... 236 15.1 概述 ...................................................................................................................................................................... 236 15.2 AXI 总线与 ZYNQ 的关系 .................................................................................................................................. 236 15.3 AXI 总线和 AXI 接口以及 AXI 协议 ................................................................................................................. 236 15.3.1 AXI 总线概述 ............................................................................................................................................ 236 15.3.2 AXI 接口介绍 ............................................................................................................................................ 237 15.3.3 AXI 协议概述 ............................................................................................................................................ 238 15.3.4 AXI 协议之握手协议 ................................................................................................................................ 239 15.3.5 突发式读写 ............................................................................................................................................... 240 15.4 AXI4-Lite 详解 ..................................................................................................................................................... 241 15.4.1 AXI4-Lite 源码查看 ................................................................................................................................... 241 15.4.2 AXI-Lite 源码分析 .................................................................................................................................... 243 15.5 观察 AXI4-Lite 总线信号 ................................................................................................................................... 249 CH16 自定义 IP User_GPIO 实验 ...................................................................................................................................... 252 16.1 概述 ...................................................................................................................................................................... 252 16.2 创建 IP ................................................................................................................................................................. 252 16.3 搭建 FPGA BD 工程 ............................................................................................................................................ 268 16.4 加载到 SDK ......................................................................................................................................................... 270 16.5 程序分析 .............................................................................................................................................................. 271 CH17 自定义 IP AXI_PWM 实验 ....................................................................................................................................... 272 17.1 概述 ...................................................................................................................................................................... 272 17.2 自定义 IP 的封装 ................................................................................................................................................. 272 17.3 用户 IP 的修改 ..................................................................................................................................................... 273 17.4 FPGA BD 工程 ...................................................................................................................................................... 279 17.5 加载到 SDK ......................................................................................................................................................... 281 17.6 程序分析 .............................................................................................................................................................. 282 CH18 自定义 IP 频率计实验 .............................................................................................................................................. 283 18.1 概述 ...................................................................................................................................................................... 283 18.2 等精度频率计原理 .............................................................................................................................................. 283 18.2.1 引 言 ....................................................................................................................................................... 283 18.2.2 频率测量原理 ........................................................................................................................................... 283 18.2.3 脉冲计数法 ............................................................................................................................................... 283 18.2.4 周期测频法 ............................................................................................................................................... 283 18.2.5 多周期同步测频原理及误差分析 ........................................................................................................... 284 18.3 等精度频率计设计 .......................................................................................................................................... 285 18.3.1 PS 寄存器功能划分 ................................................................................................................................... 285 18.3.2 具体实现 ................................................................................................................................................... 286 18.2.3 频率计 PL 部分代码设计 ......................................................................................................................... 286 18.4 FPGA BD 工程 ...................................................................................................................................................... 304 18.5 导入到 SDK ......................................................................................................................................................... 304 18.6 误差分析 .............................................................................................................................................................. 304 CH19 利用 BRAM 进行 PS 与 PL 间数据交互 ................................................................................................................. 305 19.1 概述 ...................................................................................................................................................................... 305 第 8 页 共 632 页
分享到:
收藏