《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)及CPLD的B超檢測(cè)工裝設(shè)計(jì)
基于單片機(jī)及CPLD的B超檢測(cè)工裝設(shè)計(jì)
中電網(wǎng) 劉長(zhǎng)君 幸坤濤
摘要: 超聲在人體內(nèi)傳播,由于人體各種組織有聲學(xué)的特性差異,超聲波在兩種不同組織界面處會(huì)產(chǎn)生反射、折射、散射、繞射、衰減以及聲源與接收器相對(duì)運(yùn)動(dòng)產(chǎn)生多普勒頻移等物理特性。應(yīng)用不同類型的超聲診斷儀,采用各種掃查方法,接收這些反射、散射信號(hào),顯示各種組織及其病變的形態(tài),結(jié)合病理學(xué)、臨床醫(yī)學(xué),觀察、分析、總結(jié)不同的反射規(guī)律,從而對(duì)病變部位、性質(zhì)和功能障礙程度作出診斷。B超是超聲診斷儀中的一種顯示模式。
Abstract:
Key words :

       超聲在人體內(nèi)傳播,由于人體各種組織有聲學(xué)的特性差異,超聲波在兩種不同組織界面處會(huì)產(chǎn)生反射、折射、散射、繞射、衰減以及聲源與接收器相對(duì)運(yùn)動(dòng)產(chǎn)生多普勒頻移等物理特性。應(yīng)用不同類型的超聲診斷儀,采用各種掃查方法,接收這些反射、散射信號(hào),顯示各種組織及其病變的形態(tài),結(jié)合病理學(xué)、臨床醫(yī)學(xué),觀察、分析、總結(jié)不同的反射規(guī)律,從而對(duì)病變部位、性質(zhì)和功能障礙程度作出診斷。B超是超聲診斷儀中的一種顯示模式。

  B超工作過程為:當(dāng)探頭獲得激勵(lì)脈沖后發(fā)射超聲波(同時(shí)探頭受聚焦延遲電路控制,實(shí)現(xiàn)聲波的聲學(xué)聚焦),經(jīng)過一段時(shí)間延遲后再由探頭接收反射回的回聲信號(hào),經(jīng)過濾波、對(duì)數(shù)放大等信號(hào)處理。然后由DSC電路進(jìn)行數(shù)字變換形成數(shù)字信號(hào),在CPU控制下進(jìn)一步進(jìn)行圖像處理,再同圖像形成電路和測(cè)量電路一起合成視頻信號(hào)送給顯示器,形成我們所熟悉的B超圖像,也稱二維黑白超聲圖像。
 
  由于B超中為了增強(qiáng)圖像分辨率,通道都比較多,大多是16、24、48、64甚至更多通道。這些通道電子元器件完全一樣,要求各通道的一致性要好,在裝整機(jī)前,最好有測(cè)試手段和方法,對(duì)所有通道能進(jìn)行測(cè)試,以去除器件本身和焊接電路板中出現(xiàn)的問題,基于此目的,本人設(shè)計(jì)了B超檢測(cè)工裝。
 
  工裝設(shè)計(jì)需求
  本工裝設(shè)計(jì)要求為24通道、探頭為96陣元的B超板AFE9624進(jìn)行測(cè)試,AFE9624包含高壓發(fā)射電路、繼電器切換、高壓模擬開關(guān)切換、前放電路和VGA電路。
 
  發(fā)射工裝要求
  高壓發(fā)射電路、高壓模擬開關(guān)電路、繼電器切換電路測(cè)試,這幾者必須同時(shí)進(jìn)行檢測(cè),要設(shè)計(jì)發(fā)射工裝板、繼電器控制測(cè)試電路、高壓模擬控制電路、探頭接口高壓波形測(cè)量電路。具體包括:高壓發(fā)射電路工裝(簡(jiǎn)稱發(fā)射工裝),1~24通道的發(fā)射驅(qū)動(dòng)及切換電路;高壓模擬開關(guān)控制電路工裝(簡(jiǎn)稱開關(guān)工裝),控制任何一個(gè)通道的開通或者關(guān)斷,實(shí)際使用時(shí)只控制某一個(gè)通道的開通,其他的通道關(guān)斷,相應(yīng)地發(fā)射控制也只開通對(duì)應(yīng)的一路,其他的驅(qū)動(dòng)設(shè)置為無效;繼電器控制測(cè)試工裝(簡(jiǎn)稱繼電器工裝),提供繼電器組開通或關(guān)斷的控制信號(hào);探頭接口的波形測(cè)量電路工裝(簡(jiǎn)稱探頭波形工裝),包含96~1的切換電路,使得得到發(fā)射的陣元位置波形可以切換到示波器顯示測(cè)量出來。
 
  接收工裝要求
  VGA測(cè)試:VGA測(cè)試主要驗(yàn)證放大電路的功能和準(zhǔn)確性,需要提供給每一路VGA模擬輸入信號(hào),并通過示波器檢測(cè)。通過探頭接口可以將測(cè)試信號(hào)施加進(jìn)去,但是必須要對(duì)高壓模擬開關(guān)進(jìn)行相應(yīng)控制,使得每一路VGA獲得準(zhǔn)確的輸入。具體包括:波形發(fā)生器工裝,提供96路的模擬正弦波形,頻率3.5MHz,幅度P-P 在1V~1.2V,可實(shí)現(xiàn)負(fù)載短路保護(hù),允許有幾十歐姆的輸出阻抗;高壓模擬開關(guān)控制及VGA增益控制工裝(簡(jiǎn)稱開關(guān)增益工裝),提供AFE9624上高壓模擬開關(guān)電路的控制信號(hào),并提供VGA的增益控制信號(hào),增益控制信號(hào)可以是鋸齒波,幅度值最低應(yīng)大于0.2V,最大值應(yīng)不大于2.5V,鋸齒波周期為50µs。

  硬件電路設(shè)計(jì)
  圖1所示為發(fā)射、接收工裝設(shè)計(jì)電路中主控部分原理圖。其中,發(fā)射部分原理圖見圖2,接收部分原理圖見圖3。需要注意的是,發(fā)射和接收有一部分電路是共用的。這3個(gè)電路主要包括Atmel公司用于控制自動(dòng)檢測(cè)的微處理器AT89S52,用數(shù)碼管前2位顯示探頭00或01,即PROBE A或PROBE B。數(shù)碼管后2位顯示1~96,即1~96通道。Altera公司的CPLD(EPM7064)用于產(chǎn)生周期20ms、脈寬330ns的2個(gè)方向相反、有死區(qū)時(shí)間的脈沖,用于發(fā)射通道的發(fā)射波形。工裝板用了18個(gè)8通道高壓開關(guān)HV20220,其中6個(gè)用于控制雙1~24通道數(shù)字開關(guān)切換電路,其余的12個(gè)用于探頭96個(gè)陣元選1的切換。發(fā)射和接收的控制回路基本一樣,需要改變的是2個(gè)雙刀雙擲開關(guān)S1、S2的撥動(dòng)方向,接收工裝的發(fā)射波形是正弦波,由函數(shù)發(fā)生器芯片MAX038產(chǎn)生。本設(shè)計(jì)留有單片機(jī)AT89S52與上位機(jī)的通訊接口,可以通過上位機(jī)編程,利用圖形界面控制本工裝,只需軟件編程即可。本文采用上電自動(dòng)檢測(cè)和手工檢測(cè)這兩種模式,沒有使用上位機(jī)控制模式。
圖1 發(fā)射、接收工裝設(shè)計(jì)電路中主控部分原理圖
 
  發(fā)射和接收工裝都需要把發(fā)射波形或接收波形經(jīng)過控制后,通過轉(zhuǎn)接線JP3~JP7及JP10和需要檢測(cè)的實(shí)際B超板相接,來檢測(cè)B超板(圖1~圖3中未給出JP3~JP7及JP10連接線的插座)。
 
  發(fā)射工裝設(shè)計(jì)
  圖1中,U1(7400)與非門電路和12MHz晶振組成晶體振蕩器,給EPM7064的全局時(shí)鐘端43腳提供時(shí)鐘信號(hào)。EPM7064的21腳和25腳輸出周期20ms、脈寬330ns、帶660ns死區(qū)時(shí)間的2個(gè)方向相反的脈沖信號(hào),經(jīng)同向放大器U21(74F07)驅(qū)動(dòng)后得到IPA和INB,加到雙刀雙擲開關(guān)S1上(在圖2中,S1此時(shí)需撥到發(fā)射位置)。IPA經(jīng)S1加到U3、U4、U5這3個(gè)高壓開關(guān)HV20220上,3個(gè)高壓開關(guān)的所有輸出都接在了一起,而且這3個(gè)高壓開關(guān)接成菊花瓣形式,即下一個(gè)開關(guān)的數(shù)據(jù)輸入端DIN,接前一個(gè)開關(guān)的數(shù)據(jù)輸出端DOUT。在微處理器AT89S52的控制下,給出SDATA1, SCLK1, SLD1,RESET1切換電路的串行控制信號(hào),使3個(gè)高壓開關(guān)的輸入端依次和自己的輸出端閉合,如U3的7腳和8腳,此時(shí),IPA信號(hào)送給了IP001。但需注意的是,在同一時(shí)間,3個(gè)高壓開關(guān)的24個(gè)通道只有一個(gè)是可以閉合的,其余的都斷開。INB的過程和IPA的過程完全一樣,在IP001得到IPA信號(hào)的同時(shí),IN001也得到了INB信號(hào)。IP001~IP024依次得到IPA信號(hào),IN001~IN024則依次得到INB信號(hào)。IP001~IP024和IN001~IN024通過轉(zhuǎn)接頭JP3 、JP4 送到B超的AFE9624板上。在AFE9624板上經(jīng)過MD1211驅(qū)動(dòng),驅(qū)動(dòng)內(nèi)置場(chǎng)效應(yīng)管芯片C6320,得到工裝發(fā)出的兩個(gè)帶死區(qū)時(shí)間、方向相反并經(jīng)MD1211放大后合成的波形。再經(jīng)過AFE9624板上的12個(gè)高壓開關(guān)HV20220切換,根據(jù)繼電器切換選擇探頭A或探頭B輸出。在微處理器AT89S52的控制下,給繼電器組開通或關(guān)斷信號(hào)SRELAY:SRELAY=0時(shí),探頭A開;SRELAY=1時(shí),探頭B開通。同時(shí)又發(fā)出SDATA2,SCLK2,SLD2,RESET2串行控制信號(hào),通過JP10轉(zhuǎn)接線去控制AFE9624板上高壓模擬開關(guān)HV20220。經(jīng)過AFE9624板放大控制的信號(hào),再通過轉(zhuǎn)接線JP5、JP6、JP7送到工裝板上12個(gè)高壓開關(guān)U12~U20上(在圖3中,只給出了U18~U20),最后通過雙刀雙擲開關(guān)S2(此時(shí)應(yīng)該撥到發(fā)射位置),接在J3端的示波器就能看到需要的合成波形。U12~U20在微處理器AT89S52的控制下,給出SDATA3, SCLK3, SLD3,RESET3串行控制信號(hào),達(dá)到96選1的目的。
圖2 發(fā)射、接收工裝設(shè)計(jì)電路中發(fā)射部分原理圖
 
  接收工裝設(shè)計(jì)
  圖3中,U25(MAX038)是函數(shù)發(fā)生器產(chǎn)生芯片,其3腳A0、4腳A1是輸出波形選擇端,輸出波形的選擇由邏輯地址引腳A0和A1的組合來決定:A1A0=10或11時(shí),輸出正弦波;A1A0=00時(shí),輸出方波;A1A0=01時(shí)輸出三角波。波形切換可在0.3μs內(nèi)完成,但輸出波形有0.5μs的延遲時(shí)間。MAX038的19腳是波形輸出端,本設(shè)計(jì)輸出正弦波,頻率為3.5MHz,幅度P-P 在1V左右。此正弦波通過雙刀雙擲開關(guān)S2(此時(shí)應(yīng)該撥到接收位置),在微處理器AT89S52的控制下,給出SDATA3, SCLK3, SLD3,RESET3串行控制信號(hào),控制U12~U20,將此正弦波切換到(96選1)探頭上,即PA0~PA95分別得到此正弦波,通過轉(zhuǎn)接線JP5、JP6、JP7送到AFE9624板。根據(jù)轉(zhuǎn)接線JP5、JP6、JP7接到該探頭,和微處理器用繼電器控制其工作。正弦波經(jīng)過12個(gè)高壓開關(guān)HV20220(和發(fā)射時(shí)是同一組高壓開關(guān)),經(jīng)過發(fā)射、接收隔離電路得到接收信號(hào)(這里是我們工裝給出的正弦波),再通過AFE9624板上的前放電路放大,通過工裝上轉(zhuǎn)接線JP3、JP4送到圖2中發(fā)射工裝上的U3~U5的IP001~IP024端和U6~U8的IN001~IN024端。同樣在微處理器AT89S52的控制下,高壓開關(guān)輪流導(dǎo)通,此時(shí)高壓開關(guān)的另一端IP和IN得到正弦波,經(jīng)過雙刀雙擲開關(guān)S1(S1此時(shí)需撥到接收位置)。在J1接雙蹤示波器就能看到差分的2個(gè)正弦波。三極管Q5發(fā)射極輸出TGC增益控制信號(hào),通過轉(zhuǎn)接線JP10送到AFE9624板上的前放電路的增益控制端,控制接收信號(hào)的幅度。
 
圖3 發(fā)射、接收工裝設(shè)計(jì)電路中接收部分原理圖
 
   軟件設(shè)計(jì)
  本工裝使用CPLD產(chǎn)生發(fā)射波形,使用微處理器AT89S52控制整個(gè)工裝板,還給要測(cè)試的B超板(AFE9624)提供繼電器和高壓開關(guān)的切換指令。

  發(fā)射波形的產(chǎn)生
 
  周期20ms、脈寬330ns、帶660ns死區(qū)時(shí)間的2個(gè)方向相反的脈沖信號(hào),是用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死區(qū)時(shí)間
 
  begin
 
  pwm_reg=0;
 
  pwm_reg1=1;
 
  end
 
  else if(count<21&apos;d16) //330ns負(fù)脈沖
 
  begin
 
  pwm_reg=0;
 
  pwm_reg1=0;
 
  end
 
  else if(count==21&apos;d240000)//12M晶振,12000000/240000=50Hz,即20毫秒
 
  begin
 
  ount=21&apos;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控制代碼
 
  微處理器AT89S52外接3個(gè)輕觸開關(guān)S3、S4、S5,S3接外中斷0,用于繼電器控制,上電默認(rèn)選擇探頭1(PROBE A),按下S3,則選擇探頭2(PROBE B),再次按下無效(防止帶電換探頭)。再重新上電,才能選擇探頭1。S4接外中斷1,上電默認(rèn)24個(gè)通道、96陣元是每隔2s自動(dòng)檢測(cè)的,若需要人工檢測(cè),則按下S4,此時(shí),每按一次S4,則檢測(cè)下一通道和陣元。S5是復(fù)位開關(guān)。根據(jù)硬件連接,設(shè)置如下:
 
  uchar m="0";//用于96陣元的選擇
 
  uchar n="0";//默認(rèn)選擇探頭1
 
  uchar l="0";//用于24通道的選擇
 
  uchar k;
 
  sbit SDATA1= P1^0; //移位數(shù)據(jù)1
 
  sbit SCLK1= P1^1; //移位時(shí)鐘1
 
  sbit SLD1= P1^2; //移位鎖定
 
  sbit RESET1=P1^3;//復(fù)位1
 
  sbit SDATA3= P1^4; //移位數(shù)據(jù)3
 
  sbit SCLK3= P1^5; //移位時(shí)鐘3
 
  sbit SLD3= P1^6; //移位鎖定
 
  sbit RESET3=P1^7;//復(fù)位3
 
  sbit SDATA2= P0^0; //移位數(shù)據(jù)2
 
  sbit SCLK2= P0^1; //移位時(shí)鐘2
 
  sbit SLD2= P0^2; //移位鎖定
 
  sbit RESET2=P0^3;//復(fù)位2
 
  sbit SRELAY="P0"^4;//探頭繼電器選擇
 
  定時(shí)器自動(dòng)檢測(cè)子程序
 
  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個(gè)陣元是對(duì)應(yīng)24個(gè)通道的,在實(shí)際的B超工作過程中,一個(gè)通道工作的時(shí)候,同時(shí)會(huì)有4個(gè)按一定規(guī)律排列的陣元在工作。本工裝不僅獨(dú)立檢測(cè)24個(gè)通道的每個(gè)通道,同時(shí)還檢測(cè)96個(gè)陣元中的每一個(gè),因此,檢測(cè)96個(gè)陣元,24個(gè)通道運(yùn)行了4次。
 
  輕觸開關(guān)S4外中斷1子程序
 
  void serves_int1() interrupt 2 using 2//外中斷1
 
  {
 
  EA=0;
 
  TR2=0;//停止計(jì)數(shù)
 
  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;
 
  }
輕觸開關(guān)S3外外中斷0子程序
 
  void serves_int0() interrupt 0 using 0//外中斷0
 
  {
 
  EA=0;
 
  n=1;//顯示01
 
  SRELAY=1;//選擇探頭2
 
  DELAY1s( );
 
  EA=1;
 
  }
 
  工裝先檢測(cè)探頭1,探頭1的96個(gè)陣元都檢測(cè)通過后,斷電,將探頭轉(zhuǎn)接線放到探頭2的位置;上電,按下輕觸按鈕S3,此時(shí)數(shù)碼管前2位顯示01,是選擇探頭2的標(biāo)志。微處理器控制繼電器把所有通道都轉(zhuǎn)接到探頭2的測(cè)量上。
 
  高壓開關(guān)HV20220的驅(qū)動(dòng)函數(shù)
 
  函數(shù)HV20220_1(uchar dd)的功能:打開CPLD波形發(fā)生器(工裝)1選24的高壓開關(guān)。
 
  函數(shù)HV20220_2(uchar dd)的功能:打開主系統(tǒng)板(AFE9624)上的高壓開關(guān)。
 
  函數(shù)HV20220_3(uchar dd)功能:打開探頭上(工裝)來的96選1的高壓開關(guān)。
 
  以驅(qū)動(dòng)HV20220_1為例,其它2個(gè)和此類似。
 
  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;iSCLK1=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;
 
  }
 
  使用發(fā)射、接收工裝檢測(cè)B超通道
 
  B超發(fā)射通道檢測(cè)
 
  連接工裝和B超,檢測(cè)裝置連接完畢后,檢查開關(guān)S1、S2位置在“發(fā)射”擋,示波器接J3。
 
  1. AFE9624工裝板顯示屏全亮,3秒種之后,重新顯示0000。
 
  2. 經(jīng)過2秒鐘后,機(jī)器自動(dòng)進(jìn)入檢測(cè)狀態(tài),顯示屏顯示0001,緊接著示波器顯示正負(fù)脈沖波形,如圖4所示,表示第1通道電路正常。
圖4 示波器顯示正負(fù)脈沖波形
 
  3. 經(jīng)過2秒鐘,再次自動(dòng)進(jìn)入檢測(cè)狀態(tài),顯示屏顯示0002,緊接著示波器顯示正負(fù)脈沖波形,表示第2通道電路正常。
 
  4. 繼續(xù)等待檢測(cè)裝置自動(dòng)重復(fù)上述過程,直到顯示器顯示0096,緊接著示波器顯示正負(fù)脈沖波形,表示第96通道電路正常。至此,確認(rèn)探頭1接口發(fā)射工作正常。
 
  5. 斷電,將“探頭轉(zhuǎn)接板”插接到“主控系統(tǒng)探頭板”的探頭2上。在檢測(cè)裝置連接完畢后上電,點(diǎn)擊工裝板上觸發(fā)開關(guān)S3,顯示屏顯示0100,然后重復(fù)上述2~4過程,確認(rèn)探頭2接口發(fā)射工作正常,此過程顯示屏顯示數(shù)字是0101~0196。
 
  B超接收通道檢測(cè)
 
  連接工裝和B超檢測(cè)裝置完畢后,開關(guān)S1、S2位置在“接收”擋,示波器接J1。按B超發(fā)射通道檢測(cè)中1~5的步驟進(jìn)行,此時(shí)示波器顯示的波形是正弦波,如圖5所示。
圖5 示波器顯示檢測(cè)波形
 
  結(jié)束語
 
  本文介紹了B超板AFE9624進(jìn)行全自動(dòng)檢測(cè)的工裝設(shè)計(jì),經(jīng)檢測(cè),達(dá)到了設(shè)計(jì)要求,可為其它廠家設(shè)計(jì)的B超檢測(cè)提供參考幫助。按照本文思路,根據(jù)實(shí)際的B超接口,只需設(shè)計(jì)好各種轉(zhuǎn)接板或轉(zhuǎn)接線,就可以對(duì)B超板進(jìn)行全面的檢測(cè)。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。