在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM 的火災(zāi)信息傳輸網(wǎng)關(guān)設(shè)計(jì)

            基于ARM 的火災(zāi)信息傳輸網(wǎng)關(guān)設(shè)計(jì)

            作者: 時(shí)間:2011-02-25 來源:網(wǎng)絡(luò) 收藏

              ( 4) 系統(tǒng)維護(hù)模塊

              主要負(fù)責(zé)確保系統(tǒng)各個(gè)模塊的正常運(yùn)行,同時(shí)記錄及上傳工作日志,供系統(tǒng)維護(hù)人員參考,同時(shí)收集上來的數(shù)據(jù)經(jīng)過分析和挖掘,可以作為產(chǎn)品性能指標(biāo)制定的依據(jù)。各模塊在建立之初將會在數(shù)據(jù)區(qū)注冊,維護(hù)模塊通過這個(gè)注冊信息實(shí)現(xiàn)心跳應(yīng)答機(jī)制來判斷各個(gè)模塊的工作狀態(tài)。同時(shí),還將數(shù)據(jù)區(qū)中的日志信息提取出來寫入日志文件,并提出發(fā)送日志文件請求給網(wǎng)絡(luò)通信模塊。

              每個(gè)模塊依照分工完成職能之內(nèi)的工作,不屬于職能內(nèi)的工作通過寫入數(shù)據(jù)區(qū)交由職能模塊去完成。數(shù)據(jù)區(qū)是各個(gè)模塊傳遞信息的媒介,通過格式化的數(shù)據(jù)寫入和讀取,實(shí)現(xiàn)模塊間的信息共享和職能分工。

              3. 3 各模塊詳細(xì)設(shè)計(jì)

              3. 3. 1 流程分析

              核心管理模塊是嵌入式網(wǎng)關(guān)入口,當(dāng)嵌入式網(wǎng)關(guān)加電啟動,嵌入式網(wǎng)關(guān)的操作系統(tǒng)負(fù)責(zé)啟動核心管理模塊。此時(shí),其他模塊還未啟動。核心模塊首先為其他模塊啟動初始化系統(tǒng)環(huán)境,如創(chuàng)建管道,共享內(nèi)存等。接著,核心模塊啟動其他模塊。這時(shí),系統(tǒng)將啟動完成。

              接著,核心模塊建立定時(shí)器,創(chuàng)建定時(shí)器是為了定時(shí)地檢測其他模塊,以判斷其他模塊的狀態(tài),稱這個(gè)過程為“心跳”。

              當(dāng)以上過程完成后,核心管理模塊開始監(jiān)視所有管道,當(dāng)管道有數(shù)據(jù)時(shí),他讀取定長的數(shù)據(jù)并分析,找出源地址、目的地址及命令字。根據(jù)命令字類型的不同做不同的處理。程序流程圖如圖4 所示。

            程序啟動過程

            圖4 程序啟動過程

              ( 1) 初始化。初始化的主要工作是為模塊間的通信建立有名管道,每個(gè)與核心模塊通信的進(jìn)程有一個(gè)管道。當(dāng)前系統(tǒng)需要創(chuàng)建四個(gè)管道。其他模塊如果想要使用管道,必須首先打開管道。所有與管道的通信都有API 供其他用戶使用。

              ( 2) 啟動其他模塊。核心模塊通過子進(jìn)程調(diào)用execl( ) 來啟動其他模塊。每個(gè)其他模塊都是一個(gè)可執(zhí)行程序,通常位于一個(gè)固定的路徑及固定的文件名。每個(gè)模塊在啟動之后需要向核心模塊發(fā)送注冊信息,這些信息包括模塊標(biāo)識、進(jìn)程ID、進(jìn)程狀態(tài)等。登記信息由核心模塊保留,供以后使用。

              ( 3) 創(chuàng)建定時(shí)器。核心模塊需要定時(shí)地檢測其他模塊的生存狀況,通過注冊一個(gè)定時(shí)器,可以定時(shí)地觸發(fā)檢測功能。

              ( 4) 開始*。當(dāng)所有初始化工作完成以后,核心模塊開始進(jìn)入工作狀態(tài)。它的主要工作就是負(fù)責(zé)處理管道信息。通過使用select ( ) 函數(shù)可以實(shí)現(xiàn)同時(shí)*多個(gè)管道。當(dāng)某個(gè)管道有數(shù)據(jù),核心模塊讀取數(shù)據(jù)包( 格式詳見后文) ,并解析出包頭,得到包的源地址,目的地址,及控制字并加以分析,選擇處理流程。處理流程包括: 數(shù)據(jù)中轉(zhuǎn),巡檢,系統(tǒng)維護(hù)等。當(dāng)該數(shù)據(jù)包處理完成以后,核心模塊返回繼續(xù)等待下一個(gè)數(shù)據(jù)包。

              ( 5) 處理數(shù)據(jù)中轉(zhuǎn)。其他模塊間無法直接通信,都必須通過核心模塊進(jìn)行中轉(zhuǎn)。數(shù)據(jù)包中指明了包的源地址,目的地址及控制字。這里的控制字說明數(shù)據(jù)需要中轉(zhuǎn),核心模塊解析到數(shù)據(jù)包需要中轉(zhuǎn),就將包寫入到給定目的地址的模塊管道。

              ( 6) 處理巡檢。服務(wù)器需要定時(shí)地檢測前置機(jī)各個(gè)模塊的狀態(tài),于是發(fā)送巡檢請求給網(wǎng)絡(luò)模塊,網(wǎng)絡(luò)模塊解析后組包發(fā)送給核心模塊,核心模塊在分析包發(fā)現(xiàn)該包是巡檢請求,于是通過kil l( ) 函數(shù)及注冊記錄信息,判斷各個(gè)模塊的狀態(tài),并組包發(fā)送給服務(wù)器。

              ( 7) 處理系統(tǒng)維護(hù)。系統(tǒng)維護(hù)的主要任務(wù)是為了保證系統(tǒng)所有模塊的正常運(yùn)行。前面初始化了一個(gè)定時(shí)器,通過定時(shí)器,可定時(shí)地查詢其他模塊的狀態(tài)。當(dāng)發(fā)現(xiàn)某個(gè)模塊異常,核心模塊將重啟該模塊。

              3. 3. 2 關(guān)鍵數(shù)據(jù)結(jié)構(gòu)

              ( 1) 包格式



              ( 2) 模塊ID 定義

              如表1 所示:

            表1 模塊ID 定義

            模塊ID 定義


              # defineID_CORE0x0001

              # defineID_NET WORK0x0002

              # define ID_COM0x0004

              # defineID_CT L0x0008

              # define ID_LOG0x0010

              ( 3) 控制字定義

              如表2 所示:

             表2 控制字定義

            控制字定義


              ( 4) 管道初始化

              首先,用戶必須選擇正確地管道初始化函數(shù),通過初始化函數(shù),用戶正確的建立與管道的連接。初始化函數(shù)如表3 所示。

            表3 初始化函數(shù)

             初始化函數(shù)



            關(guān)鍵詞: ARM

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉