PIC WWVB時(shí)鐘設(shè)計(jì)
有很多DIY WWVB在網(wǎng)絡(luò)上的時(shí)鐘設(shè)計(jì)的版本。商業(yè)的“原子”的鐘表價(jià)格便宜和廣泛使用,但我想試試我的手,在設(shè)計(jì)一個(gè)獲得接收到WWVB的洞察和了解一點(diǎn)點(diǎn)編程PIC單片機(jī)。我的版本是不是最簡(jiǎn)單的,但它工作得很好,我認(rèn)為它提供了一些獨(dú)特的功能。
WWVB時(shí)鐘功能
接收時(shí)間播出WWVB,堡壘Collins,COWWVB時(shí)間自動(dòng)同步與內(nèi)部時(shí)間WWVB信號(hào)丟失時(shí)保持本地時(shí)間這個(gè)版本是太平洋標(biāo)準(zhǔn)時(shí)間,并自動(dòng)檢測(cè)/糾正Daylignt儲(chǔ)蓄時(shí)間6位數(shù)字顯示小時(shí),分鐘,秒使用1“七段LED顯示W(wǎng)WVB同步指示器時(shí)間顯示在12小時(shí)格式的PIC 16F628單片機(jī)用C語(yǔ)言編寫(xiě)的軟件所有的工具(原理圖編輯器,C編譯器,PCB布局軟件,PIC的程序員都是免費(fèi)的,在網(wǎng)絡(luò)上可供下載。
WWVB信號(hào)播出時(shí)間為60 kHz載波AM調(diào)制代碼框架,是每分鐘更新一次。數(shù)據(jù)傳輸速率是一個(gè)比特每秒。隨著時(shí)間碼信息,還包含數(shù)據(jù)幀同步位,日歷數(shù)據(jù),UT1之校正,閏年,閏秒的數(shù)據(jù) 。這里介紹的時(shí)鐘設(shè)計(jì)只解碼數(shù)據(jù)的時(shí)間和夏令時(shí)的校正數(shù)據(jù) 。該軟件可以很容易地被修改,包括其他信息位解碼,如果需要的話。的低頻率WWVB的信號(hào)強(qiáng)度弱,可以接收問(wèn)題 。信號(hào)采集時(shí)間是可變的,位置和大氣條件而定 。接待處是通常情況下,最好在晚上八時(shí)至晚上-上午04時(shí)。要使用的時(shí)鐘,只要接通電源,并等待接收WWVB信號(hào) 。時(shí)鐘接收到一個(gè)完整的無(wú)差錯(cuò)的數(shù)據(jù)幀時(shí),它會(huì)自動(dòng)復(fù)位,以顯示正確的時(shí)間顯示 。在最初的時(shí)間校正,時(shí)鐘將保持一段時(shí)間,即使失去WWVB接待。
硬件描述
如在原理圖所示,時(shí)鐘的核心是一個(gè)PIC 16F628微控制器運(yùn)行在4 MHz 。解碼的實(shí)時(shí)數(shù)據(jù)是按順序輸出至七段解碼器/驅(qū)動(dòng)程序上的4位數(shù)據(jù)總線的微控制器(RA0 - RA3)。數(shù)據(jù)輸出順序秒,分,秒,分鐘,小時(shí)和10小時(shí)10秒10。微控制器輸出(RB1,RB2,RB3)路由10微秒stroble的脈沖RB4的出每個(gè)七段解碼器/驅(qū)動(dòng)程序,在適當(dāng)?shù)臅r(shí)間鎖存數(shù)據(jù)總線值。秒和10秒顯示值每秒更新一次。分鐘,10分鐘,小時(shí)和10小時(shí)每分鐘更新一次。顯示由1“橘紅色的LED七段顯示器上顯示的小數(shù)點(diǎn)是用來(lái)形成冒號(hào)分開(kāi)秒,分鐘,小時(shí),10秒和10分鐘顯示安裝倒掛形成上部結(jié)腸點(diǎn)。WWVB接收的C - MAX模型CMMR - 6是從Digi - Key的一部分561 - 1014 - ND完成loopstick天線。從接收器的數(shù)據(jù)輸出采樣RB0的微控制器。
我已經(jīng)建立了兩個(gè)時(shí)鐘,一個(gè)使用點(diǎn),以點(diǎn)布線和使用PCB。兩個(gè)版本都表現(xiàn)良好。只要保持接收器遠(yuǎn)離噪聲源和電線/走線長(zhǎng)度盡可能短,以減小電感。我發(fā)現(xiàn)接收器是由電源產(chǎn)生的磁場(chǎng)也很敏感。我用一個(gè)9V,200毫安,而不是一個(gè)內(nèi)部電源“壁疣”,以消除這個(gè)問(wèn)題。既包含了主板和一個(gè)單一的布局,以節(jié)省兩個(gè)單獨(dú)的電路板成本上的顯示板。從PCB 發(fā)送Gerber文件和使用他們的“裸骨”的過(guò)程 。“裸骨”的過(guò)程中,不包括阻焊也不絲印。切斷主電路板顯示板,并安裝直角到主板和它們連接在一起使用的墊提供 。
軟件簡(jiǎn)介
我用C編譯器的源升壓開(kāi)發(fā)軟件。,從PIC定時(shí)器2模塊?;緯r(shí)序設(shè)置為接收器采樣和內(nèi)部時(shí)間傳播提供32個(gè)中斷/秒。接收到的數(shù)據(jù)進(jìn)行采樣,每秒32樣本。軟件交叉關(guān)聯(lián)存儲(chǔ)的“理想”樣本一,零,和同步模式的輸入樣本。確定在連續(xù)兩個(gè)連續(xù)的同步比特的數(shù)據(jù)幀的開(kāi)始。當(dāng)檢測(cè)到這種模式,秒的數(shù)據(jù)被重置為零,后續(xù)位或零的提取分鐘和小時(shí)的數(shù)據(jù)檢測(cè)。只有時(shí)間顯示有關(guān)的數(shù)據(jù)進(jìn)行解碼。內(nèi)的數(shù)據(jù)幀不包含時(shí)間數(shù)據(jù)位被忽略。31出的32位檢測(cè)互相關(guān)算法需要接收到的數(shù)據(jù)和存儲(chǔ)的“理想”的同步模式之間的樣本協(xié)定。開(kāi)啟時(shí)同步檢測(cè)和關(guān)閉時(shí)同步丟失秒位數(shù)的小數(shù)點(diǎn)。位和零的檢測(cè)需要28 32接收到的數(shù)據(jù)和存儲(chǔ)的“理想”的模式之間的樣本協(xié)議。如果檢測(cè)到的任何位不符合或超過(guò)相關(guān)的閾值,整個(gè)畫(huà)面被丟棄,并啟動(dòng)一個(gè)新的幀同步搜索。當(dāng)成功地檢測(cè)到同步和所有的一幀的時(shí)間內(nèi)數(shù)據(jù)是,數(shù)據(jù)被修正為太平洋標(biāo)準(zhǔn)時(shí)間和夏令時(shí)。該軟件必須改變?yōu)槠渌麜r(shí)區(qū)的正確更正。還糾正一個(gè)WWVB在每個(gè)數(shù)據(jù)幀開(kāi)始的有效時(shí)間所造成的偏移分鐘的時(shí)間。完全矯正的時(shí)間轉(zhuǎn)換為一個(gè)12小時(shí)的格式,然后更新內(nèi)部的時(shí)間值。如果WWVB信號(hào)丟失,內(nèi)部時(shí)間繼續(xù)從它是依賴PIC晶體振蕩器傳播時(shí)間WWVB,直到下一個(gè)數(shù)據(jù)幀接收和驗(yàn)證。