基于Xilinx Zynq的物距测量系统设计与实现

基于Xilinx Zynq的物距测量系统设计与实现,第1张

摘 要:为了对障碍物距离精确测量,基于最新Zedboard FPGA(现场可编程逻辑阵列)开发板,采用软硬件协同的设计 方法,设计了障碍物距离测量系统的软硬件。系统为智能小车平台提供了完整的距离测量服务,测距范围能够达到2cm~4.5m,精度可达0.2cm。该设计包含从底层硬件电路设计、可编程逻辑IP(IntellectualProperty)核设计、到Linux设备驱动的设计全部流程,对于在Zynq⁃7000FPGA上软硬件从事开发的人员有一定的参考价值。

随着集成电路的制造和应用技术的快速发展,嵌入式系统的性能也不断提升,已经被广泛应用于工业控制、航空航天、军事以及消费电子等领域。在硅工艺的发展以及市场推动下,Xilinx公司推出了基于7系列FPGA的新一代全可编程(AllProgrammable)Zynq⁃7000系列产品。该系列产品,集成了嵌入式领域集大成者——双核ARM CortexA9处理器和7系列28nm工艺FPGA芯片。Zedboard正是这样一款基于Zynq⁃7000产品的实验 开发板卡,提供了软件和硬件设计的更多可能。本文基于目前FPGA业界最先进的Zedboard FPGA(现场可编程逻辑阵列)开发板,从底层硬件电路设计、可编程逻辑IP(IntellectualProperty)核设计、到Linux设备驱动的设计,实现了障碍物距离测量的软硬件系统,并在智能小车平台上,实现了距离测量服务。该方法对于在Zynq⁃7000FPGA上软硬件的开发具有指导作用。

1、系统设计

传统上,FPGA中嵌入处理器内核,都是以FPGA为 主、处理器为辅,设计思路以可编程逻辑为主。然而新一代全可编程的Zynq⁃7000采取不同的思路,它是以处理器为主,FPGA为辅。FPGA变成了ARM处理器的一个协处理器[1]。图1为Zynq⁃7000SoC芯片的结构图。 简单来说,Zynq由PS和PL两部分组成:PS(Pro⁃cessingSystem,处理系统)相当于一片ARM芯片,而PL (ProgrammableLogic,可编程逻辑)相当于一片FPGA芯片。

基于Xilinx Zynq的物距测量系统设计与实现,图1 Zynq结构图,第2张

图1:Zynq结构图

PS系统结构为:双核A9处理器,其是整个平台的控制中心,处理速度高达1GHz,可通过NEON扩展及单精度浮点单元进行增强,拥有32KB指令及数据L1 缓存,统一的512KBL2缓存和256KB片上存储器;存储接口,用以管理片内系统的存储状态,包含DDR3,DDR2和LPDDR2动态存储控制器和两个QSPI,NANDFLASH及NORFLASH控制器;通用外设,PS中的通用外设是ARM直接和外部设备通信的接口,含SPI,I2CCANUART,GPIO,USB2.0等;其他组成部分。

PL部分结构为:低功耗可编程逻辑,包含28K~ 350K个逻辑单元,240K~2180K可扩展式BlockRAM和80~900个DSPSlice;XADC,为PL内置的12b模/数转换器;通用/定制外设,PL中的外设是PL中的器件和 外部通信的接口。在ARM接口不够用时,可以利用PL的外设接口。PS和PL之间的数据交互,则是通过AXI(AdvancedeXtensibleInterface)接口实现的。具体有:高性能AXI接口(HighPerformanceAXISlavePorts),共4个;通用AXI接口,包括两个主设备接口和两个从设备接口,共4个;加速一致性端口,是ARM多核架构下定义的一种接口。

根据Zynq结构特点,在应用系统结构设计时注意,使用由Zynq这样一款功能强大的SoC芯片,与一般的ARM芯片不同,与常用的FPGA,更存在区别。它要求 硬件和软件之间进行协同设计,共同实现既定的性能指标要求。在SoC设计中,IP(IntellectualProperty,知识产权)核重用技术是一个很重要的概念,它是软硬件协同设计的关键,通过标准化IP核可以实现模块复用,可以完成大规模的、复杂的SoC设计[3]。

本文以一个超声波测距系统为例,介绍如何在ZynqSoC上,定制IP、设计Linux设备驱动等,并完整的阐述了从硬件到软件的设计流程。设计的系统结构如图2所示。PS上,运行Linux *** 作系统,为LinaroUbuntu发行版。根据文献[2]的指导 *** 作,使用Xilinx公司的开发软件完成配置,使PS可以运行 *** 作系统。

基于Xilinx Zynq的物距测量系统设计与实现,图2系统结构图,第3张

图2:系统结构图

PL部分按照系统控制的需求进行定制。设计基于 XilinxAXI总线的超声波处理外设IP核,与外部的超声波发射和接收电路交互。在Linux *** 作系统下,这个IP核就成为了一个设备,这就需要编写相应的设备驱动程序,实现超声波测距功能的封装。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2607181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-09
下一篇 2022-08-09

发表评论

登录后才能评论

评论列表(0条)

保存