基于ARM的無線數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)
摘要:介紹一種基于ARM微控制器來實(shí)現(xiàn)無線分布式的數(shù)據(jù)傳輸系統(tǒng)。網(wǎng)絡(luò)節(jié)點(diǎn)硬件主要使用NXP公司的LPC1766作為微控制器、Nordic公司的nRF905作為射頻芯片。軟件以C語言和匯編語言編制,采用多層次結(jié)構(gòu)設(shè)計(jì)。由于nRF905芯片的各種優(yōu)越性,該系統(tǒng)具有較強(qiáng)的抗干擾能力,具有較高的實(shí)用價(jià)值。
關(guān)鍵詞:LPC1766;Codex-M3;無線數(shù)據(jù)傳輸;nRF905
隨著21世紀(jì)社會經(jīng)濟(jì)的迅速發(fā)展,人們對能夠隨時(shí)隨地提供信息服務(wù)的移動(dòng)計(jì)算與寬帶無線通信的需求越來越迫切。在工業(yè)生產(chǎn)中,常常需要采集大量的現(xiàn)場數(shù)據(jù),如溫度、重量、氣壓等,并將這些數(shù)據(jù)傳輸?shù)街鳈C(jī)進(jìn)行處理,由主機(jī)根據(jù)處理的結(jié)果,將控制信號傳輸給現(xiàn)場執(zhí)行模塊進(jìn)行各種操作??梢钥闯鰯?shù)據(jù)不管是從采集設(shè)備到處理終端,還是從監(jiān)測控制指令從處理終端到采集設(shè)備,均需經(jīng)過傳輸過程這一重要環(huán)節(jié)。但當(dāng)有線網(wǎng)絡(luò)不通暢或由于現(xiàn)場環(huán)境因素的限制不便架設(shè)線路的情況下,使用無線通信技術(shù)進(jìn)行數(shù)據(jù)采集、傳輸顯得更加實(shí)用、高效、快捷。
1 無線數(shù)據(jù)傳輸系統(tǒng)工作原理
如圖1所示,整個(gè)系統(tǒng)首先用傳感器將現(xiàn)場信號轉(zhuǎn)換為電信號,經(jīng)過模/數(shù)轉(zhuǎn)換器ADC采樣、量化、編碼后轉(zhuǎn)換成數(shù)字信號,送到微控制器進(jìn)行初步處理,然后利用nRF905無線數(shù)據(jù)傳輸芯片通過無線方式將有效數(shù)據(jù)發(fā)送給接收端,接收端在接收到有效數(shù)據(jù)后通過串行口將數(shù)據(jù)送到輸出設(shè)備并且對有效數(shù)據(jù)的進(jìn)一步的處理。
1.1 ARM微控制器LPC1766
LPC1766芯片使用高性能的ARM CortexTM-M3 32位的RISC內(nèi)核,工作頻率為100 MHz。它內(nèi)置高速存儲器(高達(dá)512 k字節(jié)的閃存和64 k字節(jié)的SRAM),豐富的增強(qiáng)I/O端口和聯(lián)接到兩條APB總線的外設(shè)。該板包含8通道12位的ADC和10位的DAC、4個(gè)通用16位定時(shí)器、電機(jī)控制PWM接口以及多個(gè)標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)3個(gè)I2C、SPI、2個(gè)I2S、1個(gè)SDIO、4個(gè)USART、一個(gè)USB Host/Device/OTG接口和兩個(gè)CAN、Ethern et MIC接口、Quadrature Encoderinterface。LPC1766芯片工作于-40~+105℃的溫度范圍,供電電壓為2.0~3.6 V。它的一系列省電模式突顯出了它的低功耗的特點(diǎn)。豐富的外設(shè)配置,使得LPC1700微控制器適合于多種應(yīng)用領(lǐng)域:電機(jī)驅(qū)動(dòng)和應(yīng)用、控制醫(yī)療和手持設(shè)備汽車電子等領(lǐng)域。
1.2 nRF905無線數(shù)據(jù)傳輸模塊
nRF905是Nordic VLSI公司推出的單片射頻收發(fā)器,工作電壓為1.9~3.6 V,工作于433 MHz、868 MHz、915 MHz 3個(gè)ISM頻段,頻道轉(zhuǎn)換時(shí)間小于650μs,最大數(shù)據(jù)速率為100 kbit/s。nRF905可以自動(dòng)完成處理字頭和CRC(循環(huán)冗余碼校驗(yàn))的工作,可由片內(nèi)硬件自動(dòng)完成曼徹斯特編碼/解碼,使用SPI接口與微控制器通信,配置非常方便,其功耗非常低。nRF905工作模式主要包括活動(dòng)模式和節(jié)電模式。在活動(dòng)模式下,數(shù)據(jù)能低速從處理器進(jìn)入,然后高速發(fā)射出去;同時(shí),發(fā)送數(shù)據(jù)時(shí)可以自動(dòng)生成數(shù)據(jù)幀頭并計(jì)算CRC校驗(yàn)和。接收數(shù)據(jù)時(shí)具有載波檢測功能,并對接收的代碼進(jìn)行地址檢測,并計(jì)算CRC以保證數(shù)據(jù)的準(zhǔn)確性。
2 無線數(shù)據(jù)傳輸系統(tǒng)硬件設(shè)計(jì)
無線數(shù)據(jù)傳輸系統(tǒng)硬件以LPC1766微控制器及其外圍部件為基礎(chǔ),通過串口收發(fā)數(shù)據(jù)并控制無線傳輸模塊,最終達(dá)到系統(tǒng)要求。
2.1 微控制器模塊的設(shè)計(jì)
本設(shè)計(jì)中采用AMR微控制芯片LPC1766,其有100個(gè)引腳,70多個(gè)輸入輸出端口,其他端口用來與電源、地及電阻等相連;還有看門狗時(shí)鐘、實(shí)時(shí)時(shí)鐘、10位8信道的數(shù)模轉(zhuǎn)換等。其中LPC1766與nRF905通過SIP協(xié)議進(jìn)行通訊。
2.2 無線傳輸模塊的設(shè)計(jì)
無線數(shù)據(jù)傳輸主要利用單片機(jī)LPC1766對無線射頻芯片nRF905的控制實(shí)現(xiàn)的。發(fā)送過程如下:首先LPC1766通過SPI接口對nRF905的各種配置寄存器(如通訊頻率、本機(jī)地址、目標(biāo)地址、數(shù)據(jù)長度等)進(jìn)行設(shè)置,并將要發(fā)送的數(shù)據(jù)放入發(fā)送存儲區(qū)中;然后LPC1766將TRX_CE和TX_EN置高,使nRF905開始傳輸,nRF905啟動(dòng)射頻部分電路,完成數(shù)據(jù)打包,用GFSK的方式以100 kbps的速率將數(shù)據(jù)傳出;如果AUTO_RETRAN被設(shè)置為高,nRF905重復(fù)發(fā)送數(shù)據(jù)直到’FRX—CE被設(shè)置為低;傳輸完成時(shí),如果TRX_CE被置為低,nRF905自動(dòng)進(jìn)入待機(jī)狀態(tài)。
評論