嵌入式软硬件协同设计阶段性总结(Zynq7000系列)

      一切不过是几根线的连接,几条命令的书写,但是不知道原理,没有基础,是无论如何也找不到路子的。所以说只是重在积累,而学习贵在持之以恒。


      要学习那本陆佳华的《嵌入式软硬件协同设计实战指南》或者是实际使用zynq7000系列的开发板进行科研试验,都要明确开发板上的PL与PS资源分布。因此首先要明白什么是MIO什么是EMIO。


MIO:多功能IO接口,属于Zynq的PS部分,在芯片外部有54个引脚。这些引脚可以用在GPIO、SPI、UART、TIMER、Ethernet、USB等功能上,每个引脚都同时具有多种功能,故叫多功能。

EMIO:扩展MIO,依然属于Zynq的PS部分,只是连接到了PL上,再从PL的引脚连到芯片外面实现数据输入输出。

具体可以参考

基于Zynq的MIO与EMIO的区别和应用

http://www.ithao123.cn/content-8321280.html


zynq有三种GPIO,分别是MIO、EMIO、AXI_GPIO。其中MIO和EMIO是直接挂在PS上的GPIO。而AXI_GPIO是通过AXI总线挂在PS上的GPIO上。


MIO在zynq上的管脚是固定的,而EMIO,是通过PL部分扩展的,所以使用EMIO时候需要在约束文件中分配管脚(分配的管脚属于zynq芯片的PL部分资源),所以设计EMIO的程序时,需要生成PL部分的bit文件,烧写到FPGA中。

无论是EMIO还是MIO都属于PS上的IO,直接由PS操作。在调用头文件,只调用#include "xgpiops.h"即可,而在调用AXI_GPIO时,则需要#include "xgpio.h"。


另外关于PS与PL部分一开始会有很多困惑。其实我现在也不是太懂。在我看来PL部分就是用户可以自定义的引脚,可以连接特定外设。而PS部分就是固定的引脚,用户不可以自行分配。只可以直接连接。主要就是PL部分,一般连接外设主要用到FMC的引脚和PMOD的引脚。你可以在约束文件中指定串口或者网口的输入输出引脚(不能设置PS部分的引脚),然后与你的实际物理外设连接。他们就可以通过PL部分的资源(也就是IP核)和处理子系统PS通信。如何设计高效的PL与PS数据交互通路是Zynq芯片设计的重中之重。



你可能感兴趣的:(XIlinx,Zynq,IoT,&,embedded)