射頻SoC nRF9E5及無(wú)線數(shù)據(jù)傳輸系統(tǒng)的實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:介紹最新51兼容的射頻SoC(片上系統(tǒng))nRF9E5的系統(tǒng)框架、各個(gè)組成部分、工作方式和配置方法;分析無(wú)線數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)和運(yùn)用nRF9E5進(jìn)行無(wú)線數(shù)據(jù)系統(tǒng)設(shè)計(jì)的通信協(xié)議;給出系統(tǒng)的硬件原理圖和程序流程圖;歸納nRF9E5在無(wú)線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)中的優(yōu)勢(shì)。 關(guān)鍵詞:nRF9E5 射頻SoC 數(shù)據(jù)傳輸 無(wú)線通信 51系列 引言 nRF9E5是Nordic VLSI公司于2004年2月5日推出的系統(tǒng)級(jí)RF芯片,其內(nèi)置nRF905 433/868/915MHz收發(fā)器、8051兼容微控制器和4輸入10位80ksps A/D轉(zhuǎn)換器,是真正的系統(tǒng)級(jí)芯片,如圖1所示。內(nèi)置nRF905收發(fā)器與nRF905芯片的收發(fā)器一樣,可以工作于ShockBurst(自動(dòng)處理前綴、地址和CRC)方式。內(nèi)置電壓調(diào)整模塊,最大限度地抑制噪音,為系統(tǒng)提供1.9~3.6V的工作電壓,QFN5×5mm封裝,載波檢測(cè)。nRF9E5符合美國(guó)通信委員會(huì)和歐洲電信標(biāo)準(zhǔn)學(xué)會(huì)的相關(guān)標(biāo)準(zhǔn)。由于nRF905功耗低,工作可靠,因此很適用于無(wú)線數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)。 1.1 nRF9E5硬件 (1)微控制器 nRF9E5的片內(nèi)微控制器與標(biāo)準(zhǔn)8051兼容,指令時(shí)序與標(biāo)準(zhǔn)8051稍有區(qū)別。典型的區(qū)別是:nRF9E5的片內(nèi)微控制器的指令周期為4到20個(gè)指令周期。中斷控制器支持5個(gè)擴(kuò)展中斷源:ADC中斷、SPI中斷、RADIO1中斷、RADIO2中斷和喚醒定時(shí)器中斷。片內(nèi)控制器還有3個(gè)與8052相同的定時(shí)器。1個(gè)和8051相同的串口,可以用定時(shí)器1和定時(shí)器2來(lái)作為異步通信的波特率產(chǎn)生器。此外,還擴(kuò)展了2個(gè)數(shù)據(jù)指針,以方便于從XRAM區(qū)讀取數(shù)據(jù)。微處理器中有256B的數(shù)據(jù)RAM和512B的ROM。上電復(fù)位或軟件復(fù)位后,處理器自動(dòng)執(zhí)行ROM引導(dǎo)區(qū)中的代碼。用戶程序通常是在引導(dǎo)區(qū)的引導(dǎo)下,從EEROM加載到1個(gè)4KB的RAM中,這個(gè)4KB的RAM也可作存儲(chǔ)數(shù)據(jù)用。NRF9E5的大部分寄存器和標(biāo)準(zhǔn)8051相同,只是增加了一些特殊功能寄存器,如RADIO(P2)、ADCCON、ADCDATAH、ADCDATAL、ADCSTATIC、PWMCON、PWMDUTY、RCAP2L、RCAP2H、CKLFCON等。nRF9E5中的P0、P1和P2口寄存器地址和標(biāo)準(zhǔn)8051中的相同,都是0x80、0x90、0xA0,但功能和標(biāo)準(zhǔn)8051中的有所不同。 nRF9E5內(nèi)有一個(gè)低頻的時(shí)鐘CKLF,該時(shí)鐘常開。當(dāng)晶振開始工作后,CKLF頻率為4Hz;晶振不工作時(shí),CKLF是一個(gè)低功耗RC晶振器,只要VDD≥1.8V,其連續(xù)工作。RTC喚醒定時(shí)器、WTD(看門狗)和GPIO喚醒全都工作在CKLF頻率,以保證芯片功耗工作時(shí)能夠完成這三個(gè)功能。RTC喚醒定時(shí)器是一個(gè)24位可編程控制的遞減計(jì)數(shù)器,WTD則是一個(gè)16位可編程控制遞減計(jì)數(shù)器。RTC喚醒定時(shí)器和WTD的循環(huán)周期一般在300μs~80ms,默認(rèn)為1ms。RTC喚醒定時(shí)器也能作GPIO的輸出源,也就是說,當(dāng)RTC喚醒定時(shí)器初始化時(shí)間發(fā)生溢出時(shí),能夠產(chǎn)生一個(gè)用作GPIO輸出的程序脈沖。 (3)SPI接口和A/D轉(zhuǎn)換器 SPI(串行外設(shè)接口)的接口引腳有MISO(接收EEPROM的SDO送來(lái)的數(shù)據(jù))、SCK(給EEPROM的SCK提供時(shí)鐘信號(hào))、MOSI(送數(shù)據(jù)到EEPROM的SDI)、EECSN(給EEPROM的CSN送使能信號(hào))。SPI口的MISO、SCK和MOSI與P1口的低3位重用,通過寄存器SPI_CTRL控制來(lái)控制功能間的撤換。SPI硬件不產(chǎn)生任何片選信號(hào),可以用GPIO口來(lái)進(jìn)行片選。通常,系統(tǒng)上電時(shí),SPI自動(dòng)和片外25320相連。當(dāng)程序加載完成后,MISO(P1.2)、MOSI(P1.0)可能會(huì)用作其它用途,比如其它的SPI器件或GPIO。 nRF9E5片內(nèi)有10位ADC,A/D轉(zhuǎn)換參考電壓可以通過軟件設(shè)置在AREF和1.22V之間(內(nèi)部參考電壓)。A/D轉(zhuǎn)換器的4個(gè)輸入可通過軟件進(jìn)行選擇,通道0~3可以把對(duì)應(yīng)引腳AIN0~AIN3上的電壓值分別轉(zhuǎn)換為數(shù)字值,通道4用于對(duì)nRF9E5工作電壓的監(jiān)控。A/D轉(zhuǎn)換器默認(rèn)工作于10位方式,可通過軟件使其工作于6位、8位或12位方式。 nRF9E5收發(fā)器通過內(nèi)部并行口或內(nèi)部SPI口與其它模塊進(jìn)行通信 ,具有同單片射頻收發(fā)器nRF905相同的功能。收發(fā)器通過片內(nèi)MCU的并行口或SPI口與微控制器通信,數(shù)據(jù)準(zhǔn)備好,載波檢測(cè)和地址匹配信號(hào)能夠作為微控制器和中斷。 nRF905工作于433/868/915MHz ISM頻段。收發(fā)器由1個(gè)完事的頻率合成器、1個(gè)功率放大器、1個(gè)調(diào)節(jié)呂和2個(gè)接收器組成。輸出功率、頻道和其它射頻參數(shù)可通過對(duì)特殊功能寄存器RADIO(0xA0)編程進(jìn)行控制。發(fā)射模式下,射頻電流消耗為11mA,接收模式下為12.5mA。為了節(jié)能,可通過程序控制收發(fā)器的開/關(guān)。 1.2 nRF9E5的收發(fā)方式 不同于nRF401和nRF903,nRF9E5使用SPI接口進(jìn)行單片機(jī)與無(wú)線模塊間的數(shù)據(jù)傳輸。這部分在nRF9E5片內(nèi)的8051內(nèi)核與nRF905射頻收發(fā)器之間完成。nRF9E5片內(nèi)的8051內(nèi)核與nRF905射頻收發(fā)器之間完成。nRF905片內(nèi)的8051內(nèi)核與nRF905射頻收發(fā)器之間完成。nRF9E5的收發(fā)器有三種工作方式,ShockBurst接收(RX)方式、ShockBurst發(fā)送(TX)方式和空閑方式。當(dāng)收發(fā)器在空閑方式下,微控器依然在運(yùn)行。 nRF9E5使用Nordic VLSI公司的ShockBurst的特性,進(jìn)行高速的數(shù)據(jù)傳輸。與射頻數(shù)據(jù)相關(guān)的協(xié)議由nRF9E5片內(nèi)的nRF9E5收發(fā)器自動(dòng)處理。nRF9E5只用簡(jiǎn)單的SPI接口便能和nRF9E5進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)傳輸?shù)乃俣热Q于SPI接口的速度,這個(gè)可以在nRF9E5片內(nèi)8051內(nèi)核中進(jìn)行配置。ShockBurst實(shí)現(xiàn)低速數(shù)據(jù)輸入,高速數(shù)據(jù)輸出,從而降低了系統(tǒng)的平均能耗。在ShockBurst接收方式下,當(dāng)收到一個(gè)有效地址的射頻數(shù)據(jù)包時(shí),地址匹配寄存器位(AM)和數(shù)據(jù)準(zhǔn)備好寄存器位(DR)通知片內(nèi)MCU把數(shù)據(jù)讀出。在ShockBurst發(fā)送方式下,nRF9E5自動(dòng)給要發(fā)送的數(shù)據(jù)加上前綴和CRC校驗(yàn)。當(dāng)數(shù)據(jù)發(fā)送完后,數(shù)據(jù)準(zhǔn)備好寄存器位(DR)會(huì)通知MCU數(shù)據(jù)已經(jīng)處理完畢。 當(dāng)系統(tǒng)沒有發(fā)送和任務(wù)時(shí),其進(jìn)入空閑方式,nRF9E5在空閑方式下,一旦有任務(wù)要處理時(shí),其能夠在很短的時(shí)間內(nèi)就進(jìn)入ShockBurst接收方式和ShockBurst發(fā)送方式??臻e方式下,晶體振蕩器依然工作,配置字中的內(nèi)容不至于丟失。 1.3 載波檢測(cè) 在ShockBurst接收方式下,當(dāng)出現(xiàn)nRF9E5工作信道內(nèi)的射頻載波時(shí),載波檢測(cè)引腳(CD)被置高,這個(gè)特性很好的避免了同一工作頻率下不同發(fā)射器數(shù)據(jù)包之前的碰撞。當(dāng)收發(fā)器準(zhǔn)備發(fā)射數(shù)據(jù)時(shí),它首先進(jìn)入接收方式并探測(cè)所工作的信道是否空閑。載波檢測(cè)的標(biāo)準(zhǔn)一般比靈敏度低5dB,比如,靈敏度為-100dBm,載波檢測(cè)功能探測(cè)低至-105dBm的載波。也就是說,載波低于-105dBm,載波檢測(cè)信號(hào)為低(一般為0),高于-95dBm,則載波檢測(cè)信號(hào)為高(一般為VDD),介于-105~95dBm之間,載波檢測(cè)信號(hào)可能為低也可能為高。 2 無(wú)線數(shù)據(jù)傳輸系統(tǒng) 2.1 系統(tǒng)組成 無(wú)線數(shù)據(jù)傳輸系統(tǒng)有點(diǎn)對(duì)點(diǎn),點(diǎn)對(duì)多點(diǎn)和多點(diǎn)對(duì)多點(diǎn)三種。本系統(tǒng)由于實(shí)際應(yīng)用的需要,由于位PC機(jī),主接收器和多臺(tái)數(shù)據(jù)終端組成。主接收器和數(shù)據(jù)終端之前的數(shù)據(jù)傳輸通過nRF9E5進(jìn)行,構(gòu)成點(diǎn)對(duì)多點(diǎn)多無(wú)線數(shù)據(jù)傳輸系統(tǒng)。整個(gè)系統(tǒng)中,PC機(jī)和數(shù)據(jù)終端之間的無(wú)線通信采用433MHz的頻段作為載波頻率。為了避免同頻干擾的問題,系統(tǒng)采用TDMA(Time Division Multiple Access)通信技術(shù)。主接收器采用逐一掃描的方式探測(cè)各個(gè)數(shù)據(jù)終端有沒有收發(fā)通信請(qǐng)求或其它任務(wù);數(shù)據(jù)終端則采用中斷方式,對(duì)主接收器發(fā)出的地址信息進(jìn)行處理,若與本機(jī)地十相符則執(zhí)行命令。由此可見,上位PC機(jī)與數(shù)據(jù)終端的通信轉(zhuǎn)化為主接收器與數(shù)據(jù)終端間的通信,以及PC機(jī)與主接收通過串口(USB或UART)間的通信。整個(gè)無(wú)線數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)如圖2所示。 2.2 通信協(xié)議 通信協(xié)議是通信雙方為實(shí)現(xiàn)信息交換而制定的規(guī)則。本系統(tǒng)采用時(shí)分多路訪問通信技術(shù)(TDMA),將點(diǎn)對(duì)多點(diǎn)的通信方式轉(zhuǎn)化為點(diǎn)對(duì)點(diǎn)的通信,因此必然涉及信源與信宿之間建立通信連接時(shí)的地址匹配問題。由于主接收器與數(shù)據(jù)終端之間的通信可能會(huì)受到其它數(shù)據(jù)終端或外界環(huán)境的干擾而發(fā)生錯(cuò)誤,因此,需要通信協(xié)議來(lái)保證數(shù)據(jù)傳輸?shù)目煽啃浴?/P> nRF9E5只有一種協(xié)議格式,其中的前綴也就是數(shù)據(jù),設(shè)備地址包括本機(jī)的地址和主接收器的地址,CRC校驗(yàn)可進(jìn)行選8位或16位。 3 無(wú)線數(shù)據(jù)傳輸系統(tǒng)的實(shí)現(xiàn) 3.1 系統(tǒng)硬件 圖3為無(wú)線數(shù)傳系統(tǒng)中主要接收器的硬件原理圖。數(shù)據(jù)終端的硬件原理與圖3類似,只不過沒有與PC機(jī)相接的串口部分,并且GPIO口和A/D轉(zhuǎn)換口號(hào)相應(yīng)的數(shù)據(jù)輸入端相連,如溫度傳感器和中斷信號(hào)等。ANT1和ANT2為天線連接引腳,可采用PCB環(huán)形差分天線,晶振工作頻率為16MHz。25AA320為EEPROM,在nRF9E5上電后,系統(tǒng)根據(jù)引導(dǎo)程序,把25AA320中和程序代碼拷貝到nRF9E5的4KB RAM中。LM1117為電源管理模塊,把5V電平轉(zhuǎn)化為nRF9E5可用的3.3V。MAX3232CSE為nRF9E5串口與PC串口間通信的電平轉(zhuǎn)換芯片。由圖3可知,用nRF9E5進(jìn)行無(wú)線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)非常方便。nRF9E5的外形尺寸非常小,在對(duì)外形尺寸要求很嚴(yán)格的場(chǎng)合,nRF9E5更使用。 3.2 系統(tǒng)軟件 無(wú)線數(shù)據(jù)傳輸主要由無(wú)線數(shù)據(jù)終端、主接收器和PC機(jī)組成,PC機(jī)與主接收器間用串行口通信。整個(gè)系統(tǒng)的各個(gè)部分都是服務(wù)于無(wú)線數(shù)據(jù)傳輸這個(gè)目的。所以,在整個(gè)系統(tǒng)的軟件設(shè)計(jì)中,無(wú)線數(shù)據(jù)的傳輸為最主要部分。如圖4和圖5所示,是無(wú)線數(shù)據(jù)傳輸?shù)慕邮蘸桶l(fā)送流程。軟件設(shè)計(jì)應(yīng)根據(jù)通信協(xié)議并考慮數(shù)據(jù)的糾錯(cuò),檢錯(cuò)可采用CRC校驗(yàn)8位或16位方式。在圖4、圖5中,TRX_CE發(fā)送和接收使能寄存器位,DR為數(shù)據(jù)準(zhǔn)備寄存器位,AM為地址匹配寄存器位,AUTO_RETRAN為自動(dòng)重發(fā)寄存器位。 4 結(jié)論 利用射頻無(wú)線片上系統(tǒng)nRF9E5,容易實(shí)現(xiàn)小尺寸、高穩(wěn)定性的無(wú)線數(shù)據(jù)傳輸系統(tǒng),433/868/915MHz三個(gè)工作頻段可根據(jù)使用需要進(jìn)行選擇。nRF9E5片內(nèi)的UART方便于實(shí)現(xiàn)與PC機(jī)間的串行通信,其片內(nèi)的A/D轉(zhuǎn)換器方便于進(jìn)行數(shù)據(jù)采集。nRF9E5的ShockBurst技術(shù)和電源監(jiān)管技術(shù),使得無(wú)線數(shù)據(jù)傳輸系統(tǒng)的功耗更低,設(shè)計(jì)中為節(jié)約用電而編寫的程序代碼也更少。 |