LIN主從節(jié)點設(shè)計與實現(xiàn)
摘要:LIN是一種串行通訊協(xié)議,用于實現(xiàn)汽車中的分布式電子系統(tǒng)控制。介紹了具體的LIN主從節(jié)點硬件組成和軟件實現(xiàn)方法,同時提出若干抗千擾措施。測試證明按照這種方法設(shè)計的LIN網(wǎng)絡(luò)能正確實現(xiàn)通信。
關(guān)鍵詞:LIN總線;主節(jié)點;從節(jié)點;CAN總線
LIN(LocalInterconnect Network)是一種低速汽車網(wǎng)絡(luò),采用單主多從、異步串行通信方式,定位于現(xiàn)有汽車網(wǎng)絡(luò)(如CAN總線)的輔助和補充,目的是以低廉的價格聯(lián)接車上的傳感器、執(zhí)行器和處理器,并且允許不同廠家的模塊隨時添加進來。LIN的主要特點有:低成本,基于通用UART接口,幾乎所有微控制器都具備LIN必須的硬件;傳輸速率最高可達20 Kb/s;從節(jié)點不需晶振或陶瓷震蕩器就能實現(xiàn)自同步,節(jié)省了從設(shè)備的硬件成本;單主控器/多從設(shè)備模式,無需仲裁機制;不需要改變LIN從節(jié)點的硬件和軟件就可以在網(wǎng)絡(luò)上增加節(jié)點等。
1 主從節(jié)點硬件設(shè)計
LIN網(wǎng)絡(luò)由一個主節(jié)點和最多15個從節(jié)點構(gòu)成。設(shè)計LIN節(jié)點可以有三種方法:用普通I/O口線模擬異步串行通信;用UART和定時器實現(xiàn);用專門的LIN模塊來實現(xiàn)。第一種方法成本最低,但CPU負擔最重,代碼較多;第二種方法成本適中,CPU負擔較輕;第三種方法成本較高,但CPU負擔最輕,代碼最少。這里采用最常用的一種,即基于UART和定時器的LIN節(jié)點設(shè)計和實現(xiàn)。LIN網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖1所示。
在LIN網(wǎng)絡(luò)中所有的通信都由主節(jié)點發(fā)起,同時還承擔與CAN總線通信的任務(wù),因此主節(jié)點硬件電路主要包括微控制器、LIN收發(fā)器和CAN收發(fā)器。LIN收發(fā)器將協(xié)議控制器向TXD引腳輸入的傳輸數(shù)據(jù)流轉(zhuǎn)換成總線信號并由收發(fā)器控制回轉(zhuǎn)速率和波形以減少EME;CAN收發(fā)器作為CAN總線與控制器之間的接口以及提供CAN總線的差動發(fā)送和接收功能。需要注意的是主節(jié)點電路中必須連接一個1 kΩ的上拉電阻和一個二極管。采用Microchip公司的PICl8系列單片機作為主節(jié)點的微控制器,MCP2551作為CAN總線收發(fā)器,MCP201作為LIN總線收發(fā)器。主節(jié)點硬件原理圖如圖2所示。在實際設(shè)計過程中還要注意EMI(電磁干擾)和ESD(靜電危害)對LIN總線的干擾,為了避免EMI的影響,LIN協(xié)會把LIN的最高位速率限制在20 Kb/s,同時最大傳輸距離不能超過40 m;ESD表現(xiàn)為短暫而幅度迅速衰減的高壓、大電流放電,而LIN總線收發(fā)器最容易受到:ESD的沖擊,因此設(shè)計時可以在電源線和地線之間串聯(lián)電阻和電容,也可以把地線加粗,并與其他大面積接地導(dǎo)體就近、低阻抗連接。
從節(jié)點采用PIC18F1320作為主控制器,MCP201作為LIN總線收發(fā)器;需要注意的是從節(jié)點中必須連接一個30 kΩ的上拉電阻,當然串聯(lián)二極管也是必須的,它可以防止電子控制單元在本地電池掉電的情況下通過LIN總線上電。從節(jié)點電路原理圖與主節(jié)點相似,去掉CAN收發(fā)器,其余不再贅述。
2 軟件設(shè)計
LIN主節(jié)點是LIN總線的控制者,它將決定在什么時候發(fā)送哪個報文到LIN總線上,同時它需要檢測從節(jié)點和總線的工作狀態(tài)。因為LIN主節(jié)點是通訊的發(fā)起者,在每個報文幀開始時它需要發(fā)送出同步間歇,同步字段以及標識字段。如果這個報文幀是發(fā)送控制命令到從節(jié)點,主節(jié)點接著將發(fā)送出數(shù)據(jù)字段及校驗和字段;而如果這個報文幀是發(fā)送查詢命令到從節(jié)點,此時主節(jié)點將從LIN總線讀取從節(jié)點發(fā)送的數(shù)據(jù)字段和校驗和字段。
LIN從節(jié)點用UART實現(xiàn)通訊,從中檢出主節(jié)點發(fā)送給本從節(jié)點的命令,并執(zhí)行相應(yīng)動作。要正確實現(xiàn)LIN總線的通信,主從節(jié)點的初始化是非常重要的,圖3、圖4給出了主從節(jié)點的初始化流程圖。其余還有LIN主節(jié)點UART接收數(shù)據(jù)流程圖,LIN從節(jié)點中斷服務(wù)流程圖等限于篇幅不一一列出。
3 LIN總線通信測試
如前所述,一個LIN網(wǎng)絡(luò)由一個LIN主節(jié)點和多個從節(jié)點組成,報文的傳送方向和時間由主節(jié)點決定。從節(jié)點是根據(jù)報頭中的ID號來決定是否接收一幀數(shù)據(jù),在檢測到正確的報文ID號后,從節(jié)點將根據(jù)ID號判斷后續(xù)操作:是否接收后續(xù)數(shù)據(jù)或者發(fā)送數(shù)據(jù)到LIN總線,并初始化相應(yīng)操作。在本子系統(tǒng)中,設(shè)計了兩個從節(jié)點,定義的報文ID號如表1所示。
在LIN總線波特率設(shè)為9 600 b/s時,利用數(shù)字存儲示波器對LlN從接點通信過程進行了測試。另外,還利用ZLGCANtest軟件對LIN網(wǎng)絡(luò)的通信功能做了測試,一切結(jié)果顯示均正常,證明設(shè)計LIN網(wǎng)絡(luò)的通信程序設(shè)計是正確的。
4 結(jié)語
在歐美、日本等發(fā)達國家,LIN總線被越來越多地應(yīng)用到車身網(wǎng)絡(luò)中,但在我國LIN總線的應(yīng)用還處在起步階段,因此對LIN總線通信的研究顯得尤為重要。本文設(shè)計了基于PIC單片機的LIN總線主從節(jié)點,并實現(xiàn)了主從節(jié)點間的通信,其中,位定時的設(shè)定是影響通信速度的重要因素。該研究為下一步將LIN總線應(yīng)用到汽車的聯(lián)合裝配控制單元中打下良好的基礎(chǔ)。