0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于S3C2440与EP2S15芯片实现靶场破片测速系统的设计

电子设计 来源:郭婷 作者:电子设计 2018-12-07 09:22 次阅读

0 引言

破片速度是战斗部爆炸效能评估的一个重要参数。传统的靶场破片测速系统多使用多路数据采集卡设置好的参数现场采集标靶的试验波形,试验完成后再交由计算机进行后期处理和解读以获取破片速度等参数。但随着军事科技的日新月异,靶场破片测速系统需要根据实际情况现场设置的参数越来越多,参数设置的灵活性越来越强,对系统工作的实时性要求越来越高;另一方面,战斗部爆炸试验在野外进行,条件恶劣,大型设备携带不便,并为靶场破片测速系统设计提供了一个新的思路。

1 系统硬件设计

系统使用ARM+FPGA的设计方式:ARM处理器选用Samsung公司推出的基于ARM920T内核的S3C2440。S3C2440主频高达400 MHz,完全能够胜任系统工作要求。S3C2440集成了SDRAM和FLASH控制器,提供了串口,触摸屏接口USB接口等多种接口,接口丰富、功能强大,是一款高性能,低价格的处理器,在嵌入式设备中获得了广泛的应用。FPGA选用了Altera公司StratixⅡ系列的EP2S15芯片,该芯片器件密度可达到15600等效逻辑元(LE),能提供419Kb片内TriMatrix存储器,多达12个DSP区块共有48个(18×18 b)乘法器,用来实现高性能滤波器和其他DSP功能。

系统使用该芯片64 MB SDRAM作为系统内存,64 MB FLASH用于Linux内核、文件系统、应用程序和试验数据的存储,为系统运行提供了充足的存储空间。

系统硬件结构图如图1所示。

基于S3C2440与EP2S15芯片实现靶场破片测速系统的设计

在图1中,系统采用了32个标靶用于破片测速,一个标靶对应FPGA的一个通道,每个通道对应一个32 b计数器。战斗部爆炸后,破片击穿标靶时产生的脉冲将作为起停信号,控制FPGA中相应通道的计数。所有通道中最早触发的通道为基准通道,相应通道计数器值为0。从基准通道被触发时刻起,除基准通道外所有通道计数器开始计数,直到本通道收到触发信号或者最长计数时间时停止计数。停止计数时的通道计数值即为本通道的触发计数值。

FPGA作为一个外部存储器挂载在ARM的存储器总线上,这样ARM处理器通过存储器指令可直接访问FPGA,从而通过读写FPGA的数据和控制寄存器实现对FPGA的控制和对数据的读取。FPGA设置了32通道通断寄存器、32通道输入触发器、通道触发计数器等多个数据寄存器,设置了最长记录时间寄存器等多个控制寄存器用于控制FPGA的动作。

ARM与FPGA接口如图2所示。

基于S3C2440与EP2S15芯片实现靶场破片测速系统的设计

为了便于交互,系统配置了一块5.7英寸带触摸屏的LCD显示屏作为显示控制设备,并且提供了USB口实现与主机通信。通过试验测试,本系统能够充分发挥ARM的强大处理能力和FPGA的并行处理能力,成功达到试验目的。

2 系统软件设计

系统软件结构图如图3所示。

基于S3C2440与EP2S15芯片实现靶场破片测速系统的设计

在设计具体应用程序前首先要对操作系统进行裁减。GUI为用户提供了与应用系统交互的可视化通道,在嵌入式软件系统中占据重要地位。针对嵌入式设备资源有限的特点,嵌入式GUI要求提供这样一种交互接口,即它占用资源少且反应迅速,具备高度的可移植性和可裁减性。嵌入式Linux内核,是一种完全开源、功能强大的操作系统内核,与时下流行的Wi-nce等嵌入式操作系统相比,其优点之一就在于内核的可裁减性。目前国内主流的嵌入式GUI系统有MINIGUI,MICRO WINDOW,Qt/Embedded等几种,各有优缺点。综合比较各种GUI系统的优劣,从GUI系统的封装性、可移植性和系统设计的便捷性考虑,最终选取Qt/Embedded进行GUI的设计。

Qt/Embedded(以下简称Qt/E)是由着名的Trolltech公司专门针对pda等嵌入式移动手持设备开发的开放源码的一套应用程序包和开发库,具有可视化强,界面美观,类库完善丰富,封装性好的优点。它通过Qt API与Linux I/O以及Framebuffer直接交互,拥有较高的运行效率,而且整体采用面向对象编程,拥有良好地体系架构和编程模式,Qt/embedded和Qt一样,在4.5版本之后提供了三种不同的授权协议GPL, LGPL和Commercial。Qt Embedded目前的版本通常为4.5,提供了两个版本,分别是Qt for Embedded Linux,以及Qt for Windows CE。许多基于计算机Qt的X Window程序在交叉编译后都可以非常方便地移植为Qt/E版本,查看效果后经交叉编译直接在嵌入式设备上运行,大大简化了开发流程,节约了开发时间。

3 嵌入式GUI程序实现

3.1 Qt/E具体程序设计

系统在试验前需要根据现场情况进行参数设置,尤为重要的是完成标靶的分组设置:在同一方向上的两个或多个标靶分为一组,靶间距事先确定,同一破片将先后通过同组标靶,产生触发信号,控制对应通道计数器的计数起停。破片测速完成后,FPGA获得的通道触发计数值除以FPGA计数频率即为通道的触发时刻值。在试验完成,获得测试数据后,经过运算,就可以表格和分布图两种方式给出破片的触发时刻值和速度值,快速直观。存储管理模块负责系统参数及测试数据的保存和读取,以进行试验数据的进一步分析。在试验前未连接标靶的情况下,脱机进行参数设置,设置完毕后可保存所有设置参数。试验时,只要选择保存的参数就可直接载入脱机设置的参数,极大增强了系统工作的灵活性。

根据系统测速过程,系统软件的工作流程如图4所示。

基于S3C2440与EP2S15芯片实现靶场破片测速系统的设计

按照系统应用要求,将GUI设计分为:参数设置模块、系统测试模块、结果查看模块和存储管理模块四个模块。参数设置模块负责对破片测速系统所需要的各种参数进行设置,主要包括标靶分组、标靶间距、标靶类型、最长计数时间。结果查看模块负责对测试结果进行显示。用同一标靶组内两个相邻标靶之间的间距除以相邻标靶之间触发时刻值的差值,即可得到破片在两个标靶之间的平均飞行速度。每个标靶组可测得一组破片穿过本标靶组时的速度值,通过进一步的计算,可获得破片的速度分布、速度降等参数。

3.2 Qt/E程序优化

嵌入式设备的显着特点是CPU主频不高,资源有限。因为这个局限性,许多在计算机上运行流畅的Qt/E程序在嵌入式设备上反应滞后,在极端情况下甚至会出现短暂的界面冻结现象。为了提高嵌入式GUI的反应速度,对Qt/E应用程序设计就提出了更高的要求。本文在界面设计中,针对GUI运行中出现的问题,对Qt/E程序进行了一些优化,经过优化后,界面的反应速度明显改善。

3.2.1 采用静态链接代替动态链接

与静态链接相比,动态链接的优势在于动态库可被多个进程复用,从而减少了对系统内存的使用。但是动态链接的这种优越性是有代价的,由于进程在初始化时要加载并且初始化大量的动态库,当需要加载的动态库比较多或者动态库比较庞大时,直接的影响就是降低进程启动速度;另外一个影响是系统运行时因为函数的链接也要耗费一些时间。嵌入式Qt/E程序如果使用动态链接就面临这个问题。可以利用一下QWidgetStack或者自己做一个全屏窗口管理类,在初始化时候就把所有窗口对象全部建立起来然后用窗口管理来决定显示哪个窗口。

由于本系统设计为专用系统,仅有一个GUI程序,可采取对Qt/E库静态链接的方式来提高启动和运行速度。一般来说,为了保证程序的基本功能,即使经过裁减后,Qt/E动态库也有将近10 MB大小,这些动态库在嵌入式平台上的加载将耗费大量时间。针对这个问题,一种解决方法是采用prelink预链接的方法先确定每一个动态库在内存的加载位置,从而省去动态库重定位这一过程。但是这种方法的步骤比较繁琐,使用上存在一些限定要求,在这里并不推荐

当今,嵌入式系统的发展已经进入大融合的时代,其特点如下:通信、计算机及消费电子产品(3C)融合——趋向没有独立的3C,只有融合的3C,即信息产品(IA),数字模拟融合、微机电融合、电路板硅片融合及硬软件设计融合——趋向SoC:和SiP嵌入式整机的开发工作也从传统的硬件为主变为软件为主,激烈的市场竞争和技术进步呼唤着新颖的产品开发平台,特别是SoC开发平台的出现。随着嵌入式技术的不断发展,嵌入式系统将更广泛应用于人类生活的各个方面。

3.2.2 使用基础控件代替复合控件

加快界面反应速度最直接有效的方法就是减少界面中的控件数,这里的控件数,准确地说,指的是QWidget等基础控件的数量。在实际程序设计过程中,一个有效设计方法是对一些复合控件尽可能使用基础控件代替。Qt/E中提供了许多功能强大的复合控件,这些复合控件通常是由多个基础控件复合而成的,虽然操作方便,但是资源消耗也比较多,从而影响了整个界面的运行。以表格的绘制为例,如果表格使用复合控件QTableWidget实现,表格的每一个表项都作为一个子控件存在。而如果用基础控件QWidget实现表格,只需调用一次基础控件的paintEvent()就可以在paintEvent()函数中自定义实现表格的绘制,虽然书写代码量可能会大一些,但是函数调用次数少,并且可以做到对表格每一个局部刷新区域的有效控制,避免许多无用操作,在嵌入式平台上,反应速度明显加快。

3.2.3 采用延迟刷新方法

采用这种方法相当于把耗时复合控件的刷新延迟,而先让界面其他控件完成刷新操作,从而快速显示界面的刷新效果。其目的就是要把一切变得更简单、更方便、更普遍、更适用;通用计算机的发展变为功能电脑,普遍进入社会,嵌入式计算机发展的目标是专用电脑,实现“普遍化计算”,因此可以称嵌入式智能芯片是构成未来世界的“数字基因”。正如我国资深嵌入式系统专家—沈绪榜院士的预言, “未来十年将会产生头大小、具有超过一亿次运算能力的嵌入式智能芯片”,将为我们提供无限的创造空间。

由于在后台已完成了界面绘制,采用双缓冲绘图,可有效消除闪烁。参考双缓冲绘图的做法,为了解决耗时复合控件和整个界面在刷新时的矛盾,本文的思路是当界面,需要刷新时先不刷新复合控件,而是在背景上用一幅画布替代复合控件区域,这种方法特别适合于复合控件变化较小而整个界面需要刷新的情况。由于耗时复合控件的禁止刷新,整个刷新过程将会快速完成;最后再调用复合控件的setUpdateEnable(true)重新使能复合控件的刷新功能。更进一步的方法是,只有当耗时复合控件变化时才调用复合控件的setUpdateEnable(true)允许刷新操作,其余时刻均在背景上使用QPixmap绘制代替。具体做法是在确定了耗时复合控件后,构造一幅画布QPixmap,利用QPixmap::grabWindow()函数在画布上绘制出该复合控件所占区域图形。

4 结语

系统综合利用了ARM和FPGA的优点,为了增强靶场破片测速系统的便携性和实时性,提出了一种基于嵌入式技术的靶场破片测速系统设计方法。系统硬件上采用ARM+FPGA的架构,软件上不仅采用Qt/Embedded设计了图形界面,而且给出了嵌入式设备上Qt/Embedded程序的优化方法。系统设计结构清晰、条理严整、程序健壮,这种系统设计结构和对Qt/E程序的优化思想对同类设计具有较大的参考意义。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1599

    文章

    21275

    浏览量

    592837
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8639

    浏览量

    361625
  • 嵌入式
    +关注

    关注

    4975

    文章

    18235

    浏览量

    287853
收藏 人收藏

    评论

    相关推荐

    S3C2440嵌入式音频系统设计与实现

    设计开发的基于ARM处理器可同时实现网络收音机和MP3播放器功能的嵌入式平台。利用S3C2440芯片的特点,以ARM处理器及其外围模块为硬件平台,采用嵌入式Linux作为操作
    发表于 05-06 09:06

    S3C2440中文技术手册

    S3C2440中文数据手册(完整版)PCB打样找华强 http://www.hqpcb.com/3 样板2天出货
    发表于 09-21 19:23

    教你如何设置S3C2440时钟

    S3C2440 的时钟设置时间:一个嵌入式系统中,晶振就像心脏。必须先确定晶振,设置好系统的时钟, WDT,UART,PWM,TIMER 等模块才能正常工作。 和51 系列单片机相比,S3C2
    发表于 11-12 11:17

    求基于s3c2440学习ARM的资料。。。

    求基于s3c2440学习ARM的资料。。。
    发表于 05-01 22:41

    请问S3C2440是默认不开启锁相环PLL吗?

    如题,S3C2440是不是默认不开启锁相环PLL的。另外S3C2440S3C2440A是同一款芯片吗?为什么这两款芯片我看到的关于时钟分频
    发表于 05-09 04:05

    怎么利用ARM和FPGA设计出破片测速系统

    破片速度是战斗部爆炸效能评估的一个重要参数。传统的靶场破片测速系统多使用多路数据采集卡设置好的参数现场采集标靶的试验波形,试验完成后再交由计
    发表于 11-08 07:07

    怎么实现基于嵌入式S3C2440的船舶导航系统设计?

    怎么实现基于嵌入式S3C2440的船舶导航系统设计?
    发表于 05-21 06:19

    如何去实现S3C2440嵌入式系统的以太网接口设计?

    DM9000AE工作原理是什么?如何去实现S3C2440嵌入式系统的以太网接口设计?
    发表于 05-24 07:28

    STM32与S3C2440的区别在哪

    在学习嵌入式的路上,我们可能会接触到这两个比较典型的MCU。其中最大的区别就是S3C2440能跑linux操作系统,常常作为学习嵌入式linux的硬件平台。可能大家会问既然S3C2440能跑
    发表于 08-06 09:10

    请问STM32与S3C2440的区别是什么?

    请问STM32与S3C2440的区别是什么?
    发表于 11-08 08:24

    S3C2440芯片的时钟体系是怎样的

    ARM嵌入式系统S3C2440芯片的时钟体系
    发表于 12-17 07:39

    S3C2440的相关资料分享

    S3C2440是32位的,所以可以寻址4GB(2^32=4GB)的空间。前1GB的地址(0x0000 0000 ~ 0x4000 0000)为外设地址空间,还有一部分为CPU内部使用的特殊功能寄存器
    发表于 12-20 07:47

    KEIL MDK平台S3C2440 UCOS-II的移植过程

    操作系统、移植ucGUI的全过程。本帖将介绍基于KEIL MDK平台 S3C2440 uCOS-II移植的上机过
    发表于 01-21 06:19

    s3c2440时钟体系简析

    1.s3c2440时钟体系S3C2440是System On Chip(SOC),在芯片上不仅仅有CPU还有一堆外设。至于有哪些外设,可以查看参考手册。在S3C2440参考手册的第一章
    发表于 01-25 06:39

    基于ARM+FPGA的靶场破片测速系统

    本文设计的靶场破片测速系统以ARM处理器为控制核心,利用了FPGA强大的多路并行处理能力进行数据处理,在基于嵌入式Linux的平台上采用Qt/Embedded设计了友好的人机交互界面。
    发表于 02-21 09:39 908次阅读
    基于ARM+FPGA的<b class='flag-5'>靶场</b><b class='flag-5'>破片</b><b class='flag-5'>测速</b><b class='flag-5'>系统</b>