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

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

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

  硬件電路設計
  圖1所示為發(fā)射,、接收工裝設計電路中主控部分原理圖。其中,,發(fā)射部分原理圖見圖2,接收部分原理圖見圖3,。需要注意的是,,發(fā)射和接收有一部分電路是共用的。這3個電路主要包括Atmel公司用于控制自動檢測的微處理器AT89S52,,用數碼管前2位顯示探頭00或01,,即PROBE A或PROBE B。數碼管后2位顯示1~96,,即1~96通道,。Altera公司的CPLD(EPM7064)用于產生周期20ms、脈寬330ns的2個方向相反,、有死區(qū)時間的脈沖,,用于發(fā)射通道的發(fā)射波形。工裝板用了18個8通道高壓開關HV20220,,其中6個用于控制雙1~24通道數字開關切換電路,,其余的12個用于探頭96個陣元選1的切換。發(fā)射和接收的控制回路基本一樣,,需要改變的是2個雙刀雙擲開關S1,、S2的撥動方向,接收工裝的發(fā)射波形是正弦波,,由函數發(fā)生器芯片MAX038產生,。本設計留有單片機AT89S52與上位機的通訊接口,可以通過上位機編程,,利用圖形界面控制本工裝,,只需軟件編程即可,。本文采用上電自動檢測和手工檢測這兩種模式,沒有使用上位機控制模式,。
圖1 發(fā)射,、接收工裝設計電路中主控部分原理圖
 
  發(fā)射和接收工裝都需要把發(fā)射波形或接收波形經過控制后,通過轉接線JP3~JP7及JP10和需要檢測的實際B超板相接,,來檢測B超板(圖1~圖3中未給出JP3~JP7及JP10連接線的插座),。
 
  發(fā)射工裝設計
  圖1中,U1(7400)與非門電路和12MHz晶振組成晶體振蕩器,,給EPM7064的全局時鐘端43腳提供時鐘信號,。EPM7064的21腳和25腳輸出周期20ms、脈寬330ns,、帶660ns死區(qū)時間的2個方向相反的脈沖信號,,經同向放大器U21(74F07)驅動后得到IPA和INB,加到雙刀雙擲開關S1上(在圖2中,,S1此時需撥到發(fā)射位置),。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,得到工裝發(fā)出的兩個帶死區(qū)時間,、方向相反并經MD1211放大后合成的波形,。再經過AFE9624板上的12個高壓開關HV20220切換,根據繼電器切換選擇探頭A或探頭B輸出,。在微處理器AT89S52的控制下,,給繼電器組開通或關斷信號SRELAY:SRELAY=0時,探頭A開,;SRELAY=1時,,探頭B開通。同時又發(fā)出SDATA2,SCLK2,SLD2,RESET2串行控制信號,,通過JP10轉接線去控制AFE9624板上高壓模擬開關HV20220,。經過AFE9624板放大控制的信號,再通過轉接線JP5,、JP6,、JP7送到工裝板上12個高壓開關U12~U20上(在圖3中,只給出了U18~U20),,最后通過雙刀雙擲開關S2(此時應該撥到發(fā)射位置),,接在J3端的示波器就能看到需要的合成波形。U12~U20在微處理器AT89S52的控制下,,給出SDATA3, SCLK3, SLD3,RESET3串行控制信號,達到96選1的目的,。
圖2 發(fā)射,、接收工裝設計電路中發(fā)射部分原理圖
 
  接收工裝設計
  圖3中,U25(MAX038)是函數發(fā)生器產生芯片,,其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(和發(fā)射時是同一組高壓開關),經過發(fā)射,、接收隔離電路得到接收信號(這里是我們工裝給出的正弦波),,再通過AFE9624板上的前放電路放大,通過工裝上轉接線JP3,、JP4送到圖2中發(fā)射工裝上的U3~U5的IP001~IP024端和U6~U8的IN001~IN024端,。同樣在微處理器AT89S52的控制下,高壓開關輪流導通,,此時高壓開關的另一端IP和IN得到正弦波,,經過雙刀雙擲開關S1(S1此時需撥到接收位置)。在J1接雙蹤示波器就能看到差分的2個正弦波,。三極管Q5發(fā)射極輸出TGC增益控制信號,,通過轉接線JP10送到AFE9624板上的前放電路的增益控制端,控制接收信號的幅度,。
 
圖3 發(fā)射,、接收工裝設計電路中接收部分原理圖
 
   軟件設計
  本工裝使用CPLD產生發(fā)射波形,使用微處理器AT89S52控制整個工裝板,,還給要測試的B超板(AFE9624)提供繼電器和高壓開關的切換指令,。

  發(fā)射波形的產生
 
  周期20ms、脈寬330ns,、帶660ns死區(qū)時間的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死區(qū)時間
 
  begin
 
  pwm_reg=0;
 
  pwm_reg1=1;
 
  end
 
  else if(count<21&apos;d16) //330ns負脈沖
 
  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個輕觸開關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個按一定規(guī)律排列的陣元在工作,。本工裝不僅獨立檢測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的測量上。
 
  高壓開關HV20220的驅動函數
 
  函數HV20220_1(uchar dd)的功能:打開CPLD波形發(fā)生器(工裝)1選24的高壓開關,。
 
  函數HV20220_2(uchar dd)的功能:打開主系統(tǒng)板(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;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ā)射、接收工裝檢測B超通道
 
  B超發(fā)射通道檢測
 
  連接工裝和B超,,檢測裝置連接完畢后,,檢查開關S1、S2位置在“發(fā)射”擋,,示波器接J3,。
 
  1. AFE9624工裝板顯示屏全亮,3秒種之后,,重新顯示0000,。
 
  2. 經過2秒鐘后,機器自動進入檢測狀態(tài),,顯示屏顯示0001,,緊接著示波器顯示正負脈沖波形,如圖4所示,,表示第1通道電路正常,。
圖4 示波器顯示正負脈沖波形
 
  3. 經過2秒鐘,再次自動進入檢測狀態(tài),,顯示屏顯示0002,,緊接著示波器顯示正負脈沖波形,表示第2通道電路正常,。
 
  4. 繼續(xù)等待檢測裝置自動重復上述過程,,直到顯示器顯示0096,緊接著示波器顯示正負脈沖波形,,表示第96通道電路正常,。至此,確認探頭1接口發(fā)射工作正常,。
 
  5. 斷電,,將“探頭轉接板”插接到“主控系統(tǒng)探頭板”的探頭2上。在檢測裝置連接完畢后上電,,點擊工裝板上觸發(fā)開關S3,,顯示屏顯示0100,然后重復上述2~4過程,,確認探頭2接口發(fā)射工作正常,,此過程顯示屏顯示數字是0101~0196,。
 
  B超接收通道檢測
 
  連接工裝和B超檢測裝置完畢后,開關S1,、S2位置在“接收”擋,,示波器接J1。按B超發(fā)射通道檢測中1~5的步驟進行,,此時示波器顯示的波形是正弦波,,如圖5所示。
圖5 示波器顯示檢測波形
 
  結束語
 
  本文介紹了B超板AFE9624進行全自動檢測的工裝設計,,經檢測,,達到了設計要求,可為其它廠家設計的B超檢測提供參考幫助,。按照本文思路,,根據實際的B超接口,只需設計好各種轉接板或轉接線,,就可以對B超板進行全面的檢測,。
此內容為AET網站原創(chuàng),未經授權禁止轉載,。