基于单片机及CPLD的B超检测工装设计

发布者:MysticGlow最新更新时间:2011-11-26 关键字:单片机  CPLD  B超检测工装 手机看文章 扫描二维码
随时随地手机看文章

引言

  超声在人体内传播,由于人体各种组织有声学的特性差异,超声波在两种不同组织界面处会产生反射、折射、散射、绕射、衰减以及声源与接收器相对运动产生多普勒频移等物理特性。应用不同类型的超声诊断仪,采用各种扫查方法,接收这些反射、散射信号,显示各种组织及其病变的形态,结合病理学、临床医学,观察、分析、总结不同的反射规律,从而对病变部位、性质和功能障碍程度作出诊断。B超是超声诊断仪中的一种显示模式。

  B超工作过程为:当探头获得激励脉冲后发射超声波(同时探头受聚焦延迟电路控制,实现声波的声学聚焦),经过一段时间延迟后再由探头接收反射回的回声信号,经过滤波、对数放大等信号处理。然后由DSC电路进行数字变换形成数字信号,在CPU控制下进一步进行图像处理,再同图像形成电路和测量电路一起合成视频信号送给显示器,形成我们所熟悉的B超图像,也称二维黑白超声图像。

   由于B超中为了增强图像分辨率,通道都比较多,大多是16、24、48、64甚至更多通道。这些通道电子元器件完全一样,要求各通道的一致性要好,在装整机前,最好有测试手段和方法,对所有通道能进行测试,以去除器件本身和焊接电路板中出现的问题,基于此目的,本人设计了B超检测工装。

工装设计需求

   本工装设计要求为24通道、探头为96阵元的B超板AFE9624进行测试,AFE9624包含高压发射电路、继电器切换、高压模拟开关切换、前放电路和VGA电路。

发射工装要求

   高压发射电路、高压模拟开关电路、继电器切换电路测试,这几者必须同时进行检测,要设计发射工装板、继电器控制测试电路、高压模拟控制电路、探头接口高压波形测量电路。具体包括:高压发射电路工装(简称发射工装),1~24通道的发射驱动及切换电路;高压模拟开关控制电路工装(简称开关工装),控制任何一个通道的开通或者关断,实际使用时只控制某一个通道的开通,其他的通道关断,相应地发射控制也只开通对应的一路,其他的驱动设置为无效;继电器控制测试工装(简称继电器工装),提供继电器组开通或关断的控制信号;探头接口的波形测量电路工装(简称探头波形工装),包含96~1的切换电路,使得得到发射的阵元位置波形可以切换到示波器显示测量出来。

接收工装要求

    VGA测试:VGA测试主要验证放大电路的功能和准确性,需要提供给每一路VGA模拟输入信号,并通过示波器检测。通过探头接口可以将测试信号施加进去,但是必须要对高压模拟开关进行相应控制,使得每一路VGA获得准确的输入。具体包括:波形发生器工装,提供96路的模拟正弦波形,频率3.5MHz,幅度P-P 在1V~1.2V,可实现负载短路保护,允许有几十欧姆的输出阻抗;高压模拟开关控制及VGA增益控制工装(简称开关增益工装),提供AFE9624上高压模拟开关电路的控制信号,并提供VGA的增益控制信号,增益控制信号可以是锯齿波,幅度值最低应大于0.2V,最大值应不大于2.5V,锯齿波周期为50µs。

硬件电路设计

    图1所示为发射、接收工装设计电路中主控部分原理图。其中,发射部分原理图见图2,接收部分原理图见图3。需要注意的是,发射和接收有一部分电路是共用的。这3个电路主要包括用于控制自动检测的微处理器AT89S52,用数码管前2位显示探头00或01,即PROBE A或PROBE B。数码管后2位显示1~96,即1~96通道。Alter公司的CPLD(EPM7064)用于产生周期20ms、脉宽330ns的2个方向相反、有死区时间的脉冲,用于发射通道的发射波形。工装板用了18个8通道高压开关HV20220,其中6个用于控制双1~24通道数字开关切换电路,其余的12个用于探头96个阵元选1的切换。发射和接收的控制回路基本一样,需要改变的是2个双刀双掷开关S1、S2的拨动方向,接收工装的发射波形是正弦波,由函数发生器芯片MAX038产生。本设计留有单片机AT89S52与上位机的通讯接口,可以通过上位机编程,利用图形界面控制本工装,只需软件编程即可。本文采用上电自动检测和手工检测这两种模式,没有使用上位机控制模式。


图1 发射、接收工装设计电路中主控部分原理图

    发射和接收工装都需要把发射波形或接收波形经过控制后,通过转接线JP3~JP7及JP10和需要检测的实际B超板相接,来检测B超板(图1~图3中未给出JP3~JP7及JP10连接线的插座)。

发射工装设计

     图1中,U1(7400)与非门电路和12MHz晶振组成晶体振荡器,给EPM7064的全局时钟端43脚提供时钟信号。EPM7064的21脚和25脚输出周期20ms、脉宽330ns、带660ns死区时间的2个方向相反的脉冲信号,经同向放大器U21(74F07)驱动后得到IPA和INB,加到双刀双掷开关S1上(在图2中,S1此时需拨到发射位置)。IPA经S1加到U3、U4、U5这3个高压开关HV20220上,3个高压开关的所有输出都接在了一起,而且这3个高压开关接成菊花瓣形式,即下一个开关的数据输入端DIN,接前一个开关的数据输出端DOUT。在微处理器AT89S52的控制下,给出SDATA1, SCLK1, SLD1,RESET1切换电路的串行控制信号,使3个高压开关的输入端依次和自己的输出端闭合,如U3的7脚和8脚,此时,IPA信号送给了IP001。但需注意的是,在同一时间,3个高压开关的24个通道只有一个是可以闭合的,其余的都断开。INB的过程和IPA的过程完全一样,在IP001得到IPA信号的同时,IN001也得到了INB信号。IP001~IP024依次得到IPA信号,IN001~IN024则依次得到INB信号。IP001~IP024和IN001~IN024通过转接头JP3 、JP4 送到B超的AFE9624板上。在AFE9624板上经过MD1211驱动,驱动内置场效应管芯片C6320,得到工装发出的两个带死区时间、方向相反并经MD1211放大后合成的波形。再经过AFE9624板上的12个高压开关HV20220切换,根据继电器切换选择探头A或探头B输出。在微处理器AT89S52的控制下,给继电器组开通或关断信号SRELAY:SRELAY=0时,探头A开;SRELAY=1时,探头B开通。同时又发出SDATA2,SCLK2,SLD2,RESET2串行控制信号,通过JP10转接线去控制AFE9624板上高压模拟开关HV20220。经过AFE9624板放大控制的信号,再通过转接线JP5、JP6、JP7送到工装板上12个高压开关U12~U20上(在图3中,只给出了U18~U20),最后通过双刀双掷开关S2(此时应该拨到发射位置),接在J3端的示波器就能看到需要的合成波形。U12~U20在微处理器AT89S52的控制下,给出SDATA3, SCLK3, SLD3,RESET3串行控制信号,达到96选1的目的。


图2 发射、接收工装设计电路中发射部分原理图[page]

接收工装设计

    图3中,U25(MAX038)是函数发生器产生芯片,其3脚A0、4脚A1是输出波形选择端,输出波形的选择由逻辑地址引脚A0和A1的组合来决定:A1A0=10或11时,输出正弦波;A1A0=00时,输出方波;A1A0=01时输出三角波。波形切换可在0.3μs内完成,但输出波形有0.5μs的延迟时间。MAX038的19脚是波形输出端,本设计输出正弦波,频率为3.5MHz,幅度P-P 在1V左右。此正弦波通过双刀双掷开关S2(此时应该拨到接收位置),在微处理器AT89S52的控制下,给出SDATA3, SCLK3, SLD3,RESET3串行控制信号,控制U12~U20,将此正弦波切换到(96选1)探头上,即PA0~PA95分别得到此正弦波,通过转接线JP5、JP6、JP7送到AFE9624板。根据转接线JP5、JP6、JP7接到该探头,和微处理器用继电器控制其工作。正弦波经过12个高压开关HV20220(和发射时是同一组高压开关),经过发射、接收隔离电路得到接收信号(这里是我们工装给出的正弦波),再通过AFE9624板上的前放电路放大,通过工装上转接线JP3、JP4送到图2中发射工装上的U3~U5的IP001~IP024端和U6~U8的IN001~IN024端。同样在微处理器AT89S52的控制下,高压开关轮流导通,此时高压开关的另一端IP和IN得到正弦波,经过双刀双掷开关S1(S1此时需拨到接收位置)。在J1接双踪示波器就能看到差分的2个正弦波。三极管Q5发射极输出TGC增益控制信号,通过转接线JP10送到AFE9624板上的前放电路的增益控制端,控制接收信号的幅度。


图3 发射、接收工装设计电路中接收部分原理图

软件设计

     本工装使用CPLD产生发射波形,使用微处理器AT89S52控制整个工装板,还给要测试的B超板(AFE9624)提供继电器和高压开关的切换指令。

发射波形的产生

      周期20ms、脉宽330ns、带660ns死区时间的2个方向相反的脉冲信号,是用Verilog HDL语言编写,由EPM7064的21脚和25脚输出。源码如下:

module pwm(clock,pwm_out,pwm_out1);

input clock;

output pwm_out;

output pwm_out1;

reg [20:0] count;

reg pwm_reg;

reg pwm_reg1;

always @ (posedge clock)

begin

count=count+1;

if (count<4) //330ns脉宽

begin

pwm_reg=1;

pwm_reg1=1;

end

else if (count<12)//660ns死区时间

begin

pwm_reg=0;

pwm_reg1=1;

end

else if(count<21'd16) //330ns负脉冲

begin

pwm_reg=0;

pwm_reg1=0;

end

else if(count==21'd240000)//12M晶振,12000000/240000=50Hz,即20毫秒

begin

ount=21'd000000;

pwm_reg=1;

pwm_reg1=1;

end

else

begin

pwm_reg=0;

pwm_reg1=1;

end

end

assign pwm_out=pwm_reg;

assign pwm_out1=pwm_reg1;

endmodule

微处理器AT89S52控制代码

[page]

    微处理器AT89S52外接3个轻触开关S3、S4、S5,S3接外中断0,用于继电器控制,上电默认选择探头1(PROBE A),按下S3,则选择探头2(PROBE B),再次按下无效(防止带电换探头)。再重新上电,才能选择探头1。S4接外中断1,上电默认24个通道、96阵元是每隔2s自动检测的,若需要人工检测,则按下S4,此时,每按一次S4,则检测下一通道和阵元。S5是复位开关。根据硬件连接,设置如下:

uchar m=0;//用于96阵元的选择

uchar n=0;//默认选择探头1

uchar l=0;//用于24通道的选择

uchar k;

sbit SDATA1= P1^0; //移位数据1

sbit SCLK1= P1^1; //移位时钟1

sbit SLD1= P1^2; //移位锁定

sbit RESET1=P1^3;//复位1

sbit SDATA3= P1^4; //移位数据3

sbit SCLK3= P1^5; //移位时钟3

sbit SLD3= P1^6; //移位锁定

sbit RESET3=P1^7;//复位3

sbit SDATA2= P0^0; //移位数据2

sbit SCLK2= P0^1; //移位时钟2

sbit SLD2= P0^2; //移位锁定

sbit RESET2=P0^3;//复位2

sbit SRELAY=P0^4;//探头继电器选择

定时器自动检测子程序

void serves_timer2() interrupt 5 using 0

{

EA=0;

TF2=0;

k=k+1;

if(k==40)//2秒

{ k=0;

m=m+1;

l=l+1;

if( m>96) m=1;

if (l>24) l=1;

DELAY1s( );

for (j=0;j<8;j++)

{

HV20220_1(l) ;

HV20220_2( m) ;

HV20220_3(m);

}

}

else{}

EA=1;

}

    在本程序中,if( m>96) m=1;if (l>24) l=1; 即:96个阵元是对应24个通道的,在实际的B超工作过程中,一个通道工作的时候,同时会有4个按一定规律排列的阵元在工作。本工装不仅独立检测24个通道的每个通道,同时还检测96个阵元中的每一个,因此,检测96个阵元,24个通道运行了4次。

轻触开关S4外中断1子程序

void serves_int1() interrupt 2 using 2//外中断1

{

EA=0;

TR2=0;//停止计数

m=m+1;

l=l+1;

if( m>96) m=1;

if (l>24) l=1;

DELAY1s( );

for (j=0;j<8;j++)

{

HV20220_1(l) ;

HV20220_2( m) ;

HV20220_3(m);

}

EA=1;

}

轻触开关S3外外中断0子程序

void serves_int0() interrupt 0 using 0//外中断0

{

EA=0;

n=1;//显示01

SRELAY=1;//选择探头2

DELAY1s( );

EA=1;

}

工装先检测探头1,探头1的96个阵元都检测通过后,断电,将探头转接线放到探头2的位置;上电,按下轻触按钮S3,此时数码管前2位显示01,是选择探头2的标志。微处理器控制继电器把所有通道都转接到探头2的测量上。

[page]

高压开关HV20220的驱动函数

函数HV20220_1(uchar dd)的功能:打开CPLD波形发生器(工装)1选24的高压开关。

函数HV20220_2(uchar dd)的功能:打开主系统板(AFE9624)上的高压开关。

函数HV20220_3(uchar dd)功能:打开探头上(工装)来的96选1的高压开关。

以驱动HV20220_1为例,其它2个和此类似。

void HV20220_1(uchar dd)

{

uchar i;

SLD1=1;

for (i=0;i<96;i++) {

SCLK1=0;

data10=0;

SDATA1 = data10;

SCLK1=1;

_Nop( );

_Nop( );

}

for (i=0;i
SCLK1=0;

if (i==0) data10=1;

else data10=0;

SDATA1 = data10;

SCLK1=1;

_Nop( );

_Nop( );

}

RESET1=0;

_Nop( );

_Nop( );

RESET1=1;

_Nop( );

_Nop( );

_Nop( );

_Nop( );

RESET1=0;

_Nop( );

_Nop( );

SLD1=0;

_Nop( );

_Nop( );

_Nop( );

_Nop( );

SLD1=1;

}

使用发射、接收工装检测B超通道

B超发射通道检测

连接工装和B超,检测装置连接完毕后,检查开关S1、S2位置在“发射”挡,示波器接J3。

1. AFE9624工装板显示屏全亮,3秒种之后,重新显示0000。

2. 经过2秒钟后,机器自动进入检测状态,显示屏显示0001,紧接着示波器显示正负脉冲波形,如图4所示,表示第1通道电路正常。

图4 示波器显示正负脉冲波形

3. 经过2秒钟,再次自动进入检测状态,显示屏显示0002,紧接着示波器显示正负脉冲波形,表示第2通道电路正常。

4. 继续等待检测装置自动重复上述过程,直到显示器显示0096,紧接着示波器显示正负脉冲波形,表示第96通道电路正常。至此,确认探头1接口发射工作正常。

5. 断电,将“探头转接板”插接到“主控系统探头板”的探头2上。在检测装置连接完毕后上电,点击工装板上触发开关S3,显示屏显示0100,然后重复上述2~4过程,确认探头2接口发射工作正常,此过程显示屏显示数字是0101~0196。

B超接收通道检测

连接工装和B超检测装置完毕后,开关S1、S2位置在“接收”挡,示波器接J1。按B超发射通道检测中1~5的步骤进行,此时示波器显示的波形是正弦波,如图5所示。


图5 示波器显示检测波形

结束语

本文介绍了B超板AFE9624进行全自动检测的工装设计,经检测,达到了设计要求,可为其它厂家设计的B超检测提供参考帮助。按照本文思路,根据实际的B超接口,只需设计好各种转接板或转接线,就可以对B超板进行全面的检测。

 

 

关键字:单片机  CPLD  B超检测工装 引用地址:基于单片机及CPLD的B超检测工装设计

上一篇:基于单片机控制的ADF4106锁相频率合成器设计
下一篇:基于利用单片机构成高精度PWM式12位D/A方法

推荐阅读最新更新时间:2024-03-16 12:47

基于51单片机数控恒流源
电路原理图如下: 该项设计的主要目的是设计一种数控稳压电源。它利用单片机STC89C51作为主控芯片,控制数字/模拟转换器(TLC5615)的输出电压的大小,经过运算放大器LM358与IRF9Z24N构成负反馈系统,从而输出恒定电压。最后通过电位器分压将输出信号反馈到运算放大器LM358上,使输出准确度可以调节。此设计通过键盘电路与单片机连接,读入控制数据,利用软件进行判断,从而起到控制电源输出的作用。通过LCD1602(或LED数码管)显示数控电源的输出电压,实现简单的人机对话。该项设计具有设计简单,控制灵活,调节方便,携带方便、成本低等优势,具有较强的实用性。 下图是为了了解整个电路如何工作的,把整个电路拆开。 二
[单片机]
基于51<font color='red'>单片机</font>数控恒流源
可编程逻辑器件的设计过程
可编程逻辑器件的设计流程如图10-2所示,它主要包括设计准备、设计输入、设计处理和器件编程四个步骤,同时包括相应的功能仿真、时序仿真和器件测试三个设计验证过程。 1.设计准备 采用有效的设计方案是PLD设计成功的关键,因此在设计输入之前首先要考虑两个问题:一是选择系统方案,进行抽象的逻辑设计;二是选择合适的器件,满足设计的要求。 对于低密度PLD,一般可以进行书面逻辑设计,将电路的逻辑功能直接用逻辑方程、真值表状态图或原理图等方式进行描述,然后根据整个电路输入、输出端数以及所需要的资源(门、触发器数目)选择能满足设计要求的器件系列和型号。器件的选择除了应考虑器件的引脚数、资源外,还要考虑其速度、功耗以及结构特点。
[单片机]
<font color='red'>可编程逻辑器件</font>的设计过程
51单片机学习:点亮第一个LED
实验名称:点亮第一个LED 接线说明: 实验现象:下载程序后“LED模块”的D1指示灯点亮 注意事项: ***************************************************************************************/ #include reg52.h sbit LED1=P2^0; //将P2.0管脚定义为LED1 /******************************************************************************* * 函 数 名 : main * 函数功能 : 主函数 * 输 入 : 无 * 输 出 :
[单片机]
基于STM32F103单片机的汽车远程防盗系统方案
  近几年,汽车偷盗案件越来越多,给人们带来巨大的经济损失。市场上随之出现了各种各样的汽车防盗器,本汽车防盗系统采用ST公司生产的STM32F103R6T6(以下简称STM32F103)单片机作为控制器,功能强大,实时性好。    1 系统结构与功能   汽车远程防盗系统是基于现代无线通信技术设计的,可以不受距离的约束,将汽车的状态信息直接发送到车主手机,进行一对一防盗报警,汽车远程防盗系统的结构如图1所示。      汽车防盗系统的信息采集模块包括人体感应传感器、振动传感器等,用来采集汽车警情信息。传感器将采集到警情信息,传送给微处理器处理,微处理器开始执行报警程序。首先,发送短信到车主手机;然后,报警器根据不同的警情进
[单片机]
基于STM32F103<font color='red'>单片机</font>的汽车远程防盗系统方案
MCU厂抢进中高阶触控家电商机 应用百花争鸣
MCU厂过去锁定小家电、消费性电子、电脑周边,不过在各厂抢进,加上市场转趋多元化,MCU厂纷纷抢进中高阶触控家电、行动电源、无线充电乃至指纹辨识等商机,使得MCU的应用更趋百花争鸣。 微控制器MCU可将CPU、RAM、ROM、I/O等周边相关记忆与运算功能整合在一起,可谓为一微型电脑,并衍伸出许多运用,使产品智慧化,又依照处理能力不同,可分为8、16、32位元等。 现行MCU厂应用以各家大厂来说,各据鳌头,盛群以家电应用为主,主打整合型(ASSP)MCU产品应用以电磁炉为大宗,总经理高国栋表示,家电带面板产品具有高附加价值,未来包括微波烤箱、微波炉等都带有触控显示,而家电厂商也往那个趋势走,未来家电产品将出现革命性产品转变
[单片机]
进一步扩大微控制器生态圈 ST发布免费集成开发环境
STM32CubeIDE免费供用户使用,高度集成提供众多高端功能 强大的集成功能另STM32CubeMX在同类型产品中卓尔不群 ST仍会继续支持第三方合作伙伴工具,为STM32开发人员提供选择的灵活性 横跨多重电子应用领域的全球领先的半导体供应商意法半导体继续发力,提升功能丰富且高能效的STM32系列微控制器的易用性,在STM32Cube软件生态系统中增加一个免费的多功能STM32开发工具:STM32CubeIDE。 为了和商用集成开发环境(IDE)工具一样好用,STM32CubeIDE充分发挥了意法半导体 2017年收购的嵌入式开发工具厂商Atollic®的技术优势。这套IDE软件采用行业标准的开放式许可条款,
[嵌入式]
进一步扩大<font color='red'>微控制器</font>生态圈 ST发布免费集成开发环境
“缺芯”持久战下,国产MCU突围进行时
转眼间,2022年进程将近过半。相较于去年,今年全球芯片短缺的情况虽然在一定程度上得到了缓解,但总体仍然处于紧缺状态,距离全面缓解还有一段时间。 特别是因疫情、地缘冲突等的持续,以及终端市场新能源汽车需求暴增,业内普遍认为,缺芯在今明年甚至更长远的未来,还会继续存在。因此,如何实现更稳定的芯片供应和更长远的供应链安全,依然是整车厂及Tier1亟待思考的问题。 多重因素影响下,缺芯恐成持久战 图片来源:沈晖新浪微博截图 5月31日,威马汽车 CEO 沈晖在个人微博上谈及了对近期网传博世等汽车零部件酝酿涨价的看法,他表示,博世还有其他Tier1涨价不是传闻,且这次涨价的“主角”依然是芯片。“我们做了简单估算,智能
[汽车电子]
“缺芯”持久战下,国产<font color='red'>MCU</font>突围进行时
一文详解80C51单片机的指令系统
指令是指示计算机执行某种操作的命令,计算机能识别执行的只能是二进制代码,以二进制代码来描述指令功能的语言,称为机器语言。 由于机器语言不便于人们识别,记忆,理解和使用,因此便对每条机器语言指令用助记符号来形象表示,这就便形成了汇编语言。 一条指令是机器语言的一个语句,包括操作码字段和操作数字段。一台计算机所具有的全部指令的集合,称为这台计算机的指令系统。 不同的微处理器,其指令系统一般是不同的。 80C51单片机指令系统共有111条指令,具体特点如下: 1)执行时间短,单机器周期指令(64条),双机器周期指令(45条),而四机器周期指令只有2条; 2)指令编码字节少,单字节指令(49条),双字节指令(45条)和最长的三字节
[单片机]
一文详解80C51<font color='red'>单片机</font>的指令系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved