




已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
南 京 理 工 大 學(xué) 畢業(yè)設(shè)計說明書 (論文 ) 作 者 : 學(xué) 號: 學(xué)院 (系 ): 機械工程學(xué)院 專 業(yè) : 機械設(shè)計制造及其自動化 題 目 : 汽車 CAN 總線技術(shù)研究 指導(dǎo)者: (姓 名 ) (專業(yè)技術(shù)職務(wù) ) 評閱者: (姓 名 ) (專業(yè)技術(shù)職務(wù) ) 2005 年 6 月 教授 副教授 畢業(yè)設(shè)計說明書(論文)中文摘要 對正在迅速發(fā)展之中的汽車 CAN 總線技術(shù)進(jìn)行了研究。 自行設(shè)計、研制 了一個 典型的能實際運行的汽車電控系統(tǒng),包括 CAN 總線、電控單元以及控制元件(電機)等。 該系統(tǒng)總共由三個節(jié)點組成,并通過控制器局域網(wǎng) (CAN-bus)連接起來,形成一個基于 CAN 總線的通信網(wǎng)絡(luò)。第一個 CAN 節(jié)點是由計算機構(gòu)成的控制平臺 ,接收用戶指令,通過 CAN 總線控制另兩個節(jié)點上的電機,并實時顯示它們反饋的運行情況。第二個 CAN 節(jié)點保持與節(jié)點 1的通信 ,根據(jù)節(jié)點 1的要求實時監(jiān)控一個電機。第三個節(jié)點的 ID 不同于第二個 CAN 節(jié)點,監(jiān)控另一個電機。整個系統(tǒng)已經(jīng)完成并調(diào)試通過,測試證明完全符合車上通信網(wǎng)絡(luò)的需要。 針對實際應(yīng)用,提出了一個在摩托車中應(yīng)用 CAN 技術(shù)的解決方案,分析了方案的特點及工作原理,并完成了初步設(shè)計。 對包括 CAN 總線的汽車電控系統(tǒng)研發(fā)的步驟、方法以及規(guī)律性等進(jìn)行了探索,并為我校本科教學(xué)中開設(shè)相關(guān)實驗進(jìn)行了準(zhǔn)備工作,提出了具體的設(shè)想與方案。 關(guān)鍵詞 汽車 電子控制 CAN 總線 通信 網(wǎng)絡(luò) 畢 業(yè)設(shè)計說明書(論文)外文摘要 Title Study of Vehicles CAN-bus Technique Abstract Vehicles CAN-bus technique which is in quick development is thorough studied. A typical and operable vehicles electrical control system is designed and developed and the system includes the CAN-bus, the electrical unit and the control component etc. Three nodes in the system communicate through a CAN-bus. The system uses commands from a CAN node and sends this message through a CAN-bus to other two CAN nodes. They are controlling a DC motor separately. The first CAN node acts like a user control panel. It monitors all user inputs and displays the real time motor speed. The second CAN node is responsible for generating various signals for motor co ntrol, and responsible for monitoring the feedback signal and relays its data to the first CAN node. The third node runs like the second CAN node, but the ID is different form the second CAN node. The whole system was already completed and can properly operate. More important, the system verifies that the CAN-bus can meet the demand of the communication in vehicle completely. Aiming at the practical application, a solution for applying the technique of CAN-bus in motorcycle was put forward, its characteristics and work principles are analyzed, and the preliminary design is done. The development procedure, method and rules etc. of vehicles electrical control system that includes CAN-bus are investigated. Setting up the related experiment for education purpose is prepared, and some proposal is given. Key words: Vehicle Electrical control CAN-bus Communications Network 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 目 次 1 緒論 4 1.1 汽車 CAN總線技術(shù)的研究意義 4 1.2 汽車 CAN總線技術(shù)的發(fā)展現(xiàn)狀 4 1.3 本課題的主要研究內(nèi)容和方法 6 2 CAN 總線系統(tǒng)總體方案設(shè)計 8 2.1 系統(tǒng)方框圖 8 2.2 CAN 總線主要參數(shù)的選擇 9 2.3 CAN 總線應(yīng)用層的定義 12 2.4 程序設(shè)計方法選擇 12 3 基于單片機的 CAN節(jié)點的 CAN接口 設(shè)計 13 3.1 接口硬件設(shè)計 14 3.1.1 接口元器件選擇 15 3.1.2 接口電路圖設(shè)計 15 3.2 接口軟件設(shè)計 15 3.2.1 初始化子程序的設(shè)計 15 3.2.2 發(fā)送子程序的設(shè)計 16 3.2.3 接收子程序的設(shè)計 16 4 基于單片機的 CAN節(jié)點的功能部分設(shè)計 18 4.1 功能部分硬件設(shè)計 18 4.1.1 元器件的選擇 18 4.1.2 電路圖的設(shè)計 18 4.2 功能部分軟件設(shè)計 19 4.2.1 PWM 調(diào)速軟件設(shè)計 19 4.2.2 計數(shù)測速軟件設(shè)計 19 5 基于 PC 機的 CAN 節(jié)點的設(shè)計 21 5.1 LPT-CAN 接口卡 21 5.2 接口函數(shù)庫 21 5.3 應(yīng)用軟件的 MFC 設(shè)計 21 6 系統(tǒng)構(gòu)建與性能檢測 23 6.1 系統(tǒng)構(gòu)建和調(diào)試 23 6.2 系統(tǒng)性能檢測 24 7 汽車車身 CAN 解決的方案 26 8 摩托車 CAN 總線解決方案 28 9 CAN 總線本科教學(xué)建議 30 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 結(jié)論 31 致謝 32 參考文獻(xiàn) 34 附錄 A 節(jié)點電路圖 36 附錄 B 部分源碼 37 附錄 C 系統(tǒng)調(diào)試 41 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 1 緒論 1.1 汽車 CAN 總線技術(shù)研究的意義 隨著汽車電子技術(shù)的不斷發(fā)展,汽車上的電子裝置越來越多。較高檔的汽車中,電子系統(tǒng)的成本已經(jīng)超過總成本的 20%,并且增長很快。汽車上新的技術(shù)增長點幾乎無一不與電子技術(shù)和信息技術(shù)的相關(guān)。車上電子裝置不斷增加,使得連接這些裝置的電子線路迅速膨脹,線束越來越復(fù)雜,布線就越來越困難,在汽車設(shè)計,裝配,維修中的負(fù)擔(dān)甚至到了無法忍受的程度;而且線路以及接頭的增加是引起安全問題的巨大隱患。另外,線的質(zhì)量和占用的空間也都成為值得考慮的問題。質(zhì)量的增加意味著降低汽車的效率;線路直徑太大,在相當(dāng)運動部分過線非常的困難,如車窗的線束等。 因此,在電子裝置不斷增加的情況下,減少線束成為一個必須要解決的問題。使用傳統(tǒng)的點對點并行連接方法,顯 然無法擺脫這種困境,基于串行信息傳輸?shù)木W(wǎng)絡(luò)結(jié)構(gòu)成為一種必然的選擇。 眾多國際知名汽車公司早在 80 年代就積極致力于汽車網(wǎng)絡(luò)技術(shù)的研究以及應(yīng)用。而我國目前對汽車網(wǎng)絡(luò)技術(shù)的應(yīng)用研究還處于起步階段。為縮短同國外汽車技術(shù)水平的差距,提高自身的競爭力,單靠技術(shù)引進(jìn)不利于長期發(fā)展。消化,吸收,研究,開發(fā)自己的汽車網(wǎng)絡(luò)技術(shù)勢在必行。 本課題正是 對汽車 CAN 總線技術(shù)進(jìn)行深入的研究 ,通過設(shè)計一個典型的基于 CAN總線的車上通信網(wǎng)絡(luò) , 對包括 CAN 總線的汽車電控系統(tǒng)研發(fā)的步驟、方法以及規(guī)律性等進(jìn)行探索 。 1.2 汽車 CAN 總線技術(shù) 的發(fā)展現(xiàn)狀 汽車 CAN 總線技術(shù)又稱為汽車 CAN 網(wǎng)絡(luò)技術(shù)。汽車網(wǎng)絡(luò)已經(jīng)經(jīng)歷了大約二十年的發(fā)展,汽車工程師協(xié)會( SAE)按照汽車網(wǎng)絡(luò)系統(tǒng)的性能,從底到高劃分 A 級, B級, C 級, D 級網(wǎng)絡(luò)。 A 級網(wǎng)絡(luò)產(chǎn)生最早,主要應(yīng)用于要求價格底,數(shù)據(jù)傳輸速度,實時性,可靠性要求較低的情況。如車身系統(tǒng)的門窗和后備箱網(wǎng)絡(luò)系統(tǒng),也可以作為一些傳感器和執(zhí)行器級別的底層局部連接總線使用。 UART 就是典型的 A 級網(wǎng)絡(luò)。 B 級網(wǎng)絡(luò)用于對數(shù)據(jù)傳輸速度要求較高的系統(tǒng),包括一些車身控制系統(tǒng),儀表盤,低檔的實時控制系統(tǒng)以及故障診斷系統(tǒng)等。典型的 B 級網(wǎng)絡(luò)是 J1850。 C 級網(wǎng)絡(luò)主要用于可靠性和實時性要 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 求較高的系統(tǒng),如高檔的發(fā)動機和動力傳動系統(tǒng)的實時控制系統(tǒng),線控系統(tǒng)等。CAN2.0 就是典型的 C 級網(wǎng)絡(luò)。 CAN 全稱為 Controller Area Network, 即控制器局域網(wǎng),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一,最初 CAN 被設(shè)計作為汽車環(huán)境中的微控制器通訊,在車載各電子控制裝置 ECU 之間交換信息形成汽車電子控制網(wǎng)絡(luò)。比如:發(fā)動機管理系統(tǒng),變速箱控制器,儀表裝備,電子主干系統(tǒng)中,均嵌入 CAN 控制裝置。 汽車要求安全 、使用方便、操作不能太復(fù)雜、對價格敏感、性 能可靠;汽車又是應(yīng)用環(huán)境最差的設(shè)備,所以可能的道路、電磁以及氣候環(huán)境幾乎都可以遇到。專門為汽車設(shè)計的 CAN 總線當(dāng)然是最理想的汽車總線選擇, CAN 總線主要具有以下的優(yōu)點: 1)高速串行數(shù)據(jù)接口功能。 CAN 支持從幾千到 1Mbps 的數(shù)據(jù)傳輸速度。 2)使用廉價物理介質(zhì), CAN 可以使用屏蔽或非屏蔽的雙膠線,同軸電纜以及光纖作為網(wǎng)線。 3)數(shù)據(jù)幀短,短的數(shù)據(jù)幀利于減小延時,提高實時性;但降低可有效數(shù)據(jù)傳輸速度。 4)反應(yīng)速度快,發(fā)送時不需要等待令牌,對請求反應(yīng)迅速。 5)多站同時發(fā)送,優(yōu)先數(shù)據(jù)獲取總線。 6)錯誤檢測 和校正能力強,保證系統(tǒng)的可靠性。 7)無破壞基于優(yōu)先權(quán)的仲裁。 8)通過接收過濾的方式實現(xiàn)多地址幀傳送。 9)具有遠(yuǎn)程數(shù)據(jù)請求功能。 10)具有全系統(tǒng)數(shù)據(jù)兼容性。 11)具有丟失仲裁或出錯的幀自動重發(fā)的功能。 當(dāng)提到 CAN 時,我們需要理解 ISO 11898 標(biāo)準(zhǔn)中的功能性 7。這個標(biāo)準(zhǔn)包括由ISO 參考模型的物理層(第一層)和數(shù)據(jù)鏈路層(第二層),沒有規(guī)定應(yīng)用層。現(xiàn)在,數(shù)據(jù)鏈路層有兩種形式現(xiàn)在都被廣泛使用,一種是具有 11 位 ID 標(biāo)識符的 BasicCAN,另一種是帶有擴展成 29 位 ID 標(biāo)識符的高級形式 PeliCAN,各使用者根據(jù)不同的要求有不同的選擇。 由于 CAN 也在非汽車自動化中被廣泛使用,幾乎同時產(chǎn)生了幾個較高層協(xié)議和開放式系統(tǒng)方法。今天, DeviceNet15, CANopen10 和 SDS15 這三種基于 CAN 的開放式系統(tǒng)已經(jīng)成熟其標(biāo)準(zhǔn)已經(jīng)形成。這三個標(biāo)準(zhǔn)給人留下一個印象,那就是它們 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 具有相同的功能性,雖然這三個標(biāo)準(zhǔn)采用的方法不盡相同,最明顯的不同是信息標(biāo)示符的使用。信息標(biāo)示符的使用在 SDS 里是基于完整的預(yù)定義方式,而在 CANopen 里信息標(biāo)示符的使用是向系統(tǒng)設(shè)計者或綜合者保持開 放, DeviceNet 的信息標(biāo)示符的使用也自由但相對有些限制。 盡管 CAN 協(xié)議已經(jīng)有 15 年的歷史,但它仍處在改進(jìn)之中。現(xiàn)在, CAN 在全球市場上仍然處于起始點,當(dāng)?shù)玫街匾晻r誰也無法預(yù)料 CAN 總線系統(tǒng)在下一個 10-15 年內(nèi)的發(fā)展趨勢。需要強調(diào)的一個現(xiàn)實,近幾年美國和歐洲的汽車廠商將會在他們所生產(chǎn)汽車的串行部件上使用 CAN 。 1.3 本課題的主要研究內(nèi)容和方法 本課題要對汽車 CAN 總線技術(shù)進(jìn)行研究。自行設(shè)計,研制一個典型的汽車電控系統(tǒng),組建一個由三個 CAN 節(jié)點組成的 CAN 網(wǎng)絡(luò)。 第一個 CAN 節(jié)點是由計 算機構(gòu)成的控制平臺 ,通過 CAN 總線設(shè)定電機的運行參數(shù) ,并實時顯示反饋的電機運行情況。第二個CAN 節(jié)點和第三個 CAN 節(jié)點分別由 89C51 系列的單片機構(gòu)成,保持與 node_1 的通信 ,根據(jù) node_1 的要求實時監(jiān)控一個直流電機,并反饋電機的運行情況。 完成系統(tǒng)的詳細(xì)設(shè)計,各個節(jié)點的電氣圖,程序的流程圖和所有源代碼 (所有硬件和軟件都需采用模塊化的設(shè)計思想,提高其可移植性,為后續(xù)研究做好準(zhǔn)備 )。完成系統(tǒng)的搭建且調(diào)試通過,并進(jìn)行系統(tǒng)性能檢測。 針對實際應(yīng)用,提出一個在摩托車中應(yīng)用 CAN 技術(shù)的解決方案,分析方案的特點及工 作原理,并完成初步設(shè)計。最后提出關(guān)于 CAN 總線本科教學(xué)的建議 。 本課題按照下列步驟進(jìn)行研究: 復(fù)習(xí)有關(guān)基礎(chǔ)知識, 主要包括:數(shù)電 、 模電 、 數(shù)控 、 PC 原理、 MCU 原理、 C語言 、DDK/WDM、 MFC 等。補充學(xué)習(xí)未掌握的知識,主要是學(xué)習(xí)車上網(wǎng)絡(luò)和 CAN 總線協(xié)議。通過查找并整理資料,進(jìn)一步了解車上電控系統(tǒng)和 CAN 總線網(wǎng)絡(luò)的構(gòu)建 ,主要包括電控系統(tǒng)的組建, CAN 總線的組建, CAN 總線的初始化,電機的 PWM 調(diào)速和轉(zhuǎn)速測量,設(shè)備驅(qū)動程序的編寫, UI 的設(shè)計等等。 在對相關(guān)知識全面掌握的基礎(chǔ)上,借鑒現(xiàn)有的相關(guān)應(yīng)用,并結(jié)合新的技術(shù) 水平,完成系統(tǒng)的總體方案設(shè)計,繪制系統(tǒng)方框圖。通過查相關(guān)資料確定出所需要的硬件,通過調(diào)研確定硬件的購置(包括購買地址和價格的確定),以此為依據(jù)完成硬件電路的設(shè)計,繪制出系統(tǒng)電路圖。在硬件的基礎(chǔ)上,完成軟件和用戶界面的設(shè)計。 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 然后完成系統(tǒng)的調(diào)試和改進(jìn),并進(jìn)行系統(tǒng)性能檢測。最后編寫出相關(guān)文檔,完成畢業(yè)設(shè)計說明書的撰寫,總結(jié)汽車 CAN 總線網(wǎng)絡(luò)的開發(fā)方法,步驟和規(guī)則性。 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 2 總體方案設(shè)計 2.1 系統(tǒng)方框圖 雖然汽車電控系統(tǒng)是一個相當(dāng)復(fù)雜的系統(tǒng),但主要是用來進(jìn)行通信和參數(shù)共享的, 所以對一個三節(jié)點典型系統(tǒng)的研究可以說 明問題。 本汽車 CAN 總線系統(tǒng)由三個節(jié)點(至少三個節(jié)點才能說明通信網(wǎng)絡(luò)的正確性)組成,并通過控制器局域網(wǎng) (CAN-bus)連接起來,形成一個基于 CAN 總線的通信網(wǎng)絡(luò)。第一個 CAN 節(jié)點 (node_1)是由計算機構(gòu)成的控制平臺 ,通過 CAN 總線設(shè)定電機的運行參數(shù) ,并實時顯示反饋的電機運行情況。首先制作一塊 CAN 到 LPT 的轉(zhuǎn)接卡,實現(xiàn) CAN總線接入計算機,然后編寫總線驅(qū)動程序和低層的接口函數(shù)庫,最后完成控制平臺的應(yīng)用程序。 第二個 CAN 節(jié)點 (node_1)和第三個 CAN 節(jié)點 (node_3) 分別由 89C51 系列的單 片機構(gòu)成,保持與 node_1 的通信 ,根據(jù) node_1 的要求實時監(jiān)控一個直流電機,并反饋電機的運行情況。單片機通過 CAN 控制器和 CAN 驅(qū)動器接入 CAN 總線,要為 CAN 控制器編寫正確的初始化程序。 圖 2-1 系統(tǒng)方框圖 對小型直流電機的速度控制采用 PWM 調(diào)速 ,控制平臺接收操作人員給出的 PWM 的占空比,然后把含有占空比的控制信息發(fā)送給指定的節(jié)點。 節(jié)點 MCU 接收到控制信息MCU Node_2 ID:0202 PC Node_1 ID:0101 MCU Node_3 ID:0303 CAN 總線 驅(qū)動程序 接口函數(shù) 控制平臺 驅(qū)動器 傳感器 電機2 驅(qū)動器 傳感器 電機3 CAN-PCI轉(zhuǎn)接卡 CAN 控制器 驅(qū)動器 CAN 控制器 驅(qū)動器 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 后,首先分析該控制信息的性質(zhì),然后根據(jù)控制信息做出相應(yīng)的操作。當(dāng)接收到含有占空比的控制信息, MCU 就改變輸出的 PWM 信號的占空比,該 PWM 信號經(jīng)放大后用來驅(qū)動電機,達(dá)到調(diào)速的目的。 速度的測量使用霍爾效應(yīng)傳感器。霍爾效應(yīng)傳感器感應(yīng)的電機的轉(zhuǎn)動產(chǎn)生脈沖信號,經(jīng)放大后送 MCU 計數(shù), MCU 計數(shù)一秒得到電機的轉(zhuǎn)速 , MCU 把數(shù)據(jù)打包上傳到 CAN總線。 node_1 從總線上接收到數(shù)據(jù),控制平臺實時顯示,系統(tǒng)方框如圖 2-1 所示。 2.2 CAN 總線主要參數(shù)的選擇 對 CAN 總線的參數(shù)進(jìn)行選擇,首先要 了解 CAN 總線的網(wǎng)絡(luò)協(xié)議。當(dāng)提到 “ CAN 標(biāo)準(zhǔn) ” 或 “ CAN 協(xié)議 ”, 我們需要理解 ISO 11898 標(biāo)準(zhǔn)中 1和 2各自的功能性。這個標(biāo)準(zhǔn)包括由 ISO 參考模型的物理層(第一層)和數(shù)據(jù)鏈路層(第二層)。其中,第一層負(fù)責(zé)譬如物理信號傳輸,譯碼,位時序和位同步等的功能,而第二層負(fù)責(zé)像總線仲裁,信息分段以及數(shù)據(jù)安全,數(shù)據(jù)確認(rèn),錯誤檢測,信號傳輸和錯誤控制的功能。 CAN 標(biāo)準(zhǔn)沒有規(guī)定媒體的連接單元以及其駐留媒體,也沒有規(guī)定應(yīng)用層。 圖 2-2 CAN 節(jié)點的構(gòu)成 物理層定義了物理數(shù)據(jù)在總線上各節(jié)點間的傳輸過程 .設(shè)計一個 CAN 網(wǎng)絡(luò),物理層有很大的選擇余地 ,但必須保證 CAN 總線的非破壞性仲裁,即出現(xiàn)競爭時有高優(yōu)先權(quán)標(biāo)識符的數(shù)據(jù)獲取仲裁的原則;所以要求物理層必須支持 CAN 總線中隱性位(高電平 1)和顯性位(底電平 0)的狀態(tài)特征,顯性位的發(fā)送會覆蓋隱性位的狀態(tài)。當(dāng)兩 控制線 地址線 數(shù)據(jù)線 TX RX CAN-H CAN-L 節(jié)點微控制器 CAN 控制器 CAN 驅(qū)動器 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 個節(jié)點同時發(fā)送信息的時候先出現(xiàn)底電平的數(shù)據(jù)獲得仲裁。從物理結(jié)構(gòu)上看,一個 CAN接點的構(gòu)成如圖 2-2。 CAN 總線的數(shù)據(jù)鏈路層是 CAN 協(xié)議的核心內(nèi)容,它定義了四種 不同的信息幀:數(shù)據(jù)幀,遠(yuǎn)程幀,錯誤幀,超載幀。其中數(shù)據(jù)幀是最重要的,如圖 3所示。起始域為一個顯性位( 0),當(dāng)總線空閑時,一個隱性到顯性的變化表示一個幀的開始,進(jìn)行硬同步。標(biāo)識符有 29 位和 11 位兩種, 11 位的是標(biāo)準(zhǔn) CAN 格式, 19 位的是擴展 CAN 格式。我們選擇 29 位的是擴展 CAN 格式。 RTR 為遠(yuǎn)程傳送請求位??刂朴蚪o出要傳送的數(shù)據(jù)的長度,最多 8個字節(jié)。數(shù)據(jù)域給出要傳送的數(shù)據(jù)。接收數(shù)據(jù)的節(jié)點在應(yīng)答域給出應(yīng)答(一個顯性位 0),表示正確接收到了數(shù)據(jù)。如果沒有節(jié)點在應(yīng)答域給出應(yīng)答,就表示數(shù)據(jù)發(fā)送錯誤,發(fā)送數(shù)據(jù)的節(jié)點會 重發(fā)該幀。 7 個連續(xù)的隱性位表示幀結(jié)束。 表 2-1 數(shù)據(jù)幀格式 CAN 總線的傳輸層是由物理層和數(shù)據(jù)鏈路層共同決定的。 CAN 總線上的信息以一定的格式發(fā)送 ,當(dāng)總線空閑時 ,任何網(wǎng)上節(jié)點都可以發(fā)送信息 ,要發(fā)送的信息有特征標(biāo)識符 ,信息以廣播的方式發(fā)送 ,所有的節(jié)點都可以接收。節(jié)點接收到一幀數(shù)據(jù)后通過標(biāo)識符判定是否接收這個信息。不同的 CAN 系統(tǒng)可以有不同的數(shù)據(jù)傳送速率,但同一網(wǎng)絡(luò)的節(jié)點傳輸速度必須一致。我們選擇最高的波特率 1Mbps。理論上 CAN 總線上的節(jié)點沒有數(shù)量的限制,而實際應(yīng)用中受限于總線上的數(shù)據(jù) 延時和電氣負(fù)載能力。 CAN 使用廣播信息發(fā)送,各節(jié)點采用驗收碼和屏蔽碼組合的方法來決定是否接收某一個數(shù)據(jù)幀。除去屏蔽碼屏蔽掉的位外,當(dāng)某個幀的發(fā)送標(biāo)識符和驗收碼一致時,該數(shù)據(jù)被接收。 本設(shè)計屏蔽碼都設(shè)定為 0000FFFF,即把后兩個字節(jié)屏蔽掉另做它用。前兩個字節(jié)用于識別,用節(jié)點的節(jié)點號的重復(fù)作為識別可以大大提高系統(tǒng)的穩(wěn)定性。倒數(shù)第二個字節(jié)用作發(fā)送節(jié)點的節(jié)點號。最后一個字節(jié)只有高五位有效,用作指令。這樣,當(dāng)一幀的標(biāo)識符為 01010210 時,說明:該幀是由 2 號節(jié)點發(fā)給 1 號節(jié)點的,指令信息為 01。 根據(jù)分析,結(jié)合 本汽車 CAN 總線系統(tǒng)設(shè)計的內(nèi)容和目的, CAN 總線的重要參數(shù),標(biāo)識符和數(shù)據(jù)域的選擇和分配如表 2-2。 幀起始 標(biāo)識符 RTR 控制域 數(shù)據(jù)域 CRC 校驗 應(yīng)答域 幀結(jié)束 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 表 2-2 系統(tǒng)參數(shù) 項目 Node_1 Node_2 Node_3 幀格式 擴展幀 擴展幀 擴展幀 發(fā)送格式 正常發(fā)送 正常發(fā)送 正常發(fā)送 濾波方式 單濾波 單濾波 單濾波 波特率 1Mbps 1Mbps 1Mbps 驗收碼 01010000 02020000 03030000 屏蔽碼 0000FFFF 0000FFFF 0000FFFF 發(fā)送 幀類型 數(shù)據(jù)幀 數(shù)據(jù)幀 數(shù)據(jù)幀 發(fā)送標(biāo)識符 020201XX 010102XX 010103XX 發(fā)送數(shù)據(jù) 0 PWM 占空比 速度 L 速度 L 發(fā)送數(shù)據(jù) 1 未用 速度 H 速度 H 2.3 CAN 總線應(yīng)用層的定義 Node_2 Node_1 Node_3 圖 2-3 系統(tǒng)功能圖 從應(yīng)用層的角度來看 ,本汽車 CAN總線系統(tǒng)主要實現(xiàn)如圖 2-3所示的四個數(shù)據(jù)通道: node_2 測量電機 2 的實時速度上傳到 node_1; node_1 對電機 2控制指令下傳到總線 實時速度 顯示 2 電機速度 控制 2 實時速度 顯示 3 電機速度 控制 3 速度測量 PWM 調(diào)速 速度測量 PWM 調(diào)速 通道 1 node_2測量的實時速度數(shù)據(jù)上傳到node_1;node_1 對電機二的控制指令下傳到node_2; 通道 2 通道 3 通道 4 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 node_2; node_3 測量電機 3的實時速度上傳到 node_1; node_1 對電機 3 控制指令下傳到 node_3。四個通道都是建立在 CAN 總線上,因為 CAN 總線是一種對等總線(不像RS-232 或者 USB2.0 是主從總線),上傳和下傳只是相對的。 在通道 1 上,每一秒鐘 node_2 上傳一次測量的電機 2的實時速度到 node_1,發(fā)送標(biāo)識符 01010200(表示由 node_2 發(fā)送到 node_1,指令為 00),含有兩個字節(jié)的數(shù)據(jù), data0 是電機 2 的實時速度的底字節(jié), data1 是電機 2的實時速度的高字節(jié)。 Node_1采用查詢方式(使用一個進(jìn)程)接收數(shù)據(jù)并顯示電機 2的實時速度。 在通道 2 上,控制指令的傳輸是事件觸發(fā)的,當(dāng)操作人員有指令的時候, node_1就會實時的把它下傳到 node_2,發(fā)送標(biāo)識符 02020100(表示由 node_1 發(fā)送到 node_2,指令為 00),含有一個字節(jié)的數(shù)據(jù) data0。 data0 是 PWM 的占空比,范圍 1 到 255。node_2 采用中斷方式(外部中斷 1, interrupt0)接收數(shù)據(jù),并改變電機的占空比,從而改變電機 2的速度。 在通道 3上,每一秒鐘 node_3 上傳一次測量的電機 3的實時速度到 node_1,發(fā)送標(biāo)識符 01010300(表示由 node_3 發(fā)送到 node_1,指令為 00),含有兩個字節(jié)的數(shù)據(jù), data0 是電機 3 的實時速度的底字節(jié), data1 是電機 3的實時速度的高字節(jié)。 Node_1采用查詢方式(使用一個進(jìn)程)接收數(shù)據(jù)并顯示電機 3的實時速度。 在通道 4上,控制指令的傳輸是事件觸發(fā)的,當(dāng)操作人員有指令的時候, node_1就會實時的把它下傳到 node_3,發(fā)送標(biāo)識符 03030100(表示由 node_1 發(fā)送到 node_2,指令為 00),含有一個字節(jié)的數(shù)據(jù) data0。 data0 是 PWM 的占空比,范圍 1 到 255。node_3 采用中斷方式(外部中斷 1, interrupt0)接收數(shù)據(jù),并改變電機的占空比,從而改變電機 3的速度。 2.4 程序設(shè)計方法選擇 基于 MCU 的 CAN 節(jié)點的程序設(shè)計采用前 /后臺系統(tǒng),模塊化設(shè)計方法。每一個功能讓一個子程序完成,所以功能通過子程序調(diào)用。設(shè)計軟件 Keil C51,使用 C 語言完成。 基于 PC 的 CAN 節(jié)點程序設(shè)計成 Windows 程序。驅(qū)動程序和接口函數(shù)庫的編寫使用 C+語言編寫,其中接口函數(shù)庫生成動態(tài)鏈接庫,供編寫的 Windows 應(yīng)用程序調(diào)用。應(yīng)用程序使用 MFC 編程生成 Windows 應(yīng)用程序。 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 3 基于單片機的 CAN 節(jié)點的接口設(shè)計 3.1 接口硬件設(shè)計 3.1.1 接口元器件選擇 基于 MCU 的 CAN 總線智能節(jié)點由四部分組成 :單片機 ,CAN 控制器 ,CAN 驅(qū)動器和高速光電耦合器。主要考慮到 CAN 總線是車載的,其抗干擾和穩(wěn)定性要求都很高。所以在 CAN 總線通信接口中采用 PHILIPS 公司的 SJA1000 和 TJA1050芯片。 SJA1000 是獨立 CAN 控制器, TJA1050 為高性能 CAN 總線收發(fā)器(總線驅(qū)動器)?;?MCU 的CAN 總線智能節(jié)點采用 P89C668 作為節(jié)點的微處理器,高速光電耦合器選用 6N137。 P89C668 是增強型 80C51 系列的單片機。 P89C668 單片機內(nèi)帶 64KB Flash 存儲器,該存儲器既可并行編程也可以串行在系統(tǒng)編程( ISP)。在 Boot ROM 程序中可通過一個默認(rèn)的串行下載器 UART 對 Flash 存儲器作 ISP 編程,而在 Flash 代碼區(qū)中并不需要有 調(diào)用下載器的代碼。用戶程序可通過調(diào)用在 Boot ROM 中的標(biāo)準(zhǔn)子程序?qū)lash 存儲器擦寫和再編程即 IAP。該器件在 6 個時鐘周期內(nèi)執(zhí)行一條指令,是傳統(tǒng)的 80C51 的兩倍。該器件用 advanced CMOS 工藝制造是 80C51 單片機家族的衍生品其指令集和 80C51 相同。該器件有四個 8 位 I/O 口,三個 16 位定時器 /計數(shù)器,多中斷源,四個優(yōu)選級,可嵌套中斷結(jié)構(gòu),一個增強型 UART 和片內(nèi)振蕩器以及時序電路。 P89C668 新增特性使其成為一個功能強大的單片機,為某些應(yīng)用提供 PWM ,高速的 I/O 和加 /減計數(shù),如汽車控制。 此外,選擇 P89C668 主要基于以下幾個原因:它使用 Flash 存儲器, ISP 編程和 IAP 編程,開發(fā)方便快捷;其 64KB 的程序存儲器和 8KB 的數(shù)據(jù)存儲器足夠我們的需求,無須外部擴展;其功能強大,提供 PWM,符合系統(tǒng)的要求。 SJA1000 是一個獨立的 CAN 控制器,它在汽車和普通的工業(yè)應(yīng)用上有先進(jìn)的特征。特別適合于轎車內(nèi)的電子模塊傳感器,制動器的連接和通用工業(yè)應(yīng)用中。特別是系統(tǒng)優(yōu)化,系統(tǒng)診斷和系統(tǒng)維護(hù)時特別重要。 SJA1000 它是 PHILIPS 半導(dǎo)體 PCA82C200 CAN 控制器 BasicCAN 的替代產(chǎn)品而且它增加了一種新的工作模式 PeliCAN ,這種模式支持具有很多新特性的 CAN 2.0B 協(xié)議??傊?, SJA1000 是車上專用的 CAN 控制器,起穩(wěn)定性和抗干擾能力很好。 TJA1050 高速 CAN 收發(fā)器是控制器局域網(wǎng) CAN 控制器和物理總線之間的接口。它主要有以下特征:與“ ISO 11898”標(biāo)準(zhǔn)完全兼容;速度高(最高可達(dá) 1M 波特);低電磁輻射( EME);可抗電磁干擾( EMI);沒有上電的節(jié)點不會對總線造成干擾;熱 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 保護(hù);可以連接至少 110 個節(jié)點。 3.1.1 接口總體設(shè)計 綜上所述,接口電路主要由四部分所構(gòu)成,微控制器 89C668, 獨立 CAN 控制器SJA1000, CAN 總線收發(fā)器 TJA1050 和高速光電耦合器 6N137。 微處理器 89C668 負(fù)責(zé) SJA1000 的初始化通過控制 SJA1000 實現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。 SJA1000 的 AD0-AD7 連接到 89C668 的 P0 口, CS 連接到 89C668 的P2.0。 P2.0 為 0 時, CPU 片外存貯器地址可選中 SJA1000, CPU 通過這些地址可對SJA1000 執(zhí)行相應(yīng)的讀寫操作。 SJA1000 的 RD, WR, ALE 分別與 89C668 的對應(yīng)引腳相連。 INT 接 89C668 的 0INT。 89C668 也可通過中斷方式訪問 SJA1000,本汽車 CAN總線系統(tǒng)所使用的就是這種方式。 為了增強 CAN 總線節(jié)點的抗干擾能力, SJA1000 的 TX0 和 RXO 并不是直接與SJA1000 的 TXD 和 RXD 相連,而是通過高速光耦 6N137 后與 SJA1000 相連。這樣就很好的實現(xiàn)了總線上各 CAN 節(jié)點間的電氣隔離。不過應(yīng)該特別說明的一點是光耦部分電路所采用的兩個電源 VCC 和 VDD 必須完全隔離否則采用光耦也 就失去了意義。電源的完全隔離采用小功率電源隔離模塊實現(xiàn)。這些部分雖然增加了節(jié)點的復(fù)雜但是卻提高了節(jié)點的穩(wěn)定性和安全性。 TJA1000與 CAN 總線的接口部分也采用了一定的安全和抗干擾措施, TJA1000 的CANH 和 CANL 引腳各自通過一個阻值為 5 的電阻與 CAN 總線相連。電阻可起到一定的限流作用 ,保護(hù) TJA1000 免受過流的沖擊。 CANH 和 CANL 與地之間并聯(lián)了兩個 30P 的小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射的能力。另外在兩根CAN 總線接入端與地之間分別反接了一個保護(hù)二極 管,當(dāng) CAN 總線有較高的負(fù)電壓時通過二極管的短路可起到一定的過壓保護(hù)作用。 圖 3-1 CAN接口電路圖 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 3.1.2 接口電路圖 根據(jù)總體設(shè)計思想和選擇的芯片,使用繪圖軟件 Protel 繪制基于 MCU 的 CAN節(jié)點 CAN 總線接電路原理圖,如圖 3-1。 3.2 接口軟件設(shè)計 CAN 總線節(jié)點的軟件設(shè)計包括三大部分: CAN 節(jié)點初始化,報文發(fā)送和報文接收。有了這三個部分程序的設(shè)計就能編寫出利用 CAN 總線進(jìn)行通信的一 般應(yīng)用程序。要將 CAN 總線應(yīng)用于通信任務(wù)比較復(fù)雜的系統(tǒng)中,需詳細(xì)了解有關(guān) CAN 總線錯誤處理,總線脫離處理,接收濾波處理,波特率參數(shù)設(shè)置和自動檢測,以及 CAN 總線通信距離和節(jié)點數(shù)的計算等方面的內(nèi)容。 3.2.1 初始化子程序設(shè)計 圖 3-2 初始化子程序流程圖 SJA1000 的初始化只有在復(fù)位模式下才可以進(jìn)行,初始化主要包括:工作方式的設(shè)置,接收濾波方式的設(shè)置,接收屏蔽寄存器 AMR 和接收代碼寄存器 ACR 的設(shè) 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 置,波特率參數(shù)設(shè)置,中斷允許寄存器 IER 的設(shè)置 ,等等。在完成 SJA1000 的初始化設(shè)置以后 SJA1000 就可以回到工作狀態(tài),進(jìn)行正常的通信任務(wù)。圖 3-2 提供了SJA1000 初始化的流程圖。 在已經(jīng)具有基本流程圖的前提下,整個初始化程序就可以輕松編寫源代碼了,其具體程序見附錄 B。 3.2.2 報文發(fā)送子程序設(shè)計 進(jìn)行完初始化程序后, CAN 器件便能進(jìn)行正常的 CAN 報文發(fā)送和接收了。發(fā)送子程序負(fù)責(zé)節(jié)點報文的發(fā)送。發(fā)送時,用戶將待發(fā)送的數(shù)據(jù)按 CAN 報文的格式組合成一幀報文送入 SJA1000 發(fā)送緩存區(qū)中,然后啟動 SJA1000 相應(yīng)的發(fā)送命令。在往SJA1000 發(fā)送緩存區(qū)送報文之前,必須先作判斷。發(fā)送程序可以發(fā)送 CAN 報文的遠(yuǎn)程幀和數(shù)據(jù)幀。遠(yuǎn)程幀與數(shù)據(jù)幀相比無數(shù)據(jù)場,掌握數(shù)據(jù)幀的發(fā)送就能掌握遠(yuǎn)程幀的發(fā)送。下面就以發(fā)送數(shù)據(jù)幀為例進(jìn)行分析。圖 3-3 提供了報文發(fā)送子程序的流程分析,具體的程序?qū)崿F(xiàn)見附錄 B。 圖 3-3 報文發(fā)送子程序流程圖 3.2.3 報文接收子程序設(shè)計 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 CAN 控制器收到的報文是存放在接收緩沖區(qū)。接收子程序負(fù)責(zé)讀取接收緩沖區(qū)的值以及其它情況處理。報文的接收可以使用查詢方式和中斷方式。兩者在思路上相似,不 過采用中斷方式進(jìn)行接收,在實時性方面要大大優(yōu)于查詢方式。本汽車 CAN總線系統(tǒng)使用的是中斷方式接收報文。圖 3-4 提供了報文接收子程序的流程分析,具體的程序?qū)崿F(xiàn)見附錄 B。 圖 3-4:報文接受子程序流程圖 從流程圖可以看出,在確定 CAN 節(jié)點的接收緩沖區(qū)有接收數(shù)據(jù)后,讀取接收緩沖區(qū)的數(shù)據(jù)并保存,然后釋放接收緩沖區(qū)。 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 4 基于單片機的 CAN 節(jié)點的功能部分設(shè)計 4.1 功能部分硬件電路的設(shè)計 4.1.1 元器件的選擇 基于單片機的功能部分包括兩塊, PWM 調(diào)速 和霍爾效應(yīng)傳感器測量轉(zhuǎn)速。 MCU根據(jù)要求輸出 PWM 信號, MCU 輸出的 PWM 信號大約只有 200uA,該 PWM 信號經(jīng)放大后用來驅(qū)動一個 5 伏, 200mA 的電機。選擇 ULN200A 作為放大器件。霍爾效應(yīng)接近開關(guān)感應(yīng)到的電機的轉(zhuǎn)動,產(chǎn)生脈沖信號,該脈沖信號經(jīng)過經(jīng)光電耦合后無須放大直接送給 MCU 計數(shù), MCU 計數(shù)一秒得到電機的轉(zhuǎn)速。霍爾接近開關(guān)選用HKK5002C,光電耦合器使用 TLP512。 ULN2003A 是耐高壓,高集成度的達(dá)林頓管 (Darlington)陣列,每片由七個 NPN型的 Darlington 組成,并且共 用一個續(xù)流二極管。 工作電壓 5 伏時,一個 Darlington 的集電級額定電流是 500mA,并且 Darlington 可以進(jìn)行并聯(lián)。 HKK5002C 是 HK 系列的霍爾接近開關(guān),它是一種用磁場訊號來驅(qū)動的新型自動開關(guān)。其工作電壓 5 伏,負(fù)載電流 20mA,工作距離 5mm,最高響應(yīng)頻率 50KHZ,足夠用來測量直流電機轉(zhuǎn)速。 4.1.2 電路圖的設(shè)計 單片機使用 P1.3 口產(chǎn)生 PWM 信號, PWM 出來后接到 ULN2003A 的 7B 口(使用第七個達(dá)林頓管)進(jìn)行放大,經(jīng)過放大后從 7C 口輸出驅(qū)動電機, ULA2003A 的 COM口接 9 伏電源。霍爾接近開關(guān)使用 5 伏電源 VCC,輸出的信號經(jīng)過一個 390 歐的限流電阻后,接到 TLP512 的 9 端,經(jīng)過光電耦合后,經(jīng)過一個 390 歐的上拉電阻接到MCU 的 P3.5 進(jìn)行計數(shù)。 390 歐的上拉電阻的電源使用信號源( VCC 電源必須先經(jīng)過一個電源轉(zhuǎn)換器 B0505),以達(dá)到完全的隔離。電路圖見附錄 A,圖 4-1 只給出框圖: P1.3 圖 4-1 功能電路方框圖 MCU ULA2003A 電機 HKK5002C TLP512 390 歐 B0505 390 歐 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 4.2 功能部分軟件的設(shè)計 CAN 節(jié)點 node_2 和 node_3 功能部分的軟件設(shè)計完全相同,包括兩大部分: PWM調(diào)速軟件設(shè)計和計數(shù)測速的軟件設(shè)計。 4.2.1 PWM調(diào)速軟件設(shè)計 PWM 調(diào)速的軟件設(shè)計,主要利用中斷方式接收 CAN 總線上的調(diào)速指令,根據(jù)指令設(shè)置 P89C668 的可編程計數(shù)器陣列 PCA。 程序源碼見附錄 B,圖 4-2 為 PWM 調(diào)速軟件設(shè)計流程圖。 圖 4-2 PWM調(diào)速軟件設(shè)計 4.2.2 計數(shù)測速軟件設(shè)計 計數(shù)測速的軟件設(shè)計,首 先讓定時 /計數(shù)器 T1 工作于 16 位計數(shù),計數(shù) P3.5 口的霍爾接近開關(guān)的方波信號。定時 /計數(shù)器 T2 工作于 16 位常數(shù)自動再裝入方式,產(chǎn)生25ms 的計時。每 25ms 會產(chǎn)生一次中斷( interrupt 7),中斷服務(wù)子程序中的一個全局變量會加 1,計數(shù) 40 個 25ms 就是 1s,每 1s讀出 T1 計數(shù)器的值(即轉(zhuǎn)速),并清零。程序源碼見附錄 B,圖 4-3 為 PWM 調(diào)速軟件設(shè)計流程圖。 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 N Y 圖 4-3 計數(shù)測速的軟件流程 T1 初試化 設(shè)定工作方式 16 位計數(shù) 清零 完成初始化 T2 初始化 設(shè)定工作方式 16 位計時 設(shè)定計數(shù)初值 設(shè)定中斷禁止 設(shè)定中斷允許 啟動 啟動 完成初始化 中斷服務(wù)入口 清中斷標(biāo)志 計數(shù)值 time 加 1 1S T2 停止計數(shù) 讀計數(shù)值到發(fā)送 緩沖區(qū) Data=0,重新開始 中斷出口 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 5 基于 PC機的 CAN 節(jié)點的設(shè)計 基于 PC 機的 CAN 節(jié)點 (node_1)的設(shè)計 ,首先制作一塊 CAN 到 LPT 的轉(zhuǎn)接卡,實現(xiàn) CAN 總線接入計算機。然后編寫總線驅(qū)動程序和低層的接口函數(shù)庫,最后完成控制平臺應(yīng)用程序。為了縮短項目的開發(fā)周期,選用廣州周立功單片機發(fā)展有限公司的 CANmini 微型 CAN 接口 卡,驅(qū)動和接口函數(shù)庫,此基礎(chǔ)上設(shè)計本系統(tǒng)的 UI 應(yīng)用程序。 5.1 LPT-CAN接口卡 CANmini 微型 CAN 接口卡是一款便攜式 CAN 總線通訊適配卡,通過計算機并行接口,使 PC 機方便地連接到 CAN 總線,實現(xiàn) CAN2.0B( A)協(xié)議的數(shù)據(jù)通訊。CANmini 微型 CAN 接口卡能自動檢測系統(tǒng)中可用的并口資源,采用 EPP 傳輸模式及中斷機制實現(xiàn)接收 /發(fā)送,更快的傳輸速率、更低的計算機 CPU 資源占用。 CANmini 硬件小巧,直接插在計算機的 LPT 上即可使用,軟件使用通用的 ZLGVCI 驅(qū)動程序接口 。 5.2 接口函數(shù)庫 在接口函數(shù)庫里,定義了 4 個數(shù)據(jù)結(jié)構(gòu), 14 個接口函數(shù),應(yīng)用程序通過調(diào)用他們來對 CAN 總線進(jìn)行操作。接口庫函數(shù)使用,首先,把庫函數(shù)文件都放在工作目錄下??偣灿腥齻€文件 ControlCAN.h , ControlCAN.lib, ControlCAN.dll 和一個文件夾kerneldlls。然后, VC+ 調(diào)用動態(tài)庫,在 .CPP 中包含 ControlCAN.h 頭文件;在工程文件中加入 ControlCAN.lib 文件。 這 14 個函數(shù)分別是:打開設(shè)備函數(shù);關(guān)閉設(shè)備函數(shù);初始化 CAN 函數(shù);讀 取設(shè)備信息函數(shù);獲取錯誤信息函數(shù);讀取 CAN 狀態(tài)函數(shù);讀取設(shè)備參數(shù)函數(shù);設(shè)置設(shè)備參數(shù)函數(shù);返回緩沖區(qū)未讀取的幀數(shù)函數(shù);清空指定緩沖區(qū)函數(shù);啟動 CAN 函數(shù);復(fù)位 CAN 函數(shù);發(fā)送數(shù)據(jù)函數(shù)和接收數(shù)據(jù)函數(shù)。 5.3 應(yīng)用軟件的 MFC設(shè)計 根據(jù) 2.3 節(jié)對本 CAN 總線系統(tǒng)應(yīng)用層的定義, 在接口函數(shù)庫的基礎(chǔ)上編寫Windows 應(yīng)用程序。在 VC+中使用 MFC 應(yīng)用程序向?qū)Ы⒁粋€工程項目名為 node-1的基本對話框項目,并把庫函數(shù)文件都放在工作目錄下??偣灿腥齻€文件ControlCAN.h , ControlCAN.lib, ControlCAN.dll 和一個文件夾 kerneldlls。在 .CPP 中包含 ControlCAN.h 頭文件;在工程文件中加入 ControlCAN.lib 文件。制作如圖 5-2 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 的應(yīng)用程序主窗口。 圖 5-1 接口函數(shù)使用流程 讀取設(shè)備信息函數(shù) 獲取錯誤信息函數(shù) 數(shù) 讀取 CAN 狀態(tài)函數(shù) 數(shù) 讀取設(shè)備參數(shù)函數(shù) 數(shù) 讀取設(shè)備信息函數(shù) 打開設(shè)備函數(shù) 初始化 CAN函數(shù) 啟動 CAN 函數(shù) 設(shè)置設(shè)備參數(shù)函數(shù) 數(shù) 返回 未讀取數(shù)函數(shù) 關(guān)閉設(shè)備函數(shù) 復(fù)位 CAN 函數(shù) 接收數(shù)據(jù)函數(shù) 發(fā)送數(shù)據(jù)函數(shù) 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 6 系統(tǒng)構(gòu)建與性能檢測 6.1 系統(tǒng)構(gòu)建和調(diào)試 在本 CAN 總線系統(tǒng) 設(shè)計完成后,進(jìn)行構(gòu)建調(diào)試和性能檢測。通常情況下,設(shè)計一個系統(tǒng),應(yīng) 該先開發(fā)硬件再進(jìn)行軟件設(shè)計。在有仿真實驗儀的前提下,可以先開發(fā)軟件,確保軟件可以實現(xiàn),再做硬件,這樣可以降低開發(fā)風(fēng)險和成本,提高開發(fā)速度,減小開發(fā)周期。 用 Keil C51 編寫 node_2 的軟件,并進(jìn)行軟件仿真( Keil C51 具有軟件仿真的功能)。再進(jìn)行硬件仿真,使用 DP-668 仿真實驗儀,上位機使用 CAN 測試軟件模擬應(yīng)用層協(xié)議。功能部分硬件暫時沒有,使用示波器觀察 P1.3 口的 PWM 信號,它是不是根據(jù)指令調(diào)整了 PWM 的占空比。使用函數(shù)信號發(fā)生器產(chǎn)生方波信號輸入到 P3.5 口,模擬霍爾接近開關(guān)產(chǎn)生的轉(zhuǎn)速信號, 不斷改變方波信號的頻率, node_2 采集的轉(zhuǎn)速是不是和方波信號的頻率一致。 圖 5-2 應(yīng)用程序主窗口 Node_2 的程序調(diào)通后,改變一下 ID 得到 node_3 的軟件程序。下位機的程序調(diào) 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 通后,再通過下位機來調(diào)試上位機的程序, node_1 的界面如圖 5-2。在軟件全部完成后,開始制作硬件。制作 PCB 板,然后焊接電路。硬件完成后,讓標(biāo)準(zhǔn)程序在電路板上運行,硬件沒有問題后,把系統(tǒng)軟件和硬件結(jié)合,完成整個系統(tǒng)。 6.2 系統(tǒng)性能 檢測 本汽車 CAN 總線系統(tǒng)完成后要對其進(jìn)行性能檢測,通過系統(tǒng)性能檢測發(fā)現(xiàn)潛在的缺陷,掌握系統(tǒng)性能參數(shù)。 系統(tǒng)性能測試可以細(xì)分到單元測試、集成測試、系統(tǒng)測試。單元測試、集成測試都應(yīng)該在開發(fā)階段完成。系統(tǒng)測試應(yīng)該由專門的測試部門進(jìn)行,開發(fā)者完成集成測試后,即可啟動系統(tǒng)測試;當(dāng)產(chǎn)品完全達(dá)到設(shè)計指標(biāo)時,即可完成測試。 圖 6-1 系統(tǒng)檢測 單元測試在系統(tǒng)搭建的時候已經(jīng)完成了,要做的是系統(tǒng)的集成測試。其測試網(wǎng)絡(luò)如圖 6-1, 左邊是本汽車 CAN 總線系統(tǒng),右邊增加一個測試節(jié)點,該節(jié)點上運行ZLGCANTest 軟件,監(jiān)視整個網(wǎng)絡(luò)。系統(tǒng)正常運行,并反復(fù)使用設(shè)計要求中所規(guī)定的功能,看看他們能否準(zhǔn)確完成項目所要求的各個功能,這個過程至少需要 24 個小時,在整個過程中測試節(jié)點記錄下總線上所有的通信數(shù)據(jù),測試過程見附錄。 對監(jiān)控數(shù)據(jù)進(jìn)行分析,得出如下結(jié)論:在 24 個小時的不間斷數(shù)據(jù)傳輸中,總線上沒有出現(xiàn)錯誤數(shù)據(jù),系統(tǒng)穩(wěn)定運行,沒有死機,非法操作等現(xiàn)象??梢哉f明本汽車CAN 總線系統(tǒng)的正確性 ,和穩(wěn)定性。此外,測試得到了表 6-2 中的重要的系統(tǒng)性能參數(shù) 。 Node_1 Node_2 Node_3 CAN-BUS 測試節(jié)點 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 表 6-2 系統(tǒng)重要參數(shù) 項目 最大值 無網(wǎng)橋最長節(jié)點距離 40m 無網(wǎng)橋最多節(jié)點數(shù)目 110 最高位傳輸速率 1Mbps 每幀基本用時 0.322ms 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 7 汽車車身 CAN 解決方案 CAN 總線優(yōu)越的性能完全滿足汽車對的實時性,安全性和穩(wěn)定性的要求,幾乎可以把它應(yīng)用中在汽車網(wǎng)絡(luò)系統(tǒng)的不同領(lǐng)域,不同層次(除車上媒體系統(tǒng)要求更高的傳輸速率)?;谏厦鎸?CAN 總線的研究,提出如下的車身 CAN 解決方案。 該 CAN 網(wǎng)絡(luò)用來 連接中央門鎖以及車門控制單元。網(wǎng)絡(luò)采用星型結(jié)構(gòu),以保證在一個單元出現(xiàn)故障時,其他的單元仍可以發(fā)送接收信息。使用網(wǎng)絡(luò)連接的方法實現(xiàn)這些電控單元間的通信,減少線路,提高通信線路的可靠性和容錯能力,提高自診斷能力。該 CAN 網(wǎng)絡(luò)是用于車身的其對實時性要求不高,選擇如下參數(shù): 傳輸介質(zhì)使用雙絞線。數(shù)據(jù)傳輸速度使用低速: 62.5Kbps。每個網(wǎng)絡(luò)節(jié)點的發(fā)送信息的時間間隔為 10ms 該網(wǎng)絡(luò)由 5 個節(jié)點組成,其優(yōu)先級的順序定義如下: 1) 中央控制單元, node1。 2) 駕駛員側(cè)前門控制單元, node2。 3) 乘客側(cè)前門控制單元, node3。 4) 駕駛員側(cè)后門控制單元, node4。 5) 乘客側(cè)后面控制單元, node5。 CAN 電源 圖 7-1 車身 CAN網(wǎng)絡(luò) 中央控制器 左 前 單元 左 后 單元 右 后 單元 右 前 單元 門鎖 車窗 車窗 車窗 車窗 門鎖 門鎖 門鎖 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 圖 7-2 給出駕駛員側(cè)前門控制單元中央控制器的應(yīng)用層的定義,其它的單元傳輸?shù)男畔⒍x類似。 表 7-1 車身 CAN 應(yīng)用層定義 功能 狀態(tài) Data0 標(biāo)識符 中央門鎖 驗收碼: 02020110 屏蔽碼: 000000FF 基本狀態(tài) 00000001B 01010210 安全狀態(tài) 00000010B 01010210 上鎖 00000100B 01010210 開鎖 00001000B 01010210 電動窗 驗收碼: 02020120 屏蔽碼: 000000FF 打開 00000001B 01010220 關(guān)上 00000010B 01010220 開大一些 00000100B 01010220 關(guān)小一些 00001000B 01010220 中央控制器: 驗收碼: 01010000 屏蔽碼: 0000FFFF 例如:當(dāng)中央控制器發(fā)送一個數(shù)據(jù)幀,標(biāo)識符 02020110,數(shù)據(jù) 00000011B,駕駛員側(cè)前門控制單元就會接收到該信息,表示:中央控制器讓駕駛員側(cè)前門中央門鎖上鎖,并處于安全狀態(tài)。當(dāng)駕駛員側(cè)前門控制單元處理完該信息后,就會反饋一個幀,標(biāo)識符 01010210,數(shù)據(jù) 00000011B, 中央控制器就會接收到該信息,表示:駕駛員側(cè)前門中央門鎖已經(jīng)上鎖, 并處于安全狀態(tài)。如果 1s 后中央控制器還沒有接收到駕駛員側(cè)前門控制單元的反饋信息,就報警表示系統(tǒng)故障。如果在 1s 內(nèi)接收到駕駛員側(cè)前門控制單元的反饋信息,這顯示駕駛員側(cè)前門中央門鎖已經(jīng)上鎖,并處于安全狀態(tài)。 CAN 更重要的應(yīng)用是用于汽車重要電控系統(tǒng)間的通信。這些電控系統(tǒng)包括:電控燃油噴射系統(tǒng),電控轉(zhuǎn)向系統(tǒng),防抱死制動系統(tǒng)( ABS),防滑控制系統(tǒng)( ASR),等等。當(dāng)然, 當(dāng) CAN 用于這些重要系統(tǒng)間的時候,就需要更加復(fù)雜的應(yīng)用層協(xié)議。現(xiàn)在有很多行業(yè)標(biāo)準(zhǔn)或者是國際標(biāo)準(zhǔn),比如國際標(biāo)準(zhǔn)化組織( International Organization for Standardization)的 ISO11992、 ISO11783 以及汽車工程協(xié)會( Society of Automotive Engineers )的 SAE J1939。最好遵守這些標(biāo)準(zhǔn),因為 CAN 總線已經(jīng)作為汽車的一種標(biāo)準(zhǔn)設(shè)備列入汽車的整體設(shè)計中。只要遵守這些標(biāo)準(zhǔn)就可以大大縮短項目的開發(fā)周期,當(dāng)然也就需要更大的投入,因為這些協(xié)議都會收取高額的使用費用。 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 8 摩托車 CAN 總線解決方案 把廉價的 CAN 通信系統(tǒng)移植到高端摩托車上是很有意義的,因為使用 CAN 總線的摩托車與普 通摩托車相比至少具有以下四個優(yōu)點: 1) 降低摩托車組裝的開銷。 2) 大大提高系統(tǒng)的可靠性和安全性。 3) 使摩托車的升級換代更加簡單,快速。 4) 操作更加簡單方便。 摩托車 CAN 總線通信網(wǎng)絡(luò)由四個 CAN 節(jié)點組成,每個 CAN 節(jié)點控制摩托車上的一個區(qū)域,如圖。 圖 8-1 車上節(jié)點安排 CAN-bus 圖 8-2 摩托車 CAN 總線 解決方案 儀表板節(jié)點 油 量 顯 示 油 量 顯 示 速 度 顯 示 用 戶 指令示 其 它 顯 示 車尾節(jié)點 車 尾 燈 轉(zhuǎn) 向燈 傳感器 車頭節(jié)點 傳感器4 啟動 鎖 冷卻風(fēng)扇 電喇叭 轉(zhuǎn) 向燈 傳感器5 座下節(jié)點 傳感器3 傳感器2 傳感器1 電子擋 車頭節(jié)點 儀表板節(jié)點 車尾節(jié)點 坐下節(jié)點 減震器 減震器 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 摩托車上的四個區(qū)域是這樣劃分的:儀表板區(qū)域,車頭區(qū)域,車尾區(qū)域,座下區(qū)域。四個區(qū)域只通過一個 CAN 總線連接起來,這樣大大減少了線簇,組裝時間也會大大減少,并且提高了系統(tǒng)的穩(wěn)定性。 下面討論一下這四個 CAN 節(jié)點是如何工作的。車頭節(jié)點負(fù)責(zé)控制大燈,轉(zhuǎn)向燈,啟動鎖,發(fā)聲輪,已及額外的溫度傳感器,冷卻風(fēng)扇,電喇叭。儀表節(jié)點在車頭節(jié)點的上面,它負(fù)責(zé)控制所以的用戶指令,數(shù)碼顯示和儀表。座下節(jié)點安排在摩托車的中部,用來管理發(fā)動機的一些傳感器 (如:油量傳感器,發(fā)動機溫度傳感器,油壓傳感器 )和電子擋的循環(huán)。最后,車 尾節(jié)點負(fù)責(zé)控制車尾燈,傳感器,轉(zhuǎn)向燈。系統(tǒng)總線結(jié)構(gòu)如圖 8-2。 使用 CAN 總線通信網(wǎng)絡(luò)的摩托車最大的變化就是:用總線,電子開關(guān)和軟件驅(qū)動代替了傳統(tǒng)的線簇,機械開關(guān)和繼電器。當(dāng)然,要這樣做首先必須解決的問題就是必須保證那些重要操作的安全性。上面那個典型系統(tǒng)現(xiàn)在就顯得很有意義了,硬件結(jié)構(gòu)一樣,以第二章提出的高層協(xié)議作為基礎(chǔ),而且是完全具有版權(quán)的,無需向任何組織提交申請和支付大量的版權(quán)費用,要做的就是盡量提高軟件的安全性。表 8-3 為摩托車 CAN 總線應(yīng)用的應(yīng)用層協(xié)議和主要參數(shù)選擇。 表 8-1 節(jié)點 驗收碼 屏蔽碼 標(biāo)識符 Data0 Data1 Data3-7 儀表板 01010000 0000FFFF 0X0X0100 功能 指令 動作 指令 數(shù)據(jù) 坐下 02020100 000000FF 01010200 車頭 03030100 000000FF 01010300 車尾 04040100 000000FF 01010400 注:其中功能指令用于指定該幀是用來發(fā)給哪個功能的。 動作指令是指要該功能完成什么動作。 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 9 CAN 總線本科教學(xué)建議 目的與要求 知識基礎(chǔ) 試驗步驟及 注意事項 注重動手能力培養(yǎng) 增加感性認(rèn)識 1 教學(xué)部分 2 實踐部分 CAN 協(xié)議已經(jīng)有了 15 年的歷史,但它仍處在改進(jìn)之中?,F(xiàn)在, CAN 在全球市場上仍然處于起始點,當(dāng)?shù)玫街匾晻r誰也無法預(yù)料 CAN 總線系統(tǒng)在下一個 10-15 年內(nèi)的發(fā)展趨勢。這里需要強調(diào)一個現(xiàn)實,近幾年美國和歐洲的汽車廠商將會在他們所生產(chǎn)汽車的串行部件上使用 CAN 。另外大量潛在的新應(yīng)用,例如娛樂,正在呈現(xiàn)。CAN 不僅可用于客車,也可用于家庭消費。同時,結(jié)合高層協(xié)議應(yīng)用的特殊保安系統(tǒng)對 CAN 的需求也正在穩(wěn)健增長。鑒于此,建議在本科 階段開設(shè) CAN 總線課程以及其實驗課。 本科 CAN 總線教學(xué),主要是想通過必要的基礎(chǔ)理論教學(xué)與大量的實踐練習(xí)環(huán)節(jié)相結(jié)合,利用先進(jìn)的教學(xué)實驗儀器、開發(fā)環(huán)境,使學(xué)生快速掌握 CAN 總線的基本原理、電路檢測、開發(fā)設(shè)計技術(shù),并具有較強的綜合運用能力,從而培養(yǎng)成為具有良好的實際操作能力、設(shè)計能力的開拓性電子應(yīng)用人才,讓他們真正的掌握一個實用的總線。 CAN 總線技術(shù)適用于本科的應(yīng)用電子技術(shù)、機電一體化、微機應(yīng)用、數(shù)控技術(shù)、自動化、計算機原理與應(yīng)用、儀表及控制、信息通信技術(shù)、汽車工程等現(xiàn)場總線和微機控制的相關(guān)專業(yè)。學(xué)生應(yīng)具有以 下的基礎(chǔ)知識: 數(shù)字電路,模擬電路 、 數(shù)控技術(shù) 、PC 原理、 MCU 原理、匯編 /C 語言。 實驗室的建設(shè)方面有兩套方案。第一套方案,硬件主要:計算機 , 基于 Keil C51 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 的 CANStarter-1 開發(fā)套件, ISP 功能的單片機芯片( P89C6678),步進(jìn)電機 /伺服電機控制板。 軟件方面: Keil C51 編程與開發(fā)、調(diào)試軟件。這些也正是本課題開發(fā)過程中所用到的主要工具。特點是資金要求低,但對學(xué)生的要求較高,實用于小型 CAN總線實驗室,優(yōu)秀學(xué)生選修。第二套方案,選用國外成型的 CAN 總線實驗臺,特點是資金要求高, 實用于大型 CAN 總線實驗室。 CAN 總線的教材可以使用北京航空航天大學(xué)出版社出版的現(xiàn)場總線 CAN 原理與應(yīng)用技術(shù)。該書系統(tǒng)的講述了 CAN 總線的基本原理, CAN 總線的網(wǎng)絡(luò)協(xié)議, CAN控制器 SJA1000 和 CAN 驅(qū)動器 TJA1050。關(guān)于實驗教材,本畢業(yè)設(shè)計詳細(xì)的講解了一個典型 CAN 網(wǎng)絡(luò)的設(shè)計過程,并提供了所有的源碼,可以在此基礎(chǔ)上修改為本科的實驗教材。 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 結(jié) 論 本汽車 CAN 總線通信網(wǎng)絡(luò)在實驗室階段工作穩(wěn)定,控制準(zhǔn)確,數(shù)據(jù)傳輸可靠。證明用單片機 P89C668, CAN 控制器 SJA1000 和 CAN 驅(qū)動器 TJA1050 構(gòu)成的 CAN 節(jié)點具有足夠的實時性,穩(wěn)定性和抗干擾能力,完全滿足車上網(wǎng)絡(luò)應(yīng)用的需求。它是把 CAN總線技術(shù)用于車上數(shù)據(jù)采集傳輸,實時控制的可行性論證和嘗試,說明我們獨立自主研制開發(fā)汽車局域網(wǎng)、實現(xiàn)汽車信息化是完全可行的。 本課題主要對 包括 CAN 總線的汽車電控系統(tǒng)研發(fā)的步驟、方法以及規(guī)律性等進(jìn)行深入探索。 主要解決了以下幾個問題: 1 CAN 通信網(wǎng)絡(luò)的 結(jié)構(gòu) 設(shè)計,節(jié)點的安排,主要參數(shù)的選擇和汽車通信網(wǎng)絡(luò)的應(yīng)用層協(xié)議制定的方法和步驟。 2 基于 MCU 的 CAN 節(jié)點接口硬件電路設(shè)計方法, CAN 控制器的初始化 程序設(shè)計,報文發(fā)送子程序的設(shè)計和報文接收子程序的設(shè)計。 3 基于 PC 的 CAN 節(jié)點硬件電路設(shè)計方法, CAN 驅(qū)動程序設(shè)計, CAN 接口庫函數(shù)設(shè)計和應(yīng)用程序設(shè)計。 4 探索了 CAN 總線系統(tǒng)檢測方法,得出了 CAN 總線的重要性能參數(shù)。 5 提出了 CAN 總線在摩托車上使用的方案 和 關(guān)于了 CAN 總線教學(xué)的建議 。 汽車 CAN 總線通信是一項新技術(shù),相關(guān)資料缺乏,且課題對系統(tǒng)的自動化程度要求較高,牽涉的技術(shù)范圍廣,一人單獨完成,因此具有一定研制難度。由于本人水平有限,課題研究時間短,對開發(fā)軟件的掌握也還有限,系統(tǒng)存在缺陷在所難免( 如:系統(tǒng)的兼容性問題,上位機程序在 2000 系統(tǒng)上運行的時候就常有死機現(xiàn)象)有待進(jìn)一步研究與完善。 在畢業(yè)設(shè)計過程中,我學(xué)到了很多東西,動手能力有很大的提高,掌握了開發(fā)一個系統(tǒng)的一般過程:先收集相關(guān)資料,然后設(shè)計出系統(tǒng)方案,再完成硬件的選型和軟件開發(fā)。通過資料的收集整理使我的知識面得到了很大的拓展,對汽車電控,汽車CAN 總線通信的認(rèn)識更加深刻,并了解了車上網(wǎng)絡(luò)的發(fā)展現(xiàn)狀。經(jīng)過硬件選型,讓我接觸到很多工程中常用的器件,使我搞懂了這些器件的工作原理,并掌握了查找一個所需零件的方法和在查找過程中所應(yīng)該注意的問題。 UI 應(yīng)用程序的設(shè)計讓我了解了 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 MFC。通過 WDM 驅(qū)動程序的編寫,我學(xué)會 DDK 的使用。 希望通過本論文的撰寫,總結(jié)一下含有 CAN 總線的汽車電控系統(tǒng)研發(fā)的步驟、方法以及規(guī)律性,為后續(xù)的研究做好準(zhǔn)備。也希望通過本論文的撰寫,能夠給正在為我國自主開發(fā)汽車網(wǎng)絡(luò)網(wǎng)而奮斗的同仁們有所幫助。 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 致 謝 在本課題結(jié)束之際,首先我要衷心地感謝我的畢業(yè)設(shè)計指導(dǎo)老師常思勤教授。是他給我提供良好的工作環(huán)境,整套的實驗儀器和充裕的項目經(jīng)費,也是他給我指明了研究方向,明確設(shè)計目標(biāo),使我在專業(yè)知識和科研方法上都收益非淺。對常老師給 予我的關(guān)心、指導(dǎo)和幫助表示誠摯的感謝! 此外,還要感謝本實驗室的師兄給予的支持和各種幫助。 借此機會,請容許我對給我提供這四年學(xué)習(xí)機會的父母表示最崇高的謝意。是他們不辭勞苦的工作 ,我才有機會進(jìn)入高等院校學(xué)習(xí)。 在論文的撰寫和校正階段,得到了許多熱心人的幫助,在此一并感謝! 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 參 考 文 獻(xiàn) 1 秦貴和 .車上網(wǎng)絡(luò)技術(shù)北京:機械工業(yè)出版社, 2003 2 鄔寬明 .CAN 總線原理與應(yīng)用系統(tǒng)設(shè)計 .北京 ,北京航空航天大學(xué)出版社 ,1996 3 王練 .CAN 在大眾汽車中的應(yīng)用 .上海大眾 ,2000 4 周立功 .單片機與 TCP/IP 綜合應(yīng)用技術(shù) .廣州周立功單片機發(fā)展有限公司 ,2003 5 Mohsin M. Jamali, etc. A CAN Based Real-time Embedded System for DC Motor Control. SAE Paper 2002-01-0444 6 F. Baronti, etc. Low-cost CAN-Based Communication System for High-End Motor-Scooter. SAE Paper 2002-01-2154 1 ISO-IS 11898, Road vehicles - Interchange of digital information - Controller Area Network (CAN) for high speed communication, 1993 2 Bosch, CAN specification, Version 2.0, 1991, Robert Bosch GmbH 3 PHILIPS SJA1000 stand-alone CAN controller product specification 2000 Jan 04 4 周立功 . CANstarter-I 開發(fā)套件應(yīng)用指南 V1.1, 2003 5 饒運濤 .現(xiàn)場總線 CAN 原理與應(yīng)用技術(shù) .北京航空航天大學(xué)出版社, 2003.6 6 廣州周立功單片機發(fā)展有限公司 .SJA1000 獨立的 CAN 控制器 ,2003 7 周立功 .單片機原理與應(yīng)用設(shè)計 .北京航空航天大學(xué)出版社 ,2001 8 黃維通 .Visual C+面向?qū)ο笈c可視化程序設(shè)計 .清化大學(xué)出版社 ,2003 9 CiA DS 201-207,CAN Application Layer for Industrial Applications, 1996 10 PHILIPS. SJA1000 stand-alone CAN controller product specification, 2000 11 葛林 .CAN 通信網(wǎng)絡(luò)在汽車中的應(yīng)用研究 .汽車技術(shù) ,2000 12 程芳 .車輛控制系統(tǒng) CAN 總線通信的實施方法 .汽車工程 ,2001.5 13 劉惠 .基于 CAN 總線的客車后置發(fā)動機數(shù)據(jù)采集顯示系統(tǒng) ,車輛與動力技術(shù) ,2002 14 馬安麗 .汽車網(wǎng)絡(luò)總線技術(shù)發(fā)展分析 .汽車科技, 2002.3 15 劉錄秀 .國外車身 CAN 數(shù)據(jù)總線 .重慶重汽科技, 2001.4 16 劉 新亮 .汽車電器網(wǎng)絡(luò)設(shè)計研究 .汽車電器, 1998 17 Data sheet. ULN2003A ADARLINGTON TRANSISTOR ARRAYS.2004.8 18 Data sheet. TJA1050 High speed CAN transceiver.2004.4 19 Data sheet. SJA1000 Stand-alone CAN controller.2004.4 20 Data sheet. P89C668 80C51 8-bit Flash micro controller family 64KB ISP FLASH with 8KB RAM.2001.5 21 數(shù)據(jù)手冊 .DC/DC 轉(zhuǎn)換技術(shù)手冊 .2004.4 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 22 數(shù)據(jù)手冊 .DP-668 下載實驗儀用戶指南 .2004.4 23 數(shù)據(jù)手冊 .CAN starter-I 開發(fā)套件用戶手冊 .2004.8 24 數(shù)據(jù)手冊 .CAN-mini 用戶手冊 .2003.6 25 趙慧敏,朱先民,王明國,趙方庚,姜丁,吳曉 .評價 CAN 總線系統(tǒng) EMC 的一種新方法汽車電器,第 7 期 ,2001.3 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 附錄 A 節(jié)點電路圖 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 附錄 B 部分源碼 /CCCCCC* /函數(shù)原型 : char charSJA_write(struct sms *info) /說明 : 報文發(fā)送子程序 /* struct sms unsignedcharRTRFlag :1; /遠(yuǎn)程幀或數(shù)據(jù)幀標(biāo)志 ;0=數(shù)據(jù)幀; 1=遠(yuǎn)程幀; unsignedcharDataLength :4; /本次幀的數(shù)據(jù) dlc unsignedcharFrameID4; /報文識別碼 unsignedcharDatabuf8; ; charSJA_write(struct sms *info) char idata status=0; if(ReadSJAReg(REG_CAN_SR)&TBS_BIT)=0)status=SJA_TXBUFLOCK; /status=(-12) else if(info-RTRFlag=0) WriteSJAReg(REG_CAN_TXFMINFO,0x80+info-DataLength); WriteSJARegBlock(REG_CAN_TXBUF5,info-Databuf,info-DataLength); else WriteSJAReg(REG_CAN_TXFMINFO,0x80+0x40+info-DataLength); WriteSJARegBlock(REG_CAN_TXBUF1,info-FrameID,0x04); SJASystemPrgCMD(0x03); /正常發(fā)送命令 , 不允許自動重發(fā) return status; /DDDDDD* /函數(shù)原型 : char charSJA_read(struct sms *info) /說明 : 報文接受子程序 /* charSJA_read(struct sms *info) char idata status=0; if(ReadSJAReg(REG_CAN_SR)&RBS_BIT)=0)status=SJA_RXBUFEMPTY; /status=(-13) else if(ReadSJAReg(REG_CAN_TXFMINFO)&0x40)=0) info-RTRFlag=0; info-DataLength=ReadSJAReg(REG_CAN_TXFMINFO)&0x0F; 本科畢業(yè)設(shè)計說明書(論文) 第 頁 共 42 頁 ReadSJARegBlock(REG_CAN_TXBUF5,info-Databuf,info-DataLength); else info-RTRFlag=1; ReadSJARegBlock(REG_CAN_TXBUF1,info-
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 糖果企業(yè)戰(zhàn)略定位與規(guī)劃考核試卷
- 熱電聯(lián)產(chǎn)系統(tǒng)安全性與穩(wěn)定性分析考核試卷
- 縫紉機市場營銷策略考核試卷
- 2025年分銷產(chǎn)品合同協(xié)議范本
- 2025某商業(yè)綜合體租賃合同
- 2025標(biāo)準(zhǔn)貨物買賣合同范本匯編
- 如何制定職能戰(zhàn)略
- 二零二五版單位招聘委托書委托招聘書
- 地區(qū)貨物運輸合同二零二五年
- 二零二五版機動車典當(dāng)質(zhì)押合同
- 濟南水務(wù)集團(tuán)有限公司招聘筆試真題2024
- 《電工電子技術(shù)基礎(chǔ)》高職全套教學(xué)課件
- 眾辰變頻器z2400t-15gy-1說明書
- 上海市四年級數(shù)學(xué)綠色指標(biāo)測試卷
- 春節(jié)作文優(yōu)秀課件
- 三角函數(shù)的應(yīng)用論文Word版
- 農(nóng)業(yè)創(chuàng)業(yè)風(fēng)險控制與防范培訓(xùn)課件
- 生物制造國內(nèi)外狀況課件
- 幼兒園大班數(shù)學(xué)口算練習(xí)題可打印
- 藥物臨床試驗管理和質(zhì)量控制課件(PPT 55頁)
- 橋梁下部結(jié)構(gòu)監(jiān)理細(xì)則
評論
0/150
提交評論