基于Linux多任务操作系统扫频仪的研究

发布者:丹青妙手最新更新时间:2012-01-09 关键字:扫频仪  Linux  多任务操作系统 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  扫频仪是适用于测量系统频率响应的仪器。系统的频率响应包含幅频响应和相频响应2个方面。目前,在扫频仪的实现中,硬件平台一般基于8位或16位单片机,软件实现大多采用单流程循环控制方式,这种方法存在以下缺点:

  (1)除中断服务程序以外,各程序模块没有优先级的区别,被主循环简单地轮转调用,实时性差,响应时间无法预料;

  (2)运算能力较差,难以完成较复杂的控制算法;

  (3)硬件平台依赖性强,不利于应用软件的开发、升级与移植;

  (4)针对较复杂的控制系统,在缺乏有力的多任务调度机制的情况下,应用软件不仅实现难度大,且可靠性难以保证;

  (5)分布式多任务处理能力差,网络化、智能化支持难以适应长远发展需要。

  嵌入式Linux可以很好地解决上述问题。Linux不仅源代码免费开放和拥有世界范围内广泛的技术支持,而且具备多硬件平台支持;核心代码效率高、代码量小;系统稳定性和可靠性高;系统可根据特定需求进行定制与组态,且易于升级等特点,是真正的多用户、多任务操作系统。

  本文在系统分析扫频仪硬件结构基础上,根据Linux的多任务并行处理的特点,进行扫频仪的软件设计。

  2 系统硬件组成

  系统的硬件设计方案,如图1所示。

  (1)DDS信号源以高集成度频率合成器AD9854为核心,S3C2410X通过向AD9854发送频率控制字使其产生多种正弦波,然后经过7阶低通滤波、信号放大、幅度控制、输出低杂散高稳定度的正弦波。

  (2)由于扫频仪按键较多,不能按照传统的设计方式设计键盘电路,本文以ZLG7290芯片为基础,键盘通过I2C总线连接CPU,这样节省CPU的接口资源。

  (3)信号检测调理电路主要用来对参考信号和被测信号进行放大和幅度相位检测,然后通过低通滤波送A/D转换。

  3 系统软件设计

  Linux具有内核小、效率高、源代码开放、内核直接提供网络支持等优点。但嵌入式系统的硬件资源毕竟有限,因此不能直接把Linux作为操作系统,需要针对具体的应用通过配置内核和嵌入式C库对系统进行定制,使整个系统能够存放在容量较小的FLASH中。Linux的动态模块加载,使Linux的裁减极为方便,高度模块化的部件使得添加和删除变得非常容易。基于Linux的上述优点,本文实现平台使用的操作系统是对Linux进行定制的arm-linux。

  3.1 软件总体设计

  扫频仪的软件设计主要分为2部分:硬件驱动程序;多任务应用程序。扫频仪系统软件结构图如图2所示,其中最内层为操作系统层,中间层为应用层,最外层为硬件驱动层。当操作系统启动后,首先加载硬件驱动层接口程序,然后系统内核按照应用层的各个任务优先级及其就绪状态在任务间切换运行。

  3.2 系统多任务设计

  在将一个软件系统划分为并行任务时,首先要分析数据流图中数据的变换,确定哪些变化可以并行,哪些变换本质上必须顺序执行。一个变换可以成为一个任务,或者几个变换组成一个任务。决定系统中任务划分的最主要因素是系统中所实现功能间的异步关系,即任务与任务间是如何相互触发和协调的,这可以通过任务间的通信来解决。按照并发性以及任务之间同步等特点和要求,对扫频仪系统进行任务划分,如图3所示。

  系统监测与保护任务保证系统安全可靠,出现故障可以被自检出来,同时能诊断出扫频仪发生故障的部位。

  数据采集任务由于扫频仪需要不断从A/D芯片读取采集到的幅度和相位信号数据,否则会被后来的数据覆盖,从而造成掉点,因此开辟一个数据采集进程专门处理读取数据。数据采集进程利用互斥锁保护输入缓冲区,避免竞争;利用消息驱动数据处理模块和显示模块进行相应操作。

  数据处理任务首先通过数字滤波技术,滤出干扰源;然后进行计算处理,判断扫描频率点数是否到达要求,决定扫频是否结束,将数据转换成图形显示格式;最后送显示模块显示。由于数据处理模块计算量较大,因此也为其开辟一个单独的进程来计算,避免影响其他模块工作。

  显示任务图形界面开发采用的开发工具为MiniGUI,使用MiniGUI的图形控件资源,软件的界面开发非常方便。显示模块主要负责将相位和幅度信号以图形的方式显示出来。由于绘图是一件相当耗费资源的工作,故用一单独的进程实现。

  USB通讯任务 对被测物体测试完成后,进行测试数据的拷贝或打印。

  3.3 多任务通信

  在扫频仪程序中引入消息概念,将进程的执行条件转换为消息,由消息对相应的进程进行激活,并由进程调度模块实现调度。消息定义为:当某进程完成时,进程设置相应标志,不同的标志代表不同的消息。消息在多进程中的作用相当于桥梁,使进程间既相互独立又有机关联,进程之间不能直接调用,需借助消息,由进程调度模块实施。例如:数据显示模块中有一部分内容是将分析计算的结果打印到屏幕上,为了节省资源开销,将其放在主进程里,通过消息机制处理。

  中断服务程序则是通过发送信号给进程调度模块,说明已经发生中断。例如按下扫频功能键,中断处理程序产生一个信号就退出中断,而调度模块则依据接收的信号,激活数设置模块工作。

  4 结 语

  应用基于Linux嵌入式多任务操作系统的扫频仪,结合S3C2410X的32位微处理器,不仅简化软硬件设计,能够方便地测量被测网络的幅频曲线和相频曲线,更重要的是减少扫频响应时间,增加数据打印和分析处理功能。利用MiniGUI开发的图形界面友好,人机交互性强。基于Linux多任务操作系统进行程序编写,能减少程序设计的工作量和复杂程度,大大缩短开发周期。

关键字:扫频仪  Linux  多任务操作系统 引用地址:基于Linux多任务操作系统扫频仪的研究

上一篇:基于单片机的微波脉冲功率测试系统
下一篇:仪表系统的嵌入式控制器的开发研究

推荐阅读最新更新时间:2024-03-30 22:22

R&S移动网络扫频仪选件加速3GPP LTE网络部署
新增的LTE选件使R&S TSMW通用无线网络扫频仪可以在30 MHz到6 GHz频段范围之内对多达6种技术进行并行测量,这6种技术是WCDMA, GSM, CDMA2000, 1xEVDO, WiMAX™ 和 LTE。得益于TSMW的高端性能,罗德与施瓦茨公司站在了为运营商提供LTE网络部署和优化服务的最前沿。 当进行大规模网络部署时,网络运营商和基站设备供应商会发现扫频仪的高度自动化测试方案十分有效:例如,在进行LTE覆盖测试时,3GPP LTE的同步信道不需要做任何手动设置,因为信号的扫描和测量都是自动进行的。R&S TSMW通用无线网络扫频仪具有杰出的灵敏度(典型值为-127 dBm)和测量速度(每秒200
[手机便携]
linux 2.6.32 在arm9(s3c2440)平台的移植
板子用的友善的mini2440, 起初按照光盘提供的手册, 照猫画虎,,,,,,,,,但是遇到各种问题, 很多未解决.....原因是还没理解每层目录的Makefile和Kconfig的关系, 以及在Kernel Configure菜单树中对应的选项, 以及对nand_flash设备的结构体的意义没搞清楚,~ so~ 在http://www.kernel.org/ 下载2.6.32的源代码. 编译器用的arm-linux-gcc 4.1.2 . 1 内核代码/uboot代码中中机器码的定义位置,在/root/linux-2.6.32/arch/arm/tools/mach-types 和 uboot/include/asm-
[单片机]
一种基于ARM-Linux的分布式管道泄漏监测系统
针对中国输油管道现场具体情况,设计一套基于嵌入式ARM-Linux和LabVIEW的分布式管道泄漏监测系统,包括远程测控终端(RTU)、监测PC以及工业局域网。详细论述了系统架构、硬件组成、软件流程等。通过实际开发与应用,证明此设计完全适用于输油管道特殊现场,不仅降低了成本与功耗,还提高了效率,为长距离石油管道运输系统正常良好地运行提供了有力的技术支持。 输油管道泄漏监测技术是当今石油化工领域科研工作者研究的热门课题 。目前,输油管道现场应用的泄漏监测系统存在各种问题。首先,现场很多站点正在使用太阳能阀室设计,而广泛使用于全国各地输油管道监测系统中的基于PC的采集传输设备,因其高功耗、高成本的缺点不适合在太阳能阀室中应用。其次,
[单片机]
一种基于ARM-<font color='red'>Linux</font>的分布式管道泄漏监测系统
嵌入式掌上娱乐系统设计方案
在UP-TECH S3C2410 DVK1.1 开发平台下,提出了一个触摸式的嵌入式掌上娱乐系统设计方案。本系统主要包括多媒体播放器和游戏的基本功能。本系统可以播放现有的大多数的音频视频文件;设计了嵌入式游戏,增加了系统的娱乐性。使用触摸屏方便作为人机交互的平台。采用跨平台性能良好的Qt4 设计了应用程序和人机界面,界面友好,汉化显示,美观,操作简便,运行流畅。整个系统模块化设计,充分考虑了软件系统自身所占的存储空间以及可扩展性,具有广阔的市场前景。 嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。近年来,随着微处理器技术、DSP 技术、多媒体编解
[单片机]
嵌入式掌上娱乐系统设计方案
Linux之ARM(IMX6U)裸机主频和时钟配置
I.MX6U 系列标准的工作频率为 528MHz,有些型号甚至可以工作到 696MHz,但是默认的工作频率为396MHz,这就造成了浪费了,本次我们来配置主频时钟使其工作在528MHz,以及其他的外设时钟源都工作在NXP推荐的工作频率。 1、I.MX6U 时钟系统详解 I.MX6U 的系统主频为 528MHz,有些型号可以跑到 696MHz,但是默认情况下内部 boot rom 会将 I.MX6U 的主频设置为 396MHz。我们在使用 I.MX6U的时候肯定是要发挥它的最大性能,那么主频肯定要设置到 528MHz(其它型号可以设置更高,比如 696MHz),其它的外设时钟也要设置到 NXP 推荐的值。可参考NXP官方参考手册
[单片机]
<font color='red'>Linux</font>之ARM(IMX6U)裸机主频和时钟配置
[linux kernel]内核移植过程记录
系统版本:Ubuntu18.04-64 编译器版本:gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1) uboot版本:2018.07 -linux4sam_6.0 板子型号:at91sama5d3x-xplained MCU型号:sama5d36 内核移植主要是裁剪一些不需要的功能,使用对应的交叉工具链把内核重新编译,设备树文件按照硬件去配置。 一、配置文件路径 arch/arm/configs/sama5_defconfig //配置文件路径 arch/arm/configs/sama5_defconfig //声明环境变量,指定
[单片机]
[<font color='red'>linux</font> kernel]内核移植过程记录
嵌入式Linux之我行——u-boot-2009.08在2440上的移植详解(六)
一、移植环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器: arm-linux-gcc-4.3.2.tgz u-boot: u-boot-2009.08.tar.bz2 二、移植步骤 10)u-boot利用tftp服务下载内核和利用nfs服务挂载nfs文件系统。 知识点: tftp服务的安装与配置及测试; nfs服务的安装与配置及测试; u-boot到kernel的参数传递(重点)。 我们知道使用tftp下载内核和使用nfs挂载文件系统的好处是,当我们重新编译内核或文件系统后不用重新把这些镜像文件再烧
[单片机]
嵌入式<font color='red'>Linux</font>之我行——u-boot-2009.08在2440上的移植详解(六)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved