基于SPI總線的無線數(shù)據(jù)傳輸系統(tǒng)設(shè)計
摘要: 通過基于SPI總線的無線數(shù)據(jù)通信設(shè)備,利用無線數(shù)據(jù)收發(fā)芯片nRF905和51單片機STC89C52RC進行設(shè)計,給出了無線數(shù)據(jù)傳輸系統(tǒng)框圖和軟硬件設(shè)計。介紹了SPI總線結(jié)構(gòu)、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è)備具有準確有效的數(shù)據(jù)傳輸功能。
關(guān)鍵詞: SPI;單片機;nRF905;無線通信
短程、便捷、廉價的無線通信技術(shù)正成為關(guān)注的焦點,使人們對它的需求越來越高。例如無線數(shù)據(jù)采集、無線設(shè)備管理和監(jiān)控、無線抄表以及礦井下的無線通信等都是其典型應(yīng)用。
1 系統(tǒng)總體結(jié)構(gòu)
文中利用51單片機和無線數(shù)據(jù)收發(fā)芯片nRF905構(gòu)成無線數(shù)據(jù)傳輸系統(tǒng),給出了硬件和軟件設(shè)計方案。其數(shù)據(jù)傳輸過程是:從傳感器輸入的模擬信號經(jīng)AD采集后,將數(shù)據(jù)輸入單片機,然后單片機將該發(fā)送數(shù)據(jù),通過SPI接口發(fā)送給nRF905,nRF905將數(shù)據(jù)自動加上前導(dǎo)碼和CRC碼后將數(shù)據(jù)包發(fā)送。當(dāng)接收端的nRF905接收到有效數(shù)據(jù)后,DR置高;單片機檢測到DR為高電平后,復(fù)位TRX_CE引腳,使nRF905進入空閑模式,通過SPI接口從nRF905中讀出接收數(shù)據(jù),然后通過串口在上位機顯示。文中主要介紹的是51單片機軟件模擬SPI和無線數(shù)據(jù)收發(fā)這兩個部分。圖1是該系統(tǒng)的總體結(jié)構(gòu)框圖。
2 SPI總線
SPI(Serial Peripheral Interface串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進行通信以交換信息。該接口一般使用4條線:串行時鐘線(SCK)、主機輸入從機輸出數(shù)據(jù)線MISO、主機輸出/從機輸入數(shù)據(jù)線MOSI和低電平有效的從機選擇線SS。可見SPI總線只需要少數(shù)的幾根線,就可以實現(xiàn)與具有SPI總線硬件接口功能的各種器件進行通信,并且用SPI總線接口簡化電路設(shè)計,節(jié)省許多I/O口線供其它功能使用,提高了設(shè)計的可靠性。而對于一些不具有SPI硬件接口的器件,可以用I/O口線來模擬SPI。由于nRF905射頻收發(fā)模塊是通過SPI接口由MCU控制的,而采用不具有SPI接口的單片機,只能通過單片機的I/O口來模擬SPI總線接口,實現(xiàn)無線通信系統(tǒng)的設(shè)計。這樣當(dāng)傳輸速度要求不是太高時,使用I/O口模擬SPI總線,既可以增加應(yīng)用系統(tǒng)接口器件的種類,同時還提高系統(tǒng)的性能,節(jié)約成本。
評論