本發(fā)明涉及車輛技術(shù)領(lǐng)域,具體涉及一種車載診斷數(shù)據(jù)的處理方法及處理裝置。
背景技術(shù):
車載診斷(obd,on-boarddiagnostic)系統(tǒng)是可隨時監(jiān)控發(fā)動機(jī)的運行狀態(tài)和尾氣處理系統(tǒng)工作狀態(tài)的一個車載終端,obd數(shù)據(jù)包括對發(fā)動機(jī)、催化轉(zhuǎn)化器、顆粒捕集器、氧傳感器、排放控制系統(tǒng)、燃油系統(tǒng)、排氣再循環(huán)(egr,exhaustgasrecirculation)等進(jìn)行監(jiān)控時取得的車載診斷數(shù)據(jù)。
現(xiàn)有的obd系統(tǒng)是由裸機(jī)程序編寫,因此,只要obd接口通電,obd接口便會在裸機(jī)程序的控制下獲取obd數(shù)據(jù)。由于目前obd接口是通過常電供電(常電是指從車輛的電瓶正極接出來不受任何開關(guān),繼電器等控制的正電源),因此,即使車輛熄火了,obd接口也將處于通電狀態(tài),此時在裸機(jī)程序的控制下會繼續(xù)通過obd接口獲取obd數(shù)據(jù),從而造成不必要的功耗浪費。如果想要停止obd數(shù)據(jù)的獲取,只能斷開obd接口的供電線路,但是普通用戶壓根都不知道如何斷開obd接口的供電線路。
技術(shù)實現(xiàn)要素:
本發(fā)明提供一種車載診斷數(shù)據(jù)的處理方法及處理裝置,用于提高車載診斷數(shù)據(jù)獲取的靈活性。
本發(fā)明第一方面提供一種車載診斷數(shù)據(jù)的處理方法,該處理方法包括:
當(dāng)車輛的車載操作系統(tǒng)啟動時,創(chuàng)建車載診斷任務(wù);
在所述車載診斷任務(wù)的指示下,實時獲取所述車輛的車載診斷數(shù)據(jù);
當(dāng)所述車載診斷任務(wù)注銷時,停止獲取所述車輛的車載診斷數(shù)據(jù)。
基于本發(fā)明第一方面,在第一種可能的實現(xiàn)方式中,所述創(chuàng)建車載診斷任務(wù),之后包括:
當(dāng)所述車輛熄火或者退出所述車輛的車載操作系統(tǒng)時,注銷所述車載診斷任務(wù)。
基于本發(fā)明第一方面或者本發(fā)明第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,若所述車輛的車載操作系統(tǒng)為首次啟動,則在所述實時獲取所述車輛的車載診斷數(shù)據(jù)之前,所述處理方法還包括:確定所述車輛的診斷總線類型;
所述實時獲取所述車輛的車載診斷數(shù)據(jù)為:根據(jù)已確定的所述車輛的診斷總線類型,采用相應(yīng)的通訊協(xié)議實時獲取所述車輛的車載診斷數(shù)據(jù)。
基于本發(fā)明第一方面或者本發(fā)明第一方面的第一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述實時獲取所述車輛的車載診斷數(shù)據(jù),之前還包括:
在所述車載診斷任務(wù)的指示下,調(diào)用預(yù)設(shè)的接口函數(shù)進(jìn)入所述車輛的車載自動診斷系統(tǒng);
所述實時獲取所述車輛的車載診斷數(shù)據(jù)為:基于所述車輛的車載自動診斷系統(tǒng),實時獲取所述車輛的車載診斷數(shù)據(jù)。
基于本發(fā)明第一方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述車載自動診斷系統(tǒng)為obd系統(tǒng);
所述在所述車載診斷任務(wù)的指示下,調(diào)用預(yù)設(shè)的接口函數(shù)進(jìn)入所述車輛的車載自動診斷系統(tǒng)為:
在所述車載診斷任務(wù)的指示下,調(diào)用obdiienter()接口函數(shù)進(jìn)入所述車輛的obd系統(tǒng)。
本發(fā)明第二方面提供一種車載診斷數(shù)據(jù)的處理裝置,該處理裝置包括:
任務(wù)創(chuàng)建單元,用于當(dāng)車輛的車載操作系統(tǒng)啟動時,創(chuàng)建車載診斷任務(wù);
獲取單元,用于在所述車載診斷任務(wù)的指示下,實時獲取所述車輛的車載診斷數(shù)據(jù);并當(dāng)所述車載診斷任務(wù)注銷時,停止獲取所述車輛的車載診斷數(shù)據(jù)。
基于本發(fā)明第二方面,在第一種可能的實現(xiàn)方式中,所述處理裝置還包括:
注銷單元,用于當(dāng)所述車輛熄火或者退出所述車輛的車載操作系統(tǒng)時,注銷所述車載診斷任務(wù)。
基于本發(fā)明第二方面或者本發(fā)明第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,所述處理裝置還包括:
確定單元,用于當(dāng)所述車輛的車載操作系統(tǒng)為首次啟動時,確定所述車輛的診斷總線類型;
所述獲取單元具體用于:根據(jù)所述確定單元已確定的所述車輛的診斷總線類型,采用相應(yīng)的通訊協(xié)議實時獲取所述車輛的車載診斷數(shù)據(jù)。
基于本發(fā)明第二方面,或者本發(fā)明第二方面的第一種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述處理裝置還包括:
車載自動診斷系統(tǒng)運行單元,用于在所述車載診斷任務(wù)的指示下,調(diào)用預(yù)設(shè)的接口函數(shù)進(jìn)入所述車輛的車載自動診斷系統(tǒng);
所述獲取單元具體用于:基于所述車輛的車載自動診斷系統(tǒng),實時獲取所述車輛的車載診斷數(shù)據(jù)。
基于本發(fā)明第二方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,所述車載自動診斷系統(tǒng)為obd系統(tǒng);
所述車載自動診斷系統(tǒng)運行單元具體用于:在所述車載診斷任務(wù)的指示下,調(diào)用obdiienter()接口函數(shù)進(jìn)入所述車輛的obd系統(tǒng)。
由上可見,本發(fā)明方案基于車載診斷任務(wù)實時獲取車輛的車載診斷數(shù)據(jù),并在車載診斷任務(wù)注銷時,停止獲取該車輛的車載診斷數(shù)據(jù)。通過車載操作系統(tǒng)的任務(wù)形式控制車載診斷數(shù)據(jù)的獲取,一方面使得車載診斷數(shù)據(jù)的獲取方式更為靈活,另一方面在車輛熄火后可以通過注銷車載診斷任務(wù)的方式停止車載診斷數(shù)據(jù)的獲取,減少不必要的功耗浪費。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明提供的車載診斷數(shù)據(jù)的處理方法一個實施例流程示意圖;
圖2為本發(fā)明提供的車載診斷數(shù)據(jù)的處理裝置一個實施例結(jié)構(gòu)示意圖;
圖3為本發(fā)明提供的車載診斷數(shù)據(jù)的處理裝置一個實施例結(jié)構(gòu)示意圖。
具體實施方式
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
實施例一
本發(fā)明實施例對一種車載診斷數(shù)據(jù)的處理方法進(jìn)行描述,請參閱圖1,本發(fā)明實施例中的處理方法包括:
步驟101,當(dāng)車輛的車載操作系統(tǒng)啟動時,創(chuàng)建車載診斷任務(wù);
本發(fā)明實施例中,車載操作系統(tǒng)是指集成在車輛上的操作系統(tǒng)。本發(fā)明實施例中的車載操作系統(tǒng)可以包括但不限于:實時操作系統(tǒng)(rtx,real-timeextension)、freertos操作系統(tǒng)、ucos操作系統(tǒng)。
在步驟101中,當(dāng)車輛的車載操作系統(tǒng)啟動時,創(chuàng)建車載診斷任務(wù)。本發(fā)明實施例中,針對不同類型的車載操作系統(tǒng),可以設(shè)置相應(yīng)的方式創(chuàng)建車載診斷任務(wù)。以操作系統(tǒng)為rtx為例,上述創(chuàng)建車載診斷任務(wù)具體可以為:調(diào)用os_tsk_create_user(tsk,prio,stk,size)函數(shù)創(chuàng)建車載診斷任務(wù)。其中,上述函數(shù)中的第1個參數(shù)tsk指示所創(chuàng)建任務(wù)的函數(shù)名;第2個參數(shù)prio指示所創(chuàng)建任務(wù)的優(yōu)先級,用戶可以設(shè)置的任務(wù)優(yōu)先級范圍是1-254,優(yōu)先級0用于空閑任務(wù),優(yōu)先級255被保留用于更重要的任務(wù),如果新創(chuàng)建的任務(wù)的優(yōu)先級比當(dāng)前正在執(zhí)行的任務(wù)的優(yōu)先級高,那么就會立即切換到高優(yōu)先級任務(wù)去執(zhí)行;第3個參數(shù)stk指示任務(wù)棧地址;第4個參數(shù)size指示任務(wù)棧大小。
步驟102,在上述車載診斷任務(wù)的指示下,實時獲取上述車輛的車載診斷數(shù)據(jù);
本發(fā)明實施例中,車載診斷數(shù)據(jù)是指與車輛相關(guān)的數(shù)據(jù),例如:車輛運行速度、發(fā)動機(jī)轉(zhuǎn)速、發(fā)動機(jī)溫度、水箱溫度、運行里程、車燈狀態(tài)、運行時長、檔位、安全帶狀態(tài)、車門狀態(tài),實時的故障信息等。上述實時獲取上述車輛的車載診斷數(shù)據(jù)為基于診斷總線(例如控制器局域網(wǎng)絡(luò)(can,controllerareanetwork)總線、k線(即kap總線)或lin線)實時獲取上述車輛的車載診斷數(shù)據(jù),具體的,實時獲取車載診斷數(shù)據(jù)的過程可以參照已有技術(shù)實現(xiàn),此處不再贅述。
由于不同的診斷總線類型所采用的通訊協(xié)議有所不同,因此,本發(fā)明實施例可以預(yù)先設(shè)置與各種診斷總線類型相應(yīng)的通訊協(xié)議,以適應(yīng)不同的車輛。可選的,若上述車輛的車載操作系統(tǒng)為首次啟動,則在上述實時獲取上述車輛的車載診斷數(shù)據(jù)之前,本發(fā)明實施例中的處理方法還包括:確定上述車輛的診斷總線類型;上述實時獲取所述車輛的車載診斷數(shù)據(jù)為:根據(jù)已確定的上述車輛的診斷總線類型,采用相應(yīng)的通訊協(xié)議實時獲取上述車輛的車載診斷數(shù)據(jù)。需要說明的是,由于車輛的診斷總線類型一般不會改變,因此,在確定上述車輛的診斷總線類型之后,后續(xù)當(dāng)車載操作系統(tǒng)再次啟動時(例如上述車載操作系統(tǒng)在車輛再次發(fā)動時啟動的情況下),可以不需要再次確定上述車輛的診斷總線類型,而直接基于之前已確定的上述車輛的診斷總線類型,采用相應(yīng)的通訊協(xié)議實時獲取上述車輛的車載診斷數(shù)據(jù)。
可選的,在上述實時獲取上述車輛的車載診斷數(shù)據(jù)之前,本發(fā)明實施例還包括:在步驟101創(chuàng)建的車載診斷任務(wù)的指示下,調(diào)用預(yù)設(shè)的接口函數(shù)進(jìn)入上述車輛的車載自動診斷系統(tǒng)。上述實時獲取上述車輛的車載診斷數(shù)據(jù),具體為:基于上述車輛的車載自動診斷系統(tǒng)實時獲取上述車輛的車載診斷數(shù)據(jù)。以車載自動診斷系統(tǒng)為obd系統(tǒng)為例進(jìn)行說明,在步驟101創(chuàng)建的車載診斷任務(wù)的指示下,調(diào)用預(yù)設(shè)的接口函數(shù)(例如obdiienter())進(jìn)入上述車輛的車載自動診斷系統(tǒng),在進(jìn)入obd系統(tǒng)之后,基于診斷總線類型,采用相應(yīng)的通訊協(xié)議實時獲取上述車輛的車載診斷數(shù)據(jù)。例如,進(jìn)入obd系統(tǒng)之后,可以以u32obdiireaddata(u8pid)類型接口函數(shù)實時獲取上述車輛的車載診斷數(shù)據(jù),其中,參數(shù)pid可以為一個數(shù)組的形式,以循環(huán)查詢并獲取車輛的各個動態(tài)數(shù)據(jù),如:設(shè)置pid0x0c查詢并獲取車輛實時的轉(zhuǎn)速、pid0x0d查詢并車輛實時的車速等。
當(dāng)然,本發(fā)明實施例中,也可以不基于上述車輛的車載自動診斷系統(tǒng)實時獲取上述車輛的車載診斷數(shù)據(jù),而直接與車輛的各個控制模塊(例如發(fā)動機(jī)控制模塊、懸架控制模塊、牽引力控制模塊、故障診斷控制模塊等)進(jìn)行實時通訊,獲取上述車輛的車載診斷數(shù)據(jù),此處不作限定。
步驟103,當(dāng)上述車載診斷任務(wù)注銷時,停止獲取上述車輛的車載診斷數(shù)據(jù);
可選的,當(dāng)上述車輛熄火或者退出上述車輛的車載操作系統(tǒng)時,注銷上述車載診斷任務(wù),以停止獲取上述車輛的車載診斷數(shù)據(jù),從而達(dá)到釋放內(nèi)存資源、節(jié)省功耗的目的。具體的,可以調(diào)用os_tsk_delete(task_id)函數(shù)注銷上述車載診斷任務(wù),其中,參數(shù)task_id為該車載診斷任務(wù)的id號。
當(dāng)然,本發(fā)明實施例中,也可以設(shè)置在其它條件下,注銷上述車載診斷任務(wù),例如可以設(shè)置一按鍵,當(dāng)檢測到該按鍵觸發(fā)時,注銷上述車載診斷任務(wù),當(dāng)檢測到該按鍵再次觸發(fā)時,重新創(chuàng)建上述車載診斷任務(wù),以重新觸發(fā)步驟102以及后續(xù)步驟的執(zhí)行。
需要說明的是,本發(fā)明實施例中的處理方法可以由相應(yīng)的處理裝置實現(xiàn),該處理裝置具體可以基于stm32芯片和rtx操作系統(tǒng)構(gòu)建,當(dāng)然,該stm32芯片也可以替換為freescale或其它處理芯片,該rtx操作系統(tǒng)也可以替換為freertos操作系統(tǒng)、ucos操作系統(tǒng)或其它類型的操作系統(tǒng),此處不作限定。
由上可見,本發(fā)明實施例中的處理方法基于車載診斷任務(wù)實時獲取車輛的車載診斷數(shù)據(jù),并在車載診斷任務(wù)注銷時,停止獲取該車輛的車載診斷數(shù)據(jù)。通過車載操作系統(tǒng)的任務(wù)形式控制車載診斷數(shù)據(jù)的獲取,一方面使得車載診斷數(shù)據(jù)的獲取方式更為靈活,另一方面在車輛熄火后可以通過注銷車載診斷任務(wù)的方式停止車載診斷數(shù)據(jù)的獲取,減少不必要的功耗浪費。
實施例二
本發(fā)明實施例中對一種車載診斷數(shù)據(jù)的處理裝置進(jìn)行描述,請參閱圖2,本發(fā)明實施例中的處理裝置200包括:
任務(wù)創(chuàng)建單元201,用于當(dāng)車輛的車載操作系統(tǒng)啟動時,創(chuàng)建車載診斷任務(wù);
獲取單元202,用于在所述車載診斷任務(wù)的指示下,實時獲取所述車輛的車載診斷數(shù)據(jù);并當(dāng)所述車載診斷任務(wù)注銷時,停止獲取所述車輛的車載診斷數(shù)據(jù)。
可選的,在圖2所示的處理裝置基礎(chǔ)上,如圖3所示,本發(fā)明實施例中的處理裝置300還包括:
注銷單元203,用于當(dāng)所述車輛熄火或者退出所述車輛的車載操作系統(tǒng)時,注銷所述車載診斷任務(wù)。
可選的,在圖1或圖2所示的處理裝置基礎(chǔ)上,本發(fā)明實施例中的處理裝置還包括:確定單元,用于當(dāng)所述車輛的車載操作系統(tǒng)為首次啟動時,確定所述車輛的診斷總線類型;獲取單元202具體用于:根據(jù)所述確定單元已確定的所述車輛的診斷總線,采用相應(yīng)的通訊協(xié)議實時獲取所述車輛的車載診斷數(shù)據(jù)。
可選的,本發(fā)明實施例中的處理裝置還包括:
車載自動診斷系統(tǒng)運行單元,用于在所述車載診斷任務(wù)的指示下,調(diào)用預(yù)設(shè)的接口函數(shù)進(jìn)入所述車輛的車載自動診斷系統(tǒng);
獲取單元202具體用于:基于所述車輛的車載自動診斷系統(tǒng),實時獲取所述車輛的車載診斷數(shù)據(jù)。
可選的,所述車載自動診斷系統(tǒng)為obd系統(tǒng);所述車載自動診斷系統(tǒng)運行單元具體用于:在所述車載診斷任務(wù)的指示下,調(diào)用obdiienter()接口函數(shù)進(jìn)入所述車輛的obd系統(tǒng)。
需要說明的是,本發(fā)明實施例中的處理裝置具體可以基于stm32芯片和rtx操作系統(tǒng)構(gòu)建,當(dāng)然,該stm32芯片也可以替換為freescale或其它處理芯片,該rtx操作系統(tǒng)也可以替換為freertos操作系統(tǒng)、ucos操作系統(tǒng)或其它類型的操作系統(tǒng),此處不作限定。
應(yīng)理解,本發(fā)明實施例中的處理裝置可以用于實現(xiàn)上述方法實施例中的全部技術(shù)方案,其各個功能模塊的功能可以根據(jù)上述方法實施例中的方法具體實現(xiàn),其具體實現(xiàn)過程可參照上述實施例中的相關(guān)描述,并且,在本發(fā)明實施例中沒有詳述和提及的部分,可以參見上述方法實施例的描述,此處不再贅述。
由上可見,本發(fā)明實施例中的處理裝置基于車載診斷任務(wù)實時獲取車輛的車載診斷數(shù)據(jù),并在車載診斷任務(wù)注銷時,停止獲取該車輛的車載診斷數(shù)據(jù)。通過車載操作系統(tǒng)的任務(wù)形式控制車載診斷數(shù)據(jù)的獲取,一方面使得車載診斷數(shù)據(jù)的獲取方式更為靈活,另一方面在車輛熄火后可以通過注銷車載診斷任務(wù)的方式停止車載診斷數(shù)據(jù)的獲取,減少不必要的功耗浪費。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡潔,僅以上述各功能單元、模塊的劃分進(jìn)行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能單元、模塊完成,即將上述裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能單元或模塊,以完成以上描述的全部或者部分功能。實施例中的各功能單元、模塊可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。另外,各功能單元、模塊的具體名稱也只是為了便于相互區(qū)分,并不用于限制本申請的保護(hù)范圍。上述系統(tǒng)中單元、模塊的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述或記載的部分,可以參見其它實施例的相關(guān)描述。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機(jī)軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
在本發(fā)明所提供的實施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的系統(tǒng)實施例僅僅是示意性的,例如,上述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過一些接口,裝置或單元的間接耦合或通訊連接,可以是電性,機(jī)械或其它的形式。
上述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
以上所述實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。