《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 用于汽車網(wǎng)絡(luò)的LIN協(xié)議分析[圖]
用于汽車網(wǎng)絡(luò)的LIN協(xié)議分析[圖]
C114
C114
摘要: 用于汽車網(wǎng)絡(luò)的LIN協(xié)議分析[圖],LIN協(xié)議適用于汽車內(nèi)進(jìn)行低成本、短距離、低速網(wǎng)絡(luò)通信,其用途是傳輸開關(guān)設(shè)置狀態(tài)以及對(duì)開關(guān)變化響應(yīng)。
關(guān)鍵詞: LIN協(xié)議 I2C總線 RS232
Abstract:
Key words :
 

LIN協(xié)議適用于汽車內(nèi)進(jìn)行低成本、短距離、低速網(wǎng)絡(luò)通信,其用途是傳輸開關(guān)設(shè)置狀態(tài)以及對(duì)開關(guān)變化響應(yīng)。本文詳細(xì)分析了LIN總線協(xié)議的特性、消息協(xié)議的組成、檢錯(cuò)機(jī)制等,并介紹如何基于PICmicro器件來(lái)實(shí)現(xiàn)LIN總線從節(jié)點(diǎn)。

LIN協(xié)議是由歐洲車輛制造商協(xié)會(huì)開發(fā)用來(lái)進(jìn)行低成本、短距離、低速網(wǎng)絡(luò)通信,其用途是傳輸開關(guān)設(shè)置狀態(tài)以及對(duì)開關(guān)變化響應(yīng),因此通信事件是在百毫秒以上時(shí)間內(nèi)發(fā)生,而不像引擎管理等其它速度快得多的汽車應(yīng)用。此協(xié)議支持在單根線上進(jìn)行雙向通信,使用由RC振蕩器驅(qū)動(dòng)的低成本微控制器,這樣可以省去晶振或陶瓷振蕩器的成本。另外,此協(xié)議實(shí)際上是以時(shí)間和軟件上的代價(jià)換取硬件上成本的節(jié)約。LIN協(xié)議的每一條消息都包含自動(dòng)波特率步進(jìn)的數(shù)據(jù),最高可以支持波特率為20k,同時(shí)低功耗睡眠模式可以關(guān)斷總線,以避免產(chǎn)生不必要的功耗。總線可以由任意一個(gè)節(jié)點(diǎn)提供電源。

LIN總線特性

LIN總線融合了I2C和RS232的特性:像I2C總線那樣,LIN總線通過一個(gè)電阻上拉到高電平,而每一個(gè)節(jié)點(diǎn)又都可以通過集電極開路驅(qū)動(dòng)器將總線拉低;像RS232那樣通過起始位和停止位標(biāo)識(shí)出每一個(gè)字節(jié),每一位在時(shí)鐘上異步傳輸。

用于汽車網(wǎng)絡(luò)的LIN協(xié)議分析

圖1給出了典型的LIN協(xié)議配置。當(dāng)任意一個(gè)節(jié)點(diǎn)將總線拉低時(shí),總線處于低電平,標(biāo)識(shí)著總線進(jìn)入占用狀態(tài);而當(dāng)所有節(jié)點(diǎn)都使總線浮空時(shí)總線處于電池的電壓(9-18V),則意味著總線處于非占用狀態(tài)(Recessive state);在空閑狀態(tài)下浮空的總線通過電阻被上拉到高電平。

總線工作在9到18伏的電壓下,但所有連接到總線上的器件必須能承受40V的電壓。一般情況下,微控制器通過線路驅(qū)動(dòng)器或接收器與總線隔離。總線在每一個(gè)節(jié)點(diǎn)上被端接到Vbat,主節(jié)點(diǎn)通過一個(gè)1kΩ的電阻端接而從節(jié)點(diǎn)則通過一個(gè)20kΩ到47kΩ的電阻端接。總線最大長(zhǎng)度為40米。

總線上傳輸?shù)拿恳粋€(gè)字節(jié)都是與起始位和停止位一起組成幀。起始位的狀態(tài)與空閑狀態(tài)相反(即為0),而停止位則與空閑狀態(tài)同為1。在每個(gè)字節(jié)中,首先傳輸?shù)氖亲畹陀行弧?/p>

消息協(xié)議

主節(jié)點(diǎn)控制總線的方式是輪詢各個(gè)從節(jié)點(diǎn)并與總線上其余部分共享從節(jié)點(diǎn)的數(shù)據(jù)。從節(jié)點(diǎn)僅在接到主節(jié)點(diǎn)的命令時(shí)才進(jìn)行數(shù)據(jù)傳輸,這樣就可以進(jìn)行雙向傳輸并且無(wú)需進(jìn)一步的仲裁。消息傳輸是以主節(jié)點(diǎn)發(fā)出一次同步中斷開始,緊接著是消息的同步字段和消息字段。通過在每條消息的起始處傳送的同步字段還設(shè)定了整個(gè)總線的時(shí)鐘,每個(gè)從節(jié)點(diǎn)用該字節(jié)來(lái)調(diào)整其波特率。

同步中斷使總線進(jìn)入占用狀態(tài),該狀態(tài)保持時(shí)間為13位數(shù)據(jù)的傳輸時(shí)間,緊接著是一個(gè)停止位(非占用狀態(tài)),這告知從節(jié)點(diǎn)即將有消息傳輸。主節(jié)點(diǎn)與從節(jié)點(diǎn)的時(shí)鐘漂移最大允許在15%,因此從節(jié)點(diǎn)接收的同步中斷可能只有11位或長(zhǎng)達(dá)15位數(shù)據(jù)位的傳輸時(shí)間。

每一條消息的第二個(gè)字節(jié)是標(biāo)示字節(jié),用來(lái)告知總線在該字節(jié)后面?zhèn)鬏數(shù)氖鞘裁磾?shù)據(jù)和哪一個(gè)節(jié)點(diǎn)應(yīng)該應(yīng)答,以及應(yīng)答的長(zhǎng)度(標(biāo)示字段如圖2所示)。一條命令僅會(huì)有一個(gè)從節(jié)點(diǎn)對(duì)其進(jìn)行響應(yīng),從節(jié)點(diǎn)僅在主節(jié)點(diǎn)的指示下才發(fā)送數(shù)據(jù)。數(shù)據(jù)只要出現(xiàn)在總線上,每一個(gè)節(jié)點(diǎn)都可以接收到。因此,無(wú)須主節(jié)點(diǎn)專門控制從節(jié)點(diǎn)之間的通信。

用于汽車網(wǎng)絡(luò)的LIN協(xié)議分析

由于設(shè)計(jì)中采用廉價(jià)的RC振蕩器,從節(jié)點(diǎn)必須在每一次傳輸時(shí)檢測(cè)主節(jié)點(diǎn)的波特率并調(diào)整其自身當(dāng)前的波特率。因此,每一次通信都由一個(gè)由交替的“0”和“1”組成的同步字節(jié)開始。標(biāo)識(shí)字段緊跟在同步字段的后面,它告知總線后面?zhèn)鬏數(shù)膬?nèi)容是什么。標(biāo)識(shí)字段又分為三個(gè)子字段,最低4位(0-3位)是尋址總線上的器件,中間兩位(4-5位)是后面?zhèn)鬏數(shù)南⒌拈L(zhǎng)度,最高兩位(6-7)用作奇偶校驗(yàn)位。

除了睡眠命令,LIN協(xié)議并沒有定義每一條消息的內(nèi)容。其它命令是由具體應(yīng)用來(lái)定義的。

檢錯(cuò)機(jī)制

下面描述的錯(cuò)誤必須被檢測(cè)出,并且在每個(gè)節(jié)點(diǎn)內(nèi)進(jìn)行計(jì)數(shù)。

位錯(cuò)誤-傳輸節(jié)點(diǎn)必須將它認(rèn)為應(yīng)該傳輸?shù)臄?shù)據(jù)位與總線上實(shí)際出現(xiàn)的數(shù)據(jù)位進(jìn)行比較。由于總線需要響應(yīng)時(shí)間,控制器必須在檢測(cè)數(shù)據(jù)位之前等待足夠長(zhǎng)的時(shí)間。假設(shè)最小的電壓翻轉(zhuǎn)速率為1V/μs,而總線最高電壓為18V,則發(fā)送器必須等待18μs才能檢測(cè)總線上的數(shù)據(jù)位是否正確。

校驗(yàn)和錯(cuò)誤-每一條消息的內(nèi)容都是由校驗(yàn)和字節(jié)進(jìn)行保護(hù)。

奇偶校驗(yàn)錯(cuò)-命令字節(jié)的6個(gè)數(shù)據(jù)位由兩個(gè)奇偶校驗(yàn)位進(jìn)行保護(hù),需要重新進(jìn)行計(jì)算這些位并比較。如果錯(cuò)誤出現(xiàn),應(yīng)當(dāng)忽略當(dāng)前命令并且記錄下錯(cuò)誤。LIN協(xié)議中沒有直接的錯(cuò)誤報(bào)告機(jī)制,但每一個(gè)從節(jié)點(diǎn)應(yīng)當(dāng)跟蹤其自身的錯(cuò)誤,主節(jié)點(diǎn)可以要求從節(jié)點(diǎn)將錯(cuò)誤狀態(tài)作為正常消息協(xié)議的一部分來(lái)傳輸。

LIN總線與CAN總線

LIN協(xié)議并不直接與CAN總線兼容,但人們期望兩者進(jìn)行相互操作。CAN總線可能用在整個(gè)汽車內(nèi)來(lái)實(shí)現(xiàn)通信,而LIN總線僅用在汽車的局部電路內(nèi),如車門。為了連接兩種總線,需要采用CAN-LIN協(xié)議接口節(jié)點(diǎn),該節(jié)點(diǎn)從LIN總線節(jié)點(diǎn)收集信息然后傳送到CAN總線上。

低功耗睡眠模式

主節(jié)點(diǎn)通過發(fā)送標(biāo)識(shí)碼0x80指示所有節(jié)點(diǎn)進(jìn)入睡眠模式,睡眠命令后面跟隨的數(shù)據(jù)字節(jié)的內(nèi)容沒有定義。收到睡眠命令的從節(jié)點(diǎn)應(yīng)當(dāng)對(duì)本身進(jìn)行設(shè)置,以便當(dāng)總線發(fā)生改變時(shí)能喚醒,并關(guān)閉自身的電壓以使電流消耗最低。當(dāng)處于睡眠模式時(shí)總線將處于高電平并且不消耗電流。

任意一個(gè)節(jié)點(diǎn)都可以通過發(fā)送喚醒信號(hào)來(lái)喚醒總線。當(dāng)收到喚醒信號(hào)后,一般情況下所有的節(jié)點(diǎn)應(yīng)當(dāng)激活并等待主節(jié)點(diǎn)開始總線輪詢。

硬件示例

用于汽車網(wǎng)絡(luò)的LIN協(xié)議分析

圖3給出了有兩個(gè)按鈕和三個(gè)LED組成的硬件示例。每按動(dòng)十下按鈕1 LED1改變一次狀態(tài)。同樣,每按動(dòng)十下按鈕2,LED2改變一次狀態(tài)。作為標(biāo)識(shí)為ID1的響應(yīng),按鈕的按動(dòng)次數(shù)被傳送到總線上。作為標(biāo)識(shí)為ID4的響應(yīng),按鈕的按動(dòng)次數(shù)的刷新被傳送到總線上。

軟件操作

LIN協(xié)議程序工作在由RB0觸發(fā)的中斷下以實(shí)現(xiàn)總線的睡眠/喚醒。在觸發(fā)中斷時(shí),程序?qū)Φ碗娖綌?shù)據(jù)位的長(zhǎng)度進(jìn)行計(jì)數(shù),然后讀同步字節(jié)并確定數(shù)據(jù)位時(shí)間,最后再將其與最初的數(shù)據(jù)位時(shí)間進(jìn)行比較,以確定最初的低電平時(shí)間是否大于10個(gè)數(shù)據(jù)位的時(shí)間,大于10為同步中斷,小于10為喚醒信號(hào)。如果是喚醒信號(hào),程序退出并繼續(xù)等待同步中斷;如果是同步中斷,程序就讀取命令字節(jié),檢查奇偶位并檢查動(dòng)作表(action table)來(lái)確定接下來(lái)的動(dòng)作。動(dòng)作表定義了總線上數(shù)據(jù)的來(lái)源或目的地。

為了初始化LIN協(xié)議的從節(jié)點(diǎn)句柄(Slavehandler),用戶必須調(diào)用InitLinSlave程序,這個(gè)程序初始化RB0中斷引腳和TMR0寄存器。TMR0寄存器用來(lái)測(cè)量數(shù)據(jù)位的長(zhǎng)度并生成波特率。初始化完成之后,用戶可以執(zhí)行自己的程序。一旦檢測(cè)到RB0引腳上的下降沿,用戶程序就將被中斷。當(dāng)檢測(cè)到下降沿時(shí),程序就跳轉(zhuǎn)到中斷服務(wù)程序。必須禁止除了TMR0和RB0中斷之外所有的中斷源,以便對(duì)同步字段進(jìn)行精確測(cè)量。計(jì)算出波特率之后,中斷服務(wù)程序就退出執(zhí)行。

在下一次RB0中斷發(fā)生時(shí),LIN協(xié)議Slavehandler自動(dòng)進(jìn)入接收模式,以接收標(biāo)識(shí)字段或數(shù)據(jù)字節(jié)。如果檢測(cè)到標(biāo)識(shí)字段的起始位,就對(duì)標(biāo)識(shí)字段進(jìn)行接收和解碼。然后,根據(jù)收到的標(biāo)識(shí)執(zhí)行相應(yīng)的代碼,例如存儲(chǔ)數(shù)據(jù)或點(diǎn)亮LED。總線上一個(gè)幀傳輸完成之后,標(biāo)志FCOMPLETE被置位。這個(gè)標(biāo)志指示所有的數(shù)據(jù)都已正確接收完畢并可以進(jìn)行后續(xù)的處理。此標(biāo)志由用戶固件清除。

LIN協(xié)議從節(jié)點(diǎn)句柄Slavehandler最高可以工作在20K的波特率下,需要420字的程序存儲(chǔ)空間以及23字節(jié)的數(shù)據(jù)存儲(chǔ)空間。

由于其低成本,LIN協(xié)議具有在汽車應(yīng)用中廣泛采用的潛力。可以使用內(nèi)置的RC振蕩器并且運(yùn)行在4MHz的時(shí)鐘頻率下的諸如Microchip的各種器件的微處理器,使得設(shè)計(jì)師們能以最低的可能成本設(shè)計(jì)應(yīng)用系統(tǒng)。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久国产99| 欧美激情一区在线| 日韩视频在线免费| 久久国产精品一区二区三区| 国产日韩欧美精品综合| 欧美亚日韩国产aⅴ精品中极品| 欧美大片第1页| 免费的成人av| 久久网站免费| 久久天天躁狠狠躁夜夜av| 欧美在线播放一区二区| 欧美一区二区三区在线免费观看| 亚洲女性裸体视频| 亚洲美女色禁图| 一本久久a久久精品亚洲| 一区二区av| 亚洲午夜久久久久久久久电影院| 中文日韩在线| 亚洲永久精品大片| 午夜精品999| 欧美一区二区三区视频| 亚洲影院在线| 午夜一区在线| 久久精品国产亚洲一区二区| 久久久亚洲影院你懂的| 美女国内精品自产拍在线播放| 美女精品国产| 欧美日韩国产小视频| 欧美日韩久久| 国产精品网站一区| 国产在线观看91精品一区| 一区二区三区在线视频播放| 亚洲成人资源网| 亚洲精品欧美在线| 亚洲天堂男人| 欧美在线免费观看亚洲| 久久狠狠婷婷| 亚洲美女在线国产| 亚洲午夜高清视频| 亚洲免费一在线| 久久久久久成人| 免费在线观看日韩欧美| 欧美激情在线| 国产精品极品美女粉嫩高清在线| 国产精品制服诱惑| 国产一区二区三区最好精华液 | 欧美日韩国产色站一区二区三区| 欧美日韩网站| 国产精品一区亚洲| 好吊视频一区二区三区四区| 亚洲激情成人网| 欧美午夜激情在线| 国内精品久久久久久久97牛牛| 亚洲第一视频| 亚洲视频第一页| 欧美综合二区| 亚洲图片自拍偷拍| 久久精品综合一区| 米奇777在线欧美播放| 欧美日韩在线一区二区| 国产女优一区| 亚洲国产高清高潮精品美女| 一本大道久久a久久精二百| 性伦欧美刺激片在线观看| 日韩午夜一区| 久久精品国产亚洲5555| 欧美日韩高清在线| 国产亚洲福利社区一区| 99re视频这里只有精品| 久久精彩免费视频| 亚洲在线中文字幕| 欧美成人激情视频| 国产欧美亚洲一区| 亚洲精品国产精品久久清纯直播| 午夜影院日韩| 亚洲影院在线| 欧美精品免费播放| 国产资源精品在线观看| 99天天综合性| 亚洲国产精品一区二区三区| 亚洲欧美日韩在线| 欧美精品久久久久久久免费观看| 国产一区二区精品久久91| av不卡在线看| 亚洲精品国产精品乱码不99按摩| 欧美在线免费观看视频| 欧美日韩精品系列| 影音先锋亚洲一区| 欧美一区亚洲一区| 午夜久久资源| 欧美色综合网| 亚洲精品国产日韩| 亚洲欧洲精品一区二区| 久久精品在线视频| 国产精品综合| 亚洲天堂视频在线观看| 一本不卡影院| 欧美激情国产精品| 在线看片成人| 久久精品国产99| 久久精品亚洲一区| 国产伦理精品不卡| 亚洲一区二区三区高清不卡| 欧美一级电影久久| 欧美影院精品一区| 亚洲欧美在线磁力| 欧美体内谢she精2性欧美| 亚洲人成艺术| 亚洲精品乱码久久久久久黑人| 久久久噜噜噜久久中文字免| 国产欧美亚洲视频| 亚洲欧洲av一区二区| 欧美一区2区三区4区公司二百| 欧美午夜激情视频| 亚洲精选大片| 99精品国产在热久久婷婷| 欧美大片一区二区三区| 亚洲第一主播视频| 亚洲国产精品va| 久久在线免费观看| 一区在线影院| 亚洲国产欧美一区二区三区同亚洲 | 精品成人免费| 久久国产精品99精品国产| 久久久久9999亚洲精品| 国产视频观看一区| 欧美在线一二三| 久久免费国产精品1| 激情久久影院| 亚洲黑丝一区二区| 欧美精品www在线观看| 亚洲精品视频在线播放| 亚洲视频免费| 国产精品美女一区二区| 亚洲永久免费精品| 久久岛国电影| 国内久久精品| 亚洲欧洲一区二区三区久久| 欧美高清不卡在线| 日韩视频精品在线| 亚洲综合日韩中文字幕v在线| 欧美午夜视频网站| 亚洲欧美另类久久久精品2019| 欧美在线一级视频| 一区在线观看视频| 一本久久综合| 国产精品视频免费观看www| 香蕉乱码成人久久天堂爱免费| 久久亚洲国产精品一区二区| 亚洲二区在线| 亚洲一级在线观看| 国产视频一区二区三区在线观看| 在线观看91精品国产麻豆| 一区二区三区高清在线观看| 亚洲欧美怡红院| 国产在线播精品第三| 亚洲毛片在线| 国产精品视频一二三| 久久精品99国产精品| 欧美日本一道本| 亚洲欧美日韩直播| 美女主播精品视频一二三四| 亚洲精品一二三| 性久久久久久| 亚洲国产高清aⅴ视频| 亚洲影院色无极综合| 狠狠色狠狠色综合日日tαg | 国产乱人伦精品一区二区| 亚洲第一在线综合在线| 欧美精品激情在线观看| 亚洲欧美国产一区二区三区| 美女任你摸久久| 一区二区三区欧美日韩| 久久天堂国产精品| 在线亚洲观看| 久久综合999| 亚洲视频一区二区免费在线观看| 久久久人成影片一区二区三区观看 | 久久久噜噜噜久久人人看| 日韩一级不卡| 久久综合伊人77777| 亚洲另类一区二区| 久久久777| 在线中文字幕一区| 欧美aa国产视频| 亚洲中字在线| 欧美激情综合五月色丁香| 欧美亚洲综合久久| 欧美视频免费看| 亚洲国产另类久久久精品极度| 国产精品海角社区在线观看| 亚洲激精日韩激精欧美精品| 国产精品久久久一本精品| 91久久一区二区| 国产视频观看一区| 亚洲一区二区三区影院| 亚洲国产日韩在线| 久久久噜噜噜久久人人看| 亚洲天堂网站在线观看视频| 欧美激情欧美狂野欧美精品|