新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)及CPLD的B超檢測工裝設(shè)計(jì)

基于單片機(jī)及CPLD的B超檢測工裝設(shè)計(jì)

作者: 時(shí)間:2010-05-18 來源:網(wǎng)絡(luò) 收藏

接收

圖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腳是波形輸出端,本輸出正弦波,頻率為3.5MHz,幅度P-P 在1V左右。此正弦波通過雙刀雙擲開關(guān)S2(此時(shí)應(yīng)該撥到接收位置),在微處理器AT89S52的控制下,給出SDATA3, SCLK3, SLD3,RESET3串行控制信號,控制U12~U20,將此正弦波切換到(96選1)探頭上,即PA0~PA95分別得到此正弦波,通過轉(zhuǎn)接線JP5、JP6、JP7送到AFE9624板。根據(jù)轉(zhuǎn)接線JP5、JP6、JP7接到該探頭,和微處理器用繼電器控制其工作。正弦波經(jīng)過12個高壓開關(guān)HV20220(和發(fā)射時(shí)是同一組高壓開關(guān)),經(jīng)過發(fā)射、接收隔離電路得到接收信號(這里是我們給出的正弦波),再通過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個正弦波。三極管Q5發(fā)射極輸出TGC增益控制信號,通過轉(zhuǎn)接線JP10送到AFE9624板上的前放電路的增益控制端,控制接收信號的幅度。


圖3 發(fā)射、接收工裝電路中接收部分原理圖

軟件設(shè)計(jì)

本工裝使用產(chǎn)生發(fā)射波形,使用微處理器AT89S52控制整個工裝板,還給要測試的B超板(AFE9624)提供繼電器和高壓開關(guān)的切換指令。

發(fā)射波形的產(chǎn)生

周期20ms、脈寬330ns、帶660ns死區(qū)時(shí)間的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 (count4) //330ns脈寬

begin

pwm_reg=1;

pwm_reg1=1;

end

else if (count12)//660ns死區(qū)時(shí)間

begin

pwm_reg=0;

pwm_reg1=1;

end

else if(count21apos;d16) //330ns負(fù)脈沖

begin

pwm_reg=0;

pwm_reg1=0;

end

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

begin

ount=21apos;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控制代碼



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉