新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM 的火災信息傳輸網關設計

        基于ARM 的火災信息傳輸網關設計

        作者: 時間:2011-02-25 來源:網絡 收藏

          ( 4) 系統維護模塊

          主要負責確保系統各個模塊的正常運行,同時記錄及上傳工作日志,供系統維護人員參考,同時收集上來的數據經過分析和挖掘,可以作為產品性能指標制定的依據。各模塊在建立之初將會在數據區注冊,維護模塊通過這個注冊信息實現心跳應答機制來判斷各個模塊的工作狀態。同時,還將數據區中的日志信息提取出來寫入日志文件,并提出發送日志文件請求給網絡通信模塊。

          每個模塊依照分工完成職能之內的工作,不屬于職能內的工作通過寫入數據區交由職能模塊去完成。數據區是各個模塊傳遞信息的媒介,通過格式化的數據寫入和讀取,實現模塊間的信息共享和職能分工。

          3. 3 各模塊詳細設計

          3. 3. 1 流程分析

          核心管理模塊是嵌入式網關入口,當嵌入式網關加電啟動,嵌入式網關的操作系統負責啟動核心管理模塊。此時,其他模塊還未啟動。核心模塊首先為其他模塊啟動初始化系統環境,如創建管道,共享內存等。接著,核心模塊啟動其他模塊。這時,系統將啟動完成。

          接著,核心模塊建立定時器,創建定時器是為了定時地檢測其他模塊,以判斷其他模塊的狀態,稱這個過程為“心跳”。

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

        程序啟動過程

        圖4 程序啟動過程

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

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

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

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

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

          ( 6) 處理巡檢。服務器需要定時地檢測前置機各個模塊的狀態,于是發送巡檢請求給網絡模塊,網絡模塊解析后組包發送給核心模塊,核心模塊在分析包發現該包是巡檢請求,于是通過kil l( ) 函數及注冊記錄信息,判斷各個模塊的狀態,并組包發送給服務器。

          ( 7) 處理系統維護。系統維護的主要任務是為了保證系統所有模塊的正常運行。前面初始化了一個定時器,通過定時器,可定時地查詢其他模塊的狀態。當發現某個模塊異常,核心模塊將重啟該模塊。

          3. 3. 2 關鍵數據結構

          ( 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) 管道初始化

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

        表3 初始化函數

         初始化函數



        關鍵詞: ARM

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临潭县| 沂南县| 昌图县| 枣强县| 乌鲁木齐县| 江阴市| 吴旗县| 二连浩特市| 泽普县| 蒙城县| 宁远县| 措勤县| 家居| 乌海市| 侯马市| 霸州市| 怀柔区| 绥滨县| 辽中县| 桦甸市| 三明市| 怀仁县| 左云县| 柯坪县| 北碚区| 湖州市| 吕梁市| 西林县| 乌兰浩特市| 玉树县| 宁化县| 西畴县| 孝义市| 荔波县| 奉节县| 库尔勒市| 鱼台县| 兖州市| 邵东县| 巫山县| 昆明市|