基于XC886單片機的門(mén)控系統LIN總線(xiàn)通信模塊設計
0 引言
隨著(zhù)汽車(chē)業(yè)的飛速發(fā)展,汽車(chē)電控系統的配置不斷升級,使得車(chē)輛上的電子元件越來(lái)越多,其相互連接的網(wǎng)絡(luò )結構也越來(lái)越復雜。過(guò)去所采用的電纜連接方式所帶來(lái)的龐大布線(xiàn)負擔,容易造成車(chē)體過(guò)重和線(xiàn)路的磨損老化。在這種情況下,就需要引入標準的總線(xiàn)技術(shù),從而降低車(chē)身重量,同時(shí)提高各個(gè)電控元件之間的通信可靠性。上世紀80年代,根據車(chē)用通信網(wǎng)絡(luò )在不同控制層面的不同功能要求,SAE (Societv ofAuto-mobile Engineering)將其分為A,B,C三類(lèi)。其中A類(lèi)為低速網(wǎng),數據傳輸速率通常為1~10kb/s,LIN總線(xiàn)通信網(wǎng)絡(luò )就屬于此類(lèi)。LIN總線(xiàn)一般應用于不需要高性能及帶寬和復雜性較大的低端系統,如車(chē)門(mén)控制模塊、座椅調節、車(chē)燈控制和空調系統中傳感器和執行器之間的通信。由于其LIN總線(xiàn)成本較低,也可以獨立用于不是特別復雜的車(chē)身控制網(wǎng)絡(luò )中。
1 LIN總線(xiàn)協(xié)議簡(jiǎn)介
LIN協(xié)議標準于1998年由Audi、BMW、Mo-torola、Daimlerehrysler、VCT、Volvo和Volkswa-gen等七家公司在A(yíng)類(lèi)網(wǎng)已有協(xié)議的基礎上聯(lián)合提出。LIN總線(xiàn)在當今汽車(chē)電子的網(wǎng)絡(luò )結構中被廣泛使用,它基于通用的UART/SCI接口,使用單線(xiàn)信號傳輸,從節點(diǎn)無(wú)需晶振或陶瓷振蕩器就能實(shí)現自同步,因此成本低廉。LIN總線(xiàn)網(wǎng)絡(luò )采用單主多從模式,圖1所示是UN總線(xiàn)網(wǎng)絡(luò )的結構示意圖,它由一個(gè)主節點(diǎn)和一個(gè)或若干個(gè)從節點(diǎn)組成,不需要總線(xiàn)仲裁。LIN總線(xiàn)協(xié)議基于ISO參考模型中的物理層,數據鏈路層采用NRZ (Not Re-turn Zero)編碼方式,電平分為隱性電平(‘1’)和顯性電平(‘0’)。
1.1 物理層
LIN總線(xiàn)一般采用單總線(xiàn)(12 V)串行通訊,總線(xiàn)長(cháng)度最大可達到40 m,傳輸速率最高可達到20 Kb/s,通常使用2.4Kb/s、9.6 Kb/s和19.2 Kb/s這三個(gè)波特率進(jìn)行數據傳輸。由于從節點(diǎn)的個(gè)數除了受標識符數量的限制中,也受到總線(xiàn)的物理特性限制,節點(diǎn)過(guò)多必然減少網(wǎng)絡(luò )阻抗,從而導致通訊條件變差,所以協(xié)議規定:一個(gè)LIN總線(xiàn)網(wǎng)絡(luò )上的節點(diǎn)數目不能超過(guò)16個(gè)。
1.2 數據鏈路層
LIN總線(xiàn)協(xié)議的一個(gè)報文幀由報文頭和響應組成,圖2所示是LIN總線(xiàn)協(xié)議的報文幀結構。一般情況下,報文頭都是由主節點(diǎn)發(fā)送,而響應則是由一個(gè)主節點(diǎn)或者一個(gè)從節點(diǎn)發(fā)送。LIN總線(xiàn)網(wǎng)絡(luò )中的數據通訊都是由主節點(diǎn)發(fā)送一個(gè)報文頭來(lái)初始化的。報文頭包含一個(gè)空白場(chǎng)、一個(gè)同步場(chǎng)和一個(gè)標識符場(chǎng),而響應則包括1到9個(gè)字節場(chǎng)(0~8個(gè)數據場(chǎng)和一個(gè)校驗和場(chǎng))。其中,字節場(chǎng)由字節間的間隔分開(kāi),報文頭和響應則由幀內響應間隔分開(kāi),它們的最小長(cháng)度皆為0。
報文頭中的空白場(chǎng)可使節點(diǎn)能夠識別一個(gè)報文的開(kāi)始??瞻讏?chǎng)為13位或者持續更長(cháng)時(shí)間的顯性電平(‘0’)加上持續1個(gè)位時(shí)間以上的隱性電平(‘1’)組成。同步場(chǎng)則為一個(gè)字節長(cháng)度(ox55),可用來(lái)使相關(guān)從節點(diǎn)進(jìn)行主從節點(diǎn)的時(shí)鐘同步。
標識符場(chǎng)格式如圖3所示,定義報文的信息,長(cháng)度為一個(gè)字節,其中前6位為標識符位,可定義26=64個(gè)標識符(其中保留4個(gè)標識符作為命令和擴展幀標識符),后2位為奇偶校驗位。
標識符用于定義數據的傳輸方向和響應中數據場(chǎng)的長(cháng)度,并從節點(diǎn)根據標識符判斷報文是否與自己相關(guān),從而對報文做出反應,進(jìn)行通訊。當主節點(diǎn)發(fā)送的報文頭被相關(guān)從節點(diǎn)接受并對標識符判斷之后,從節點(diǎn)被要求進(jìn)行數據發(fā)送,而主節點(diǎn)要接收從節點(diǎn)發(fā)送的數據,則需要將此標識符定義為接收標識符,對于從節點(diǎn)來(lái)說(shuō),則需定義為發(fā)送標識符,反之亦然。
響應中數據場(chǎng)的長(cháng)度由標識符位中的第4位和第5位(ID5和ID4)決定,它們將所有的標識符分成四組。每組有16個(gè)標識符,這些標識符代表著(zhù)2、4和8個(gè)數據場(chǎng)。數據場(chǎng)的傳輸由低位到高位,包含了各個(gè)節點(diǎn)需要傳輸的數據。校驗和場(chǎng)是數據場(chǎng)所有字節的和的反碼,當節點(diǎn)收到數據并進(jìn)行校驗時(shí),要求所有數據字節和與校驗和場(chǎng)的字節相加必須是0xFF。
評論