基于MCU的鎖相環(huán)鎖定時間測量系統(tǒng)設(shè)計(jì)
3.2 下位機(jī)設(shè)計(jì)
單片機(jī)中的下位機(jī)負(fù)責(zé)控制鎖相環(huán)并測量鎖定時間。流程圖如圖5所示。本文引用地址:http://cafeforensic.com/article/171566.htm
下位機(jī)也是基于一個前后臺系統(tǒng),在一個死循環(huán)內(nèi)等待各中斷響應(yīng)。在單片機(jī)向鎖相環(huán)發(fā)送完控制數(shù)據(jù)后開啟外部中斷,若有外部中斷響應(yīng)則在中斷服務(wù)程序中讀取定時器的值,即為鎖定時間,中斷結(jié)束后將定時器清零,以便再次測量;若當(dāng)定時器溢出時仍未收到外部中斷,表明鎖相環(huán)未能鎖定,則發(fā)送未鎖定信息給上位機(jī)。這里設(shè)置了3個中斷向量分別為外部中斷、定時器T0中斷、串口中斷。在默認(rèn)情況下它們的中斷優(yōu)先級依次從高到低,為防止不必要的中斷嵌套,在響應(yīng)其中一個中斷服務(wù)時應(yīng)將另兩個中斷關(guān)掉,中斷服務(wù)結(jié)束后再開啟。
AT89C51有兩路定時/計(jì)數(shù)器T0,T1。本系統(tǒng)中T1用來設(shè)置串口的波特率,串口有4種工作方式,本文使用方式1,即8位異步通信接口,一幀數(shù)據(jù)有10位,1位起始位,一位停止位。T0用來測量鎖定時間,T0定時器使用系統(tǒng)時鐘的12分頻作為時鐘源,將T0配置為16位定時器模式,所以環(huán)路鎖定時間可由下式確定,單位為μs。
T=(TH0×256+TL0)×Tosc×12 (1)
式中:TH0,TL0分別是在外部中斷服務(wù)程序中讀到的定時器T0的數(shù)據(jù)寄存器高8和低8位;Tosc是單片機(jī)外接晶振的振蕩周期,本文外接晶振為12 MHz,即為1/12μs,因此本系統(tǒng)可實(shí)現(xiàn)精度為1μs的時間測量。根據(jù)圖2所示的時序圖,單片機(jī)向鎖相環(huán)發(fā)送控制數(shù)據(jù)的子程序如下:
4 結(jié)語
本文采用MFC、串口、AT89C51所設(shè)計(jì)的測量系統(tǒng)能準(zhǔn)確測量鎖相環(huán)的鎖定時間,精度達(dá)到1μs;并且有很強(qiáng)的通用性,能兼容常見的各類鎖相環(huán)芯片。系統(tǒng)上位機(jī)的人機(jī)操作界友好,硬件電路結(jié)構(gòu)簡單。
接地電阻相關(guān)文章:接地電阻測試方法
評論