一、 IRIG-B格式碼的格式與規(guī)范
圖1為B(DC)碼示意圖。它是每秒一幀的時(shí)間串碼,每個(gè)碼元寬度為10ms,一個(gè)時(shí)幀周期包括100個(gè)碼元,為脈寬編碼。碼元的“準(zhǔn)時(shí)”參考點(diǎn)是其脈沖前沿,時(shí)幀的參考標(biāo)志由一個(gè)位置識別標(biāo)志和相鄰的參考碼元組成,其寬度為8ms;每10個(gè)碼元有一個(gè)位置識別標(biāo)志:P1,P2,P3,…,P9,P0,它們均為8ms寬度;PR為幀參考點(diǎn);二進(jìn)制“1”和“0”的脈寬為5ms和2ms。
圖1 B(DC)碼示意圖
一個(gè)時(shí)間格式幀從幀參考標(biāo)志開始。因此連續(xù)兩個(gè)8ms寬脈沖表明秒的開始,如果從第二個(gè)8ms開始對碼元進(jìn)行編碼,分別為第0,1,2,…,99個(gè)碼元。在B碼時(shí)間格式中含有天、時(shí)、分、秒,時(shí)序?yàn)槊?分-時(shí)-天,所占信息位為秒7位、分7位、時(shí)6位、天10位,其位置在P0~P5之間。P6~P0包含其他控制信息。其中“秒”信息:第1,2,3,4,6,7,8碼元;“分”信息:第10,11,12,13,15,16,17碼元;“時(shí)”信息:第20,21,22,23,25,26,27碼元;第5,14,24碼元為索引標(biāo)志,寬度為2ms。時(shí)、分、秒均用BCD碼表示,低位在前,高位在后;個(gè)位在前,十位在后。
二、 B碼解碼接口卡設(shè)計(jì)方案
B碼解碼接口卡功能框圖如圖2所示。
圖2 “B碼解碼接口卡”功能框圖
對B碼進(jìn)行解碼就是將B碼中所包含的時(shí)、分、秒信息提取出來,轉(zhuǎn)換成主計(jì)算機(jī)能夠識別的形式,同時(shí)以秒的準(zhǔn)時(shí)點(diǎn)為參考,生成毫秒信息,一同送入主計(jì)算機(jī)中。解碼的關(guān)鍵在于檢測B碼中各個(gè)碼元的高電平寬度,首先要檢測連續(xù)兩個(gè)8ms寬的碼元出現(xiàn)的位置,然后再檢測隨后的30個(gè)碼元脈沖寬度,以確定時(shí)、分、秒。這里不檢測天的值,天可以直接在主計(jì)算機(jī)上設(shè)置。
圖3 B碼解碼接口卡電路
檢測高電平寬度:將B碼送入單片機(jī)89C51的INT0端,在INT0引腳由低電平變?yōu)楦唠娖綍r(shí),啟動單片機(jī)的內(nèi)部定時(shí)器T0,開始計(jì)數(shù);在INT0引腳由高變低時(shí)(即下降沿),觸發(fā)INT0中斷,讀取計(jì)數(shù)器的值,脈沖寬度等于計(jì)數(shù)值乘以計(jì)數(shù)周期。
形成毫秒值:將1kHz信號接到單片機(jī)的INT1端,每毫秒產(chǎn)生一次中斷。INT1中斷處理程序完成毫秒計(jì)數(shù),當(dāng)計(jì)到1000ms時(shí)完成秒加1。
1 電路設(shè)計(jì)方案1
方案1中,輸入輸出模塊由5片鎖存器構(gòu)成,接口控制簡單,如圖3所示。
來自時(shí)統(tǒng)設(shè)備的IRIG-B(DC)碼,為RS422接口信號,經(jīng)轉(zhuǎn)換后變?yōu)門TL電平,送至單片機(jī)89C51的INT0端。單片機(jī)初始化設(shè)置中,定時(shí)器T0工作在模式1,采用內(nèi)部時(shí)鐘。當(dāng)INT0引腳由低到高時(shí),定時(shí)器T0開始計(jì)時(shí);當(dāng)INT0引腳由高變低時(shí),觸發(fā)INT0中斷,執(zhí)行中斷服務(wù)程序,計(jì)算INT0引腳的高電平寬度。根據(jù)寬度對B碼各脈沖進(jìn)行解碼,形成秒、分、時(shí)的BCD碼,存入單片機(jī)的內(nèi)部RAM中。同時(shí),由頻率源產(chǎn)生的12MHz的信號經(jīng)分頻器后,輸出1kHz信號,送至單片機(jī)INT1引腳,使1ms產(chǎn)生一次INT1中斷,執(zhí)行INT1中斷處理程序,對毫秒進(jìn)行計(jì)數(shù)。毫秒計(jì)數(shù)到1000時(shí),進(jìn)行秒加1,毫秒初值在B碼的準(zhǔn)時(shí)點(diǎn)進(jìn)行賦值。
單片機(jī)的P0口經(jīng)鎖存器Ⅰ輸出地址線A0、A1,以控制兩個(gè)并行接口芯片8255的輸出端。單片機(jī)解碼和計(jì)數(shù)輸出的毫秒(2字節(jié))、秒(1字節(jié))、分(1字節(jié))、時(shí)(1字節(jié))BCD碼,在單片機(jī)的寫指令控制下,分五次送到兩片8255的不同端口。各端口經(jīng)鎖存器Ⅱ“鎖存器Ⅵ,將數(shù)據(jù)鎖存。單片機(jī)送出一組時(shí)間碼后,向主計(jì)算機(jī)發(fā)送中斷。主計(jì)算機(jī)響應(yīng)中斷后,依次讀取各鎖存器的值,即為當(dāng)前的時(shí)統(tǒng)時(shí)間。
圖4 FIFO實(shí)現(xiàn)輸入輸出控制原理圖
鎖存器Ⅱ”Ⅵ的數(shù)據(jù)輸出端直接掛在EISA(ISA)總線上,其片選信號CS1“CS5通過地址譯碼產(chǎn)生。
主計(jì)算機(jī)讀時(shí)應(yīng)能保證數(shù)據(jù)不處于變化中,因此,須將單片機(jī)的寫信號WR經(jīng)延時(shí)反向后,送到各鎖存器的LE端,使數(shù)據(jù)被鎖存。主計(jì)算機(jī)內(nèi)設(shè)一存儲單元,存放前一秒的數(shù)據(jù)。當(dāng)前讀取的數(shù)據(jù)如果比前一秒多1,則認(rèn)為時(shí)間正確。
為避免板內(nèi)程序死循環(huán),在該板上設(shè)計(jì)了看門狗復(fù)位電路。在單片機(jī)板內(nèi)程序中,每隔一定時(shí)間對P1.6口進(jìn)行置1。計(jì)時(shí)器的最高位輸出端接至單片機(jī)的Reset端。在正常情況下,P1.6口總能執(zhí)行置1操作,不會對單片機(jī)復(fù)位;但若程序中有死循環(huán),則P1.6口不被置1。當(dāng)計(jì)時(shí)器計(jì)到最高位輸出端為1時(shí),就會對單片機(jī)復(fù)位??撮T狗復(fù)位電路采用14位二進(jìn)制計(jì)數(shù)器4060,并具備上電復(fù)位和手動復(fù)位的功能,其振蕩周期由外接電阻、電容的大小決定。
2 電路設(shè)計(jì)方案2
方案2如圖4所示。解碼原理同方案1。該電路采用FIFO(IDT7201)加狀態(tài)寄存器和緩沖器,實(shí)現(xiàn)單片機(jī)與主計(jì)算機(jī)之間的數(shù)據(jù)傳輸,無需8255和鎖存器,器件較少,但相應(yīng)地會增加軟件控制的工作量。單片機(jī)解碼后,在每幀數(shù)據(jù)前加上標(biāo)志碼,輸出時(shí)、分、秒、毫秒信息,在寫信號的控制下,經(jīng)緩沖器送入FIFO中。主計(jì)算機(jī)查詢狀態(tài)寄存器,了解FIFO的狀態(tài)(空、滿、半滿)后,讀取FIFO中的數(shù)據(jù)。這里用FIFO的8位數(shù)據(jù)線。
IDT7201為先進(jìn)先出雙口存儲器。內(nèi)部RAM:512×9,設(shè)有空標(biāo)志(EF)、滿標(biāo)志(FF)和半滿標(biāo)志(HF),以避免數(shù)據(jù)溢出和空讀。讀、寫數(shù)據(jù)通過內(nèi)部循環(huán)指針,無須地址信息存取數(shù)據(jù)。
IDT7201復(fù)位時(shí),空標(biāo)志(EF)置0;滿標(biāo)志(FF)和半滿標(biāo)志(HF)置1;讀、寫指針設(shè)到初始位置。當(dāng)寫信號()由高變低時(shí),若滿標(biāo)志(FF)為1,則開始寫循環(huán),將數(shù)據(jù)寫入RAM中,不受任何讀操作的影響;當(dāng)RAM半滿時(shí),HF置0;當(dāng)寫指針比讀指針小1時(shí),表明緩沖區(qū)已滿,F(xiàn)F置0,禁止寫操作。當(dāng)讀信號()由低到高時(shí),如果EF為1,則開始讀循環(huán),數(shù)據(jù)以FIFO的方式讀出;當(dāng)所有數(shù)據(jù)均讀出,讀指針等于寫指針,緩沖區(qū)已空,EF置0,禁止讀操作。在緩沖區(qū)空或滿時(shí),、信號的外部變化,不影響FIFO。
四、 板內(nèi)程序設(shè)計(jì)流程
在單片機(jī)內(nèi)部RAM中,用可位尋址的21H、22H、23H、24H單元分別存放“秒”、“分”、“時(shí)”BCD碼和幀標(biāo)志等,如表1所列。
表1 時(shí)間碼存放表
INT0、INTI中斷處理程序如圖5和圖6所示。
圖5 INT0中斷處理程序流程圖
圖6 INT1中斷處理程序流程圖
責(zé)任編輯:gt
-
單片機(jī)
+關(guān)注
關(guān)注
6030文章
44491瀏覽量
632005 -
接口
+關(guān)注
關(guān)注
33文章
8450瀏覽量
150726 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7372瀏覽量
87635
發(fā)布評論請先 登錄
相關(guān)推薦
評論