短程,、便捷、廉價(jià)的無(wú)線(xiàn)通信技術(shù)正成為關(guān)注的焦點(diǎn),,使人們對(duì)它的需求越來(lái)越高,。例如無(wú)線(xiàn)數(shù)據(jù)采集、無(wú)線(xiàn)設(shè)備管理和監(jiān)控,、無(wú)線(xiàn)抄表以及礦井下的無(wú)線(xiàn)通信等都是其典型應(yīng)用,。
1 系統(tǒng)總體結(jié)構(gòu)
文中利用51單片機(jī)和無(wú)線(xiàn)數(shù)據(jù)收發(fā)芯片nRF905構(gòu)成無(wú)線(xiàn)數(shù)據(jù)傳輸系統(tǒng),,給出了硬件和軟件設(shè)計(jì)方案,。其數(shù)據(jù)傳輸過(guò)程是:從傳感器輸入的模擬信號(hào)經(jīng)AD采集后,將數(shù)據(jù)輸入單片機(jī),,然后單片機(jī)將該發(fā)送數(shù)據(jù),,通過(guò)SPI接口發(fā)送給nRF905,nRF905將數(shù)據(jù)自動(dòng)加上前導(dǎo)碼和CRC碼后將數(shù)據(jù)包發(fā)送,。當(dāng)接收端的nRF905接收到有效數(shù)據(jù)后,,DR置高,;單片機(jī)檢測(cè)到DR為高電平后,復(fù)位TRX_CE引腳,,使nRF905進(jìn)入空閑模式,,通過(guò)SPI接口從nRF905中讀出接收數(shù)據(jù),然后通過(guò)串口在上位機(jī)顯示,。文中主要介紹的是51單片機(jī)軟件模擬SPI和無(wú)線(xiàn)數(shù)據(jù)收發(fā)這兩個(gè)部分,。圖1是該系統(tǒng)的總體結(jié)構(gòu)框圖。
SPI(SerialPeripheralInterface串行外設(shè)接口)總線(xiàn)系統(tǒng)是一種同步串行外設(shè)接口,,它可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息,。該接口一般使用4條線(xiàn):串行時(shí)鐘線(xiàn)(SCK)、主機(jī)輸入從機(jī)輸出數(shù)據(jù)線(xiàn)MISO,、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線(xiàn)MOSI和低電平有效的從機(jī)選擇線(xiàn)SS,。可見(jiàn)SPI總線(xiàn)只需要少數(shù)的幾根線(xiàn),,就可以實(shí)現(xiàn)與具有SPI總線(xiàn)硬件接口功能的各種器件進(jìn)行通信,,并且用SPI總線(xiàn)接口簡(jiǎn)化電路設(shè)計(jì),節(jié)省許多I/O口線(xiàn)供其它功能使用,,提高了設(shè)計(jì)的可靠性,。而對(duì)于一些不具有SPI硬件接口的器件,可以用I/O口線(xiàn)來(lái)模擬SPI,。由于nRF905射頻收發(fā)模塊是通過(guò)SPI接口由MCU控制的,,而采用不具有SPI接口的單片機(jī),只能通過(guò)單片機(jī)的I/O口來(lái)模擬SPI總線(xiàn)接口,,實(shí)現(xiàn)無(wú)線(xiàn)通信系統(tǒng)的設(shè)計(jì),。這樣當(dāng)傳輸速度要求不是太高時(shí),使用I/O口模擬SPI總線(xiàn),,既可以增加應(yīng)用系統(tǒng)接口器件的種類(lèi),,同時(shí)還提高系統(tǒng)的性能,節(jié)約成本,。
nRF905是挪威NordicVLSI公司推出的單片射頻收發(fā)器,,工作電壓1.9~3.6V,工作于433/868/915MHz這3個(gè)ISM頻段,,頻道轉(zhuǎn)換時(shí)間<650μs,,最大數(shù)據(jù)速率為100kbit/s。nRF905由頻率合成器,、接收解調(diào)器,、功率放大器、晶體振蕩器和GFSK調(diào)制器組成,。自動(dòng)產(chǎn)生前導(dǎo)碼和CR校驗(yàn)碼,,可以很容易通過(guò)SPI接口進(jìn)行編程配置,。外圍器件連接簡(jiǎn)單,無(wú)需外部SAw濾波器,。nRF905有兩種工作模式和兩種節(jié)能模式,。兩種工作模式分別是ShockBurstTM發(fā)送模式和ShockBurst RM接收模式,兩種節(jié)能模式分別是掉電和SPI編程模式,,Standby和SPI編程模式,。nRF905的工作模式由TRX_CE,TX_EN,,PWR_UP這3個(gè)引腳的設(shè)置來(lái)決定,。
4 nRF905和STC89C52RC的硬件連接電路
nRF905具有標(biāo)準(zhǔn)的SPI硬件接口,對(duì)于不帶SPI串行總線(xiàn)接口的STC89C52RC單片機(jī)來(lái)說(shuō),,可以使用軟件來(lái)模擬SPI的操作,。單片機(jī)和NRF905的對(duì)應(yīng)接法是:P1.6接MISO,P1.5口接MOSI,,Pl.7口接SCIOCK,,P1.3接CSN。選用單片機(jī)的P1.5模擬數(shù)據(jù)輸出端MOSI,;Pl.6模擬數(shù)據(jù)輸入端MISOP1.7模擬SCK的輸出端,;P1.3模擬從機(jī)選擇端CSN,由程序清零此I/O口,,使得與它通信的NRF905做從機(jī),。采用SPI的進(jìn)行數(shù)據(jù)傳送時(shí),在SCK的每個(gè)下降沿將89C52配置NRF905的命令和數(shù)據(jù)通過(guò)MOSI引腳移入,,在SCK的每個(gè)上升沿將欲傳給89C52的數(shù)據(jù)從MISO引腳移出,。所以,這里將串行時(shí)鐘輸出口P1.7的初始狀態(tài)設(shè)置為低電平,,選通從機(jī),,即P1.3=0低電平后,再置P1.1為高電平,。這樣,,89C52在輸出1位SCK時(shí)鐘的同時(shí),將使NRF905中數(shù)據(jù)串行左移,,從而輸出1位數(shù)據(jù)至89C52的P1.6口,,此后再置P1.7為0,使89C52從P1.5輸出1位數(shù)據(jù)至NRF905,,至此結(jié)束了模擬1位數(shù)據(jù)的傳輸,。按上述步驟循環(huán)8次,,即完成通過(guò)SPI總線(xiàn)傳輸1bit的操作,。nRF905有5個(gè)內(nèi)部寄存器,,分別是狀態(tài)寄存器、RF配置寄存器,、發(fā)送地址寄存器,、發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器,這5個(gè)寄存器都是通過(guò)89C52軟件模擬的SPI接口來(lái)配置的,。除了對(duì)寄存器進(jìn)行配置外,,89C52還要對(duì)nRF905的工作模式進(jìn)行切換控制。

本系統(tǒng)使用兩個(gè)電源,,單片機(jī)STC89C52RC使用5V電源,,NRF905采用3.3V電源進(jìn)行供電,然后把STC89C52RC和NRF905共地,,否則會(huì)出現(xiàn)無(wú)法傳輸數(shù)據(jù),。其中轉(zhuǎn)換芯片分別使用AMSlll7-5.0轉(zhuǎn)5V芯片和AMSl117-3.3轉(zhuǎn)3.3 V芯片電路圖,如圖3所示,。電源電路使用220 V的交流電適配器輸出的9 V直流,,經(jīng)C1濾波進(jìn)入AMSlll7-5.0,然后在輸出端接一個(gè)100μF的電容進(jìn)行濾波去耦,,從而得到5 V直流電壓供單片機(jī)使用,;然后5 V電壓接入下一級(jí)AMSlll7-3.3電源轉(zhuǎn)換芯片,輸出3.3 V供NRF905使用,。

對(duì)于發(fā)送端,,首先進(jìn)行I/O口和SPI接口初始化,然后對(duì)nRF905的寄存器進(jìn)行配置并且初始化各個(gè)接口,,經(jīng)過(guò)初始化,,處理完采集好的數(shù)據(jù),設(shè)置nRF905為發(fā)送模式,,調(diào)用發(fā)送代碼,,延時(shí)一段時(shí)間,等待數(shù)據(jù)發(fā)送完畢,;同理在接收端也執(zhí)行相同的初始化,,不同的只是初始化完畢后,把nRF905模塊設(shè)置成接收模式,,然后調(diào)用接收程序,。最后通過(guò)串口在上位機(jī)進(jìn)行顯示。
7 實(shí)驗(yàn)分析
文中對(duì)其軟硬件進(jìn)行了設(shè)計(jì)和調(diào)試,,構(gòu)建了基于SPI無(wú)線(xiàn)通信系統(tǒng)平臺(tái),。實(shí)驗(yàn)證明,通過(guò)該系統(tǒng)無(wú)線(xiàn)測(cè)試板殼應(yīng)力,,在nRF905發(fā)射模塊端,,敲打板殼使之發(fā)生形變,,再用應(yīng)變儀傳感器測(cè)得其形變的電壓值,在數(shù)據(jù)發(fā)射之前對(duì)此模擬信號(hào)進(jìn)行AD采集,,并通過(guò)無(wú)線(xiàn)發(fā)射模塊把采集到的數(shù)據(jù)發(fā)射出去,;同時(shí)先在離發(fā)射模塊相距50m的位置放置一個(gè)接收模塊,接收發(fā)射數(shù)據(jù)并顯示,。然后間距每進(jìn)行一次實(shí)驗(yàn)后增加50m,。以此判斷它們?cè)诒WC信號(hào)傳輸穩(wěn)定情況下的最遠(yuǎn)傳輸距離。測(cè)得最佳結(jié)果在相距350m以?xún)?nèi)的樓宇之間,,數(shù)據(jù)傳輸穩(wěn)定,。超過(guò)350 m時(shí),數(shù)據(jù)顯示出現(xiàn)時(shí)顯時(shí)無(wú)的現(xiàn)象,。表1是在300 m左右實(shí)際測(cè)得的幾組應(yīng)變值,。

文中介紹了用SPI總線(xiàn)接口進(jìn)行數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)方法,采用nRF905射頻收發(fā)芯片和STC89C52RC單片機(jī)設(shè)計(jì)了無(wú)線(xiàn)數(shù)據(jù)傳輸系統(tǒng),,完成硬件電路和系統(tǒng)軟件調(diào)試后,,進(jìn)行了無(wú)線(xiàn)數(shù)據(jù)收發(fā)實(shí)驗(yàn)。實(shí)驗(yàn)過(guò)程是通過(guò)應(yīng)變儀傳感器測(cè)板殼形變得到的模擬信號(hào),,經(jīng)AD采集后產(chǎn)生要發(fā)送的數(shù)據(jù),,然后對(duì)其進(jìn)行發(fā)射、接收和顯示,。實(shí)驗(yàn)結(jié)果表明,,在相距350m的樓宇之間通信,該無(wú)線(xiàn)傳輸系統(tǒng)工作穩(wěn)定,,接收和發(fā)射的數(shù)據(jù)完全相同,,這表明該系統(tǒng)能實(shí)現(xiàn)數(shù)據(jù)的有效傳輸,具有高速,、抗干擾能力強(qiáng)等優(yōu)點(diǎn),。