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

介绍嵌入式μ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,系统的控制逻辑结构清晰,与普通的单片机系统相比,在对功能的进一步扩展、移植及接入网络等方面都有着极大的优势。


摩托罗拉正在努力推出该设备的最小版本
高铁中的CAN总线网络转换-CPCI接口CAN卡
神经科学的深度学习框架
自动驾驶中间件之OME/IP通信机制介绍
西昌森林火灾致两座110千伏变电站失压以及三条110千伏线路故障跳闸
基于Linux操作系统实现40MHz数字存储示波器的设计
51单片机扩充串行口的方法
区块链用于忠诚计划是向消费者引入代币化的最佳方式
放大器自激了怎么办?
国际运营商为何选择TD-LTE
红黄蓝教育将更名“GEH Education”,转型教育平台
无线传感器网络无处不在 浅谈环保监测中的无线传感器网络技术
英特尔芯片一个远程劫持漏洞,你怎么看?
怎么看待汽车电子车载48V技术方案
消防应急照明强启接线
黄章透露魅族16X将于下个月发布,简直猝不及防
苹果新iPhone或将采用下一代版本的FaceID 速度将更快更可靠
将html文件转换成pdf示例
盘点手机处理器都有哪些
线绕型铑铁温度传感器的主要技术参数