基于 ZYNQ 的无线超声数据传输及显示系统的实现
Posted 信迈科技DSP+ARM+FPGA
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于 ZYNQ 的无线超声数据传输及显示系统的实现相关的知识,希望对你有一定的参考价值。
随着互联网技术的高速发展,移动设备逐渐成为人类生活中不可或缺的工具, 通过各类 App 的支持,使得它能够具有多种多样的功能。因此,本课题将传统的 医疗超声探头和日常生活中的手机进行结合,使移动设备作为无线探头数据显示 的终端,提出无线超声探头代替传统有线探头作为医疗器械实现用户随时检测病 情,并且便于医生或者用户操作使用,极大简化了医生的工作。将手机和医疗超 声采集设备的结合将为医疗行业带来实质性的突破。压缩上一段,将摘要精练为 一页 本课题主要实现一个便携式的无线超声探头的数据传输系统与整体的软件系 统,通过手机开发 android 软件进行图像观测,手机上进行超声数据处理,采用数 据库保存用户信息。本课题主要分为以下四个部分:介绍了整体数据的传输流程 以及整体软件的框架,同时介绍的开发过程中用到的开发工具;通过搭建 DMA 模 块实现了数据从采集到 DDR 内存的传输;在 ZYNQ 开发板中进行嵌入式软件开发, 实现了超声数据的发送端以及超声参数的接收端;在手机端进行 Android 软件开 发,实现了超声显示终端所需要的各种功能。 首先,本文介绍了整体数据传输的流程,以及嵌入式软件和 Android 软件的框 架,详细介绍了开发过程中所需要的开发工具,开发环境的搭建等内容。 其次,本文通过 Vivado 软件完成 DMA 传输通路的搭建, Vivado 生成 system.bit 用于 BOOT.bin 启动时对开发板硬件环境进行配置,完成 DMA 驱动的编写,为超 声数据传输提供硬件支持,将采集到的超声数据通过 DMA 传输到开发板的 DDR 内存中,实现了在硬件平台中数据的传输过程。 接下来,本项目中,在开发板中搭建嵌入式 Linux 系统,完成相关驱动的编写 与移植,搭建 socket 服务器端,完成虚拟地址与 DDR 内存的映射,通过无线传输 将内存中的数据循环发送到手机端,同时搭建超声参数的接收端,编写将参数分 配到寄存器的驱动程序,实现参数下载的功能。 为了实现将超声探头与手机结合的目的,本文在手机端开发 Android 软件,实 现数据的接收,在 JNI 层用 C++ 完成超声数据处理模块,在 Android 层用 Java 完 成界面的显示工作,并完成界面的设计。为了便于医生和患者调试探头,在手机 端设计超声参数调试界面,并且通过无线传输完成参数下载的发送端,在开发板 端实现超声参数接收并分配的功能;同时,植入开源数据库 Litepal,用于保存患者的信息,方便医生观察患者病情,随时记录患者信息。超声探头2 2.2 超声数据传输流程 数据的整体传输流程如下图 2-4 所示,实线为超声数据的上传的方向,虚线为 参数下载的方向。采集芯片与开发板相应管脚连接,超声数据通过 DMA 模块进行 传输, DMA 模块与 DDR 内存中的 AXI_HP 接口 [15] 相连接, AXI_HP 接口这是一 个高带宽的专用数据传输接口,通过建立 socket 无线数据发送模块,将 DDR 内存 中的数据进行提取、解析后,传输到手机的 Android 接收端;同时,手机端将医生 修改的超声参数发送到开发板的接收端,开发板的 AXI_GP 接口与数据采集芯片 连接, AXI_GP 也是用于数据传输的接口,但是与 AXI_HP 相比, AXI_GP 的带宽 小,性能不高,可以用来传输少量的数据,所以在本项目中 AXI_GP 用于将医生 修改后的参数传输到前端的相应寄存器中。
需要在 ZYNQ 开发板上搭建嵌入式 Linux 系统,完成超声数据的传输以及超 声参数的接收以及传输到寄存器中。 首先,本文在 Vivado 软件中进行硬件模块的连接,将 DMA 模块以及参数下 载模块和相应的寄存器以及传输接口相连接,实现对 DMA 传输以及参数下载的硬 件支持,生成 system.bit 用于生成 BOOT.bin , BOOT.bin 是嵌入式平台的启动文件, 相当于 Windows 系统下的 bios 引导程序,当嵌入式 Linux 系统启动时,就会根据 已经生成好的 system.bit 自动完成对硬件平台的建立,然后通过驱动以及应用程序, 实现超声数据的搬运。 然后编写 DMA 和参数下载的驱动程序,为数据的上传以及参数的下载提供驱 动支持;编写应用程序,开启 DMA 通道,将已经采集到的数据不断的搬运到 DDR 的内存中,在内存中开辟 2 帧大小的空间,以乒乓的形式不断的将数据搬运到两 块地址中,在一个特定的地址上存储一个标志位,数据发送端不断的读取标志位 来得知是否有新的数据到来。参数下载方向和数据上传相反,在 DMA 和参数下载 的驱动中已经将复杂的管脚连接,数据搬运等操作封装成了函数,我们只需要调 用相应的函数即可。在嵌入式 Linux 系统中完成 AC 网卡驱动的移植,以及 DMA 驱动和参数下载驱动的加载,为数据传输做准备。 本项目中在开发板端建立 socket 服务器端,在 Linux 下完成从物理内存读取 超声数据,对超声数据进行解析,因为内存中的超声数据都是线数据,需要读取 线头中的信息,并将线数据组成一整帧带头帧头信息的帧数据,然后通过 TCP 或 者 UDP 协议进行数据的发送,为了保证数据发送的平缓性,减少网络不稳定带来 的数据波动,需要从内存提取数据后先放入循环缓存,再将循环缓存中的数据发 送到手机接收端。 同时,开发板端接收手机端传输来的需要修改的超声参数,本项目中,一共 设计了 32 个寄存器,每个寄存器大小为 32bit ,对应 84 个 1 位到 16 位长度不等的 参数。通过解析接收到的信息,将参数下载到相应的寄存器中,只需要调用驱动 中已经写好的函数,就可以对相应地址上的数据进行修改。
1 评估板简介
信迈科技 XM-ZYNQ7045-EVM 是一款基Xilinx Zynq-7000 系列 XC7Z045/XC7Z100 高性能处理器设计的高端异构多核 SoC 评估板,处理器集成 PS 端双核 ARM Cortex-A9 + PL 端 Kintex-7 架构 28nm 可编程逻辑资源,评估板由核心板与评估底板组成。核心板经过专业的 PCB Layout 和高低温测试验证,稳定可靠,可满足各种工业应用环境。
评估板接口资源丰富,引出双路千兆网口、四路 SFP+光口、CameraLink、HDMI、F
MC HPC、GTX、PCIe、USB、Micro SD 等接口,方便用户快速进行产品方案评估与技术
预研。
图 1 Xilinx Zynq-7000 处理器功能框图
图2
图3
2 典型应用领域
- 软件无线电
- 雷达探测
- 光电探测
- 视频追踪
- 图像处理
- 水下探测
- 定位导航
- 深度学习
3 软硬件参数
3.1 硬件参数
表1
CPU | CPU:Xilinx Zynq-7000 XC7Z045/XC7Z100-2FFG900I |
2x ARM Cortex-A9,主频 800MHz,2.5DMIPS/MHz Per Core | |
1x Kintex-7 架构可编程逻辑资源 | |
ROM | PS 端:8GByte eMMC |
PS 端:128/256Mbit SPI NOR FLASH | |
RAM | PS:单通道 32bit DDR 总线,1GByte DDR3 |
PL:单通道 32bit DDR 总线,1/2GByte DDR3 | |
Logic Cell | XC7Z045:350K,XC7Z100:444K |
OSC | PS 端:33.33MHz |
B2B Connector | 2x 140pin 公座高速 B2B 连接器,2x 140pin 母座高速 B2B 连接器,共 560pin, 间距 0.5mm,合高 7.0mm |
LED | 2x 电源指示灯(核心板 1 个,评估底板 1 个) |
1x PL 端 DONE 灯(核心板 1 个) | |
3x PS 端用户可编程指示灯(核心板 2 个,评估底板 1 个) | |
2x PL 端用户可编程指示灯(评估底板 2 个) | |
KEY | 1x 电源复位按键 |
1x 系统复位按键 | |
1x PS 端用户输入按键 | |
1x PL 端用户输入按键 | |
SD | 1x Micro SD 接口(PS 端) |
XADC | 1x 排针接口,2x 2pin 规格,2.54mm 间距,单通道专用差分输入,1MSPS |
Ethernet | 1x PS RGMII,RJ45 接口,10/100/1000M 自适应(PHY 位于核心板上) |
1x PL RGMII,RJ45 接口,10/100/1000M 自适应 | |
Watchdog | 1x Watchdog,3pin 排针方式,2.54mm 间距,通过跳线帽配置 |
UART | 1x Debug UART,Micro USB 接口(PS 端) |
1x RS232 UART,DB9 接口(PL 端) | |
1x RS485 UART,3pin 3.81mm 绿色端子方式(PL 端) | |
CAN | 2x CAN,3pin 3.81mm 绿色端子方式(PL 端) |
USB | 4x USB 2.0 HOST 接口,使用 HUB 扩展(PHY 位于核心板上) |
PCIe | 1x PCIe,由两组 GTX 引出,共两通道,x4 金手指连接方式(PL 端) |
IO | 1x 400pin FMC 连接器,1.27mm 间距,HPC 标准 |
SATA | 1x 7pin SATA 接口,150MHz LVDS 差分时钟(PL 端) |
HDMI | 1x HDMI OUT(PL 端) |
1x HDMI IN(PL 端) | |
DISPLAY | 1x LCD RES 电阻触摸屏,40pin FFC 连接器,间距 0.5mm(PL 端) |
CAMERA | 2x CAMERA,2x 10pin 排母方式,间距 2.54mm(PL 端) |
CameraLink | 2x CameraLink Base 接口,支持 Full 模式(PL 端) |
SFP+ | 4x SFP+光口,支持万兆光模块,由高速串行收发器(GTX)引出 |
LVDS | 1x 排针接口,2x 15pin 规格,可接通用 LVDS 显示屏,间距 2.00mm(PL 端) |
SMA | 1x GTX CLK |
1x GTX RX | |
1x GTX TX | |
RTC | 1x RTC 座,适配纽扣电池 ML2032(3V 可充)、CR2032(3V 不可充) |
FAN | 1x FAN,3pin 排针端子,12V 供电,间距 2.54mm |
JTAG | 1x 14pin JTAG 接口,间距 2.0mm |
BOOT SET | 1x 6bit 启动方式选择拨码开关 |
SWITCH | 1x 电源摆动开关 |
POWER | 1x 12V6A 直流输入 DC-005 电源接口,可接外径 5.5mm、内径 2.1mm 电源插头 |
3.2 软件参数
表 2
ARM 端软件支持 | 裸机,FreeRTOS,Linux-4.9.0 | |
Vivado 版本号 | 2017.4 | |
软件开发套件提供 | PetaLinux-2017.4,Xilinx SDK 2017.4,Xilinx HLS 2017.4 | |
驱动支持 | SPI NOR FLASH | DDR3 |
USB 2.0 | eMMC | |
LED | KEY | |
RS485 | MMC/SD | |
Ethernet | CAN | |
7in Touch Screen LCD(Res) | XADC | |
I2C | USB 4G | |
USB WIFI | RS232 |
4 开发资料
(1)提供核心板引脚定义、可编辑底板原理图、可编辑底板 PCB、芯片 Datasheet,缩短
硬件设计周期;
(2)提供系统固化镜像、内核驱动源码、文件系统源码,以及丰富的 Demo 程序;
(3)提供完整的平台开发包、入门教程,节省软件整理时间,让应用开发更简单;
(4)提供详细的 PS + PL SoC 架构通信教程,完美解决异构多核开发瓶颈。
开发案例主要包括: Ø
- 基于 Linux 的开发例程
- 基于裸机的开发案例
- 基于 FreeRTOS 的开发案例
- 基于 PS + PL 的异构多核开发案例
- 基于 OpenAMP 的 Linux + 裸机/FreeRTOS 双核 ARM 通信开发案例
- 基于 PL 端的 HDL、HLS 开发案例
- Qt 开发案例
- CameraLink、SDI、HDMI、PAL 视频输入/输出案例
- 高速 AD(AD9613)采集 + 高速 DA(AD9706)输出案例
- AD9361 软件无线电案例
- UDP(10G)光口通信案例
- Aurora 光口通信案例
- PCIe 通信案例
5 电气特性
工作环境
环境参数 | 最小值 | 典型值 | 最大值 |
核心板工作温度 | -40°C | / | 85°C |
核心板工作电压 | / | 5.0V | / |
评估板工作电压 | / | 12.0V | / |
功耗测试
类别 | 工作状态 | 电压典型值 | 电流典型值 | 功耗典型值 |
核心板 | 状态 1 | 5.0v | 0.40A | 2.00W |
状态 2 | 5.0v | 1.85A | 9.25W | |
评估板 | 状态 1 | 12.0v | 0.43A | 5.16W |
状态 2 | 12.0v | 1.19A | 14.28W |
备注:功耗基于 CPU 为 XC7Z045 的核心板测得。功耗测试数据与具体应用场景有关,测试数据仅供参考。
状态 1:评估板不接入外接模块,PS 端启动系统,不执行额外应用程序;PL 端运行 LED 测试程序。
状态 2:评估板不接入外接模块,PS 端启动系统,运行 DDR 压力读写测试程序,2 个 ARM Cortex-A9核心的资源使用率约为 100%;PL 端运行 IFD 综合测试程序。
图 11 状态 2 资源使用率
6机械尺寸
表 4
核心板 | 评估底板 | |
PCB 尺寸 | 62mm*100mm | 142.75mm*260mm |
PCB 层数 | 14 层 | 8 层 |
PCB 板厚 | 1.6mm | 1.6mm |
安装孔数量 | 4 | 4 |
图 12 核心板机械尺寸图
图 13 评估底板机械尺寸图
7技术服务
- 协助底板设计和测试,减少硬件设计失误;
- 协助解决按照用户手册操作出现的异常问题;
- 协助产品故障判定;
- 协助正确编译与运行所提供的源代码;
- 协助进行产品二次开发;
- 提供长期的售后服务。
8增值服务
- 主板定制设计
- 核心板定制设计
- 嵌入式软件开发
- 项目合作开发
- 技术培训
以上是关于基于 ZYNQ 的无线超声数据传输及显示系统的实现的主要内容,如果未能解决你的问题,请参考以下文章