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

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

3天内不再提示

基于Linux操作系统实现40MHz数字存储示波器的设计

电子设计 来源:单片机与嵌入式系统应用 作者:范晓珣;高金山 2020-09-30 10:07 次阅读

介绍嵌入式μClinux操作系统;在该操作系统上使用Motorola MC68VZ328 CPU、FIFO存储器,设计实现一种数字存储示波器;在软件实现上,利用μUlinux的多任务特性。系统最大采样频率为40MHz,具有LCD显示和触摸屏界面。

数字存储示波器是一种具有数据存储、预触发、波形存储、便于与PC机通信等特点和优点的便携式智能仪器,广泛应用于机械故障检查、野外作业、工业现场等。本文介绍的便携式数字存储示波器构建于嵌入式μClinux操作系统平台之上,采用Motorola公司的龙珠系列MC68VZ328(以下简称VZ328)芯片作为处理器,采样频率与放大幅度可通过触摸屏调节;系统成本低、操作简单,可实现采集、存储和分析功能,具有实际应用前景。

1 嵌入式系统简介

1.1 嵌入式μClinux系统

嵌入式系统是以应用为中心,以计算机为基础,软硬件可裁减,适用于系统对功能、可靠性、成本、功耗严格要求的专用计算机系统。嵌入式Linux(Embedded Linux)是指对Linux经过小型化裁减后,能够固化在容量只有几百K字节存储器芯片或单片机中,应用于特定嵌入式场合的专用Linux操作系统。嵌入式Linux的开发和研究是目前操作系统领域的一个热点。

本文介绍的系统采用一种优秀的嵌入式操作系统——μClinux。它主要面对non-MMU的处理器,其主要特征为:

①是一个多任务的嵌入式操作系统;

②内核小,只有512K左右;

③同Linux系统的API保持一致;

④继承了Linux系统成熟的网络协议栈;

⑤支持一些主要的文件系统,如:FAT、EXT2、ROMFS、JFFS。

1.2 处理器简介

图2 FIFO工作时序

VZ328是Motorola公司MC68328 CPU家庭龙珠系列中的第一款。VZ328基于Motorola FLX68K核,内部还集成了控制逻辑和SDRAM、LCD、SPI、UART定时器/PWM和多达76位的通用I/O(GPIO)。运行在33MHz时,VZ328处理能力为5.4MIPS。该处理器主要针对外部设备较少的手持设备,工作电压为3.3V。

2 系统构成

2.1 系统组成

系统组成框图如图1所示。

图1中,ADC采用的是Philips公司的8位高速并行A/D,最高采样频率为40Msps。采用的是IDT公司1024%26;#215;9位先进先出FIFO存储器。由于该款FIFO的最高存取速度为35ns,为了保证系统40Msps的采样频率,我们通过使用双FIFO与A/D相连接,A/D输出的数据轮流存入FIFO A和FIFO B中来保证整个系统的性能。采样信号与FIFO存储器读和写的工作时序如图2所示。VZ328与采集卡之间的接口详见2.2节。

2.2 系统接口设计

系统使用了VZ328的I/O端口读取数据并发出控制信号。具体方案如图3所示。

系统利用J口实现数据的输入输出,利用D口和G口来进行控制。J口在输入数据进要求该口的方向寄存器PJDIR置为0,在输出数据时要求PJDIR置为1。采集的信号经过A/D变换后首先进入FIFO存储器,当从FIFO中每读出一个数据后需要再向其发送一个读数脉冲信号,这样才能保证正确读出下一个单元内存储的数据。该读数脉冲由G口的第四位PG4给出。数据从FIFO存储器中被读出后经过锁存器进入端口J的数据寄存器PJDATA中,锁存信号由D口的第四位PD4给出。当CPU读周期到来时,数据由端口被读入内存。采样频率控制信号由J口的J5、J6、J7三位输出,数据采集复位信号RESET由J口的J0位输出,两者的锁存信号均由D口的PD5给出。类似地,幅值控制信号由J口的J0、J1、J2三位输出,锁存信号由D口的PD7给出。此外,每当数据采满1K时,FIFO存储器会产生一个中断信号INT。该信号由D口的PD6输入。

2.3 系统软件结构

基于嵌入式Linux的数字示波器系统主要分为数据采集和存储模块、波形显示和刷新模块以及触摸屏控制模块三个部分。系统软件由Linux下的C语言编程实现。

(1)数据采集和存储模块

采集存储模块流程如图4所示。

系统首先向采集卡发送所要求的频率和幅值信号,然后发出复位信号RESET,采集卡开始采集数据。采集到的数据经过FIFO存储器,由J口读入内存并存入指定数据缓冲区之中。在存储过程中,采用了双缓冲区机制,数据按1K大小分块,相邻的两块数据交替存放在内存的不同区域中。在每读入1K个数据之后,内存中都存在连续的2K个采样数据,这样有助于以后对数据的处理和显示。

(2)波形显示和刷新模块

本系统中使用一块大小为240%26;#215;320像素的黑白液晶显示屏。VZ328为LCD的控制提供了良好的支持,其实现主要通过LCD控制器完成。

存放在内存中的数据经过坐标变换之后就可以在LCD上进行显示了。在显示之前,因为LCD的坐标系与显示波形时所用的坐标系y轴方向相反,且需要将波形显示在屏幕的特定区域内,所以要对数据进行归一化处理。从端口读入数据的范围为0~0XFF,0点对应于LCD上y轴坐标的190,0XFF对应于LCD上y轴坐标的50,则0X7F对应于LCD上坐标为120的点,即屏幕显示的零点。相应的转化公式为

Y=120-(DATA-0X7F)%26;#215;70/0X7F

其中DATA为从端口读入的数据;

Y是DATA在LCD上显示的y坐标。

LCD一屏可以显示300个数据点,点与点之间用矢量法直线相连。

(3)触摸屏控制模块

触摸屏是附着在LCD表面的一层透明薄膜,它将压力转换成模拟电信号,模拟信号再经过A/D转换被采样。触摸屏的工作流程如图5所示。

触摸屏通过中断方式完成其功能。从执行流程上来说,首先在TouchPanel_init()中完成两件事:注册驱动程序和注册中断。

对于触摸屏设备,主设备号为58,设备名为“ts7843”,驱动程序子函数集为TouchPanel_fops。TouchPanel_fops中指定了read、select、open、release

四个操作子函数的地址依次为

ReadTouchPanel、TouchPanelSelect、OpenTouchPanel和CloseTouchPanel。

当用户进程调用open()打开/dev/ts7843时,内核调用OpenTouchPanel();用户进程调用read()读该设备时,内核调用ReadTouchPanel()。request_irq()注册中断处理,中断为TOUCHPANEL_IRQ_UNM,中断处理程序为TouchPanelInterrupt(),说明为“TouchPanel”。

当触摸屏有数据来到时,中断被触发,调用中断处理程序,准备处理数据。

在本系统中,触摸屏主要用于改变采样的频率和幅值放大倍数。在LCD的上方有四个长方形区域,分别对应着幅值增加、幅值减小、频率增加和频率减小。

幅值和频率的选定值存放在指定内存单元中,在触摸屏检测到触摸点的坐标在相应区域中后,就会根据程序预先设定好的顺序和数值为增加或减少幅值或频率。

2.4 μClinux多任务系统与共享内存管理

在传统的单片机系统中,软件往往是个控制环,让多个功能模块按顺序执行。在一个功能较多的系统中,为了保证系统的各项性能,程序会变得越来越复杂和庞大。由于μClinux是一个多任务的嵌入式操作系统,内核允许将一项工作划分成几个相互独立的任务,应用程序的设计得到了简化;更重要的是缩小了整个系统的响应时间,提高了系统性能。数字存储示波器的设计需要进行数据采集。对于这样的系统来说,应尽可能地少丢失数据采样点。在μClinux中可同时运行多个任务,且前台任务比后台任务具有较高的优先级,因此,合理的方案是将采集部分和显示部分安排在前台,而将触摸屏控制部分放在后台运行。这样可以保证整个系统有效地完成各项功能。

数字示波器在采样和显示过程中,要求可以随时改变采样频率和幅值,所以在前后台任务之间需要进行同步和通信。任务之间的通信是通过共享指定的物理内存单元来实现,不同任务之间对共享内存单元的访问是互斥的。ΜClinux的设计针对没有MMU的处理器,不能使用虚拟内存管理技术。ΜClinux系统对于内存的访问是直接的,它对地址的访问不需要经过MMU,而是直接送到地址线上输出,所有程序中访问的址都是实际的物理地址,操作系统对内存空间没保护。当触摸屏检测到有改变幅值或频率的信号发生时,就去修改指定单元中存储的数据,这样的内存单元对于两个任务来说属于临界资源。在触摸屏修改内存期间,需要禁止其它程序对该内存进行任何操作。同样,采集程序每次在发送幅值和频率信号之前,要对该内存单元进行读操作。若在此时有触摸屏信号对内存提出写操作要求,程序就应该进行等待,直到采集部分的读操作执行完毕,释放内存的访问权。

3 结论及展望

经实践证明,基于嵌入式Linux的40MHz数字存储示波器的设计,是具有一定可用性及可靠性的。在目前已有功能的基础上,我们还将开发频谱分析等更多的功能。整个系统设计体现了嵌入式Linux系统适应性强、体积小、成本低、开放源代码、开发使用容易等特点。由于使用了μClinux,系统的控制逻辑结构清晰,与普通的单片机系统相比,在对功能的进一步扩展、移植及接入网络等方面都有着极大的优势。

责任编辑:gt

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

    关注

    4981

    文章

    18278

    浏览量

    288374
  • 示波器
    +关注

    关注

    111

    文章

    5649

    浏览量

    181758
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3427

    浏览量

    128217
  • Linux
    +关注

    关注

    87

    文章

    10988

    浏览量

    206726
  • 操作系统
    +关注

    关注

    37

    文章

    6282

    浏览量

    121872
收藏 人收藏

    评论

    相关推荐

    基于数字电视系统的嵌入式linux操作系统实现

    时,应用于传统模拟电视系统中的硬件,不能满足音频、视频和数据处理等功能的需要,因此,数字电视系统需要更高性能的处理器和大规模的存储器。嵌入式操作系统
    发表于 08-01 09:23

    基于数字电视系统的嵌入式linux操作系统实现

    的硬件,不能满足音频、视频和数据处理等功能的需要,因此,数字电视系统需要更高性能的处理器和大规模的存储器。嵌入式操作系统可以有效的管理这些硬件资源。本文将嵌入式
    发表于 12-12 20:43

    基于Linux操作系统的嵌入式网关的实现

    基于Linux操作系统的嵌入式网关的实现
    发表于 03-28 09:48 29次下载

    Linux操作系统

    linux的教学内容1 、Linux概述 2 、Linux操作系统安装3、 Linux的内核 4 、Li
    发表于 04-10 16:54 0次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>操作系统</b>

    Linux操作系统原理及应用

    Linux操作系统原理及应用 1.1  操作系统的地位 1.2  操作系统的功能 1.3  操作系统的发
    发表于 04-28 14:53 0次下载

    linux上模拟uCOS-II实时操作系统实现

    本文主要提供了一种可行的,把在windows 系统实现的uCOS-II 操作系统移植到linux 操作系统上的
    发表于 08-13 11:41 32次下载

    Linux与其他操作系统的区别

    Linux与其他操作系统的区别 Linux与其他操作系统的区别  Linux可以与MS-DOS、OS/2、Windows等其他
    发表于 01-18 12:42 1593次阅读

    40MHz AM接收机的高放电路

    40MHz AM接收机的高放电路
    发表于 03-13 20:30 2165次阅读
    <b class='flag-5'>40MHz</b> AM接收机的高放电路

    嵌入式数字存储示波器

    介绍基于嵌入式uCLinux操作系统,使用SamsungS3C 44BOXCPU,设计并实现的一种数字存储示波器。在uCLinux平台上
    发表于 10-15 21:43 451次阅读
    嵌入式<b class='flag-5'>数字</b><b class='flag-5'>存储</b><b class='flag-5'>示波器</b>

    什么是Linux操作系统

    什么是Linux操作系统  简单地说,Linux是一套
    发表于 12-26 12:04 1371次阅读

    趣谈Linux操作系统

    趣谈Linux操作系统
    的头像 发表于 01-13 16:00 6092次阅读

    基于linux的十大操作系统排名

    基于linux内核开源的特性,并随着linux的不断发展,各种基于Linux操作系统版本也在不断发行出来,其中每一个不同版本的Linux
    发表于 07-10 16:23 1.5w次阅读

    Linux嵌入式操作系统有哪些优势

    嵌入式Linux操作系统是将Linux操作系统进行裁剪,使Linux操作系统能够在嵌入式计算机
    发表于 07-10 16:34 4719次阅读

    linux属于什么操作系统

    Linux属于一种类UNIX操作系统Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX
    的头像 发表于 11-08 11:01 1730次阅读

    40MHz带通滤波器设计实例应用

    电子发烧友网站提供《40MHz带通滤波器设计实例应用.doc》资料免费下载
    发表于 11-20 09:58 1次下载
    <b class='flag-5'>40MHz</b>带通滤波器设计实例应用