摘要:本文根據(jù)實(shí)際需要,在實(shí)現(xiàn)無(wú)線數(shù)據(jù)傳輸系統(tǒng)基本功能的前提下,選用功耗較低的CC1120芯片作為無(wú)線收發(fā)單元。在分析CC1120功能特性并介紹嵌入式操作系統(tǒng)μC/OS—III的基礎(chǔ)上,闡述如何實(shí)現(xiàn)基于STM32F103ZE平臺(tái)的CC1120驅(qū)動(dòng)程序。
引言
隨著頻率資源的日趨緊張,短距離無(wú)線通信按窄帶化趨勢(shì)發(fā)展。無(wú)線數(shù)傳模塊一般由微處理器和收發(fā)芯片組成,本文所設(shè)計(jì)的窄帶數(shù)傳模塊的微處理器采用了STM32F103ZE芯片,收發(fā)芯片選用了TI公司新推出的CC1120,CC1120通過(guò)SPI串行總線協(xié)議與MCU相連接。同時(shí),采用了可移植、可植入ROM、可裁剪、搶占式的實(shí)時(shí)多任務(wù)操作系統(tǒng)μC/OS—III作為軟件平臺(tái)。
1 系統(tǒng)硬件電路
1.1 CC1120的內(nèi)部結(jié)構(gòu)
CC1120是TI公司專為經(jīng)濟(jì)高效的無(wú)線系統(tǒng)在低功耗和低電壓操作下,實(shí)現(xiàn)數(shù)據(jù)傳輸而設(shè)計(jì)的一款完全集成的單芯片無(wú)線收發(fā)器。該芯片主要應(yīng)用于ISM(工業(yè)、科學(xué)和醫(yī)療)以及SRD(短程設(shè)備)頻帶。CC1120的主要特性有:體積小,超低功耗,可配置數(shù)據(jù)速率(1.2~200kbps),可編程控制輸出功率(步長(zhǎng)為0.5 dB,最高功率16 dBm),接收機(jī)靈敏度高(1.2 kbps數(shù)據(jù)速率下為123 dBm),還支持2FSK、2GFSK、4FSK、4GFSK、MSK、ASK、OOK及模擬FM多種調(diào)制方式等。
CC1120的內(nèi)部結(jié)構(gòu)框圖如圖1所示。CC1120具有一個(gè)低功耗IF接收機(jī),低噪聲放大器(LNA)將接收到的RF、信號(hào)放大,并在求積分(I和Q)過(guò)程中被降壓轉(zhuǎn)換至中頻(IF)。在IF下,I/Q信號(hào)被ADC數(shù)字化。自動(dòng)增益控制(AGC)、精確信道濾波和調(diào)制解調(diào)位/數(shù)據(jù)包同步均以數(shù)字方式完成。CC1120的發(fā)射器部分基于RF頻率直接合成,頻率合成器包括一個(gè)完全片上LC VCO和一個(gè)90°相位轉(zhuǎn)換器,用來(lái)在接收模式下向降壓轉(zhuǎn)換混頻器生成I和Q本振信號(hào)。一個(gè)4線SPI串行接口用于配置數(shù)據(jù)和緩沖區(qū)存取。數(shù)字基帶包括了對(duì)信道配置、數(shù)據(jù)包處理以及數(shù)據(jù)緩沖的支持。
1.2 CC1120的配置特性
配置寄存器的讀、寫(xiě)操作時(shí)序如圖2所示。通過(guò)一個(gè)4線串行SPI兼容接口(SI、SO、SCLK和CSn)可對(duì)CC1120進(jìn)行配置,該接口還可用于讀取和寫(xiě)入緩沖數(shù)據(jù)。SPI接口上的所有數(shù)據(jù)傳輸均以最高位開(kāi)始。
SPI接口上的所有事務(wù)均以一個(gè)報(bào)頭字節(jié)作為開(kāi)始,該字節(jié)包含一個(gè)R/W位、一個(gè)突發(fā)存取位(B)以及一個(gè)6位地址(A5~A0),報(bào)頭字節(jié)幀格式如圖3所示。在SPI總線上傳輸數(shù)據(jù)期間,CSn引腳必須保持低電平,否則傳輸就會(huì)被取消。拉低CSn電平時(shí),在開(kāi)始傳輸該報(bào)頭字節(jié)以前,MCU必須等待,直到SO引腳變?yōu)榈碗娖綖橹?。這表明,芯片正在運(yùn)行。除非芯片處在SLEEP或XOFF狀態(tài),否則SO引腳總會(huì)在CSn變?yōu)榈碗娖揭院罅⒓醋優(yōu)榈碗娖健?span style="line-height:1.5;">
CC1120的寄存器空間主要作為CC1120的頻率、數(shù)據(jù)速率、中頻等大部分參數(shù)的配置。而擴(kuò)展寄存器大部分為芯片配置輔助測(cè)試寄存器(只讀),少部分為配置寄存器(可讀寫(xiě))。指令選通用于芯片狀態(tài)切換和沖刷RX/TXFIFO。128字節(jié)TX FIFO和128字節(jié)RX FIFO均通過(guò)0x3F地址進(jìn)行存取。當(dāng)R/W位為0時(shí),則TX FIFO被存取;當(dāng)R/W位為1時(shí),則RX FIFO被存取。其中,TXFIFO為只寫(xiě),而RX FIFO為只讀。寄存器地址映射如圖4所示。