基于CAN總線(xiàn)的隧道環(huán)境監控系統的研究
由于隧道的相對封閉性和其中行車(chē)環(huán)境的復雜性,要保障其安全運營(yíng)存在一定的復雜性。尤其對于高速公路中的長(cháng)隧道(長(cháng)度介于1 km和3 km之間)和超長(cháng)隧道(長(cháng)度高于3 km),由于車(chē)速高、流量大以及通風(fēng)等問(wèn)題的存在,隧道中容易累積汽車(chē)尾氣中的CO、氮氧化物等有害氣體。另外,隧道中還可能因為照明故障、能見(jiàn)度低等問(wèn)題的產(chǎn)生導致交通事故的發(fā)生。為保證隧道的運營(yíng)安全,避免造成安全事故和重大經(jīng)濟損失,應對隧道配備完善的環(huán)境參數監控系統。
本文介紹的隧道環(huán)境監控系統,利用區域控制部分的實(shí)時(shí)監控技術(shù)對各監控點(diǎn)的照明亮度、能見(jiàn)度、CO濃度、煙霧濃度等參數進(jìn)行采集、監測,并根據這些參數控制相關(guān)的交通燈、應急燈、LED交通指示牌、限速牌以及報警裝置。然后通過(guò)現場(chǎng)總線(xiàn)將各節點(diǎn)的參數和報警信號發(fā)送至本地監控中心,由本地控制中心對各區域控制模塊進(jìn)行調度。本地控制中心還將這些參數通過(guò)以太網(wǎng)發(fā)送至遠程監控終端處,在終端上遠程監控隧道的環(huán)境參數。
1 系統總體結構
系統的總體結構如圖1所示。系統主要包括區域控制部分、本地控制中心和遠程監控終端。
安裝在隧道中的區域控制部分采用CAN總線(xiàn)分布式數據采集控制方式。當系統啟動(dòng)后,各環(huán)境參數監測點(diǎn)開(kāi)始采集環(huán)境參數,并在接收到發(fā)送數據命令后將數據傳送至CAN總線(xiàn)。在區域控制模塊接收處理數據后會(huì )控制報警器等相關(guān)設備。
由于CAN總線(xiàn)協(xié)議不對節點(diǎn)進(jìn)行地址編碼,而是采用對通信數據塊進(jìn)行編碼的方式,這使得CAN總線(xiàn)上的節點(diǎn)數量理論上幾乎不受限制[2]。然而實(shí)際上,由于存在電氣特性上的限制,CAN總線(xiàn)上節點(diǎn)數量不宜超過(guò)100個(gè)。因此各個(gè)區域控制模塊與本地控制中心使用另一條CAN總線(xiàn)進(jìn)行數據通信。區域控制模塊在采集到環(huán)境參數并做出控制動(dòng)作后會(huì )將參數打包通過(guò)CAN總線(xiàn)發(fā)送至本地控制中心的工控機。本地控制中心如收到某個(gè)區域控制部分的報警信號,會(huì )根據報警信號類(lèi)型對該區域控制部分前方的各區域控制部分做出控制,提前預警車(chē)輛隧道前方通行環(huán)境存在問(wèn)題。
遠程控制終端通過(guò)客戶(hù)端的顯示程序顯示出由本地控制中心發(fā)送的隧道環(huán)境參數,并將參數保存在數據庫,以實(shí)現歷史數據的存儲。
2 系統硬件設計
整個(gè)系統硬件部分包括由區域控制模塊和各環(huán)境參數測量模塊組成的區域控制部分、本地控制中心的工控機以及監控終端。其中關(guān)鍵部分為區域控制部分,本文將對這部分進(jìn)行重點(diǎn)介紹。
區域控制模塊選用意法半導體公司的STM32F105RCT6為控制核心,它是采用ARM Cortex-M3為內核的32位高性能嵌入式微處理器。它集成了兩個(gè)CAN控制器,并為每個(gè)CAN控制器分配了256 B的SRAM,每個(gè)CAN控制器有三個(gè)發(fā)送郵箱和兩個(gè)接收FIFO[1]。模塊的其他外設包括用于CAN總線(xiàn)信號收發(fā)的CAN收發(fā)器,用于顯示當前環(huán)境參數的點(diǎn)陣液晶,用于實(shí)現基本控制功能的按鍵等。區域控制模塊的硬件框圖如圖2所示。
區域控制模塊中CAN總線(xiàn)接口電路由STM32F105RCT6中內置的CAN控制器和CAN收發(fā)器SN65HVD230D組成。STM32F105RCT6的PA11/CAN1_RX和PA12/CAN1_TX為CAN1控制器接口,將其與CAN收發(fā)器連接后接入與各測量模塊相連的CAN總線(xiàn)中;PB12/CAN2_RX和PB13/CAN2_TX為CAN2控制器接口,將其與CAN收發(fā)器連接后接入與其他區域控制部分及本地控制中心相連的CAN總線(xiàn)中。
[next]
能見(jiàn)度測量模塊由能見(jiàn)度檢測儀和控制模塊組成。能見(jiàn)度檢測儀能將檢測到的能見(jiàn)度值通過(guò)RS232發(fā)送至控制模塊。當區域控制模塊向能見(jiàn)度測量模塊中的控制模塊請求數據時(shí),控制模塊會(huì )使能見(jiàn)度檢測儀通過(guò)RS232向控制模塊發(fā)送數據,并轉換成CAN數據包發(fā)送至CAN總線(xiàn)。其他測量模塊工作模式與能見(jiàn)度測量模塊相同。
3 區域控制模塊軟件設計
由于區域控制部分在測量環(huán)境參數以及控制相應設施方面對實(shí)時(shí)性和穩定性要求,區域控制模塊選擇使用μC/OS-II管理控制任務(wù)的調度。μC/OS-II是一個(gè)專(zhuān)為嵌入式應用設計,基于優(yōu)先級調度的搶占式實(shí)時(shí)操作系統內核,它包含了任務(wù)調度、任務(wù)管理、時(shí)間管理/任務(wù)間通信與同步等功能。各任務(wù)之間通過(guò)信號量、郵箱和消息隊列實(shí)現相互間的數據交換和同步[3]。
根據區域控制模塊在系統中的作用,嵌入式操作系統中應實(shí)現多個(gè)不同優(yōu)先級的控制任務(wù)。這些任務(wù)按照優(yōu)先級由高到低分別為:接收本地控制中心調度;接收按鍵控制;采集環(huán)境參數;控制相關(guān)設備;顯示環(huán)境參數;發(fā)送數據到本地控制中心。對于區域控制系統來(lái)說(shuō),本地控制中心的調度命令決定著(zhù)它的系統設置,因此需要把接受本地控制中心調度任務(wù)分配到相對最高的優(yōu)先級。其他任務(wù)也根據相對的重要性和執行順序分配相應的優(yōu)先級。系統啟動(dòng)流程圖如圖3所示。
硬件初始化程序負責初始化芯片的系統時(shí)鐘、中斷向量、I/O配置、CAN配置等。操作系統初始化程序負責初始化任務(wù)的空閑鏈表和使用鏈表、時(shí)鐘管理等。在啟動(dòng)任務(wù)調度之前需利用OSTaskCreate()函數創(chuàng )建需要使用的任務(wù),設置不同任務(wù)的堆棧區和優(yōu)先級。然后使用OSStart()函數開(kāi)始多任務(wù)調度。多個(gè)任務(wù)之間需要共享環(huán)境參數,因此在任務(wù)創(chuàng )建之前分配一塊共享內存以供任務(wù)間數據通信。以下重點(diǎn)介紹環(huán)境參數采集任務(wù)和控制設備任務(wù)的軟件實(shí)現。
環(huán)境參數采集任務(wù)和控制設備任務(wù)中CAN總線(xiàn)使用CAN 2.0B協(xié)議,波特率設置為250 kb/s。STM32F105RCT6的CAN控制器中包含28個(gè)共享的可配置標識符過(guò)濾器組。通過(guò)過(guò)濾器組的設置,配合使用不同的接收FIFO寄存器,可以在硬件上設置區分不同標識符的報文。每收到一幀報文,首先與過(guò)濾器組中設置的報文ID進(jìn)行比較。報文如果與過(guò)濾器組中設置的環(huán)境參數報文的ID匹配則將報文送入接收FIFO0寄存器,如果與過(guò)濾器組中控制報文的ID匹配則將報文送入接收FIFO1寄存器,如果都不匹配,則認定此報文為垃圾報文,直接丟棄。
環(huán)境參數采集采用輪詢(xún)的方式,由區域控制模塊輪詢(xún)請求各數據采集點(diǎn)的數據,輪詢(xún)時(shí)間間隔為1 s,輪詢(xún)由任務(wù)延時(shí)函數OSTimeDLY()實(shí)現。在接收到所有環(huán)境參數采集點(diǎn)的數據后,這些參數將被存入共享內存。接著(zhù)通過(guò)OSTimeDLY()函數的調用,實(shí)現將當前任務(wù)掛起,并延時(shí)時(shí)鐘節拍1 s,然后調用OSSched()進(jìn)行任務(wù)重新調度。在指定的時(shí)鐘節拍到來(lái)之后,當前任務(wù)會(huì )被恢復為就緒狀態(tài)。環(huán)境參數采集任務(wù)流程圖如圖4所示。
控制設備任務(wù)的優(yōu)先級僅次于環(huán)境參數采集任務(wù),在環(huán)境參數采集任務(wù)被掛起后運行??刂圃O備任務(wù)首先訪(fǎng)問(wèn)讀取共享內存區的環(huán)境參數,根據閾值判斷是否對各控制設備做出動(dòng)作。在結束動(dòng)作之后,本任務(wù)也會(huì )調用OSTimeDLY()函數掛起自己以實(shí)現下一優(yōu)先級任務(wù)的運行。
接收本地控制中心調度任務(wù)和按鍵控制任務(wù)在創(chuàng )建之后就通過(guò)調用OSTaskSuspend()函數進(jìn)入掛起狀態(tài),當接收到調度命令和按鍵中斷以后,才會(huì )通過(guò)調用OSTaskResume()函數恢復任務(wù),實(shí)現任務(wù)的執行。
本文給出了基于CAN總線(xiàn)的隧道環(huán)境監控系統的軟硬件設計方法。系統中區域控制模塊采用高性能嵌入式微處理器和嵌入式實(shí)時(shí)操作系統為核心,并使用穩定的工業(yè)現場(chǎng)總線(xiàn),保證了系統的高可靠性和高實(shí)時(shí)性,滿(mǎn)足了隧道環(huán)境的監控需求。
評論