基于LED冷光源的智能路燈控制系統(tǒng)設(shè)計(jì)
3 通信的實(shí)現(xiàn)
整個(gè)系統(tǒng)采用分級(jí)通信機(jī)制,一級(jí)為監(jiān)控終端和集中控制器的通信,另一級(jí)為集中控制器和路燈控制器的通信。
監(jiān)控終端與集中控制器之間的通信采用GPRS。集中控制器監(jiān)控和管理所在轄區(qū)所有的路燈,其和路燈控制器之間采用電力線載波通信。集中控制器可以獨(dú)立工作,根據(jù)提前設(shè)定的方案開關(guān)燈、循環(huán)地收集所轄范圍各路燈控制器的相關(guān)信息,每當(dāng)完成所有路燈的一次信息收集時(shí),集中控制器將剛收集到的各路燈控制器監(jiān)測(cè)路燈的信息迅速反饋給監(jiān)控終端,當(dāng)集中控制器收到監(jiān)控終端的命令時(shí),將監(jiān)控終端下達(dá)的命令解析并通過電力線載波通信發(fā)送給路燈控制器讓其執(zhí)行相關(guān)的動(dòng)作。路燈控制器一直處于等待模式,其循環(huán)地收集該燈柱所有燈的電流及狀態(tài)信息,一旦接收到有與本機(jī)地址相符的命令就執(zhí)行相應(yīng)的動(dòng)作并反饋執(zhí)行結(jié)果給集中控制器。通過這兩級(jí)通信,整個(gè)監(jiān)控系統(tǒng)的巡檢周期可以大大縮短。
3.1 路燈控制器與集中控制器通信實(shí)現(xiàn)
為了便于系統(tǒng)的軟硬件模塊設(shè)計(jì)、調(diào)試,以及后續(xù)的系統(tǒng)調(diào)試、故障分析和系統(tǒng)升級(jí)等,本次設(shè)計(jì)采用了雙CPU結(jié)構(gòu),兩個(gè)CUP分別是PL3105(負(fù)責(zé)載波收發(fā)的相關(guān)控制)和宏晶的STCl2C5404AD(其他控制)。STCl2C5404AD單片機(jī)是一款高速、寬電壓、低功耗的增強(qiáng)型8051內(nèi)核單片機(jī)。由于設(shè)計(jì)中要求的實(shí)時(shí)性不高,這里直接采用串口通信,PL3105的RXD,TXD直接與STCl2C5404AD的RXD,TXD連接,通過編寫單片機(jī)啟動(dòng)程序,對(duì)其初始化設(shè)置,根據(jù)通信協(xié)議完成集中控制器發(fā)布的各項(xiàng)動(dòng)作。電壓、電流采集電路分別通過HCT218及HPT304精密微型電壓互感器感應(yīng)交流的電壓、電流,再通過I-V互換得出相應(yīng)電壓值。該路燈控制器是單燈操作,以同一變壓器工作下的路燈為一局域,多個(gè)電力線載波模塊連接在同一相線上,在主從通信模式下,模塊分別單獨(dú)工作。其硬件框圖如圖2所示。
3.1.1 電力線載波模塊
電力線載波通信(Power Line Communication,PLC)是利用電力線載波實(shí)現(xiàn)信息傳遞的通信方式的統(tǒng)稱。它具有諸多優(yōu)點(diǎn):如應(yīng)用范圍廣、實(shí)現(xiàn)成本低、永久在線等。
電力線載波模塊使用的PL3105芯片是專為自動(dòng)抄表、智能信息家電以及遠(yuǎn)程監(jiān)控系統(tǒng)而開發(fā)的單片系統(tǒng)芯片(SoC)。采用8051指令兼容的高速微處理器,軟件易于開發(fā);內(nèi)嵌的載波通信控制單元使其具備了在低壓電力線上組網(wǎng)遠(yuǎn)程通信的強(qiáng)大功能;CPU通過配置寄存器來實(shí)現(xiàn)對(duì)載波通信的控制,接口方便;擴(kuò)頻通信單元具有較強(qiáng)的抗帶內(nèi)同頻干擾、靈敏度高的優(yōu)點(diǎn)。
3.1.2 路由算法的實(shí)現(xiàn)
路由器是網(wǎng)絡(luò)層的互聯(lián)部件,可提供比網(wǎng)橋更豐富、靈活的網(wǎng)絡(luò)互連功能,是目前使用最多的網(wǎng)絡(luò)互連部件之一。路由算法是用軟件方法實(shí)現(xiàn)路由的功能。
由于一般的電力載波芯片的可靠通信距離在500 m左右,在實(shí)際應(yīng)用中遠(yuǎn)遠(yuǎn)超過最大通信距離,所以在本次設(shè)計(jì)的路燈控制器中增加了路由協(xié)議層,并以其性能優(yōu)越的物理層設(shè)計(jì)及完善的網(wǎng)絡(luò)通信協(xié)議,保證了可靠的網(wǎng)絡(luò)通信性能。在同一轄區(qū)電力線上的設(shè)備只要整合入了此芯片及相關(guān)通信模塊就可成為能利用電力線來進(jìn)行控制的智能控制產(chǎn)品。
路由動(dòng)作包括兩項(xiàng)基本內(nèi)容:尋徑和轉(zhuǎn)發(fā)。尋徑即判定到達(dá)目的地的最佳路徑,路徑信息根據(jù)使用的路由算法不同而不同。路由算法根據(jù)許多信息來填充路由表,并通過交換路由信息維護(hù)、更新其路由表,路由更新信息通常包含全部或部分路由表,通過分析來自其他路由器的新信息,該路由器就可以建立起新的網(wǎng)絡(luò)拓?fù)鋱D。在一些環(huán)境復(fù)雜且大規(guī)模的項(xiàng)目中,采用動(dòng)態(tài)路由算法,通過分析收到的路由更新信息來適應(yīng)網(wǎng)絡(luò)環(huán)境的改變。如果信息表示網(wǎng)絡(luò)發(fā)生了變化,路由軟件就重新計(jì)算路由并發(fā)出新的路由更新信息。這些信息滲入網(wǎng)絡(luò),促使路由器重新計(jì)算并對(duì)路由表做相應(yīng)的改變,并且在適當(dāng)?shù)牡胤揭造o態(tài)路由作為補(bǔ)充,以使系統(tǒng)整體穩(wěn)定運(yùn)行。鑒于有些項(xiàng)目規(guī)模較小,載波網(wǎng)絡(luò)的硬件十分固定,而且相對(duì)來說傳輸?shù)臄?shù)據(jù)也比較少,所以也可以只使用靜態(tài)路由表算法,這使得算法更容易設(shè)計(jì),工作效果也很好。轉(zhuǎn)發(fā)即沿尋徑好的最佳路徑傳送信息分組。
路由動(dòng)作的操作過程主要包括下面幾點(diǎn):
(1)接收、分解數(shù)據(jù)包。當(dāng)路由器接收到數(shù)據(jù)包之后,首先驗(yàn)證其合法性,然后把報(bào)頭、報(bào)文和校驗(yàn)字節(jié)分離開來。再根據(jù)報(bào)頭的不同,選擇操作。
(2)對(duì)數(shù)據(jù)包進(jìn)行處理。當(dāng)接收到有效的報(bào)文時(shí),路由器必須決定該數(shù)據(jù)是本地提交還是向前轉(zhuǎn)發(fā),當(dāng)IP廣播或多播時(shí),也可能是一種混合的情況。對(duì)這些情況的判斷,主要根據(jù)下面三個(gè)規(guī)則進(jìn)行處理:
①當(dāng)IP目的地址中有一個(gè)源路由選項(xiàng)時(shí),根據(jù)路由表的相應(yīng)表項(xiàng)將其發(fā)送到下一個(gè)站點(diǎn),而不進(jìn)行本地提交。
②當(dāng)IP目的地址中的某一個(gè)地址與路由器的某個(gè)端口地址相符時(shí),將進(jìn)行本地提交。
③當(dāng)IP目的地址是一個(gè)廣播地址,或者是個(gè)既要轉(zhuǎn)發(fā)又要本地提交的多播地址時(shí),將同時(shí)進(jìn)行兩個(gè)操作。
(3)轉(zhuǎn)發(fā)尋址。路由器首先在路由表中查找,判明是否知道如何將分組發(fā)送到下一個(gè)站點(diǎn)(路由器或主機(jī)),如果路由器不知道如何發(fā)送分組,通常將該分組丟棄;否則就根據(jù)路由表的相應(yīng)表項(xiàng)將分組發(fā)送到下一個(gè)站點(diǎn),如果目的網(wǎng)絡(luò)直接與路由器相連,路由器就把分組直接送到相應(yīng)的端口上。
(4)轉(zhuǎn)發(fā)驗(yàn)證。在轉(zhuǎn)發(fā)之前,路由器應(yīng)該對(duì)數(shù)據(jù)包進(jìn)行一些校驗(yàn)工作,而只有驗(yàn)證無誤的時(shí)候才能進(jìn)行轉(zhuǎn)發(fā),否則將數(shù)據(jù)包拋棄而重新提示數(shù)據(jù)包的廣播源重發(fā)。這里的校驗(yàn)分為兩個(gè)部分:一個(gè)是IP的驗(yàn)證,看是否接受到得數(shù)據(jù)包目標(biāo)IP符合要求;二是具體數(shù)據(jù)的驗(yàn)證,看校驗(yàn)得到的數(shù)據(jù)是否有誤。
3.2 路燈節(jié)能控制系統(tǒng)軟件實(shí)現(xiàn)
3.2.1 集中控制器
主程序結(jié)構(gòu)分為兩個(gè)部分:一是初始化段,另一部分是循環(huán)主體。為了便于調(diào)試,維護(hù),本設(shè)計(jì)中采用了多模塊的組織結(jié)構(gòu)。每個(gè)任務(wù)都是一個(gè)子函數(shù),在主程序循環(huán)體中,逐一調(diào)用任務(wù)模塊,這些模塊功能的執(zhí)行取決于其條件標(biāo)志是否滿足,主程序流程圖如圖3所示。
為了避免各任務(wù)搶占時(shí)鐘資源,造成時(shí)間沖突,采取以下措施:
(1)根據(jù)任務(wù)的不同給予不同的時(shí)間調(diào)度。例如LCD顯示刷屏處理只需要1 s調(diào)用一次;按鍵處理為10 ms調(diào)用一次;設(shè)備巡檢按照設(shè)備編號(hào)5 min調(diào)用一次,定時(shí)處理程序流程圖如圖4~圖6所示。
(2)為了避免因某些任務(wù)的單次執(zhí)行過長(zhǎng)影響其他任務(wù)的及時(shí)處理,可以將一個(gè)任務(wù)分為多個(gè)時(shí)間片處理。例如:按鍵處理程序中,當(dāng)首次監(jiān)測(cè)到按鍵閉合時(shí),是需要10 ms的延時(shí)時(shí)間來消抖,但是如果在程序中用10 ms的延時(shí)程序來實(shí)現(xiàn)就會(huì)影響到其他程序的執(zhí)行,故應(yīng)該把這10 ms的等待時(shí)間讓給其他任務(wù)執(zhí)行。
評(píng)論