|
简易逻辑分析仪(D题)
摘要
本系统通过MSP430单片机和FPGA的结合使用完成了题目中要求的全部功能,其中MSP430单片机负责人机交互,FPGA负责数据的采集、触发、存储及送显等功能。数字信号发生器模块的实现是采用单片机的定时器中断精确地产生100Hz可预置的8路数字信号;逻辑分析仪模块的数据采集、触发、存储及送显等功能全部由FPGA实现,然后将有用数据反馈给单片机让液晶显示。
Abstract
This system through the MSP430 MCU and FPGA use a combination of questions asked were completed the full functionality, including MSP430 MCU charge machine interfaces, FPGA is responsible for data collection, triggers, stored and sent Hin and other functions.Digital signal generator module implementation is to adopt the SCM timer interrupt accurately produce 100 Hz preset of 8-channel digital signals; logic analyzer modules data acquisition, storage and features such as sending Hin entirely by FPGA, and then add useful data back to the MCU let LCD display.
一、方案比较与论证
1. 数字信号发生器模块
方案一:采用分立元件生成。数字信号发生器可采用通用的数字IC和555电路来实现,即用触发器、移位寄存器等来产生信号序列。555电路产生100Hz时钟频率,同时利用机械式开关对信号发生器进行预置。但是这种方案的硬件电路庞杂,由555产生的时钟频率稳定度比较低,而且多级的机械式开关也使操作变得繁琐。
方案二:由单片机生成。采用单片机的定时器中断可以精确地产生序列时钟频率为100Hz的8路可预置的循环移位逻辑信号序列。这种方法无论是外围硬件电路还是软件编写都相当简单,且不会引入干扰,故选用此方案。
2. 逻辑分析仪模块
方案一:双MCU 方式。即由两片单片机、比较器、D/A转换器及存储器等组成系统。一片单片机作为主MCU完成人机交互及控制;另一片单片机作为从MCU,实现信号的采集和后级显示输出。其优点在于系统规模较小,但缺乏灵活性。
方案二:把单片机和FPGA相结合,利用单片机的智能化来做按键处理,液晶显示的人机交互平台,同时利用FPGA强大的逻辑处理功能作为控制处理核心,既有简化的系统设计,又能够实现很多的附加功能,并具有很强的扩展性。通过以上的分析,综合了实现的难易程度、系统的稳定度、系统的可扩展性、性价比和实用性这几个方面的考虑,我们选择了方案二。
综上所述,我们设计出的系统总体方框图如下:
图1 系统总体框图
二、理论分析与参数计算
1.信号采样触发原理
本系统由单片机产生标准的100Hz8位循环移位的逻辑信号序列并行地送到FPGA的8个输入端口,FPGA在采样时钟的控制下不停地读取该8位数字信号,同时将读取的每一个字节与触发字进行比较, 然后再存入RAM,若这一字节等于触发字,则视其触发条件满足,开始存储数据, 并在FPGA 中记录对应的存储地址, 继续存储160个状态后停止采样并送显;若为多级触发,则依据屏蔽字选出感兴趣的路, 然后对这些路的信号与触发字进行比较,若与触发字匹配,则记录对应的存储地址,继续存储160个状态后停止采样并送显。这里需要说明一下,本系统在显示的时候选择显示触发前的96个状态和触发后的160个状态,因此在满足触发条件后,需继续存储160个状态才停止采样。
2.存储深度的实现原理
本系统实现的存储深度为256bit。由于输入的8路数字信号频率f0为100Hz,假设
在示波器上设定显示数字信号的8个周期,则所需的采样时钟的频率f1为:
f1=256f0/8=3.2KHz
由上式可以看出,只要提高采样频率,在理论上便可无限制地提高系统的存储深度。
3.数据格式的转换
所采集到的数据为一个字节,每一位的值代表相应路数的信息,在示波器上显示时,需将8 路信号分离开来,因此显示前需先对其进行处理,即先将采集到的数据分离成8bit,然后将每个bit加上一个预先计算好的数值(每一路所加的数值依次递减),这样数据在示波器上显示时才是从上到下清晰的8路数字信号。
4.显示原理
依据示波器原理,若要清晰显示被测信号的波形,必须在Y通道输入被测信号的同时,在X 通道输入一个随时间线性变化的电压,通常该电压采用锯齿波电压。本设计中具体实现时将8路数字信号一路一路地送到示波器上去显示,其中每一路信号由一个锯齿波周期扫描,8路信号则由8个锯齿波周期扫描完成。触发轴和时间标志轴的显示原理为判断8路信号已经显示结束后,固定X轴(即锯齿波输出端)的输出数值不变,在Y轴(即数据输出端)不断输出递减的数字信号,由此可在示波器上显示一条轴线。当由按键输入移动时间坐标轴的命令后,FPGA相应地改变X轴的输出数值,由此改变时间坐标轴在示波器上的显示位置,并将该位置的8位数字信号的状态反馈给单片机,由其控制LCD显示。
考虑到人眼的视觉暂留时间为1/12~1/16s,为了能在示波器上稳定显示,这里取数据刷新频率200Hz,X通道锯齿波频率为2KHz。
三、硬件电路设计
1.输入阻抗变换与电平转换模块
为了尽可能地不影响输入信号,要求采样电路的输入阻抗要大于50 kΩ,同时考虑到题目中要求的逻辑信号门限电压0.25V~4V范围内按16级可调,以适应各种输入信号的逻辑电平,这里将每一路信号的输出端分别送入比较器的同相端,反相端作为门限电压控制端,这样处理不仅将采样电路的输入阻抗变成比较器的输入阻抗,满足了题目中输入阻抗大于50 kΩ的要求,而且只要在该比较器的反相端接入不同的门限电压值便可达到门限电压可调的目的。其具体电路图如图2所示,值得注意的是,本设计在具体实现时考虑到一片LM339内集成有4个比较器,故8路信号只需选用两片LM339芯片,图2中为了简化电路,只画出了一个比较器的电路。
图2 输入阻抗变换电路
需要说明一下的是,由于我们选用的数字信号发生器的单片机型号是MSP430,其为3.3V供电,而门限电压的比较范围达到4V,因此在将单片机输出的8路信号送入比较器之前我们选用一块74HC245进行缓冲,同时达到电平转换的目的;在比较器的输出端考虑到FPGA的供电电压为3.3V,因此在比较器的输出端采用一上拉电阻使得比较器的输出电平为0V和3.3V。
2.门限电压控制模块
该模块采用串行的DA转换芯片DAC7611实现,具体电路图如图3所示,8脚的电压输出端接图2中比较器的反相端。其实现原理为单片机在其4脚输入相应的数据D,在该芯片的8脚输出所需的门限电压V_GATE,其转换关系为:
例如当所需的门限电压为4V时,则由上式可以计算出单片机所需输入的数字控制量为FA0。同理可计算出0.25V~4V之间分为16等级时各级的数字控制量,具体实现时由按键控制门限电压的程控调节。
图3 门限电压控制电路
3.后端送显模块
利用两片TLC7524将RAM中锯齿波信号和逻辑信号的数据变为模拟信号,由于TLC7524是电流型输出,所以还要通过I-V转换器将电流输出信号转换成电压输出信号,再送到示波器的x、y 轴予以显示。图4给出D/A 转换器连接图。
图4 后级送显电路
四、系统软件设计
1.软件实现方法
该系统采用单片机和FPGA共同完成对逻辑分析仪的软件控制。单片机负责读取键盘有关的门限电压、触发模式和触发字的设定,然后送到FPGA进行触发判断、RAM 储存等,再由FPGA完成最后的示波器显示功能,最后由单片机完成反馈时间标志线所对应的逻辑状态的LCD 显示。
2.软件流程图
五、系统测试
1.测试方法与仪器
测试仪器:TDS1002示波器一台。
测试方法:(1)门限电压测试:该部分将门限电压的输出端接到示波器上,通过按键控制输出不同的电压等级,然后查看示波器上输出电压值是否与所设定的门限值相等,具体的测试结果记录在表1中。(2)显示功能测试:该部分主要分为3部分来测试。首先进行单级触发字的测试,由按键输入单级触发功能选项,然后再输入单级触发字,最后在示波器上观察输出的逻辑波形是否与所设置的情形一致。图5是截取示波器上的输出波形;三级触发字的测试同单级触发字类似,先由按键输入三级触发功能选项,然后再输入三级触发字,最后在示波器上观察输出的逻辑波形是否与所设置的情形一致。图6是截取示波器上的输出波形;最后进行时间坐标轴的移动测试,由按键控制坐标轴的移动方式(左移或右移),然后观察示波器上时间坐标轴所对应的8路数字信号状态,看其是否与LCD屏上所显示的数字一致,图6是截取示波器上的输出波形。
2.测试结果分析
表1
门限 等级 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
计算 电压 |
|
|
|
|
|
|
|
|
测试 电压 |
|
|
|
|
|
|
|
|
门限 等级 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
计算 电压 |
|
|
|
|
|
|
|
|
测试 电压 |
|
|
|
|
|
|
|
|
由表1可以看出,测试所得电压基本与计算电压值相等,说明该门限电压控制电路的工作是稳定可靠的。
图5 单级触发字测试显示结果
图5中单级触发字的测试结果显示,此时触发点所对应的8路信号的逻辑状态为00001011,这与所设计的单级触发字00001011完全一致。图7中为时间坐标轴移动后所显示的状态,此时时间坐标轴所对应的8路信号逻辑状态为01110000,这与液晶屏上所显示的数据完全相同。由此验证了所设计的简易逻辑分析仪的工作状态是可靠的。
图7 时间坐标轴移动显示结果