"); //-->
基于FIFO-IDT7202-12的数字存储示波器
赵孔新 郭晓强
(长春工业大学 吉林 长春 130012)
摘要:本设计将双口FIFO-IDT7202-12[2]充当了高速AD和单片机C8051F020[1]的缓冲器。这使单片机-C8051F020和高速AD-TDA8703完美地结合到一起,实现了数据的高速采集,并将数据完整的传给PC,使之能准确地复原被测信号波形,最终仅仅用51内核的单片机就可实现40M采样率的数字存储示波器,使制作成本急剧下降,大大满足了学生的需求。
关键词:高速AD;双口FIFO;C8051F020;高速采集;数字储存示波器
分类号:TP271+.5
Digital Storage Oscilloscope Based On FIFO-IDT7202-12
(Zhao Kongxin Guo Xiaoqiang)
(ChangChun University of Technology, JiLin ,ChangChun, 130012)
Abstract: In this design, dual ports FIFO –IDT7202-12 is used as buffer between high-speed AD and microchip C8051F020.This makes microchip C8051F020 and high-speed AD-TDA8703
Integrate into the whole one perfectly .This also realizes data high-speed wave acquiring and sends all the data PC perfectly. All the things can make the data renewed into the wave of original signal. Finally, that only using the microchip of 51-kernel realizes Digital Storage Oscilloscope of 40M Sampling Frequency makes the cost of oscilloscope declining sharply. Accordingly, the product can satisfy the demands of students well.
Keywords: high-speed AD; dual ports FIFO; C8051F020; high-speed access; Digital Storage Oscilloscope
引言
伴随着电子技术快速的发展,越来越多的人加入电子开发的大军。在学习电子技术和研发项目的过程中,我们避免不了要使用一些仪器,例如万用表,示波器等等,然而对于一些非专业的爱好者而言,拥有一台数字示波器是比较“奢侈”的。本文设计的数字示波器因其成本低廉、制作简单、测量精度准确等优势,恰恰满足了这一部分人的需求。
制作出示波器简单,但要想制作出高模拟输入带宽却不易。主要器件的恰当选择是实现高模拟输入带宽设计目标的关键,本文选用C8051F020单片机作为CPU,它拥有简单的51内核并且I/O资源丰富。AD选用8位高速模-数TDA8703,最高采样频率40M。采用双口FIFO-IDT7202LA12,它是先进先出双口存储器,最快的存入时间为12ns。
系统硬件的结构原理和设计
本设计系统结构主要包括前端模拟信号调理信号电路模块、信号采集电路模块、信号传输模块、各芯片逻辑控制电路模块、显示模块等。
1.前端模拟信号电路调理模块[5]
该模块采用高速运放LM6361和高速比较器AD744
图1 模拟信号调理电路
本设计选用成品探头,为了防止过压输入,在高速比较器IC6前端加两个保护二极管,把输入信号嵌位到+/-12V内,对整个系统起到保护作用。然后经过IC8反向放大,再经IC25把相位倒回信号初始相位。由于本设计采用的AD电压输入范围1.55V到3.26V,所以应用IC26加一个直流分量把输入信号“抬到”AD的输入范围内。
2.信号采集模块
该模块采用AD是TDA8703,它是PHILIPS公司生产的高速模数转换器。它的采样率是40M,8位分辨率,信噪比很高,与TTL电平兼容,具有内部参考电压。
图2 AD量程转换表
TDA8703的输入电压和输出二进制码如上表,采样时序图如下:
图3 AD转换时序逻辑
时钟的上升沿到来时开始采样,当时钟的下周期上升沿上升时,转换结束。由于高达40M的采样率,普通的单片机很难能“跟上节奏”,这时我们采用双口RAM——IDT7202与之配合使用,以达到与单片机同步的目的。IDT7202是AMD公司推出的一款先进/先出双端口存储器。我们选用的型号是7202—12,也就是存入数据的时间是12ns,即存入频率高达83M,所以完全可以与40M的AD匹配,所以两块芯片可以用同一时钟采样并存储(如下图)。7202有1024个字节的存储深度,低功耗,CMOS工艺,有三种状态标志(空、半满、满),工业级温度(-40度到80度)。
图4 IDT7202与TDA8703接口电路
TDA8703的采样时钟与7202的写信号接同样一个时钟,这样便使两者同步,当采样1024个点时,关闭采样时钟信号,7202的FF端低电平有效,CPU把7202中的数据取出并查询7202的空标志位端,当低有效时,意味着7202中的数据全部被取出,这时重新开采样时钟信号,重复上一过程。
由于本设计显示采用的是PC机,受到串口上传波特率的限制,所以很难实现高频信号的测量,而上述设计恰恰在一定程度上解决了这个问题。由于1024个采样点是连续的,可以逐步上传,而形成完整的波形。但是,也有一个问题就是把1024个采样点上传给PC机的过程中AD是禁止采样的,所以在PC机上看到的波形是有不连续的“接头”,不过这对于简易的数字存储示波器是可以“容忍”的。
在设计的过程中,由于走线过多,所以即使试验阶段也得做PCB板,但是由于各芯片间的控制逻辑的不确定,很容易出错。这时我们采用CPLD来搭建此系统的逻辑电路,一旦出错,可以随时修改,直到正确。如果整个系统调试成功后,可用与、或、非等逻辑电路替换CPLD,这样可降低成本。
3.信号传输模块
本设计负责信号传输的CPU是C8051F020。C8051F系列单片机是完全集成混合信号系统级芯片,具有与8051兼容的控制器内核,与MCS-51指令集兼容。除具有标准8051的数字外设部件外,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件。C8051F单片机采用流水线结构,机器周期有标准的12个系统时钟降为一个系统时钟周期,处理能力大大提高,峰值性能可达25MIPS。
C8051F单片机是真正能独立工作的片上系统(SOC)。每个MCU都能有效地管理模拟外设和数字外设,可以关闭单个或全部外设节省功耗。FLASH存储器还具有在片上重新编程能力,可用于非易失性数据存储,并允许现场更新8051固件。
片内JTAG调试支持功能允许使用安装在最终应用系统上的产品MCU进行非侵入式(不占用系统资源)、全速、在系统调试。该调试系统支持观察和修改储存器和寄存器,支持断点、单步、运行、停机命令。在使用JTAG调试时,所有的模拟和数字外设都能全功能运行。
C8051F具有标准8051兼容的I/O端口。有的端口在某些器件中没有引出脚,这样的端口可用作通用寄存器。I/O端口的工作情况与8051相似,但有些改进。每个端口I/O引脚都可以被配置为推挽或漏极开路输出。在标准8051中固定的“弱上拉”可以被禁止,这为低功耗应用提供了进一步节电的能力。最突出的改进是引入了数字交叉开关。这是一个大的数字开关网络,允许将内部数字系统资源分配给端口I/O引脚。与具有标准复用数字I/O的微控制器不同,这种结构可支持所有的功能组合。可通过设置交叉开关控制寄存器,将片内的计数器/定时器、串行总线、硬件中断、ADC转换启动输入及微控制器内部的其他数字信号配置为出现在端口I/O引脚。这就允许用户根据自己的特定应用选择通用端口I/O和所需数字资源的组合。
本设计应用C8051F020把数据通过串口传给PC。
下面程序为串口的初始化程序[4]:
void Serial_Init()
{
CKCON |= 0x20; //定时器2使用系统时钟
T2CON=0x30; //用定时器2作UART0的波特率发生器
RCAP2H=0xFF;
RCAP2L=0xB8; //波特率是9600 (禁止分频是FFB8,CKCON=0X20;分频是FFFA,CKCON=0X00)
PCON|=0x80;
SCON0=0x50; //配置UART0为方式1,禁止接收 ;允许接收 0x50 182 page
IE |= 0x10;
TI0=0;
RI0=0; //清除UART接收 发送完成标志
TR2=1; //启动定时器2
}
下面程序为端口初始化函数:
void config ()
{
WDTCN = 0xde; //关闭看门狗
XBR0=0x04; //UART0的RX0,TX0连接到2个端口引脚
XBR1=0x94; //INT0联到P0.2
XBR2=0xc0; //交叉开关允许
IE |= 0x05; //INT0中断允许
P1MDOUT=0x00; //设计端口P1成漏极开路,使成为输入引脚
P1=0xff; //对端口进行写“1”
P2MDOUT=0x00; //设计端口P2成漏极开路,使成为输入引脚
P2=0xff; //对端口进行写“1”
P3MDOUT=0xff; //设置P3为推挽
return;
}
4.显示模块
本设计采用PC显示波形,主要是因为通过应用VB能很容易的实现波形的显示,并且还能将波形数据存储到硬盘当中,以实现示波器的存储功能。然而,要注意以下几点:
(1)波形消隐[3]
在实际使用时一般需要连续显示波形,连续显示波形时,在显示下一幅波形之前,首先需要对上一幅波形清除或消隐。VB的图片框和窗体提供了CLS方法,可以实现波形的清除,但在连续显示和清除波形时,存在严重的闪烁现象。
将显示波形的图片框或窗体的DrawMode 属性在属性框中设置成13 - Copy Pen,或程序中用类似Picture1.DrawMode = vbXorPen 的语句将画笔设置成异或笔,显示波形后经过二次重画即可消隐已经显示的波形。整幅显示-整幅消隐波形一样可出现一定的闪烁,但通过消隐一条线段-显示一条新线段的方法可彻底消除闪烁问题。该方法对波形显示区中的文字或其他控件均不会造成影响。
(2)双通道问题
在VB当中,曲线是利用连接“当前点”而生成的,要在一个图片框上实现是很难完成的,所以设计双通道波形显示程序时,可在窗体上放置两个图片框,每个图片框用于显示一个通道的波形,编程时在两个图片框中交替显示一个通道的波形,当显示速度较快时,宏观上可得到双通道同时显示的效果。
5.有源时钟模块
本设计AD的采样率高达40M,所以AD的采样时钟用40M有源晶振。如下图:
图5 有源时钟及分频电路
把40M晶振分成不同的8个频率,这样可调节AD的采样频率,以适应不同的被测信号。这部分电路在做PCB时要注意走线,有源晶振和AD之间距离不要超过1000mil。另外,做PCB时应把数字地和模拟地分开,最后用0欧姆电阻跨上,最好两面“铺地”,这样可以大大提高PCB的可靠性。
结束语
本设计的优点就是可以用较低的成本制作出性价比很高的示波器,能很好的满足学生或一些经费不是很充足的业余电子爱好者的需求。经过实际试验,整个系统非常稳定,测方波时,采样率最好是被测信号频率的5~8倍,这样效果能达到最佳。
参考文献
[1]潘琢金 施国君 C8051FXXX高速SOC单片机原理及应用[M].北京: 北京航空航天大学出版社, 2002-05
[2]CMOS ASYNCHRONOUS FIFO IDT7202-12 DATASHEET[DB/OL].
http://www.datasheetarchive.com/preview/1733883.html,2002-09
[3]李雁翎 杨斌 Visual Basic 程序设计[M].北京: 清华大学出版社 , 2005-08
[4]张培仁 基于C语言编程[M]. 北京: 清华大学出版社,2003-03
[5] Donald A.Neamen[美] 电子电路分析与设计[M].北京:电子工业出版社, 2003-01
作者:赵孔新 男 长春工业大学 教授 研究方向:图像处理,语音识别,视频编码等
郭晓强 男 长春工业大学 信号与信息处理在读硕士研究生
研究方向:基于ARM的汽车防盗系统
单位:长春工业大学
地址:吉林省长春工业大学
邮编:130012
E_mail :gxq0504@yahoo.com.cn
联系电话:13104496237
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。