4

关于投票
基于Nios Ⅱ的Serial EEPROM测试方法研究

基于Nios Ⅱ的Serial EEPROM测试方法研究

周亚丽,周辰,武乾文,周冬雁
(中国电子科技集团公司第58研究所,江苏 无锡 214035)


1 引言

Serial EEPROM作为低成本的数据存储元件,在嵌入式系统中使用非常广泛,EEPROM的成品测试由于需要测试功能较多,因而测试时间较长,测试成本较高,文中提出的用Nios Ⅱ软核CPU测试Serial EEPROM的方法有稳定性高、所需器件少、可编程、低成本等优点。

2 Nios Ⅱ简介

Nios Ⅱ是Altera公司开发的第二代嵌入式处理器软核。Nios Ⅱ嵌入式系统处理器是一种采用流水线技术、单指令的RISC处理器,其大多数指令可以在一个时钟周期内完成。Nios Ⅱ处理器软核是一种可配置的通用RISC处理器,可以与用户自定义逻辑(User-defined Logic)集合构成一个基于FPGA的片上系统。32位Nios Ⅱ嵌入式处理器软核结合片外Flash以及大容量存储器,可构成一个功能强大的32位嵌入式系统。

3 Serial EEPROM原理介绍

Serial EEPROM通过SDA串行数据输入输出口进行数据读写。其时序如图2。

4 测试原理及系统组成

本系统功能由硬件和软件两大部分协调完成,硬件部分主要完成测试的数据传输和信号采集;软件主要完成信号处理及整个系统控制功能。

其工作原理为Nios Ⅱ CPU发出特定信号,以模拟Serial EEPROM烧写过程,再模拟对其数据读取,以验证Serial EEPROM功能是否正常,同时可以输出PASS/FAIL信号。

4.1 硬件设计

该系统主要包括以下几个部分:Nios Ⅱ软核,Nios Ⅱ外围电路、Nios Ⅱ与测试芯片接口等,Nios Ⅱ软核载体使用Altera公司的Cyclone器件,Nios Ⅱ与测试芯片接口主要使FPGA的I/O口与Serial EEPROM端口电压匹配,如图3。

Nios Ⅱ软核主要由Altera公司的Quartus Ⅱ和SOPC Builder软件生成。可选用最高性能优化的Nios Ⅱ/f的Nios Ⅱ软核,配置为50M赫兹的系统时钟、1个系统控制端口、1个输出时钟端口、1个SDA输出读入端口、2个PASS/FAIL信号输出端口、1个测试完成信号(EOT)输出口、4K内部RAM和外部RAM控制器。

其中系统控制端口接受测试开始信号。时钟输出端口输出驱动EEPROM的时钟,SDA输出端口模拟出烧写EEPROM信号,在写完数据之后,再由这个端口模拟读EEPROM的信号,并由SDA端口采集EEPROM的信号,供给Nios Ⅱ CPU与写入数据进行比较,以确认被测元件的好坏。

Nios Ⅱ的系统工作频率较高,远大于Serial EEPROM的工作频率(100K-400K),故可以较容易的调整两个端口的输出波形时序,使其与Serial EEPROM的时序匹配。

4.2 软件设计

该系统软件主要由主程序、Serial EEPROM写入、Serial EEPROM读取,读出数据判断、PASS/FAIL/EOT信号输出等5个模拟组成,本系统的软件采用C语言编写,使用Altera公司提供的C语言库,Nios Ⅱ IDE软件环境下进行编译连接。

4.2.1 主程序设计

主程序主要完成硬件初始化、子程序调用等功能,主程序流程如图4所示。

4.2.2 Serial EEPROM写入子程序设计

Serial EEPROM写入子程序通过软件编写驱动时钟端口和SDA端口输出高低电平模拟1/0二进制信号,同时使用延时调整两个端口输出波形的时序,写入数据的串行信号如图5所示,为了写入时减少对系统资源的消耗,可以把相同的部分如DEVICE ADDRESS、DATA这些信号编写成为特定的子函数,只要在需要的时候调用这些子函数就能更方便了。

4.2.3 Serial EEPROM读出子程序设计

调用读取函数采集SDA的高低电平,通过延时调整采样点时间,得到输出信号,读入数据的串行信号如图6所示。

4.2.4 读出数据判断子程序设计

读出数据判断子程序完成判断读出数据是否与写入数据一致。

4.2.5 PASS/FAIL信号输出子程序

PASS/FAIL信号输出子程序,在数据判断子程序作出判断之后,通过2个P/F端口输出信号,同时通过测试完成信号端口输出EOT信号,这些输出信号可以按需要在软件中设置成高低电平或高低脉冲信号。

在这个程序的基础上可以对多个测试图形的测试如:棋盘图形、反棋盘图形、对角线图形、反对角线图形、全0图形、全1图形等,只要在Serial EEPROM写入子程序写入不同的图形就可以了,便于测试时调整。

5 仿真调试

本系统使用ModelSim 6.0以上版本进行软件仿真。它支持Nios Ⅱ软核CPU的仿真。在软件仿真阶段,逐模块进行仿真测试,在此基础上逐步集成。譬如可以先仿真Serial EEPROM写入子程序、Serial EEPROM读出子程序等,然后将仿真成功的各个模块加入到主程序中进行仿真。在仿真成功的情况下可以把多个写入图形加入到主程序中仿真。仿真中主要解决时钟和SDA时序匹配的问题。

6 结束语

Nios Ⅱ软核CPU在Serial EEPROM的量产测试中可以代替昂贵的测试系统,具有较高的故障覆盖率。其低成本、高效率使其成为一种性价比较高的替代测试方案。

本文摘自《电子与封装》

系统分类: 测试测量
用户分类: 通信测试
标签: Nios Serial EEPROM
来源: 转贴
发表评论 阅读全文(72) | 回复(1)

6

关于投票
可编程模拟器件在小信号测量系统中的应用

可编程模拟器件在小信号测量系统中的应用

作者: 杨晓慧 杨永健
现代电子技术

1 引 言
  
在系统可编程模拟电路(In System ProgrammabilityProgrammable Analog Circuits,ispPAC)是可编程模拟器件的一种,其内部有可编程的模拟单元(如放大、比较、滤波),他可在不脱离所在应用系统的情况下,通过计算机编程实现模拟单元电路指标参数的调整和模拟单元电路之间的连接等,从而获得功能相对独立的模拟电路。
  
在系统可编程模拟电路提供以下3种可编程性能:
  
(1) 功能可编程

在系统可编程器件可实现信号调理(对信号进行放大、衰减、滤波)、信号处理(对信号进行求和、求差、积分运算)、信号转换(数字信号转换成模拟信号)。

(2) 互连可编程

能把器件中的多个功能块进行互连,对电路进行重构,具有百分之百的电路布通率。

(3) 指标特性可编程

能调整电路的增益、带宽和阈值。

ispPAC器件可以被允许反复编程,编程次数可达10 000次。通常,编程软件还提供仿真功能。设计人员可根据系统提供的仿真结果重新修改电路,直至满意为止。然后将编程结果通过isp接口电缆下载至芯片,从而完成了模拟电路的设计与实现,即把高集成度、精确的设计集于一片ispPAC中,取代了由许多独立标准模拟器件所实现的电路功能。

2 小信号测量系统的实现

2.1 小信号测量系统的硬件框图

小信号的测量历来是智能仪器仪表及测控领域中的关键技术。一般传统的小信号测量系统的硬件框图如图1所示。

在图1中可以看到小信号在测量之前必须被滤波整流和放大,但考虑到放大器本身的漂移,所以还要加入调零网络。如果采用通常的模拟电路搭建方法,将需要6~8个高精密运算放大器和大量的电阻电容。像这样设计的电路调试复杂繁琐,且测试精度不高。



用ispPAC器件替代其中一部分的模拟电路,简化了设计过程,降低了成本。加上单片机和ADC的使用,使得增益可控,并可用LED显示测量值。其框图如图2所示。图中单片机可采用89C51常用8位单片机,ADC是ICL7135 4位半双积分ADC,抗干扰能力较强,输入为差分信号,输出为4位半十进制数0.000 0~±1.999 9,数据采取BCD码动态扫描输出形式。



2.2 用ispPAC10做测量放大器

ispPAC10实现系统前端的模拟测量功能,即对信号整形滤波和放大。在系统可编程器件所用的开发软件为PAC Designer。该软件采用原理图设计输入方式,并可对电路的幅频特性和相频特性直接进入模拟分析。不同的参数(R,C)值可以得到相应的幅频/相频曲线,从仿真曲线上可对原理图设计进行适当修改,直到满足设计的要求。当完成设计输入和仿真操作后,最后一步工作是对PAC器件进行编程。ispPAC器件的硬件编程接口电路是IEEEll49.1-1990定义的JTAG测试接口。ispPAC器件的JTAG串行接口通过编程电缆和PC并口连接,这样就可以对ispPAC10进行下载,电路如图3所示。



信号采用单端输入,为了减少系统本身的零漂,使用简单的精密电阻网络进行零漂的调整,500 kΩ的可调电阻几乎能覆盖可能出现的所有参考电压的偏差。信号输入后,首先经过一个低通滤波器,减少高频杂波的干扰和影响,然后再经过放大,由OUT3输出。为了调整系统本身的零漂,需外输入一个1 mV的小电压,根据ispPAC10的可编程特点,以步进为1 mV达到调整范围-10~+10 mV,这样可以消除PAC器件本身的零漂。当然,如果增益不够的话,可以再级联一级放大器,即:OUT3输出和OUT4输入相连,输出电压由OUT4输出。最后得到一个差分输出信号,送给模数转换器。其中,低通滤波器的设计可用双二次电路用于实现二阶滤波。典型的二阶滤波器传递函数为:



当M=C=0时为低通滤波器;M=D=0时为带通滤波器;C=D=0时为高通滤波器。

2.3 小信号测量系统的电原理图

小信号测量系统的电原理图如图4所示。为了充分利用和扩大ICL7135测量范围以及提高精度,可使用双4路模拟开关C4052,并利用ICL7135的过量程和欠量程示意功能实现了量程的自动切换。

点击开大图

图4中用P3.4控制A/D转换。如果置P3.4=1不变,则ICL7135连续进行A/D转换而不会停止。

如果用软件在P3.4输出一个正脉冲则启动A/D转换,转换完一次便不再进行A/D转换,并不断输出数据。把STB与P3.3(INT0)相连,可实现INT0中断,在A/D转换期间STB为高电平。在A/D转换完毕后,在STB出现5个负脉冲,可以利用STB的下降沿请求中断,每个STB负脉冲可使相应的显示位获得驱动信号,而a8~a1是相应位的BCD码。因此软件设计是采用连续响应5次中断(或进行5次查询),读出5个BCD码的方法。在数据读入后单片机通过查表的方式,将得到的BCD码转换成相应的LED七位显示码,接着通过串行口方式发送给移位寄存器74LS164进行显示。符号位和精度位分别由独立的引脚进行控制。当发现量程过大时会预警,当放大增益不足时会自动切换量程。

3 系统调试

3.1 关于漂移的问题

工作状态中出现漂移时,如果是线性的可以使用调节零漂的方法进行调节;如果是非线性的可以建立与输入电压相关联的步进电压进行调整;如果是离散的可采取软件取平均的方法。

3.2 ICL7135的参数选择

为了抑制交流干扰信号(最大的干扰频率为供电电源的干扰),ICL7135的时钟频率设为fck,应该使:



其中:K为正整数,ff为于扰信号的频率,即50 Hz。

对于ICL7135而言,N=10 000,在工业现场,考虑到通用性,K取值为2,则fck=250 kHz。假设单片机的工作频率为6 MHz,那么ALE脚输出的信号为晶振的6分频即1 MHz,然后通过计数器74LS163进行4分频就可以得到ICL7135所需要的工作频率250 kHz。

假设满量程为2 V,那么根据数据手册可得参考电压VREF=1 V;积分电阻Rint=Vxm/20μA=100 kΩ;积分电容Cint≥N*20 μA/(fckVm)=0.2μF,其中Vm为积分器输出的可能最大值,对于ICL7135而言Vm在3.5~4 V之间。调零电容和基准电压滤波电容应该取足够大的值,一般为1μF,而且要使用优质电容。其余的电容可按常规方法选用,均取0.1μF。

3.3 单片机的外围电路

应该注意NMOS和CMOS结构的单片机相应的时钟电路和复位电路是不同的,否则会引起不必要的器件损坏。图4给出的是NMOS型单片机的电路,在一些输入输出口上需要加上上拉电阻(图中未画出)。为了确保系统的稳定运行,在可能的情况下,还可以使用硬件看门狗。

3.4 数字和模拟混合电路

对于数字和模拟混合的电路,布线时应避免相互的干扰,而作为小信号测量系统,这一点尤为重要。在必要之处应加上隔直和滤波电容。

4 结 语

在系统可编程模拟器件结合单片机等系统构成的各种应用系统,特别是用在系统可编程模拟器件构成的各类智能化测量系统,由于体积小、功能多、精度高、使用方便灵活,已成为测量的发展方向。用在系统可编程模拟器件设计的小信号测量系统实现了其整流滤波和放大的功能,且电路的调试简单、测试精度高。随着模拟可编程技术的不断进步和应用需求的增加,可编程模拟器件的类型和品种也会日益丰富和完善。

系统分类: 测试测量
用户分类: 信号检测
标签: 可编程模拟器件
来源: 转贴
发表评论 阅读全文(116) | 回复(1)

0

关于投票
泰克加大力度支持中国自主创新和电子人才培养工作
泰克公司日前宣布,它已经与中国领先的电子行业门户网站中电网签订协议,赞助和帮助中电网为电子工程与集成电路技术培训项目设计和开办五门电子测试和测量教程。电子工程与集成电路技术培训项目是“国家信息技术紧缺人才培养工程”的一部分,由中电网负责组织和实施。泰克赞助的新数字技术课程包括:高速串行数据测试和测量,数字RF测试和测量,嵌入式系统测试和测量,数字视频测试和测量,以及TD-SCDMA网络测试和监测。这些课程将会从2008年春季开始在网上开课。

这五门课程将提供网络平台提供包括基本原理、技术标准和测量解决方案的培训以及在实验室完成的针对关键技术的实践。这些课程将由知名高校的教授主讲,如清华大学、中国传媒大学和东南大学。

参加和通过这些培训课程考试的所有工程师和学生将获得中国国家信息技术紧缺人才培养工程办公室颁发的“中国国家信息技术紧缺人才培养工程培训证书”,并在中国国家信息技术紧缺人才数据库中登记入库。

“近几年来,中国电子行业取得了长足进展,发展速度非常快。”国家信息产业部(MII)苟仲文副部长说,“为了增强中国的信息科技自主创新能力,我们必须培训更多国内的工程技术人才。中国国家信息技术紧缺人才培养工程旨在帮助中国的技术工程师获得最新的技术和专业知识,培养设计和创新能力以面向全球市场。像泰克这样这样在行业中处于领先地位的公司积极参与这一项目,促进中国的电子人才培养,我们感到非常高兴。”

“长期以来,泰克一直与领先的中国本地公司、高等院校和标准机构合作,开发各种新技术标准并提供相应的解决方案。”泰克中国总裁郝思通(Neil Huddlestone)说,“泰克进一步加强了我们对支持中国自主创新和培养本土电子技术人才的承诺。我们与中电网合作开发的测试和测量培训课程,将为中国的电子工程师提供最新的知识和实用技能,使他们能够在新数字技术世界中不断实现创新。”

“作为电子工程与集成电路技术培训项目的组织者和实施者,能够有机会与泰克合作,为中国电子工程师提供这五门测试和测量课程,我们感到非常高兴。”中电网首席执行官赵蔚扬博士说,“这五门课程将利用泰克丰富的技术经验,使中国的电子工程师更经济方便地学习行业专家教授的知识和核心技术,培养自身技能,以便在当前迅速发展的电子行业中,迎接新的设计挑战。”
系统分类: 商务交流
用户分类: 资料收集
标签: 泰克
来源: 转贴
发表评论 阅读全文(52) | 回复(0)

1

关于投票
基于FPGA的USB2.0虚拟逻辑分析仪的设计与实现

基于FPGA的USB2.0虚拟逻辑分析仪的设计与实现

出处:中国测控网 

引言

  传统的逻辑分析仪体积庞大、价格昂贵、通道数目有限,并且在数据采集、传输、存储、显示等方面存在诸多限制,在很大程度上影响了其在实际中的应用。选用高性能的FPGA芯片进行数据处理,充分利用PC的强大处理功能,配合LabView图形化语言开发的虚拟逻辑分析仪,其数据处理和传输速率大大提高,适用性极大增强,其显示、操作界面和低廉的成本较之传统的逻辑分析仪具有极大的优势和发展前景。

  工作原理

  本设计选用Altera公司的Cyclone系列FPGA器件EP1C3进行数据采集和处理,外接SRAM,用于数据的存储。系统通过高性能的PIC单片机PIC18F6620完成与PC的通信,接收PC发出的触发、配置信息并控制系统将采集处理后的数据上传至PC显示。单片机与PC的接口利用符合USB2.0规范的接口芯片CP2102实现。

  首先,PC向FPGA发送触发字信息、数据采集控制信息和开启数据采集信号;单片机发送数据至外接DAC产生门限电压;采集到的输入信号通过高速比较器与此门限电压进行比较,以确定其值为0或1。接收到PC发出的开启数据采集信号后,FPGA按设定的工作方 
式采集数据,各通道数据移位输入FPGA内部缓存并存入外部SRAM。FPGA将缓存中存储的采集数据与设定的触发字、触发方式和屏蔽位进行比较。一旦符合触发条件,则设置触发标志,记录触发位置。当数据采集至设定的点数后,FPGA向PC发送采集完成信号。上位机接收到此信号后,发送读取数据命令,系统读回采集数据并在PC屏上显示。系统功能框图如图1所示。

点击开大图

图1 系统功能框图

  系统触发模块设计

  触发模块是整个系统的核心部分,主要包括采样时钟选择模块、触发电平设置和触发电路三个部分。

  采样时钟选择模块

  时钟选择模块用于选择采样频率。可供选择的时钟源包括:外部时钟(由有源晶振提供)、单片机PWM模块产生的PWM时钟、外部时钟输入(由额外的设备提供)、以第N路数字信号输入作为采样时钟。

  触发电平设置

  触发电平用来确定系统正确识别采样信号的高低电平。该模块由串行数模转换器TLC5615和高速比较器LT1721构成。采样开始前,单片机向DAC发送触发电平数据,转换后的电平信号(范围从0~+5V)送入高速比较器。

  触发电路

  触发电路的作用是判断采样信号是否满足触发条件,并分别产生触发动作。当采集的信号满足用户设置的触发条件时,系统记录触发位置并产生触发信号通知上位机读取、显示采样数据。本次设计的触发电路具有三种可选的触发模式:立即触发、顺序触发和并行触发。

  立即触发

  当上位机向FPGA发出立即触发触发字和开始采样指令后,FPGA开始采样并立即产生触发信号。采样电路将采集到的信号存入外部的SRAM中,直至采集到规定的点数后停止采样,向上位机发出采样结束信号,通知其读取采样数据。此方式下读回的触发点位置为0。

  顺序触发

  该方式设置了一个8位的序列触发,只有当被测通道的信号按依次满足触发字所设定的8位序列时,才产生触发信号。同时,为了操作的灵活性,还加入了屏蔽位。若对某一位的数据不敏感,可以将其对应的屏蔽位设置为0,在判断触发条件时不对该位进行检测。

  使用顺序触发方式,可以对任意一个通道选择最多8位长度的序列进行触发。在进行触发设置时,除设置触发方式(选择顺序触发)和进行采样频率选择以外,还需要进行通道选择、触发字和屏蔽位设置。其Verilog HDL算法源程序如下:

  if(((dbuf^{TrigWord[1],TrigWord[ 0]})&{enbit[1],enbit[0]}) == 8'h00) 

   begin

   TrigFlag=2'b01; Trigpoint[6:0] <= MemABus_Wr[6:0]; 

    end

  其中:dbuf为所测采样通道的数据缓存;TrigWord[0]、TrigWord[1]为触发字;enbit[0]、enbit[1]为屏蔽字;Trigpoint为触发位置寄存器。

  并行触发

  该方式设置了一个八级深度的并行触发,将每次采样得到的4个通道的数据组合为一个十六进制数,对应于一个4位的触发字,当4个通道的数据在时间上依次满足8个4位的触发字时(并非要求连续),产生触发信号。同样,可以使用屏蔽位对某一通道的数据进行屏蔽,即在进行并行触发检测时,不对该路通道进行检测。

  使用并行触发方式,可以选择最多八级的并行触发。在进行触发设置时,除设置触发方式(选择并行触发)和进行频率选择以外,还需要进行触发字、屏蔽位和并行深度的设置。其Verilog HDL算法源程序如下:

  if ((({dbuf4[0],dbuf3[0], dbuf2[0],dbuf1[0]}^ TrigWord [dcount] )&enbit[0] ) == 4'h0)

   begin

   if(dcount[2:0]==control[4:2])

   begin

   TrigFlag="2"'b01; Trigpoint[6:0] <= MemABus_Wr[6:0]; 

       dcount="3"'b000;     end

     dcount = dcount+3'b001;

       end

  其中,dbuf4、dbuf3、dbuf2、dbuf1分别为采样通道4、3、2、1的数据缓存;TrigWord[dcount]为触发字;dcount为触发深度计数器;control[4:2]为设定的触发 
深度;enbit[0]为屏敝字;Trigpoint为触发位置寄存器。

  USB2.0接口设计

  本设计选用符合USB2.0规范的CP2102芯片构建系统与PC的通信接口。

  CP2102是USB-UART桥接芯片。该电路内置USB2.0全速功能控制器、USB收发器、晶体振荡器、EEPROM及异步串行数据总线,支持调制解调器全功能信号,无需任何外部的USB器件。其功能强大,采用MLP-28封装,尺寸仅为5mm×5mm,占用空间非常小,非常适合大数据量处理与传输电路系统的设计与应用。

  实际应用中,系统只需使用CP2102基本的输入/输出数据线与复位信号线。其接口原理如图2所示。

  系统启动时, 单片机RB1端口发送一低电平至CP2102复位端,芯片复位,然后保持复位端高电平,CP2102正常工作。

点击开大图 

图2 USB2.0接口电路图

  由于CP2102内部的透明设计,数据通信时,可以不必构建CP2102与单片机的握手信号;CP2102数据线直接与单片机1#USART模块的接收移位寄存器(RSR)和发送移位寄存器(TSR)相连。CP2102数据线上一旦出现待发送的数据,该数据会自动移入单片机接收移位寄存器;同样,单片机发送数据时,发送移位寄存器中的数据直接移至CP2102的数据线(即USB接口数据线)上。

  程序设计中,系统不断检测单片机接收中断标志位RCIF1,一旦USART异步接收器的移位寄存器RSR接收到CP2102数据线上发送的停止位,RSR寄存器就将已接收的8位数据装载到接收寄存器(RCREG1)中。系统发送数据时,前次装入发送缓冲器(TXREG1)的数据的停止位P发送出去后,TXREG1缓冲器中的数据(软件装入)就被载入TSR寄存器中,TXREG1缓冲器就为空状态,同时发送中断标志位TXIF被置1。TSR将待发送数据逐位移至CP2102数据线,完成系统与CP2102 USB模块的数据传输。

  软件设计

  FPGA功能实现程序运用硬件描述语言Verilog HDL编写;PIC单片机程序用C语言编写,并采用第三方C语言工具HITECH公司PICC—18编译器编译实现。PC显示和操作部分运用图形化语言LabView7.1编写,其前面板如图3所示。

 点击开大图

图3 系统面板

  实验操作

  采用LabView7.1开发的虚拟操作平台,可以方便实现仪器的操作控制。实验开始前,首先选择通信端口,建立PC与本系统的通信;设置触发电平,设置采样频率(外部、内部或其他)、触发方式、触发字、屏蔽字并点击“发送触发命令”按钮,完成相关设置,开启数据采集和触发进程。点击“读取采样数据”可读出采集到的数据,并在PC上显示。

  结语

  在综合考虑应用需要和成本的前提下,本设计采用4个高速采样通道,最高可达75MHz采样率,存储深度达512KB,最多可采集220个测试点。触发电平由10位串行数模转换器TLC5615产生,电平误差小于5mV。高速USB2.0通信接口配合LabView7.1开发的虚拟操作平台,可实现数据在PC上的实时显示。本设计的成本还不到市场上同性能产品的1/2,更适用于教学等对产品数量要求较多,性能要求中等的单位采用。

  参考文献

  1.邓火炎,王磊,等编著.Labview 7.1测试技术与仪器应用[M].机械工业出版社,2004.7

  2.Silicon Laboratories.CP2102 DataSheet. Rev. 1.0 2004.4.

  3.刘和平 等编著.PIC18Fxxx单片机程序设计及应用[M].北京航空航天大学出版社, 2005.2

系统分类: 虚拟仪器
用户分类: 虚拟仪器
标签: FPGA USB2.0
来源: 转贴
发表评论 阅读全文(86) | 回复(0)

1

关于投票
基于LabVIEW的相关滤波器的设计与改进

基于LabVIEW的相关滤波器的设计与改进

作者姓名: 徐丹
作者单位: 武汉理工大学

1 引言

在目前的测试领域中,越来越广泛地利用相关检测的方法进行滤波。利用相关滤波可以方便地从复杂的待测信号(包括有用信号、直流偏置、随机噪声和谐波频率成分等)中分离出某一特定频率的信号。在数字技术迅速发展以后,相关滤波也经常利用A/D板对信号采样后,在计算机中实现,成为数字滤波的一种形式。本文设计了一种实现相关滤波的方法,这是相关分析在测试技术中的一个典型应用。图l所示为相关滤波器的典型框图。



Labview是美国国家仪器公司推出的一种基于“图形”方式的集成化程序开发环境,是目前国际上惟一的编译型图形化编程语言。在以PC机为基础的测量和工控软件中,Labview的市场普及率仅次于C++/C语言。Labview开发环境具有一系列优点,从流程图式的编程,不需要预先编译就存在语法检测和调试过程使用的数据指针,到其丰富的函数、数值分析、信号处理和设备驱动等功能。应用Lab-view进行滤波器设计,效率高,操作简单,并能对误差精度进行实时调整。把传统仪器利用Labview用软件的方法来实现,开发周期短,易于维护和升级,可以设计出传统仪器所不能比拟的虚拟仪器,“软件就是仪器”——这就是虚拟仪器技术的精髓。

模拟自相关滤波器

2 虚拟相关滤波器的设计

2.1 前面板的设计

在Labview环境下开发的应用程序称为VI(Virtual Instrument)。VI是Labview的核心,有一个人机交互的界面——前面板,和相当于源代码功能菜单框图程序——后面板组成。前面板是程序的界面,在这一界面上有控制量和显示量两类对象。在前面板中,控制量模拟了仪器的输入装置并把数据提供给VI的框图程序,例如开关、旋钮等;而显示量则是模拟了仪器的输入装置并显示由框图程序获得或产生的数据,例如用于显示波形的窗口等。后面板又称为代码窗口或流程图,是VI图形化的源程序,在流程图中对VI编程,以控制和操纵定义在前面板上的输入和输出等功能。流程图中包括前面板上没有但编程必须有的对象,如函数、结构和连线等。

前面板如图2所示,由以下几个部分组成:参考信号的参数设置、待处理信号的参数设置、滤波结果的实时显示以及原始信号的波形图和滤波结果的波形图。可以设置参考信号的幅值和频率,也可以对3路正弦信号设置频率幅值和相位。程序成功运行后就可以从滤波实时显示区得到滤波结果的频率幅值和初相位,同时在波形显示区中也可以得到相应的波形,使结果更为直观地反映出来。

点击开大图

2.2 后面板的设计

后面板如图3所示。后面板中的控件与前面板中的控件相对应,并且通过连线、添加程序以及加入各种信号等措施进行编程,实现自相关滤波的功能。同时通过在前面板设置各种不同的参数,成功地运行程序,实现所要求的目标。为了实现这一功能,笔者又掭加了激励信号源、滤波器加法器和乘法器等各种运算器。经过运行程序.测试结果显示能够实现从一个包含多种频率成分的信号中提取出所需单一频率信号的功能,相当于实现了滤波。由于这种滤波的思路是从相关函数的定义出发的,因此成为相关滤波器。

点击开大图

在这里,笔者用仿真信号发生器来模拟待测的信号,在实际中这个待测信号通常由数据采集卡采集得到。输入的待测信号为3路正弦信号的叠加,需要从中检测出20 Hz的信号。这个测试VI实现了相关滤波过程的动态显示,使用了循环结构。

3 改进后的滤波器设计

上述实现相关滤波的基础上,还可以进一步改进,使程序更加简单。改进后的前面板如图4所示,将多路信号集于一个图中显示,更加直观。同时增加了粗调和细调旋钮,显得更加精确。改进后的前面板结构更加紧凑,设计也更加合理。



改进后的后面板如图5所示。可以看到,滤波器用一个信号平均值测量VI代替了原来的滤波器VI。这是因为在相关滤波中,滤波器的作用实际上就是求取测试信号的直流分量,因此这样同样可以实现相关滤波。利用相关函数,可以识别并提取混淆在噪声中的信号,即进行相关滤波。

点击开大图

在数字技术迅速发展以后,相关滤波经常利用A/D板对信号采样后在计算机中实现,成为数字滤波的一种形式。而在Labview中实现相关滤波的方法,也是相关分析在测试技术中的一个典型应用。

4 结束语

虚拟仪器已经为越来越多的人所使用和接受,因为虚拟仪器系统更快速简捷和方便,也可以节省硬件资源。通过虚拟滤波器设计,可对虚拟仪器有更深的理解和领悟,也为以后进行更进一步的研究提供了基础。

系统分类: 虚拟仪器
用户分类: 虚拟仪器
标签: LabVIEW 滤波器
来源: 转贴
发表评论 阅读全文(75) | 回复(0)

5

关于投票
基于DSP的多超声测距数据采集处理系统

基于DSP的多超声测距数据采集处理系统

来源:www.chinaaet.com  

 

关键字:超声传感器 测距传感器 DSP 外部中断 上位机 核心处理器 北京航空航天大学出版社 智能移动机器人 XINT CANTX

  摘 要:介绍了自行设计的移动机器人CASIA-I中超声测距系统的软、硬件,以及超声测距数据与上位机通信的设计和实现过程。该系统以DSP—TMS320LP2407A作为核心处理器,以CAN总线为基础,实现了上述功能。经实验验证,测距范围为0.45m~3.5m,系统测距精度在0.7%以内,可以满足移动机器人室内导航的要求。

  关键词:移动机器人 DSP 超声测距 CAN总线通讯

  

  移动机器人要实现在未知和不确定环境下运行,必须具备自动导航和避障功能。在移动机器人的导航系统中,传感器起着举足轻重的作用。视觉、激光、红外、超声传感器[1]等都在实际系统中得到了广泛的应用。其中,超声波传感器以其信息处理简单、速度快和价格低,被广泛用作移动机器人的测距传感器,以实现避障、定位、环境建模和导航等功能。

  传统的轮式移动机器人超声数据采集系统大多采用单片机作为微处理器,以此来测量移动机器人到障碍物的距离,并将距离通过串口传输到上位机。采用这种设计,系统制作简单、成本低。但是,对于多超声传感器测距系统,如果仍采用单片机来完成测距任务,由于系统中超声传感器数量较多,为保证系统的实时性,就需要多个单片机才能完成数据采集,这使得采集系统不可避免地存在设计复杂和一些算法难以实现等缺陷。随着微电子工艺的发展,数字信号处理器(DSP)的应用领域已从通信行业拓展到工业控制领域。TI公司推出的TMS320LF2407A是专门针对控制领域应用的DSP,它具有高速信号处理和数字控制功能所必需

  的体系结构,其指令执行速度高达40MIPS,且大部分的指令都可以在一个25ns的单周期内执行完毕。另外,它还具有非常强大的片内I/0端口和其它外围设备,可以简化外围电路设计,降低系统成本。正是基于这种思想,中国科学院自动化研究所在国家“863”计划的支持下,利用多DSP和嵌入式PCI04自行设计和研制了轮式移动机器人CASIA-I。本文着重介绍其超声数据采集系统,同时对通过CAN总线完成的超声数据与上位机通讯的原理和设计过程进行分析说明,并给出实验结果。

  1超声测距原理

  超声测距的原理较简单,一般采用渡越时间法[1],即:

  D=ct/2 (1)

  其中D为移动机器人与被测障碍物之间的距离,c为声波在介质中的传输速率。声波在空气中传输速率为[1]:

  

  

  

  其中,T为绝对温度,c。=331.4m/s。在不要求测距精度很高的情况下,一般可以认为c为常数。渡越时间法主要是测量超声发射到超声返回的时间间隔t,即“渡越时间”,然后根据式(1)计算距离。

  2系统硬件设计

  在距地面高度为45cm、相隔为22.5°的同一环上均匀分布着16个Polaroid生产的超声传感器,其编号为1#~16#(逆时针安排),超声传感器波束角为30°,超声传感器的最小作用距离为0.45m。超声数据采集板主要有两大模块:一是16路超声传感器的超声波发射和回波的接收模块,二是与上位机(机器人中央控制器)的CAN总线通讯模块。其硬件结构见图1。

  点击开大图

  

  TMS320LF2407A向I/0端口发出控制信号,启动内部定时器进行计时。此控制信号经功率放大后作为超声传感驱动电路的启动信号(1NIT),超声传感器产生的、遇到障碍物时返回的高频振荡信号经放大(为弥补传播过程中信号的衰减)使超声传感驱动电路的ECHO端产生高电平脉冲。ECHO电平变化经过门电路后引起TMS320LF2407A外部中断,在中断程序内获取定时器的计数值,根据式(1)计算距离;否则,认为传感器前方探测范围内无障碍物。

  因为超声传感器之间的安装位置相差22.5°,而超声传感器的波束角为30°,如果超声波同时发射,必然会有干扰。如果采用轮循方式,即一个接一个地发射超声波,虽然可以消除串扰回波的影响,但是16个超声传感器轮循一次周期较长,降低了采集频率。为了在不降低采集频率的同时消除超声的相互干扰,本系统将16个超声传感器分成A(1#、3#、5#、7#、9#、11#、13#、15#)和B(2#、4#、6#、8#、10#、12#、14#、16#)两组,因为同一组内的两个超声传感器安装位置相差45°,通过计算可以知道,这种情况下超声传感器同时工作不会产生干扰,因而每一组里的超声传感器同时工作,组与组之间则采用轮循方式工作。这样既可以达到很高的采集频率,同时也满足了系统的实时性要求。每组8个超声传感器的ECHO端分别连接到一门电路,然后通过门电路连接DSP的XINTl和XINT2端。XINTl/2引脚电平发生跳变时会产生外部中断,通过I/0口可以知道是哪个或哪几个传感器引起中断。

  TMS320LF2407A内部集成了CAN控制器,通过它可以方便地构成CAN控制局域网络。TMS320LF2407A的CANTX和CANRX接口与CAN收发器SN65HVD230相连,通过SN65HVD230连接CAN总线。SN65HVD230是TI公司生产的专门针对240X系列DSP内CAN控制器与物理总线

  的接口。它的供电电压和TMS320LF2407A一样,仅为3.3V。由于CAN总线的数据通信具有突出的可靠性、实时性和灵活性,最高传输速率可达到1Mbps。超声采集板的数据能够快速、可靠地传给中央控制器。

  3软件设计

  系统软件主要由两部分构成,即超声数据采集与处理模块、CAN总线通讯模块。

  3.1多路超声传感器数据采集模块

  超声传感器被分为两组,两组循环交替工作。软件设计上采用两个定时器依次工作,分别对两组传感器进行计时。选择定时器的周期比超声传感器探测最大距离所需的渡越时间稍长。在每个定时器周期开始时,触发一组超声传感器同时开始工作。在定时器周期内,每个回波返回,都会触发一次外部中断(XINTl或XINT2中断),在外部中断处理程序内,将超声波返回时间进行纪录,并将相应的超声传感器关闭。外部中断处理程序非常简短,本系统只用了不到20条指令,并且TMS320LF2407A指令执行速度很快,因而即使因进入外部中断处理程序而延误了对后来回波的处理,但这种延误的时间根据计算不大于0.5μs,由此引入的距离误差根据(1)式计算小于83.5×10-6m。可见误差非常小,可以忽略不计。当定时器中断时,对于距离大于最大超声探测范围的,没有相应的时间记录,给它们加上超出测距范围的标志。其它的时间数据都有记录,根据(1)式计算距离,然后启动下一个定时器工作,并触发下一组超声传感器。本文的超声传感器的最大探测距离为3.5m,因而超声波探测的最长时间为20.58ms。所以每个定时器的周期选为20.6ms。图2只画出了一组超声传感器的处理框图,另一组与此相同,不再赘述。

  

  点击开大图

  由于受环境温度、湿度的影响,超声传感器的测量值与实际值总有一些误差,表1列出了本超声测距系统测量值与对应的实际值。采用最小二乘法[8]对表1的数据进行拟合,结果为:

  y=O.9986x+0.2111

  式中,x为测量值,y为实际值。

  

  

  3.2基于CAN总线的数据通信

  超声数据采集板发送测距数据以中断的方式完成。TMS320LF2407A有专门的mailbox

  中断,用于响应发送/接收中断。每个超声传感器的测距值在DSP内用两个字节存储,而CAN总线传输标准要求每个数据帧最多只能传输8个字节的数据。本系统共有16个超声传感器,共有32个字节存储所有测距值。CAN总线传输所有测距值需要4个数据帧才能传送完。本系统的通讯过程为:中央控制器发送远程请求,超声数据采集板进入接收中断,在中断服务程序内,采用查询方式发送4帧数据,每帧数据包含4个超声传感器的测距值。本系统采用的波特率是500kbps。TMS320LF2407A用mailbox0接收中央控制器的远程请求帧,用mailbox2发送测距数据值。图3是超声数据采集板的发送数据中断服务程序框图。其中,TA2是对应mailbox2发送数据帧完成的标志位,RMP0是对应mailbox0接收数据帧的标志位。关于TMS320LF2407A的CAN模块的具体说明,参见文献[4],在此不作具体介绍。

  

  

  中央控制器接收子程序由VC++编写。当机器人需要新的测距值时,即调用此子程序。程序框图见图4。接收程序收到一帧数据后,判断数据是否有错,若有错,则向采集板发送命令,要求重发此帧数据;若正确,发送确认命令,要求采集板发送下一组数据,直到所有的超声测距数据都接收完。

 点击开大图 

  

  本文介绍的超声数据采集系统采用TMS320LF2407A为核心处理器,可以达到很高的采集速率和精度。通过CAN总线通讯,可以将测距值以很高的波特率可靠地发送给机器人中央控制器。此系统已经在自行设计的智能移动机器人CASIA-I上得到了实际应用。实验验证了硬

  件系统的可靠性和算法的有效性。

  参考文献

  1 Gtegory Dudek,Michael Jenkin. Computational Principles of Mobile Robotics.Cambridge University Press,2000

  2 D.Wilkes,G.Dudek,etc.Modeling Sonar Range Sensors.In C.Archibald and E.Petriu(eds.),Advances in Machine Vision:StrateSies and Applications,World Scientific Press,Singapore,1992:361~370

  3 李贻斌,刘明,周风余.移动机器人多超声传感器信息融合方法.系统工程与电子技术,1999;21(9):55~57

  4 TMS320LF/LC240XA DSP Controllers Reference Guide.Texas lnstruments lnc,2001

  5 高梅国,何佩琨.数字信号处理器DSPs的发展.电子技术 应用,2000;26(5)

  6 邬宽民.CAN总线原理和应用系统设计.北京:北京航空航天大学出版社,1996

  7 阳宪惠.现场总线技术及其应用.北京:清华大学出版社,1999

  8 张如州.微型计算机数据采集与处理.北京:北京工业学院出版社,1987


系统分类: 测试测量
用户分类: 信号检测
标签: DSP 超声波 数据采集
来源: 转贴
发表评论 阅读全文(105) | 回复(0)
总共 , 当前 /