短距離ISM頻段無線數據傳輸的應用設計
發(fā)送的過程首先是初始化,然后從SPI口送出2-3字節(jié)的01010…前導碼,由于設置的是Manchester,發(fā)送幾個0XFF即可,后面的格式可以參照圖4的數據的傳輸格式。發(fā)送函數如下。
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收到數據后,主動發(fā)出中斷請求,MCU響應中斷,并且調用接收函數,接收過程首先是判斷同步碼是否正確,然后將數據域和CRC效驗接收下來,若效驗通過則輸出到UART口。
結語
實驗表明本設計具有成本低,功耗小,通信距離遠等特點,經過實際的運行測量,開闊地通信距離超過500m。特別在應用環(huán)境較為復雜,數據信號容易受到各種噪聲干擾的情況下,該方案的可靠性明顯優(yōu)于超再生的數據傳輸方案。
參考文獻:
1. ATA 5428 datasheet, ATMEL公司
評論