董澤龍 毋茂盛
摘 要:TI公司生產(chǎn)設(shè)計(jì)的CC2530采用8051單片機(jī)內(nèi)核,該芯片不僅集成有UART和SPI接口,還具有采用ZigBee協(xié)議進(jìn)行數(shù)據(jù)無(wú)線發(fā)送和接收功能。為了方便非計(jì)算機(jī)專(zhuān)業(yè)學(xué)生進(jìn)行基于CC2530的開(kāi)發(fā),文中設(shè)計(jì)了SPI/UART到ZigBee協(xié)議的轉(zhuǎn)換模塊,該設(shè)計(jì)可廣泛應(yīng)用于智能家居、遠(yuǎn)程分布式控制等領(lǐng)域,并省去了連線,降低了成本,提高了開(kāi)發(fā)效率。
關(guān)鍵詞:ZigBee;SPI;UART;CC2530
中圖分類(lèi)號(hào):TP212.9 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2015)12-00-03
0 引 言
ZigBee是一種短距離無(wú)線通信協(xié)議,具有方便、成本低等特點(diǎn),特別適合于智能家居、工業(yè)控制等特定的場(chǎng)合,省去連線的麻煩。UART與SPI接口是目前眾多單片機(jī)的標(biāo)準(zhǔn)接口。TI公司生產(chǎn)設(shè)計(jì)的CC2530采用8051單片機(jī)內(nèi)核,不僅集成有UART、和SPI接口,而且還具有采用ZigBee協(xié)議進(jìn)行數(shù)據(jù)無(wú)線發(fā)送和接收的功能,廣泛應(yīng)用于物聯(lián)網(wǎng)技術(shù)領(lǐng)域。由于基于CC2530的開(kāi)發(fā)要求具有TCP/IP協(xié)議等背景知識(shí),對(duì)于非計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生是件比較困難的事。因此,本文利用CC2530設(shè)計(jì)了一個(gè)SPI/UART到ZigBee協(xié)議轉(zhuǎn)換模塊,該模塊通過(guò)UART或SPI接口與其它單片機(jī)系統(tǒng)相連,實(shí)現(xiàn)數(shù)據(jù)的無(wú)線傳輸,可廣泛應(yīng)用于智能家居,分布式控制等領(lǐng)域,大大提高了系統(tǒng)的開(kāi)發(fā)效率。
1 模塊的功能與工作原理
SPI/UART到ZigBee協(xié)議轉(zhuǎn)換模塊可通過(guò)ZigBee協(xié)議無(wú)線接收或發(fā)送數(shù)據(jù),通過(guò)SPI或UART和其它的單片機(jī)系統(tǒng)相接口,作為一個(gè)模塊應(yīng)用到各種相關(guān)的單片機(jī)應(yīng)用系統(tǒng)中;該模塊也可作為ZigBee網(wǎng)絡(luò)的協(xié)調(diào)器使用。模塊工作時(shí)的連接如圖1所示。
2 硬件設(shè)計(jì)
硬件設(shè)計(jì)按功能大約可分為4個(gè)部分。
2.1 CC2530及外圍相關(guān)電路
德州儀器公司推出的SoC芯片CC2530,兼容ZigBee協(xié)議,它采用8051內(nèi)核,并在此基礎(chǔ)上增加了許多功能,如支持基于IEEE 802.15.4協(xié)議的無(wú)線射頻等。CC2530及其外圍相關(guān)電路如圖2所示。
(1)數(shù)字電源和模擬電源通過(guò)電容接地;
(2)通過(guò)配置寄存器,將UART引腳RXD、TXD分別映射到引腳P0.2、P0.3;將SPI的引腳MISO、MOSI、SCK、SSN映射到P1.4、P1.5、P1.6、P1.7,并通過(guò)2個(gè)IDC10連接器和其它單片機(jī)系統(tǒng)相連。
2.2 電平轉(zhuǎn)換電路
CC2530芯片工作電壓為3.3 V,而許多單片機(jī)應(yīng)用系統(tǒng)采用的是5 V的電壓,為了解決與5 V單片機(jī)系統(tǒng)的接口問(wèn)題,設(shè)計(jì)了電平轉(zhuǎn)換電路。具體為采用了4路2輸入與門(mén)芯片74HCT08D,其14腳接5 V電源。由于CC2530為CMOS芯片,輸入可以承受5 V的電壓,所以,由5 V單片機(jī)到轉(zhuǎn)換模塊的信號(hào)不用電平轉(zhuǎn)換電平;而轉(zhuǎn)換模塊到5 V單片機(jī)的信號(hào)要進(jìn)行轉(zhuǎn)換,即將3.3 V輸出的引腳連接到74HCT08的一對(duì)輸入引腳,將對(duì)應(yīng)的輸出引腳連接到其他單片機(jī)相關(guān)引腳即可。
2.3 電源轉(zhuǎn)換電路。
本模塊不帶電源,但需要3.3 V電源。為此,專(zhuān)門(mén)設(shè)計(jì)了5 V到3.3 V電源轉(zhuǎn)換的電路,電路中采用LD1117將輸入到模塊的5 V電源轉(zhuǎn)換成3.3 V電源為CC2530供電。另外還設(shè)計(jì)了對(duì) CC2530的編程與調(diào)試的接口電路。該模塊的實(shí)物圖如圖3所示。
3 軟件設(shè)計(jì)
為了方便用戶進(jìn)行基于CC2530芯片的開(kāi)發(fā),德州儀器公司(Texas Instruments)專(zhuān)門(mén)為用戶開(kāi)發(fā)了Z-Stack協(xié)議棧,它為用戶提供了應(yīng)用層的API,因此,用戶可以不需詳細(xì)了解內(nèi)部實(shí)現(xiàn)原理,就進(jìn)行基于CC2530的應(yīng)用開(kāi)發(fā)。但是由于Z-Stack協(xié)議棧是半開(kāi)源的,對(duì)于底層內(nèi)部實(shí)現(xiàn)原理用戶無(wú)法了解和修改,給移植和深入研究造成了一定的困難。
3.1 寄存器配置
在模塊工作時(shí),相關(guān)引腳必須連接正確。在UART模式下,CTS、RTS引腳不用連接,TXD和RXD與對(duì)應(yīng)通信單片機(jī)的RXD和TXD連接。在SPI模式下,4根引腳對(duì)應(yīng)連接即可。配置寄存器復(fù)用相應(yīng)的引腳如表1所列。
3.2 UART模式操作
UART模式下采用檢測(cè)寄存器的發(fā)送完成標(biāo)志位來(lái)判斷數(shù)據(jù)是否發(fā)送完成;采用中斷方式響應(yīng)數(shù)據(jù)接收中斷,在中斷函數(shù)內(nèi)對(duì)數(shù)據(jù)進(jìn)行處理。
3.3 SPI模式的操作
(1)主模式
4 結(jié) 語(yǔ)
本文設(shè)計(jì)的模塊經(jīng)過(guò)實(shí)際的應(yīng)用,工作穩(wěn)定,實(shí)現(xiàn)了數(shù)據(jù)的無(wú)線傳輸功能,可以作為獨(dú)立擴(kuò)展模塊和其他單片機(jī)進(jìn)行通信,不需從頭設(shè)計(jì)無(wú)線通信的部分,降低開(kāi)發(fā)難度,大大提高了開(kāi)發(fā)的效率??捎糜谥悄芗揖印⒎植际娇刂频阮I(lǐng)域,省去連線的麻煩,節(jié)約開(kāi)支。
參考文獻(xiàn)
[1] 毋茂盛. 單片機(jī)原理與開(kāi)發(fā)[M]. 北京:高等教育出版社,2015.
[2] 王小強(qiáng),歐陽(yáng)駿,黃寧淋.ZigBee無(wú)線傳感器網(wǎng)絡(luò)設(shè)計(jì)與實(shí)現(xiàn)[M].北京:化學(xué)工業(yè)出版社,2012.
[3] 法拉哈尼. ZigBee無(wú)線網(wǎng)絡(luò)與收發(fā)器[M].沈建華,王維華,闊鑫,譯.北京:北京航空航天大學(xué)出版社,2013.
[4] Texas Instruments.CC111xFx, CC243xFx,CC251xFx and CC253xFx SPI[EB/OL].2009. http://www.ti.com.cn/cn/lit/an/swra223a/swra223a.pdf.
[5] Texas Instruments. CC253x/4x User's Guide[EB/OL].2014. http://www.ti.com.cn/cn/lit/ug/swru191f/swru191f.pdf.
[6] Texas Instruments.CC2530 Datasheet[EB/OL].2009. http://www.ti.com.cn/cn/lit/ds/symlink/cc2530.pdf.