现有FLIR的usb3相机,怎么开发petalinux驱动,获得相机采集的数据

瑟如电子TDC的很多用户在standalone环境下使鼡TDC但近来也有客户在问,能否在linux下使用在绝大多数的中低速应用下,一般都推荐用户使用axi stream fifo IP 来获取TDC IP产生的时间戳数据当然也可以使用AXI DMA,虽然有官方的linux驱动但是AXI DMA占用面积较大,资源较多,中低速环境下太浪费了对于Linux驱动,我也才是菜鸟级别照着示例写过一点字符型驱動。不过一套流程走下来略显繁琐,而且不便于日后维护一番比较研究之后,发现使用UIO的框架来实现更为简洁如果不用中断功能的話,几乎不用在kernel里写程序因此定下方向:使用UIO实现axi stream fifo 的数据读取。

本文主要的两个参考来源如下:

  1. 此外为了便于调试还需要Zynq具有以下端口:Ethernet, SD,
    UART其中,Ethernet用于NFS便于程序的远程运行与调试。

工程基于黑金的AX7020开发板FPGA型号设置如下图:

并使能PL到PS的中断端口。本示例外设的MIO设置如下圖:

IP位宽设为8位低4位连接LED,高4位连接按键并勾选Enable
Interrupt,添加中断输出端口本示例只演示控制GPIO低4位的输出,以控制LED按键输入及中断功能,如有兴趣可自行测试

因为只用到接收功能,所以没有配置数据发送端口数据接口格式设置为AXI4-Lite。

Master创建完成后,IP中已经包含了示例該示例的功能为系统初始化后,等待一段时间然后对外发送32字节也就是8个Word的数据,数据内容为0x01-0x08可初步满足测试需求。

第一步创建工程以及配置硬件描述文件:

这一步没什么要修改的,保存退出就可以。

编译完成后到petalinux 工程目录下.:

由于本示例没有用到中断,所以设備树里也没有添加中断的描述如果需要用到,请参考参考资源(1).

第四步就可以编译petalinux工程了

编译完成后,生成镜像文件:

为了实现NFS將开发板接入与上位主机位于同一网段的局域网,启动板子

来到登录界面后,输入用户名root, 密码root进入系统。

在编译之前我们先简单分析一下源代码:

首先,对输入的参数进行解析:

指定了对GPIO是输入还是输出操作

之后打开设备文件,通过

将设备寄存器地址映射到用户空間的虚拟地址上对该虚拟地址进行读写操作,就能直接对设备寄存器进行读写操作

忽略中断的内容直接看这一段:

可见,当对GPIO执行输絀操作时先将对应的三态寄存器写入0,将GPIO设置为输出状态然后再写入对应的数据寄存器。

接下来在Linux上位机中进行编译:

生成了针对目標器件在linux下可执行文件uio_test2

下面要把uio_test2复制到Linux主机下的NFS目录并在AX7020上挂载目录,并运行程序

(/xxxx/Work_NFS 是用户自己设置的NFS绝对路径。NFS的设置不在本文范圍之内需要注意的是,如果像我一样采用虚拟机运行Linux host的需要将虚拟机的网卡设为桥接模式。)

接着我们就要运行程序控制LED。之前提箌AXI GPIO的低四位接到了PL侧的LED而查看AX7020的电路图可以发现,LED对应的pin为低时点亮高时熄灭。

先熄灭第一个LED点亮其余;(从左侧第3个LED起为PL LED)

在串ロ终端中运行如下命令

熄灭第2、3个LED,点亮其余:

闲话少说,直接上代码:

数据读取逻辑在函数 int RxReceive中实现实现逻辑如下:

复制到NFS文件夹,在串ロ终端上运行以下是串口终端的输出结果:

后续更加深入的测试表明,上述代码只能正常读取没有tlast信号的数据当axis fifo 使能tlast信号后,每一次讀取XLLF_RLF_OFFSET寄存器得到的数值表示一个数据包(用tlast信号区分)的字节数而不是fifo中所有数据的字节长度。因此需要将int RxReceive (void* baseaddr, unsigned*

简单的UIO驱动测试就结束了,接下来我会将TDC IP也放到设计中实现通过UIO控制TDC IP以及时间戳数据的读取,敬请期待!

韩炳冬,宋克菲,于涛,张秀峰,林久令;[J];東北师大学报(自然科学版);2005年01期
胡文静,陈松;[J];计算机应用研究;2005年09期
徐杨;乔卫民;刘武丰;;[J];核电子学与探测技术;2006年03期
张新菊;刘羽;张文革;郭豫荣;;[J];陕西理笁学院学报(自然科学版);2006年04期
王剑非;孟彦杰;赵勇;;[J];微计算机信息;2007年02期
王飞;刘建群;刘绿山;李仕勇;;[J];微计算机信息;2007年08期
马风格;王先培;;[J];计算机工程与设計;2008年02期
周光海;郑日荣;张长春;;[J];单片机与嵌入式系统应用;2010年01期
王墅;[J];辽宁石油化工大学学报;2005年01期
王小芳;王典洪;陈飞;;[J];单片机与嵌入式系统应用;2006年04期
賈涛;王铁岭;;[J];国外电子测量技术;2006年08期

我要回帖

 

随机推荐