消防指示燈智能監(jiān)控系統(tǒng)三端口網(wǎng)關(guān)設(shè)計(jì)
圖4 為單片機(jī)采用查詢方式的程序流程圖。RI、TI分別是串口接收標(biāo)志和發(fā)送標(biāo)志。TX_FLG =0 表示STC11 處于接收狀態(tài),TX_FLG=1 表示發(fā)送狀態(tài)。子程序SPI_BYTE 實(shí)現(xiàn)模擬SPI 主站功能。
圖4 擴(kuò)展串口的STC11 單片機(jī)流程圖。
1.3 環(huán)形總線主站軟件結(jié)構(gòu)
在第二級(jí)環(huán)路通信中, 中繼網(wǎng)關(guān)作為環(huán)路主站, 由STC12 單片機(jī)的串口1 和串口2 構(gòu)成的兩個(gè)RS-485 端口實(shí)現(xiàn)。3 個(gè)通信端口分別設(shè)有獨(dú)立的接收(RX) 緩沖區(qū)、發(fā)送(TX) 緩沖區(qū)以及專用標(biāo)志寄存器。
實(shí)現(xiàn)環(huán)路通信主站的軟件結(jié)構(gòu)如圖5 所示。正常工作時(shí), 兩個(gè)串口一個(gè)作為發(fā)送方, 另一個(gè)作接收方。比較接收方的接收數(shù)據(jù)與發(fā)送方的發(fā)送數(shù)據(jù), 若相等則環(huán)路總線是通的;否則,總線出現(xiàn)斷路故障,用標(biāo)志位LP_BRK=1表示。
注: 串口工作周期包括串口發(fā)送過(guò)程和等待下位機(jī)接收過(guò)程和該串口接收三部分。
圖5 環(huán)形總線主站通信流程圖。
在 環(huán)路總線完好的情況下, 在線的燈具總是既連接在串口1 上, 也連接在串口2 上。在環(huán)路斷線狀態(tài)下, 對(duì)每個(gè)燈具, 從串口2( 或串口1) 發(fā)送命令, 若接收到正確應(yīng)答數(shù)據(jù), 則記錄該燈具連接在該端口上, 用標(biāo)志位ON_COM2 =1 ( 或ON_COM1 =1) 表示; 若應(yīng)答信息超時(shí)或返回信息不正確, 則重發(fā)相同命令數(shù)據(jù)至多3 次, 仍然收不到正確應(yīng)答信號(hào), 則判斷該燈具沒(méi)有連接在該發(fā)送端口上, 用ON_COM2=0( 或ON_COM1=0) 表示。這樣, 根據(jù)每個(gè)燈具所連接串口的不同, 可以判斷環(huán)路斷線所在位置。
當(dāng)環(huán)路斷開(kāi)時(shí), 兩個(gè)串口都作為命令發(fā)送方, 整個(gè)環(huán)路分為兩個(gè)單總線結(jié)構(gòu), 提高了網(wǎng)絡(luò)傳輸可靠性。
基于兩級(jí)RS485 總線環(huán)形通信網(wǎng)路的應(yīng)急燈智能監(jiān)控系統(tǒng), 設(shè)計(jì)了三端口通信網(wǎng)關(guān), 實(shí)現(xiàn)了監(jiān)控計(jì)算機(jī)與大量智能應(yīng)急燈之間命令和狀態(tài)信息交換, 監(jiān)控計(jì)算機(jī)管理整個(gè)系統(tǒng), 網(wǎng)關(guān)負(fù)責(zé)傳遞發(fā)送至智能應(yīng)急燈的信息, 同時(shí)也將從燈具接收到的信息反饋至監(jiān)控計(jì)算機(jī)。
此外也可不通過(guò)監(jiān)控計(jì)算機(jī)直接控制該環(huán)路中的智能應(yīng)急標(biāo)志燈。經(jīng)調(diào)試, 所預(yù)設(shè)功能完全實(shí)現(xiàn)。
評(píng)論