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