《CAN匯流排輕鬆入門與實踐》

《CAN匯流排輕鬆入門與實踐》是作者李真花,崔健在從事CAN匯流排開發與套用過程中,將切身的學習心得和經驗加以總結,針對初、中級學習者而編寫的入門級圖書。全書以匯流排控制晶片為基礎,結合具體電路和相關程式,通過一些實用的套用實例來講解CAN匯流排的設計。

基本信息

簡介

作者:李真花,崔健著
叢書名:部落格藏經閣叢書

《CAN匯流排輕鬆入門與實踐》CAN匯流排輕鬆入門與實踐

出版社:北京航空航天大學出版社
ISBN:9787512402683
出版時間:2011-01-01
版次:1
頁數:242
裝幀:平裝
開本:16開
印刷時間:2011-01-01
紙張:膠版紙
印次:1
正文語種:中文
定價:¥32.00
京東價:¥26.20(8.2折)

編輯推薦

《CAN匯流排輕鬆入門與實踐》是作者在從事CAN匯流排開發與套用過程中,將切身的學習心得和經驗加以總結,針對初、中級學習者而編寫的入門級圖書。全書以匯流排控制晶片為基礎,結合具體電路和相關程式,通過一些實用的套用實例來講解CAN匯流排的設計。

作者力圖擺脫傳統理論式的說教口吻,以初學者的角度來安排內容的講解,讓廣大讀者在輕鬆的閱讀中掌握CAN匯流排的開發過程。

《CAN匯流排輕鬆入門與實踐》適合CAN匯流排設計的初學者、提高者,以及對CAN匯流排感興趣的所有電子愛好者閱讀。

相關資源

作者將與《CAN匯流排輕鬆入門與實踐》相關的學習資料、電路原理圖以及實驗例程與廣大讀者朋友們分享,可以到CAN匯流排學習小組和書友會下載,也可以到北京航空航天大學出版社網站“下載中心”下載。

配套程式-can bus檔案列表

CAN隨書試驗程式源碼\basic_lab(chapter5)\ext_int0(5.4)\ext_int0
...................\...................\.............\ext_int0.C
...................\...................\.............\ext_int0.hex
...................\...................\.............\ext_int0.LNP
...................\...................\.............\ext_int0.LST
...................\...................\.............\ext_int0.M51
...................\...................\.............\ext_int0.OBJ
...................\...................\.............\ext_int0.Opt
...................\...................\.............\ext_int0.plg
...................\...................\.............\ext_int0.Uv2
...................\...................\.............\ext_int0_def.h
...................\...................\.............\ext_int0_Opt.Bak
...................\...................\lighten_led(5.2)\lighten_led
...................\...................\................\lighten_led.C
...................\...................\................\lighten_led.hex
...................\...................\................\lighten_led.lnp
...................\...................\................\lighten_led.LST
...................\...................\................\lighten_led.M51
...................\...................\................\lighten_led.OBJ
...................\...................\................\lighten_led.Opt
...................\...................\................\lighten_led.plg
...................\...................\................\lighten_led.Uv2
...................\...................\................\lighten_led_Opt.Bak
...................\...................\................\lighten_led_Uv2.Bak
...................\...................\rs232(5.5)\rs232
...................\...................\..........\rs232.hex
...................\...................\..........\rs232.lnp
...................\...................\..........\rs232.M51
...................\...................\..........\rs232.Opt
...................\...................\..........\rs232.plg
...................\...................\..........\rs232.Uv2
...................\...................\..........\RS232_com.C
...................\...................\..........\RS232_com.LST
...................\...................\..........\RS232_com.OBJ
...................\...................\..........\RS232_def.h
...................\...................\..........\rs232_Opt.Bak
...................\...................\..........\rs232_Uv2.Bak
...................\...................\RS485(5.6)\RS485
...................\...................\..........\RS485.hex
...................\...................\..........\RS485.lnp
...................\...................\..........\RS485.M51
...................\...................\..........\RS485.Opt
...................\...................\..........\RS485.plg
...................\...................\..........\RS485.Uv2
...................\...................\..........\RS485_com.C
...................\...................\..........\RS485_com.LST
...................\...................\..........\RS485_com.OBJ
...................\...................\..........\RS485_def.h
...................\...................\..........\RS485_Opt.Bak
...................\...................\..........\RS485_Uv2.Bak
...................\...................\..........\STARTUP.A51
...................\...................\..........\STARTUP.LST
...................\...................\..........\STARTUP.OBJ
...................\...................\show(5.3)\show
...................\...................\.........\show.C
...................\...................\.........\show.hex
...................\...................\.........\show.lnp
...................\...................\.........\show.LST
...................\...................\.........\show.M51
...................\...................\.........\show.OBJ
...................\...................\.........\show.Opt
...................\...................\.........\show.plg
...................\...................\.........\show.Uv2
...................\...................\.........\show_def.h
...................\...................\.........\show_Opt.Bak
...................\...................\.........\show_Uv2.Bak
...................\can_lab(chapter6~7)\can_rs232(chapter8)\can_232show.c
...................\...................\...................\can_232show.c.bak
...................\...................\...................\can_232show.LST
...................\...................\...................\can_232show.OBJ
...................\...................\...................\can_232showdef.H
...................\...................\...................\can_232show_node1
...................\...................\...................\can_232show_node1.hex
...................\...................\...................\can_232show_node1.lnp
...................\...................\...................\can_232show_node1.M51
...................\...................\...................\can_232show_node1.Opt
...................\...................\...................\can_232show_node1.plg
...................\...................\...................\can_232show_node1.Uv2
...................\...................\...................\can_232show_node1_Opt.Bak
...................\...................\...................\can_232show_node1_Uv2.Bak
...................\...................\self_mode(chapter6)\can_self\can_self
...................\...................\...................\........\can_self.c
...................\...................\...................\........\can_self.hex
...................\...................\...................\........\can_self.lnp
...................\...................\...................\........\can_self.LST
...................\...................\...................\........\can_self.M51
...................\...................\...................\........\can_self.OBJ
...................\...................\...................\........\can_self.Opt
...................\...................\...................\........\can_self.plg
...................\...................\...................\........\can_self.Uv2
...................\...................\...................\........\can_selfdef.H
...................\...................\...................\........\can_self_Opt.Bak
...................\...................\...................\........\can_self_Uv2.Bak
...................\...................\...................\self-mode-test\can_self_mode_test1\can_self
...................\...................\...................\..............\...................\can_self.c
...................\...................\...................\..............\...................\can_self.hex
...................\...................\...................\..............\...................\can_self.lnp
...................\...................\...................\..............\...................\can_self.LST
...................\...................\...................\..............\...................\can_self.M51
...................\...................\...................\..............\...................\can_self.OBJ

內容簡介

《CAN匯流排輕鬆入門與實踐》以基於51單片機的CAN匯流排系統設計為講解對象,在內容安排上兼顧理論與實踐,循序漸進地將其呈現給讀者。第1—3章主要講述CAN匯流排底層協定規範、套用層協定以及CAN匯流排控制器和驅動器,為CAN匯流排系統設計奠定基礎。第4—9章重點講解CAN匯流排系統硬體設計和程式設計,以幫助讀者熟悉該系統的硬體資源,也是單片機學習者很好的學習範例;同時給出CAN匯流排自發收、兩點通信、多點通信、CAN—RS232網橋、溫控系統等綜合實例,讓讀者在學習和實踐中理解CAN匯流排的精髓。最後一章與讀者分享作者的一些設計感悟,並對網友常見問題進行解答.

與《CAN匯流排輕鬆入門與實踐》相關的學習資料、電路原理圖以及實驗例程,可以在CAN匯流排學習小組和書友會http://group.ednchina.com/684/下載。

《CAN匯流排輕鬆入門與實踐》適合CAN匯流排設計的初學者、提高者,以及對CAN匯流排感興趣的所有電子愛好者Z讀。

作者簡介

李真花,電子技術愛好者,北京交通大學檢測與自動化專業碩士,有多項CAN匯流排系統及其他工業匯流排設計調試經驗。EDN網站CAN匯流排學習小組的創建者之一,參與了六版“POAE—CAN匯流排學習板”的設計。

崔健,電子技術愛好者,現北京大學在讀博士,利用業餘時間設計了很多相關作品,有多項測控系統項目經驗。EDN網站CAN匯流排學習小組的創建者之一,參與了六版“PIAE-CAN匯流排學習板”的設計。

目錄

第1章CAN匯流排概述與協定規範
1.1計算機網路體系結構與拓撲結構
1.1.1計算機網路體系結構
1.1.2網路互聯設備
1.1.3網路拓撲結構
1.2CAN匯流排簡介
1.2.1CAN匯流排是什麼
1.2.2CAN匯流排的特點
1.2.3CAN匯流排傳輸介質
1.2.4CAN匯流排拓撲結構與設備
1.3報文傳輸
1.3.1幀類型
1.3.2幀格式
1.3.3幀優先權仲裁
1.4報文濾波與校驗
1.5編碼——位填充
1.6錯誤處理與故障界定
1.6.1錯誤類型
1.6.2節點錯誤處理
1.6.3故障界定方法
1.7位定時要求
本章小結
第2章CAN匯流排套用層協定
2.1為什麼構建CAN套用層協定
2.2常用的CAN匯流排套用層協定
2.3iCAN匯流排協定概要
2.4iCAN協定的報文格式
2.4.1iCAN報文標識符分配
2.4.2iCAN報文數據部分定義
2.4.3iCAN報文格式詳細說明
2.5iCAN協定的報文傳輸協定
2.5.1iCAN協定通信模式
2.5.2iCAN協定報文處理流程
2.6iCAN協定的設備定義
2.6.1I/O資源說明
2.6.2配置資源說明
2.7iCAN網路管理
2.7.1節點控制
2.7.2通信控制
本章小結
第3章can控制器和驅動器
3.1CAN控制器和驅動器作用
3.2CAN匯流排控制器和驅動器選型
3.3CAN控制器SJA1000晶片詳述
3.3.1晶片SJA1000性能
3.3.2SJA1000的引腳定義
3.3.3SJA1000的內部結構及各個模組功能
3.3.4BasicCAN和pelican模式的區別
3.3.5BasicCAN的暫存器及其功能詳述
3.3.6PeliCAN的暫存器及其功能詳述
3.3.7公共暫存器
3.4CAN匯流排驅動器82c250詳述
3.4.182C250特性
3.4.282C250功能框圖
3.4.382C250功能詳述
本章小結
第4章硬體系統設計與實踐
4.1匯流排通信系統的硬體構成
4.2CAN匯流排學習板介紹
4.3單片機及其最小系統
4.3.1回顧一下老朋友——五彩繽紛的單片機
4.3.2單片機最小系統設計
4.3.3復位電路
4.3.4時鐘電路
4.3.5EA引腳的設定
4.4系統人機界面設計
4.4.1數碼管顯示設計
4.4.2LED燈顯示設計
4.4.3按鍵接口設計
4.5電源部分
4.6RS232串口通信接口設計
4.6.1RS232匯流排簡介
4.6.2RS232通信電路設計
4.7RS485通信接口設計
4.7.1RS4.85匯流排簡介
4.7.2RS485通信電路設計
4.8單匯流排溫度感測器——DS18B20
4.9繼電器及無線擴展口部分
4.10SJA1000與單片機的連線設計
4.11電路的安裝、焊接與調試
4.12CAN匯流排系統的抗干擾設計
4.12.1電源和地隔離技術
4.12.2輸入/輸出通道隔離技術
4.12.3PCB設計的一些注意事項
4.12.4軟體抗干擾技術
本章小結
第5章基礎實驗實踐
5.1開發需要哪些軟體
5.1.1Keil開發環境簡介
5.1.2如何建立一個工程
5.1.3STC單片機下載軟體使用
5.1.4串口通信軟體使用
5.2第1個實例:點亮一盞“燈”
5.2.1實例講解
5.2.2程式設計
5.2.3操作調試及結果
5.3第2個實例:數碼管顯示
5.3.1實例講解
5.3.2程式設計
5.3.3操作調試及結果
5.4第3個實例:用按鍵實現中斷
5.4.1實例講解
5.4.2程式設計
5.4.3操作調試及結果
5.5第4個實例:與PC機通信——串口驅動編寫
5.5.1實例講解
5.5.2程式設計
5.5.3操作調試及結果
5.6第5個實例:RS485通信
5.6.1實例講解
5.6.2程式設計
5.6.3操作調試及結果
5.7第6個實例:電子溫度計
5.7.1實例講解
5.7.2程式設計
5.7.3操作調試及結果
本章小結
第6章CAN匯流排節點的自收發實例設計
6.1系統設計目的及要求
6.2程式設計
6.2.1實例功能分析
6.2.2程式流程規劃
6.2.3CAN節點初始化
6.2.4CAN節點傳送程式設計
6.2.5CAN節點接收程式設計
6.3系統調試與結果
6.4擴展實例:自接收模式參數驗證
6.4.1試驗目的和要求
6.4.2配置參數及驗證結果
本章小結
第7章CAN匯流排兩節點通信實例設計
7.1系統設計目的和要求
7.2通信協定設計
7.2.1協定報文格式
7.2.2通信模式
7.2.3基於本節實例的參數設計
7.3通信程式設計
7.3.1程式流程規劃
7.3.2CAN節點初始化
7.3.3CAN節點傳送程式設計
7.3.4CAN節點接收程式設計
7.4系統調試與結果
7.5擴展實例:多節點通信
7.5.1試驗目的和要求
7.5.2配置參數
7.5.3驗證
本章小結
第8章CAN-RS232網橋設計
8.1系統設計目的和要求
8.2CAN-RS232網橋硬體結構
8.3CAN-RS232網橋通信協定設計
8.4程式流程設計
8.5擴展實例:CAN匯流排簡單分析儀設計
本章小結
第9章基於iCAN協定的溫控系統設計
9.1系統設計目的和要求
9.2系統網路結構
9.3通信協定和系統網路參數配置
9.4檢測節點設計
9.4.1硬體設計方案
9.4.2節點程式流程設計
9.5上層軟體設計
本章小結
第10章感悟設計
10.1培養我們的項目工程意識
10.1.1電子類項目的指標及其分類
10.1.2如何進行資料搜尋
10.1.3硬體及軟體設計的一些建議
10.1.4開始你的文檔整理
10.2關於電子類學生如何在大學中學習
10.2.1關於專業
10.2.2關於電子類專業學生的學習
10.2.3關於單片機學習
10.3答網友問
10.3.1問題1——單片機型號兼容
10.3.2問題2——遠程幀功能
10.3.3問題3——SJA1000的讀/寫控制
10.3.4問題4——SJA1000初始化程式
10.3.5問題5——CAN匯流排的關閉
10.3.6問題6——廣播通信功能
10.3.7問題7——PCA82C250發熱
附錄郵政系統與CAN匯流排通信系統對比
後記
參考文獻

前言

CAN匯流排是近些年來非常流行的幾種現場匯流排之一。CAN匯流排是一種多主方式的串列匯流排,可以組建多主對等的匯流排通信系統;具有非破壞性匯流排仲裁技術,讓優先權高的信息得到更加快速的處理;具有強大的錯誤檢測機制,可以檢測到匯流排上的任何錯誤;採用短幀結構、位填充和CRC校驗等措施,使傳輸具有高可靠性。這些優點使CAN匯流排在眾多工業領域,尤其是汽車、航天等產業中得到了廣泛的推廣和套用。

一、如何開始你的CAN匯流排學習

回想在做本科設計的時候,第一次接觸到CAN匯流排,那個時候市面上講解CAN匯流排技術的書籍很少,尤其缺少一種針對在校學生或是初學者的入門書籍。很多書籍的協定和理論講解占其內容的大部分,而且這些協定和理論比較難理解,讀起來是一頭霧水;另外這些書籍的實例也比較難,不太適合初學者。

當時書中沒有簡單的實例可以參考,身邊也沒有這方面的高手指點,因此就只能一遍遍地閱讀琢磨CAN匯流排的協定和理論,一次次地修改程式並進行驗證性試驗。當兩個CAN匯流排節點第一次通信成功時,感覺無比興奮;然後再進行不斷的細化完善,使設計的通信系統更加穩定可靠。回頭再閱讀CAN匯流排協定,感覺它已經不像當初那么隱晦枯燥了,也真實地體會到CAN匯流排比RS4.85更加簡單好用。

由於當初學習環境的限制,使得學習CAN匯流排的過程漫長且曲折,相信很多初學者都有與PIAE類似的學習經歷和感受。後來,經過與許多CAN匯流排學習者的交流和溝通,PIAE認為學習CAN匯流排是一個循序漸進的過程,不可急於求成。在此與大家分享一下CAN匯流排的學習方法:

①準備合適的學習資源。這些資源包括:完整的CAN匯流排協定;穩定可靠的cAN匯流排硬體,可以用它進行通信試驗;簡單的通信實例;一些設計中需要注意的事項等。

②必須要通讀一遍CAN匯流排協定,了解CAN匯流排的一些特點和主要功能。對於初學者當然不可能完全理解,也不需要完全理解。

③在穩定的CAN匯流排硬體上進行簡單通信試驗,感受CAN匯流排通信成功帶來的快樂,並且結合實例逐漸掌握之前不理解的地方。

精彩書摘

實電子技術的提高一定要從兩大方面同時著手,一是設計技術,二是測試技術。前者不多解釋了,這本書就講這個;後者不僅僅包括測試,還包括安裝、焊接、調試等。我們在進行系統設計的時候,都是正向設計,即系統要求-模組劃分-電路設計-PCB設計-…-電路PCB都設計完成後,接下來就要進行檢驗,也就是說會按照設計的結果去測試系統,看它是不是滿足我們期望的結果,這其實是對設計思路的一個“回放”,讓我們更加理解電路的運行過程。

如果滿足了,就證明一定可靠嗎?當然不一定,有很多潛在的問題是不容易發現的,如果你的調試經驗豐富,就可以用各種各樣的方法來測試系統,從而找出潛在的小bug,並且解決它。當然如果系統不能正常工作,就更要通過一系列合理的調試測試方法來找出問題所在,可能的結果是設計失誤了,從這個層面上來說測試又起到了重新指導設計的作用。因此說,會設計電路的不一定會調試電路,而會調試電路的人往往知道怎么設計能更好,在學習過程中,這兩者相輔相成,共同決定著我們對設計的理解和掌握。因此,在一項設計中可能前期的設計工作只占30%,後續的測試調試工作會占70%。在各大公司中,不光是設計工程師起主要作用,測試工程師、質量監控工程師都對項目起著至關重要的作用。

大家拿到了設計的PCB和器件後,首先第一步就是焊接,焊接本身就是一門技藝,是每個學電子的人必須過關的。焊接讓我們對元件和PCB有更深刻的感覺,感覺培養起來後,繪製PCB的能力就會提高。電路調試不僅僅要求你會焊接,還要對所有的電子儀器和設備能夠熟練使用。所以大家務必要在實踐中多多地鍛鍊自己。如果你的身旁有高手,讓他帶你走一遍,比你看100本書學得都多;如果你沒有這樣的條件,那作者希望你讀完本節會有所啟發。

作者準備首先詳細說一些電路調試的普遍問題,然後以CAN學習板為例給出CAN匯流排系統的一般調試步驟供讀者借鑑。

經常看見大學中有的同學興高采烈地拿著做好的PCB來實驗室,風風火火地將所有器件焊接到板子上,花花綠綠,甚是好看。結果一通電,是這也不行,那也不對。問題在哪?答案可以用五花八門來形容,下面就說說常見的問題及注意事項,看看你遇到過這樣的情況嗎?

1.焊接中的常見問題

①急於求成,把所有元件全部焊接上。所謂欲速則不達,將所有的器件全部焊接後,有很多弊端。比如你買的器件中可能會有壞的晶片,假的晶片,這都是有可能的。全部焊上後,根本分不清楚孰好孰壞。再者,電路不能正常工作,首先要找的就是出現問題的環節,全部焊上後,不利於排查問題出處。最好是焊一點調試一點,這樣每一部分都能正常工作了,才能保證最後合起來正常工作。

相關詞條

相關搜尋

熱門詞條

聯絡我們