呂 璐,韓成浩
(吉林建筑大學(xué),吉林 長(zhǎng)春 130118)
針對(duì)目前無(wú)線消防系統(tǒng)實(shí)現(xiàn)消防設(shè)備聯(lián)動(dòng)的問(wèn)題中,如何使無(wú)線消防指令轉(zhuǎn)為有線信號(hào)從而控制消防設(shè)備穩(wěn)定啟動(dòng)是急需解決的重中之重。無(wú)線消防系統(tǒng)以ZigBee技術(shù)為基礎(chǔ)組成龐大的無(wú)線消防報(bào)警網(wǎng)絡(luò),但無(wú)線信號(hào)只能在ZigBee網(wǎng)絡(luò)中進(jìn)行傳輸,無(wú)法啟動(dòng)消防設(shè)備。本文設(shè)計(jì)了基于SPI總線技術(shù)的無(wú)線信號(hào)轉(zhuǎn)換模塊,以實(shí)現(xiàn)將無(wú)線指令轉(zhuǎn)為有線信號(hào)啟動(dòng)消防設(shè)備。相較于常用的IIC和UART等通信方式,SPI具有配置簡(jiǎn)單,數(shù)據(jù)傳輸靈活且高速傳輸?shù)缺姸喾N優(yōu)勢(shì)。
本模塊主要由CC2530、C8051F040等單片機(jī)組成。模塊結(jié)構(gòu)圖如圖1所示,其中上位機(jī)負(fù)責(zé)將消防指令通過(guò)串口傳送至CC2530;CC2530負(fù)責(zé)組建ZigBee網(wǎng)絡(luò)并傳輸無(wú)線消防指令;C8051F040負(fù)責(zé)通過(guò)SPI技術(shù)將接收到的指令轉(zhuǎn)為有線信號(hào),從而控制消防設(shè)備的穩(wěn)定啟動(dòng),并將啟動(dòng)結(jié)果反饋至上位機(jī)。
圖1 轉(zhuǎn)換模塊構(gòu)成
SPI總線是全雙工高速同步串行接口,其速率比異步通信效率高約20%~30%[1]。相比較于IIC和UART數(shù)據(jù)包限制特定位數(shù)的數(shù)據(jù)傳輸方式,SPI最顯著的優(yōu)勢(shì)在于可以實(shí)現(xiàn)無(wú)中斷的數(shù)據(jù)傳輸。與IIC相比,SPI從機(jī)不需要唯一地址;與UART相比,SPI從機(jī)可使用主機(jī)時(shí)鐘,不需要精密的晶振;與CAN總線相比,不需要借助收發(fā)器即可實(shí)現(xiàn)總線上數(shù)據(jù)傳輸。SPI通信最少只需要3根線,節(jié)約芯片管腳[2]?;谝陨蟽?yōu)勢(shì),目前越來(lái)越多的芯片集成了這種通信協(xié)議。
SPI通信原理簡(jiǎn)單,以主從方式工作。通過(guò)片選確定通信從機(jī)。主機(jī)通過(guò)控制時(shí)鐘信號(hào)線提供的脈沖從而同步主機(jī)與從機(jī)之間的數(shù)據(jù)傳輸,對(duì)通信有絕對(duì)的控制權(quán)。工作方式一般需根據(jù)從機(jī)方式進(jìn)行設(shè)置。
轉(zhuǎn)換模塊需要支持無(wú)線通信功能,因此本文選用CC2530作為無(wú)線通信網(wǎng)絡(luò)的核心芯片。CC2530結(jié)合了領(lǐng)先的RF收發(fā)器的優(yōu)良性能和德州儀器的ZigBee協(xié)議棧,通過(guò)不同的運(yùn)行模式,滿足了超低功耗的要求,常用與家庭自動(dòng)化、工業(yè)控制和監(jiān)控等方面[3]。但CC2530計(jì)算和處理數(shù)據(jù)的能力有限,本文選用C8051F040單片機(jī)配合CC2530共同協(xié)作以實(shí)現(xiàn)更多功能。C8051F系列單片機(jī)采用CIP-51內(nèi)核,具有強(qiáng)大的計(jì)算能力[4],其包含256個(gè)SFR頁(yè),通過(guò)設(shè)置SFR頁(yè),即可配置單片機(jī)和控制片上外設(shè)功能,內(nèi)部含有JTAG接口,可實(shí)現(xiàn)程序下載和調(diào)試。
CC2530和C8051F040單片機(jī)通過(guò)SPI總線進(jìn)行數(shù)據(jù)傳輸。CC2530在ZigBee網(wǎng)絡(luò)中接收到的無(wú)線指令數(shù)據(jù)通過(guò)SPI技術(shù)傳輸至C8051F040中,從而控制有線的消防設(shè)備穩(wěn)定啟動(dòng)。需注意與串口通信不同,SPI通信在接線時(shí)需按照同名引腳接線,轉(zhuǎn)換模塊硬件連接如圖2所示。
圖2 硬件連接圖
本模塊包括CC2530程序設(shè)計(jì)、C8051F040程序設(shè)計(jì)、上位機(jī)程序設(shè)計(jì)三部分。
通過(guò)CC2530可組建ZigBee無(wú)線網(wǎng)絡(luò),其中包括協(xié)調(diào)器、路由器和終端節(jié)點(diǎn)三部分。協(xié)調(diào)器負(fù)責(zé)通過(guò)串口接收上位機(jī)的消防指令并無(wú)線發(fā)送至路由器節(jié)點(diǎn)、終端節(jié)點(diǎn)等。當(dāng)ZigBee網(wǎng)絡(luò)中的終端節(jié)點(diǎn)收到無(wú)線消防指令時(shí),將收到的指令通過(guò)SPI技術(shù)傳送至C8051F040單片機(jī)。
對(duì)于CC2530,有兩個(gè)串行通信接口,可分別運(yùn)行于異步UART模式和同步SPI模式。本文將SPI通信設(shè)置在P1端口的位置2,根據(jù)外設(shè)I/O引腳映射,配置SPI通信引腳分別為SSN:P1.4、SCK:P1.5、MOSI:P1.6、MISO:P1.7。配置CC2530為SPI通信主模式,采用4線制SPI0工作模式,波特率為115200,高位字節(jié)先傳送。
CC2530中SPI主模式的字節(jié)傳送以寄存器U1BUF寫入字節(jié)為開(kāi)始。U1GCR.ACTIVE為變高代表傳送開(kāi)始,變低代表傳送結(jié)束。當(dāng)傳送結(jié)束時(shí),U1CSR.TX_BYTE位置1。在進(jìn)行軟件編程時(shí)注意以片選引腳從高到低電平的跳變?yōu)樾盘?hào)代表選中相應(yīng)從機(jī)設(shè)備。CC2530的程序設(shè)計(jì)流程如圖3所示。
圖3 CC2530程序流程圖
由于CC2530計(jì)算能力有限,因此配備計(jì)算能力更強(qiáng)的C8051F040來(lái)處理大量的數(shù)據(jù),并執(zhí)行相應(yīng)的消防設(shè)備啟動(dòng)。
通過(guò)設(shè)置交叉開(kāi)關(guān),將C8051F040的SPI通信引腳設(shè)置為:NSS:P0.3、SCK:P0.0、MOSI:P0.2、MISO:P0.1。配置C8051F040為4線制從機(jī)模式,采用與主機(jī)相同的SPI0工作模式。因SPI通信中由主機(jī)設(shè)置波特率,因此在配置從機(jī)C8051F040時(shí)無(wú)需設(shè)置通信波特率。
對(duì)于C8051F040,在從模式中接收到的字節(jié)將會(huì)被傳送到接收緩沖器中,然后通過(guò)讀取SPI0DAT來(lái)讀取主機(jī)發(fā)來(lái)的數(shù)據(jù),從而觸發(fā)中斷進(jìn)行動(dòng)作。C8051F040程序設(shè)計(jì)流程如圖4所示。
圖4 C8051F040程序流程圖
通過(guò)上位機(jī),對(duì)環(huán)境溫度進(jìn)行監(jiān)測(cè),當(dāng)超過(guò)設(shè)定的溫度閾值時(shí)報(bào)警,由消防控制中心的工作人員控制啟動(dòng)消防設(shè)備。啟動(dòng)命令通過(guò)串口發(fā)送給CC2530協(xié)調(diào)器,從而進(jìn)行消防報(bào)警信號(hào)無(wú)線傳輸。上位機(jī)LabVIEW程序設(shè)計(jì)流程如圖5所示。
圖5 LabVIEW程序流程圖
上位機(jī)采用LabVIEW進(jìn)行程序設(shè)計(jì),LabVIEW是一種采用圖形化的編程語(yǔ)言開(kāi)發(fā)環(huán)境的標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件。
如圖6所示,紅色為高溫極限,綠色為低溫極限,白色為實(shí)時(shí)溫度。當(dāng)監(jiān)測(cè)到溫度超過(guò)閾值時(shí),報(bào)警燈亮,提醒消防人員。消防人員通過(guò)發(fā)送區(qū)發(fā)送消防指令,通過(guò)ZigBee網(wǎng)絡(luò)無(wú)線傳輸,通過(guò)SPI技術(shù)轉(zhuǎn)為有線指令傳至C8051F040,控制不同的消防設(shè)備穩(wěn)定啟動(dòng)。
圖6 上位機(jī)工作界面
在火災(zāi)發(fā)生時(shí),消防設(shè)備的穩(wěn)定啟動(dòng)為人們的生命財(cái)產(chǎn)安全提供最重要的保障。本文設(shè)計(jì)的基于SPI總線技術(shù)的無(wú)線消防控制系統(tǒng)轉(zhuǎn)換模塊,實(shí)現(xiàn)了在無(wú)線消防控制系統(tǒng)中將無(wú)線信號(hào)轉(zhuǎn)換為有線方式控制消防設(shè)備穩(wěn)定啟動(dòng),為安全生活保駕護(hù)航。采用SPI總線作為單片機(jī)之間的通信方式,不僅節(jié)約了有限的串口資源,更提高了傳輸效率,且操作靈活簡(jiǎn)單。該模塊還可適用于無(wú)線控制、智能家居、邊緣計(jì)算等多個(gè)領(lǐng)域,具有一定的實(shí)用價(jià)值和意義。
吉林工程技術(shù)師范學(xué)院學(xué)報(bào)2022年3期