一種車載多媒體裝置及其控制方法
【專利摘要】本發(fā)明公開了一種車載多媒體裝置及其控制方法,車載多媒體包括車載電腦、汽車狀態(tài)監(jiān)控器、與車載電腦以及汽車狀態(tài)監(jiān)控器連接的CAN-USB單片機,所述CAN-USB單片機上電或復(fù)位后,執(zhí)行引導(dǎo)程序;引導(dǎo)程序?qū)Υ鎯τ贑AN-USB單片機內(nèi)部的固件文件進(jìn)行CRC校驗;若校驗通過則CAN-USB單片機加載固件文件,通過CAN接口獲取汽車狀態(tài)監(jiān)控器的監(jiān)控數(shù)據(jù),并轉(zhuǎn)換成USB接口數(shù)據(jù)發(fā)送給車載電腦;若校驗失敗則CAN-USB單片機從車載電腦更新固件文件或者從單片機內(nèi)部備份存儲區(qū)更新固件文件。借此,本發(fā)明能夠避免車載CAN-USB單片機因固件升級失敗而導(dǎo)致程序卡死使車載電腦產(chǎn)生不可恢復(fù)性的損壞,提高了CAN-USB單片機的可靠性以及車載電腦的穩(wěn)定性。
【專利說明】一種車載多媒體裝置及其控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及車載多媒體領(lǐng)域,具體涉及一種單片機及其固件升級方法。
【背景技術(shù)】
[0002]現(xiàn)有車載多媒體主要包括車載電腦、汽車狀態(tài)監(jiān)控器、與車載電腦以及汽車狀態(tài)監(jiān)控器連接的CAN-USB單片機。其中汽車狀態(tài)監(jiān)控器通常包括電壓、電流以及速度等傳感器,其通過CAN總線與CAN-USB單片機連接,CAN-USB單片機通過USB接口與車載電腦連接,當(dāng)CAN-USB單片機接收到汽車狀態(tài)監(jiān)控器發(fā)來的CAN總線數(shù)據(jù)時,其將CAN總線數(shù)據(jù)轉(zhuǎn)換為USB數(shù)據(jù)再轉(zhuǎn)發(fā)給車載電腦終端。車載CAN總線是監(jiān)控電動汽車各項指標(biāo)的通訊總線,其穩(wěn)定性要求更嚴(yán)格,所以車載usb-can單片機運行穩(wěn)定是提高整車穩(wěn)定的關(guān)鍵因素,而單片機最容易出現(xiàn)問題點是在其更新程序時一些不確定因素導(dǎo)致的程序升級失敗,從而使車載CAN總線不能工作。
[0003]現(xiàn)有的單片機的內(nèi)部Flash分為2個區(qū)域:應(yīng)用BOOT和應(yīng)用程序代碼區(qū)。應(yīng)用BOOT為一個簡單的應(yīng)用程序,實現(xiàn)從外部接口(Uart、IIC、SPI等)接收待更新應(yīng)用程序代碼以及向應(yīng)用程序代碼區(qū)Flash進(jìn)行擦除和寫入的功能。應(yīng)用BOOT存放在單片機內(nèi)部Flash的結(jié)束部分,一旦寫入后不再修改。
[0004]現(xiàn)有的車載多媒體單片機升級方法為:當(dāng)單片機上電或復(fù)位后,指針首先指向應(yīng)用程序代碼區(qū)的入口,從應(yīng)用程序代碼區(qū)開始執(zhí)行;當(dāng)單片機檢測到外部接口(Uart、IIC、SPI等)有代碼更新命令,則跳轉(zhuǎn)到應(yīng)用BOOT代碼的入口處執(zhí)行應(yīng)用BOOT程序,從外部接口(Uart、IIC、SPI等)接收待更新應(yīng)用固定長度的程序代碼;然后向應(yīng)用程序代碼區(qū)Flash進(jìn)行擦除和寫入的功能,不斷循環(huán)接收步驟和擦除寫入步驟,以實現(xiàn)單片機的在線升級;更新完成后通過看門狗復(fù)位,使單片機重新復(fù)位自動運行升級完的應(yīng)用程序。
[0005]在對現(xiàn)有技術(shù)的研究和實踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),對于現(xiàn)有的單片機在線升級過程,在遇到突發(fā)的在線升級異常中止、裝置停電、異常復(fù)位以及更新程序代碼錯誤等情況時,由于現(xiàn)有方法是從首先從應(yīng)用程序代碼區(qū)開始執(zhí)行的,出現(xiàn)升級異常時,由于下載的升級的應(yīng)用程序不完整,單片機無法跳轉(zhuǎn)到應(yīng)用BOOT代碼區(qū)執(zhí)行應(yīng)用B00T,從而程序卡死,導(dǎo)致單片機不能正常運行,必須通過人為重寫程序或者更換FLASH存儲部件,當(dāng)設(shè)備數(shù)目龐大并且分布范圍廣泛時,這種升級維護(hù)方式的工作量將非常大,而且耗費的時間長、成本高。
[0006]綜上可知,現(xiàn)有車載多媒體的控制方法在實際使用上顯然存在不便與缺陷,所以有必要加以改進(jìn)。
【發(fā)明內(nèi)容】
[0007]為了解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供了一種單片機的升級方法,可以解決單片機在線升級時遇到異常問題而導(dǎo)致的在線升級失敗的問題,能夠保證產(chǎn)品的可靠升級。[0008]本發(fā)明提供的一種車載多媒體裝置的控制方法,所述車載多媒體包括車載電腦、汽車狀態(tài)監(jiān)控器、與所述車載電腦以及所述汽車狀態(tài)監(jiān)控器連接的CAN-USB單片機,
[0009]所述CAN-USB單片機上電或復(fù)位后,執(zhí)行引導(dǎo)程序;
[0010]所述引導(dǎo)程序?qū)Υ鎯τ谒鯟AN-USB單片機內(nèi)部的固件文件進(jìn)行CRC校驗;
[0011]若校驗通過則所述CAN-USB單片機加載所述固件文件,通過CAN接口獲取所述汽車狀態(tài)監(jiān)控器的監(jiān)控數(shù)據(jù),并轉(zhuǎn)換成USB接口數(shù)據(jù)發(fā)送給所述車載電腦;
[0012]若校驗失敗則所述CAN-USB單片機從所述車載電腦更新所述固件文件或者從所述單片機內(nèi)部備份存儲區(qū)更新固件文件。
[0013]其中,所述CRC校驗具體為:
[0014]通過所述引導(dǎo)程序?qū)λ龉碳募膽?yīng)用程序代碼進(jìn)行CRC計算,所述固件文件包括公共信息以及應(yīng)用程序代碼,所述公共信息包括固件文件類型、固件文件長度及CRC校驗碼;
[0015]將所述CRC計算所得到的CRC校驗碼與所述固件文件中存儲的CRC校驗碼進(jìn)行比對,若一致則校驗通過加載所述固件文件,否則校驗失敗。
[0016]其中,所述CRC校驗之前還包括:
[0017]將所述單片機內(nèi)部固件文件的固件文件類型與所述BOOT代碼中預(yù)存的固件文件類型進(jìn)行對比;
[0018]若一致則進(jìn)行CRC校驗,若不一致則所述CAN-USB單片機從所述車載電腦更新所述固件文件或者從所述單片機內(nèi)部備份存儲區(qū)更新固件文件。
[0019]其中,所述車載多媒體的單片機控制方法還包括:若所述CAN-USB單片機從所述車載電腦接收到外部升級指令,則根據(jù)所述外部升級指令進(jìn)行固件升級。
[0020]其中,所述CAN-USB單片機從所述車載電腦更新所述固件文件具體為:
[0021 ] 所述CAN-USB單片機執(zhí)行其內(nèi)部FLASH存儲器中的U盤模式代碼,所述CAN-USB單片機進(jìn)入U盤模式,所述FLASH存儲器包括引導(dǎo)程序存儲區(qū)、U盤模式代碼存儲區(qū)以及固件文件存儲區(qū),所述U盤模式代碼存儲于所述U盤模式代碼存儲區(qū);
[0022]所述CAN-USB單片機通過USB接口從所述車載電腦接收更新固件文件,并保存至所述固件文件存儲區(qū)。
[0023]其中,所述CAN-USB單片機的接口從外部設(shè)備更新所述固件文件之后還包括:所述CAN-USB單片機通過看門狗電路進(jìn)行復(fù)位。
[0024]本發(fā)明還提供一種車載多媒體裝置,所述車載多媒體包括車載電腦、汽車狀態(tài)監(jiān)控器、與所述車載電腦以及所述汽車狀態(tài)監(jiān)控器連接的CAN-USB單片機,
[0025]所述CAN-USB單片機包括:
[0026]引導(dǎo)單元,用于所述CAN-USB單片機上電或復(fù)位后,對存儲于所述CAN-USB單片機內(nèi)部的固件文件進(jìn)行CRC校驗;
[0027]加載單元,用于CRC校驗通過后加載所述固件文件,通過CAN接口獲取所述汽車狀態(tài)監(jiān)控器的監(jiān)控數(shù)據(jù),并轉(zhuǎn)換成USB接口數(shù)據(jù)轉(zhuǎn)發(fā)給所述車載電腦;
[0028]更新單元,用于CRC校驗失敗后從所述車載電腦更新所述固件文件或者從所述CAN-USB單片機內(nèi)部備份存儲區(qū)更新固件文件。
[0029]其中,所述CAN-USB單片機包括FLASH存儲器,所述FLASH存儲器包括弓I導(dǎo)程序存儲區(qū)、U盤模式代碼存儲區(qū)以及固件文件存儲區(qū),所述U盤模式代碼存儲于所述U盤模式代碼存儲區(qū)。
[0030]其中,所述CAN-USB單片機包括用于與所述汽車狀態(tài)監(jiān)控器進(jìn)行數(shù)據(jù)通信的CAN接口以及與所述車載電腦進(jìn)行數(shù)據(jù)通信的USB接口。
[0031]其中,所述CAN-USB單片機還包括用于復(fù)位的看門狗電路。
[0032]本發(fā)明通過在車載電腦的CAN-USB單片機上電或復(fù)位后,執(zhí)行引導(dǎo)程序;引導(dǎo)程序?qū)Υ鎯τ贑AN-USB單片機內(nèi)部的固件文件進(jìn)行CRC校驗;若校驗通過則CAN-USB單片機加載固件文件;若校驗失敗則所述CAN-USB單片機從車載電腦更新固件文件或者從單片機內(nèi)部備份存儲區(qū)更新固件文件。從而,車載電腦每次啟動時候,首先對單片機內(nèi)部的固件進(jìn)行校驗,再執(zhí)行該固件程序,相對于現(xiàn)有車載單片機首先執(zhí)行固件文件,在升級時再跳轉(zhuǎn)到應(yīng)用BOOT的升級方法,不會出現(xiàn)升級錯誤卡死而導(dǎo)致單片機損壞的問題,避免單片機因程序升級失敗,從而使車載CAN總線不能工作,從而提高了車載電腦的穩(wěn)定性。借此,本發(fā)明能夠避免車載CAN-USB單片機因固件升級失敗而導(dǎo)致程序卡死使車載電腦產(chǎn)生不可恢復(fù)性的損壞,提高了 CAN-USB單片機的可靠性以及車載電腦的穩(wěn)定性。
【專利附圖】
【附圖說明】
[0033]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0034]圖1為本發(fā)明一種車載多媒體裝置的控制方法的流程圖;
[0035]圖2為本發(fā)明一種車載多媒體裝置的單片機存儲器的結(jié)構(gòu)圖;
[0036]圖3為本發(fā)明一種車載多媒體裝置的控制方法一種實施例的具體流程圖;
[0037]圖4是本發(fā)明一種車載多媒體裝置的原理結(jié)構(gòu)圖。
【具體實施方式】
[0038]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0039]如圖1所示,本發(fā)明一種車載多媒體裝置的控制方法,所述車載多媒體包括車載電腦、汽車狀態(tài)監(jiān)控器、與所述車載電腦以及所述汽車狀態(tài)監(jiān)控器連接的CAN-USB單片機,所述控制方法包括:
[0040]S101、CAN-USB單片機上電或復(fù)位后,執(zhí)行引導(dǎo)程序。該引導(dǎo)程序為BOOT代碼,負(fù)責(zé)CAN-USB單片機內(nèi)部程序的啟動。
[0041]S102、引導(dǎo)程序?qū)Υ鎯τ贑AN-USB單片機內(nèi)部的固件文件進(jìn)行CRC校驗。固件文件包括公共信息以及應(yīng)用程序代碼,所述公共信息包括固件文件類型、固件文件長度、CRC校驗碼。CRC校驗過程具體為:通過所述引導(dǎo)程序?qū)λ龉碳募膽?yīng)用程序代碼進(jìn)行CRC計算;將所述CRC計算所得到的CRC校驗碼與所述固件文件中存儲的CRC校驗碼進(jìn)行比對,若一致則校驗通過加載所述固件文件,否則校驗失敗。通過CRC校驗可以判斷固件文件是否正確,若不正確則需要重新升級固件文。
[0042]優(yōu)選的是,在CRC校驗過程之前還包括對固件文件類型進(jìn)行校驗,具體為:將單片機內(nèi)部固件文件的固件文件類型與BOOT代碼中預(yù)存的固件文件類型進(jìn)行對比;若一致則進(jìn)行CRC校驗,若不一致則所述CAN-USB單片機從所述車載電腦更新所述固件文件或者從述單片機內(nèi)部備份存儲區(qū)更新固件文件。
[0043]S103、若校驗通過則CAN-USB單片機加載固件文件,通過CAN接口獲取汽車狀態(tài)監(jiān)控器的監(jiān)控數(shù)據(jù),并轉(zhuǎn)換成USB接口數(shù)據(jù)發(fā)送給車載電腦。檢驗通過則說明CAN-USB單片機內(nèi)部程序正確,CAN-USB單片機可以進(jìn)行CAN數(shù)據(jù)和USB數(shù)據(jù)之間的轉(zhuǎn)換,車載電腦可通過該CAN-USB單片機獲取汽車狀態(tài)監(jiān)控器的監(jiān)控數(shù)據(jù)。其中,汽車狀態(tài)監(jiān)控器優(yōu)選為設(shè)置于車體的多個傳感器。
[0044]S104、若校驗失敗則CAN-USB單片機從車載電腦更新固件文件或者從單片機內(nèi)部備份存儲區(qū)更新固件文件。單片機出廠時會內(nèi)部備份存儲區(qū)固化備份程序,當(dāng)單片機升級失敗時,可從該內(nèi)部備份存儲區(qū)獲取原始固件,避免單片機升級卡死導(dǎo)致車載電腦不能采集監(jiān)控數(shù)據(jù)。
[0045]其中,所述CAN-USB單片機從車載電腦更新所述固件文件具體為:所述CAN-USB單片機執(zhí)行其內(nèi)部FLASH存儲器中的U盤模式代碼,CAN-USB單片機進(jìn)入U盤模式;CAN_USB單片機通過USB接口從車載電腦接收更新固件文件,并保存至固件文件存儲區(qū)。FLASH存儲器包括引導(dǎo)程序存儲區(qū)、U盤模式代碼存儲區(qū)以及固件文件存儲區(qū),U盤模式代碼存儲于U盤模式代碼存儲區(qū)。本發(fā)明的升級過程是通過U盤模式的方式升級的,即把升級過程模擬成U盤操作,通過CAN-USB單片機的USB接口傳送數(shù)據(jù),將待升級固件文件通過USB接口直接拷貝到固件文件代碼區(qū)。U盤模式的具體執(zhí)行過程包括:單片機執(zhí)行U盤模式代碼使單片機進(jìn)入U盤模式;單片機通過USB接口從外部設(shè)備獲取固件文件,并將固件文件保存到所述固件文件代碼區(qū)。當(dāng)然也可通過UART、SP1、I2C接口進(jìn)行升級拷貝,但是基于USB接口的U盤模式升級方式數(shù)據(jù)傳輸速度較快,且USB協(xié)議的具有大容量存儲的優(yōu)勢。
[0046]優(yōu)選的是,車載多媒體的單片機控制方法還包括:若CAN-USB單片機從車載電腦接收到外部升級指令,則根據(jù)外部升級指令進(jìn)行固件升級。從而用戶可以通過車載電腦控制CAN-USB單片機進(jìn)行固件升級。
[0047]優(yōu)選的是,所述CAN-USB單片機的接口從外部設(shè)備更新固件文件之后還包括:CAN-USB單片機通過看門狗電路進(jìn)行復(fù)位。從而使單片機在更新完升級程序后能夠自動運行升級完的應(yīng)用程序,同時,若固件文件更新失敗也通過看門狗電路進(jìn)行復(fù)位,程序重新跳轉(zhuǎn)至步驟SlOl執(zhí)行,避免升級卡死。
[0048]本發(fā)明通過在車載電腦的CAN-USB單片機上電或復(fù)位后,執(zhí)行引導(dǎo)程序;引導(dǎo)程序?qū)Υ鎯τ贑AN-USB單片機內(nèi)部的固件文件進(jìn)行CRC校驗;若校驗通過則CAN-USB單片機加載固件文件;若校驗失敗則所述CAN-USB單片機從車載電腦更新固件文件或者從單片機內(nèi)部備份存儲區(qū)更新固件文件。從而,車載電腦每次啟動時候,首先對單片機內(nèi)部的固件進(jìn)行校驗,再執(zhí)行該固件程序,相對于現(xiàn)有車載單片機首先執(zhí)行固件文件,在升級時再跳轉(zhuǎn)到應(yīng)用BOOT的升級方法,不會出現(xiàn)升級錯誤卡死而導(dǎo)致單片機損壞的問題,避免單片機因程序升級失敗,從而使車載CAN總線不能工作,從而提高了車載電腦的穩(wěn)定性。借此,本發(fā)明能夠避免車載CAN-USB單片機因固件升級失敗而導(dǎo)致程序卡死使車載電腦產(chǎn)生不可恢復(fù)性的損壞,提高了 CAN-USB單片機的可靠性以及車載電腦的穩(wěn)定性。
[0049]在車載終端產(chǎn)品中,車載CAN總線是監(jiān)控電動汽車各項指標(biāo)的通訊總線,其穩(wěn)定性要求更嚴(yán)格,所以車載CAN-USB單片機運行穩(wěn)定是提高整車穩(wěn)定的關(guān)鍵因素,而單片機最容易出現(xiàn)問題點是在其更新程序時一些不確定因素導(dǎo)致的程序升級失敗,從而使車載CAN總線不能工作。而本方法就可以有效解決單片機程序升級失敗導(dǎo)致的問題。
[0050]在本發(fā)明的實施例中,CAN-USB單片機包括FLASH存儲器以及USB接口,F(xiàn)LASH存儲器被劃分為:引導(dǎo)程序存儲區(qū)、U盤模式代碼存儲區(qū)以及固件文件存儲區(qū)。其中,引導(dǎo)程序存儲區(qū)用于存儲BOOT程序;U盤模式代碼存儲區(qū)存儲用于使單片機以U盤模式工作的U盤模式代碼;固件文件存儲區(qū)用于存儲固件文件。
[0051]根據(jù)本發(fā)明的實施例,單片機的FLASH存儲器的一種地址劃分結(jié)構(gòu)如圖2所示,從地址(0x00000000)到(0x00001000)為BOOT代碼區(qū)201,B00T代碼區(qū)201位于最低地址區(qū),用于負(fù)責(zé)系統(tǒng)的啟動。從地址(0x00001000)到(0x00003000)為U盤模式代碼區(qū)202,U盤模式代碼區(qū)存儲有使單片機進(jìn)入U盤模式的代碼。從地址(0x00003000)到(0x00008000)為固件文件代碼區(qū)203,其中固件文件代碼區(qū)203又可分為存儲應(yīng)用程序代碼和公共信息的區(qū)域,例如從地址(0x00003000)到(0x00003010)存儲公共信息,從地址(0x00003010)到(0x00008000)存儲應(yīng)用程序代碼。
[0052]在單片機上電或復(fù)位時,首先執(zhí)行從地址(0x00000000)到(0x00001000)中的BOOT代碼,然后BOOT代碼從地址(0x00003010)開始讀取應(yīng)用程序代碼進(jìn)行CRC16校驗,如果校驗正確則跳到地址(0x00003010)位置運行應(yīng)用程序代碼,如果錯誤跳到地址(0x00001000)位置運行U盤模式代碼,使單片機以U盤模式工作,進(jìn)行固件升級。
[0053]固件文件結(jié)構(gòu)包括公共信息和應(yīng)用程序代碼,公共信息為整個固件的相關(guān)信息,主要包括固件文件類型、固件文件長度以及CRC校驗碼;應(yīng)用程序代碼用于執(zhí)行單片機功能。在本發(fā)明的一個實施例中,公共信息具體的數(shù)據(jù)結(jié)構(gòu)信息如下:
[0054]#define PAK_MAGIC 0x41435358
[0055]struct pak_header {
[0056]uintl6_t crcl6 ;
[0057]uintl6_t Ien ;
[0058]uint32_t magic ;
[0059]uint8_t ver [8];
[0060]};
[0061]其中,magic字段為魔數(shù),即固件文件類型,通過公共信息中的魔數(shù)可以判斷下載的固件文件的類型是否正確;len字段用于存放包含公共信息的固件文件的長度;crcl6字段用于存放CRC校驗碼,生成校驗碼所使用的數(shù)據(jù)是從Ien字段開始到固件文件末尾的所有數(shù)據(jù);ver字段用于定義固件文件的版本號,可以判斷待升級固件文件的版本和目標(biāo)單片機運行的固件文件版本是否一致。
[0062]圖3是本發(fā)明單片機升級方法一種具體實施例的流程圖,該流程包括如下步驟:
[0063]步驟S301,讀取固件文件公共信息中的魔數(shù)。
[0064]步驟S302,判斷魔數(shù)是否正確,是則進(jìn)入步驟S303,否則進(jìn)入步驟S307。魔數(shù)的具體判斷方法為:將公共信息中的魔數(shù)與BOOT代碼中預(yù)存的魔數(shù)進(jìn)行對比,若一致則正確,若不一致則不正確。
[0065]步驟S303,讀取應(yīng)用程序代碼進(jìn)行CRC計算,本步驟由BOOT程序完成。
[0066]步驟S304,判斷CRC計算結(jié)果與公共信息中的CRC校驗碼是否一致,若一致則進(jìn)入步驟S305,否則進(jìn)入步驟S307。
[0067]步驟S305,執(zhí)行應(yīng)用程序代碼。
[0068]步驟S306,判斷是否接收到外部升級指令,是則進(jìn)入步驟S307,否則回到步驟S305。
[0069]步驟S307,執(zhí)行U盤模式代碼,單片機進(jìn)入U盤模式。
[0070]步驟S308,將固件文件復(fù)制到單片機的固件文件代碼區(qū)。
[0071]步驟S309,升級完成,進(jìn)行看門狗復(fù)位,并回到步驟S301。
[0072]在本實施例的升級過程中,在升級前還會將待升級固件文件版本號與所述公共信息中的固件版本號相比較,如果一致則是同一版本,即提醒無需升級;如果不一致,則提醒用戶判斷是否升級。
[0073]在圖3所示的流程中,單片機上電或復(fù)位后,首先執(zhí)行BOOT代碼,再對固件文件進(jìn)行固件文件類型判斷和CRC校驗,判斷其是否是正確的固件文件,正確則運行該固件文件,若不正確則重新升級固件文件。若程序升級時異常中斷及異常復(fù)位等情況時,單片機通過看門狗電路復(fù)位后,重新對固件文件進(jìn)行正確性,校驗失敗后自動通過單片機的接口從外部設(shè)備再次更新固件文件。從而不會在固件升級異常中止、單片機停電或異常復(fù)位時不會出現(xiàn)升級錯誤卡死而導(dǎo)致單片機損壞的問題。
[0074]本發(fā)明的單片機固件升級方法優(yōu)選用于將CAN總線數(shù)據(jù)轉(zhuǎn)換成USB接口數(shù)據(jù)的CAN-USB單片機。在車載終端產(chǎn)品中,車載CAN總線是監(jiān)控電動汽車各項指標(biāo)的通訊總線,其穩(wěn)定性要求更嚴(yán)格,所以車載CAN-USB單片機運行穩(wěn)定是提高整車穩(wěn)定的關(guān)鍵因素,而單片機最容易出現(xiàn)問題點是在其更新程序時一些不確定因素導(dǎo)致的程序升級失敗,從而使車載CAN總線不能工作。而本方法就可以有效解決單片機程序升級失敗導(dǎo)致的問題。
[0075]如圖4所示,本發(fā)明還提供一種車載多媒體裝置100,車載多媒體包括車載電腦
10、汽車狀態(tài)監(jiān)控器20、與車載電腦10以及汽車狀態(tài)監(jiān)控器20連接的CAN-USB單片機30,CAN-USB單片機包括30:
[0076]引導(dǎo)單元31,用于所述CAN-USB單片機30上電或復(fù)位后,對存儲于CAN-USB單片機30內(nèi)部的固件文件進(jìn)行CRC校驗;
[0077]加載單元32,用于CRC校驗通過后加載固件文件,通過CAN接口獲取汽車狀態(tài)監(jiān)控器20的監(jiān)控數(shù)據(jù),并轉(zhuǎn)換成USB接口數(shù)據(jù)轉(zhuǎn)發(fā)給車載電腦10 ;
[0078]更新單元33,用于CRC校驗失敗后從車載電腦10更新所述固件文件或者從CAN-USB單片機30內(nèi)部備份存儲區(qū)更新固件文件。
[0079]其中,CAN-USB單片機30包括FLASH存儲器,F(xiàn)LASH存儲器包括引導(dǎo)程序存儲區(qū)、U盤模式代碼存儲區(qū)以及固件文件存儲區(qū),所述U盤模式代碼存儲于所述U盤模式代碼存儲區(qū)。
[0080]其中,CAN-USB單片機30還包括用于與汽車狀態(tài)監(jiān)控器20進(jìn)行數(shù)據(jù)通信的CAN接口以及與車載電腦10進(jìn)行數(shù)據(jù)通信的USB接口。[0081]其中,CAN-USB單片機還包括用于復(fù)位的看門狗電路。
[0082]綜上所述,本發(fā)明通過在車載電腦的CAN-USB單片機上電或復(fù)位后,執(zhí)行引導(dǎo)程序;引導(dǎo)程序?qū)Υ鎯τ贑AN-USB單片機內(nèi)部的固件文件進(jìn)行CRC校驗;若校驗通過則CAN-USB單片機加載固件文件;若校驗失敗則所述CAN-USB單片機從車載電腦更新固件文件或者從單片機內(nèi)部備份存儲區(qū)更新固件文件。從而,車載電腦每次啟動時候,首先對單片機內(nèi)部的固件進(jìn)行校驗,再執(zhí)行該固件程序,相對于現(xiàn)有車載單片機首先執(zhí)行固件文件,在升級時再跳轉(zhuǎn)到應(yīng)用BOOT的升級方法,不會出現(xiàn)升級錯誤卡死而導(dǎo)致單片機損壞的問題,避免單片機因程序升級失敗,從而使車載CAN總線不能工作,從而提高了車載電腦的穩(wěn)定性。借此,本發(fā)明能夠避免車載CAN-USB單片機因固件升級失敗而導(dǎo)致程序卡死使車載電腦產(chǎn)生不可恢復(fù)性的損壞,提高了 CAN-USB單片機的可靠性以及車載電腦的穩(wěn)定性。
[0083]本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進(jìn)行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【權(quán)利要求】
1.一種車載多媒體裝置的控制方法,其特征在于,所述車載多媒體包括車載電腦、汽車狀態(tài)監(jiān)控器、與所述車載電腦以及所述汽車狀態(tài)監(jiān)控器連接的CAN-USB單片機, 所述CAN-USB單片機上電或復(fù)位后,執(zhí)行引導(dǎo)程序; 所述引導(dǎo)程序?qū)Υ鎯τ谒鯟AN-USB單片機內(nèi)部的固件文件進(jìn)行CRC校驗; 若校驗通過則所述CAN-USB單片機加載所述固件文件,通過CAN接口獲取所述汽車狀態(tài)監(jiān)控器的監(jiān)控數(shù)據(jù),并轉(zhuǎn)換成USB接口數(shù)據(jù)發(fā)送給所述車載電腦; 若校驗失敗則所述CAN-USB單片機從所述車載電腦更新所述固件文件或者從所述單片機內(nèi)部備份存儲區(qū)更新固件文件。
2.根據(jù)權(quán)利要求1所述的車載多媒體裝置的控制方法,其特征在于,所述CRC校驗具體為:` 通過所述引導(dǎo)程序?qū)λ龉碳募膽?yīng)用程序代碼進(jìn)行CRC計算,所述固件文件包括公共信息以及應(yīng)用程序代碼,所述公共信息包括固件文件類型、固件文件長度及CRC校驗碼; 將所述CRC計算所得到的CRC校驗碼與所述固件文件中存儲的CRC校驗碼進(jìn)行比對,若一致則校驗通過加載所述固件文件,否則校驗失敗。
3.根據(jù)權(quán)利要求1所述的車載多媒體裝置的控制方法,其特征在于,所述CRC校驗之前還包括: 將所述單片機內(nèi)部固件文件的固件文件類型與所述BOOT代碼中預(yù)存的固件文件類型進(jìn)行對比; 若一致則進(jìn)行CRC校驗,若不一致則所述CAN-USB單片機從所述車載電腦更新所述固件文件或者從所述單片機內(nèi)部備份存儲區(qū)更新固件文件。
4.根據(jù)權(quán)利要求1所述的車載多媒體裝置的控制方法,其特征在于,所述車載多媒體的單片機控制方法還包括:若所述CAN-USB單片機從所述車載電腦接收到外部升級指令,則根據(jù)所述外部升級指令進(jìn)行固件升級。
5.根據(jù)權(quán)利要求1所述的車載多媒體裝置的控制方法,其特征在于,所述CAN-USB單片機從所述車載電腦更新所述固件文件具體為: 所述CAN-USB單片機執(zhí)行其內(nèi)部FLASH存儲器中的U盤模式代碼,所述CAN-USB單片機進(jìn)入U盤模式,所述FLASH存儲器包括引導(dǎo)程序存儲區(qū)、U盤模式代碼存儲區(qū)以及固件文件存儲區(qū),所述U盤模式代碼存儲于所述U盤模式代碼存儲區(qū); 所述CAN-USB單片機通過USB接口從所述車載電腦接收更新固件文件,并保存至所述固件文件存儲區(qū)。
6.根據(jù)權(quán)利要求1所述的車載多媒體裝置的控制方法,其特征在于,所述CAN-USB單片機的接口從外部設(shè)備更新所述固件文件之后還包括:所述CAN-USB單片機通過看門狗電路進(jìn)行復(fù)位。
7.一種車載多媒體裝置,其特征在于,所述車載多媒體包括車載電腦、汽車狀態(tài)監(jiān)控器、與所述車載電腦以及所述汽車狀態(tài)監(jiān)控器連接的CAN-USB單片機, 所述CAN-USB單片機包括: 引導(dǎo)單元,用于所述CAN-USB單片機上電或復(fù)位后,對存儲于所述CAN-USB單片機內(nèi)部的固件文件進(jìn)行CRC校驗;加載單元,用于CRC校驗通過后加載所述固件文件,通過CAN接口獲取所述汽車狀態(tài)監(jiān)控器的監(jiān)控數(shù)據(jù),并轉(zhuǎn)換成USB接口數(shù)據(jù)轉(zhuǎn)發(fā)給所述車載電腦; 更新單元,用于CRC校驗失敗后從所述車載電腦更新所述固件文件或者從所述CAN-USB單片機內(nèi)部備份存儲區(qū)更新固件文件。
8.根據(jù)權(quán)利要求7所述的車載多媒體裝置,其特征在于,所述CAN-USB單片機包括FLASH存儲器,所述FLASH存儲器包括引導(dǎo)程序存儲區(qū)、U盤模式代碼存儲區(qū)以及固件文件存儲區(qū),所述U盤模式代碼存儲于所述U盤模式代碼存儲區(qū)。
9.根據(jù)權(quán)利要求7所述的車載多媒體裝置,其特征在于,所述CAN-USB單片機包括用于與所述汽車狀態(tài)監(jiān)控器進(jìn)行數(shù)據(jù)通信的CAN接口以及與所述車載電腦進(jìn)行數(shù)據(jù)通信的USB接口。
10.根據(jù)權(quán)利要求7所述的車載多媒體裝置,其特征在于,所述CAN-USB單片機還包括用于復(fù)位的看門狗電路。
【文檔編號】G06F11/08GK103761112SQ201110459091
【公開日】2014年4月30日 申請日期:2011年12月30日 優(yōu)先權(quán)日:2011年12月30日
【發(fā)明者】李廣濤 申請人:深圳市大富科技股份有限公司