短距離ISM頻段無線數(shù)據(jù)傳輸?shù)膽?yīng)用設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
近些年來,隨著集成電路技術(shù)的發(fā)展,ISM頻段單芯片的無線數(shù)據(jù)通信IC的性能日益提高,短距離無線應(yīng)用領(lǐng)域也在不斷的擴(kuò)大,其中包括家用電器,消費(fèi)電子產(chǎn)品,工業(yè)控制,安防,自動(dòng)抄表,汽車遙控控制等諸多領(lǐng)域。
本文介紹一種基于ATMEL公司的單芯片多頻點(diǎn),工作于ISM頻段的收發(fā)芯片 ATA5428在無線數(shù)據(jù)傳輸中的應(yīng)用。
ATA5428是ATMEL公司新推出的一款包含了射頻功能和邏輯控制功能的集成電路??梢怨ぷ饔?31.5MHz~436.5MHz。ATA5428具有低功耗和高集成度,傳輸?shù)木嚯x遠(yuǎn),接收的靈敏度高等優(yōu)點(diǎn),其內(nèi)部集成壓控振蕩器、鎖相環(huán)電路、功率放大電路、解調(diào)電路、變頻器、中放電路等。由于高度的集成化使復(fù)雜無線電路大大簡化,以往較難處理的射頻部分,被簡化到只需在IC外圍加上幾個(gè)免調(diào)試的分立元件。
ATA5428內(nèi)部含有自動(dòng)定時(shí)接收喚醒數(shù)字邏輯控制電路,可以設(shè)定喚醒的周期,選擇這個(gè)功能后僅僅增加一些收發(fā)延遲,但會(huì)成倍的降低接收功耗。
ATA5428內(nèi)部含有7個(gè)控制寄存器,可以非常簡單的對(duì)頻率、收發(fā)速率、調(diào)制方式進(jìn)行設(shè)置。 ATA5428內(nèi)部還包含一個(gè)16字節(jié)先進(jìn)先出RAM緩沖器,利用這個(gè)功能減少對(duì)MCU的依賴,使MCU有更多的時(shí)間處理其它的事務(wù)。所以,MCU既使運(yùn)行在比較低的頻率,在收發(fā)雙方不小于100ms響應(yīng)下,依然能夠正常工作。
系統(tǒng)電路設(shè)計(jì)
本系統(tǒng)使用了AVR系列單片機(jī)ATmega88。ATA5428與ATmega88通訊采用SPI接口,與外部通信采用UART接口。由于高度集成化ATA5428外圍零件已經(jīng)很少,所以設(shè)計(jì)的關(guān)鍵是RF前端的匹配電路的設(shè)計(jì)。一般的RF芯片發(fā)射與接收端口的阻抗并不是標(biāo)準(zhǔn)的50Ω阻抗,而是在不同頻率下都可以等效為一個(gè)實(shí)部加一個(gè)虛部 ,例如ATA5428在433.92MHz的頻率下輸入阻抗可以等效為(32-j169)Ω,要達(dá)到最佳的接收效果必須將輸入阻抗通過外圍器件的補(bǔ)償使之與50Ω的天線匹配,
圖1中L4與C1的作用是補(bǔ)償輸入阻抗成為50Ω,同樣L2與C8的作用是用于補(bǔ)償使輸出阻抗為50Ω,同時(shí)L2還起到高頻扼流的作用。C9,L1,C10組成一個(gè)三階低通濾波電路,3dBm的截止頻率約為500MHz左右,低通濾波電路一方面可以抑制發(fā)射的高次諧波,另一方面可以衰減輸入噪音。必須注意,為了降低輸入輸出網(wǎng)絡(luò)的互相影響,在ATA5428 的內(nèi)部增加了一個(gè)天線開關(guān),在發(fā)射狀態(tài)時(shí)開關(guān)閉合,輸入網(wǎng)絡(luò)前的20mm×0.4mm傳輸線由于長度遠(yuǎn)遠(yuǎn)小于1/4波長,所以等效與一個(gè)電容接地,而在接收時(shí),等效一個(gè)電感,這部分的設(shè)計(jì)必須注意的是分布參數(shù)影響。另外高頻部分的走線盡量的短粗,元器件參數(shù)要根據(jù)線路板的實(shí)際情況作出適當(dāng)?shù)恼{(diào)節(jié),以抵消分布參數(shù)的影響。
ATA5428的靈敏度已經(jīng)相當(dāng)理想,當(dāng)有些特殊場合需較遠(yuǎn)的通信距離的應(yīng)用時(shí),如雙向汽車遙控器等,可以在ATA5428的RF輸入端加一級(jí)低噪聲放大器LNA(見圖2),以進(jìn)一步提高ATA5428的接收靈敏度。放大電路的輸入和輸出都采用了LC匹配網(wǎng)絡(luò)。放大器的實(shí)際增益高達(dá)近20dB,可以提高4dB到6dB的靈敏度,相當(dāng)于增加30%~80%的距離。
軟件設(shè)計(jì)
眾所周知,一般無線數(shù)字接收機(jī)在接收有效數(shù)據(jù)之前,必須要識(shí)別數(shù)據(jù)開始的標(biāo)志信息及前導(dǎo)碼PREAMBLE和同步頭SYNCWORD(見圖3)。前導(dǎo)碼是由若干01010…數(shù)據(jù)組成主要是用于恢復(fù)與同步無線接收機(jī)的時(shí)鐘,同步頭可以是若干特定的數(shù)據(jù),它標(biāo)志著數(shù)據(jù)的開始,ID FIELD是個(gè)可選項(xiàng),用于識(shí)別接收機(jī)的地址。 數(shù)據(jù)域DATA FIELD是真正的數(shù)據(jù)區(qū),數(shù)據(jù)的長度通常是可變的,CRC是對(duì)ID FIELD和DATA FIELD的效驗(yàn),可以選擇CRC16或CRC32。ATA5428推薦用Manchester 編碼以區(qū)別與其他同類IC,ATA5428檢測(cè)前導(dǎo)碼采用比較每個(gè)比特的脈沖寬度,并有一個(gè)可設(shè)置比特?cái)?shù)據(jù)的長度的范圍窗口,其他同類IC則采用識(shí)別是否有01010…數(shù)據(jù)來識(shí)別前導(dǎo)碼,ATA5428這種比較前導(dǎo)碼的方式,顯然具有明顯的優(yōu)點(diǎn),抗干擾能力大大增強(qiáng)。
ATA5428有2種接收工作模式,普通模式和透明模式。我們這個(gè)應(yīng)用采用的是普通模式。在普通模式下,接收的過程是當(dāng)檢測(cè)到前導(dǎo)碼和同步頭后,激活收發(fā)數(shù)據(jù)緩沖控制邏輯,并且把數(shù)據(jù)寫入收發(fā)數(shù)據(jù)緩沖區(qū),如圖4所示。這里需注意的是ATA5428只有16字節(jié)的緩沖區(qū)。如果數(shù)據(jù)隊(duì)列長度超過16個(gè)字節(jié),那么會(huì)發(fā)生緩沖溢出,所以數(shù)據(jù)的及時(shí)讀入非常重要,這樣可以避免數(shù)據(jù)的溢出。ATA5428有一個(gè)顯示接收數(shù)據(jù)的計(jì)數(shù)器,當(dāng)計(jì)數(shù)器的值到達(dá)了某一個(gè)值后,可以通過中斷的方式與MCU進(jìn)行通信。
ATA5428在工作之前需要對(duì)其初始化,下面僅給出在普通接收模式下的初始化函數(shù)與發(fā)送的初始化函數(shù)。
void receive_init()
{
__disable_interrupt(); //disable all
interrupts
SETBIT(PORTD,CS_5428); //CS___/----
spi(write_ctr_reg|5); //0xa5--->ctr6
spi(write_ctr_reg|4); //0x50--->ctr5
spi(0x90); //6 bits check, lim_min:
16,4b
spi(write_ctr_reg|3); //0x80--->ctr4
spi(0x00);
//FREQ = (frf/fxto-32.5)*16384-20.5,3928
spi(write_ctr_reg|2); //0x7b--->ctr3
spi(0x7b); //vsout on, clock out on
spi(write_ctr_reg|1); //0xb0--->ctr2
spi(0xb1); //manchester modulator on
spi(write_ctr_reg|0); //0x42--->ctr1
spi(0x26); //tx mode.send 1data
every time
CLRBIT(PORTD,CS_5428);//close 5428
spi interface
SETBIT(PORTD,CS_5428);
spi(cancel_IRQ);
CLRBIT(PORTD,CS_5428);//close 5428
spi interface
send.sum_value = 0;
}
發(fā)送的過程首先是初始化,然后從SPI口送出2-3字節(jié)的01010…前導(dǎo)碼,由于設(shè)置的是Manchester,發(fā)送幾個(gè)0XFF即可,后面的格式可以參照?qǐng)D4的數(shù)據(jù)的傳輸格式。發(fā)送函數(shù)如下。
void transfer_data()
{
SETBIT(PORTD,CS_5428);//CS_5428
___/----
spi(write_TRX_buffer);//write writing
buffer command
spi(0xFF);//send 0xFF ,for bit check
spi(0xFF);//send 0xFF ,for bit check
spi(0x55); //for SYNCWORD
spi('T');//send 'T'
.
.
ID FIELD和DATA FIELD
CRC16
.
.
CLRBIT(PORTD,CS_5428);//CS_5428 ---
-____
SETBIT(PORTD,CS_5428);//CS_5428
___/----
spi(write_ctr_reg|0);//0x00 -> ctr1
spi(0x00);//go to IDLE mode
CLRBIT(PORTD,CS_5428);//CS_5428 ---
-____
}
ATA5428收到數(shù)據(jù)后,主動(dòng)發(fā)出中斷請(qǐng)求,MCU響應(yīng)中斷,并且調(diào)用接收函數(shù),接收過程首先是判斷同步碼是否正確,然后將數(shù)據(jù)域和CRC效驗(yàn)接收下來,若效驗(yàn)通過則輸出到UART口。
結(jié)語
實(shí)驗(yàn)表明本設(shè)計(jì)具有成本低,功耗小,通信距離遠(yuǎn)等特點(diǎn),經(jīng)過實(shí)際的運(yùn)行測(cè)量,開闊地通信距離超過500m。特別在應(yīng)用環(huán)境較為復(fù)雜,數(shù)據(jù)信號(hào)容易受到各種噪聲干擾的情況下,該方案的可靠性明顯優(yōu)于超再生的數(shù)據(jù)傳輸方案。
參考文獻(xiàn):
1. ATA 5428 datasheet, ATMEL公司