• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于以太網(wǎng)和CAN總線的樓宇自動化系統(tǒng)設(shè)計

      2012-07-13 06:29:52顧俊卿張福斌
      電子設(shè)計工程 2012年16期
      關(guān)鍵詞:寄存器以太網(wǎng)上位

      顧俊卿,張福斌

      (西北工業(yè)大學(xué) 航海學(xué)院,陜西 西安 710072)

      隨著現(xiàn)代化城市建設(shè)的發(fā)展,出現(xiàn)了越來越多的高層建筑,如何統(tǒng)一管理和監(jiān)控建筑內(nèi)公用的機電設(shè)備,成為當(dāng)今樓宇自動化研究的熱點方向之一 。以“分散控制,集中管理”為基本思想,設(shè)計了一種基于以太網(wǎng)和CAN總線的樓宇自動化控制系統(tǒng)。采用分層管理和控制,與傳統(tǒng)控制結(jié)構(gòu)相比,每個現(xiàn)場設(shè)備節(jié)點都具有通信和控制能力,各自可以獨立控制而不依賴于主控計算機,同時也具有簡單的故障自動修復(fù)功能,因而只要控制規(guī)律確定以后,平時主控機只需要監(jiān)視設(shè)備節(jié)點既可,這樣就提高了整個系統(tǒng)的自動化水平。所選的以太網(wǎng)和CAN總線的組合,相比其他總線,軟硬件技術(shù)成熟、安全可靠、傳輸速度快且成本低廉、易于擴展和維護。

      1 網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計

      系統(tǒng)結(jié)構(gòu)如圖1所示。系統(tǒng)設(shè)計兩層網(wǎng)絡(luò),第1層是以太網(wǎng),由路由器和交換機組成,負(fù)責(zé)連接主控機和各個區(qū)域的上位機,各上位機內(nèi)嵌簡單的TCP/IP協(xié)議棧,通過以太網(wǎng)將其下的設(shè)備節(jié)點的狀態(tài)實時的反饋到主控機中,也可以接受主控機發(fā)送出的控制指令。以太網(wǎng)提供了冗余網(wǎng)絡(luò)結(jié)構(gòu),主控機的位置可以隨時移動,通過新的路由器接入網(wǎng)絡(luò)即可。第2層是CAN網(wǎng)絡(luò),由CAN控制器和收發(fā)器組成,負(fù)責(zé)連接設(shè)備節(jié)點,將采集到的數(shù)據(jù)傳送至上位機,并接收上位機的命令消息。由于上位機實際上起到了一個網(wǎng)關(guān)的作用,因此兩層網(wǎng)絡(luò)結(jié)構(gòu)擴大了通信的帶寬,減輕了總線的負(fù)擔(dān)。再加上CAN特有的非破壞性總線仲裁技術(shù),即使在網(wǎng)絡(luò)負(fù)重很大的情況下,也不會出現(xiàn)網(wǎng)絡(luò)癱瘓情況。

      2 硬件方案

      上位機以NXP LPC2478為主芯片,由電源穩(wěn)壓模塊、以太網(wǎng)收發(fā)器,隔離變壓器、CAN收發(fā)器等組成。LPC2478以ARM7為內(nèi)核,它包括1個10/100以太網(wǎng)媒體訪問控制器(MAC)、1個帶 4 kB終端 RAM的 USB全速設(shè)備/主機/OTG控制器、4個UART、兩路CAN通道、1個SPI接口、2個同步串行端口、3個I2C接口和1個I2S接口。同時還帶有1個4 MHz的片內(nèi)振蕩器、98 kB RAM、以及一個外部存儲器控制器來支持上述的各種串行通信接口[1]。電源穩(wěn)壓模塊將輸入電源電壓濾波并穩(wěn)定在3.3 V左右,可以防止電壓瞬時的下降導(dǎo)致的程序跑飛。CAN收發(fā)器采用PCA82C250,以太網(wǎng)接口用常見的的RJ45型網(wǎng)線接口。

      設(shè)備節(jié)點使用STC89C52單片機作為微控制器,外擴SJA1000為CAN控制器,為便于調(diào)試,擴展電平轉(zhuǎn)換芯片MAX232作為備用調(diào)試通道。根據(jù)不同需要,還要連接不同的傳感器和其他執(zhí)行機構(gòu),比如中央空調(diào)系統(tǒng),可連接DS18B20溫度傳感器將溫度采集并以數(shù)字量直接傳送給STC89C52[2],STC89C52則按預(yù)先設(shè)置好的方案,控制壓縮機工作。必要時可以由主控機發(fā)送控制命令,修改預(yù)先設(shè)置的方案參數(shù)。

      圖1 BAS網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 BAS net layout

      將上位機的網(wǎng)口連接至交換機網(wǎng)口,路由器的LAN口也和交換器連接,路由器的WAN口連接進入樓宇局域網(wǎng)。

      3 軟件架構(gòu)

      軟件由主控機人機接口界面、上位機軟件、設(shè)備節(jié)點軟件組成。上位機軟件包括嵌入式TCP/IP協(xié)議簇、以太網(wǎng)收發(fā)軟件包、CAN收發(fā)軟件包等,設(shè)備節(jié)點軟件包括CAN模塊、數(shù)據(jù)采集分析模塊等組成。

      3.1 移植μC/OS-Ⅱ?qū)崟r操作系統(tǒng)的方法

      上位機既要和主控機通信,又要負(fù)責(zé)管理下屬的設(shè)備節(jié)點,負(fù)載較大。移植μC/OS-Ⅱ操作系統(tǒng)可以使上位機具有多任務(wù)運行的功能。μC/OS-Ⅱ是一個完整的,可移植、固化、裁剪的占先式實時多任務(wù)內(nèi)核。它包含了任務(wù)調(diào)度、任務(wù)管理、時間管理、內(nèi)存管理和任務(wù)間的通信和同步等基本功能。μC/OS-Ⅱ采用的是可剝奪型實時多任務(wù)內(nèi)核,可剝奪型的實時內(nèi)核在任何時候都運行就緒了的最高優(yōu)先級的任務(wù)。

      在ARM下移植μC/OS-Ⅱ操作系統(tǒng)主要是修改μC/OS-Ⅱ中一部分與CPU相關(guān)的匯編代碼,這里主要是任務(wù)上下文的切換代碼。

      任務(wù)切換發(fā)生在任務(wù)調(diào)度的時候,μC/OS-Ⅱ下任務(wù)調(diào)度的時機主要有以下幾種情況:1)高優(yōu)先級的任務(wù)因為需要某種臨界資源,主動請求掛起,讓出處理器,此時將調(diào)度就緒狀態(tài)的最高優(yōu)先級任務(wù)并執(zhí)行。2)高優(yōu)先級的任務(wù)因為時鐘節(jié)拍到來,在時鐘中斷的處理程序中,內(nèi)核發(fā)現(xiàn)更高優(yōu)先級的任務(wù)就緒,獲得了執(zhí)行條件,則在中斷后直接切換到更高優(yōu)先級任務(wù)執(zhí)行[3-5]。

      任務(wù)切換就是保存前一個任務(wù)的基本信息,同時讀取新任務(wù)在上一次被切換時保存的這些信息。調(diào)度器將前一任務(wù)的上述信息保存在該任務(wù)的??臻g中,其目的是為了下次運行時能夠恢復(fù)到被切換時的狀態(tài),調(diào)度器將從該任務(wù)的棧空間中讀取上述信息,從而從該任務(wù)上次被中斷的位置繼續(xù)執(zhí)行,其基本過程如下[3-5]:

      1)將當(dāng)前任務(wù)的PC位置、通用寄存器數(shù)據(jù)、CPU狀態(tài)入棧。

      2)將全局變量OSPrioCur(當(dāng)前任務(wù)優(yōu)先級變量)的值修改為全局變量OSPrioHighRdy(最高優(yōu)先級任務(wù)優(yōu)先級)的值,即把最高就緒任務(wù)優(yōu)先級設(shè)置為新的當(dāng)前任務(wù)優(yōu)先級。

      3)將原任務(wù)TCB的第一個成員(指向棧頂?shù)闹羔?OSTC B-StkPtr)的值修改為當(dāng)前SP寄存器的值,以便再次返回。

      4)獲取最高優(yōu)先級的任務(wù)控制塊中第一個成員(指向堆棧棧頂指針*OSTCBStkPtr)的值并將其保存到SP寄存器中。

      5)將OSTCBCur的值修改為新就緒最高優(yōu)先級任務(wù)的任務(wù)控制塊地址。

      6)將新任務(wù)的PC地址、通用寄存器數(shù)據(jù)、CPU狀態(tài)出棧,開始執(zhí)行新的任務(wù)。

      因為任務(wù)切換是將當(dāng)前任務(wù)的基本信息保存起來(入任務(wù)棧),并加載新任務(wù)的基本信息(出棧),而這些信息很大一部分都被存儲在CPU的寄存器中,因此根據(jù)處理器的不同,此函數(shù)在實現(xiàn)上略有差異,一般都采用匯編語言實現(xiàn)。

      3.2 編寫設(shè)備驅(qū)動程序

      設(shè)備驅(qū)動程序主要包括以太網(wǎng)和CAN軟件包,以太網(wǎng)驅(qū)動主要是初始化LPC2478內(nèi)部以太網(wǎng)模塊的一些重要的寄存器如MAC配置寄存器、MAC地址寄存器、命令寄存器、狀態(tài)寄存器、中斷狀態(tài)寄存器等等。以太網(wǎng)模塊內(nèi)部采用DMA方式讀取數(shù)據(jù),分別使用接收、發(fā)送描述符數(shù)組來表示接收和發(fā)送的數(shù)據(jù)塊[6]。以太網(wǎng)模塊發(fā)送和接受數(shù)據(jù)的流程如圖2所示。

      圖2 以太網(wǎng)模塊發(fā)送和接收數(shù)據(jù)流程Fig.2 Sending and receiving process of Ethernet module

      CAN的初始化包括初始化時鐘分頻寄存器,同時選擇能支持?jǐn)U展幀的PeliCAN模式[7],設(shè)置接收中斷,采用中斷來接收數(shù)據(jù),設(shè)置總線時序寄存器、輸出控制寄存器等。初始化CAN流程圖如圖3所示。

      圖3 初始化CANFig.3 Initialization of CAN

      3.3 嵌入式TCP/IP協(xié)議棧的實現(xiàn)方法

      嵌入式TCP/IP協(xié)議棧同樣由套接字來實現(xiàn),主要包括IP、ARP、ICMP、TCP、UDP 協(xié)議等等。 TCP/IP 模型結(jié)構(gòu)分為 4層,由上到下分別是:應(yīng)用層、運輸層、網(wǎng)絡(luò)層、物理和數(shù)據(jù)鏈路層[8-9]。數(shù)據(jù)從應(yīng)用層發(fā)出,經(jīng)過套接字封裝,傳輸至數(shù)據(jù)鏈路層,交由以太網(wǎng)發(fā)送模塊處理。同樣的,以太網(wǎng)接收模塊收到的數(shù)據(jù),經(jīng)過解包,最終交由應(yīng)用層接收??紤]到系統(tǒng)實時性,我們采用UDP傳輸協(xié)議進行數(shù)據(jù)和命令的傳送。編寫UDP通信的任務(wù)時分為服務(wù)器方式和客戶機方式兩種,服務(wù)器方式是先接收到數(shù)據(jù)再進行處理,而客戶機則是先發(fā)生數(shù)據(jù),然后等待回應(yīng)處理[10]。UDP進程的流程如圖4所示。

      圖4 UDP進程流程圖Fig.4 UDP process

      數(shù)據(jù)報的接收是通過一個任務(wù)來進行的。該任務(wù)優(yōu)先級較高,可以通過時間片來觸發(fā),也可以通過中斷來觸發(fā)。Rec_Packet()函數(shù)是底層的驅(qū)動程序函數(shù),它在接收時調(diào)用了Rec_Ethernet_Packed()函數(shù)進行以太網(wǎng)層處理,而Rec_Ethernet_Packed()函數(shù)又調(diào)用了 IP_PROCESS()函數(shù)。IP層的處理由IP_PROCESS()函數(shù)執(zhí)行,它將UDP報通過消息隊列交給UDP處理任務(wù)去執(zhí)行。

      數(shù)據(jù)報的發(fā)送與數(shù)據(jù)報的接收是一個相反的過程,是由上層協(xié)議函數(shù)調(diào)用下層協(xié)議函數(shù)來進行的。上層UDP處理函數(shù)或Socket接口函數(shù)都是通過調(diào)用Send_Ip_Frame()函數(shù)來發(fā)送IP報的,而Send_Ip_Frame()函數(shù)則調(diào)用Send_Ip_To_LLC()函數(shù)來處理IP地址對應(yīng)MAC地址的事情,然后 Send_Ip_To_LLC()再調(diào)用 Send_Ethernet_Frame()函數(shù),把對應(yīng)的MAC地址寫入發(fā)送區(qū),最后調(diào)用驅(qū)動程序的發(fā)送函數(shù) Send_Packet()。

      4 關(guān)鍵部位實驗驗證

      設(shè)備節(jié)點樣機如圖5所示,它帶有一個DS18B20數(shù)字溫度傳感器,實時將溫度數(shù)據(jù)通過CAN傳輸至上位機,再通過局域網(wǎng)傳至主控計算機;具有多路I/O接口(可外接繼電器),能接收上位機命令改變I/O口的輸出。上位機使用ARM核心板外擴通信接口作為實驗板,主控機使用路由器接入,控制界面由VC++編寫。實驗時將IP地址設(shè)為一固定的私有IP,網(wǎng)關(guān)IP設(shè)為內(nèi)置交換機的TP-LINK路由器IP,設(shè)置好路由器工作方式后即可運行。以溫度采集與繼電器控制為例,驗證了主控機對設(shè)備節(jié)點的監(jiān)控和管理功能,表明該方案技術(shù)切實可行。

      圖5 設(shè)備節(jié)點樣機Fig.5 Control node for test

      5 結(jié)束語

      提出了一種實時性較高、實用性較強的樓宇自動化控制系統(tǒng)解決方案,并對關(guān)鍵技術(shù)進行了驗證。系統(tǒng)技術(shù)成熟,易于維護和擴展,可以將建筑內(nèi)各種機電設(shè)備的信息進行分析、歸類、處理、判斷,對各系統(tǒng)設(shè)備進行集中監(jiān)控和管理,使各下屬設(shè)備協(xié)調(diào)有序的工作,并及時處理故障。

      [1]周立功.深入淺出ARM7—LPC2400[M].廣州:廣州致遠電子有限公司,2008.

      [2]鄭鋒,王巧芝,王鼎媛,等.51單片機應(yīng)用系統(tǒng)典型模塊開發(fā)大全[M].北京:中國鐵道出版社,2010.

      [3]楊宗德,張兵.μC/OS-Ⅱ標(biāo)準(zhǔn)教程[M].北京:人民郵電出版社,2009.

      [4]Labrosse J J.MicroC/OS-Ⅱ The Real-Time Kernel[M].邵貝貝,譯.2版.北京:北京航空航天大學(xué)出版社,2003.

      [5]陳是知.μC/OS-Ⅱ內(nèi)核分析、移植與驅(qū)動程序開發(fā)[M].北京:人民郵電出版社,2007.

      [6]周立功.ARM嵌入式系統(tǒng)應(yīng)用技術(shù)筆記—基于LPC2400[M].廣州:廣州致遠電子有限公司,2008.

      [7]鐃運濤,鄒繼軍,王進宏,等.現(xiàn)場總線CAN原理與應(yīng)用技術(shù)[M].2版.北京:北京航空航天大學(xué)出版社,2007.

      [8]Forouzan B A,F(xiàn)egan S C.TCP/IP協(xié)議族[M].3版.馬海軍,吳華等,譯.北京:清華大學(xué)出版社,2006.

      [9]Chappell L A,Tittel E.TCP/IP協(xié)議原理與應(yīng)用[M].馬海軍,吳華等,譯.北京:清華大學(xué)出版社,2005.

      [10]周立功.ARM嵌入式系統(tǒng)軟件開發(fā)實例1[M].北京:北京航空航天大學(xué)出版社,2005.

      猜你喜歡
      寄存器以太網(wǎng)上位
      基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計與實現(xiàn)
      Lite寄存器模型的設(shè)計與實現(xiàn)
      特斯拉 風(fēng)云之老阿姨上位
      車迷(2018年12期)2018-07-26 00:42:22
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      談實時以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
      電子制作(2017年24期)2017-02-02 07:14:44
      “三扶”齊上位 決戰(zhàn)必打贏
      基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
      一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計
      以新思路促推現(xiàn)代農(nóng)業(yè)上位
      淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
      邢台市| 林芝县| 大竹县| 洞口县| 银川市| 元谋县| 十堰市| 怀宁县| 吴桥县| 金堂县| 武鸣县| 翁牛特旗| 乌什县| 于都县| 景东| 永修县| 灵台县| 乳山市| 融水| 潢川县| 清涧县| 陈巴尔虎旗| 区。| 武陟县| 囊谦县| 天门市| 祁连县| 多伦县| 浮梁县| 京山县| 榆林市| 若羌县| 昌黎县| 曲沃县| 海阳市| 济源市| 鄂州市| 佛坪县| 乌拉特后旗| 宁远县| 金沙县|