本發(fā)明屬于儀表調(diào)試技術(shù)領(lǐng)域,具體涉及一種oncan儀表在線調(diào)試系統(tǒng)及基于該系統(tǒng)實(shí)現(xiàn)的調(diào)試方法。
背景技術(shù):
近年來,隨著超大規(guī)模集成電路在汽車電子領(lǐng)域得到普遍應(yīng)用,車載網(wǎng)路系統(tǒng)也在不斷完善。汽車儀表是駕駛員與汽車進(jìn)行信息交流的重要接口和界面,需要更加豐富、直觀、準(zhǔn)確地顯示各種數(shù)據(jù)信息,隨著系統(tǒng)完善其上顯示的信息也在不斷增加。然而由于汽車組合儀表顯示的信息不斷增加,也造成儀表的開發(fā)、調(diào)試、測(cè)試、配置日益繁瑣、復(fù)雜。軟件工程師開發(fā)過程中測(cè)試、配置、路試跑車程序的更新都是通過繁瑣的診斷命令來實(shí)現(xiàn),因?yàn)檎{(diào)試配置的復(fù)雜化,繁瑣的配置信息造成的事故日益增加,從而導(dǎo)致儀表開發(fā)質(zhì)量下滑,不能滿足目前不斷提高的儀表品質(zhì)要求。
技術(shù)實(shí)現(xiàn)要素:
為解決上述問題,本發(fā)明公開了oncan儀表在線調(diào)試系統(tǒng)及基于該系統(tǒng)實(shí)現(xiàn)的在線調(diào)試方法。
為了達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案:
oncan儀表在線調(diào)試系統(tǒng),包括硬件接口層、中間層、應(yīng)用層,所述硬件接口層用于調(diào)用intrepid硬件設(shè)備動(dòng)態(tài)鏈接庫icsneo40.dll內(nèi)調(diào)用硬件接口,實(shí)現(xiàn)開啟關(guān)閉配置硬件和接收發(fā)送can消息功能;中間層基于iso-14229協(xié)議和iso-15765,用于實(shí)現(xiàn)協(xié)議的診斷服務(wù);應(yīng)用層基于診斷服務(wù)實(shí)現(xiàn)具體應(yīng)用功能,用于獲取用戶輸入信息做數(shù)據(jù)處理后交給顯示界面;
所述硬件接口層包括硬件接口模塊;
所述中間層包括診斷傳輸模塊,診斷傳輸模塊用于發(fā)送診斷服務(wù)消息,將診斷服務(wù)請(qǐng)求按照iso-15765協(xié)議的標(biāo)準(zhǔn)發(fā)送消息;進(jìn)行診斷服務(wù);接收診斷服務(wù)消息,根據(jù)arbid篩選消息后根據(jù)iso-15765標(biāo)準(zhǔn)組合成診斷應(yīng)答信息;
所述應(yīng)用層包括配置模塊、日志模塊、用戶模塊、eol模塊、bootload模塊、e2prom存儲(chǔ)器讀取/寫入模塊、can消息發(fā)送接收顯示模塊、ccp協(xié)議診斷模塊;硬件配置模塊用于與硬件連接進(jìn)行相應(yīng)配置,日志模塊用于記錄系統(tǒng)產(chǎn)生的日志記錄,用戶模塊用于進(jìn)行用戶個(gè)性化設(shè)置;
所述can消息發(fā)送接收顯示模塊用于實(shí)現(xiàn)發(fā)送信息、顯示接收和信息篩選功能;
所述ccp協(xié)議診斷模塊用于實(shí)現(xiàn)診斷和通訊管理、數(shù)據(jù)傳輸、存儲(chǔ)數(shù)據(jù)傳輸、輸入輸出控制、程序的上傳下載、例程控制;
所述e2prom存儲(chǔ)器讀取/寫入模塊實(shí)現(xiàn)讀取文件、數(shù)據(jù)列表、上傳與下載,包括eeprom讀寫步驟,所述eeprom讀寫步驟實(shí)現(xiàn)生產(chǎn)日期、軟硬件版本號(hào)、零件號(hào)、下線配置的讀寫,對(duì)于讀寫的數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)類型以及地址范圍等做了有效性判斷,將版本號(hào)地址與版本號(hào)綁定,避免誤刷情況發(fā)生;
bootload模塊用于實(shí)現(xiàn)文件讀取、數(shù)據(jù)下載功能,bootload模式用于實(shí)現(xiàn)軟件的在線刷新,同時(shí)通過校驗(yàn)避免軟件的刷寫錯(cuò)誤以及誤刷,bootload刷寫包括如下步驟:
步驟1,刷新事件由一個(gè)會(huì)話類型為刷新會(huì)話,物理尋址/功能尋址的診斷會(huì)話控制服務(wù)開始,電控單元接收到報(bào)文后應(yīng)為程序刷新分配一切必須的資源;
步驟2:測(cè)試工具獲取電控單元的物流數(shù)據(jù);
步驟3:測(cè)試工具解鎖電控單元使其能刷新相關(guān)的服務(wù),所有可刷新的電控單元應(yīng)支持安全訪問服務(wù);
步驟4:電控單元擦除存儲(chǔ)器相應(yīng)的區(qū)域;
步驟5:每次將連續(xù)的數(shù)據(jù)塊下載到非易失性存儲(chǔ)器時(shí)應(yīng)遵循下面的服務(wù)序列:
a)請(qǐng)求下載
b)傳輸數(shù)據(jù)
c)請(qǐng)求退出傳輸
在請(qǐng)求下載、傳輸數(shù)據(jù)和請(qǐng)求退出傳輸序列正確執(zhí)行時(shí),電控單元僅支持測(cè)試工具保持連接服務(wù),忽略其它服務(wù);
步驟6:當(dāng)所有數(shù)據(jù)塊下載完成后,測(cè)試工具通過程序控制服務(wù)啟動(dòng)完整性檢查程序驗(yàn)證下載是否成功,并更新軟件完整性狀態(tài)參數(shù);
eol模塊用于實(shí)現(xiàn)指針校驗(yàn),led和buzzer虛焊、lcd花屏以及靜態(tài)電流檢測(cè)。
進(jìn)一步的,還包括客戶配置模塊,用于下線配置。
oncan儀表在線調(diào)試方法,包括如下步驟:
診斷傳輸步驟:發(fā)送診斷服務(wù)消息,將診斷服務(wù)請(qǐng)求按照iso-15765協(xié)議的標(biāo)準(zhǔn)發(fā)送消息;進(jìn)行診斷服務(wù);接收診斷服務(wù)消息,根據(jù)arbid篩選消息后根據(jù)iso-15765標(biāo)準(zhǔn)組合成診斷應(yīng)答信息;
bootload刷寫步驟:
步驟1,刷新事件由一個(gè)會(huì)話類型為刷新會(huì)話,物理尋址/功能尋址的診斷會(huì)話控制服務(wù)開始,電控單元接收到報(bào)文后應(yīng)為程序刷新分配一切必須的資源;
步驟2:測(cè)試工具獲取電控單元的物流數(shù)據(jù);
步驟3:測(cè)試工具解鎖電控單元使其能刷新相關(guān)的服務(wù),所有可刷新的電控單元應(yīng)支持安全訪問服務(wù);
步驟4:電控單元擦除存儲(chǔ)器相應(yīng)的區(qū)域;
步驟5:每次將連續(xù)的數(shù)據(jù)塊下載到非易失性存儲(chǔ)器時(shí)應(yīng)遵循下面的服務(wù)序列:
a)請(qǐng)求下載
b)傳輸數(shù)據(jù)
c)請(qǐng)求退出傳輸
在請(qǐng)求下載、傳輸數(shù)據(jù)和請(qǐng)求退出傳輸序列正確執(zhí)行時(shí),電控單元僅支持測(cè)試工具保持連接服務(wù),忽略其它服務(wù);
步驟6:當(dāng)所有數(shù)據(jù)塊下載完成后,測(cè)試工具通過程序控制服務(wù)啟動(dòng)完整性檢查程序驗(yàn)證下載是否成功,并更新軟件完整性狀態(tài)參數(shù);
eol檢測(cè)步驟,通過診斷命令實(shí)現(xiàn)lde燈的不規(guī)則點(diǎn)亮熄滅控制來判斷是否虛焊;通過診斷命令實(shí)現(xiàn)lcd的花樣顯示來判斷l(xiāng)cd是否有花屏現(xiàn)象;通過診斷命令控制buzzer特定發(fā)音來判斷buzzer是否虛焊;
eeprom讀寫步驟,實(shí)現(xiàn)生產(chǎn)日期、軟硬件版本號(hào)、零件號(hào)、下線配置的讀寫,對(duì)于讀寫的數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)類型以及地址范圍等做了有效性判斷,將版本號(hào)地址與版本號(hào)綁定,避免誤刷情況發(fā)生。
進(jìn)一步的,診斷傳輸步驟中當(dāng)服務(wù)器有錯(cuò)誤應(yīng)答報(bào)文時(shí)篩選出有效消息。
進(jìn)一步的,診斷服務(wù)中支持增強(qiáng)型判斷。
進(jìn)一步的,bootload刷寫步驟中,在刷寫時(shí)進(jìn)行防錯(cuò)判斷,即編號(hào)相同或相匹配時(shí)才允許刷寫。
進(jìn)一步的,bootload刷寫步驟中,當(dāng)ecu接收到requestdownloadrequest服務(wù),ecu可以擦除相應(yīng)地址的數(shù)據(jù)時(shí),步驟4省略。
進(jìn)一步的,bootload刷寫步驟中,步驟5中如果塊長(zhǎng)度超出了網(wǎng)絡(luò)層緩存大小,單個(gè)數(shù)據(jù)塊使用多個(gè)傳輸數(shù)據(jù)請(qǐng)求報(bào)文。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn)和有益效果:
能夠快速地對(duì)儀表工程進(jìn)行配置、測(cè)試,實(shí)現(xiàn)跑車路試時(shí)驗(yàn)證、排查問題與程序更新,節(jié)約時(shí)間,提高質(zhì)量。在開發(fā)階段,能夠?qū)崿F(xiàn)eerom讀寫、儀表在線配置等,而不必頻繁輸入診斷指令,有效地節(jié)省了時(shí)間,并避免了產(chǎn)線以及客戶端誤操作問題,避免誤刷情況;生產(chǎn)階段,可以通過eol功能實(shí)現(xiàn)儀表指針的校驗(yàn)、led燈和buzzer的虛焊檢測(cè)、lcd花屏檢測(cè)以及靜態(tài)電流檢測(cè),有力的控制了儀表質(zhì)量問題;在銷售階段,如果儀表出現(xiàn)問題,可以通過eerom讀寫功能實(shí)現(xiàn)問題的排查與解決;在客戶端,可以通過客戶配置功能實(shí)現(xiàn)儀表的下線配置,通過bootload功能實(shí)現(xiàn)儀表的在線更新。
附圖說明
圖1為本發(fā)明系統(tǒng)架構(gòu)圖。
圖2為can消息發(fā)送接收顯示模塊控制界面。
圖3為ccp協(xié)議診斷模塊提供診斷控制界面。
圖4為e2prom存儲(chǔ)器讀取/寫入模塊中讀取文件功能界面。
圖5為e01文件格式(s19)定義。
圖6為文件中各數(shù)據(jù)項(xiàng)名稱。
圖7為e2prom存儲(chǔ)器讀取/寫入模塊中數(shù)據(jù)列表控制界面。
圖8為e2prom存儲(chǔ)器讀取/寫入模塊中上傳與下載控制界面。
圖9為bootload刷寫流程。
圖10為eol檢測(cè)流程。
圖11為eeprom讀寫流程。
圖12為bootload模塊控制界面。
圖13為eol模塊控制界面。
圖14為eol模塊里程表界面。
圖15為eol模塊報(bào)警燈界面。
圖16為eol模塊揚(yáng)聲器界面。
圖17為eol模塊屏幕及背光界面。
圖18為eol模塊輸入輸出界面。
圖19為eol模塊生產(chǎn)信息界面。
圖20為診斷服務(wù)過程中硬件接口層、中間層、應(yīng)用層之間的數(shù)據(jù)流向圖。
圖21為客戶配置模塊控制界面。
具體實(shí)施方式
以下將結(jié)合具體實(shí)施例對(duì)本發(fā)明提供的技術(shù)方案進(jìn)行詳細(xì)說明,應(yīng)理解下述具體實(shí)施方式僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。
oncan儀表在線調(diào)試系統(tǒng)基于microsoftvisualstudio2010平臺(tái),在intrepidcs公司硬件產(chǎn)品上進(jìn)行二次開發(fā)。本系統(tǒng)主要用戶對(duì)象是進(jìn)行儀表研發(fā)與測(cè)試的工程師,方便他們?cè)诠ぷ髦袑?duì)儀表進(jìn)行標(biāo)定和測(cè)試。同時(shí)也可輔助用于工廠產(chǎn)線配置,對(duì)儀表進(jìn)行出場(chǎng)檢查和設(shè)置,以保障開發(fā)的高效性以及質(zhì)量的穩(wěn)定性。
本系統(tǒng)框架如圖1所示,包括硬件接口層、中間層、應(yīng)用層,在診斷服務(wù)過程中各層之間的數(shù)據(jù)流向圖如圖20所示。其中,硬件接口層用于調(diào)用intrepid硬件設(shè)備動(dòng)態(tài)鏈接庫icsneo40.dll內(nèi)調(diào)用硬件接口,實(shí)現(xiàn)開啟關(guān)閉配置硬件和接收發(fā)送can消息等功能;中間層是基于iso-14229協(xié)議和iso-15765,用于實(shí)現(xiàn)協(xié)議的診斷服務(wù),并進(jìn)行數(shù)據(jù)的傳輸。應(yīng)用層基于診斷服務(wù)實(shí)現(xiàn)具體應(yīng)用功能,用于獲取用戶輸入信息做數(shù)據(jù)處理后交給顯示界面。
具體的說,硬件接口層包括硬件接口模塊。中間層包括iso-14229診斷模塊、iso-15765傳輸模塊、ccp診斷模塊。通過硬件接口,傳輸模塊獲得并處理多幀報(bào)文,實(shí)現(xiàn)診斷服務(wù)的收發(fā)。以iso-15765傳輸模塊為例,iso-15765傳輸模塊發(fā)送并接收診斷服務(wù)消息,發(fā)送時(shí)將診斷服務(wù)請(qǐng)求按照iso-15765協(xié)議的標(biāo)準(zhǔn)發(fā)送消息,在發(fā)送標(biāo)準(zhǔn)、時(shí)序邏輯以及時(shí)效性上等完全符合標(biāo)準(zhǔn),達(dá)到毫秒級(jí)控制;接收時(shí)根據(jù)arbid篩選消息后根據(jù)iso-15765標(biāo)準(zhǔn)組合成診斷應(yīng)答信息,當(dāng)服務(wù)器有錯(cuò)誤應(yīng)答報(bào)文時(shí)能篩選出有效消息。診斷模塊用于通過傳輸模塊獲得的消息進(jìn)行診斷服務(wù),iso-14229診斷模塊支持符合iso-14229協(xié)議的sid-0x10,sid-0x11,sid-0x14,sid-0x19,sid-0x22,sid-0x23,sid-0x27,sid-0x28,sid-0x2a,sid-0x2e,sid-0x2f,sid-0x31,sid-0x34,sid-0x35,sid-0x36,sid-0x37等診斷服務(wù)。除此以外還支持增強(qiáng)型判斷,諸如報(bào)文格式及長(zhǎng)度合法性判斷,超時(shí)時(shí)間記錄分析,服務(wù)器反饋否定nrc碼的邏輯判斷處理等。
應(yīng)用層包括硬件配置模塊、項(xiàng)目配置模塊、日志模塊、用戶模塊、eol工廠配置模塊、bootload模塊、uds協(xié)議網(wǎng)絡(luò)診斷模塊、e2prom存儲(chǔ)器讀取/寫入模塊、can消息發(fā)送接收顯示模塊、ccp協(xié)議診斷模塊。應(yīng)用層提供人機(jī)交互界面,用于輸入輸出數(shù)據(jù)。硬件配置模塊用于與硬件連接進(jìn)行相應(yīng)配置,項(xiàng)目配置模塊用于配置項(xiàng)目中的參數(shù),日志模塊用于記錄系統(tǒng)產(chǎn)生的日志記錄,用戶模塊用于進(jìn)行用戶個(gè)性化設(shè)置,支持不同用戶名來區(qū)分不同操作權(quán)限,uds協(xié)議網(wǎng)絡(luò)診斷模塊基于uds協(xié)議進(jìn)行網(wǎng)絡(luò)狀態(tài)的診斷。
can消息發(fā)送接收顯示模塊控制界面如圖2所示,基于該界面可以實(shí)現(xiàn)發(fā)送信息、顯示接收和信息篩選功能。在發(fā)送信息欄中,確保設(shè)備開啟的情況下配置好數(shù)據(jù)參數(shù)后單擊-發(fā)送信息。其中可選項(xiàng)有:幀id:可選是否為擴(kuò)展幀;網(wǎng)絡(luò):hscan;mscan;…;長(zhǎng)度:1-8;數(shù)據(jù)*8:byte。當(dāng)硬件設(shè)備開啟后客戶端會(huì)不斷讀出設(shè)備緩存并保存數(shù)據(jù)至客戶端內(nèi)存,當(dāng)需要查看時(shí)單擊顯示接收,顯示的是設(shè)備開啟后或上次單擊后到本次單擊時(shí)的客戶端內(nèi)存中所有的信息。當(dāng)數(shù)據(jù)量大時(shí)刷新比較緩慢,單擊停止刷新可以中斷當(dāng)前刷新。界面中可選項(xiàng)有:接收消息數(shù):顯示單擊-顯示接收-顯示的所有信息的總數(shù)量;錯(cuò)誤數(shù):顯示硬件設(shè)備開啟后錯(cuò)誤數(shù);篩選消息數(shù):顯示根據(jù)所選篩選條件后的信息數(shù)量。信息篩選:支持多種篩選方案,可根據(jù)篩選條件篩選信息。從而更有效獲取和定位符合條件的有效信息。
ccp協(xié)議診斷模塊提供診斷控制界面如圖3所示,可以快速進(jìn)入診斷模式,支持的服務(wù)有:診斷和通訊管理、數(shù)據(jù)傳輸、存儲(chǔ)數(shù)據(jù)傳輸、輸入輸出控制、程序的上傳下載、例程控制等。具體支持服務(wù)如下:
0x10(diagnosticsessioncontrol)
0x11(ecureset)
0x14(cleardiagnosticinformation)
0x19(readdtcinformation)
0x22(readdatabyidentifier)
0x28(communicationcontrol)
0x2e(writedatabyidentifier)
0x2f(inputoutputcontrolbyidentifier)
0x31(routinecontrol)
0x34(requestdownload)
0x36(transferdata)
0x37(requesttransferexit)
0x3e(testerpresent)
0x85(controldtcsetting)
e2prom存儲(chǔ)器讀取/寫入模塊實(shí)現(xiàn)讀取文件、數(shù)據(jù)列表、上傳與下載功能。
讀取文件功能對(duì)應(yīng)的界面如圖4所示,支持不連續(xù)文件的讀取和保存。單擊“從目錄讀取”實(shí)現(xiàn)打開文件瀏覽器,使用文件瀏覽器選取.e01(s19格式)文件讀取,支持一次錄入多個(gè)文件到客戶端內(nèi)存;單擊“從目錄讀取”使用文本框內(nèi)地址讀取文件,可以配置默認(rèn)地址方便使用。e01文件格式(s19)定義如圖5所示,各數(shù)據(jù)解析如下:
s0(0x5330):記錄類型是“s0”。地址場(chǎng)沒有被用,用零置位(0x0000)。
數(shù)據(jù)場(chǎng)中的信息被劃分為以下四個(gè)子域:
name(名稱):20個(gè)字符,用來編碼單元名稱;
ver(版本):2個(gè)字符,用來編碼版本號(hào);
rev(修訂版本):2個(gè)字符,用來編碼修訂版本號(hào);
description(描述):0-36個(gè)字符,用來編碼文本注釋。
s1(0x5331):記錄類型是“s1”。地址場(chǎng)由2個(gè)字節(jié)地址來說明。數(shù)據(jù)場(chǎng)由可載入的數(shù)據(jù)組成。
s9(0x5339):記錄類型是“s9”。地址場(chǎng)由2字節(jié)的地址說明,包含了開始執(zhí)行地址。沒有數(shù)據(jù)場(chǎng)。
文件中各數(shù)據(jù)項(xiàng)名稱如圖6所示,其中各數(shù)據(jù)項(xiàng)的解釋如下:
type(類型):2個(gè)字符。用來描述記錄的類型(s0,s1,s2,s3,s5,s7,s8,s9)。
count(計(jì)數(shù)):2個(gè)字符。用來組成和說明了一個(gè)16進(jìn)制的值,顯示了在記錄中剩余成對(duì)字符的計(jì)數(shù)。
address(地址):4或6或8個(gè)字節(jié)。用來組成和說明了一個(gè)16進(jìn)制的值,顯示了數(shù)據(jù)應(yīng)該裝載的地址,這部分的長(zhǎng)度取決于載入地址的字節(jié)數(shù)。2個(gè)字節(jié)的地址占用4個(gè)字符,3個(gè)字節(jié)的地址占用6個(gè)字符,4個(gè)字節(jié)的地址占用8個(gè)字符。
data(數(shù)據(jù)):0—64字符。用來組成和說明一個(gè)代表了內(nèi)存載入數(shù)據(jù)或者描述信息的16進(jìn)制的值。
checksum(校驗(yàn)和):2個(gè)字符。這些字符當(dāng)被配對(duì)并換算成16進(jìn)制數(shù)據(jù)的時(shí)候形成了一個(gè)最低有效字符節(jié),該字符節(jié)用來表達(dá)作為補(bǔ)充數(shù)據(jù),地址和數(shù)據(jù)庫的字符對(duì)所代表的(字節(jié)的)補(bǔ)碼的byte總和。
數(shù)據(jù)列表的控制界面如圖7所示,客戶端可以讀取多個(gè)e01文件并存至客戶端內(nèi)存中,并在數(shù)據(jù)表格內(nèi)顯示出數(shù)據(jù)方便修改,同時(shí)計(jì)算出checksum和數(shù)據(jù)長(zhǎng)度。數(shù)據(jù)列表界面支持新建空白表格進(jìn)行配置,方便建立刷寫模板;支持不連續(xù)文件的顯示,即用灰色空白單元格表示間斷;支持修改內(nèi)容糾錯(cuò),當(dāng)輸入的值有誤時(shí)通過單元格改變?yōu)榧t色表示,當(dāng)輸入的值與原始值不同即單元格內(nèi)數(shù)據(jù)有過修改后也會(huì)用通過單元格改變?yōu)榫G色表示。表格源下拉菜單一次性可讀取最多20(可配置)個(gè)文件到客戶端內(nèi)存中,長(zhǎng)度&checksum欄中表示當(dāng)前顯示表格數(shù)據(jù)的checksum和數(shù)據(jù)長(zhǎng)度,刷新表格功能用于刷新當(dāng)前表格內(nèi)容,即重新載入當(dāng)前表格并取消未保存的修改;空白表格功能用于新建一個(gè)空白表格進(jìn)行配置;刪除表格功能用于將當(dāng)前數(shù)據(jù)源指示的表格從客戶端內(nèi)存中刪除,不會(huì)刪除地址下的源文件;保存表格功能用于將當(dāng)前顯示的表格保存成.e01文件并使用文件瀏覽器選擇存放地址。
上傳與下載的控制界面如圖8所示,客戶端支持兩種網(wǎng)絡(luò)層應(yīng)用傳輸協(xié)議操作:ccp協(xié)議為符合規(guī)則的自定義服務(wù)實(shí)現(xiàn);uds協(xié)議為在特定診斷模式下使用sid-0x23服務(wù)讀取數(shù)據(jù),使用sid-0x3d服務(wù)下載數(shù)據(jù)。單擊“讀取e2prom”讀取服務(wù)器整個(gè)eeprom數(shù)據(jù)保存至軟件緩存并在下方列表內(nèi)顯示。通過“下載源”選擇需要下載的數(shù)據(jù)后單擊“下載e2prom”進(jìn)行下載,下載前會(huì)提示用戶確認(rèn)。下載源下拉菜單中可以選擇客戶端內(nèi)存中的數(shù)據(jù)進(jìn)行下載,也可選擇當(dāng)前表格數(shù)據(jù)進(jìn)行下載,即修改過未保存的數(shù)據(jù);讀取e2prom功能用于讀取服務(wù)器整個(gè)eeprom數(shù)據(jù);基于協(xié)議:選擇基于的網(wǎng)絡(luò)層應(yīng)用傳輸協(xié)議。
eeprom讀寫流程如圖11所示,對(duì)于eerom讀寫,本系統(tǒng)對(duì)于讀寫的數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)類型以及地址范圍等做了有效性判斷,避免了產(chǎn)線以及客戶端誤操作問題。比如:980地址是硬件版本號(hào),98c是軟件版本號(hào),可以通過調(diào)試軟件把980地址給硬件版本號(hào),98c地址給軟件版本號(hào),這樣避免誤刷版本號(hào)。具體的說,我們?cè)趹?yīng)用界面中做了一個(gè)按鍵,把版本號(hào)地址賦給這個(gè)按鍵(硬件版本號(hào)),硬件版本號(hào)跟這個(gè)按鍵綁定,寫入硬件版本號(hào)數(shù)據(jù)保存,數(shù)據(jù)與這個(gè)地址也綁定了,點(diǎn)擊這個(gè)按鍵刷寫,其實(shí)就是把相應(yīng)硬件版本號(hào)數(shù)據(jù)寫入到硬件版本號(hào)地址,不會(huì)出現(xiàn)誤刷現(xiàn)象。同時(shí)會(huì)有提示,刷寫的版本號(hào),比如05版本。此外,也可以通過對(duì)版本號(hào)的判斷進(jìn)行錯(cuò)誤的排查,通常情況下,軟件版本只能增大(可選項(xiàng)),否則報(bào)錯(cuò),比如04版本升級(jí)到05版本軟件,如果刷寫03版本軟件則報(bào)錯(cuò),也可以從另一方面避免誤刷現(xiàn)象。
eerom讀寫可以實(shí)現(xiàn):生產(chǎn)日期、軟硬件版本號(hào)、零件號(hào)、下線配置的讀寫等功能,便于產(chǎn)品的追溯,同時(shí)如果儀表出現(xiàn)問題,可以通過eerom讀寫也可以支持問題追蹤與定位。比如:儀表某個(gè)功能塊不工作,可以通過讀取下線配置查詢是否配置錯(cuò)誤;儀表里程表不準(zhǔn),可以通過eerom讀取里程數(shù)值查詢與顯示是否一致,定位問題是eerom問題還是lcd顯示問題等等。
bootload模塊的控制界面如圖12所示,能夠?qū)崿F(xiàn)文件讀取、數(shù)據(jù)下載功能,文件讀取功能通過文件瀏覽器選擇文件路徑讀取,并將文件路徑顯示在表格上。數(shù)據(jù)下載功能使用的網(wǎng)絡(luò)層應(yīng)用傳輸協(xié)議為uds協(xié)議。單擊“進(jìn)入模式”使服務(wù)器進(jìn)入bootload模式,此時(shí)服務(wù)器會(huì)重啟。單擊“下載模塊”下載路徑地址的文件到指定地址上。操作包含的uds服務(wù)為使用sid-0x10服務(wù)改變?cè)\斷模式,使用sid-0x85服務(wù)關(guān)閉dtc,使用sid-0x28服務(wù)關(guān)閉通訊,使用sid-0x27服務(wù)解鎖安全訪問,使用sid-0x31服務(wù)擦除區(qū)塊和校驗(yàn)crc,使用sid-0x34,sid-0x36,sid-0x37服務(wù)傳輸下載數(shù)據(jù)。單擊“退出模式”使服務(wù)器退出bootload模式,此時(shí)服務(wù)器會(huì)重啟。圖12中,id:模塊號(hào),對(duì)應(yīng)sid-0x31例程控制服務(wù)擦除區(qū)塊序號(hào)參數(shù);blockname:模塊號(hào);address:刷寫首地址,對(duì)應(yīng)sid-0x34請(qǐng)求下載服務(wù)設(shè)置的首地址參數(shù);filepath:bin文件路徑;獲取路徑按鈕:獲取路徑;下載模塊按鈕:下載模塊;進(jìn)入模式按鈕:進(jìn)入bootload模式;退出模式按鈕:退出bootload模式。
bootload模式用于實(shí)現(xiàn)軟件的在線刷新,同時(shí)通過校驗(yàn)避免軟件的刷寫錯(cuò)誤以及誤刷,還可進(jìn)行異常掉電保護(hù)。目前同一車型有很多變種以及改型。對(duì)于儀表,同一硬件可能對(duì)應(yīng)不同軟件,同一軟件也可能對(duì)應(yīng)同一硬件。為了防止硬件和軟件不匹配,造成誤刷現(xiàn)象,oncan儀表在線調(diào)試軟件做了防錯(cuò)機(jī)制,比如對(duì)硬件編號(hào):hw01、hw02de等,同時(shí)對(duì)軟件編號(hào)sw01、sw02等,只有在hw01對(duì)應(yīng)sw01,即編號(hào)相同或相匹配時(shí)才允許刷寫,否則會(huì)報(bào)錯(cuò)。bootload刷寫流程如圖9所示,包括如下步驟:
步驟1,刷新事件由一個(gè)會(huì)話類型為刷新會(huì)話,物理尋址/功能尋址的診斷會(huì)話控制($10)服務(wù)開始。電控單元接收到報(bào)文后應(yīng)為程序刷新分配一切必須的資源。
步驟2:測(cè)試工具獲取電控單元的物流數(shù)據(jù),如車輛識(shí)別代碼、電控單元硬件號(hào)等。
步驟3:測(cè)試工具解鎖電控單元使其能刷新相關(guān)的服務(wù)。所有可刷新的電控單元應(yīng)支持安全訪問($27)服務(wù)。
步驟4:為了允許應(yīng)用軟件/標(biāo)定數(shù)據(jù)下載,電控單元應(yīng)擦除存儲(chǔ)器相應(yīng)的區(qū)域。該功能使用程序控制($31)服務(wù)執(zhí)行存儲(chǔ)器擦除程序。當(dāng)ecu接收到requestdownloadrequest服務(wù),ecu可以擦除相應(yīng)地址的數(shù)據(jù)時(shí),步驟4可以省略。
步驟5:每次將連續(xù)的數(shù)據(jù)塊下載到非易失性存儲(chǔ)器時(shí)應(yīng)遵循下面的服務(wù)序列:
a)請(qǐng)求下載($34)
b)傳輸數(shù)據(jù)($36)
c)請(qǐng)求退出傳輸($37)
在請(qǐng)求下載、傳輸數(shù)據(jù)和請(qǐng)求退出傳輸序列正確執(zhí)行時(shí),電控單元僅支持測(cè)試工具保持連接服務(wù),忽略其它服務(wù)。
如果塊長(zhǎng)度超出了網(wǎng)絡(luò)層緩存大小,單個(gè)數(shù)據(jù)塊須使用多個(gè)傳輸數(shù)據(jù)($36)請(qǐng)求報(bào)文才能傳輸完全。
步驟6:當(dāng)所有數(shù)據(jù)塊下載完成后,測(cè)試工具應(yīng)通過程序控制($31)服務(wù)啟動(dòng)完整性檢查程序驗(yàn)證下載是否成功,并更新軟件完整性狀態(tài)參數(shù)。
步驟7:若軟件完整性檢查的結(jié)果為真,則電控單元應(yīng)執(zhí)行刷新相關(guān)性檢查,并根據(jù)檢查結(jié)果更新軟件兼容性狀態(tài)參數(shù)。
步驟8:在應(yīng)用軟件/標(biāo)定數(shù)據(jù)下載之后,測(cè)試工具應(yīng)更新物流數(shù)據(jù),如刷新信息域、電控單元零件號(hào)等。
步驟9,電控單元須硬復(fù)位使下載的應(yīng)用軟件/應(yīng)用數(shù)據(jù)生效。電控單元當(dāng)退出刷新會(huì)話時(shí)應(yīng)更新軟件有效標(biāo)志位。
eol模塊主要用于工程師測(cè)試和產(chǎn)線測(cè)試,主要功能有:表頭校驗(yàn)、里程表測(cè)試、報(bào)警燈測(cè)試、揚(yáng)聲器測(cè)試、背光測(cè)試、io口的輸入輸出測(cè)試以及生產(chǎn)信息的讀寫。具備進(jìn)入工廠模式和退出模式功能,該功能使用的網(wǎng)絡(luò)層應(yīng)用傳輸協(xié)議為uds協(xié)議。單擊“進(jìn)入模式”使用sid-0x10服務(wù)使服務(wù)器進(jìn)入did-0x61工廠模式,并通過sid-0x27服務(wù)解鎖安全訪問,并使用sid-0x3e服務(wù)保持工廠模式。用戶可根據(jù)sid-0x3e服務(wù)的狀態(tài)反饋來判斷服務(wù)器是否在線。單擊“退出模式”使用sid-0x10服務(wù)使服務(wù)器退出did-0x61工廠模式返回一般工作模式。控制界面如圖13所示,校表界面主要功能是校準(zhǔn)儀表指針。根據(jù)表盤上指針與刻度的角度差改變校準(zhǔn)點(diǎn)的偏移量,并發(fā)送給服務(wù)器,服務(wù)器將信息存放至eeprom。如圖14所示,里程表界面用于里程表檢測(cè),可以讀寫行駛里程和剩余行駛里程值,服務(wù)器將信息存放至eeprom。如圖15所示,報(bào)警燈界面用于led燈檢測(cè),可以控制報(bào)警燈亮滅。如圖16所示,揚(yáng)聲器界面用于揚(yáng)聲器檢測(cè),可以測(cè)試報(bào)警聲音。如圖17所示,屏幕及背光界面主要功能是lcd檢測(cè),改變儀表顯示屏顯示頁面用來檢測(cè)顯示屏是否有壞點(diǎn)、亮點(diǎn)以及是否正常顯示的功能??蛻舳擞蓄A(yù)覽圖片可以和服務(wù)器顯示做對(duì)比;改變儀表背光亮度狀態(tài)用來檢測(cè)背光亮度是否正常顯示的功能。如圖18所示,輸入輸出界面用于檢測(cè)輸入輸出端狀態(tài)是否正常,分為三個(gè)子功能,輸入端口狀態(tài)讀??;輸出端口狀態(tài)設(shè)置。如圖19所示,生產(chǎn)信息界面可以讀寫生產(chǎn)日期、硬件版本號(hào)、軟件版本號(hào)等。
eol模塊用于實(shí)現(xiàn)指針校驗(yàn),led和buzzer虛焊、lcd花屏以及靜態(tài)電流檢測(cè)。通過診斷命令實(shí)現(xiàn)lde燈的不規(guī)則點(diǎn)亮熄滅控制來判斷是否虛焊;通過診斷命令實(shí)現(xiàn)lcd的花樣顯示來判斷l(xiāng)cd是否有花屏現(xiàn)象;通過診斷命令控制buzzer特定發(fā)音來判斷buzzer虛焊問題。eol檢測(cè)流程如圖10所示。
此外,本系統(tǒng)還有客戶配置模塊,控制界面如圖21所示,用于下線配置,數(shù)據(jù)可以存儲(chǔ)各個(gè)did配置信息,模板可以存儲(chǔ)以前的配置信息,最多可以存儲(chǔ)20個(gè)模板。
基于前述的oncan儀表在線調(diào)試系統(tǒng),本發(fā)明還提供了oncan儀表在線調(diào)試方法,包括如下步驟:
診斷傳輸步驟:發(fā)送診斷服務(wù)消息,將診斷服務(wù)請(qǐng)求按照iso-15765協(xié)議的標(biāo)準(zhǔn)發(fā)送消息;進(jìn)行診斷服務(wù);接收診斷服務(wù)消息,根據(jù)arbid篩選消息后根據(jù)iso-15765標(biāo)準(zhǔn)組合成診斷應(yīng)答信息,當(dāng)服務(wù)器有錯(cuò)誤應(yīng)答報(bào)文時(shí)能篩選出有效消息;診斷服務(wù)中支持增強(qiáng)型判斷,諸如報(bào)文格式及長(zhǎng)度合法性判斷,超時(shí)時(shí)間記錄分析,服務(wù)器反饋否定nrc碼的邏輯判斷處理等。
bootload步驟,如前述的bootload刷寫流程,在刷寫時(shí)進(jìn)行防錯(cuò)判斷,比如對(duì)硬件編號(hào):hw01、hw02de等,同時(shí)對(duì)軟件編號(hào)sw01、sw02等,只有在hw01對(duì)應(yīng)sw01,即編號(hào)相同或相匹配時(shí)才允許刷寫。
eol檢測(cè)步驟,進(jìn)行指針校驗(yàn),led和buzzer虛焊、lcd花屏以及靜態(tài)電流檢測(cè)。
eeprom讀寫步驟,對(duì)于讀寫的數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)類型以及地址范圍等做了有效性判斷,避免了產(chǎn)線以及客戶端誤操作問題。將版本號(hào)地址與版本號(hào)綁定,避免誤刷情況發(fā)生。
本發(fā)明方案所公開的技術(shù)手段不僅限于上述實(shí)施方式所公開的技術(shù)手段,還包括由以上技術(shù)特征任意組合所組成的技術(shù)方案。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍。