一種低成本的無線IRIG-H(DC)解碼器
摘要:基于ATmega8單片機(jī)設(shè)計(jì)出一種簡單、可靠、低成本的H碼(DC)解碼器。通過標(biāo)準(zhǔn)RS485接口接收差分H碼信號(hào),信號(hào)經(jīng)隔離后通過單片機(jī)解碼程序處理,轉(zhuǎn)換成標(biāo)準(zhǔn)時(shí)間碼(時(shí)分形式)通過無線方式發(fā)送給其他設(shè)備。此設(shè)計(jì)增強(qiáng)了解碼器的使用方便性以及時(shí)間數(shù)據(jù)及通信協(xié)議設(shè)計(jì)的靈活性,在實(shí)際應(yīng)用中取得了滿意的效果。
引言
在工業(yè)控制、電力和其他商業(yè)系統(tǒng)中,IRIG-H碼的校時(shí)設(shè)備在系統(tǒng)時(shí)鐘精度要求不高的場(chǎng)合非常適用,可利用其解碼設(shè)備占用資源少、效率高的優(yōu)勢(shì)為其他設(shè)備提供統(tǒng)一校時(shí)。本文通過ATmega8單片機(jī),根據(jù)IRIG-H碼編制程序進(jìn)行解碼處理,轉(zhuǎn)換出常用的標(biāo)準(zhǔn)時(shí)間格式。由于IRIG-H碼每分鐘一幀,低速和低數(shù)據(jù)量很適合無線通信使用。可通過無線方式發(fā)送時(shí)間數(shù)據(jù),其他設(shè)備可通過無線接收其數(shù)據(jù),校對(duì)自己的時(shí)間或進(jìn)行其他應(yīng)用。
1 系統(tǒng)原理分析
IRIG(Intcr Range Instrumentation Group)即靶場(chǎng)儀器組,它是美國靶場(chǎng)司令委員會(huì)所屬的機(jī)構(gòu),它制定了IRIG-H時(shí)間碼(簡稱H碼),此標(biāo)準(zhǔn)時(shí)間碼可以用來校正時(shí)間,與時(shí)統(tǒng)總站對(duì)時(shí),也可以通過時(shí)間碼對(duì)時(shí)統(tǒng)設(shè)備精確授時(shí)。IRIG-H以分鐘為最小單位,可應(yīng)用在路燈控制、農(nóng)業(yè)灌溉、智能樓宇等方面。
IRIG時(shí)間碼標(biāo)準(zhǔn)有兩大類:一類是并行時(shí)間碼格式;另一類是串行時(shí)間碼。并行格式由于傳輸距離較近,因此沒有串行格式應(yīng)用廣泛。串行時(shí)間碼共有6種格式,即IRIG-A、B、D、E、G、H。它們的主要差別是時(shí)間碼的幀速率不同,其中H碼格式主要參數(shù)如表1所列。
IRIG-H碼每個(gè)脈沖對(duì)應(yīng)一個(gè)碼元,每一個(gè)碼元占用1 s的時(shí)間,根據(jù)脈沖中高電平時(shí)間不同,共分3種碼元,如圖1所示。碼元信息“0”和碼元信息“1”所對(duì)應(yīng)碼元的高電平分別為0.2 s和0.5 s,P碼元的位置碼元對(duì)應(yīng)高電平時(shí)間為0.8 s,用于編解碼的定位。
H碼傳送方式為一分鐘一幀,H碼的一幀時(shí)間信息如圖2所示??梢钥闯雒繋?0個(gè)碼元,其中P0、PR、P1、P2、P3、P4、P5為位置識(shí)別標(biāo)志,參考碼元PR后到下一幀的位置識(shí)別碼元P0共60個(gè)碼元,每個(gè)碼元都對(duì)應(yīng)相應(yīng)的碼元計(jì)數(shù)從0~59,可見位置碼元PR后面是分、時(shí)等時(shí)間信息,因此PR碼元是重要的基準(zhǔn)參考碼元。位置P1~P4中含有分一時(shí)一天的信息,P5可用來添加控制信息。
在解碼時(shí),若連續(xù)檢測(cè)到兩個(gè)位置碼可知一幀開始。P0后1~9碼元為無信息碼元;第10~13碼元表示分的個(gè)位,15~17碼元表示分的十位,共7個(gè)碼元;第20~23碼元表示時(shí)信息個(gè)位,25、26兩個(gè)碼元表示時(shí)信息十位,共6個(gè)碼元;第30~33、35~38、40~41各使用4個(gè)碼元來表示天數(shù)的個(gè)位和十位,使用2個(gè)碼元來表示天數(shù)的百位,共使用10個(gè)碼元。將每年的1月1日定為第1天,全年共365天(閏年為366天)。后接控制位信息,第50~59共10個(gè)碼元。其中14、24、34等碼元為索引標(biāo)志。一般應(yīng)用只需檢測(cè)到P4即可,以上時(shí)間信息采用二進(jìn)制數(shù)表示十進(jìn)制的編碼,即十進(jìn)制時(shí)間信息每一位十進(jìn)制數(shù)用二進(jìn)制數(shù)編碼,表示次序由低到高,個(gè)位在前十位在后。
2 系統(tǒng)概述
無線IRIG-H碼解碼器可分為3部分:①信號(hào)轉(zhuǎn)換模塊;②MCU解碼模塊;③無線發(fā)送模塊。H碼解碼器系統(tǒng)功能框圖如圖3所示。
信號(hào)轉(zhuǎn)換模塊是IRIG-H(DC)碼數(shù)據(jù)首先經(jīng)過的部分,信號(hào)輸入后經(jīng)過RS485電平轉(zhuǎn)換電路轉(zhuǎn)換成TTL電平,然后信號(hào)經(jīng)隔離電路和波形整形電路輸出至MCU解碼部分。
MCU解碼模塊主要為B碼信號(hào)提供解碼處理,經(jīng)過對(duì)信號(hào)的捕捉,通過軟件處理,轉(zhuǎn)換成標(biāo)準(zhǔn)時(shí)間格式,當(dāng)然也可轉(zhuǎn)換為需要的自定義時(shí)間格式。轉(zhuǎn)換完成后,通過SPI接口,將解碼后信號(hào)傳遞給無線發(fā)送模塊。
無線發(fā)送模塊主要是把時(shí)間信號(hào)和載波混合調(diào)制后,以射頻形式發(fā)送出去,傳輸格式規(guī)約可以由MCU解碼模塊通過軟件自定義,然后按定義好的規(guī)約發(fā)送無線信號(hào),多個(gè)應(yīng)用接收端可以按同規(guī)約接收并解析數(shù)據(jù)。
3 硬件電路設(shè)計(jì)方案
3.1 信號(hào)轉(zhuǎn)換部分
IRIG-H輸入接口如圖4所示,H碼DC信號(hào)通過U6芯片完成RS485電平轉(zhuǎn)換成TTL電平;信號(hào)經(jīng)電平轉(zhuǎn)換后輸出到高速光隔U4進(jìn)行電氣隔離,避免干擾信號(hào)或大能量沖擊信號(hào)通過導(dǎo)線引入系統(tǒng)損壞后端系統(tǒng);U11為電源DC—DC隔離器,隔離強(qiáng)度達(dá)2 500 V;最后信號(hào)通過施密特反相器U8輸出更加穩(wěn)定的方波。
3.2 MCU解碼模塊電路圖
MCU解碼模塊中使用了Atmel公司的ATmega8芯片,它是性能較好的RISC結(jié)構(gòu)的8位單片機(jī),有8 KB的內(nèi)部可編程Flash存儲(chǔ)器,兩個(gè)串行USART口,可工作于主從模式的SPI串行接口,獨(dú)立片內(nèi)看門狗定時(shí)器,以及10位ADC等豐富強(qiáng)大的硬件接口電路;封裝較小為TQFP-32封裝,價(jià)格較低,采用低功耗CMOS工藝生產(chǎn)性能較好。綜上所述功能其很適合做本設(shè)計(jì)主控芯片。
ATmega 8原理圖如圖5所示,使用外部7.372 8 MHz晶振,使用內(nèi)部定時(shí)器T0作為檢測(cè)碼元計(jì)時(shí)。圖5中LED2作為工作狀態(tài)指示燈,顯示當(dāng)前模塊運(yùn)行狀態(tài);單片機(jī)PD2(INT0)引腳接至信號(hào)轉(zhuǎn)換模塊的輸出,當(dāng)輸入信號(hào)電平由低變高時(shí)(上升沿)產(chǎn)生中斷,使用內(nèi)部定時(shí)器T0開始計(jì)時(shí)。當(dāng)信號(hào)電子由高到低時(shí)(下降沿)產(chǎn)生中斷,此時(shí)定時(shí)器停止,并計(jì)算計(jì)時(shí)器時(shí)間,按照?qǐng)D1即可解碼出B碼碼元信息對(duì)應(yīng)的數(shù)據(jù)。引腳PB3和PB4是SPI接口的通信收發(fā)腳,接至無線發(fā)送模塊作為解碼數(shù)據(jù)的傳遞接口,單片機(jī)通過自定義規(guī)約把時(shí)間數(shù)據(jù)通過SPI接口傳遞出去。
4 無線發(fā)射部分線路圖
無線發(fā)射部分選用nRF905無線芯片,它是NORDIC公司出品的低于1 GHz無線數(shù)傳芯片,主要工作于433 MHz、868 MHz和915 MHz的ISM頻段。芯片內(nèi)置頻率合成器、功率放大器、晶體振蕩器和調(diào)制器等功能模塊,輸出功率和通信頻道可通過程序進(jìn)行配置,非常適合于低功耗、低成本的系統(tǒng)設(shè)計(jì)。這里采用SPI接口和ATmega 8主控芯片通信,使用433 MHz通信,nRF905接收到時(shí)間數(shù)據(jù)后,調(diào)制到載波上,通過天線發(fā)送無線數(shù)據(jù)。此部分操作簡單,可靠性較高,且有較高的性價(jià)比。無線傳輸部分電路如圖6所示。
5 系統(tǒng)軟件設(shè)計(jì)
在單片機(jī)軟件設(shè)計(jì)中,定義三個(gè)字節(jié)數(shù)組Time[3]存放時(shí)間信息數(shù)據(jù),即“分”、“時(shí)”、“天”。滿1分鐘后,中斷接收全時(shí)間信息,并進(jìn)行譯碼轉(zhuǎn)換,完成轉(zhuǎn)換后置時(shí)間發(fā)送標(biāo)志為1,在主循環(huán)中查詢是否有時(shí)間發(fā)送標(biāo)志置1,如果是則通過SPI接口發(fā)送數(shù)據(jù)給無線模塊部分進(jìn)行無線發(fā)送。由于IRIG-H碼每分鐘一幀,所以無線發(fā)送部分有足夠的時(shí)間進(jìn)行無線通信協(xié)議處理,如主機(jī)無線發(fā)送廣播包給設(shè)備,則接收設(shè)備返回確認(rèn)幀,以保證通信可靠。軟件主流程圖如圖7所示。中斷處理流程圖如圖8所示。
結(jié)語
此無線IRIC-H碼解碼器設(shè)計(jì)簡單,所用器件較少,性能穩(wěn)定,并且能夠可靠地提供準(zhǔn)確的時(shí)間信息。其具有成本低、開發(fā)周期短等優(yōu)點(diǎn),C語言編寫解碼程序在傳輸協(xié)議上具有靈活性,無線通信接口有較好的可安裝性和可擴(kuò)展性。