1 引言
溫度采集系統(tǒng)所采集的溫度通常通過RS485、CAN總線通信方式傳輸至上位機(jī),但這種方式維護(hù)較困難,不利于工業(yè)現(xiàn)場生產(chǎn);而無線通信GPRS技術(shù)傳輸距離長,通信可靠穩(wěn)定,但設(shè)計(jì)復(fù)雜、成本昂貴。這里采用工業(yè)級內(nèi)置硬件鏈路層協(xié)議的低成本單芯片nRF24L01型無線收發(fā)器件實(shí)現(xiàn)系統(tǒng)間的無線通信,完成無線信號的接收、顯示及報(bào)警功能。
2 nRF24L01簡介
nRF24L01是一款工業(yè)級內(nèi)置硬件鏈路層協(xié)議的低成本無線收發(fā)器。該器件工作于2.4 GHz全球開放ISM頻段,內(nèi)置頻率合成器、功率放大器、晶體振蕩器、調(diào)制器等功能模塊,并融合增強(qiáng)型ShockBurst技術(shù),其輸出功率和通信頻道可通過程序配置。擁有ShockBurst和Enhanced ShockBurst兩種數(shù)據(jù)傳輸模式。可直接與單片機(jī)I/O連接,外接元件數(shù)目少。nRF24L01功耗低,以-6 dBm的功率發(fā)射時(shí),工作電流僅9 mA;接收時(shí),工作電流僅12.3 mA,多種低功率工作模式(掉電和空閑模式)更利于節(jié)能設(shè)計(jì)。
3 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件設(shè)計(jì)主要由采集發(fā)送和接收顯示兩部分組成。圖1為采集發(fā)送電路原理圖,該電路主要由溫度傳感器DS18B20、單片機(jī)STC12LE5408和nRF24L01組成。
STC12LE5408是增強(qiáng)型8051單片機(jī),速度快,集成度高,電壓范圍寬(2.2~3.8 V),和MCS-51系列單片機(jī)指令系統(tǒng)完全兼容。其內(nèi)部還有8 KB Flash程序存儲(chǔ)器,512字節(jié)RAM、2 KB EEPROM、4路PWM以及硬件看門狗(WDT)等資源.性價(jià)比高。
DSl8B20是DALLAS公司生產(chǎn)的單總線數(shù)字1-Wire溫度傳感器,可把溫度信號直接轉(zhuǎn)換成串行數(shù)字信號供單片機(jī)處理,采用1-Wire接口。DSl8B20的數(shù)據(jù)端DQ可通過4.7 kΩ的上拉電阻接STC12LE5408。nRF24L01的CE,CSN,SCK,MOSI,MISO,IRQ引腳則可接STC12LE5408的任意端口,但需在編程時(shí)注意,這里接至P1端口。由于nRF24L01具有接收數(shù)據(jù)功能,所以接收顯示電路由單片機(jī)STC12LE5408、nRF24L01和顯示電路組成。所采集的數(shù)據(jù)也通過串口發(fā)送至PC機(jī)進(jìn)行處理。
4 系統(tǒng)軟件設(shè)計(jì)
4.1 nRF24L01的軟件設(shè)置
由于STC12LE5408無標(biāo)準(zhǔn)的SPI總線接口,需采用軟件模擬實(shí)現(xiàn)SPI總線。因此應(yīng)嚴(yán)格按照SPI的時(shí)序要求編寫,否則導(dǎo)致對nRF24L01的操作失敗。nRF24L01的各種命令字都只有一個(gè)字節(jié),分為讀寄存器、寫寄存器、讀數(shù)據(jù)接收緩沖區(qū)、寫發(fā)送數(shù)據(jù)緩沖區(qū)等。在輸入任意命令字的同時(shí),MISO輸出STATUS寄存器的內(nèi)容。對RF24L01的讀寫程序代碼如下:
nRF24L01的ShockBurst和Enhanced ShockBurst兩種數(shù)據(jù)模式的區(qū)別是:后者比前者多一個(gè)確認(rèn)數(shù)據(jù)傳輸?shù)男盘,保證數(shù)據(jù)傳輸?shù)目煽啃。按Enhanced ShockBurst模式初始化,重新發(fā)送等待時(shí)間為250μs,重新發(fā)送次數(shù)為10次,地址是RX_ADR_WIDTH,輸出功率為0 dBm,速度為1 Mb/s。nRF24L01處于POWER_UP狀態(tài)。函數(shù)中WRITE_REG為寫命令基地址0x20。其相關(guān)程序如下: