在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁 > 汽車電子 > 設計應用 > 基于CAN總線的半掛車安全預警系統(tǒng)設計

            基于CAN總線的半掛車安全預警系統(tǒng)設計

            作者: 時間:2009-03-25 來源:網(wǎng)絡 收藏

            4 系統(tǒng)軟件設計
            4.1 操作系統(tǒng)引導
            本系統(tǒng)軟件設計采用目前比較流行的嵌入式實時多任務開放式操作系統(tǒng)μC-OS/II 。該操作系統(tǒng)要在S3C44B0X處理器上運行必須先對其進行移植[3],然后由Bootloader中由BOOT()、Loadfile()兩個函數(shù)來完成操作系統(tǒng)的引導和控制權的轉移。系統(tǒng)將LCD、音頻、接口控制器等全部硬件驅動程序,圖形API,控件函數(shù),以及系統(tǒng)的基本任務生成專門的庫(在STD2.5的開發(fā)環(huán)境下生成的庫為ucos_lib.alf),使基于庫的應用程序開發(fā)變的異常
            簡單,不用考慮底層的細節(jié)。應用程序開發(fā)后與專門庫、頭文件以及μC/OS-II操作系統(tǒng)會綁定在一起編譯,生成唯一執(zhí)行文件system.bin,存放在16M FLASH中,在系統(tǒng)啟動時由BootLoader依靠文件系統(tǒng)從FLASH 中讀到SDRAM 中,然后移植到該代碼上,完成操作系統(tǒng)的引導任務。
            4.2設置TPMS的胎壓與溫度報警門限
            汽車輪胎的壓力與溫度是密切相關的,當輪胎氣壓低于標準值時,變形增大,受力發(fā)生變化,若胎壓長期低于正常氣壓的80%,在高速行駛時,輪胎會因急劇升溫而脫層,甚至導致爆胎[4]。當輪胎氣壓高于標準值時,因輪胎與地面接觸的面積減少,單位壓力增高,使輪胎胎面的中部磨損增加。通過室內試驗證明:氣壓提高25%,輪胎壽命將會降低15~20%;氣壓降低25%,壽命大約降低30%。此外,汽車輪胎溫度越高,輪胎的強度越低,變形越大(一般不能超過80℃,當溫度達到95℃時,輪胎的情況非常危險),每升高1℃,輪胎磨損就增加2%,行駛速度每增加一倍,輪胎行駛里程將降低50%[5]。因此,最好不要超溫、超速行使。由于不同載重、不同型號的半掛車輪胎標準胎壓、溫度不同,系統(tǒng)設置為可由觸摸屏面板自行輸入?yún)⒖紭藴侍汉蜏囟戎?。實際胎壓值在標準胎壓值的-10到+10%之間波動認為正常;在-25%到-10%之間或+25%到+10%之間波動視為一般性異常,發(fā)出二級預警信號,提示司機做出相應處理;低于25%或高于25%視為嚴重異常,發(fā)出一級預警信息。在不考慮外部溫度、路面等因素影響,默認輪胎最大溫度值為80 oC,超過80 oC視為一般異常,發(fā)出二級預警,超過100oC視為嚴重異常,發(fā)出一級預警信號。系統(tǒng)中通過觸摸屏參數(shù)選取任務TouchOption_Task()可獲得用戶指定輪胎標準壓力和最大溫度,存放于變量Press和Temp中。
            4.3 胎壓顯示、聲音預警
            為保證系統(tǒng)的實時性,采取中斷方式接收 數(shù)據(jù),由Main_Task()任務完成。對于接收到的壓力、溫度采樣數(shù)據(jù),首先調用Data_deal()函數(shù)根據(jù)ID 碼區(qū)分各個輪胎的數(shù)據(jù),由Display_Task()任務執(zhí)行在LCD 上以直方圖的形式顯示輪胎壓力信息;其次切換到任務Sound_Task()將數(shù)據(jù)與用戶設置的壓力(溫度)標準值進行比較,若上下偏離標準值在25%(20%溫度標準值)范圍內,采取一級報警策略,連續(xù)播放急促的警報聲,提請司
            機立即停車;再次將數(shù)據(jù)與標準壓力(溫度)值進行比較,若偏離標準值10%,發(fā)出二級報警信息,斷斷續(xù)續(xù)的滴答聲,提請司機注意輪胎壓力不夠或過大,影響輪胎使用壽命和經(jīng)濟運行,需要對輪胎進行檢修。各任務間的信息傳遞和任務喚醒采用郵箱機制。
            void Mian_Task(Void *id) //接收處理CAN 數(shù)據(jù)任務
            {……// MCP2510 初始化,準備以中斷方式接收數(shù)據(jù)
            for(;;)
            {rxmsg=(char)*=OSMboxPend(ISRTaskMbox,0,err);//接收郵箱消息
            if(*rxmsg=’0’
            {rINTMSK-(~BIT_TIME0);禁止外部中斷,但不禁止節(jié)拍中斷
            rINTMSK|=BIT_EINT4567;
            canRead(n, id, data, length, rxRTR, isExt);
            CANData_deal(id,data);
            rINTMSK=~(BIT_EINT4567);//開啟中斷
            ??????}}}
            void CANData_deal(id,data) //CANData_deal()對數(shù)據(jù)進行處理
            {??????//定義相關信息
            if ydata[1]> Pressure*110%* || data[1] Pressure*90% ||data[2]> Temperature
            { isrtxmsg=‘2’;//向郵箱發(fā)送二級聲音預警信息
            OSMboxPost(soundMbox,(void*)isrtxmsg)
            }else
            {if ydata[1]>ya*125* || data[1]ya*75% ||data[2]> Temperature*120%
            { isrtxmsg=‘1’;// 向郵箱發(fā)送一級聲音預警信息
            OSMboxPost(soundMbox,(void*)isrtxmsg)}}
            canid=id0x700//對id 第8―10 位進行判斷
            switch(canid)
            { case 0: //結點1 數(shù)據(jù)處理和顯示
            ya1=data[1]
            ??????
            case 0x100: //結點2 數(shù)據(jù)處理和顯示
            ya2=data[1];
            ??????}}
            void Display_Task(Void *id) //預警信息顯示任務
            {??????
            TextOut(pdc,20,20,ch1,true,2)//輸出提示文字:“輪胎壓力信息顯示”
            LineTo(pdc, 0, ya*110%/2+200);//壓力最高預警線
            LineTo(pdc, 0, ya*90%/2+200);// 壓力最低預警線
            DrawRectfram(pdc,40,200+ya1/2,90,200);//輪胎1 對應的直方圖
            ??????
            DrawRectfram(pdc,235,200+ya4/2,285,200);//輪胎n 對應的直方圖
            ??????}


            上一頁 1 2 下一頁

            評論


            相關推薦

            技術專區(qū)

            關閉