1、北京工业大学现代通信课程设计报告数字存储示波器指导教师:姓名:学号:前言数字存储示波器是 20 世纪 70 年代初发展起来的一种新型示波器。这种类型的示波器可以方便地实现对模拟信号波形进行长期存储并能利用机内微处理器系统对存储的信号做进一步的处理,例如对被测波形的频率、幅值、前后沿时间、平均值等参数的自动测量以及多种复杂的处理。而我们此次要设计的便是一种简易的数字存储示波器。我们设计的简易数字存储示波器实现的功能有对单一信道进行采样存储显示(包括正弦波和方波) 、通过测量标尺测量波形的周期和频率,标尺可以左右自由移动。我们所用的硬件有试验箱上的 S3C44B0 微处理器、LCD 显示屏、外围扩
2、展的 RAM 和键盘、S3C44B0 内置的模数转换器、DDS 信号源。一、设计要求及目的1.1 要求:编写图形显示函数,采集由实验箱信号源输出的正弦、方波、DC等信号,经过处理后显示在 LCD 屏幕上1.2 设计目的了解 LCD 显示的基本原理了解 LCD 的接口与控制方法掌握 LCD 显示图形的方法二、硬件介绍2.1 S3C44B0 模数转换器S3C44B0 具有 8 路模拟信号输入的 10 位模/数转化器(ADC),它是一个逐次逼近型的 ADC,内部结构中包括模拟输入多路复用器,自动调零比较器,时钟产生器,10 位逐次逼近寄存器(SAR) ,输出寄存器,还提供可编程选择的睡眠模式,以节省
3、功耗。图 1 S3C44B0 内部 ADC 结构图它的主要特性如下:(1)分辨力:10 位(2)微分线性度误差:1 LSB(3)积分线性度误差:2 LSB(最大3 LSB)(4)最大转换速率:100KSPS(5)输入电压范围:0-2.5V(6)输入带宽:0-100Hz(不具备采样保持(S/H)电路)(7)低功耗2.2 S3C44B0 LCD 控制器S3C44B0X 中具有内置的 LCD 控制器,它具有将显示缓存(在系统存储器中)中的 LCD 图象数据传输到外部 LCD 驱动电路的逻辑功能。S3C44B0X 中内置的 LCD 控制器可支持灰度 LCD 和彩色 LCD 。在灰度 LCD 上,使用基
4、于时间的抖动算法(time-based dithering algorithm )和 FRC (Frame Rate Control)方法,可以支持单色、4 级灰度和 16 级灰度模式的灰度 LCD ,在彩色 LCD 上,可以支持256 级彩色。对于不同尺寸的 LCD ,其具有不同数量的垂直和水平象素、数据接口的数据宽度、接口时间及刷新率,而 LCD 控制器可以进行编程控制相应的寄存器值,以适应不同的 LCD 显示板。内置的 LCD 控制器提供了下列外部接口信号:VFRAME: LCD 控制器和 LCD 驱动器之间的帧同步信号。它通知 LCD 屏新的一帧的显示,LCD 控制器在一个完整帧的显示
5、后发出 VFRAME 信号。VLINE: LCD 控制器和 LCD 驱动器间的同步脉冲信号,LCD 驱动器通过它来将水平移位寄存器中的内容显示到 LCD 屏上。LCD 控制器在一整行数据全部传输到 LCD 驱动器后发出 VLINE 信号。VCLK: 此信号为 LCD 控制器和 LCD 驱动器之间的象素时钟信号,LCD 控制器在 VCLK 的上升沿发送数据,LCD 驱动器在 VCLK 的下降沿采样数据。VM: LCD 驱动器所使用的交流信号。LCD 驱动器使用 VM 信号改变用于打开或关闭象素的行和列电压的极性。VM 信号在每一帧触发,也在编程决定数量的 VLINE 信号触发。VD3:0:LCD
6、 象素数据输出端口。VD7:4:LCD 象素数据输出端口。图 2 LCD 控制器结构图注:在本设计中,LCD 选用的是 320240 彩色2.3 S3C44B0 键盘驱动本系统使用一个 4*4 键盘阵列,GPG7GPG4 输出扫描信号,GPF8GPF5 回读扫描值。在键盘扫描时,分别将 GPG7GPG5 置为逻辑低,如果有键按下,则可从所对应 GPF8GPF5 读到一个逻辑低电平。键盘的消抖由软件实现,在处理器发现有键按下后,延迟一段时间在读一次键值,如果两次得到的键值相同则认为该键被按下一次,若不同,则认为得到的键值是由于抖动引起的。键盘允许键值的自动重复,即按住一个键不放会多次得到相同的键
7、值并多次进行相应的操作。三、软件设计3.1 设计思路本设计总共有 3 个模块:ADC 模块、LCD 模块、键盘模块,所以在整体系统集成之间需要对 3 个模块分别调试。(1)ADC 调试:ADC 调试中需要设置好主时钟 MCLK,因为 ADC 完成一次采样至少需要 16 个周期,10 位数字量的转换时间如下:1/Time=MCLK/(2*(rADCPSR+1)/16其中 rADCPSR 是预分频,我们选择的是 20,可见,MCLK 越大,转换时间越短,采样率越高,而 S3C44B0 的最大主频为 66MHz,所以,我们选择了 MCLK=66MHz。此外,通过查看实验箱底板电路图,我们知道:AIN
8、1:0输入的是正弦波,AIN3:2输入的是方波,AIN5:4输入的是 DC 信号。而且在调试中,通过超级终端对每一路的信号采样值进行显示也可以确定每一路信号的类型。(2)LCD 调试:因为在本设计中我们只使用了 LCD 的彩色模式,所以我们对 LCD调试时只是测试它在彩色模式下的绘图,我们根据所给的驱动程序,先后测试了单点、直线绘图,直线绘图驱动可以绘出示波器的坐标轴,而单点绘图可以使用寄存器 ADCDAT 中输出的采样值在 LCD 上绘出正弦或者方波的波形。另一方面,为了实现在刷新波形使保留坐标轴,我们设计编写了分部清屏函数。LCD 需要完成的另外一项功能是能实现标尺对波形的基本测量,我们设
9、计的思路是先使用直线绘图驱动画出一条基准标尺,当键盘有对应按键时出现另外一条标尺,这条标尺可以自由移动,这是通过对直线绘图驱动的dx 实现的,在新的移动标尺出现时,需要将移动前的移动标尺清楚,只需要将直线的颜色设为白色即可。(3)键盘调试:由于键盘有现成的驱动,所以在调试时只需要通过串口和超级终端显示每一个按键所对应的键值即可,记录键值用于主函数中对LCD 中图形的控制。经过调试,键盘键值如下表: 11 8 4 012 9 5 113 10 6 214 11 7 3其中,带阴影的键值是我们在设计中使用到的键值。3.2 系统工作流程图:开始初始化,dx=0,flag=0LCD 清屏、画坐标轴Sw
10、itchCase1Case2Case5,flag=0?Case8Case9Case10Case11default显示正弦波显示方波标尺右移,dx-=12清标尺画标尺dx=0flag=0标尺左移,dx+=12主循环结束break break breakbreakbreakbreakbreakbreakbreakbreakYNYNCase12,flag=0?四、设计演示4.1 演示步骤(1)将实验箱和 PC 机的串口和并口相连,打开 DebugServer 和超级终端,打开 ARM SDT 加载工程并运行。(2)根据上面的键值表,按“1”键,进行正弦波的显示。(3)按“2”键,进行方波的显示。(4)按“1”键,重新显示正弦波,随后按“9”键,显示固定标尺。(5)按“5”键,显示移动标尺,随后按“11”键,清 flag,重新按“5”键,使移动标尺向右移动。(6)按“12”键,显示移动标尺,随后按“11”键,清 flag,重新按“12”键,使移动标尺向左移动。(7)按“10”键,清 dx,移动标尺回到初始位置。(8)按“8”键,清固定标尺。4.2 演示结果