《LabVIEW ZYNQ FPGA宝典》第6章>>实验4:LabVIEW读取ZYNQ PS(ARM)端MIO引脚(读取PS端按键状态)

1、实验内容

        上一节实验3里面我们向大家展示了如何使用LabVIEW控制ZYNQ PS端的MIO输出点亮或者熄灭LED灯,本节实验我继续MIO实验,向用户展示如何编写一个ZYNQ PS端Linux RT应用程序直接读取PS端MIO引脚上的电平状态,比如捕捉ZYNQ底板上挂在PS端的两个按键KEY的按压状态,相当于将MIO设置成输入模式。

2、实验目标

        本节实验我们需要学会利用LabVIEW编写一个可以读取ZYNQ底板上2个PS端按键状态的Linux RT程序,编译部署下载到ZYNQ芯片的PS端ARM里面去运行,利用LabVIEW Linux RT应用程序在线前面板交互式运行,观察按键按压状态,再次复习并熟练掌握ZYNQ平台PS(ARM)端的LabVIEW Linux RT程序开发过程和原理。

3、硬件介绍

        本节实验只需要用到正点原子领航者ZYNQ开发板,Xilinx JTAG下载器本节实验用不上,因为本节实验我们不需要对PL端FPGA进行编程,所以也就不用观察FPGA部分的状态变化,只需要借助网线部署下载Linux RT程序到PS端ARM里面运行即可。

        原子领航者ZYNQ底板上有2个挂在PS端物理按键,标识分别是“PS_KEY0”和“PS_KEY1”,位于板子右下角,如图4-1所示。这2个按键也是原子为了展示PS端ARM引脚可编程专门预留的。

图4-1:正点原子领航者ZYNQ开发板上挂在PS端ARM上的两个按键

4、原理图介绍

        正点原子ZYNQ领航者底板上的2个开关按键(PS_KEY0和PS_KEY1)对应的MIO引脚原理图,如图4-2所示,可以看出,这两个按键分别与ZYNQ芯片PS端ARM BANK500的MIO12和MIO11这两个引脚相连,如图4-3所示。请记住这2个引脚名称,后面我们用LabVIEW编写Linux RT程序时候,需要调用MIO12和MIO11这2个引脚。

图4-2:原子ZYNQ底板上的2个PS端按键对应的MIO引脚原理图(MIO12、MIO11)

5、驱动VI函数讲解

        正式开始采用LabVIEW编写ZYNQ PS端Linux RT MIO引脚读取输入之前,我们先来了解一下本节实验要用到的Linux RT下的通用GPIO驱动VI函数功能。

        为了方便用户使用,我们提前将底层通用GPIO引脚配置函数封装到LabVIEW Linux RT环境下的“PowerGod-RIO-RT”选板里面,变成一个个小图标,一目了然。

        要完成本节实验,我们需要用到3个函数选板,分别是“PS_Load_KO”、“PS_MIO_Pins”和“PS_Reg_Address”,如图4-3所示。

图4-3:本节实验要用到的神电测控“PowerGod-RIO-RT”里面的3个函数选板

        下面,我们分别介绍一下这3个选板里面的VI功能和应用场合。

        1)为了提高ZYNQ芯片PS端的内存使用率,我们将很多外设KO驱动做成了动态加载和卸载。比如本节实验,我们需要读取PS端的MIO引脚电平状态,MIO属于通用IO,也就是GPIO类,所以在Linux RT程序初始化之前,我们需要利用下面图4-4里面的GPIO动态加载Load_GPIO_KO函数(PSLoadGPIOKO(SubVI).vi)加载GPIO驱动,等到Linux RT程序停止退出之前,再调用Unload_GPIO_KO卸载函数(PSUnloadGPIOKO(SubVI).vi)卸载GPIO驱动以便释放GPIO占用的内存和资源。

图4-4:GPIO外设驱动动态加载和卸载函数

        2)ZYNQ芯片PS端因为是ARM,所有外设的配置和操控,本质上就是对寄存器地址空间的访问和读写,也就是说,所有PS端外设都可以通过查看ZYNQ芯片手册,找到对应的物理寄存器地址,然后利用下图4-5所示的“PS_Reg_Address”寄存器函数选板里面的4个基础VI实现全部所有功能。理论上,有了这4个基础寄存器操作函数,就能实现对ZYNQ PS端ARM里面所有外设的控制。在本节实验总结里面,我们会给出利用这4个寄存器函数实现对PS端54个MIO引脚的批量读写和控制。

图4-5:ZYNQ芯片PS端ARM寄存器操作函数

        注意:只要是对PS端外设进行操作的场合,都需要调用上面“PS_Reg_Address”函数选板里面的第1个和第4个VI,也就是“PS_reg_Open”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值