第五章 硬件资源详解
上一章我们从"板子上有什么"的角度认识了开发板,本章更进一步,从原理图层面讲清楚这些资源是怎么设计的、IO 怎么分配的。读懂本章,你就能知道某个功能需要分配哪些引脚、写驱动时该注意什么。
本章在讲什么
本章内容分五部分:
- 领航者ZYNQ 的IO 分配——PL 端和PS 端的IO 组织方式与引脚分配表;
- 底板原理图详解——电源、启动模式、LED、按键、各类通信接口的电路设计;
- 核心板原理图详解——核心板电源、ZYNQ 芯片、DDR3、QSPI Flash、eMMC 等;
- 使用注意事项——供电、跳帽操作、静电防护等实用提醒;
- ZYNQ 的学习方法——从方法论的层面给你一条清晰的学习路径。
核心概念拆解
1. IO 分配:PL 与PS 两套规则
XC7Z020 有6 个用户IO BANK(比XC7Z010 多一个BANK13)和最大253 个用户IO。ZYNQ 的IO 分成PL 和PS 两部分,两者的IO 分配规则完全不同。
PL 端IO 分配——像传统FPGA 一样自由
XC7Z020 的PL 端IO 分为3 组(BANK13、BANK34、BANK35),同一BANK 内所有IO 电平相同,不同BANK 电平可以不同。领航者开发板上这3 个BANK 的供电均为3.3V,即PL 端所有IO 电平均为3.3V。
注意:BANK13 的IO 仅XC7Z020 可用,对XC7Z010 来说是空脚(NC)。


一个特殊引脚需要注意:B34_L3_P 是PUDC_B 管脚,Xilinx 官方手册要求它必须通过1KΩ 或更小的电阻接到VCCO_34 或GND,且芯片配置完成前电平要保持稳定。


开发板PL 端常用外设的引脚分配(节选):
| 信号 | 方向 | 管脚 | 说明 |
|---|---|---|---|
| sys_clk | input | U18 | 系统时钟50MHz |
| sys_rst_n | input | N16 | PL 复位,低电平有效 |
| key[0]/key[1] | input | L14/K16 | PL 按键KEY0/KEY1 |
| led[0]/led[1] | output | H15/L15 | 底板PL_LED0/1 |
| led | output | J16 | 核心板PL_LED |
| beep | output | M14 | 蜂鸣器 |
| uart_rxd/uart_txd | in/out | K14/M15 | RS232/RS485 串口 |
| iic_scl/iic_sda | out/inout | E18/F17 | IIC 总线(EEPROM/RTC/音频配置) |
| lcd_rgb[23:0] | output | — | RGB LCD 24 位数据 |
| cam_data[7:0] | input | — | 摄像头8 位数据 |
完整分配表见原书,资料盘A 盘→3_开发板原理图文件夹下还提供Excel 格式的管脚分配表格(分"PL IO 引脚列表"和"PS IO 引脚列表"两个工作表)。
PS 端IO 分配——映射固定,不能随意改
PS 端也有3 个IO BANK(BANK500、BANK501、BANK502),分别采用3.3V、1.8V、1.35V 供电。与PL 端最大的不同:PS 端外设的IO 与MIO(多路复用IO)之间具有固定关系的映射,用户不能像PL 那样把IO 随意分配给某个外设。某个外设可能映射到不同MIO,某个MIO 也可能有多个外设映射。

PS 端常用外设的MIO 映射(节选):
| 信号 | MIO | 说明 |
|---|---|---|
| ps_led(核心板) | MIO0 | PS_LED |
| QSPI_CS#/SCK/D0~D3 | MIO1/6/2/3/4/5 | QSPI FLASH |
| ps_key[0]/[1] | MIO12/11 | PS 按键 |
| PS_UART_RXD/TXD | MIO14/15 | PS 串口 |
| ETH_TX/RX | MIO16~27, 52/53 | PS 以太网RGMII |
| SD_CLK/CMD/D0~D3/CD | MIO40~45, 10 | SD 卡 |
| eMMC_* | MIO46~51 | eMMC |
2. 底板原理图要点
电源系统:12V 适配器→DC-DC(RY9125)→+5V→电源开关→系统供电;再由LDO 芯片AMS1117-3.3 和AMS1117-1.8 产生+3.3V 和+1.8V。USB 串口的+5V 也可供电,但驱动能力有限(500mA),不能带LCD 等大功耗外设。


电源输入口有防反接二极管D4,极性接反也不会烧板。3.3V 产生后电源指示灯PWR 点亮,可通过它判断供电是否正常。板载5V/3.3V 电源输入输出排针,最大1000mA,调试小电路板很方便。
BOOT 启动模式:ZYNQ 支持4 种启动模式——JTAG、NAND、QSPI FLASH、SD Card,由底板两个拨码开关(连接MIO4/MIO5,与QSPI_D2/D3 复用)设置:
| 拨码开关1 | 拨码开关2 | 启动模式 |
|---|---|---|
| ON | ON | JTAG |
| OFF | ON | NAND(本板无NAND,不可用) |
| ON | OFF | QSPI FLASH |
| OFF | OFF | SD Card |

有源蜂鸣器:注意"有源"的"源"指震荡源而非电源——有源蜂鸣器内部自带震荡源,通电就响;无源蜂鸣器需要2K~5K 方波驱动。电路通过NPN 三极管S8050 驱动:BEEP(PL IO)输出高电平→三极管导通→蜂鸣器负极接地形成通路→鸣叫。

LED 灯:底板4 个LED(PL/PS 各2 个),IO 输出高电平"1"点亮,低电平"0"熄灭:

用户按键:PL 复位按键(按下低电平复位)、2 个PL 按键、2 个PS 按键,全部外接上拉电阻——未按下输出高电平,按下输出低电平:

电容触摸按键:采用AR101(兼容JL223B)专用驱动芯片,内部有1K 电容充电电阻,产生稳定无毛刺信号。触摸时TPAD 变高电平,未触摸为低电平。
JTAG 接口:14-Pin 标准调试口,与核心板6-PIN JTAG 硬件连通,由TMS、TDI、TDO、TCK、3.3V 电源和GND 组成,用于下载程序和在线调试。
USB 串口(CH340C):国产芯片,用于PS 程序调试日志显示。通过P5 排针+跳线帽选择CH340 连接PS 端还是PL 端IO。两个细节设计:单独的3.3V(XC6206)给CH340 供电,保证开发板断电后电脑仍能识别串口COM 号;74LVC1G125 芯片防止断电后CH340 引脚电压反灌给FPGA。
RS232/RS485(复用IO):电脑串口用RS-232 负逻辑电平(-15V~-5V 为"1",+5V~+15V 为"0"),与FPGA 的3.3V 数字电平不同,需要SP3232 收发器转换。RS485 电平与LVDS 类似(两线压差±2~6V),需SP3485 芯片转换,且属半双工通信,用RS485_DE 信号控制收发方向——巧妙的是DE 信号没占用ZYNQ 引脚,而是由三极管构成的自动方向选择电路根据RS485_RX 电平自动切换。P1 排针选择用RS232 还是RS485。


RGB LCD 接口:RGB888 格式,最大1677 万色,支持触摸(电阻/电容屏),LCD_BL 为1 打开背光。仅支持RGB 接口液晶,不支持MCU 接口。
XADC 接口:ZYNQ 内部XADC 模块采样率可达1MSPS,可测芯片内部温度电压和0~1V 外部模拟电压。接口处R107/R108/C105 组成抗混叠滤波器,滤除超过采样频率一半的高频谐波。
EEPROM(AT24C64):I2C 接口,64Kb 容量,掉电数据不丢失。A0~A2 接地即器件地址为0,写代码时要注意;IIC 的SCL/SDA 开漏,必须接上拉电阻。
RTC(PCF8563):提供年月日时分秒、星期和日历功能,外接32.768KHz 无源晶振,支持3.3V 直接供电和CR1220 纽扣电池备用供电(BAT54C 隔离两路电源)。器件地址与EEPROM 不同,所以两者可共用一组IIC 总线。
I2S 音频(ES8388):低功耗立体声编解码器,内部集成24 位DAC&ADC,支持最高96KHz@24bit 播放,自带EQ、3D 音效、麦克风放大器和耳机放大器。ZYNQ 通过PL IO 模拟I2S 总线传音频数据,I2C 总线做配置。板载MIC(录音)、PHONE(耳机输出)、LINE_IN(音频输入)和8Ω2W 小喇叭。
HDMI 接口:PL 侧差分IO 直连HDMI 差分信号,由FPGA 逻辑实现TMDS 编解码,最高支持1080P。HDMI 的IIC 引脚是5V 电平,通过MOS 管电路双向转换为3.3V。
PL 端千兆以太网:PHY 芯片YT8531,支持10/100/1000Mbps,通过RGMII 接口与PL 通信。注意:PS 端有以太网MAC 硬核,而PL 端需要用户自己用Verilog 实现MAC 层软逻辑(或通过EMIO 耦合到PS 端MAC)。RJ45 插座ATK91131A 自带网络变压器。
USB 2.0 接口:USB3320C PHY 芯片(1.8V 供电,ULPI 接口连PS 端MIO),差分信号经GL850G HUB 芯片扩展出4 路USB HOST,另直接连1 路USB SLAVE。HOST 和SLAVE 不能同时使用,通过P4 排针跳线帽切换。
Micro SD 接口:PS 端BANK501 的IO 电平是1.8V,而Micro SD 工作电压3.3V,所以需要专用电平转换芯片TXS02612RTWR。SD_CD 信号(MIO10,3.3V 上拉)用于热插拔检测。
CAN 接口:TJA1050 收发器连接CAN 协议控制器与物理总线。CAN 的数字信号经P3 排针隔离后(跳线帽短接)才连到ZYNQ——因为CAN_TX/RX 与扩展口有IO 复用关系,不用CAN 时建议拔掉跳线帽防串扰。R2 是终端匹配电阻。
IO 扩展口:J3、J4 两个40PIN 扩展口(2×20 排针,2.54mm 间距),各含36 个IO、3.3V/5V 电源和GND。J4 大部分IO 接BANK13,仅ZYNQ-7020 可完整使用。
3. 核心板原理图要点
核心板电源:底板5V 输入后,由4 片DC-DC 芯片TLV62130RGT 分别产生1.0V、1.35V、1.8V、3.3V,另有LDO SPX3819M5-3-3 专门给BANK34 供3.3V(想改BANK34 电平可换LDO 型号)。

上电顺序是ZYNQ 硬件设计的关键:官方推荐PS 上电顺序为 VCCPINT→VCCPAUX/VCCPLL→VCCO;PL 上电顺序为 VCCINT→VCCBRAM→VCCAUX→VCCO。核心板的实现很巧妙:利用TLV62130RGT 的使能引脚(EN)和电源良好引脚(PG)级联——+1.0V 由+5V 使能,+1.8V 由+1.0V 的PG 使能,+1.35V 由+1.8V 的PG 使能,+3.3V 由+1.35V 的PG 使能,最终实现 +1.0V→+1.8V→+1.35V→+3.3V 的启动顺序。PS 和PL 的供电完全独立,相互之间没有上电顺序要求。

ZYNQ 主控芯片参数对比:
| 参数 | XC7Z020(7020 核心板) | XC7Z010(7010 核心板) |
|---|---|---|
| 逻辑单元 | 85K | 28K |
| 查找表LUT | 53,200 | 17,600 |
| 寄存器 | 106,400 | 35,200 |
| DSP(18×25 MACC) | 220 | 80 |
| Block RAM | 4.9Mb | 2.1Mb |
| CMT | 4 个 | 2 个 |
| 用户IO BANK | 6 个 | 5 个 |
| 最大用户IO | 253 | 228 |
| Cortex-A9 最高频率 | 766MHz | 666MHz |
两者都集成双核Cortex-A9(ARM-v7 架构)、每个CPU 32KB L1 指令+32KB L1 数据缓存、共享512KB L2 缓存、256KB 片内RAM、BootROM,支持DDR2/DDR3、双千兆网、双USB2.0 OTG、双CAN2.0B、双SD/SDIO、2×SPI/UART/I2C、4 组32bit GPIO(54 个PS 系统IO + 64 个连PL)。
DDR3 SDRAM:两片DDR3 组成32 位位宽系统(每片16 位),共享时钟/命令/地址总线,数据总线各自分开。最高运行速度533MHz,双沿采样,数据率1066Mbps,最大物理带宽约 1066MHz×32bit×0.9 ≈ 30.7Gbit/s(0.9 为刷新损失)。DDR3 是PS 部分的存储接口,PL 逻辑需要通过AXI 接口才能访问DDR3。硬件设计需严格考虑信号完整性(匹配电阻、阻抗控制、等长走线)。

QSPI FLASH(W25Q256):32MB,QSPI 协议,接PS 端BANK500,存储ZYNQ 启动镜像(PS 程序+PL 配置)。注意QSPI_D2/D3 兼作启动方式选择引脚,连到底板拨码开关。CS 信号需上拉。
eMMC(KLM8G1GETF):8GB 非易失性NAND 存储器(电子硬盘),接PS 端BANK501,存储ARM 应用程序、系统文件和用户数据。
PS 复位:采用专用复位芯片HX811T,提供稳定无毛刺的复位信号。
PL/PS 时钟:50MHz 有源晶振接PL 端全局时钟(MRCC),需要其他频率时通过MMCM/PLL 倍频分频;33.333MHz 晶振给PS 端提供时钟。
PS 端千兆以太网PHY(YT8521S):接BANK501,RGMII 接口连PS 端MAC。RGMII 时序:1000Mbps 时接口时钟125MHz(双沿采样)、100Mbps 时25MHz、10Mbps 时2.5MHz(单沿采样)。
PL 配置状态指示灯(DONE LED):连接PL 端配置完成信号,程序下载完成后点亮。
4. 开发板使用注意事项
- 供电:ZYNQ 工作电流较大,USB 供电最大500mA 可能不足,建议用配套电源适配器;
- 断电操作:拔插跳帽/杜邦线、拨动拨码开关、拔插连接器或外接器件之前,必须先断电;
- IO 复用检查:把某个IO 用作其他功能前,先查原理图确认该IO 是否连到板上外设,判断是否有干扰;
- 跳帽查询:使用某功能前先查是否需要连接跳帽,避免浪费时间;
- 液晶白屏排查:先检查液晶模块是否插好(拔下重插),再通过串口查看LCD ID;
- 静电防护:干燥环境(尤其冬季)注意防静电——经常洗手保持皮肤水分、穿防静电鞋/手环、少穿化纤衣物、避免手指直接触摸排针和连接器引脚。
5. ZYNQ 的学习方法
ZYNQ 看似复杂,掌握方法后并不难。三个要点:
- 一款实用的开发板:软件仿真通过不代表板上能跑起来;开发板不宜多,从一而终,学完一个再学另一个;
- 掌握方法,勤学慎思:
- 了解ZYNQ 基本结构(PS、AXI 总线、PLL、FIFO 等概念);
- 掌握Verilog HDL 基本语法和并行设计思想——module/endmodule、wire/reg、always/assign、if/else、case 等关键字要清楚作用和区别;数字电路是并行工作的,写Verilog 要有并行的思想;
- 多思考、多动手:先"熟"才能"巧",光看视频文档不行,要在例程基础上自由发挥、举一反三;
- 善用技术论坛(开源电子网 openedv.com):很多疑问网友已经提过,先搜索再提问。
初学者容易踩的坑
- 以为PS 端IO 也像PL 一样自由分配:PS 端外设与MIO 的映射是固定的,只能通过MIO/EMIO 机制使用,不能随意指定引脚。
- 分不清"有源蜂鸣器"的"源":它指震荡源,不是电源。有源蜂鸣器给电平就响,无源的才需要方波驱动。
- 忘记拔跳线帽导致实验异常:RS232/RS485 复用IO、USB HOST/SLAVE 切换、CAN 与扩展口复用等都靠跳线帽选择,做扩展口实验时若不拔相关跳帽,可能信号串扰。
- 带电拔插跳帽或外设:必须先断电再操作,否则可能损坏芯片。
- 忽略上电顺序的硬件设计逻辑:虽然核心板已处理好,但自己设计ZYNQ 硬件时,电源时序是必须严格遵守的规范(VCCINT→VCCBRAM→VCCAUX→VCCO 等)。
- 直接把RS485/CAN 电平接芯片引脚:这些差分电平必须经过专用收发器芯片(SP3485/TJA1050)转换。
- 以为PL 可以直接访问DDR3:DDR3 挂在PS 的存储接口上,PL 必须通过AXI 接口访问。
小结 & 下一步
本章从原理图层面详解了开发板:PL 端IO 按BANK 自由分配(3.3V 电平),PS 端IO 与MIO 固定映射;底板电源经DC-DC+LDO 分级转换,BOOT 模式由拨码开关设定;各类外设(蜂鸣器、LED、按键、串口、LCD、HDMI、以太网、SD、CAN、音频等)的电路设计各有巧思(自动方向RS485、跳帽隔离复用IO、电平转换等);核心板则解决了ZYNQ 严格的上电顺序要求,并搭载DDR3(30.7Gbit/s 带宽)、QSPI Flash 和eMMC 构成完整存储体系。最后我们还收获了ZYNQ 学习方法论:好板子、掌握语法与并行思想、多动手。
下一章开始进入开发实战:搭建FPGA 开发环境(Vivado)。