一種內飾燈的控制方法及系統與流程
2024-02-16 16:54:15 1

本發明涉及內飾燈燈光控制技術領域,尤其涉及一種內飾燈的控制方法及系統。
背景技術:
隨著社會經濟的不斷發展,人們的生活水平日益提高,越來越多的家庭都配置了汽車。內飾作為汽車的一部分,也越來越受到用戶的重視,其中,通過內飾燈來提升汽車的內飾品質起著越來越重要的作用。
目前,汽車的內飾燈可實現多種顏色和亮度,用戶可根據個人喜好和需求來設定內飾燈的不同顏色和亮度效果,從而起到汽車內飾的裝飾作用。但是,目前在對內飾燈進行控制時,用戶只能實現對汽車上的所有內飾燈進行統一控制,例如,統一調節內飾的亮度和顏色;不能對每一個內飾燈進行單獨的控制。因此,如何實現對內飾燈進行單獨的控制是一項亟待解決的問題。
技術實現要素:
本發明提供了一種內飾燈的控制方法及系統,能通過向每一內飾燈節點模塊分配不同的id,並發送包括識別信息的報文,使每一內飾燈節點模塊基於識別信息判斷是否需要執行此報文,實現了對內飾燈節點模塊進行單獨控制。
一種內飾燈的控制方法,應用於內飾燈控制裝置,所述內飾燈控制裝置包括控制模塊及n個內飾燈節點模塊,n為大於等於1的正整數,其中,每個內飾燈節點模塊包括一個led模塊和一個電子控制單元,每個電子控制單元用於控制其所在的內飾燈節點模塊對應的led模塊是否發光,當n大於等於2時,所述n個內飾燈節點模塊的n個電子控制單元依次串聯連接;所述方法包括:
所述控制模塊為所述n個內飾燈節點模塊分配id,其中,任意兩個內飾燈節點模塊的id不同;
所述控制模塊基於收發裝置發送的整車信號生成控制報文,並發送給所述n個內飾燈節點模塊;
所述n個內飾燈節點模塊分別判斷所述控制報文中的id是否與其自身的id相匹配;
當任一內飾燈節點模塊判斷出所述控制報文中的id與其自身的id相匹配時,該內飾燈節點模塊的電子控制單元基於所述控制報文生成led控制信號,以控制該內飾燈節點模塊內部的led模塊動作。
優選地,所述控制模塊為所述n個內飾燈節點模塊分配id,包括:
所述控制模塊生成初始報文,並發送給所述n個內飾燈節點模塊,所述n個內飾燈節點模塊基於所述初始報文初始化;
所述控制模塊生成n個不同的分配id報文,並分發給所述n個內飾燈節點模塊;
所述控制模塊生成存儲報文,並分發給所述n個內飾燈節點模塊,所述n個內飾燈節點模塊基於所述存儲報文存儲其自身的id;
所述控制模塊生成結束報文,並分發給所述n個內飾燈節點模塊,所述n個內飾燈節點模塊基於所述結束報文結束id分配。
優選地,所述方法還包括:
所述控制模塊生成驗證報文,並將所述驗證報文分別發送給所述n個內飾燈節點模塊;
所述n個內飾燈節點模塊分別基於所述驗證報文反饋其自身的id至所述控制模塊。
優選地,所述控制報文包括識別區域的id;所述n個內飾燈節點模塊分別判斷所述控制報文中的id是否與其自身的id相匹配包括:
每個內飾燈節點模塊讀取所述識別區域的id,當所述識別區域的id與其自身的id相同時,所述控制報文中的id與相應內飾燈節點模塊的id相匹配。
一種內飾燈的控制系統,包括收發裝置及內飾燈控制裝置,所述內飾燈控制裝置包括控制模塊及n個內飾燈節點模塊,n為大於等於1的正整數,其中,每個內飾燈節點模塊包括一個led模塊和一個電子控制單元,每個電子控制單元用於控制其所在的內飾燈節點模塊對應的led模塊是否發光,當n大於等於2時,所述n個內飾燈節點模塊的n個電子控制單元依次串聯連接,其中:
所述控制模塊用於為所述n個內飾燈節點模塊分配id,其中,任意兩個內飾燈節點模塊的id不同;
所述收發裝置用於發送整車信號至所述控制模塊;
所述控制模塊還用於基於所述收發裝置發送的整車信號生成控制報文,並發送給所述n個內飾燈節點模塊;
所述n個內飾燈節點模塊分別用於判斷所述控制報文中的id是否與其自身的id相匹配;
當任一內飾燈節點模塊判斷出所述控制報文中的id與其自身的id相匹配時,該內飾燈節點模塊的電子控制單元用於基於所述控制報文生成led控制信號,以控制該內飾燈節點模塊內部的led模塊動作。
優選地,所述控制模塊為所述n個內飾燈節點模塊分配id中:
所述控制模塊用於生成初始報文,並發送給所述n個內飾燈節點模塊,所述n個內飾燈節點模塊用於基於所述初始報文初始化;
所述控制模塊生成n個不同的分配id報文,並分發給所述n個內飾燈節點模塊;
所述控制模塊還用於生成存儲報文,並分發給所述n個內飾燈節點模塊,所述n個內飾燈節點模塊還用於基於所述存儲報文存儲其自身的id;
所述控制模塊還用於生成結束報文,並分發給所述n個內飾燈節點模塊,所述n個內飾燈節點模塊還用於基於所述結束報文結束id分配。
優選地,所述控制模塊還用於生成驗證報文,並將所述驗證報文分別發送給所述n個內飾燈節點模塊;所述n個內飾燈節點模塊還用於分別基於所述驗證報文反饋其自身的id至所述控制模塊。
優選地,所述控制報文包括識別區域的id;在所述n個內飾燈節點模塊分別判斷所述控制報文中的id是否與其自身的id相匹配中:
每個內飾燈節點模塊用於讀取所述識別區域的id,當所述識別區域的id與其自身的id相同時,所述控制報文中的id與相應內飾燈節點模塊的id相匹配。
由上述方案可知,本發明提供的一種內飾燈的控制方法及系統,應用於內飾燈控制裝置,內飾燈控制裝置包括控制模塊及n個內飾燈節點模塊,n為大於等於1的正整數,其中,每個內飾燈節點模塊包括一個led模塊和一個電子控制單元,每個電子控制單元用於控制其所在的內飾燈節點模塊對應的led模塊是否發光,當n大於等於2時,n個內飾燈節點模塊的n個電子控制單元依次串聯連接;方法包括:控制模塊為n個內飾燈節點模塊分配id,其中,任意兩個內飾燈節點模塊的id不同;控制模塊基於收發裝置發送的整車信號生成控制報文,並發送給所述n個內飾燈節點模塊;n個內飾燈節點模塊判斷控制報文中的id是否與其自身的id相匹配;當任一內飾燈節點模塊判斷出控制報文中的id與其自身的id相匹配時,該內飾燈節點模塊的電子控制單元基於控制報文生成led控制信號,以控制該內飾燈節點模塊內部的led模塊動作。本發明能通過向每一內飾燈節點模塊分配不同的id,並發送控制報文,使每一內飾燈節點模塊基於控制報文判斷是否需要執行此報文,實現了對內飾燈節點模塊進行單獨控制。
附圖說明
為了更清楚地說明本發明實施例或現有技術的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明公開的一種內飾燈的控制方法實施例1的方法流程圖;
圖2為本發明公開的一種內飾燈的控制方法實施例2的方法流程圖;
圖3為本發明公開的一種內飾燈的控制方法實施例3的方法流程圖;
圖4為本發明公開的一種內飾燈的控制系統實施例1的結構示意圖;
圖5為本發明公開的一種內飾燈的控制系統實施例2的結構示意圖;
圖6為本發明公開的一種內飾燈的控制系統實施例3的結構示意圖;
圖7為本發明公開的可以實現生成的分配id報文的報文id作為一個內飾燈節點模塊的id的一種電路結構的電路原理圖;
圖8為本發明公開的一種內飾燈的控制方法實施例2中s201~s205中控制模塊生成的各種報文及生成報文的流程圖;
圖9為本發明公開的報文驗證示意圖。
具體實施方式
下面將結合本發明實施例的附圖,對本發明實施例的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
為了更加特定地強調實施的獨立性,本說明書涉及許多模塊或單元。舉例而言,模塊或單元可由硬體電路實現,該硬體電路包括特製vlsi電路或門陣列,比如邏輯晶片、電晶體,或其它組件。模塊或單元也可在可編程的硬設備中實現,比如場效可編程門陣列、可編程陣列邏輯、可編程邏輯設備等等。
模塊或單元也可在藉由各種形式的處理器所執行的軟體中實現。比如說,一可執行碼模塊可包括一個或多個實體的或邏輯的計算機指令區塊,該區塊可能形成為,比如說,對象、程序或函數。然而,鑑別模塊或單元的可執行部分不需要物理上放置在一起,但可由存於不同位置的不同指令所組成,當邏輯上組合在一起時,形成模塊或單元且達到該模塊或單元所要求的目的。
實際上,可執行碼模塊或單元可以是一單一指令或多個指令,甚至可以分布在位於不同的程序的數個不同的碼區段,並且橫跨數個存儲設備。同樣地,操作數據可被辨識及顯示於此模塊或單元中,並且可以以任何合適的形式實施且在任何合適的數據結構形式內組織。操作數據可以集合成單一數據集,或可分布在具有不同的存儲設備的不同的位置,且至少部分地只以電子信號方式存在於一系統或網絡。
本說明書所提及的「實施例」或類似用語表示與實施例有關的特性、結構或特徵,包括在本發明的至少一實施例中。因此,本說明書所出現的用語「在一實施例中」、「在實施例中」以及類似用語可能但不必然都指向相同實施例。
再者,本發明所述特性、結構或特徵可以以任何方式結合在一個或多個實施例中。以下說明將提供許多特定的細節,比如編程序、軟體模塊、用戶選擇、網絡交易、資料庫查詢、資料庫結構、硬體模塊、硬體電路、硬體晶片等例子,以提供對本發明實施例的了解。然而相關領域的普通技術人員將看出本發明,即使沒有利用其中一個或多個特定細節,或利用其它方法、組件、材料等亦可實施。另一方面,為避免混淆本發明,公知的結構、材料或操作並沒有詳細描述。
如圖1所示,為本發明提供的一種內飾燈的控制方法實施例1的流程圖,所述方法應用於內飾燈控制裝置,內飾燈控制裝置包括控制模塊及n個內飾燈節點模塊,n為大於等於1的正整數,其中,每個內飾燈節點模塊包括一個led模塊和一個電子控制單元,每個電子控制單元用於控制其所在的內飾燈節點模塊對應的led模塊是否發光,當n大於等於2時,n個內飾燈節點模塊的n個電子控制單元依次串聯連接;所述方法可以包括以下步驟:
s101、控制模塊為n個內飾燈節點模塊分配id,其中,任意兩個內飾燈節點模塊的id不同;
內飾燈節點模塊的id分配可在整車下線時進行,為了保證可對任一單個內飾燈節點模塊進行控制,每一個內飾燈節點模塊的id都是唯一的,在同一輛車上,沒有其他內飾燈節點模塊的id與其相同。此處的控制模塊可採用mcu(單片機)。
s102、控制模塊基於收發裝置發送的整車信號生成控制報文,並發送給n個內飾燈節點模塊;
此處的收發裝置可以為can收發器,相應的內飾燈控制裝置可採用lin總線結構。若收發裝置為can接收器,則接收can總線傳遞的整車信號,整車信號主要由mmi(multimediainterface,多媒體交互系統)、bcm(bodycontrolmodule,車身控制模塊)和peps(passiveentry&&passivestart,無鑰匙進入無鑰匙啟動系統)等ecu(electroniccontrolunit,電子控制單元)發出。控制模塊接收整車信號後,基於此整車信號及內飾燈的當前狀態,生成控制報文,並將生成的控制報文發送給n個內飾燈節點模塊。例如,接收到的命令為使內飾燈打開並發紅光的信號,而此時檢測到內飾燈已打開但未亮紅光,則此時生成的控制報文只包括控制內飾燈亮紅光的信號。檢測內飾燈是否打開及發出的光的顏色為現有技術,在此不再贅述。值得一提的是,因內飾燈控制裝置採用lin總線結構,因此控制模塊生成的任何報文均會被所有內飾燈節點模塊接收。
s103、n個內飾燈節點模塊分別判斷控制報文的id是否與其自身的id相匹配;
控制報文可用於控制某一個或幾個內飾燈,因此每個內飾燈節點模塊均需要判斷接收到的控制報文是否用於控制此內飾燈節點模塊,即判斷接收到的控制報文的id是否與自身的id相匹配。
為使得本發明實施例更加清楚、明白,這裡以n=3為具體實例進行說明,即內飾燈控制裝置一共包括3個內飾燈節點模塊。為方便描述,分別將這3個內飾燈節點模塊命名為第一內飾燈節點模塊,第二內飾燈節點模塊,第三內飾燈節點模塊。此時,在步驟s103中,第一內飾燈節點模塊判斷所述控制報文中的id是否與第一內飾燈節點模塊的id相匹配,第二內飾燈節點模塊判斷所述控制報文中的id是否與第二內飾燈節點模塊的id相匹配,第三內飾燈節點模塊判斷所述控制報文中的id是否與第三內飾燈節點模塊的id相匹配。
s104、當任一內飾燈節點模塊判斷出控制報文中的id與其自身的id相匹配時,該內飾燈節點模塊的電子控制單元基於控制報文生成led控制信號,以控制該內飾燈節點模塊內部的led模塊動作。
當任意一個內飾燈節點模塊判斷出接收到的控制報文是用於控制此內飾燈節點模塊時,即當控制報文中的id與內飾燈節點模塊自身的id相匹配時,內飾燈節點模塊的電子控制單元基於此控制報文生成相應的led控制信號,並根據接收到的信號控制該內飾燈節點模塊內部的led模塊動作,如控制led打開、結束id分配及變換顏色等;其中,電子控制單元可為mlx81108晶片。
與步驟s103中的具體實例對應,這裡還以n=3為例進行說明。例如第一內飾燈節點模塊判斷出所述控制報文中的id與第一內飾燈節點模塊的id相匹配,則第一內飾燈節點模塊的電子控制單元基於所述控制報文生成led控制信號,以控制第一內飾燈節點模塊內部的led模塊動作。又例如第一內飾燈節點模塊判斷出所述控制報文中的id與第一內飾燈節點模塊的id相匹配,則第一內飾燈節點模塊的電子控制單元基於所述控制報文生成led控制信號,以控制第一內飾燈節點模塊內部的led模塊動作;同時第二內飾燈節點模塊判斷出所述控制報文中的id與第二內飾燈節點模塊的id相匹配,則第二內飾燈節點模塊的電子控制單元基於所述控制報文生成led控制信號,以控制第二內飾燈節點模塊內部的led模塊動作。
綜上所述,上述實施例中,當需要對內飾燈進行單獨控制時,首先控制模塊為n個內飾燈節點模塊分配id,其中,任意兩個內飾燈節點模塊的id不同;然後控制模塊基於收發裝置發送的整車信號生成控制報文,並發送給n個內飾燈節點模塊;n個內飾燈節點模塊判斷控制報文中的id是否與其自身的id相匹配;當任一內飾燈節點模塊判斷出控制報文中的id與其自身的id相匹配時,該內飾燈節點模塊的電子控制單元基於控制報文生成led控制信號,以控制該內飾燈節點模塊內部的led模塊動作。通過向每一內飾燈節點模塊分配不同的id,並發送控制報文,使每一內飾燈節點模塊基於控制報文判斷是否需要執行此報文,實現了對內飾燈節點模塊進行單獨控制。
如圖2所示,為本發明提供的一種內飾燈的控制方法實施例2的流程圖,所述方法可以包括以下步驟:
s201、控制模塊生成初始報文,並發送給n個內飾燈節點模塊,n個內飾燈節點模塊基於初始報文初始化;
為每個內飾燈節點模塊分配id前需要先對每個內飾燈節點模塊進行初始化,針對每一個內飾燈節點模塊,在對內飾燈節點模塊進行初始化時,控制模塊生成初始化報文,並將生成的初始報文發送給內飾燈節點模塊,對內飾燈節點模塊根據接收到的初始報文進行初始化。
s202、控制模塊生成n個不同的分配id報文,並分發給n個內飾燈節點模塊;
控制模塊生成分配id報文,每一個內飾燈節點模塊均對應一個分配id報文,因此,需要分配id的內飾燈節點模塊的數量與生成的分配id報文的數量相等,且為了保證每個內飾燈節點模塊的id均與其他內飾燈節點模塊的id不同,每次生成的分配id報文包括的id均不同於其他分配id報文包括的id。
每個內飾燈節點模塊可以以一個報文id作為此內飾燈節點模塊的id,每個報文id只能作為一個內飾燈節點模塊的id。生成分配id報文後,生成的分配id報文的id作為一個內飾燈節點模塊的id,然後再生成下一個分配id報文。
如圖7所示,為可以實現將生成的分配id報文的報文id作為一個內飾燈節點模塊的id的一種電路結構的電路原理圖。此電路的工作原理如下:
斷開所有snpd(slavenodepositiondetection,可自動分配id的從節點)的電流源和上拉電阻,snpd即為內飾燈節點模塊;
每一個snpd測量流過與放大器並聯的電阻rshunt的電流,記為ishunt_1;
此時三個snpd的ishunt_1相等:
snpda:ishunt_1=i1+i2
snpdb:ishunt_1=i1+i2
snpdc:ishunt_1=i1+i2
所有snpd的左側電流源閉合(支路4、6、9的開關閉合);
所有snpd再次測量電流,記為ishunt_2。由ishunt_1與ishunt_2的差值可知此節點是否是離控制模塊物理位置最遠的節點。差值小於特定的預設標準電流值idiff時,認為是總線上最後一個(或多個)snpd,這些節點被選為預選節點;
此時三個snpd的電流情況:
snpda:
ishunt_2=i1+i2
ishunt_2-ishunt_1=0
snpdb:
ishunt_2=i1+i2+i4
ishunt_2-ishunt_1=i4
snpdc:
ishunt_2=i1+i2+i4+i6+i7
ishunt_2-ishunt_1=i4+i6+i7
例:如果idiff大於i4且小於i4+i6+i7,那麼snpda和b為預選節點。
所有非預選節點斷開左側電流源,所有預選節點閉合右側電流源(左側電流源保持閉合,所有節點上拉電阻均斷開);
所有snpd再次測量電流,記為ishunt_3。與ishunt_1作差,若差值小於特定的idiff,認為是總線上最後一個snpd的節點,此時三個snpd的電流情況:
snpda:
ishunt_3=i1+i2
ishunt_3-ishunt_1=0
snpdb:
ishunt_3=i1+i2+i3+i4
ishunt_3-ishunt_1=i3+i4
snpdc:
ishunt_3=i1+i2+i3+i4+i5+i6+i7
ishunt_3-ishunt_1=i3+i4+i5+i6+i7
此時idiff小於i3+i4,故選出snpda為總線上最後一個snpd,即真正當選第一個snpd。
此時,當選的snpd的id即為生成的分配id報文的id。當下一個分配id報文生成後,排除已有id的snpd,重複上述步驟,直至上述節點均完成id分配。
s203、控制模塊生成存儲報文,並分發給n個內飾燈節點模塊,n個內飾燈節點模塊基於存儲報文存儲其自身的id;
當給所有內飾燈節點均分配id後,控制模塊生成存儲報文,並將生成的存儲報文分別發送給所有的內飾燈節點模塊,每個內飾燈節點模塊基於存儲報文存儲與其相對應的id。
s204、控制模塊生成結束報文,並分發給n個內飾燈節點模塊,n個內飾燈節點模塊基於結束報文結束id分配;
存儲id完成後,控制模塊生成結束報文,並將生成的結束報文分別發送給所有的內飾燈節點模塊,內飾燈節點模塊基於結束報文結束id分配過程。此時,仍如圖7所示,斷開所有snpd上所有電流源,打開所有的上拉電阻。
如圖8所示,圖8左側流程為本實施例中s201~s204中控制模塊生成報文的流程,圖8生成報文的各個流程都對應有報文,各個流程的報文表現形式可參見圖8右側對應的報文部分。其中,有幾個不同的內飾燈節點模塊需要分配id,就需要重複幾次nextnad,nad值即為報文id;即重複圖8所示的流程圖中的步驟2(sid0xb5「bsmsubfunction0x02」nextnad)。一個內飾燈節點模塊需要發送一次步驟2的報文,例如需要對5個內飾燈節點模塊分配id,則報文的時序如下:
執行步驟1"sid0xb5「bsmsubfunction0x01」bsminitialization",以生成初始報文;
執行步驟2"sid0xb5「bsmsubfunction0x02」nextnad"5次,每次在byte7中寫入不同的新nad值;
執行步驟3"sid0xb5「bsmsubfunction0x03」storenad",以存儲nad值;
執行步驟4"sid0xb5「bsmsubfunction0x04」bsmfinished",以結束報文。
以分配nad為04,03,02的報文為例(以下數據均為16進位):
3c,7f,06,b5,ff,7f,01,02,ff,校驗和;(初始報文)
3c,7f,06,b5,ff,7f,02,02,04,校驗和;(分配id報文)
3c,7f,06,b5,ff,7f,02,02,03,校驗和;(分配id報文)
3c,7f,06,b5,ff,7f,02,02,02,校驗和;(分配id報文)
3c,7f,06,b5,ff,7f,03,02,ff,校驗和;(存儲報文)
3c,7f,06,b5,ff,7f,04,02,ff,校驗和;(結束報文)
s205、控制模塊基於收發裝置發送的整車信號生成控制報文,並發送給n個內飾燈節點模塊;
此處的收發裝置可以為can收發器,相應的內飾燈控制裝置可採用lin總線結構。若收發裝置為can接收器,則接收can總線傳遞的整車信號,整車信號主要由mmi(multimediainterface,多媒體交互系統)、bcm(bodycontrolmodule,車身控制模塊)和peps(passiveentry&&passivestart,無鑰匙進入無鑰匙啟動系統)等ecu(electroniccontrolunit,電子控制單元)發出。控制模塊接收整車信號後,基於此整車信號及內飾燈的當前狀態,生成控制報文,並將生成的控制報文發送給n個內飾燈節點模塊。例如,接收的命令內飾燈打開並發紅光的信號,而此時檢測到內飾燈已打開但未亮紅光,則此時生成的控制報文只包括控制內飾燈亮紅光的信號。檢測內飾燈是否打開及發出的光的顏色為現有技術,在此不再贅述。值得一提的是,因內飾燈控制裝置採用lin總線結構,因此控制模塊生成的任何報文均會被所有內飾燈節點模塊接收。
s206、n個內飾燈節點模塊分別判斷控制報文中的id是否與其自身的id相匹配;
控制報文可用於控制某一個或幾個內飾燈,因此每個內飾燈節點模塊需要判斷接收到的控制報文是否用於控制此內飾燈節點模塊。具體方法可為:每個內飾燈節點模塊的電子控制單元讀取控制報文中識別區域的id,當識別區域的id與內飾燈節點模塊的id相同時,表示控制報文中的id與該內飾燈節點模塊的id相匹配。
s207、當任一內飾燈節點模塊判斷出控制報文中的id與其自身的id相匹配時,該內飾燈節點模塊的電子控制單元基於控制報文生成led控制信號,以控制該內飾燈節點模塊內部的led模塊動作。
當任意一個內飾燈節點模塊判斷接收到的控制報文是用於控制此內飾燈節點模塊時,即當控制報文中的id與內飾燈節點模塊自身的id相匹配時,內飾燈節點模塊的電子控制單元基於此控制報文生成相應的led控制信號,並根據接收到的信號控制該內飾燈節點模塊內部的led模塊動作,如控制led打開、結束id分配及變換顏色等;其中,電子控制單元可為mlx81108晶片。
如圖3所示,為本發明在上述實施例的基礎上提供的一種內飾燈的控制方法實施例3的流程圖,所述方法包括:
s301、控制模塊生成驗證報文,並將驗證報文分別發送給n個內飾燈節點模塊;
控制模塊生成如圖9所示的驗證報文,進一步驗證lin自動尋址是否成功,通過readbyidlin診斷命令獲取相應nad的id,lin2.0格式如圖9所示。
s302、n個內飾燈節點模塊分別基於驗證報文反饋其自身的id至控制模塊。
內飾燈節點模塊接收到驗證報文後,將其自身的id反饋至控制模塊,控制模塊在接收到所有內飾燈節點模塊反饋的自身的id後,即可判斷自動尋址成功。
如圖4所示,為本發明提供的一種內飾燈的控制系統實施例1的結構示意圖,包括收發裝置101及內飾燈控制裝置,內飾燈控制裝置包括控制模塊105及n個內飾燈節點模塊104,每個內飾燈節點模塊的標識均用104表示,n為大於等於1的正整數,其中,每個內飾燈節點模塊104包括一個led模塊102和一個電子控制單元103,每個電子控制單元103用於控制其所在的內飾燈節點模塊對應的led模塊是否發光,當n大於等於2時,n個內飾燈節點模塊104的所有電子控制單元103依次串聯連接,其中:
控制模塊105用於為n個內飾燈節點模塊104分配id,其中,任意兩個內飾燈節點模塊的id不同;
內飾燈節點模塊104的id分配可在整車下線時進行,為了保證可對任一單個內飾燈節點模塊104進行控制,每一個內飾燈節點模塊104的id都是唯一的,在同一輛車上,沒有其他內飾燈節點模塊104的id與其相同。此處的控制模塊105可採用mcu(單片機)。
收發裝置101用於發送整車信號至控制模塊105,控制模塊105還用於基於整車信號生成控制報文,並發送給n個內飾燈節點模塊104;
此處的收發裝置101可以為can收發器,相應的內飾燈控制裝置可採用lin總線結構。若收發裝置101為can接收器,則接收can總線傳遞的整車信號,整車信號主要由mmi(multimediainterface,多媒體交互系統)、bcm(bodycontrolmodule,車身控制模塊)和peps(passiveentry&&passivestart,無鑰匙進入無鑰匙啟動系統)等ecu(electroniccontrolunit,電子控制單元)發出。控制模塊105接收整車信號後,基於此整車信號及內飾燈的當前狀態,生成控制報文,並將生成的控制報文發送給n個內飾燈節點模塊104。例如,接收到的命令為使內飾燈打開並發紅光的信號,而此時檢測到內飾燈已打開但未亮紅光,則此時生成的控制報文只包括控制內飾燈亮紅光的信號。檢測內飾燈是否打開及發出的光的顏色為現有技術,在此不再贅述。值得一提的是,因內飾燈控制裝置採用lin總線結構,因此控制模塊105生成的任何報文均會被所有內飾燈節點模塊104接收。
n個內飾燈節點模塊104分別用於判斷控制報文中的id是否與其自身的id相匹配;
控制報文可用於控制某一個或幾個內飾燈,因此每個內飾燈節點模塊104均需要判斷接收到的控制報文是否用於控制此內飾燈節點模塊104,即判斷接收到的控制報文的id是否與自身的id相匹配。
為使得本發明實施例更加清楚、明白,這裡以n=3為具體實例進行說明,即內飾燈控制裝置一共包括3個內飾燈節點模塊。為方便描述,分別將這3個內飾燈節點模塊命名為第一內飾燈節點模塊,第二內飾燈節點模塊,第三內飾燈節點模塊。此時,第一內飾燈節點模塊判斷所述控制報文中的id是否與第一內飾燈節點模塊的id相匹配,第二內飾燈節點模塊判斷所述控制報文中的id是否與第二內飾燈節點模塊的id相匹配,第三內飾燈節點模塊判斷所述控制報文中的id是否與第三內飾燈節點模塊的id相匹配。
當任一內飾燈節點模塊判斷出控制報文中的id與其自身的id相匹配時,該內飾燈節點模塊104的電子控制單元103用於基於控制報文生成led控制信號,以控制該內飾燈節點模塊內部的led模塊動作。
當任意一個內飾燈節點模塊104判斷出接收到的控制報文是用於控制此內飾燈節點模塊104時,即當控制報文中的id與內飾燈節點模塊自身的id相匹配時,內飾燈節點模塊的電子控制單元103基於此控制報文生成相應的led控制信號,並根據接收到的信號控制該內飾燈節點模塊內部的led模塊動作,如控制led打開、結束id分配及變換顏色等;電子控制單元103可為mlx81108晶片。
與上述的具體實例對應,這裡還以n=3為例進行說明。例如第一內飾燈節點模塊判斷出所述控制報文中的id與第一內飾燈節點模塊的id相匹配,則第一內飾燈節點模塊的電子控制單元基於所述控制報文生成led控制信號,以控制第一內飾燈節點模塊內部的led模塊動作。又例如第一內飾燈節點模塊判斷出所述控制報文中的id與第一內飾燈節點模塊的id相匹配,則第一內飾燈節點模塊的電子控制單元基於所述控制報文生成led控制信號,以控制第一內飾燈節點模塊內部的led模塊動作;同時第二內飾燈節點模塊判斷出所述控制報文中的id與第二內飾燈節點模塊的id相匹配,則第二內飾燈節點模塊的電子控制單元基於所述控制報文生成led控制信號,以控制第二內飾燈節點模塊內部的led模塊動作。
綜上所述,上述實施例中,當需要對內飾燈進行單獨控制時,首先控制模塊為n個內飾燈節點模塊分配id,其中,任意兩個內飾燈節點模塊的id不同;然後控制模塊基於收發裝置發送的整車信號生成控制報文,並發送給n個內飾燈節點模塊;n個內飾燈節點模塊判斷控制報文中的id是否與其自身的id相匹配;當任一內飾燈節點模塊判斷出控制報文中的id與其自身的id相匹配時,該內飾燈節點模塊的電子控制單元基於控制報文生成led控制信號,以控制該內飾燈節點模塊內部的led模塊動作。通過向每一內飾燈節點模塊分配不同的id,並發送控制報文,使每一內飾燈節點模塊基於控制報文判斷是否需要執行此報文,實現了對內飾燈節點模塊進行單獨控制。
如圖5所示,為本發明提供的一種內飾燈的控制系統實施例2的結構示意圖,包括收發裝置201及內飾燈控制裝置,內飾燈控制裝置包括控制模塊205及n個內飾燈節點模塊204,每個內飾燈節點模塊的標識均用204表示,n為大於等於1的正整數,其中,每個內飾燈節點模塊204包括一個led模塊202和一個電子控制單元203,每個電子控制單元203用於控制其所在的內飾燈節點模塊對應的led模塊是否發光,當n大於等於2時,n個內飾燈節點模塊204的所有電子控制單元203依次串聯連接,其中:
控制模塊205用於生成初始報文,並發送給n個內飾燈節點模塊204,n個內飾燈節點模塊204用於基於初始報文初始化;
為每個內飾燈節點模塊204分配id前需要先對每個內飾燈節點模塊進行初始化,針對每一個內飾燈節點模塊,在對內飾燈節點模塊進行初始化時,控制模塊205生成初始化報文,並將生成的初始報文發送給內飾燈節點模塊,對內飾燈節點模塊204根據接收到的初始報文進行初始化。
控制模塊205還用於生成n個不同的分配id報文,並分發給n個內飾燈節點模塊;
控制模塊205生成分配id報文,每一個內飾燈節點模塊204均對應一個分配id報文,因此,需要分配id的內飾燈節點模塊204的數量與生成的分配id報文的數量相等,且為了保證每個內飾燈節點模塊204的id均與其他內飾燈節點模塊204的id不同,每次生成的分配id報文包括的報文id均不同於其他分配id報文包括的報文id。
每個內飾燈節點模塊204可以以一個報文id作為此內飾燈節點模塊204的id,每個報文id只能作為一個內飾燈節點模塊204的id。生成分配id報文後,生成的分配id報文的報文id作為一個內飾燈節點模塊204的id,然後再生成下一個分配id報文。
如圖7所示,為可以實現將生成的分配id報文的報文id作為一個內飾燈節點模塊204的id的一種電路結構的電路原理圖。此電路的工作原理如下:
斷開所有snpd(slavenodepositiondetection,可自動分配id的從節點)的電流源和上拉電阻,snpd即為內飾燈節點模塊204;
每一個snpd測量流過與放大器並聯的電阻rshunt的電流,記為ishunt_1;
此時三個snpd的ishunt_1相等:
snpda:ishunt_1=i1+i2
snpdb:ishunt_1=i1+i2
snpdc:ishunt_1=i1+i2
所有snpd的左側電流源閉合(支路4、6、9的開關閉合);
所有snpd再次測量電流,記為ishunt_2。由ishunt_1與ishunt_2的差值可知此節點是否是離控制模塊205物理位置最遠的節點。差值小於特定的預設標準電流值idiff時,認為是總線上最後一個(或多個)snpd,這些節點被選為預選節點;
此時三個snpd的電流情況:
snpda:
ishunt_2=i1+i2
ishunt_2-ishunt_1=0
snpdb:
ishunt_2=i1+i2+i4
ishunt_2-ishunt_1=i4
snpdc:
ishunt_2=i1+i2+i4+i6+i7
ishunt_2-ishunt_1=i4+i6+i7
例:如果idiff大於i4且小於i4+i6+i7,那麼snpda和b為預選節點。
所有非預選節點斷開左側電流源,所有預選節點閉合右側電流源(左側電流源保持閉合,所有節點上拉電阻均斷開);
所有snpd再次測量電流,記為ishunt_3。與ishunt_1作差,若差值小於特定的idiff,認為是總線上最後一個snpd的節點,此時三個snpd的電流情況:
snpda:
ishunt_3=i1+i2
ishunt_3-ishunt_1=0
snpdb:
ishunt_3=i1+i2+i3+i4
ishunt_3-ishunt_1=i3+i4
snpdc:
ishunt_3=i1+i2+i3+i4+i5+i6+i7
ishunt_3-ishunt_1=i3+i4+i5+i6+i7
此時idiff小於i3+i4,故選出snpda為總線上最後一個snpd,即真正當選第一個snpd。
此時,當選的snpd的id即為生成的分配id報文的報文id。當下一個分配id報文生成後,排除已有id的snpd,重複上述步驟,直至上述節點均完成id分配。
控制模塊205還用於生成存儲報文,並分發給所述n個內飾燈節點模塊,n個內飾燈節點模塊204還用於基於存儲報文存儲其自身的id;
當給所有內飾燈節點均分配id後,控制模塊205生成存儲報文,並將生成的存儲報文分別發送給所有的內飾燈節點模塊,每個內飾燈節點模塊204基於存儲報文存儲與其相對應的id。
控制模塊205還用於生成結束報文,並分發給所述n個內飾燈節點模塊,n個內飾燈節點模塊204還用於基於結束報文結束id分配;
存儲id完成後,控制模塊205生成結束報文,並將生成的結束報文分別發送給所有的內飾燈節點模塊,內飾燈節點模塊204基於結束報文結束id分配過程。此時,仍如圖7所示,斷開所有snpd上所有電流源,打開所有的上拉電阻。
如圖8所示,圖8左側流程為本實施例中控制模塊205生成報文的流程,圖8生成報文的各個流程都對應有報文,各個流程的報文表現形式可參見圖8右側對應的報文部分。其中,有幾個不同的內飾燈節點模塊204需要分配id,就需要重複幾次nextnad,nad值即為報文id;即重複圖8所示的流程圖中的步驟2(sid0xb5「bsmsubfunction0x02」nextnad)。一個內飾燈節點模塊需要發送一次步驟2的報文,例如需要對5個內飾燈節點模塊分配id,則報文的時序如下:
執行步驟1"sid0xb5「bsmsubfunction0x01」bsminitialization",以初始報文;
執行步驟2"sid0xb5「bsmsubfunction0x02」nextnad"5次,每次在byte7中寫入不同的新nad值;
執行步驟3"sid0xb5「bsmsubfunction0x03」storenad",以存儲nad值;
執行步驟4"sid0xb5「bsmsubfunction0x04」bsmfinished",以結束報文。
以分配nad為04,03,02的報文為例(以下數據均為16進位):
3c,7f,06,b5,ff,7f,01,02,ff,校驗和;(初始報文)
3c,7f,06,b5,ff,7f,02,02,04,校驗和;(分配id報文)
3c,7f,06,b5,ff,7f,02,02,03,校驗和;(分配id報文)
3c,7f,06,b5,ff,7f,02,02,02,校驗和;(分配id報文)
3c,7f,06,b5,ff,7f,03,02,ff,校驗和;(存儲報文)
3c,7f,06,b5,ff,7f,04,02,ff,校驗和;(結束報文)
收發裝置201用於發送整車信號至控制模塊205,控制模塊205還用於基於整車信號生成控制報文,並發送給n個內飾燈節點模塊204;
此處的收發裝置201可以為can收發器,相應的內飾燈控制裝置可採用lin總線結構。若收發裝置201為can接收器,則接收can總線傳遞的整車信號,整車信號主要由信號主要由mmi(multimediainterface,多媒體交互系統)、bcm(bodycontrolmodule,車身控制模塊)和peps(passiveentry&&passivestart,無鑰匙進入無鑰匙啟動系統)等ecu(electroniccontrolunit,電子控制單元)發出。控制模塊205接收整車信號後,基於此整車信號,生成控制報文,並將生成的控制報文發送給n個內飾燈節點模塊204。例如,接收的命令內飾燈打開並發紅光的信號,而此時檢測到內飾燈已打開但未亮紅光,則此時生成的控制報文只包括控制內飾燈亮紅光的信號。檢測內飾燈是否打開及發出的光的顏色為現有技術,在此不再贅述。值得一提的是,因內飾燈控制裝置採用lin總線結構,因此控制模塊205生成的任何報文均會被所有內飾燈節點模塊204接收。
n個內飾燈節點模塊204分別用於判斷控制報文中的id是否與其自身的id相匹配;
控制報文可用於控制某一個或幾個內飾燈,因此每個內飾燈節點模塊204需要判斷接收到的控制報文是否用於控制此內飾燈節點模塊204。具體方法可為:每一內飾燈節點模塊204的電子控制單元203讀取識別區域的值,當識別區域的值與內飾燈節點模塊204的id相同時,表示控制報文中的id與該內飾燈節點模塊204的id相匹配。
當任一內飾燈節點模塊204判斷出控制報文中的id與其自身的id相匹配時,該內飾燈節點模塊204的電子控制單元203用於基於控制報文生成led控制信號,以控制該內飾燈節點模塊內部的led模塊動作。
當任意一個內飾燈節點模塊204判斷接收到的控制報文是用於控制此內飾燈節點模塊204時,即當控制報文中的id與內飾燈節點模塊自身的id相匹配時,內飾燈節點模塊的電子控制單元203基於此控制報文生成相應的led控制信號,並根據接收到的信號控制該內飾燈節點模塊內部的led模塊動作,如控制led打開、結束id分配及變換顏色等;其中,電子控制單元203可為mlx81108晶片。
如圖6所示,為本發明在上述實施例的基礎上提供的一種內飾燈的控制系統實施例3的結構示意圖,所述系統中:
控制模塊302還用於生成驗證報文,並將驗證報文分別發送給n個內飾燈節點模塊301;
控制模塊302還用於生成如圖9所示的驗證報文,進一步驗證lin自動尋址是否成功,通過readbyidlin診斷命令獲取相應nad的id,lin2.0格式如圖9所示。
n個內飾燈節點模塊301還分別用於基於驗證報文反饋其自身的id至控制模塊302;
內飾燈節點模塊301接收到驗證報文後,將其自身的id反饋至控制模塊302,控制模塊在接收到所有內飾燈節點模塊反饋的自身的id後,即可判斷自動尋址成功。
本實施例方法所述的功能如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個計算設備可讀取存儲介質中。基於這樣的理解,本發明實施例對現有技術做出貢獻的部分或者該技術方案的部分可以以軟體產品的形式體現出來,該軟體產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算設備(可以是個人計算機,伺服器,移動計算設備或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、移動硬碟、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光碟等各種可以存儲程序代碼的介質。
本說明書中各個實施例採用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。
對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或範圍的情況下,在其它實施例中實現。因此,本發明將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。