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