控制器局域網(wǎng)(CAN)是現(xiàn)代汽車網(wǎng)絡通信與控制系統(tǒng)中的重要組成部分,《汽車CAN總線系統(tǒng)原理、設計與應用》全面、系統(tǒng)地介紹了汽車CAN總線的基本原理、應用層協(xié)議制定、系統(tǒng)軟件和硬件設計,并且通過實例介紹了汽車CAN總線系統(tǒng)的設計方法。全書共10章,首先介紹了汽車網(wǎng)絡通信系統(tǒng)的特點,全面闡述了當今汽車網(wǎng)絡系統(tǒng)的結(jié)構(gòu)、類型、應用及其發(fā)展趨勢,然后著重對CAN總線通信系統(tǒng)的原理和特點、帶CAN接口的飛思卡爾微控制器、MSCAN的特點和編程、基于XGATE的CAN通信方法、CAN總線的收發(fā)器、CAN總線應用中的Bootloader、CAN的標定協(xié)議、CAN總線系統(tǒng)設計流程等幾個方面進行了詳細的論述,最后給出了CAN總線系統(tǒng)設計、仿真和測試方法。
《汽車CAN總線系統(tǒng)原理、設計與應用》可作為大學相關專業(yè)高年級本科生、研究生的教材,同時也是從事汽車電子系統(tǒng)特別是車載網(wǎng)絡系統(tǒng)研究與開發(fā)人員的參考資料。
《汽車CAN總線系統(tǒng)原理、設計與應用》全面介紹了車載網(wǎng)絡技術的現(xiàn)狀,詳細介紹了CAN總線及SAEJ1939
針對車載CAN總線系統(tǒng)的應用設計進行了專門的論述
可作為汽車電子專業(yè)工程師及汽車電子方向?qū)W生的專業(yè)參考書
隨著汽車電子技術的發(fā)展,汽車上的電子控制單元(ECU)也越來越多,采用能夠滿足多路復用的總線通信系統(tǒng),可以將各個ECU連接成為一個網(wǎng)絡,以共享的方式傳送數(shù)據(jù)和信息,實現(xiàn)網(wǎng)絡化的數(shù)字通信與控制功能。因此,基于簡化汽車線束、增強控制功能、提高安全保證、降低燃油消耗、節(jié)約制造成本等多方面的考慮,采用數(shù)字化車載網(wǎng)絡技術將會為汽車電子產(chǎn)業(yè)帶來一個巨大的飛躍,而CAN(Controller Area Network)總線是車載網(wǎng)絡系統(tǒng)中重要的組成部分,目前,它已在汽車動力系統(tǒng)和車身系統(tǒng)的網(wǎng)絡通信與控制中得到廣泛的應用。
CAN即控制器局域網(wǎng),是由德國BOSCH公司提出并在國際上應用最廣的現(xiàn)場總線之一。1993年11月國際標準化組織正式頒布了道路交通運輸工具-數(shù)據(jù)信息交換-高速通信控制器局域網(wǎng)(CAN)國際標準ISO11898,它為CAN總線在汽車上的標準化、規(guī)范化應用鋪平了道路。本書全面、系統(tǒng)地介紹了汽車CAN總線的基本原理、應用層協(xié)議制定、系統(tǒng)軟件和硬件設計、基于CAN的標定協(xié)議等內(nèi)容,并且通過實例介紹了汽車CAN總線系統(tǒng)的設計方法。
美國飛思卡爾半導體有限公司是全球最大的汽車半導體供應商,其產(chǎn)品在汽車網(wǎng)絡技術應用領域具有領先地位。飛思卡爾半導體有限公司能夠提供廣泛的CAN系列產(chǎn)品,包括帶CAN接口的8位/16位/32位微控制器,以及用于高速和低速CAN總線通信的收發(fā)器等。本書在應用飛思卡爾公司微控制器的基礎上,對基于MSCAN的CAN通信編程方法、基于XGATE的CAN通信編程方法以及CAN Bootloader的設計和應用等進行了詳細的介紹,這些內(nèi)容將會為汽車CAN總線系統(tǒng)的設計帶來極大的便利。
全書共10章,其中第1章介紹了汽車網(wǎng)絡通信系統(tǒng)的特點,全面闡述了當今汽車網(wǎng)絡系統(tǒng)的結(jié)構(gòu)、類型、應用及其發(fā)展趨勢;第2章介紹了CAN總線通信系統(tǒng)的基本原理以及時間觸發(fā)CAN總線的特點;第3章介紹了專門用于卡車、大客車等的CAN總線通信協(xié)議SAE J1939的物理層、數(shù)據(jù)鏈路層、應用層內(nèi)容,同時概述了故障診斷及網(wǎng)絡管理的方法;第4~5章介紹了帶CAN接口的飛思卡爾微控制器以及MSCAN的特點、結(jié)構(gòu)和功能,詳細介紹了基于MSCAN的CAN通信編程方法;第6章針對飛思卡爾新一代的16位微處理器系列S12X(E)的協(xié)處理器XGATE的特點,介紹了基于XGATE的CAN通信編程方法;第7章介紹了用于CAN總線通信的收發(fā)器原理及應用;第8章介紹CAN總線應用中的Bootloader,并基于飛思卡爾16位微控制器和MSCAN模塊給出一個S12系列通用的CAN Bootloader制作和應用的實例;第9章對基于CAN總線的標定協(xié)議進行了詳細的介紹并給出了應用實例;第10章介紹了汽車CAN總線系統(tǒng)設計的流程,并以車身控制系統(tǒng)為例介紹了汽車CAN總線系統(tǒng)設計、仿真和測試方法。
同濟大學汽車學院是我國最早從事汽車網(wǎng)絡技術研發(fā)的科研機構(gòu)之一,經(jīng)過十余年的努力,目前已具備了國際一流的汽車網(wǎng)絡系統(tǒng)開發(fā)手段,在汽車CAN、LIN、FlexRay等網(wǎng)絡技術研發(fā)方面取得了很大的成績,研發(fā)工作包括汽車網(wǎng)絡系統(tǒng)設計、仿真、測試和標定等內(nèi)容。同時,我們與國際同行保持著密切的交流及合作,作者曾在德國Wolfhard Lawrenz教授(CAN命名者)所主持的C&S Group進行了為期一年的訪問研究,對于國際上的研發(fā)水平有著全面的了解。我們已與美國飛思卡爾半導體有限公司(Freescale Semiconductor)合作成立了“同濟大學飛思卡爾汽車電子聯(lián)合實驗室”、與美國明導公司(Mentor Graphics)合作成立了“同濟大學-明導汽車電子系統(tǒng)設計聯(lián)合實驗室暨技術培訓中心”、與德國宜爾公司(IHR GmbH)成立了“同濟大學汽車學院-德國宜爾公司車載網(wǎng)絡技術聯(lián)合實驗室”。這些交流與合作對于我們在汽車網(wǎng)絡技術領域保持領先地位具有重要意義。本書是作者多年來從事汽車CAN總線系統(tǒng)研發(fā)工作的積累,希望能夠?qū)ξ覈嚲W(wǎng)絡系統(tǒng)設計人員提供支持和幫助。
本書除封面署名作者外,還有同濟大學汽車學院研究生劉矗、莫莽、李仁俊、陳杰、莊桂寶、張瓊琰、丁圣彥等協(xié)助書稿整理和程序調(diào)試工作,對于他們卓有成效的工作在此表示感謝。
飛思卡爾半導體有限公司的馬莉女士、康曉敦先生長期以來一直支持同濟大學-飛思卡爾汽車電子聯(lián)合實驗室的工作,本書的撰寫也得到了他們及飛思卡爾半導體有限公司許多技術人員的大力支持。明導公司的姚振新先生、董因平博士也為本書提供了許多技術資料。電子工業(yè)出版社的編輯高買花女士、田宏峰先生為本書的出版做了大量細致的工作。在此一并表示誠摯的謝意。
由于時間關系,本書暫未對基于CAN的故障診斷協(xié)議以及一致性測試等關鍵技術進行介紹,如有可能將在再版時添加。書中若有疏漏和錯誤之處,懇請讀者批評指正,并提出寶貴的意見和建議。
收起全部↑
第1章 緒論
1.1 汽車電子技術
1.1.1 現(xiàn)代汽車電子技術的發(fā)展階段
1.1.2 汽車電子系統(tǒng)的基本構(gòu)成
1.1.3 汽車電子系統(tǒng)網(wǎng)絡化
1.2 計算機網(wǎng)絡
1.2.1 計算機網(wǎng)絡概述
1.2.2 計算機網(wǎng)絡體系結(jié)構(gòu)
1.2.3 局域網(wǎng)
1.3 車載網(wǎng)絡通信及現(xiàn)場總線
1.3.1 車載網(wǎng)絡信號的編碼方式
1.3.2 車載網(wǎng)絡的介質(zhì)訪問控制方式
1.3.3 現(xiàn)場總線
1.4 現(xiàn)代汽車電子網(wǎng)絡系統(tǒng)
1.4.1 汽車網(wǎng)絡系統(tǒng)結(jié)構(gòu)
1.4.2 汽車總線系統(tǒng)
第2章 CAN總線基本原理
2.1 CAN總線在汽車網(wǎng)絡上的應用
2.2 CAN總線的基本特點
2.3 CAN的分層結(jié)構(gòu)及功能
2.4 CAN的消息幀
2.5 非破壞性按位仲裁
2.6 位填充
2.7 CRC校驗
2.8 遠程幀
2.9 出錯幀
2.10 超載幀的規(guī)格
2.11 幀間空間
2.12 CAN物理層
2.12.1 物理層的功能模型
2.12.2 物理信令(PLS)子層規(guī)范
2.12.3 物理介質(zhì)附件子層規(guī)范
2.13 故障界定與總線管理
2.13.1 故障界定
2.13.2 故障界定規(guī)則
2.13.3 總線故障管理
2.14 基于時間觸發(fā)的TTCAN
2.14.1 基于CAN的時間觸發(fā)通信
2.14.2 參考時間與參考消息
2.14.3 基本循環(huán)
2.14.4 基本循環(huán)及其時間窗
2.14.5 系統(tǒng)矩陣
2.14.6 利用時間標志進行消息的發(fā)送和接收
2.14.7 全局系統(tǒng)時間
2.14.8 TTCAN的容錯功能
2.14.9 TTCAN的應用
第3章 SAE J1939協(xié)議
3.1 網(wǎng)絡拓撲結(jié)構(gòu)
3.2 物理層簡介
3.3 數(shù)據(jù)鏈路層
3.3.1 消息
3.3.2 協(xié)議數(shù)據(jù)單元
3.3.3 協(xié)議數(shù)據(jù)單元格式
3.3.4 消息類型
3.3.5 源地址和參數(shù)群編號的分配過程
3.3.6 傳輸協(xié)議功能
3.3.7 應注意的問題
3.4 應用層
3.4.1 通信參數(shù)定義
3.4.2 發(fā)動機通信與控制參數(shù)
3.5 故障診斷
3.5.1 診斷故障代碼定義
3.5.2 故障診斷狀態(tài)燈
3.5.3 故障模式標志FMI
3.5.4 診斷故障代碼簡介
3.6 網(wǎng)絡管理
3.6.1 SAE J1939通信方式
3.6.2 電控單元(ECU)的名稱和地址
3.6.3 節(jié)點地址分配
第4章 飛思卡爾微控制器與MSCAN
4.1 飛思卡爾微控制器
4.1.1 飛思卡爾8位微控制器MC9S08DZ60
4.1.2 飛思卡爾16位微控制器MC9S12XEP100
4.2 飛思卡爾的MSCAN模塊
4.2.1 MSCAN模塊的特性
4.2.2 MSCAN模塊的結(jié)構(gòu)
4.2.3 MSCAN模塊相關的寄存器介紹
4.2.4 MSCAN模塊的報文存儲模式
4.3 MSCAN模塊的功能描述
4.3.1 報文存儲
4.3.2 報文發(fā)送基礎
4.3.3 發(fā)送結(jié)構(gòu)
4.3.4 接收結(jié)構(gòu)
4.3.5 標識符接收濾波器
4.3.6 標識符接收濾波器示例
4.3.7 協(xié)議違反保護
4.3.8 時鐘系統(tǒng)
4.3.9 MSCAN的運行模式
4.3.10 MSCAN的低功耗選項
4.3.11 MSCAN的休眠模式
4.3.12 MSCAN的初始化模式
4.3.13 MSCAN的斷電模式
4.3.14 MSCAN的可編程喚醒功能
4.3.15 MSCAN的中斷
4.3.16 MSCAN的初始化過程
4.3.17 總線脫離恢復
第5章 MSCAN模塊的編程
5.1 CodeWarrior軟件的下載和安裝
5.2 CodeWarrior軟件的使用和調(diào)試方法
5.2.1 工程的建立
5.2.2 程序的編制和調(diào)試
5.3 MSCAN初始化程序的編寫
5.3.1 MSCAN初始化流程
5.3.2 MSCAN模塊初始化例程
5.3.3 完整的MSCAN模塊初始化代碼
5.3.4 MSCAN監(jiān)聽與環(huán)路模式的應用
5.4 MSCAN發(fā)送程序編寫
5.4.1 MSCAN的發(fā)送流程
5.4.2 MSCAN報文發(fā)送例程
5.5 MSCAN接收程序的編寫
5.5.1 MSCAN接收流程
5.5.2 查詢方式接收CAN幀例程
5.5.3 中斷方式接收CAN幀例程
5.6 MSCAN的低功耗應用
5.6.1 低功耗模式介紹
5.6.2 進入低功耗模式
5.6.3 MSCAN喚醒
5.7 使用Processor Expert對MSCAN模塊進行編程
5.7.1 帶Processor Expert工程的建立
5.7.2 Processor Expert中代碼的編寫
5.7.3 Processor Expert幫助文檔的使用
第6章 基于XGATE模塊的CAN通信
6.1 XGATE基本特性
6.1.1 精簡指令集內(nèi)核
6.1.2 XGATE指令集
6.1.3 XGATE訪問空間
6.1.4 事件驅(qū)動XGATE線程
6.1.5 互斥信號量
6.2 XGATE的中斷
6.2.1 中斷向量表
6.2.2 XGATE與CPU12X的相互中斷
6.2.3 中斷嵌套
6.3 使用及初始化XGATE
6.3.1 帶XGATE的CodeWarrior工程建立
6.3.2 XGATE的啟動及初始化過程
6.3.3 XGATE的使用例程
6.3.4 使用XGATE模塊處理CAN接收中斷
6.3.5 使用XGATE模塊實現(xiàn)CAN幀的發(fā)送與接收
第7章 CAN總線收發(fā)器
7.1 Freescale低速CAN收發(fā)器MC33388
7.1.1 MC33388結(jié)構(gòu)說明
7.1.2 MC33388功能描述
7.1.3 MC33388典型應用
7.2 Freescale高速CAN收發(fā)器MC33989
7.2.1 MC33989結(jié)構(gòu)說明
7.2.2 MC33989功能描述
7.2.3 MC33989操作模式
7.3 Philips的CAN收發(fā)器PCA82C250
7.3.1 PCA82C250特性
7.3.2 封裝及引腳
7.3.3 工作模式
7.3.4 應用舉例
第8章 CAN Bootloader的實現(xiàn)與應用
8.1 CAN Bootloader介紹
8.1.1 Bootloader
8.1.2 CAN Bootloader
8.2 S12系列微控制器Flash介紹
8.2.1 存儲介質(zhì)
8.2.2 Flash的操作方式
8.2.3 與Flash擦寫相關的寄存器介紹
8.2.4 Flash擦除與寫入步驟
8.3 下載文件格式介紹
8.3.1 S記錄格式的結(jié)構(gòu)與類型
8.3.2 S記錄格式在程序下載中的應用
8.4 S12系列微控制器通用CAN Bootloader的編寫
8.4.1 CAN Bootloader功能描述
8.4.2 Flash Bootloader注意事項
8.4.3 CAN Bootloader流程
8.4.4 CAN Bootloader程序分析
8.4.5 S12 CAN Bootloader程序清單
8.5 CAN Bootloader的使用
第9章 基于CAN總線的標定協(xié)議
9.1 ASAP標準及ASAM標準組織介紹
9.1.1 ASAP標準概述
9.1.2 ASAM標準組織及其規(guī)范
9.2 CCP協(xié)議介紹
9.2.1 CCP通信方式
9.2.2 CCP消息格式
9.2.3 DAQ模式下的數(shù)據(jù)通信
9.2.4 CCP命令代碼簡介
9.2.5 ERR代碼列表
9.2.6 預期運行性能
9.3 CCP命令
9.3.1 連接命令(CONNECT)
9.3.2 交換站標識符(EXCHANGE_ID)
9.3.3 申請密鑰(GET_SEED)
9.3.4 解除保護(UNLOCK)
9.3.5 設置MTA地址(SET_MTA)
9.3.6 數(shù)據(jù)下載(DNLOAD)
9.3.7 6字節(jié)數(shù)據(jù)下載(DNLOAD_6)
9.3.8 數(shù)據(jù)上傳(UPLOAD)
9.3.9 數(shù)據(jù)短上傳(SHORT_UP)
9.3.10 選擇標定數(shù)據(jù)頁(SELECT_CAL_PAGE)
9.3.11 獲取DAQ列表大。℅ET_DAQ_SIZE)
9.3.12 設置DAQ列表指針(SET_DAQ_PTR)
9.3.13 寫入DAQ列表(WRITE_DAQ)
9.3.14 開始
9.3.15 斷開(DISCONNECT)
9.3.16 設置當前通信狀態(tài)(SET_S_STATUS)
9.3.17 獲取當前通信狀態(tài)(GET_S_STATUS)
9.3.18 建立checksum表(BUILD_CHKSUM)
9.3.19 清空內(nèi)存(CLEAR_MEMORY)
9.3.20 編程(PROGRAM)
9.3.21 6字節(jié)數(shù)據(jù)編程(PROGRAM_6)
9.3.22 內(nèi)存轉(zhuǎn)移(MOVE)
9.3.23 診斷服務(DIAG_SERVICE)
9.3.24 操作服務(ACTION_SERVICE)
9.3.25 連接狀態(tài)測試(TEST)
9.3.26 開始
9.3.27 獲取處于激活狀態(tài)下的標定頁(GET_ACTIVE_CAL_PAGE)
9.3.28 獲取CCP協(xié)議版本(GET_CCP_VERSION)
9.4 CCP協(xié)議應用實例
9.5 CCP協(xié)議在ECU端的實現(xiàn)
9.5.1 CCP驅(qū)動代碼介紹
9.5.2 ccppar.h頭文件介紹
9.5.3 ccp.c源代碼介紹
9.5.4 ECU側(cè)CCP實現(xiàn)程序流程及源代碼示例
第10章 汽車車身CAN總線系統(tǒng)設計
10.1 汽車網(wǎng)絡V型開發(fā)流程
10.2 車身CAN總線系統(tǒng)拓撲結(jié)構(gòu)
10.3 網(wǎng)絡節(jié)點控制功能分析
10.3.1 中央控制器
10.3.2 左前門控制器
10.3.3 右前門控制器
10.3.4 左后門控制器
10.3.5 右后門控制器
10.4 車身網(wǎng)絡系統(tǒng)通信協(xié)議
10.5 車身控制系統(tǒng)硬件設計
10.5.1 中央控制器硬件設計
10.5.2 左前門控制器硬件設計
10.6 Mentor Graphics的汽車網(wǎng)絡設計與測試工具
10.6.1 Volcano 車載網(wǎng)絡設計與開發(fā)平臺
10.6.2 VNA在汽車CAN網(wǎng)絡設計中的應用
10.6.3 Tellus在汽車CAN網(wǎng)絡測試中的應用
參考文獻
現(xiàn)代汽車電子技術的發(fā)展大致經(jīng)歷了以下幾個階段。
電子管時代:20世紀50年代,人們開始在汽車上安裝電子管收音機,這是電子技術在汽車上應用的雛形。1959年晶體管收音機問世后,很快在汽車上得到了應用。
晶體管時代:20世紀60年代,汽車上應用了硅整流交流發(fā)電機和晶體管調(diào)節(jié)器,到60年代中期,利用晶體管的放大和開關原理,開始在汽車上采用晶體管電壓調(diào)節(jié)器和晶體管點火裝置。但電子技術更多地應用在汽車上是20世紀70年代以后,主要是為了解決汽車的安全、節(jié)能和環(huán)保三大問題。進入70年代后期,電子工業(yè)有了長足的發(fā)展,特別是集成電路、大規(guī)模集成電路和超大規(guī)模集成電路技術的飛速發(fā)展,使得微控制器在汽車上得到廣泛的應用,給汽車工業(yè)帶來了劃時代的變革。
集成電路時代:20世紀90年代,汽車電子進入了其發(fā)展的第三個階段,這是對汽車工業(yè)的發(fā)展最有價值、最有貢獻的階段。集成電路技術所取得的巨大成就使汽車電子前進了一步,更加先進的微控制器使汽車具有智能,能進行控制決策。這樣不僅在節(jié)能、排放和安全等方面提高了汽車的性能,同時也提高了汽車的舒適性。
網(wǎng)絡化綜合技術時代:目前汽車技術已發(fā)展到第四代,即包括電子技術、計算機技術、綜合控制技術、智能傳感器技術等先進汽車電子技術。以微控制器為核心的汽車電子控制單元已不再是通過傳統(tǒng)的線束連接起來的,而是通過汽車電子網(wǎng)絡系統(tǒng)連接起來的,實現(xiàn)了通信與控制的網(wǎng)絡化管理。
一些汽車專家認為,就像汽車電子技術在20世紀70年代引入集成電路、80年代引入微控制器一樣,近十幾年來,數(shù)據(jù)總線技術的引入也將是汽車電子技術發(fā)展的一個里程碑。
……