基于ARM9和uC/OS-Ⅱ的嵌入式数字示波器(2)
- UID
- 1029342
- 性别
- 男
|
基于ARM9和uC/OS-Ⅱ的嵌入式数字示波器(2)
_OSStartHighRdy是启动运行时调用的,具体的路径是主程序main.C里调用操作系统启动函数OSStart,然后调用OSStartHighRdy和_OSStartHighRdy。_OSStartHighRdy通过调用OSIntCtxSw_1米设置操作系统启动并加裁优先级最高的任务。
4.2 数据采集
数据采集模块是嵌入式数字示波嚣的重要组成部分,模块功能的具体实现主要依靠采样和数据传输任务。
数据采集模块的程序流程图如图3所示。
图3数据采集模块流程图
系统工作过程中.由于输入信号的频率不固定.要求随时可以通过人机交互界面来调节系统显示参数。显示合适的周期数以便对波形避行观察分析。采样任务的主要功能就是显示参数的变化来调节ADC的采样频率和FIFO的数据存储频率,并控制ADC工作/停止状态和FIFO存储芯片的写状态,使ADC和FIFO的工作时序相协调。
在S3C2410A的控制下4路ADC同时开始工作,当4组FIFO全满时,可产生一个存储全满信号量。数据传输任务的主要功能就是在接收到存储全满信号量后,通过DMA通道依次将4组FIFO中的数据转存到SRAM中。S3C2410A提供了2种DMA数据传输方式:单数据传输和4数据长的突发传输。根据系统的硬件电路设计我们选择单数据传输方式。利用DMA传输方式可以不通过CPU中断来实现数据的传输,在数据传输过程中解放了CPU,使CPU 可以工作在多任务环境下,从而提高整个系统的性能。
4.3图形显示
图形显示分为2个工作页面,分别由2个任务来控制:波形照示和输入输出显示任务。
页面1为波形显示页面,主要用于显示4通道输入波形和相关信息,如:周期、脉宽、最大幅值等。通过鼠标对系统静显示参数进行修改,如:水平时间分辨率和垂直电压分辨率等,可方便地对波形进行放大/缩小,左右移动,上下移动,便于对波形观察、对比和分析。
页面2为输入输出显示页面。当切换到输入输出显示页面时,输入输出显示任务开始对16路输入口进行高低电平的检测,该任务通常处于挂起状态,切换到输入输出显示页面时才开始运行,切换到波形显示页面时立即挂起。
每个页面为一个窗体,窗体又分为2个部分:静态和动态。静态部分是固定的,在显示波形的时候,该部分没有变化,也不受其它影响;动态部分是图形按钮以及那些随着按钮变化的部分。将窗体分为2个部分可以减少显示代码的重复读入,提高显示效率。
5 测试与结论
测试部分包括波形和功能测试。部分实测数据如表1(幅值误差为满量程误差)所示。
表1 部分实测数据
波形测试是在50Hz~100KHz的频率范围内先选取固定的频率点,利用信号发生器产生输入信号,在显示屏上观察波形并记录相关数据。
功能测试是对各种图形按钮:动/静态、通道选择、显示/隐藏、放大/缩小,、左/右移动、上/下移动、左/右移动步进距离进行单操作和多种复合操作,观察功能是否能实现。
通过测试得出如下结论:该嵌入式数字示波器支持4通道输入,采样频率范围:2KHz~20 MHz,输入电压范嗣:0~+4V.测量显示的信号频率、脉宽和幅值精度:±0.5%。整机具有良好的人机交互界面,操作方便、功能比较丰富。既可对单通道的波形进行观察分析,也可对4通道的波形进行对比分析。
本文作者创新点:采用ARM920T核微控制器S3C2410A作为嵌入式数字示波器的主控芯片,并利用FIFO作为缓冲存储器可支持多通道的波形显示;采用鼠标操作界面代替传统操
作面板;增加了输入输出口控制功能。 |
|
|
|
|
|