汽車內(nèi)串行通信總線
越來(lái)越多的電子系統(tǒng)都需要更可靠的互連解決方案, 而LIN總線正成為汽車串行通信的新興標(biāo)準(zhǔn)。
對(duì)于汽車制造商來(lái)說(shuō),非常重要的三大問題就是燃料效率、可靠性和成本。隨著汽車設(shè)計(jì)中電子系統(tǒng)越來(lái)越多,問題也變得越來(lái)越復(fù)雜。這些子系統(tǒng)每個(gè)都會(huì)增加成本,而且還需要良好的互連策略,從而為汽車設(shè)計(jì)人員提出了更多挑戰(zhàn)。
僅僅簡(jiǎn)單地用導(dǎo)線將這些新的電子系統(tǒng)連接起來(lái)并不能構(gòu)成可行的解決方案。解決問題的一種方法是利用串行通信總線來(lái)代替電子模塊間的連線。采用串行通信總線可減小導(dǎo)線束中導(dǎo)線的數(shù)量和連接數(shù)量,從而降低成本并提高可靠性。同時(shí)由于設(shè)計(jì)重量減輕,還可提高燃料效率。
目前汽車應(yīng)用中使用比較廣泛的兩種數(shù)字總線標(biāo)準(zhǔn)是CAN(控制區(qū)域網(wǎng)絡(luò))總線和J1850。根據(jù)速度、總線延遲和成本等因素,每種總線適合于汽車市場(chǎng)中的特定應(yīng)用。一種稱為L(zhǎng)IN(本地互連網(wǎng)絡(luò))的新總線標(biāo)準(zhǔn)可補(bǔ)充原來(lái)較為成熟的總線結(jié)構(gòu),覆蓋原來(lái)的總線不太擅長(zhǎng)的應(yīng)用。
LIN總線是由LIN聯(lián)盟(這是由汽車、軟件和半導(dǎo)體制造商組成的一個(gè)非贏利組織)制定的。LIN總線是A級(jí)總線,也就是說(shuō),它是一種低速總線。LIN總線的最大通信速率為20 Kb/s。同時(shí)還可提供有保證的時(shí)延,即從網(wǎng)絡(luò)中一個(gè)特定結(jié)點(diǎn)到另一個(gè)結(jié)點(diǎn)的通信可保證在規(guī)定的時(shí)間內(nèi)完成。
LIN總線的最大優(yōu)點(diǎn)是其實(shí)現(xiàn)成本低,一個(gè)LIN總線結(jié)點(diǎn)的成本大約僅為類似CAN總線結(jié)點(diǎn)的一半。
需要指出的是,開發(fā)LIN總線并非是要與其它總線結(jié)構(gòu)競(jìng)爭(zhēng),相反是為了與其它總線形成互補(bǔ)關(guān)系。具體來(lái)說(shuō),LIN總線可以做為兩級(jí)總線結(jié)構(gòu)中的第二級(jí),其中CAN總線可做為一級(jí)主干總線。在這種結(jié)構(gòu)中,有些CAN總線結(jié)點(diǎn)還可做為網(wǎng)關(guān),即做為本地LIN總線的主結(jié)點(diǎn)。
LIN總線協(xié)議基于通用的UART字節(jié)接口,因此實(shí)現(xiàn)方式豐富靈活。LIN協(xié)議采用主/從通信機(jī)制??偩€包括一個(gè)主結(jié)點(diǎn)和一個(gè)或多個(gè)從結(jié)點(diǎn)。主結(jié)點(diǎn)除了驅(qū)動(dòng)所有消息的傳輸外,還完成所有的仲裁和沖突管理工作。這進(jìn)一步簡(jiǎn)化了從結(jié)點(diǎn),從而降低了其成本。
總線上的所有通信都以消息形式進(jìn)行,消息有確定的格式,稱為消息幀。消息幀由頭(header)信息字段和響應(yīng)(response)字段組成。頭信息進(jìn)一步分成幾個(gè)字段。第一個(gè)是同步中斷字段,由13個(gè)‘0’比特位和至少一個(gè)‘1’比特位組成,用來(lái)標(biāo)志幀的開始。然后是由一系列交替出現(xiàn)的‘1’和‘0’組成的同步字段,可使每個(gè)從結(jié)點(diǎn)都可同步到主結(jié)點(diǎn)所設(shè)定的位速率;最后是標(biāo)志字段,標(biāo)志出所需要的消息以及響應(yīng)字段的長(zhǎng)度。
只有主結(jié)點(diǎn)可以啟動(dòng)消息傳輸過(guò)程,這是通過(guò)向所有結(jié)點(diǎn)發(fā)送一個(gè)頭字段實(shí)現(xiàn)的。頭字段中的標(biāo)志字段告訴網(wǎng)絡(luò)中的所有從結(jié)點(diǎn)應(yīng)該做出什么樣的響應(yīng)??赡艿捻憫?yīng)包括:從響應(yīng)字段中接收字節(jié)數(shù)據(jù);在響應(yīng)字段中發(fā)送字節(jié)數(shù)據(jù);或者什么都不做。每一從結(jié)點(diǎn)都分析頭信息字段,并且必須準(zhǔn)備好在幀的響應(yīng)字段發(fā)送或接收數(shù)據(jù)。
當(dāng)利用傳統(tǒng)的內(nèi)置UART的微控制器(MCU)來(lái)實(shí)現(xiàn)LIN總線時(shí),字節(jié)級(jí)的編碼和解碼既簡(jiǎn)單又高效。然而,創(chuàng)建并解釋整個(gè)消息幀的工作則需要更多通常MCU中所沒有的資源。
例如,利用同步字段來(lái)確定位速率,這是每個(gè)從結(jié)點(diǎn)必須在每條消息的起始要做的工作。在傳統(tǒng)MCU上要實(shí)現(xiàn)這一功能需要一個(gè)硬件定時(shí)器和軟件查詢,這對(duì)處理器構(gòu)成很大的負(fù)擔(dān)。另一個(gè)例子是所有結(jié)點(diǎn)都需要檢測(cè)幾種錯(cuò)誤情形,而這種錯(cuò)誤可能發(fā)生在每一位,因此可能需要消耗大量的處理能力??偟膩?lái)說(shuō),LIN總線協(xié)議的所有這些特點(diǎn)要么需要大量的CPU開銷,要么就需要只有少數(shù)MCU才能提供的專用硬件資源。
PSoC的機(jī)會(huì)和優(yōu)點(diǎn)
Cypress公司的可編程系統(tǒng)芯片(PSoC)器件提供了第三種選擇。開發(fā)該系列產(chǎn)品的目的就是要代替?zhèn)鹘y(tǒng)的固定功能MCU。每一個(gè)PSoC器件都是一個(gè)集成有微控制器的混合信號(hào)陣列。組成這些混合信號(hào)陣列的可編程模擬和數(shù)字電路劃分成稱為PSoC模塊的邏輯模塊(參看圖1)。每一模塊可完成一系列功能,包括許多標(biāo)準(zhǔn)外設(shè)功能。因此在應(yīng)用中,可配置構(gòu)成“完美”的外設(shè)組。數(shù)字PSoC模塊可用來(lái)完成LIN總線接口所需要的所有硬件功能,從而將CPU從這些工作中解放出來(lái)。
除了減輕CPU的開銷以外,同時(shí)還可減少LIN總線功能所使用的數(shù)字資源。更多的資源可用于完成其它功能。這種結(jié)構(gòu)的動(dòng)態(tài)可重構(gòu)特點(diǎn)使得在器件工作過(guò)程中可動(dòng)態(tài)選擇器件的不同配置來(lái)完成不同的功能。
動(dòng)態(tài)重構(gòu)可大大方便基于PSoC的LIN總線設(shè)計(jì)。由于LIN總線傳輸有三個(gè)明確的階段:頭傳輸/接收、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收,PSoC器件可以在每個(gè)階段重新配置其數(shù)字模塊資源來(lái)實(shí)現(xiàn)LIN總線協(xié)議所需要的不同功能。能夠這樣做是因?yàn)闆Q定芯片配置的信息存儲(chǔ)在基于RAM的寄存器中,在啟動(dòng)時(shí)從閃存?zhèn)鬏敂?shù)據(jù)將芯片配置為一個(gè)初始狀態(tài)。因此,用戶代碼可在任何時(shí)間改變這些寄存器中的數(shù)值,從而改變PSoC資源的配置。
實(shí)現(xiàn)LIN總線協(xié)議需要的代碼存儲(chǔ)器很小(如果PSoC用做從結(jié)點(diǎn)約為1.5 K字節(jié),用做主結(jié)點(diǎn)約1K字節(jié))。Cypress的PSoC器件可以提供最大16K的閃存,因此可以將大多數(shù)程序空間留給應(yīng)用程序。驅(qū)動(dòng)器管理所需要的CPU開銷也非常低,僅需要大約10%的CPU周期,大多數(shù)硬件PSoC模塊(5/8)都可以留給主應(yīng)用使用。
Cypress公司設(shè)計(jì)了一個(gè)LIN總線參考設(shè)計(jì)板,可以用來(lái)對(duì)基于PSoC的LIN總線結(jié)點(diǎn)設(shè)計(jì)進(jìn)行評(píng)估。這一參考設(shè)計(jì)是一個(gè)完整設(shè)計(jì)套件(CY3220LINBUS-RD)的一部分。實(shí)現(xiàn)LIN總線通信的軟件可從www.cypressmicro.com網(wǎng)站下載。不需要許可費(fèi)用。
評(píng)論