呂 璐,韓成浩
(吉林建筑大學,吉林 長春 130118)
針對目前無線消防系統實現消防設備聯動的問題中,如何使無線消防指令轉為有線信號從而控制消防設備穩定啟動是急需解決的重中之重。無線消防系統以ZigBee技術為基礎組成龐大的無線消防報警網絡,但無線信號只能在ZigBee網絡中進行傳輸,無法啟動消防設備。本文設計了基于SPI總線技術的無線信號轉換模塊,以實現將無線指令轉為有線信號啟動消防設備。相較于常用的IIC和UART等通信方式,SPI具有配置簡單,數據傳輸靈活且高速傳輸等眾多種優勢。
本模塊主要由CC2530、C8051F040等單片機組成。模塊結構圖如圖1所示,其中上位機負責將消防指令通過串口傳送至CC2530;CC2530負責組建ZigBee網絡并傳輸無線消防指令;C8051F040負責通過SPI技術將接收到的指令轉為有線信號,從而控制消防設備的穩定啟動,并將啟動結果反饋至上位機。

圖1 轉換模塊構成
SPI總線是全雙工高速同步串行接口,其速率比異步通信效率高約20%~30%[1]。相比較于IIC和UART數據包限制特定位數的數據傳輸方式,SPI最顯著的優勢在于可以實現無中斷的數據傳輸。與IIC相比,SPI從機不需要唯一地址;與UART相比,SPI從機可使用主機時鐘,不需要精密的晶振;與CAN總線相比,不需要借助收發器即可實現總線上數據傳輸。SPI通信最少只需要3根線,節約芯片管腳[2]。基于以上優勢,目前越來越多的芯片集成了這種通信協議。
SPI通信原理簡單,以主從方式工作。通過片選確定通信從機。主機通過控制時鐘信號線提供的脈沖從而同步主機與從機之間的數據傳輸,對通信有絕對的控制權。工作方式一般需根據從機方式進行設置。
轉換模塊需要支持無線通信功能,因此本文選用CC2530作為無線通信網絡的核心芯片。CC2530結合了領先的RF收發器的優良性能和德州儀器的ZigBee協議棧,通過不同的運行模式,滿足了超低功耗的要求,常用與家庭自動化、工業控制和監控等方面[3]。但CC2530計算和處理數據的能力有限,本文選用C8051F040單片機配合CC2530共同協作以實現更多功能。C8051F系列單片機采用CIP-51內核,具有強大的計算能力[4],其包含256個SFR頁,通過設置SFR頁,即可配置單片機和控制片上外設功能,內部含有JTAG接口,可實現程序下載和調試。
CC2530和C8051F040單片機通過SPI總線進行數據傳輸。CC2530在ZigBee網絡中接收到的無線指令數據通過SPI技術傳輸至C8051F040中,從而控制有線的消防設備穩定啟動。需注意與串口通信不同,SPI通信在接線時需按照同名引腳接線,轉換模塊硬件連接如圖2所示。

圖2 硬件連接圖
本模塊包括CC2530程序設計、C8051F040程序設計、上位機程序設計三部分。
通過CC2530可組建ZigBee無線網絡,其中包括協調器、路由器和終端節點三部分。協調器負責通過串口接收上位機的消防指令并無線發送至路由器節點、終端節點等。當ZigBee網絡中的終端節點收到無線消防指令時,將收到的指令通過SPI技術傳送至C8051F040單片機。
對于CC2530,有兩個串行通信接口,可分別運行于異步UART模式和同步SPI模式。本文將SPI通信設置在P1端口的位置2,根據外設I/O引腳映射,配置SPI通信引腳分別為SSN:P1.4、SCK:P1.5、MOSI:P1.6、MISO:P1.7。配置CC2530為SPI通信主模式,采用4線制SPI0工作模式,波特率為115200,高位字節先傳送。
CC2530中SPI主模式的字節傳送以寄存器U1BUF寫入字節為開始。U1GCR.ACTIVE為變高代表傳送開始,變低代表傳送結束。當傳送結束時,U1CSR.TX_BYTE位置1。在進行軟件編程時注意以片選引腳從高到低電平的跳變為信號代表選中相應從機設備。CC2530的程序設計流程如圖3所示。

圖3 CC2530程序流程圖
由于CC2530計算能力有限,因此配備計算能力更強的C8051F040來處理大量的數據,并執行相應的消防設備啟動。
通過設置交叉開關,將C8051F040的SPI通信引腳設置為:NSS:P0.3、SCK:P0.0、MOSI:P0.2、MISO:P0.1。配置C8051F040為4線制從機模式,采用與主機相同的SPI0工作模式。因SPI通信中由主機設置波特率,因此在配置從機C8051F040時無需設置通信波特率。
對于C8051F040,在從模式中接收到的字節將會被傳送到接收緩沖器中,然后通過讀取SPI0DAT來讀取主機發來的數據,從而觸發中斷進行動作。C8051F040程序設計流程如圖4所示。

圖4 C8051F040程序流程圖
通過上位機,對環境溫度進行監測,當超過設定的溫度閾值時報警,由消防控制中心的工作人員控制啟動消防設備。啟動命令通過串口發送給CC2530協調器,從而進行消防報警信號無線傳輸。上位機LabVIEW程序設計流程如圖5所示。

圖5 LabVIEW程序流程圖
上位機采用LabVIEW進行程序設計,LabVIEW是一種采用圖形化的編程語言開發環境的標準的數據采集和儀器控制軟件。
如圖6所示,紅色為高溫極限,綠色為低溫極限,白色為實時溫度。當監測到溫度超過閾值時,報警燈亮,提醒消防人員。消防人員通過發送區發送消防指令,通過ZigBee網絡無線傳輸,通過SPI技術轉為有線指令傳至C8051F040,控制不同的消防設備穩定啟動。

圖6 上位機工作界面
在火災發生時,消防設備的穩定啟動為人們的生命財產安全提供最重要的保障。本文設計的基于SPI總線技術的無線消防控制系統轉換模塊,實現了在無線消防控制系統中將無線信號轉換為有線方式控制消防設備穩定啟動,為安全生活保駕護航。采用SPI總線作為單片機之間的通信方式,不僅節約了有限的串口資源,更提高了傳輸效率,且操作靈活簡單。該模塊還可適用于無線控制、智能家居、邊緣計算等多個領域,具有一定的實用價值和意義。