新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CAN總線的嵌入式設備狀態監測平臺設計

        基于CAN總線的嵌入式設備狀態監測平臺設計

        作者: 時間:2016-09-12 來源:網絡 收藏

        2.4 μC/OS嵌入式操作系統

        首先,已經將板級支持包編寫完畢,而首先是單板運行,其次是將底層軟件用任務的方式重新編寫。在單板運行就是移植的過程,主要有:

        ①定義常量的值,聲明數據類型、堆棧參數;

        ②編寫堆棧初始化參數;

        ③編寫任務切換的函數,還有在中斷函數中提供時鐘中斷,即給操作系統時鐘使用。

        移植完成之后,進行任務的編寫。分配給7個任務不同的優先級、堆棧資源和運行方式。其中,App_TaskStart是全部任務的起始點,優先級最高,由這個任務來建立其他任務,并且啟動統計任務。App_TaskCreate建立了其他所有的任務。AppTaskUSerIF任務實現用戶界面,Task_CAN任務實現CAN報文接收,Task_FatFileWR任務實現FatFs文件讀寫,AppTaskKbd任務實現觸摸驅動,Clock_Update任務實現秒更新。

        任務的周期性啟動在建立任務時確定,例如AppTaskUserIF任務始終在運行,采用WM_Exec函數做界面更新。AppTaskKbd是10 ms周期讀取觸摸坐標,實現繪制鼠標箭頭和觸控功能。

        信號量是在所有任務建立之前建立。CAN_MBOX是采用OSMboxCreate建立的郵箱信號量,能夠傳送CAN接收中斷的消息以啟動CAN任務,FLAGRECORD是OSFlagCreate建立的多值信號量,能置位4位,啟動文件讀寫任務。ClocK_SEM是OSSemCreate建立的二值信號量,專門用于秒更新中斷的信號量。

        CAN_MBOX=OSMboxCreate((void*)0);

        //建立CAN接收任務的消息郵箱

        FLAGRECORD=OSFlagCreate(0,err);

        //建立記錄文件的開關量

        Clock_SEM=OSSemCreate(1);

        //建立秒更新中斷的信號量

        在運行μC/OS之后,還可以在os_cfg.h函數中關閉OS不需要的功能模塊,以達到裁減系統、節約內存空間的目的。

        2.5 μC/GUI顯示界面

        需要先移植,再設計界面。移植過程可以參考其他文獻。設計界面分成兩步:第一步是寫軟件框架,第二步是設計具體界面。每一個對話框都是用創建函數建立,創建函數會調用事先定義的資源,包括控件的形式、位置、大小、初始化值等,對話框還指定了相應的回調函數,通過回調函數操作對話框的行為,完成初始化、繪制、按鈕響應等。代碼如下:

        基于CAN總線的嵌入式設備狀態監測平臺設計
        基于CAN總線的嵌入式設備狀態監測平臺設計

        值得注意的是,建立對話框有兩種函數,即阻塞型和非阻塞型。采用非阻塞型的對話框才能在多對話框的操作中實現同步更新。不然,當前對話框使能就會阻塞顯示其他對話框。

        GUI_CreateDialogBox(); //非阻塞型

        GUI_ExecDialogBox(); //阻塞型

        界面設計的細化繪制工作集中在:①初始化時,控件資源決定了界面的布置和美觀;②在回調函數中,按鈕響應函數決定了對話框完成任務的流程。圖8所示是主節點運行界面的主對話框。

        基于CAN總線的嵌入式設備狀態監測平臺設計

        2.6 適配從節點

        按照主節點的界面和狀態機,修改程序以適配從節點監控設備運行狀態的任務需求。目前設計了3種從節點:一是采集溫度和濕度;二是采集壓力;三是標準數據采集及傳輸。從節點的程序結構和主節點是一致的,需要修改的地方有:

        通信協議采用的是從節點的應答指令和狀態機;

        ②顯示界面的資源與布置需修改。對不需要的任務做屏蔽,節省資源和空間。

        圖9所示為第三個從節點的界面。

        基于CAN總線的嵌入式設備狀態監測平臺設計

        3 系統應用

        通過總線方式將一個主節點和三個從節點連接。主節點選擇500 kbps的波特率,收到從節點發來的狀態確認良好的消息,主節點的當前狀態顯示塊從黃色變成綠色。從節點1和節點2選擇數據發送間隔,按下傳輸按鈕,將溫度、濕度及壓力數值傳送給主節點顯示。

        采樣測試中,在需要采集的時刻單擊主節點按鈕,從節點開始采樣,進度條運行。點擊“Transfer”按鈕后,從節點和主節點的傳輸進度條走動一致,完成傳輸后又恢復

        了初值。說明正常完成數據采集、傳輸的過程,發送的數據被完整接收。

        接收完數據,主節點通過USB線連接電腦,就顯示為一個U盤,其中txt文件是接收的采樣數據,文件名為記錄的實時日期和時間。

        結語

        本文設計的基于總線的嵌入式設備狀態監控平臺具有主、從節點的分層次結構。總線結構可靠性高,使用數量多。從節點多種模式能夠適應豐富的設備健康狀態監控,且每個節點的界面具有交互性。提供了很好的平臺,便于拓展任務,本監控平臺具有很強的實用價值。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 崇信县| 会东县| 鸡东县| 平定县| 莫力| 安陆市| 曲靖市| 阳春市| 西峡县| 巴林右旗| 阿拉善左旗| 金门县| 衡水市| 宣城市| 临夏市| 安新县| 南召县| 蕲春县| 上蔡县| 新乡市| 石渠县| 西和县| 揭西县| 德兴市| 安吉县| 东阳市| 吉木乃县| 安国市| 万州区| 梓潼县| 上饶市| 景洪市| 缙云县| 武威市| 岳西县| 黑水县| 南皮县| 塔河县| 普格县| 海晏县| 松原市|