3. 2 通信程序設(shè)計
系統(tǒng)通信程序包括路燈與路燈節(jié)點之間的通信及其路燈節(jié)點與監(jiān)控中心之間的通信兩部分。
1) 路燈節(jié)點之間的通信實現(xiàn)。
路燈節(jié)點之間實現(xiàn)通信,一方面是為了了保證路燈在夜間沒有行人或車輛通過時處于節(jié)電狀態(tài),即微亮狀態(tài),另一方面是當路燈節(jié)點檢測到道路上有行人或車輛通過時,使該路燈轉(zhuǎn)為全亮,并通知下一盞路燈轉(zhuǎn)為全亮,以確保行人或車輛的出行安全。
路燈節(jié)點之間采用串口通信,通信參數(shù)配置為異步通信、8 位數(shù)據(jù)、無奇偶校驗、一個停止位及無倍速。串口的發(fā)送程序采用查詢方式,接收程序采用中斷接收方式。
路燈節(jié)點控制器之間的發(fā)送程序為:
sysDRFarr [0] = 0xfd; / /點對點數(shù)據(jù)傳輸指令
sysDRFarr [1] = 1; / /數(shù)據(jù)長度
sysDRFarr [2] = sysAddress [( LEDNumber )* 11 + 1]; / /目標地址高
sysDRFarr [3] = sysAddress [( LEDNumber )* 11 + 2]; / /目標地址低
sysDRFarr [4] = 0; / /數(shù)據(jù)
put_ arr ( sysDRFarr,5) ; / /發(fā)送一串數(shù)據(jù)幀
接收處理程序為:
void PointToPointRecive ( void)
{
LEDPWM_ Adjust ( usartReceiveBuf [3 ]) ;
/ /接收到的數(shù)據(jù)
sysDRFarrShortAddress [0] = usartReceiveBuf[4]; / /來源地址高
sysDRFarrShortAddress [1] = usartReceiveBuf[5]; / /來源地址低
usartReceive_ Init ( ) ; / /串口數(shù)據(jù)初始化
}
2) 路燈節(jié)點與監(jiān)控中心之間的通信。
路燈節(jié)點與監(jiān)控中心之間的通信一方面可以通過上位機為路燈節(jié)點配置相關(guān)信息、發(fā)送控制指令,另一方面可以接收來自路燈節(jié)點的現(xiàn)場運行信息,實現(xiàn)系統(tǒng)在監(jiān)控室進行路燈系統(tǒng)操控和故障查詢、報警等功能。
采用PC 機串口與網(wǎng)絡(luò)協(xié)調(diào)器相連,實現(xiàn)讀取路燈節(jié)點信息或控制路燈運行狀態(tài)。例如PC 機要讀取當前系統(tǒng)路燈信息,利用串口調(diào)試工具觀察PC機向無線網(wǎng)絡(luò)發(fā)送和接收數(shù)據(jù),如圖2 所示。發(fā)送指令格式為: FB + 02 + 14 + 路燈編號( 本系統(tǒng)中路燈編號為01,02,03),表示讀取編號為01、02、03 的路燈節(jié)點當前信息; 路燈節(jié)點做出回應(yīng),通過無線網(wǎng)絡(luò)返回路燈信息格式為: 環(huán)境光強+ 路燈光強+ 故障情況。路燈節(jié)點1 返回的信息表明當前所處環(huán)境光強度為E2(由強到弱范圍: FE ~ 00)、路燈亮度FB ( 由滅到全亮范圍:FE ~ 00) 、無故障00( 有故障為01) 。
圖2 串口調(diào)試界面
評論
查看更多