概述隨著汽車內(nèi)電子設(shè)備的增多,市場(chǎng)上對(duì)于成本低于 CAN 的總線的需求日益強(qiáng)烈,不同的車廠相繼開發(fā)各自的串行通信(UART/SCI)協(xié)議,以在低速和對(duì)性能要求不高的場(chǎng)合取代CAN。由于不同車廠定義的協(xié)議兼容性的問(wèn)題,在 1998 年由歐洲五大車廠(BMW, Volkswagen Group, Audi Group, Volvo Cars, Mercedes-Benz)成立聯(lián)合工作組,由 Volcano Automotive Group 和 Motorola 提供技術(shù)支持,開發(fā)一種定位于車身電子領(lǐng)域傳感器(Sensors)和執(zhí)行器(Actuators)組網(wǎng)的串行通信總線,要求該總線系統(tǒng)的協(xié)議和時(shí)序控制盡可能簡(jiǎn)單,即使低端MCU沒(méi)有專用通信單元也可以實(shí)現(xiàn)基于該總線的通信。這種總線即為本文所介紹的 LIN 總線。 LIN(Local Interconnect Network)總線是在汽車內(nèi)廣泛應(yīng)用的串行通信協(xié)議,它的第一個(gè)完整版本 V1.3 發(fā)布于 2002 年,在 2016 年LIN總線被正式列為國(guó)際標(biāo)準(zhǔn)(ISO 17987)。LIN,顧名(Local)思義,指總線上所有設(shè)備基本處于相鄰的物理空間(例如車門),由LIN總線構(gòu)建的區(qū)域子系統(tǒng)(Cluster)再經(jīng)由ECU(網(wǎng)關(guān)等)接入到上層的CAN總線。 LIN適用于節(jié)點(diǎn)數(shù)目小于等于 16 個(gè),數(shù)據(jù)速率 20Kbps 以內(nèi)的應(yīng)用場(chǎng)合。通過(guò)LIN總線可以簡(jiǎn)單而快速地組網(wǎng),總線上節(jié)點(diǎn)設(shè)備分為一個(gè)主機(jī)和多個(gè)從機(jī),主機(jī)通常為接入到上層網(wǎng)絡(luò)的 ECU ,而從機(jī)為執(zhí)行器、智能傳感器或包括LIN硬件接口的開關(guān)等。主機(jī)控制LIN總線上的整個(gè)通信過(guò)程,在通信過(guò)程中從機(jī)時(shí)鐘必須與主機(jī)時(shí)鐘同步。LIN總線拓?fù)渫ǔ榫€型,即所有節(jié)電設(shè)備均通過(guò)單線連在一起。 LIN總線作為低成本的串行通信方案,適合汽車內(nèi)遠(yuǎn)距離節(jié)點(diǎn)間的低速通信,它同樣也適用于工業(yè)控制等場(chǎng)合。LIN 與 CAN 總線功能/成本互補(bǔ),綜合運(yùn)用兩者,可構(gòu)造汽車內(nèi)層次分級(jí)的網(wǎng)絡(luò)架構(gòu)。簡(jiǎn)言之,LIN總線相當(dāng)于汽車上可靠性較高的串口。 標(biāo)準(zhǔn)化?歷史沿革? 1998/10,在德國(guó)召開的汽車電子會(huì)議上 LIN 總線的設(shè)想首次提出; 另,SAE J2602 標(biāo)準(zhǔn)為基于 LIN V2.0 的美國(guó)版本。 ?標(biāo)準(zhǔn)文本?在 2016 年發(fā)布的 ISO 17987 Part 1-7 標(biāo)準(zhǔn)中,其各部分內(nèi)容如下:
LIN供應(yīng)商 ID 的分配任務(wù)已由先前的 CiA(CAN in Automation),轉(zhuǎn)由 SAE(Society of Automotive Engineers)負(fù)責(zé)管理。 ?開發(fā)流程?LIN協(xié)議不但定義總線通信的標(biāo)準(zhǔn),還定義統(tǒng)一的開發(fā)流程(Workflow)以簡(jiǎn)單快速地組建網(wǎng)絡(luò)。如圖1所示,在此開發(fā)流程中的核心組件為描述網(wǎng)絡(luò)特征的 LDF(LIN Description File),LDF定義LIN網(wǎng)絡(luò)的所有通信特征,通信主機(jī)基于LDF可以自動(dòng)生成通信過(guò)程的所有軟件組件。同時(shí),LDF可以為測(cè)試測(cè)量工具提供分析LIN網(wǎng)絡(luò)所必須的信息。 LIN Configuration Language Specification 定義了創(chuàng)建LDF的過(guò)程,創(chuàng)建語(yǔ)法相當(dāng)簡(jiǎn)單,既可以手動(dòng)或通過(guò)軟件工具自動(dòng)生成LDF。自 LIN V2.0 規(guī)范起,增補(bǔ)的節(jié)點(diǎn)統(tǒng)一描述語(yǔ)言可以清晰地說(shuō)明商用節(jié)點(diǎn)(Off-the-Shelf Nodes)設(shè)備的通信特征,通過(guò)這種 LIN Node Capability Language 描述的節(jié)點(diǎn)特征文件稱 NCF(Node Capability File),而LIN子網(wǎng)(Cluster)中所有節(jié)點(diǎn)NCF正是創(chuàng)建系統(tǒng)LDF的必要條件。 圖1. LIN 開發(fā)流程 應(yīng)用特點(diǎn)?LIN總線的特征包括:
綜上,總結(jié)出LIN總線的優(yōu)點(diǎn)如下:
在低速對(duì)帶寬要求不高的場(chǎng)合,LIN具有較高的成本優(yōu)勢(shì),是比CAN更好的替代選擇,但LIN并不能完全取代CAN總線(速度 可靠性)。一般地,LIN總線主要應(yīng)用在汽車內(nèi)對(duì)安全和整車性能影響不大的子系統(tǒng),比如車門窗控制、雨刮器、空調(diào)、座椅調(diào)整、照明燈等。圖2示例LIN總線在車頂/雨刮區(qū)域的應(yīng)用,在本應(yīng)用中 Central ECU 是主機(jī),包括車后視鏡、車門開啟器、雨/光傳感器和刮雨器四個(gè)從機(jī)。主機(jī)同時(shí)作為 Gateway 模塊接入到底盤CAN、車身CAN和診斷CAN。 圖2. LIN總線主機(jī)和從機(jī)節(jié)點(diǎn)舉例 ?通信機(jī)制?網(wǎng)絡(luò)拓?fù)?/strong>?LIN總線的拓?fù)錇閱尉€總線,總線上包括單個(gè)主機(jī)和多個(gè)從機(jī),主機(jī)包括主機(jī)任務(wù)(Master Task)和從機(jī)任務(wù)(Slave Task),從機(jī)節(jié)點(diǎn)只包括從機(jī)任務(wù),如圖3所示。 圖3. LIN總線拓?fù)鋱D 主機(jī)/從機(jī)?LIN總線是基于主從模式的通信系統(tǒng)。在LIN總線上僅允許有一個(gè)主機(jī),主機(jī)控制總線上所有通信過(guò)程,從機(jī)只有在主機(jī)許可的下才能向總線上發(fā)送消息。主機(jī)通過(guò)向總線上發(fā)送請(qǐng)求(幀頭,Frame Header),相關(guān)的從機(jī)或主機(jī)本身?yè)?jù)此幀頭發(fā)送應(yīng)答(Response),請(qǐng)求和應(yīng)答構(gòu)成LIN總線的幀(Frame),如下圖4所示。 圖4. LIN主機(jī)任務(wù) & 從機(jī)任務(wù) 在LIN總線上,主機(jī)控制子網(wǎng)內(nèi)每條消息的傳輸過(guò)程,這種總線訪問(wèn)方式稱為授權(quán)令牌(Delegated Token)。授權(quán)令牌方式的優(yōu)點(diǎn)是它可以避免消息傳輸過(guò)程的沖突競(jìng)爭(zhēng),因?yàn)橥耆芍鳈C(jī)協(xié)調(diào)控制每條消息的應(yīng)答請(qǐng)求。LIN總線主機(jī)可以根據(jù)預(yù)設(shè)好的進(jìn)度表(Schedule)規(guī)劃總線上的數(shù)據(jù)傳輸。授權(quán)令牌總線訪問(wèn)方式因此被歸類為確定性總線訪問(wèn)方式。授權(quán)令牌訪問(wèn)方式的缺點(diǎn)有兩點(diǎn):首先,如果主機(jī)失效,則整個(gè)總線通信隨即失效,因此該方式不適合安全要求高的應(yīng)用;其次,由于每次通信過(guò)程均由主機(jī)控制,該方式不適合事件驅(qū)動(dòng)型(Event-driven)通信,從機(jī)無(wú)法自動(dòng)獲取總線訪問(wèn)權(quán)以發(fā)送數(shù)據(jù)。為彌補(bǔ)這點(diǎn)缺憾,LIN協(xié)議中增補(bǔ)額外的幀類型可以不按授權(quán)令牌方式發(fā)送消息。LIN總線共有四種幀類型:無(wú)條件幀、事件觸發(fā)幀、偶發(fā)幀和診斷幀。 主機(jī)任務(wù)包括:
從機(jī)任務(wù)包括:
?通信調(diào)度?由于沒(méi)有通信控制器,LIN總線協(xié)議在微控制器以軟件組件形式實(shí)現(xiàn)的。主機(jī)和從機(jī)分別對(duì)應(yīng)主機(jī)任務(wù)和從機(jī)任務(wù),以實(shí)現(xiàn)總線通信的過(guò)程。簡(jiǎn)言之,總線上所有節(jié)點(diǎn)均包括接受和發(fā)送消息的從機(jī)任務(wù),而主機(jī)則包括額外的主機(jī)任務(wù)來(lái)協(xié)調(diào)總線上消息發(fā)送和總線訪問(wèn)權(quán)限。 在總線開始工作時(shí),主機(jī)隨即啟動(dòng)主機(jī)任務(wù),周期性地執(zhí)行進(jìn)度表(Schedule)規(guī)定的消息發(fā)送程序。表1示意LIN總線進(jìn)度表的內(nèi)容,在進(jìn)度表中包括各項(xiàng)進(jìn)程的消息 PID(Message Header)和啟動(dòng)時(shí)間。從機(jī)任務(wù)是總線上的節(jié)點(diǎn)根據(jù) LDF 定義的特性,響應(yīng)幀頭規(guī)定的任務(wù),任務(wù)包括發(fā)送應(yīng)答、接收應(yīng)答或忽略應(yīng)答。 表1. LIN總線進(jìn)度表 在消息調(diào)度中,協(xié)議為單條消息定義 Slot 的概念,Slot持續(xù)的時(shí)間必須大于幀頭(Frame Header)和消息應(yīng)答(Response)的時(shí)間以保證消息傳送完畢。單個(gè)幀總是在同一個(gè)Slot內(nèi)傳輸完的??紤]到收發(fā)器性能的影響,LIN協(xié)議規(guī)定單個(gè)消息傳輸時(shí)間有 40% 裕量,即幀的最小持續(xù)時(shí)間為其典型持續(xù)時(shí)間的 1.4 倍,如圖5所示。 幀結(jié)構(gòu)?如前文所述,LIN總線的幀包括幀頭和應(yīng)答兩部分。主機(jī)任務(wù)負(fù)責(zé)發(fā)送幀頭;從機(jī)任務(wù)接收幀頭并對(duì)幀頭所包含信息進(jìn)行解析,而后決定是發(fā)送應(yīng)答,還是接收應(yīng)答,或不作任何反應(yīng)。幀頭包括同步間隔段、同步段以及受保護(hù)ID(PID, Protected Identifier)段;應(yīng)答段包括數(shù)據(jù)段和校驗(yàn)和(Checksum)段。圖6示意LIN總線的幀結(jié)構(gòu)。 幀頭?同步間隔段(Sync Break Field)由同步間隔(Sync Break, tSYNBRK)和同步間隔段間隔符(Break Delimiter, tDEL)構(gòu)成,如圖7所示。同步間隔是至少持續(xù) 13 位(以主機(jī)節(jié)點(diǎn)的位速率為準(zhǔn))的顯性(低)電平,由于幀中的所有間隔或總線空閑時(shí)都應(yīng)保持隱性(高)電平,并且?guī)械娜魏纹渌侄味疾粫?huì)發(fā)出大于 9 位的顯性電平,因此同步間隔可以標(biāo)志一個(gè)幀的開始。同步間隔段的間隔符是至少持續(xù) 1 位的隱性電平。從機(jī)任務(wù)接收幀頭的同步間隔段時(shí),以該從機(jī)任務(wù)所在節(jié)點(diǎn)的位速率為準(zhǔn),當(dāng)檢測(cè)總線上出現(xiàn)持續(xù) 11 位的顯性電平時(shí),認(rèn)為是幀的開始。當(dāng)從機(jī)節(jié)點(diǎn)使用精度較高的時(shí)鐘時(shí),識(shí)別閾值可以選擇 9.5 位。 在介紹同步段(Sync Field)之前,先介紹一下字節(jié)域(Byte Field)的概念,字節(jié)域共 10 位,包括 1 位起始位(Start Bit,顯性) 8 位數(shù)據(jù)位 1 位停止位(Stop Bit,隱性),它是一種標(biāo)準(zhǔn) UART 數(shù)據(jù)傳輸格式,如圖8左所示。在LIN 幀中, 除了同步間隔段,后面的各段都是通過(guò)字節(jié)域的格式傳輸?shù)?。?LIN 幀中,數(shù)據(jù)傳輸都是先發(fā)送 LSB(Least Significant Bit,最低有效位),最后發(fā)送 MSB(Most Significant Bit,最高有效位)。 LIN 同步段以下降沿為判斷標(biāo)志,采用字節(jié) 0x55(二進(jìn)制: 01010101b)。同步段的字節(jié)域如圖8右所示。從機(jī)節(jié)點(diǎn)可以不采用精度高的時(shí)鐘,而采用片上振蕩器等精度和成本相對(duì)較低的時(shí)鐘,由此帶來(lái)的與主機(jī)節(jié)點(diǎn)時(shí)鐘產(chǎn)生的偏差,需要通過(guò)同步段進(jìn)行調(diào)整,調(diào)整的結(jié)果是使從機(jī)節(jié)點(diǎn)數(shù)據(jù)的位速率與主機(jī)節(jié)點(diǎn)一致。同步段用于同步的基準(zhǔn)時(shí)鐘為主機(jī)節(jié)點(diǎn)的時(shí)鐘。從機(jī)節(jié)點(diǎn)通過(guò)接收主機(jī)節(jié)點(diǎn)發(fā)出的同步段,計(jì)算出主機(jī)節(jié)點(diǎn)位速率,根據(jù)計(jì)算結(jié)果對(duì)自身的位速率重新作調(diào)整。主機(jī)節(jié)點(diǎn)的位速率由同步段的第一個(gè)和最后一個(gè)下降沿的時(shí)間差除以 8 計(jì)算得出。 圖8. 字節(jié)域的概念及LIN幀的同步段 緊接著同步段的是受保護(hù)ID(PID, Protected Identifier)段,PID的前 6 位稱為幀 ID ,它依據(jù)節(jié)點(diǎn) LDF 生成,標(biāo)識(shí)幀的類別和目的地,從機(jī)任務(wù)對(duì)于幀頭作出的反應(yīng)(接收/發(fā)送/忽略應(yīng)答)都是基于幀 ID 判斷的。如果幀 ID 傳輸錯(cuò)誤,將會(huì)導(dǎo)致信號(hào)無(wú)法正確到達(dá)目的地,幀 ID 相當(dāng)重要,因此對(duì)其引入 2 位奇偶校驗(yàn),由6位幀ID和2位奇偶校驗(yàn)組成受PID段。 幀ID的范圍為0 ~ 63,根據(jù)幀ID不同將幀分類如下:
PID的奇偶校驗(yàn)位的產(chǎn)生規(guī)則為:
由公式可以看出, PID 不會(huì)出現(xiàn)全 0 或全 1 的情況,因此,如果從機(jī)節(jié)點(diǎn)收到了 “0xFF” 或 “0x00” ,可判斷為傳輸錯(cuò)誤。 ?應(yīng)答?節(jié)點(diǎn)發(fā)送的數(shù)據(jù)位于數(shù)據(jù)段(Data Field),包含 1 ~ 8 個(gè)字節(jié),先發(fā)送編號(hào)最低的字節(jié) DATA1,編號(hào)依次增加。數(shù)據(jù)段包含了兩種數(shù)據(jù)類型,信號(hào)(Signal)和診斷消息(Diagnostic messages)。 信號(hào)(Signal)由信號(hào)攜帶幀傳遞,一個(gè)幀 ID 對(duì)應(yīng)的數(shù)據(jù)段可能包含一個(gè)或多個(gè)信號(hào)。信號(hào)更新時(shí)要保證其完整性,不能只更新一部分。一個(gè)信號(hào)通常由一個(gè)固定的節(jié)點(diǎn)發(fā)出,此節(jié)點(diǎn)稱為該信號(hào)的發(fā)布節(jié)點(diǎn)(Publisher); 其余的一個(gè)或多個(gè)節(jié)點(diǎn)接收,它們稱為信號(hào)的收聽節(jié)點(diǎn)(Subscriber)。 診斷消息(Diagnostic message)由診斷幀傳遞,對(duì)消息內(nèi)容的解析由數(shù)據(jù)自身和節(jié)點(diǎn)狀態(tài)決定。 注意:
圖9. LIN總線幀應(yīng)答 校驗(yàn)和(Checksum)段是對(duì)幀中所傳輸?shù)膬?nèi)容進(jìn)行校驗(yàn),校驗(yàn)和分為標(biāo)準(zhǔn)型校驗(yàn)和(Classic Checksum)及增強(qiáng)型校驗(yàn)和(Enhanced Checksum)。采用標(biāo)準(zhǔn)型校驗(yàn)和還是增強(qiáng)型校驗(yàn)和由主機(jī)節(jié)點(diǎn)管理,發(fā)布節(jié)點(diǎn)和各收聽節(jié)點(diǎn)根據(jù)幀 ID 來(lái)判斷采用哪種校驗(yàn)和。標(biāo)準(zhǔn)校驗(yàn)和只保護(hù)數(shù)據(jù)段,增強(qiáng)型校驗(yàn)和同時(shí)保護(hù)數(shù)據(jù)段和幀ID段。LIN 1.X 的節(jié)點(diǎn)只支持標(biāo)準(zhǔn)型校驗(yàn)和,LIN 2.X開始支持增強(qiáng)型校驗(yàn)和。另外,幀ID為 60/61 的診斷幀亦只支持標(biāo)準(zhǔn)校驗(yàn)和。 圖10. LIN總線幀的校驗(yàn)和 幀傳輸時(shí)間?LIN總線的幀由幀頭和應(yīng)答組成,其中幀頭包括同步段、幀ID段和兩位奇偶校驗(yàn),應(yīng)答的數(shù)據(jù)段最長(zhǎng)8 Byte,如圖11所示。LIN的信息傳輸是基于 SCI 接口的,每個(gè)字節(jié)域包括 8 bit 數(shù)據(jù)、1 bit 起始位和 1 bit停止位。若同步間隔段是 13 bit 顯性位 1 bit 隱性位,則幀頭計(jì) 34 bit;應(yīng)答包括數(shù)據(jù)段和校驗(yàn)和段,根據(jù)數(shù)據(jù)段長(zhǎng)度的不同,應(yīng)答最短為 20 bit(數(shù)據(jù)段 1 Byte),應(yīng)答最長(zhǎng)為 90 bit(數(shù)據(jù)段 8 Byte)。綜上,LIN總線的幀最長(zhǎng)為 124 bit(數(shù)據(jù)段 8 Byte),最短為 54 bit(數(shù)據(jù)段 1 Byte)。幀的額定傳輸時(shí)間計(jì)算公式如下:
圖11. LIN總線幀的額定傳輸時(shí)間 LIN協(xié)議規(guī)定幀的最大傳輸時(shí)間為額定傳輸時(shí)間的 1.4 倍,即為幀傳輸預(yù)留 40% 的裕量。該特性是考慮到總線上節(jié)點(diǎn)設(shè)備性能參差不齊,允許節(jié)點(diǎn)不必收到指令后立即執(zhí)行。也就是說(shuō),協(xié)議允許節(jié)點(diǎn)推遲下一個(gè) UART 字符的發(fā)送,但推遲的總時(shí)間不能超出額定值的40%。延遲時(shí)間包括兩類:Interbyte Space 和 Response Space。它們?cè)趲械奈恢萌鐖D12所示。幀的最大傳輸時(shí)間計(jì)算公式如下: ?圖12. LIN總線幀的最大傳輸時(shí)間 綜上,在設(shè)置總線進(jìn)度表(圖5)時(shí),需要考慮到幀傳輸時(shí)間的因素,確保每個(gè)步驟都有足夠的時(shí)間裕量。 ?幀信號(hào)波形?圖13為使用 Tektronix 示波器 捕獲LIN總線幀信號(hào)波形的示例,更多調(diào)試手段見(jiàn)鏈接。 圖13. LIN總線的幀波形舉例 幀種類?LIN總線上數(shù)據(jù)傳輸包括 4 種不同的幀,分別為無(wú)條件幀、事件觸發(fā)幀、偶發(fā)幀、診斷幀(保留幀咱就保留不提了……)。 ?無(wú)條件幀?幀ID 0 ~ 59。無(wú)條件幀(Unconditional Frame)是具有單一發(fā)布節(jié)點(diǎn),無(wú)論信號(hào)是否發(fā)生變化,幀頭都被無(wú)條件應(yīng)答的幀。無(wú)條件幀在主機(jī)任務(wù)分配給它的固定的幀時(shí)隙中傳輸??偩€上一旦有幀頭發(fā)送出去,必須有從機(jī)任務(wù)作應(yīng)答(即無(wú)條件發(fā)送應(yīng)答)。 ?事件觸發(fā)幀?幀ID 0 ~ 59。事件觸發(fā)幀(Event-triggered Frame)是主機(jī)節(jié)點(diǎn)在一個(gè)幀時(shí)隙中查詢各從機(jī)節(jié)點(diǎn)的信號(hào)是否發(fā)生變化(事件)時(shí)使用的幀,當(dāng)存在多個(gè)發(fā)布節(jié)點(diǎn)時(shí),通過(guò)沖突解決進(jìn)度表(Collision Resolving Schedule)來(lái)解決沖突。當(dāng)從機(jī)節(jié)點(diǎn)信號(hào)發(fā)生變化的頻率較低時(shí),主機(jī)任務(wù)一次次地輪詢各個(gè)信號(hào)會(huì)占用一定的帶寬。為了減小帶寬的占用,引入了事件觸發(fā)幀的概念。同一個(gè) PID 的事件觸發(fā)幀進(jìn)和無(wú)條件幀對(duì)應(yīng)的第一個(gè)字節(jié)數(shù)據(jù)是相同的,從機(jī)只有在自身數(shù)據(jù)變化時(shí)才發(fā)送應(yīng)答,當(dāng)總線上沒(méi)有任何從機(jī)應(yīng)答時(shí),該幀的應(yīng)答部分為空。如果總線上有超過(guò)一個(gè)從機(jī)應(yīng)答,則發(fā)生沖突,主機(jī)則通過(guò)發(fā)送無(wú)條件幀輪詢所有從機(jī),解決沖突的問(wèn)題。 圖14示例事件觸發(fā)幀的進(jìn)度表。圖上半部分表示無(wú)沖突時(shí)的情況,主機(jī)發(fā)送事件觸發(fā)幀,只有從機(jī) 1 信號(hào)發(fā)生變化,因此在總線上發(fā)送應(yīng)答(Event A);圖下半部分表示有沖突時(shí)的情況,主機(jī)發(fā)送事件觸發(fā)幀,從機(jī) 2 和從機(jī) 4 信號(hào)都發(fā)生變化,因此都向總線上發(fā)送應(yīng)答,從而產(chǎn)生沖突,這時(shí)候主機(jī)執(zhí)行沖突解決進(jìn)度表,通過(guò)發(fā)送無(wú)條件幀輪詢所有從機(jī),從而依次讀取從機(jī) 2 的 Event B 和從機(jī) 4 的 Event D。 圖14. 事件觸發(fā)幀 事件觸發(fā)幀的典型應(yīng)用就是輪詢四個(gè)車門的開關(guān)情況。與其利用無(wú)條件幀每個(gè)車門輪詢一遍,不如同時(shí)對(duì)四個(gè)車門進(jìn)行詢問(wèn),如果其中一個(gè)車門打開(事件發(fā)生),該車門要對(duì)詢問(wèn)作應(yīng)答,即事件觸發(fā)。這樣做可以減小帶寬,但同時(shí)會(huì)導(dǎo)致兩種現(xiàn)象,其一就是沒(méi)有車門被打開,即無(wú)節(jié)點(diǎn)應(yīng)答——事件觸發(fā)幀允許一幀中只有幀頭無(wú)應(yīng)答;另外一種情況就是沖突,即同時(shí)有大于等于兩個(gè)車門被打開,對(duì)于同時(shí)應(yīng)答的問(wèn)題——事件觸發(fā)幀允許兩個(gè)以上的節(jié)點(diǎn)對(duì)幀頭作應(yīng)答而不視為錯(cuò)誤。當(dāng)發(fā)生沖突時(shí),主機(jī)節(jié)點(diǎn)重新輪詢,這樣會(huì)增加一些響應(yīng)時(shí)間,但由于事件觸發(fā)幀本身就用來(lái)處理低概率事件,總的來(lái)說(shuō)還是節(jié)省了帶寬。 ?偶發(fā)幀?幀ID 0 ~ 59。偶發(fā)幀(Sporadic Frame)是主機(jī)節(jié)點(diǎn)在同一幀時(shí)隙中當(dāng)自身信號(hào)發(fā)生變化時(shí)向總線啟動(dòng)發(fā)送的幀。當(dāng)存在多個(gè)關(guān)聯(lián)的應(yīng)答信號(hào)變化時(shí),通過(guò)事先設(shè)定的優(yōu)先級(jí)來(lái)仲裁。偶發(fā)幀主要用于主機(jī)發(fā)送不經(jīng)常變化的信息,可以理解為主機(jī)用的事件觸發(fā)幀。與事件觸發(fā)幀一樣,偶發(fā)幀的應(yīng)答也關(guān)聯(lián)了一組無(wú)條件幀。 偶發(fā)幀的傳輸可能出現(xiàn) 3 種狀況:
引入偶發(fā)幀和事件觸發(fā)幀是為了讓LIN總線的通信機(jī)制更加靈活,只在信號(hào)變化或未變化時(shí)傳輸消息可有效提高總線的通信效率。 圖15. 偶發(fā)幀 診斷幀?診斷幀包括主機(jī)請(qǐng)求幀和從機(jī)應(yīng)答幀,主要用于配置、識(shí)別和診斷。診斷基于 ISO 15765-2 傳輸標(biāo)準(zhǔn)和 ISO 14229 UDS (Uniform Diagnostic Services)標(biāo)準(zhǔn)。主機(jī)請(qǐng)求幀的幀 ID = 0x3C,應(yīng)答部分的發(fā)布節(jié)點(diǎn)為主機(jī)節(jié)點(diǎn),一般用于診斷請(qǐng)求或配置從機(jī);從機(jī)應(yīng)答幀的幀 ID = 0x3D, 應(yīng)答部分的發(fā)布節(jié)點(diǎn)為從機(jī)節(jié)點(diǎn),一般為診斷應(yīng)答。數(shù)據(jù)段規(guī)定為 8 個(gè)字節(jié),一律采用標(biāo)準(zhǔn)型校驗(yàn)和。診斷幀的幀頭和應(yīng)答方向如圖16所示。 圖16. 診斷幀 狀態(tài)管理?LIN總線的狀態(tài)管理主要指網(wǎng)絡(luò)的休眠和喚醒。協(xié)議規(guī)定從機(jī) 4 種狀態(tài):關(guān)機(jī)、初始化、運(yùn)行和休眠。各個(gè)狀態(tài)的切換關(guān)系如圖17所示,在系統(tǒng)上電時(shí)從機(jī)在 100ms 以內(nèi)完成初始化,隨后從機(jī)自行進(jìn)入運(yùn)行狀態(tài)。主機(jī)可以通過(guò)主機(jī)請(qǐng)求幀(幀ID = 0x3C)的 Go-to-Sleep 命令從機(jī)進(jìn)入休眠狀態(tài)(DAT0 = 0x00, DAT1-7 = 0xFF)。從機(jī)也可以在總線上沒(méi)有活動(dòng)后的 4 ~ 10s 內(nèi)進(jìn)入休眠狀態(tài)。 圖17. LIN總線狀態(tài)機(jī) 主機(jī)和從機(jī)都可以喚醒整個(gè)網(wǎng)絡(luò),喚醒為持續(xù)時(shí)間 250us ~ 5ms 的顯性信號(hào),所有節(jié)點(diǎn)在檢測(cè)到喚醒信號(hào)后旋即退出休眠狀態(tài),進(jìn)行初始化,最長(zhǎng)在 100ms 后進(jìn)入運(yùn)行狀態(tài)。如果節(jié)點(diǎn)發(fā)送出喚醒信號(hào)后,在 150 ~ 250ms 內(nèi)沒(méi)有接收到總線上的任何命令(幀頭),則可以重新發(fā)送一次喚醒。喚醒信號(hào)最多可以發(fā)送 3 次, 3 次之后,必須等待至少 1.5s 之后才可以再次發(fā)送喚醒。圖18示意LIN總線的喚醒流程。 圖18. LIN喚醒流程 硬件電路?供電 & 信號(hào)電平?LIN總線要求所有節(jié)點(diǎn)的信號(hào)電壓相同,信號(hào)電壓參考收發(fā)器供電電壓 VSUP,低于VSUP的 40% 視為顯性電平(Dominant),即為“0”,高于VSUP的 60% 視為隱性電平(Recessive),即為“1”。此處顯性/隱性的含義與 CAN 總線的定義相同,即總線上實(shí)行“線與”邏輯:當(dāng)總線上有大于等于一個(gè)節(jié)點(diǎn)發(fā)送顯性電平時(shí),總線呈顯性電平;所有的節(jié)點(diǎn)都發(fā)送隱性電平或不發(fā)送信息(發(fā)送任何信息時(shí)總線默認(rèn)呈隱性電平)時(shí),總線才呈現(xiàn)隱性電平,即顯性電平起主導(dǎo)作用。 考慮到傳輸線路上的壓降,LIN協(xié)議要求驅(qū)動(dòng)器的低電平要低于VSUP的 20% ,高電平要高于VSUP的 80% ,以保證接收器在判斷高低電平時(shí)有足夠裕量。 圖19. LIN總線電平 VSUP 指總線收發(fā)器的電源電壓,注意它并不等同于蓄電池電壓(VBAT)??紤]將電池引入到ECU單元在電源濾波(二極管等)電路上的壓降,VSUP要低于電池電壓VBAT,如圖20所示。 圖20. 外部供電VBAT和內(nèi)部供電VSUP的區(qū)別 收發(fā)器?LIN總線收發(fā)器本質(zhì)上是個(gè)雙向工作的電平轉(zhuǎn)換器,LIN 規(guī)范要求總線收發(fā)器要能承受 ±11.5% 的電源波動(dòng)和參考點(diǎn)電平波動(dòng),并且能承受電源和參考點(diǎn)之間 8% 的電位差波動(dòng)。在要求不高的場(chǎng)合,可采用簡(jiǎn)單的收發(fā)器電路如圖21所示。 圖21. 簡(jiǎn)易的 LIN 收發(fā)器電路 端接電阻?為實(shí)現(xiàn)“線與”特性,LIN協(xié)議規(guī)定了主機(jī)和從機(jī)節(jié)點(diǎn)的端接電阻,端接電阻一端連LIN總線,另一端通過(guò)串接二極管。主機(jī)端接電阻 1K(范圍:0.9 ~ 1.1K),從機(jī)端接電阻 30K(范圍:20 ~ 60K)。如圖22所示,圖中串接二極管是必須的,當(dāng)ECU電源斷路時(shí),它可以防止LIN總線上電源倒灌。 圖22. LIN總線端接電阻 LIN所有節(jié)點(diǎn)并聯(lián)在一起,構(gòu)成圖23所示的等效電路。其中,總線負(fù)載電阻等于各節(jié)點(diǎn)端接電阻的 并聯(lián)等效電阻,總線負(fù)載電容等于各節(jié)點(diǎn)輸入電容和總線分布電容的并聯(lián)等效電容??偩€電阻決定了總線收發(fā)器驅(qū)動(dòng)級(jí)的功率和通信期間的功耗;總線電容可以吸收周圍環(huán)境的噪聲干擾。總線電阻和總線電容構(gòu)成的 RC 濾波器還有助于控制壓擺率。 為確保最惡劣情況下正常通信的需要, LIN 規(guī)范除了限制節(jié)點(diǎn)的端接電阻、電容和時(shí)間常數(shù)。協(xié)議規(guī)定主機(jī)/從機(jī)端接電容典型值為 220pF ,根據(jù)具體應(yīng)用調(diào)整主機(jī)/從機(jī)端接電容滿足 EME/EMI 性能,從機(jī)端接電容可調(diào)范圍不大,主要通過(guò)調(diào)整主機(jī)電容實(shí)現(xiàn)。有的 收發(fā)器 規(guī)定主機(jī) 1nF,從機(jī) 220pF,具體參考收發(fā)器應(yīng)用手冊(cè)。協(xié)議還規(guī)定 LIN 總線長(zhǎng)度不超過(guò) 40 米,一個(gè) LIN 網(wǎng)絡(luò)的最大節(jié)點(diǎn)數(shù)目不超過(guò) 16。由于端接電阻連接著電源和 LIN 總線,當(dāng)出現(xiàn) LIN 總線對(duì)地短路時(shí),如果不采取保護(hù)措施,會(huì)有較大的電流流過(guò)端接電阻,產(chǎn)生顯著的功耗。 圖23. 總線等效電路 比較? 本章列舉LIN與市場(chǎng)上常見(jiàn)的其它通信總線 CAN、UART 和 I2C 的特性對(duì)比,如下表2所示。 表2. LIN與其它通信總線的特性比較 參考資料?
Post Views:
3,141
|
|