新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于LPC2292的汽車智能組合儀表設計

        基于LPC2292的汽車智能組合儀表設計

        作者: 時間:2012-05-30 來源:網絡 收藏

        每個任務在建立時均分配一個優先級(范圍為0 ~63, 0為最高,63為最低)。這6個任務的優先級依次分配為1, 2, 3, 4, 5, 6;報警任務需要及時響應,具有最高的優先級;而里程顯示、存儲任務優先級最低。較高優先級的任務必須調用至少一項系統服務而暫時放棄CPU的使用權,否則低優先級任務無法得到運行。

        任務的一般結構如下:

        void UserTask (void *pdata)

        { for(;;)

        {調用μC /OS II的某種系統服務:

        OSMboxPend ( )/OSMboxPost ( );(1)

        OSQPend ( )/OSQPost ( ); (2)

        OSSemPend ( )/OSSemPend ( ): (3)

        OSTaskDel (OS PRIG SELF);(4)

        OSTaskSuspend (OS_ PR工OSELF); (5)

        OSTimeDly( )/OSTimeDlyHMSM(); (6)

        }}

        (1)-(6)是一些主要的系統服務函數,這些函數里均進行一次任務調度,或者可能會使當前任務放棄CPU使用權而運行其他的任務。用戶任務必須至少調用一個服務函數。

        另外程序還有5個用C語言編寫的用戶中斷服務程序:一個CAN接收中斷(用于接收總線信息)、4個定時器輸出比較中斷(用于產生驅動步進電機的周期性脈沖)。

        因此本例程序可以這樣規劃,首先調用OSInit(),對μC /OS-II做初始化,然后創建一個信號量,因為后面的任務都要用到Printp( )函數,而Printp( )是一個不可重入函數,調用前要防止多個任務同時調用,這個信號量用于保護Printp()函數。接著創建6個任務,并對這6個任務分配優先級,最后調用OSStart ( )以啟動內核,于是任務在操作系統的管理和調度下運行和切換。圖2是程序的簡要流程圖。


        圖2 程序流程圖

        4 結束語

        隨著汽車電氣系統的總線化,高集成、嵌入式、總線化是汽車儀表發展的必然趨勢。基于的汽車智能,實時顯示和保存車速、發動機轉速、水溫、油位、總里程、子里程等車況參數,使汽車具有“黑匣子”功能。并且采用建立通信網絡,集車輛儀表、視頻監控、語音輸出于一體,解決了分開安裝不便、可靠性差的缺陷,提高了系統的可靠性。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 滨州市| 安阳县| 健康| 类乌齐县| 中超| 明溪县| 金昌市| 桃园县| 永和县| 东海县| 柘荣县| 曲阜市| 社旗县| 绍兴县| 唐河县| 富锦市| 司法| 宁夏| 自治县| 江山市| 申扎县| 万安县| 辽阳县| 霍城县| 余干县| 洪洞县| 神农架林区| 尤溪县| 格尔木市| 远安县| 雷波县| 尼勒克县| 崇左市| 滦南县| 镇赉县| 柳河县| 芜湖县| 铜鼓县| 望江县| 合肥市| 太仓市|