基于SPI總線的無線數(shù)據(jù)傳輸系統(tǒng)設計

摘要: 通過基于SPI總線的無線數(shù)據(jù)通信設備,利用無線數(shù)據(jù)收發(fā)芯片nRF905和51單片機STC89C52RC進行設計,給出了無線數(shù)據(jù)傳輸系統(tǒng)框圖和軟硬件設計。介紹了SPI總線結構、NRF905無線射頻芯片及一種基于單片機模擬SPI接口的方法,使沒有SPI接口的單片機擴展為帶有SPI接口的外圍芯片成為現(xiàn)實。對如何通過SPI實現(xiàn)對nRF905的配置,并利用C語言實現(xiàn)該功能做了探討。最后對待發(fā)送數(shù)據(jù)進行發(fā)送,接收端對數(shù)據(jù)進行接收顯示,從而實現(xiàn)了該無線數(shù)據(jù)傳輸系統(tǒng),實驗表明該設備具有準確有效的數(shù)據(jù)傳輸功能。

關鍵詞: SPI;單片機;nRF905;無線通信

短程、便捷、廉價的無線通信技術正成為關注的焦點,使人們對它的需求越來越高。例如無線數(shù)據(jù)采集、無線設備管理和監(jiān)控、無線抄表以及礦井下的無線通信等都是其典型應用。

1 系統(tǒng)總體結構

文中利用51單片機和無線數(shù)據(jù)收發(fā)芯片nRF905構成無線數(shù)據(jù)傳輸系統(tǒng),給出了硬件和軟件設計方案。其數(shù)據(jù)傳輸過程是:從傳感器輸入的模擬信號經(jīng)AD采集后,將數(shù)據(jù)輸入單片機,然后單片機將該發(fā)送數(shù)據(jù),通過SPI接口發(fā)送給nRF905,nRF905將數(shù)據(jù)自動加上前導碼和CRC碼后將數(shù)據(jù)包發(fā)送。當接收端的nRF905接收到有效數(shù)據(jù)后,DR置高;單片機檢測到DR為高電平后,復位TRX_CE引腳,使nRF905進入空閑模式,通過SPI接口從nRF905中讀出接收數(shù)據(jù),然后通過串口在上位機顯示。文中主要介紹的是51單片機軟件模擬SPI和無線數(shù)據(jù)收發(fā)這兩個部分。圖1是該系統(tǒng)的總體結構框圖。

2 SPI總線

SPI(Serial Peripheral Interface串行外設接口)總線系統(tǒng)是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息。該接口一般使用4條線:串行時鐘線(SCK)、主機輸入從機輸出數(shù)據(jù)線MISO、主機輸出/從機輸入數(shù)據(jù)線MOSI和低電平有效的從機選擇線SS。可見SPI總線只需要少數(shù)的幾根線,就可以實現(xiàn)與具有SPI總線硬件接口功能的各種器件進行通信,并且用SPI總線接口簡化電路設計,節(jié)省許多I/O口線供其它功能使用,提高了設計的可靠性。而對于一些不具有SPI硬件接口的器件,可以用I/O口線來模擬SPI。由于nRF905射頻收發(fā)模塊是通過SPI接口由MCU控制的,而采用不具有SPI接口的單片機,只能通過單片機的I/O口來模擬SPI總線接口,實現(xiàn)無線通信系統(tǒng)的設計。這樣當傳輸速度要求不是太高時,使用I/O口模擬SPI總線,既可以增加應用系統(tǒng)接口器件的種類,同時還提高系統(tǒng)的性能,節(jié)約成本。

3 nRF905無線收發(fā)芯片

nRF905是挪威Nordic VLSI公司推出的單片射頻收發(fā)器,工作電壓1.9~3.6 V,工作于433/868/915MHz這3個ISM頻段,頻道轉換時間<650μs,最大數(shù)據(jù)速率為100kbit/s。nRF905由頻率合成器、接收解調器、功率放大器、晶體振蕩器和GFSK調制器組成。自動產(chǎn)生前導碼和CR校驗碼,可以很容易通過SPI接口進行編程配置。外圍器件連接簡單,無需外部SAw濾波器。nRF905有兩種工作模式和兩種節(jié)能模式。兩種工作模式分別是ShockBurst TM發(fā)送模式和ShockBurst RM接收模式,兩種節(jié)能模式分別是掉電和SPI編程模式,Standby和SPI編程模式。nRF905的工作模式由TRX_CE,TX_EN,PWR_UP這3個引腳的設置來決定。

4 nRF905和STC89C52RC的硬件連接電路

nRF905具有標準的SPI硬件接口,對于不帶SPI串行總線接口的STC89C52RC單片機來說,可以使用軟件來模擬SPI的操作。單片機和NRF905的對應接法是:P1.6接MISO,P1.5口接MOSI,Pl.7口接SCIOCK,P1.3接CSN。選用單片機的P1.5模擬數(shù)據(jù)輸出端MOSI;Pl.6模擬數(shù)據(jù)輸入端MISO P1.7模擬SCK的輸出端;P1.3模擬從機選擇端CSN,由程序清零此I/O口,使得與它通信的NRF905做從機。采用SPI的進行數(shù)據(jù)傳送時,在SCK的每個下降沿將89C52配置NRF905的命令和數(shù)據(jù)通過MOSI引腳移入,在SCK的每個上升沿將欲傳給89C52的數(shù)據(jù)從MISO引腳移出。所以,這里將串行時鐘輸出口P1.7的初始狀態(tài)設置為低電平,選通從機,即P1.3=0低電平后,再置P1.1為高電平。這樣,89C52在輸出1位SCK時鐘的同時,將使NRF905中數(shù)據(jù)串行左移,從而輸出1位數(shù)據(jù)至89C52的P1.6口,此后再置P1.7為0,使89C52從P1.5輸出1位數(shù)據(jù)至NRF905,至此結束了模擬1位數(shù)據(jù)的傳輸。按上述步驟循環(huán)8次,即完成通過SPI總線傳輸1 bit的操作。nRF905有5個內部寄存器,分別是狀態(tài)寄存器、RF配置寄存器、發(fā)送地址寄存器、發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器,這5個寄存器都是通過89C52軟件模擬的SPI接口來配置的。除了對寄存器進行配置外,89C52還要對nRF905的工作模式進行切換控制。

作者:王華斌,孟立凡,谷宗冉,吳慧飛 來源:電子技術


微信掃描分享本文到朋友圈
掃碼關注5G通信官方公眾號,免費領取以下5G精品資料
  • 1、回復“YD5GAI”免費領取《中國移動:5G網(wǎng)絡AI應用典型場景技術解決方案白皮書
  • 2、回復“5G6G”免費領取《5G_6G毫米波測試技術白皮書-2022_03-21
  • 3、回復“YD6G”免費領取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復“LTBPS”免費領取《《中國聯(lián)通5G終端白皮書》
  • 5、回復“ZGDX”免費領取《中國電信5GNTN技術白皮書
  • 6、回復“TXSB”免費領取《通信設備安裝工程施工工藝圖解
  • 7、回復“YDSL”免費領取《中國移動算力并網(wǎng)白皮書
  • 8、回復“5GX3”免費領取《R1623501-g605G的系統(tǒng)架構1
  • 本周熱點本月熱點

     

      最熱通信招聘

      最新招聘信息