技術(shù)頻道

      基于CAN總線技術(shù)的汽車ECU設(shè)計(jì)

        1、引言
        控制器局域網(wǎng)(ControllerAreaNetwork,CAN)是Bosch公司于1986年在美國(guó)汽車工程師協(xié)會(huì)(SAE)大會(huì)上推出的一種新型串行總線,被廣泛地用于汽車內(nèi)部測(cè)量與執(zhí)行部件之間的數(shù)據(jù)通信,其總線規(guī)范已被制訂為國(guó)際標(biāo)準(zhǔn),由于其高性能、高可靠性及獨(dú)特的設(shè)計(jì),CAN總線技術(shù)越來(lái)越受到人們的重視[1,2]。隨著現(xiàn)代汽車技術(shù)的發(fā)展,電子設(shè)備在汽車中的比重越來(lái)越高,如電噴發(fā)動(dòng)機(jī)、燃油高壓共軌、制動(dòng)防抱死系統(tǒng)(ABS)、自動(dòng)變速器系統(tǒng)、注油控制以及電動(dòng)門窗等[3],這些總成之間需要檢測(cè)并交換大量數(shù)據(jù),采用CAN總線技術(shù)不僅成本低,而且可靠性明顯提高。從1992年起,Mercedes-Benz(奔馳)公司開始在高級(jí)客車中使用CAN總線技術(shù),隨后,Volvo、Saab、Volkswagen、BMW、Renault以及Fiat等汽車公司也分別在自己的汽車上使用CAN總線技術(shù)[4-6]。國(guó)內(nèi)針對(duì)汽車的CAN總線技術(shù)研究還處于起步階段,北京航空航天大學(xué)、中國(guó)計(jì)算機(jī)學(xué)會(huì)單片機(jī)公共實(shí)驗(yàn)室、清華大學(xué)以及中國(guó)汽車技術(shù)研究中心等單位都開展了汽車CAN總線技術(shù)的研究[7-9],但目前還不能構(gòu)成系列產(chǎn)品,并沒有真正組建汽車CAN總線網(wǎng)絡(luò)。
        本文以某即將定型汽車為原型,設(shè)計(jì)基于CAN總線技術(shù)的汽車ECU系統(tǒng),對(duì)于已有CAN接口的總成,可以直接依據(jù)協(xié)議讀取CAN接口的數(shù)據(jù),對(duì)于沒有CAN接口的總成,利用AT90CAN128單片機(jī)設(shè)計(jì)汽車ECU,采集傳感器信息,并通過(guò)CAN接口與其他總成交換數(shù)據(jù),組建基于CAN總線的汽車網(wǎng)絡(luò),這樣既有利于汽車本身的數(shù)據(jù)通信,又能方便配套的便攜式診斷儀器讀取汽車技術(shù)狀態(tài)信息。
        2、CAN總線網(wǎng)絡(luò)的組建
        CAN是一種串行數(shù)據(jù)通信總線,其通信速率能達(dá)到1Mbps,并已經(jīng)成為一項(xiàng)國(guó)際標(biāo)準(zhǔn),其最大特點(diǎn)是,任一節(jié)點(diǎn)所傳送的數(shù)據(jù)信息并不包含傳送節(jié)點(diǎn)或接收節(jié)點(diǎn)的地址,信息內(nèi)容通過(guò)一個(gè)標(biāo)識(shí)符(ID)作上標(biāo)記,在整個(gè)網(wǎng)絡(luò)中,該標(biāo)識(shí)符是唯一的,網(wǎng)絡(luò)上的其他節(jié)點(diǎn)接收到信息后,每一節(jié)點(diǎn)都對(duì)這一標(biāo)識(shí)符進(jìn)行測(cè)試,以判斷信息內(nèi)容是否與己有關(guān),如果是相關(guān)信息,將其接收并進(jìn)行處理,否則,即被忽略。這樣,不同的節(jié)點(diǎn)可以接收到不同的數(shù)據(jù),保證了通信的實(shí)時(shí)性。
        現(xiàn)代汽車廣泛地采用了電子技術(shù),而總控模塊能隨時(shí)接收到所需要的數(shù)據(jù),實(shí)現(xiàn)汽車總成之間的數(shù)據(jù)交換使用CAN總線組成數(shù)據(jù)傳輸網(wǎng)絡(luò)主要用途之一,如發(fā)動(dòng)機(jī)系統(tǒng)、自動(dòng)變速器系統(tǒng)、ABS系統(tǒng)、自動(dòng)差速鎖系統(tǒng)、中央充放氣系統(tǒng)、動(dòng)力轉(zhuǎn)向系統(tǒng)以及電動(dòng)門窗系統(tǒng)等總成之間的數(shù)據(jù)交換。利用CAN總線技術(shù)組建汽車信息傳輸網(wǎng)絡(luò)的基本結(jié)構(gòu)如圖1所示。

        由于一些總成生產(chǎn)廠家在設(shè)計(jì)時(shí)已經(jīng)考慮了信息交互的接口問題,在生產(chǎn)時(shí)已將CAN總線技術(shù)集成到總成上。對(duì)于這類總成(如高壓共軌發(fā)動(dòng)機(jī)、自動(dòng)變速器以及ABS等系統(tǒng)),只需通過(guò)ECU讀取其CAN總線協(xié)議即可完成數(shù)據(jù)信息交換。對(duì)于其他總成,通過(guò)設(shè)計(jì)汽車ECU,采集相應(yīng)傳感器的信息,并利用CAN接口向總線廣播式發(fā)送數(shù)據(jù),可完成信息交換。
        3、汽車ECU的設(shè)計(jì)
        為了設(shè)計(jì)帶有CAN接口的汽車ECU,較為常見的方法是用單片機(jī)與CAN控制器相結(jié)合,如使用8051單片機(jī)與CAN控制器芯片SJA1000來(lái)組合使用[4][6]。由于CAN總線技術(shù)應(yīng)用領(lǐng)域廣泛,一些芯片生產(chǎn)廠家(如Motorola、Intel、Philip、Atmel、Microchip以及NEC等公司)紛紛在自己的芯片中集成了CAN接口模塊,這樣將大大提高CAN接口通信的可靠性。本文采用Atmel公司的一款內(nèi)嵌CAN控制器的AVR型單片機(jī)AT90CAN128來(lái)實(shí)現(xiàn)CAN節(jié)點(diǎn)。
        AT90CAN128單片機(jī)具有以下特點(diǎn):128K字節(jié)FLASH,4K字節(jié)EEPROM和4K字節(jié)的SRAM,帶有硬件乘法器功能,53個(gè)通用的I/O口,32個(gè)通用工作寄存器,4個(gè)具有比較模式的定時(shí)器/計(jì)數(shù)器,2通道8位的PWM,6通道2到16位精度的PWM,2個(gè)USART和1個(gè)主從SPI串行口,1個(gè)兩線(I2C)串行接口,一個(gè)8通道10位具有可選增益差分輸入的A/D轉(zhuǎn)換器,1個(gè)帶內(nèi)部振蕩器的可編程看門狗定時(shí)器[10]。同時(shí)還集成了CAN控制器,與CAN標(biāo)準(zhǔn)幀2.0A和擴(kuò)展幀2.0B完全兼容,具有15個(gè)獨(dú)立的信息對(duì)象,能夠處理所有的幀類型,具有8位靜態(tài)分配的數(shù)據(jù)緩沖區(qū),晶振頻率8MHz時(shí)數(shù)據(jù)傳送速率可達(dá)到1Mbps。
        3.1硬件設(shè)計(jì)
        在本文的設(shè)計(jì)中,利用AT90CAN128的A/D轉(zhuǎn)換器采集相關(guān)傳感器的電壓信號(hào)(如水溫、振動(dòng)、位置、氣壓以及油壓等信號(hào)),利用定時(shí)器/計(jì)數(shù)器模塊采集相關(guān)傳感器的脈沖信號(hào)(如轉(zhuǎn)速、里程等信號(hào)),由于AT90CAN128集成了CAN控制器功能,因此,結(jié)合CAN總線收發(fā)器即可完成CAN總線的接收和發(fā)送任務(wù)。CAN總線收發(fā)器采用了ATA6660芯片,它是CAN控制器與物理傳輸媒體之間的物理連接子層接口。為提高系統(tǒng)的抗干擾性,在AT90CAN128與ATA6660芯片之間加入高速光耦芯片6N137,其接口電路如圖2所示。

        從圖2中可以看出,電路主要由3部分組成:?jiǎn)纹瑱C(jī)AT90CAN128、高速光耦6N137和高速CAN總線收發(fā)器。單片機(jī)AT90CAN128主要負(fù)責(zé)傳感器信息的采集、內(nèi)部CAN控制器的初始化并實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。在ATA6660與CAN總線的接口部分也采用了抗干擾和安全措施,ATA6660的CANH和CANL引腳各自通過(guò)5Ω的電阻與CAN總線相連,電阻可起到一定的限流作用,保護(hù)ATA6660免受過(guò)流沖擊。CANH和CANL與地之間并聯(lián)兩個(gè)30pF的小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射的能力。另外,在兩根CAN總線與地之間分別接了一個(gè)防雷擊管,當(dāng)兩輸入端與地之間出現(xiàn)瞬變干擾時(shí),通過(guò)防雷擊管的放電可以起到一定的保護(hù)作用。
        3.2軟件設(shè)計(jì)
        系統(tǒng)軟件設(shè)計(jì)主要包括信號(hào)采集和CAN接口通信程序。利用AT90CAN128片上集成的ADC模塊可以采集一些常規(guī)傳感器的模擬信號(hào),如油壓、水溫、氣壓等信號(hào);利用定時(shí)器/計(jì)數(shù)器模塊采集傳感器脈沖信號(hào),如轉(zhuǎn)速、行駛里程信號(hào)等。對(duì)于模擬量信號(hào),在經(jīng)過(guò)放大器處理之后,可以直接控制單片機(jī)的ADC模塊對(duì)其進(jìn)行采集;對(duì)于脈沖信號(hào),在對(duì)其進(jìn)行采集時(shí)需要進(jìn)行整形處理,如轉(zhuǎn)速傳感器獲取發(fā)動(dòng)機(jī)飛輪旋轉(zhuǎn)時(shí)輪齒的信號(hào),是正弦交流信號(hào),將其整形為方波信號(hào),利用定時(shí)器/計(jì)數(shù)器模塊采集方波的頻率來(lái)完成速度采集。為提高轉(zhuǎn)速采集的實(shí)時(shí)性,通常采集脈沖信號(hào)的周期(兩個(gè)脈沖信號(hào)上升沿或下降沿之間的時(shí)間)來(lái)計(jì)算其頻率,并計(jì)算發(fā)動(dòng)機(jī)轉(zhuǎn)速,計(jì)算公式如如式(1)所示。

      式(1)中為系統(tǒng)時(shí)鐘周期,為分頻系數(shù),為發(fā)動(dòng)機(jī)飛輪齒圈齒數(shù)(對(duì)于康明斯發(fā)動(dòng)機(jī)為為輪齒脈沖兩次上升(或下降)沿的計(jì)數(shù)器值。

        CAN接口通信程序主要包括CAN控制器的初始化、數(shù)據(jù)接收和數(shù)據(jù)發(fā)送程序。主程序通過(guò)調(diào)用函數(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送,流程圖如圖3所示,在數(shù)據(jù)接收程序中,通過(guò)查詢方式讀取相應(yīng)消息對(duì)象中的數(shù)據(jù)。

        CAN控制器初始化工作主要包括波特率參數(shù)設(shè)置、接收屏蔽寄存器及接收代碼寄存器的設(shè)置、使能允許寄存器的設(shè)置等。通過(guò)總線定時(shí)器寄存器CANBT1、CANBT2、CANBT3來(lái)設(shè)置波特率參數(shù)。AT90CAN128中提供了一組由4個(gè)驗(yàn)收碼寄存器(CANIDT1~CANIDT4)和4個(gè)驗(yàn)收屏蔽寄存器(CANIDM1~CANIDM4)組成的驗(yàn)收濾波器,信息只有通過(guò)它的驗(yàn)收濾波才能被接收;所有驗(yàn)收屏蔽寄存器為0的位,驗(yàn)收碼寄存器和CAN信息幀的對(duì)應(yīng)位必須相同才能驗(yàn)收通過(guò),而所有驗(yàn)收屏蔽寄存器中為1的位,驗(yàn)收碼寄存器對(duì)應(yīng)位的驗(yàn)收濾波功能則被屏蔽。通過(guò)設(shè)置驗(yàn)收濾波器,既可以實(shí)現(xiàn)節(jié)點(diǎn)與節(jié)點(diǎn)之間的點(diǎn)對(duì)點(diǎn)通信,也可以實(shí)現(xiàn)一點(diǎn)對(duì)多點(diǎn)的廣播式通信,使整個(gè)數(shù)據(jù)通信網(wǎng)絡(luò)更加靈活。
        4、實(shí)驗(yàn)
        采用本文設(shè)計(jì)的汽車ECU對(duì)車輛上的模擬信號(hào)(水溫、壓力等),脈沖信號(hào)(轉(zhuǎn)速、里程等)進(jìn)行采集,并通過(guò)CAN總線發(fā)送和接收數(shù)據(jù)。采用IXXAT公司的CAN分析儀(USBtoCAN)對(duì)CAN總線進(jìn)行監(jiān)控,利用計(jì)算機(jī)與CAN分析儀連接,并通過(guò)CAN總線采集ECU傳輸?shù)臄?shù)據(jù),CAN總線的通信波特率設(shè)定為125kbps,實(shí)驗(yàn)中測(cè)得的總線狀態(tài)如圖4(a)所示,實(shí)驗(yàn)中采用CAN2.0B擴(kuò)展幀協(xié)議,采集某ECU節(jié)點(diǎn)的CAN總線數(shù)據(jù)如圖4(b)所示,其中節(jié)點(diǎn)204060為脈沖信號(hào)采集,節(jié)點(diǎn)204061為模擬信號(hào)采集,數(shù)據(jù)長(zhǎng)度為8字節(jié),空余字節(jié)用FF填補(bǔ),可用來(lái)擴(kuò)展信息量。

        根據(jù)實(shí)際測(cè)量結(jié)果,可以看出總線沒有接收到出錯(cuò)幀,接收到數(shù)據(jù)幀,反映總線工作狀態(tài)正常。從接收的數(shù)據(jù)表明,每個(gè)ECU節(jié)點(diǎn)發(fā)送的ID碼和數(shù)據(jù)與預(yù)定義的ID碼和數(shù)據(jù)相同,總線接收和發(fā)送正常。另外,在軟件中加入了異常處理,如果某節(jié)點(diǎn)一直向總線發(fā)送錯(cuò)誤標(biāo)志,總線會(huì)自動(dòng)終止該節(jié)點(diǎn),其他節(jié)點(diǎn)也會(huì)檢測(cè)到錯(cuò)誤條件,停止向該節(jié)點(diǎn)發(fā)送數(shù)據(jù),這樣可以避免總線癱瘓。
        5、結(jié)論
        本文設(shè)計(jì)的基于AT90CAN128單片機(jī)的汽車ECU,由于其本身接口豐富,可以采集多種傳感器數(shù)據(jù),并集成了CAN接口模塊,這樣提高了EUC的工作可靠性和CAN接口通信的可靠性,非常適宜于組建汽車CAN總線網(wǎng)絡(luò)。另外,在硬件上做了優(yōu)化處理,提高了系統(tǒng)的抗干擾能力。實(shí)驗(yàn)表明,該ECU能準(zhǔn)確采集數(shù)據(jù),并能通過(guò)CAN總線進(jìn)行可靠通信。

      文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 精品国产一区二区三区四区| 蜜桃视频一区二区三区| 精品一区二区三区在线观看| 亚洲韩国精品无码一区二区三区 | 一区二区三区视频在线播放| 一区二区在线免费观看| 国产一区二区三区在线免费| 久久精品一区二区三区AV| 亚洲熟女乱综合一区二区| 在线精品一区二区三区电影| 91精品福利一区二区三区野战| 亚洲欧洲一区二区三区| 日本精品高清一区二区2021| 中文字幕一区二区三区在线观看| 亚洲日韩国产一区二区三区 | 日韩亚洲AV无码一区二区不卡| 亚洲国产综合无码一区二区二三区 | 日韩AV无码一区二区三区不卡毛片 | AV无码精品一区二区三区宅噜噜| 99在线精品一区二区三区| 日本高清不卡一区| 精品乱子伦一区二区三区高清免费播放 | 不卡一区二区在线| 亚洲AV无码一区二区三区国产| 国产精品va一区二区三区| 国产精品亚洲一区二区在线观看| 91一区二区三区四区五区| 无码少妇一区二区| 亚洲综合色自拍一区| 熟妇人妻系列av无码一区二区| 午夜视频久久久久一区| 一区二区高清在线| 亚洲人AV永久一区二区三区久久| 国产成人一区在线不卡| 国产精品一区二区三区99 | 日本人的色道www免费一区| 久久蜜桃精品一区二区三区| 精品人妻少妇一区二区三区不卡 | 在线观看视频一区二区| 无码人妻aⅴ一区二区三区有奶水| 亚洲Av永久无码精品一区二区 |