基于LPC1100的溫度檢測(cè)網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)
在使用該溫度傳感器時(shí),需要調(diào)用以下兩個(gè)API函數(shù):本文引用地址:http://m.butianyuan.cn/article/157054.htm
3.3 ZigBee模塊
本節(jié)點(diǎn)的ZigBee模塊使用T1公司的CC2500芯片,使用SimpliciTI協(xié)議來(lái)組建網(wǎng)絡(luò)。其硬件連接如圖3所示。
在使用CC2500時(shí),首先需要配置LPC1114的SPI各個(gè)引腳。另外,還需要將引腳GD00與GDO1配置為MCU中斷,用來(lái)控制收發(fā)網(wǎng)絡(luò)數(shù)據(jù)包。再按照CC2500的初始化時(shí)序來(lái)初始化CC2500芯片,然后交給上層的組網(wǎng)函數(shù)去調(diào)用。CC2500的初始化步驟如下:
①與MCU相連的SPI接口初始化;
②SCLK=1,SI=O;
③CSn=0;
④CSn-1,延時(shí)40μs;
⑤CSn=0;
⑥等待S0引腳變低;
⑦在SI引腳上發(fā)命令SRES;
⑧等待SO引腳再次變低。
此時(shí)如果能正常地讀寫(xiě)相應(yīng)寄存器,則表示CC2500初始化成功。
CC2500初始化成功后,需要配置CC2500的寄存器,以及設(shè)置數(shù)據(jù)包的收發(fā)中斷。由于CC2500寄存器較多,請(qǐng)參考CC2500官方網(wǎng)站的參考代碼。數(shù)據(jù)包的收發(fā)中斷是根據(jù)配置寄存器的值來(lái)控制的。通過(guò)設(shè)置這些寄存器的值,可將GDO0、GDO1配置為收發(fā)數(shù)據(jù)。這里,配置IOCFG0寄存器的值為0x6,即在開(kāi)始接收或者發(fā)送一個(gè)數(shù)據(jù)包時(shí),在GDO0引腳產(chǎn)生一個(gè)高電平跳變;接收或者發(fā)送完后,再變回低電平。因此,將GDO0引腳即PIO2_5配置為輸入引腳,上升沿中斷。代碼如下所示:
此時(shí),如果發(fā)送或者接收到數(shù)據(jù),就可以產(chǎn)生中斷。如果是接收數(shù)據(jù),則在中斷處理函數(shù)PIOINT2-IRQHan-dler中就必須調(diào)用一個(gè)接收函數(shù)。
還有一些涉及到底層通信的地方需要修改,例如:
將底層與硬件相關(guān)的函數(shù)都修改好后,就可以使用上層的組網(wǎng)函數(shù)了。CC2500組網(wǎng)API函數(shù)主要包括如下幾個(gè)函數(shù):
進(jìn)行組網(wǎng)時(shí)需要先調(diào)用SMPL_Init進(jìn)行初始化,然后根據(jù)節(jié)點(diǎn)的功能來(lái)調(diào)用SMPL_Link或者SMPL_LinkListen函數(shù)組成一個(gè)無(wú)線網(wǎng)絡(luò)。最后調(diào)用SMPL_Receive以及SMPL_Send函數(shù)就可以收發(fā)數(shù)據(jù)了。
結(jié)語(yǔ)
本文介紹了一種基于LPC1114的溫度檢測(cè)網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)方法。LPC1114芯片具有低功耗和高性能的特色,加上標(biāo)準(zhǔn)的I2C、SSP等接口,為很多標(biāo)準(zhǔn)接口部件的移植提供了方便。I2C接口的溫度傳感器,也可以替換成I2C接口的濕度傳感器、氣敏傳感器等,以建立一個(gè)基于ZigBee的無(wú)線傳感器網(wǎng)絡(luò)。該設(shè)計(jì)方案對(duì)無(wú)線環(huán)境監(jiān)控網(wǎng)絡(luò)、無(wú)線抄表網(wǎng)絡(luò)等無(wú)線傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)設(shè)計(jì)具有一定參考價(jià)值。
評(píng)論