超高速攝影機(jī)電控系統(tǒng)設(shè)計(jì)
在XC95288內(nèi)部電路中,F(xiàn)0、F1輸入端口分別輸入標(biāo)準(zhǔn)脈沖和待測(cè)的速度脈沖信號(hào)(經(jīng)過(guò)整形放大以后的信號(hào)),計(jì)數(shù)器0和1分別對(duì)標(biāo)準(zhǔn)脈沖F0和待測(cè)信號(hào)F1進(jìn)行計(jì)數(shù),鎖存器0和1分別對(duì)計(jì)數(shù)器0和1的計(jì)數(shù)值進(jìn)行保存,16位的輸入端口NP作為預(yù)置閘門時(shí)間的設(shè)定端口,設(shè)其輸入值為NP,則預(yù)置閘門時(shí)間T0為T0=NP/f0。
本文引用地址:http://butianyuan.cn/article/164397.htm在電路剛開(kāi)始工作時(shí),由清零信號(hào)CLR對(duì)所有的計(jì)數(shù)器、鎖存器和D觸發(fā)器清零。這樣,計(jì)數(shù)器0的計(jì)數(shù)值NN0的初值為0,故此時(shí)NP>NN0,比較器輸出為1,但此時(shí)DFF0觸發(fā)器的輸出F2仍保持此初值0,由于F2作用在計(jì)數(shù)器0和1的使能端,此時(shí)計(jì)數(shù)器沒(méi)有開(kāi)始計(jì)數(shù),直到信號(hào)F1的上升沿到來(lái)后,DFF0觸發(fā)器的輸出F2才翻轉(zhuǎn)為1,允許兩計(jì)數(shù)器計(jì)數(shù)。隨著計(jì)數(shù)值的增加,當(dāng)NN0>NP時(shí),比較器輸出等于0,不過(guò)此時(shí)兩個(gè)計(jì)數(shù)器仍在計(jì)數(shù),直到信號(hào)F1的又一上升沿到來(lái)后,F(xiàn)2=0,兩個(gè)計(jì)數(shù)器都停止計(jì)數(shù),利用F2的下降沿(F3的上升沿)將此時(shí)的計(jì)數(shù)值NN0和NN1分別通過(guò)鎖存器0和1鎖存起來(lái)。然后利用此時(shí)F2=0,經(jīng)D1觸發(fā)器延時(shí)到信號(hào)F0的上升沿到來(lái)后,對(duì)計(jì)數(shù)器0、1清零。延時(shí)清零的原因是為了避免鎖存器鎖存數(shù)據(jù)與計(jì)數(shù)器清零同時(shí)進(jìn)行,從而使存儲(chǔ)數(shù)據(jù)出錯(cuò)。但由于延時(shí)清零,使實(shí)際門控信號(hào)的上升沿比速度信號(hào)F0的上升沿滯后,滯后時(shí)間為信號(hào)F0的一個(gè)周期。為使檢測(cè)結(jié)果準(zhǔn)確,將計(jì)數(shù)器0的計(jì)數(shù)值加1即可。F2實(shí)質(zhì)上就是實(shí)際門控信號(hào)。
在設(shè)計(jì)電路時(shí),需要考慮計(jì)數(shù)器溢出的情況。例如,在電機(jī)轉(zhuǎn)速很慢的情況下,兩個(gè)速度脈沖信號(hào)上升沿間的時(shí)間間隔較長(zhǎng),這使實(shí)際閘門時(shí)間變得很長(zhǎng),在該段時(shí)間內(nèi),計(jì)數(shù)器0可能會(huì)出現(xiàn)溢出情況。在該情況下,可用3種方法來(lái)解決計(jì)數(shù):一是增加計(jì)數(shù)器0的位數(shù);二是通過(guò)增加計(jì)數(shù)器來(lái)對(duì)溢出次數(shù)另行讀數(shù);三是一旦計(jì)數(shù)器溢出,便認(rèn)為此時(shí)電機(jī)的轉(zhuǎn)速約等于0。這里采用的方法是:在電機(jī)轉(zhuǎn)速很慢的時(shí)候延時(shí)2秒種后再進(jìn)行測(cè)量,而且計(jì)數(shù)器都采用16位寬度。
單片機(jī)ATMega16L的功能設(shè)計(jì)
ATMega16L單片機(jī)是ATMEL公司生產(chǎn)的高性能單片機(jī),采用精簡(jiǎn)指令集,具有預(yù)取指令功能,指令可以在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行,處理速度快。在高速攝影電控系統(tǒng)中,ATMega16L單片機(jī)負(fù)責(zé)讀取XC95288的電機(jī)測(cè)速值,處理控制內(nèi)外信息的輸入輸出接口,并與上位控制計(jì)算機(jī)通過(guò)RS-485接口進(jìn)行信息交互。
在軟件編程時(shí),利用ATMega16L單片機(jī)定時(shí)/計(jì)數(shù)器與系統(tǒng)時(shí)鐘的預(yù)定比例分頻器,可以獲得很高分辨率的時(shí)間間隔控制精度,例如,單片機(jī)系統(tǒng)采用8MHz的晶振工作,采用8分頻,則時(shí)間控制的間隔可以達(dá)到微秒,完全能夠?qū)崿F(xiàn)超高速攝影中要求的0.1微秒的控制精度。這里給出一個(gè)ATMega16L單片機(jī)讀取XC95288的電機(jī)測(cè)速值的C語(yǔ)言子程序。
void FX_calc(void)
{
//計(jì)算Nb數(shù)值
F_SEL_NB();
NB = ReadFromCPLD()+1;
NB_temp=(uint64_t)NB;
//計(jì)算Nx數(shù)值
F_SEL_NX();
NX = ReadFromCPLD();
NX_temp=(uint64_t)NX;
if(NB_temp)
{
//計(jì)算Fx數(shù)值
/*32位時(shí)x不能超過(guò)0xd6=214.75=4,294,967,295/20,000,000
一定要考慮到溢出問(wèn)題:FF_FF_FF_FF=4,294,967,275, FB=20,000,000
*/
FX_temp=( (uint64_t) (FB* NX_temp)/NB_temp ); //20000000*x/2000
FX = (uint32_t) FX_temp;
}
usart_send_dword(FX);
_delay_ms(10);
}
結(jié)束語(yǔ)
根據(jù)以上電路設(shè)計(jì)的轉(zhuǎn)鏡式超高速攝影機(jī)電控系統(tǒng),已在某系統(tǒng)超高速攝影機(jī)中得到應(yīng)用,系統(tǒng)工作良好。
參考文獻(xiàn):
[1] 王杰等.Xinlinx FPGA/CPLD設(shè)計(jì)手冊(cè)[M].北京:人民郵電出版社,2011:242
[2] 劉建清等.輕松玩轉(zhuǎn)AVR單片機(jī)C語(yǔ)言[M].北京:北京航空航天大學(xué)出版社,2011:90
評(píng)論