亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于LabVIEW的車輛ECU在線編程系統(tǒng)設(shè)計(jì)

        2018-01-18 03:27:24楊勝兵萬宏偉范文濤
        自動化與儀表 2017年5期
        關(guān)鍵詞:程序

        楊勝兵 ,薛 冰 ,萬宏偉 ,范文濤

        (1.武漢理工大學(xué) 現(xiàn)代汽車零部件技術(shù)湖北省重點(diǎn)實(shí)驗(yàn)室,武漢 430070;2.汽車零部件技術(shù)湖北省協(xié)同創(chuàng)新中心,武漢 430070)

        隨著汽車智能化的程度不斷提高,車上各類控制器數(shù)量更多,程序更加復(fù)雜。因此,各類控制器在正式投入使用前都要經(jīng)過大量而嚴(yán)格的測試,不斷調(diào)試、修改、更新程序,使控制器能夠工作在最佳狀態(tài)。控制器需要安裝在實(shí)車上進(jìn)行匹配調(diào)試并檢驗(yàn)實(shí)際運(yùn)行效果,若發(fā)現(xiàn)控制器程序存在問題需要修改,傳統(tǒng)的解決方法是通過控制器的UART外設(shè)實(shí)現(xiàn)數(shù)據(jù)傳輸,但這種方法傳輸速度低,而且升級時(shí)需要連接每個(gè)ECU節(jié)點(diǎn)的SCI接口,效率也低[1],因此可以考慮通過CAN總線更新控制器內(nèi)部程序或重標(biāo)定不合適的參數(shù)??刂破鬟\(yùn)行出現(xiàn)問題可能是程序問題,可能是標(biāo)定參數(shù)值不合適,也可能是外部問題,因此有必要對控制器傳輸數(shù)據(jù)進(jìn)行監(jiān)控。為滿足上述需求,本文設(shè)計(jì)了一套基于Lab-VIEW的車輛ECU在線編程系統(tǒng),能夠通過CAN總線方便快捷地實(shí)現(xiàn)對車輛ECU的程序更新、參數(shù)標(biāo)定及數(shù)據(jù)監(jiān)控。本系統(tǒng)已進(jìn)入試驗(yàn)階段。

        1 S19文件及BootLoader簡介

        S19文件是飛思卡爾推薦使用的標(biāo)準(zhǔn)文件傳送格式,是CodeWarrior將編寫的代碼編譯后自動生成的binary文件,該文件是一段直接燒寫進(jìn)ECU的ASCII碼[2]。S19文件中的每一行稱為1條記錄,每行以字母S開頭,第二位表示該記錄的類型。S0是一段描述性語句,包含了文件的來源位置信息,表示程序的開始,因此不需要燒寫到ECU中。S1~S3的地址場分別由2~4個(gè)字節(jié)地址組成,數(shù)據(jù)場由可載入的數(shù)據(jù)組成,是程序下載的主體部分。S7~S9表示程序的結(jié)束,地址場分別由2~4個(gè)字節(jié)地址組成,該記錄不需要燒寫到ROM中,但需要下載,用于提示S19文件下載完畢。

        BootLoader是ECU上電后最先運(yùn)行的一段引導(dǎo)加載程序。BootLoader通常包含啟動加載和下載2種模式。啟動加載模式是直接將存儲在固態(tài)存儲設(shè)備中的應(yīng)用程序加載到RAM中執(zhí)行,下載模式則是BootLoader通過串口或網(wǎng)絡(luò)連接等手段從主機(jī)中下載應(yīng)用程序,先將程序存在RAM中,再將其刷寫在Flash等固態(tài)存儲設(shè)備中[3]。BootLoader是本系統(tǒng)實(shí)現(xiàn)控制器內(nèi)部程序更新的關(guān)鍵。

        2 總體設(shè)計(jì)

        本文設(shè)計(jì)的車輛ECU在線編程系統(tǒng)由上位機(jī)和下位機(jī)兩部分組成,系統(tǒng)框架如圖1所示。

        圖1 車輛ECU在線編程系統(tǒng)框架Fig.1 Frame of vehicle ECU online programming system

        為實(shí)現(xiàn)上、下位機(jī)的正常通訊,必須預(yù)先制定合適的通訊協(xié)議。由于下位機(jī)為BootLoader分配的程序存儲空間有限,本文參考UDS[4]等協(xié)議標(biāo)準(zhǔn)中的軟件刷寫部分,自定義了一份簡單實(shí)用的程序更新通訊協(xié)議。程序更新通訊協(xié)議中將報(bào)文類型分為信息報(bào)文和數(shù)據(jù)報(bào)文兩類,信息報(bào)文包含了S記錄類型、數(shù)據(jù)裝載地址、數(shù)據(jù)長度及校驗(yàn)和信息,數(shù)據(jù)報(bào)文則包含了數(shù)據(jù)幀序號和數(shù)據(jù)信息。程序更新報(bào)文通過數(shù)據(jù)域的首字節(jié)區(qū)分報(bào)文類型,為避免信息報(bào)文與數(shù)據(jù)報(bào)文沖突,數(shù)據(jù)幀序號從11開始編號。由于一條S記錄的數(shù)據(jù)場最長為32字節(jié),而一條數(shù)據(jù)報(bào)文最多可傳輸7個(gè)字節(jié)的數(shù)據(jù),因此每條S記錄的數(shù)據(jù)幀序號最大為15。程序更新時(shí),上、下位機(jī)按照制定的通訊協(xié)議進(jìn)行通訊,采用一問一答的方式逐條下載S記錄,當(dāng)下位機(jī)收到S9信息報(bào)文時(shí),表示程序下載完畢。制定的程序更新通訊協(xié)議如表1、表2所示。

        表1 程序更新信息報(bào)文格式Tab.1 Format of application update information message

        表2 程序更新數(shù)據(jù)報(bào)文格式Tab.2 Format of application update data message

        為使設(shè)計(jì)的車輛ECU在線編程系統(tǒng)通用性更強(qiáng),本文制定的參數(shù)標(biāo)定協(xié)議基于CCP協(xié)議[5],并根據(jù)標(biāo)定參數(shù)是否已經(jīng)過調(diào)試,分為下載標(biāo)定參數(shù)到RAM和下載標(biāo)定參數(shù)到Flash 2種標(biāo)定過程。

        3 上位機(jī)設(shè)計(jì)

        上位機(jī)的主要功能是更新程序、標(biāo)定參數(shù)和監(jiān)控下位機(jī)傳輸數(shù)據(jù),因此按照其功能可將上位機(jī)程序劃分為程序更新、參數(shù)標(biāo)定和數(shù)據(jù)監(jiān)控三大模塊。在啟動各模塊前,首先要進(jìn)行CAN通訊配置,包括CAN報(bào)文收發(fā)所用的通訊端口,CAN通訊波特率,上、下位機(jī)ID以及接收數(shù)據(jù)顯示形式等。

        3.1 程序更新模塊設(shè)計(jì)

        程序更新模塊主要由讀取S19文件和下載S19代碼兩部分組成。

        讀取S19文件將S19文件通過“讀取表格文件”VI讀入上位機(jī)程序,根據(jù)S19文件格式將每條S記錄按類型、計(jì)數(shù)值、地址、數(shù)據(jù)場和校驗(yàn)和拆分重組,并以表格的形式顯示在前面板上,如圖2所示。

        圖2 S記錄拆分重組成表Fig.2 Spilt S record and reorganize table

        下載S19代碼 點(diǎn)擊“下載”按鈕后,待發(fā)送數(shù)組索引進(jìn)入for循環(huán),逐條封裝成標(biāo)準(zhǔn)格式的CAN報(bào)文,通過“XNET Write(Frame CAN)”VI將其發(fā)送到CAN總線上。待一條S記錄的CAN報(bào)文發(fā)送完畢后,經(jīng)過 100 ms的延時(shí),通過“XNET Read(Frame CAN)”VI讀取下位機(jī)返回的報(bào)文,判斷S記錄是否發(fā)送成功。若發(fā)送成功,則繼續(xù)發(fā)送下一條S記錄,直到全部S記錄發(fā)送完畢,否則顯示“發(fā)送失敗”。

        上位機(jī)更新程序下載流程如圖3所示。

        圖3 上位機(jī)更新程序下載流程Fig.3 Download flow chart of upper computer update program

        3.2 參數(shù)標(biāo)定模塊設(shè)計(jì)

        標(biāo)定參數(shù)讀取從設(shè)置的讀取路徑讀取待標(biāo)定的參數(shù),并將其顯示在參數(shù)標(biāo)定面板上,用戶可根據(jù)需要修改待標(biāo)定的參數(shù)。

        標(biāo)定參數(shù)下載如果標(biāo)定參數(shù)需要在線調(diào)試,選擇將標(biāo)定參數(shù)下載到RAM。上位機(jī)發(fā)送CONNECT報(bào)文,等待下位機(jī)的命令返回消息DTO報(bào)文,連接成功后上位機(jī)通過SET_MTA報(bào)文設(shè)置數(shù)據(jù)下載的初始地址,待下位機(jī)返回DTO報(bào)文后,通過DNLOAD報(bào)文將標(biāo)定數(shù)據(jù)下載到ECU的RAM中。如果標(biāo)定參數(shù)不需要在線調(diào)試或已經(jīng)調(diào)試完成,則選擇將標(biāo)定參數(shù)下載到Flash。根據(jù)CCP協(xié)議,與下載到RAM的標(biāo)定過程相比,下載到Flash需要預(yù)先通過CLERA_MEMORY報(bào)文清除從起始地址MTA0開始指定大小的內(nèi)存,保證數(shù)據(jù)能夠順利存儲到指定Flash區(qū)域,且最后通過一條標(biāo)定數(shù)據(jù)長度為0的PROGRAM報(bào)文結(jié)束參數(shù)標(biāo)定。

        3.3 數(shù)據(jù)監(jiān)控模塊設(shè)計(jì)

        標(biāo)定完成的下位機(jī)會按照標(biāo)定的格式內(nèi)容向CAN總線定期發(fā)送數(shù)據(jù)幀,上位機(jī)根據(jù)CAN通訊波特率和ID過濾讀取指定下位機(jī)發(fā)送的數(shù)據(jù)幀,根據(jù)通訊協(xié)議解析數(shù)據(jù)內(nèi)容,并將其顯示在數(shù)據(jù)監(jiān)控面板上。

        4 下位機(jī)設(shè)計(jì)

        4.1 下位機(jī)硬件設(shè)計(jì)

        下位機(jī)硬件結(jié)構(gòu)由單片機(jī)最小系統(tǒng)和CAN收發(fā)器組成。目標(biāo)ECU選用了飛思卡爾的MC9S12XS128系列單片機(jī),CAN收發(fā)器選用了NXP的TJA1050高速CAN收發(fā)器,滿足通過CAN總線在線更新程序、標(biāo)定參數(shù)的需求。

        4.2 下位機(jī)程序設(shè)計(jì)

        根據(jù)車輛ECU在線編程系統(tǒng)的設(shè)計(jì)需求以及編寫的上位機(jī)程序,下位機(jī)程序主要劃分為基于BootLoader的程序更新模塊以及基于CCP協(xié)議的參數(shù)標(biāo)定模塊。

        4.2.1 基于BootLoader的程序更新模塊

        基于BootLoader的程序更新流程如圖4所示。首先通過芯片指定引腳的電平高低判斷BootLoader所處模式,若引腳為高電平則進(jìn)入啟動加載模式(即執(zhí)行模式),直接跳轉(zhuǎn)到Flash地址0xEFFE處執(zhí)行用戶程序,若引腳為低電平則進(jìn)入程序更新模式(即下載模式)。程序進(jìn)入更新模式后,首先初始化鎖相環(huán)、定時(shí)器、MSCAN及Flash。然后程序進(jìn)入循環(huán),監(jiān)聽CAN總線上是否有在線編程系統(tǒng)上位機(jī)發(fā)送的報(bào)文。當(dāng)收到的ID與上位機(jī)ID一致時(shí),將該組報(bào)文讀進(jìn)數(shù)據(jù)緩沖區(qū)。根據(jù)首條報(bào)文(程序更新信息報(bào)文)解析出該組報(bào)文S記錄的類型、數(shù)據(jù)裝載地址、數(shù)據(jù)長度及校驗(yàn)和信息。根據(jù)S記錄校驗(yàn)和計(jì)算公式計(jì)算該組報(bào)文的校驗(yàn)和,并將計(jì)算結(jié)果與解析出的校驗(yàn)和信息對比,若校驗(yàn)正確則返回接收成功消息,并將程序更新數(shù)據(jù)報(bào)文中的S記錄數(shù)據(jù)內(nèi)容寫入指定Flash區(qū)域,否則返回接收失敗消息。當(dāng)收到S9記錄報(bào)文時(shí),說明S19文件已發(fā)送完成,復(fù)位即可執(zhí)行用戶程序。

        圖4 基于BootLoader的程序更新流程Fig.4 Flow chart of program update based on BootLoader

        4.2.2 基于CCP協(xié)議的參數(shù)標(biāo)定模塊

        系統(tǒng)上電后,首先進(jìn)行初始化配置,包括鎖相環(huán)、定時(shí)器、MSCAN、Flash以及各端口的初始化。初始化完成后,程序以一定周期讀取各端口的數(shù)據(jù)。當(dāng)CAN通道收到上位機(jī)發(fā)送的連接命令時(shí),程序進(jìn)入標(biāo)定子函數(shù),按照上文制定的參數(shù)標(biāo)定協(xié)議與上位機(jī)進(jìn)行通訊,并將標(biāo)定參數(shù)存儲到指定地址的RAM或Flash中。

        5 系統(tǒng)測試

        為檢驗(yàn)設(shè)計(jì)的車輛ECU在線編程系統(tǒng),本文以電動汽車電流傳感器的在線編程為例對其進(jìn)行了測試,如圖5所示。首先通過BDM將BootLoader初始化程序下載到電流傳感器ECU中,然后在Code-Warrior中編寫電流傳感器應(yīng)用程序,編譯后生成S19文件。電流傳感器上電,啟動在線編程系統(tǒng)并進(jìn)入程序更新界面,讀取S19文件并將其通過CAN總線下載到電流傳感器ECU中。進(jìn)入?yún)?shù)標(biāo)定界面,讀取待標(biāo)定的電流傳感器參數(shù),通過CAN總線將參數(shù)標(biāo)定到電流傳感器ECU中。最后進(jìn)入數(shù)據(jù)監(jiān)控界面,對電流傳感器數(shù)據(jù)發(fā)送情況進(jìn)行監(jiān)控,發(fā)現(xiàn)電流傳感器能夠按照標(biāo)定的格式內(nèi)容定期向CAN總線上發(fā)送數(shù)據(jù)幀,說明電流傳感器運(yùn)行正常,同時(shí)也證明本文設(shè)計(jì)的車輛ECU在線編程系統(tǒng)可行。

        圖5 電流傳感器在線編程測試Fig.5 Test of current sensor online programming

        6 結(jié)語

        針對車輛控制器現(xiàn)場調(diào)試復(fù)雜的問題,本文設(shè)計(jì)了一套基于LabVIEW的車輛ECU在線編程系統(tǒng),該系統(tǒng)由程序更新、參數(shù)標(biāo)定、數(shù)據(jù)監(jiān)控三大模塊組成,能通過CAN總線在線更新ECU程序、標(biāo)定相關(guān)參數(shù)并監(jiān)控ECU實(shí)時(shí)運(yùn)行狀況。最后以電流傳感器為例,對設(shè)計(jì)的車輛ECU在線編程系統(tǒng)進(jìn)行了測試。測試結(jié)果表明,該系統(tǒng)操作簡便,能夠顯著降低車輛控制器程序現(xiàn)場調(diào)試復(fù)雜程度,有效提高程序更新、參數(shù)標(biāo)定效率。

        [1]羅峰,孫澤昌.汽車CAN總線系統(tǒng)原理、設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2010.

        [2]樂志國,金啟前.電動汽車整車控制器BootLoader功能開發(fā)[J].佳木斯大學(xué)學(xué)報(bào):自然科學(xué)版,2014,32(2):237-241.

        [3]楊競喆,王志福,劉杰.基于MC9S12XEP100的整車控制器CAN BootLoader設(shè)計(jì)與實(shí)現(xiàn)[J].車輛與動力技術(shù),2014,36(1):25-29.

        [4]ISO 14229-1:2013,Road vehicles-unified diagnostic services(UDS)-Part 1:Specification and requirements[S],2013.

        [5]ASAP Standard,CAN Calibration Protocol.Version 2.1[S],1999.

        猜你喜歡
        程序
        給Windows添加程序快速切換欄
        電腦愛好者(2020年6期)2020-05-26 09:27:33
        試論我國未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動“離婚”程序程序
        基于VMM的程序行為異常檢測
        偵查實(shí)驗(yàn)批準(zhǔn)程序初探
        我國刑事速裁程序的構(gòu)建
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        恐怖犯罪刑事訴訟程序的完善
        av少妇偷窃癖在线观看| 高清不卡一区二区三区| 女女女女bbbbbb毛片在线| 久久亚洲AV无码精品色午夜| 亚洲麻豆av一区二区| 国内久久婷婷六月综合欲色啪| 欧美成人在线视频| 亚洲一区二区三区成人| 日韩精品久久不卡中文字幕| 男女啪啪视频高清视频| 亚洲人成电影在线播放| 欧洲综合色| av在线男人的免费天堂| 国产在线观看91一区二区三区| 亚洲色成人网站www永久四虎| 国产欧美日韩午夜在线观看 | 国产成人一区二区三中文| 亚洲中文字幕高清视频| 人妖av手机在线观看| 无码午夜成人1000部免费视频| 亚洲一区二区三区av链接| 男女动态视频99精品| 天天摸天天做天天爽水多| 色猫咪免费人成网站在线观看 | 国产乱人伦av在线麻豆a| 国产在线观看www污污污| 亚洲a人片在线观看网址| 免费人妻精品一区二区三区 | 国产免费丝袜调教视频| 国产成人久久精品亚洲小说| 在线观看一区二区蜜桃| 无码字幕av一区二区三区| 欧美成人激情在线| 在线亚洲精品一区二区三区| 成人艳情一二三区| 成年女人毛片免费视频| 亚洲精品二区在线观看| 中国久久久一级特黄久久久| 国产99视频精品免视看9| 国产成人久久精品77777综合| 一本久道视频无线视频试看|