實時嵌入式系統(tǒng)mC/OS-II和LPC2119芯片的移植
本文在分析實時嵌入式系統(tǒng)mC/OS-II和LPC2119芯片的基礎(chǔ)上,對mC/OS-II向處理器上移植前需要了解的知識和需要做的前期準備工作進行了分析和討論,最后給出了移植的具體工作。論文著重分析了mC/OS-II的移植。
μC/OS-II是一個完整的,可移植、可固化、可裁減的占先式實時多任務(wù)內(nèi)核,它功能強大,支持56個用戶任務(wù),支持信號量、郵箱、消息隊列等多種常用的進程間通信機制。公開源代碼,程序可讀性強、移植性好,同時可免費獲得。μC/OS-II由Micrium公司提供,是一個可移植、可固化的、可裁剪的、占先式多任務(wù)實時內(nèi)核,它適用于多種微處理器,微控制器和數(shù)字處理芯片(已經(jīng)移植到超過100種以上的微處理器應(yīng)用中)。同時,該系統(tǒng)源代碼開放、整潔、一致,注釋詳盡,適合系統(tǒng)開發(fā)。 μC/OS-II已經(jīng)通過聯(lián)邦航空局(FAA)商用航行器認證,符合航空無線電技術(shù)委員會(RTCA)DO-178B標準?,F(xiàn)在最新版的是μC/OS-III。
μC/OS-II被廣泛應(yīng)用于微處理器、微控制器和數(shù)字信號處理器。μC/OS-II 的前身是μC/OS,最早出自于1992 年美國嵌入式系統(tǒng)專家Jean J.Labrosse 在《嵌入式系統(tǒng)編程》雜志的5 月和6 月刊上刊登的文章連載,并把μC/OS 的源碼發(fā)布在該雜志的B B S 上。μC/OS 和μC/OS-II 是專門為計算機的嵌入式應(yīng)用設(shè)計的, 絕大部分代碼是用C語言編寫的。CPU 硬件相關(guān)部分是用匯編語言編寫的、總量約200行的匯編語言部分被壓縮到最低限度,為的是便于移植到任何一種其它的CPU 上。用戶只要有標準的ANSI 的C交叉編譯器,有匯編器、連接器等軟件工具,就可以將μC/OS-II嵌入到開發(fā)的產(chǎn)品中。μC/OS-II 具有執(zhí)行效率高、占用空間小、實時性能優(yōu)良和可擴展性強等特點, 最小內(nèi)核可編譯至 2KB 。μC/OS-II 已經(jīng)移植到了幾乎所有知名的CPU 上。嚴格地說uC/OS-II只是一個實時操作系統(tǒng)內(nèi)核,它僅僅包含了任務(wù)調(diào)度,任務(wù)管理,時間管理,內(nèi)存管理和任務(wù)間的通信和同步等基本功能。沒有提供輸入輸出管理,文件系統(tǒng),網(wǎng)絡(luò)等額外的服務(wù)。但由于uC/OS-II良好的可擴展性和源碼開放,這些非必須的功能完全可以由用戶自己根據(jù)需要分別實現(xiàn)。uC/OS-II目標是實現(xiàn)一個基于優(yōu)先級調(diào)度的搶占式的實時內(nèi)核,并在這個內(nèi)核之上提供最基本的系統(tǒng)服務(wù),如信號量,郵箱,消息隊列,內(nèi)存管理,中斷管理等。uC/OS-II以源代碼的形式發(fā)布,是開源軟件, 但并不意味著它是免費軟件。你可以將其用于教學(xué)和私下研究(peaceful research);但是如果你將其用于商業(yè)用途,那么你必須通過Micrium獲得商用許可。
隧道是高速公路的重要組成部分,隧道照明系統(tǒng)是車輛能夠安全地進入、通過和離開隧道區(qū)域必不可少的基本保證。目前長隧道的照明分為入口段、過渡段、基本段、出口段,每段的燈具按功能又分為應(yīng)急燈、全日燈和加強燈三種。應(yīng)急燈除在停電時用作應(yīng)急照明外還兼作全日照明,全日燈24小時不間斷工作,加強燈根據(jù)洞口不同的亮度來開啟。
隧道內(nèi)不同區(qū)域的亮度要求各不相同,它們和洞外亮度、交通流量、洞內(nèi)廢氣的多少、行車速度、燈具的養(yǎng)護周期等諸多因素有關(guān),甚至與路面的材料和洞壁的裝修材料有關(guān)。這些燈的控制目前基本上是靠開關(guān)照明回路來進行控制的。一般隧道都有七八個照明控制回路,建設(shè)投資大,施工難度高,隧道開通后管理者僅能在有限的回路里進行控制,很難兼顧到運營成本和隧道安全。
我們采用Philips公司(編者注:現(xiàn)更名為NXP公司)的基于ARM7 TDMI-S 內(nèi)核的微控制器LPC2119設(shè)計實現(xiàn)智能照明控制器,應(yīng)用在高速公路隧道照明CAN網(wǎng)絡(luò)中,較好地解決了隧道照明初期投資、運營成本和隧道安全之間的矛盾,收到了很好的經(jīng)濟效益和社會效益。
隧道照明系統(tǒng)CAN 網(wǎng)絡(luò)的構(gòu)成
CAN(控制器局域網(wǎng))是當今國際上應(yīng)用最廣泛的現(xiàn)場總線之一。CAN總線最初是由德國Bosch公司為汽車的檢測、控制系統(tǒng)而設(shè)計的。由于CAN總線具有獨特的設(shè)計思想、良好的功能特性和極高的可靠性,現(xiàn)場抗干擾能力強,已由國際標準組織ISO制訂了CAN總線的國際標準。
CAN協(xié)議是建立在國際標準組織ISO的開放系統(tǒng)互連參考模型OSI基礎(chǔ)上,主要工作在物理層、數(shù)據(jù)鏈路層和應(yīng)用層。用戶可在其基礎(chǔ)上根據(jù)實際需要開發(fā)自己的應(yīng)用層通信協(xié)議。CAN總線信號的傳輸可采用雙絞線、同軸電纜或光纖,最高通信速率可達1Mbps,數(shù)據(jù)傳輸在5Kbps 時,傳輸距離可達到10Km。一個CAN網(wǎng)段上的網(wǎng)絡(luò)節(jié)點可達110個,還可通過CAN網(wǎng)關(guān)/網(wǎng)橋延伸網(wǎng)段或和其他各種網(wǎng)絡(luò)互連互通。
CAN總線的這些特點使得其很適宜應(yīng)用在條件苛刻的高速公路隧道監(jiān)控系統(tǒng)或照明控制系統(tǒng)中。高速公路隧道照明控制系統(tǒng)CAN網(wǎng)絡(luò)主要由上位機、智能照明控制器、CAN網(wǎng)關(guān)/網(wǎng)橋等構(gòu)成(圖1)。
圖1 隧道照明控制系統(tǒng)CAN網(wǎng)絡(luò)構(gòu)成
上位機為PC機,內(nèi)插PC-CAN 接口卡,網(wǎng)絡(luò)拓撲采用總線結(jié)構(gòu),傳輸介質(zhì)采用雙絞線,為提高系統(tǒng)的抗干擾能力,在傳輸介質(zhì)和智能控制器之間采取了光電隔離。上位機并與隧道車輛檢測器群和光強檢測儀相連,配以我們開發(fā)的相應(yīng)軟件,對整個隧道的照明系統(tǒng)進行智能控制。
軟件的控制策略如下:在沒有車輛進入隧道時,根據(jù)光強檢測儀所檢測到的洞內(nèi)外光強差值,在隧道內(nèi)只開啟相應(yīng)的基本照明,當車輛檢測器檢測到車輛將進入隧道時,開啟隧道洞口的加強照明,當車輛進入隧道后,則將車輛前面一段相應(yīng)距離的加強照明開啟,一旦后面無車輛跟進,則將汽車身后的加強照明關(guān)閉。
同時利用光強儀還可判斷晴天、陰天、白天、晚上而開啟或關(guān)閉相應(yīng)的照明??蓪蝹€的照明進行單控也可對區(qū)域照明進行群控。控制策略隨時可根據(jù)實際情況進行修正。這樣節(jié)約了大量的電能,有效的降低了運營成本。
智能照明控制器硬件設(shè)計
圖1是本智能控制器的總體設(shè)計框圖,主要由CPU模塊、電源模塊、通信模塊、光強檢測模塊、溫度檢測模塊、電流檢測模塊、開關(guān)控制模塊等組成。通信模塊將所有的控制器連接成一個完整的網(wǎng)絡(luò),便于值班員在監(jiān)控室對整個照明系統(tǒng)進行遠程控制,光強、溫度、電流檢測則是通過對這幾個參數(shù)的檢測來判斷設(shè)備的工作情況,開關(guān)控制模塊則是通過光電耦合、大功率可控硅開關(guān)進行控制的。
CPU 模塊
本智能控制器的核心采用了Philips公司的LPC2119微處理器,其采用ARM公司 ARM7TDMI-S 內(nèi)核,基于RISC精簡指令集的微處理器,具有32位總線寬度,內(nèi)置16KB的SRAM,128 KB Flash 存儲器。通過片內(nèi)PLL對片外晶振的倍頻,可實現(xiàn)最大為60MHz 的 CPU 操作頻率。
同時通過片內(nèi)Boot裝載程序可實現(xiàn)ISP在系統(tǒng)編程和IAP在應(yīng)用編程功能。由于LPC2119 較小的64引腳封裝、極低的功耗、多個32 位定時器、4 路10位ADC、2路CAN、8路10位ADC、以及多達9 個外部中斷使它們能很好的滿足系統(tǒng)的設(shè)計需要。系統(tǒng)硬件電路如圖2所示。
圖2 智能照明控制器框圖
電源模塊
LPC2119 為雙電源,CPU 操作電壓范圍:1.65~1.95 V(1.8 V± 0.15 V),I/O 操作電壓范圍:3.0~3.6 V(3.3 V± 10%),可承受5V 電壓,而溫度傳感器和光電傳感器及光耦隔離器均需5V直流電源驅(qū)動,故在設(shè)計電源模塊時必須提供5V、3.3V和1.8V的直流電源。在電源電路里加入了整流橋和穩(wěn)壓模塊,并采用電源隔離器B0505S將輸入和輸出電源相隔離,以屏蔽電源噪聲的影響。
通信模塊
高速公路中長隧道一般都在1至2公里左右,特長隧道甚至達到十幾公里。隧道燈的數(shù)量也從數(shù)百盞至數(shù)千盞不等。加上隧道內(nèi)環(huán)境條件惡劣,而RS-485通信存在抗干擾能力差,誤碼率高,無糾錯重發(fā)機制,通信距離短,不方便擴展等缺點,因此這里采用RS485通信網(wǎng)絡(luò)并不合適。LPC2119內(nèi)部集成了2個CAN控制器,這給我們采用CAN網(wǎng)絡(luò)提供了便利。
CAN通信速率高、開放性好、通信距離長,且具有多主站運行和分散仲裁的串行總線以及廣播通信的特點,與其它通信總線相比,CAN總線數(shù)據(jù)通信具有突出的高可靠性、實時性和靈活性。我們通過CAN總線還可以把通風(fēng)機、車行橫洞卷簾門等相關(guān)設(shè)備的控制集成在一起。
光強、溫度、電流檢測模塊
LPC2119 內(nèi)部集成了四路10位A/D轉(zhuǎn)換器,這就給光強、溫度、電流檢測提供了極大的便利。光強檢測是通過光敏三極管來檢測環(huán)境亮度參數(shù)提供給主程序進行自動控制,也可通過此參數(shù)判斷光源的好壞。溫度參數(shù)提供設(shè)備本身和周邊環(huán)境溫度,以求設(shè)備安全可靠的工作。電流參數(shù)則是對光源的工作狀態(tài)進行不斷的監(jiān)測,交流信號經(jīng)過互感器、信號調(diào)理后直接送入LPC2119內(nèi)部集成的A/D轉(zhuǎn)換器進行電流參數(shù)的采集和變換。
開關(guān)控制模塊
LPC2119提供了多達46個通用的I/O 口,因此對照明燈進行控制是非常方便的。一個照明控制器可以根據(jù)實際情況分別或同時控制4盞、8盞、16盞照明燈。LPC2119是通過固態(tài)繼電器來對照明燈進行控制的。
為了增強系統(tǒng)的抗干擾性,本照明控制器采用了光電隔離技術(shù),所有的輸出均采用了光電耦合器將干擾信號隔離,有效地提高了系統(tǒng)的可靠性。同時由于CPU 的I/O驅(qū)動能力有限,一般不足以驅(qū)動一些電磁執(zhí)行器件,需加接驅(qū)動接口電路,為避免系統(tǒng)受到干擾,須采取隔離措施。如本例晶閘管所在的主電路是交流強電回路,電壓較高,電流較大,不易與CPU 直接相連,可應(yīng)用光耦合器將CPU的控制信號與晶閘管觸發(fā)電路進行隔離。光耦隔離驅(qū)動電路如圖3所示。
圖3 雙向可控硅隔離驅(qū)動
結(jié)語
本文介紹的智能照明控制器性能穩(wěn)定,工作可靠。同時可通過CAN網(wǎng)絡(luò)由上位機結(jié)合光強儀、車輛檢測器等進行智能控制,在隧道的建設(shè)或改造中,都可以使隧道照明的回路減到最少,不僅節(jié)約了初期投資,而且在運行期間可以大大的節(jié)約電能消耗。本智能照明控制器已開發(fā)出單回路、雙回路、四回路、八回路等系列產(chǎn)品,并已搭建成模擬網(wǎng)絡(luò)通過了測試,目前正在與某高速公路隧道業(yè)主商談實際應(yīng)用。