汽車(chē)CAN總線技術(shù)研究論文_第1頁(yè)
汽車(chē)CAN總線技術(shù)研究論文_第2頁(yè)
汽車(chē)CAN總線技術(shù)研究論文_第3頁(yè)
汽車(chē)CAN總線技術(shù)研究論文_第4頁(yè)
汽車(chē)CAN總線技術(shù)研究論文_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

南 京 理 工 大 學(xué) 畢業(yè)設(shè)計(jì)說(shuō)明書(shū) (論文 ) 作 者 : 學(xué) 號(hào): 學(xué)院 (系 ): 機(jī)械工程學(xué)院 專 業(yè) : 機(jī)械設(shè)計(jì)制造及其自動(dòng)化 題 目 : 汽車(chē) CAN 總線技術(shù)研究 指導(dǎo)者: (姓 名 ) (專業(yè)技術(shù)職務(wù) ) 評(píng)閱者: (姓 名 ) (專業(yè)技術(shù)職務(wù) ) 2005 年 6 月 教授 副教授 畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文)中文摘要 對(duì)正在迅速發(fā)展之中的汽車(chē) CAN 總線技術(shù)進(jìn)行了研究。 自行設(shè)計(jì)、研制 了一個(gè) 典型的能實(shí)際運(yùn)行的汽車(chē)電控系統(tǒng),包括 CAN 總線、電控單元以及控制元件(電機(jī))等。 該系統(tǒng)總共由三個(gè)節(jié)點(diǎn)組成,并通過(guò)控制器局域網(wǎng) (CAN-bus)連接起來(lái),形成一個(gè)基于 CAN 總線的通信網(wǎng)絡(luò)。第一個(gè) CAN 節(jié)點(diǎn)是由計(jì)算機(jī)構(gòu)成的控制平臺(tái) ,接收用戶指令,通過(guò) CAN 總線控制另兩個(gè)節(jié)點(diǎn)上的電機(jī),并實(shí)時(shí)顯示它們反饋的運(yùn)行情況。第二個(gè) CAN 節(jié)點(diǎn)保持與節(jié)點(diǎn) 1的通信 ,根據(jù)節(jié)點(diǎn) 1的要求實(shí)時(shí)監(jiān)控一個(gè)電機(jī)。第三個(gè)節(jié)點(diǎn)的 ID 不同于第二個(gè) CAN 節(jié)點(diǎn),監(jiān)控另一個(gè)電機(jī)。整個(gè)系統(tǒng)已經(jīng)完成并調(diào)試通過(guò),測(cè)試證明完全符合車(chē)上通信網(wǎng)絡(luò)的需要。 針對(duì)實(shí)際應(yīng)用,提出了一個(gè)在摩托車(chē)中應(yīng)用 CAN 技術(shù)的解決方案,分析了方案的特點(diǎn)及工作原理,并完成了初步設(shè)計(jì)。 對(duì)包括 CAN 總線的汽車(chē)電控系統(tǒng)研發(fā)的步驟、方法以及規(guī)律性等進(jìn)行了探索,并為我校本科教學(xué)中開(kāi)設(shè)相關(guān)實(shí)驗(yàn)進(jìn)行了準(zhǔn)備工作,提出了具體的設(shè)想與方案。 關(guān)鍵詞 汽車(chē) 電子控制 CAN 總線 通信 網(wǎng)絡(luò) 畢 業(yè)設(shè)計(jì)說(shuō)明書(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è)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 目 次 1 緒論 4 1.1 汽車(chē) CAN總線技術(shù)的研究意義 4 1.2 汽車(chē) CAN總線技術(shù)的發(fā)展現(xiàn)狀 4 1.3 本課題的主要研究?jī)?nèi)容和方法 6 2 CAN 總線系統(tǒng)總體方案設(shè)計(jì) 8 2.1 系統(tǒng)方框圖 8 2.2 CAN 總線主要參數(shù)的選擇 9 2.3 CAN 總線應(yīng)用層的定義 12 2.4 程序設(shè)計(jì)方法選擇 12 3 基于單片機(jī)的 CAN節(jié)點(diǎn)的 CAN接口 設(shè)計(jì) 13 3.1 接口硬件設(shè)計(jì) 14 3.1.1 接口元器件選擇 15 3.1.2 接口電路圖設(shè)計(jì) 15 3.2 接口軟件設(shè)計(jì) 15 3.2.1 初始化子程序的設(shè)計(jì) 15 3.2.2 發(fā)送子程序的設(shè)計(jì) 16 3.2.3 接收子程序的設(shè)計(jì) 16 4 基于單片機(jī)的 CAN節(jié)點(diǎn)的功能部分設(shè)計(jì) 18 4.1 功能部分硬件設(shè)計(jì) 18 4.1.1 元器件的選擇 18 4.1.2 電路圖的設(shè)計(jì) 18 4.2 功能部分軟件設(shè)計(jì) 19 4.2.1 PWM 調(diào)速軟件設(shè)計(jì) 19 4.2.2 計(jì)數(shù)測(cè)速軟件設(shè)計(jì) 19 5 基于 PC 機(jī)的 CAN 節(jié)點(diǎn)的設(shè)計(jì) 21 5.1 LPT-CAN 接口卡 21 5.2 接口函數(shù)庫(kù) 21 5.3 應(yīng)用軟件的 MFC 設(shè)計(jì) 21 6 系統(tǒng)構(gòu)建與性能檢測(cè) 23 6.1 系統(tǒng)構(gòu)建和調(diào)試 23 6.2 系統(tǒng)性能檢測(cè) 24 7 汽車(chē)車(chē)身 CAN 解決的方案 26 8 摩托車(chē) CAN 總線解決方案 28 9 CAN 總線本科教學(xué)建議 30 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 結(jié)論 31 致謝 32 參考文獻(xiàn) 34 附錄 A 節(jié)點(diǎn)電路圖 36 附錄 B 部分源碼 37 附錄 C 系統(tǒng)調(diào)試 41 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 1 緒論 1.1 汽車(chē) CAN 總線技術(shù)研究的意義 隨著汽車(chē)電子技術(shù)的不斷發(fā)展,汽車(chē)上的電子裝置越來(lái)越多。較高檔的汽車(chē)中,電子系統(tǒng)的成本已經(jīng)超過(guò)總成本的 20%,并且增長(zhǎng)很快。汽車(chē)上新的技術(shù)增長(zhǎng)點(diǎn)幾乎無(wú)一不與電子技術(shù)和信息技術(shù)的相關(guān)。車(chē)上電子裝置不斷增加,使得連接這些裝置的電子線路迅速膨脹,線束越來(lái)越復(fù)雜,布線就越來(lái)越困難,在汽車(chē)設(shè)計(jì),裝配,維修中的負(fù)擔(dān)甚至到了無(wú)法忍受的程度;而且線路以及接頭的增加是引起安全問(wèn)題的巨大隱患。另外,線的質(zhì)量和占用的空間也都成為值得考慮的問(wèn)題。質(zhì)量的增加意味著降低汽車(chē)的效率;線路直徑太大,在相當(dāng)運(yùn)動(dòng)部分過(guò)線非常的困難,如車(chē)窗的線束等。 因此,在電子裝置不斷增加的情況下,減少線束成為一個(gè)必須要解決的問(wèn)題。使用傳統(tǒng)的點(diǎn)對(duì)點(diǎn)并行連接方法,顯 然無(wú)法擺脫這種困境,基于串行信息傳輸?shù)木W(wǎng)絡(luò)結(jié)構(gòu)成為一種必然的選擇。 眾多國(guó)際知名汽車(chē)公司早在 80 年代就積極致力于汽車(chē)網(wǎng)絡(luò)技術(shù)的研究以及應(yīng)用。而我國(guó)目前對(duì)汽車(chē)網(wǎng)絡(luò)技術(shù)的應(yīng)用研究還處于起步階段。為縮短同國(guó)外汽車(chē)技術(shù)水平的差距,提高自身的競(jìng)爭(zhēng)力,單靠技術(shù)引進(jìn)不利于長(zhǎng)期發(fā)展。消化,吸收,研究,開(kāi)發(fā)自己的汽車(chē)網(wǎng)絡(luò)技術(shù)勢(shì)在必行。 本課題正是 對(duì)汽車(chē) CAN 總線技術(shù)進(jìn)行深入的研究 ,通過(guò)設(shè)計(jì)一個(gè)典型的基于 CAN總線的車(chē)上通信網(wǎng)絡(luò) , 對(duì)包括 CAN 總線的汽車(chē)電控系統(tǒng)研發(fā)的步驟、方法以及規(guī)律性等進(jìn)行探索 。 1.2 汽車(chē) CAN 總線技術(shù) 的發(fā)展現(xiàn)狀 汽車(chē) CAN 總線技術(shù)又稱為汽車(chē) CAN 網(wǎng)絡(luò)技術(shù)。汽車(chē)網(wǎng)絡(luò)已經(jīng)經(jīng)歷了大約二十年的發(fā)展,汽車(chē)工程師協(xié)會(huì)( SAE)按照汽車(chē)網(wǎng)絡(luò)系統(tǒng)的性能,從底到高劃分 A 級(jí), B級(jí), C 級(jí), D 級(jí)網(wǎng)絡(luò)。 A 級(jí)網(wǎng)絡(luò)產(chǎn)生最早,主要應(yīng)用于要求價(jià)格底,數(shù)據(jù)傳輸速度,實(shí)時(shí)性,可靠性要求較低的情況。如車(chē)身系統(tǒng)的門(mén)窗和后備箱網(wǎng)絡(luò)系統(tǒng),也可以作為一些傳感器和執(zhí)行器級(jí)別的底層局部連接總線使用。 UART 就是典型的 A 級(jí)網(wǎng)絡(luò)。 B 級(jí)網(wǎng)絡(luò)用于對(duì)數(shù)據(jù)傳輸速度要求較高的系統(tǒng),包括一些車(chē)身控制系統(tǒng),儀表盤(pán),低檔的實(shí)時(shí)控制系統(tǒng)以及故障診斷系統(tǒng)等。典型的 B 級(jí)網(wǎng)絡(luò)是 J1850。 C 級(jí)網(wǎng)絡(luò)主要用于可靠性和實(shí)時(shí)性要 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 求較高的系統(tǒng),如高檔的發(fā)動(dòng)機(jī)和動(dòng)力傳動(dòng)系統(tǒng)的實(shí)時(shí)控制系統(tǒng),線控系統(tǒng)等。CAN2.0 就是典型的 C 級(jí)網(wǎng)絡(luò)。 CAN 全稱為 Controller Area Network, 即控制器局域網(wǎng),是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一,最初 CAN 被設(shè)計(jì)作為汽車(chē)環(huán)境中的微控制器通訊,在車(chē)載各電子控制裝置 ECU 之間交換信息形成汽車(chē)電子控制網(wǎng)絡(luò)。比如:發(fā)動(dòng)機(jī)管理系統(tǒng),變速箱控制器,儀表裝備,電子主干系統(tǒng)中,均嵌入 CAN 控制裝置。 汽車(chē)要求安全 、使用方便、操作不能太復(fù)雜、對(duì)價(jià)格敏感、性 能可靠;汽車(chē)又是應(yīng)用環(huán)境最差的設(shè)備,所以可能的道路、電磁以及氣候環(huán)境幾乎都可以遇到。專門(mén)為汽車(chē)設(shè)計(jì)的 CAN 總線當(dāng)然是最理想的汽車(chē)總線選擇, CAN 總線主要具有以下的優(yōu)點(diǎn): 1)高速串行數(shù)據(jù)接口功能。 CAN 支持從幾千到 1Mbps 的數(shù)據(jù)傳輸速度。 2)使用廉價(jià)物理介質(zhì), CAN 可以使用屏蔽或非屏蔽的雙膠線,同軸電纜以及光纖作為網(wǎng)線。 3)數(shù)據(jù)幀短,短的數(shù)據(jù)幀利于減小延時(shí),提高實(shí)時(shí)性;但降低可有效數(shù)據(jù)傳輸速度。 4)反應(yīng)速度快,發(fā)送時(shí)不需要等待令牌,對(duì)請(qǐng)求反應(yīng)迅速。 5)多站同時(shí)發(fā)送,優(yōu)先數(shù)據(jù)獲取總線。 6)錯(cuò)誤檢測(cè) 和校正能力強(qiáng),保證系統(tǒng)的可靠性。 7)無(wú)破壞基于優(yōu)先權(quán)的仲裁。 8)通過(guò)接收過(guò)濾的方式實(shí)現(xiàn)多地址幀傳送。 9)具有遠(yuǎn)程數(shù)據(jù)請(qǐng)求功能。 10)具有全系統(tǒng)數(shù)據(jù)兼容性。 11)具有丟失仲裁或出錯(cuò)的幀自動(dòng)重發(fā)的功能。 當(dāng)提到 CAN 時(shí),我們需要理解 ISO 11898 標(biāo)準(zhǔn)中的功能性 7。這個(gè)標(biāo)準(zhǔn)包括由ISO 參考模型的物理層(第一層)和數(shù)據(jù)鏈路層(第二層),沒(méi)有規(guī)定應(yīng)用層。現(xiàn)在,數(shù)據(jù)鏈路層有兩種形式現(xiàn)在都被廣泛使用,一種是具有 11 位 ID 標(biāo)識(shí)符的 BasicCAN,另一種是帶有擴(kuò)展成 29 位 ID 標(biāo)識(shí)符的高級(jí)形式 PeliCAN,各使用者根據(jù)不同的要求有不同的選擇。 由于 CAN 也在非汽車(chē)自動(dòng)化中被廣泛使用,幾乎同時(shí)產(chǎn)生了幾個(gè)較高層協(xié)議和開(kāi)放式系統(tǒng)方法。今天, DeviceNet15, CANopen10 和 SDS15 這三種基于 CAN 的開(kāi)放式系統(tǒng)已經(jīng)成熟其標(biāo)準(zhǔn)已經(jīng)形成。這三個(gè)標(biāo)準(zhǔn)給人留下一個(gè)印象,那就是它們 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 具有相同的功能性,雖然這三個(gè)標(biāo)準(zhǔn)采用的方法不盡相同,最明顯的不同是信息標(biāo)示符的使用。信息標(biāo)示符的使用在 SDS 里是基于完整的預(yù)定義方式,而在 CANopen 里信息標(biāo)示符的使用是向系統(tǒng)設(shè)計(jì)者或綜合者保持開(kāi) 放, DeviceNet 的信息標(biāo)示符的使用也自由但相對(duì)有些限制。 盡管 CAN 協(xié)議已經(jīng)有 15 年的歷史,但它仍處在改進(jìn)之中?,F(xiàn)在, CAN 在全球市場(chǎng)上仍然處于起始點(diǎn),當(dāng)?shù)玫街匾晻r(shí)誰(shuí)也無(wú)法預(yù)料 CAN 總線系統(tǒng)在下一個(gè) 10-15 年內(nèi)的發(fā)展趨勢(shì)。需要強(qiáng)調(diào)的一個(gè)現(xiàn)實(shí),近幾年美國(guó)和歐洲的汽車(chē)廠商將會(huì)在他們所生產(chǎn)汽車(chē)的串行部件上使用 CAN 。 1.3 本課題的主要研究?jī)?nèi)容和方法 本課題要對(duì)汽車(chē) CAN 總線技術(shù)進(jìn)行研究。自行設(shè)計(jì),研制一個(gè)典型的汽車(chē)電控系統(tǒng),組建一個(gè)由三個(gè) CAN 節(jié)點(diǎn)組成的 CAN 網(wǎng)絡(luò)。 第一個(gè) CAN 節(jié)點(diǎn)是由計(jì) 算機(jī)構(gòu)成的控制平臺(tái) ,通過(guò) CAN 總線設(shè)定電機(jī)的運(yùn)行參數(shù) ,并實(shí)時(shí)顯示反饋的電機(jī)運(yùn)行情況。第二個(gè)CAN 節(jié)點(diǎn)和第三個(gè) CAN 節(jié)點(diǎn)分別由 89C51 系列的單片機(jī)構(gòu)成,保持與 node_1 的通信 ,根據(jù) node_1 的要求實(shí)時(shí)監(jiān)控一個(gè)直流電機(jī),并反饋電機(jī)的運(yùn)行情況。 完成系統(tǒng)的詳細(xì)設(shè)計(jì),各個(gè)節(jié)點(diǎn)的電氣圖,程序的流程圖和所有源代碼 (所有硬件和軟件都需采用模塊化的設(shè)計(jì)思想,提高其可移植性,為后續(xù)研究做好準(zhǔn)備 )。完成系統(tǒng)的搭建且調(diào)試通過(guò),并進(jìn)行系統(tǒng)性能檢測(cè)。 針對(duì)實(shí)際應(yīng)用,提出一個(gè)在摩托車(chē)中應(yīng)用 CAN 技術(shù)的解決方案,分析方案的特點(diǎn)及工 作原理,并完成初步設(shè)計(jì)。最后提出關(guān)于 CAN 總線本科教學(xué)的建議 。 本課題按照下列步驟進(jìn)行研究: 復(fù)習(xí)有關(guān)基礎(chǔ)知識(shí), 主要包括:數(shù)電 、 模電 、 數(shù)控 、 PC 原理、 MCU 原理、 C語(yǔ)言 、DDK/WDM、 MFC 等。補(bǔ)充學(xué)習(xí)未掌握的知識(shí),主要是學(xué)習(xí)車(chē)上網(wǎng)絡(luò)和 CAN 總線協(xié)議。通過(guò)查找并整理資料,進(jìn)一步了解車(chē)上電控系統(tǒng)和 CAN 總線網(wǎng)絡(luò)的構(gòu)建 ,主要包括電控系統(tǒng)的組建, CAN 總線的組建, CAN 總線的初始化,電機(jī)的 PWM 調(diào)速和轉(zhuǎn)速測(cè)量,設(shè)備驅(qū)動(dòng)程序的編寫(xiě), UI 的設(shè)計(jì)等等。 在對(duì)相關(guān)知識(shí)全面掌握的基礎(chǔ)上,借鑒現(xiàn)有的相關(guān)應(yīng)用,并結(jié)合新的技術(shù) 水平,完成系統(tǒng)的總體方案設(shè)計(jì),繪制系統(tǒng)方框圖。通過(guò)查相關(guān)資料確定出所需要的硬件,通過(guò)調(diào)研確定硬件的購(gòu)置(包括購(gòu)買(mǎi)地址和價(jià)格的確定),以此為依據(jù)完成硬件電路的設(shè)計(jì),繪制出系統(tǒng)電路圖。在硬件的基礎(chǔ)上,完成軟件和用戶界面的設(shè)計(jì)。 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 然后完成系統(tǒng)的調(diào)試和改進(jìn),并進(jìn)行系統(tǒng)性能檢測(cè)。最后編寫(xiě)出相關(guān)文檔,完成畢業(yè)設(shè)計(jì)說(shuō)明書(shū)的撰寫(xiě),總結(jié)汽車(chē) CAN 總線網(wǎng)絡(luò)的開(kāi)發(fā)方法,步驟和規(guī)則性。 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 2 總體方案設(shè)計(jì) 2.1 系統(tǒng)方框圖 雖然汽車(chē)電控系統(tǒng)是一個(gè)相當(dāng)復(fù)雜的系統(tǒng),但主要是用來(lái)進(jìn)行通信和參數(shù)共享的, 所以對(duì)一個(gè)三節(jié)點(diǎn)典型系統(tǒng)的研究可以說(shuō) 明問(wèn)題。 本汽車(chē) CAN 總線系統(tǒng)由三個(gè)節(jié)點(diǎn)(至少三個(gè)節(jié)點(diǎn)才能說(shuō)明通信網(wǎng)絡(luò)的正確性)組成,并通過(guò)控制器局域網(wǎng) (CAN-bus)連接起來(lái),形成一個(gè)基于 CAN 總線的通信網(wǎng)絡(luò)。第一個(gè) CAN 節(jié)點(diǎn) (node_1)是由計(jì)算機(jī)構(gòu)成的控制平臺(tái) ,通過(guò) CAN 總線設(shè)定電機(jī)的運(yùn)行參數(shù) ,并實(shí)時(shí)顯示反饋的電機(jī)運(yùn)行情況。首先制作一塊 CAN 到 LPT 的轉(zhuǎn)接卡,實(shí)現(xiàn) CAN總線接入計(jì)算機(jī),然后編寫(xiě)總線驅(qū)動(dòng)程序和低層的接口函數(shù)庫(kù),最后完成控制平臺(tái)的應(yīng)用程序。 第二個(gè) CAN 節(jié)點(diǎn) (node_1)和第三個(gè) CAN 節(jié)點(diǎn) (node_3) 分別由 89C51 系列的單 片機(jī)構(gòu)成,保持與 node_1 的通信 ,根據(jù) node_1 的要求實(shí)時(shí)監(jiān)控一個(gè)直流電機(jī),并反饋電機(jī)的運(yùn)行情況。單片機(jī)通過(guò) CAN 控制器和 CAN 驅(qū)動(dòng)器接入 CAN 總線,要為 CAN 控制器編寫(xiě)正確的初始化程序。 圖 2-1 系統(tǒng)方框圖 對(duì)小型直流電機(jī)的速度控制采用 PWM 調(diào)速 ,控制平臺(tái)接收操作人員給出的 PWM 的占空比,然后把含有占空比的控制信息發(fā)送給指定的節(jié)點(diǎn)。 節(jié)點(diǎn) MCU 接收到控制信息MCU Node_2 ID:0202 PC Node_1 ID:0101 MCU Node_3 ID:0303 CAN 總線 驅(qū)動(dòng)程序 接口函數(shù) 控制平臺(tái) 驅(qū)動(dòng)器 傳感器 電機(jī)2 驅(qū)動(dòng)器 傳感器 電機(jī)3 CAN-PCI轉(zhuǎn)接卡 CAN 控制器 驅(qū)動(dòng)器 CAN 控制器 驅(qū)動(dòng)器 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 后,首先分析該控制信息的性質(zhì),然后根據(jù)控制信息做出相應(yīng)的操作。當(dāng)接收到含有占空比的控制信息, MCU 就改變輸出的 PWM 信號(hào)的占空比,該 PWM 信號(hào)經(jīng)放大后用來(lái)驅(qū)動(dòng)電機(jī),達(dá)到調(diào)速的目的。 速度的測(cè)量使用霍爾效應(yīng)傳感器?;魻栃?yīng)傳感器感應(yīng)的電機(jī)的轉(zhuǎn)動(dòng)產(chǎn)生脈沖信號(hào),經(jīng)放大后送 MCU 計(jì)數(shù), MCU 計(jì)數(shù)一秒得到電機(jī)的轉(zhuǎn)速 , MCU 把數(shù)據(jù)打包上傳到 CAN總線。 node_1 從總線上接收到數(shù)據(jù),控制平臺(tái)實(shí)時(shí)顯示,系統(tǒng)方框如圖 2-1 所示。 2.2 CAN 總線主要參數(shù)的選擇 對(duì) 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各自的功能性。這個(gè)標(biāo)準(zhǔn)包括由 ISO 參考模型的物理層(第一層)和數(shù)據(jù)鏈路層(第二層)。其中,第一層負(fù)責(zé)譬如物理信號(hào)傳輸,譯碼,位時(shí)序和位同步等的功能,而第二層負(fù)責(zé)像總線仲裁,信息分段以及數(shù)據(jù)安全,數(shù)據(jù)確認(rèn),錯(cuò)誤檢測(cè),信號(hào)傳輸和錯(cuò)誤控制的功能。 CAN 標(biāo)準(zhǔn)沒(méi)有規(guī)定媒體的連接單元以及其駐留媒體,也沒(méi)有規(guī)定應(yīng)用層。 圖 2-2 CAN 節(jié)點(diǎn)的構(gòu)成 物理層定義了物理數(shù)據(jù)在總線上各節(jié)點(diǎn)間的傳輸過(guò)程 .設(shè)計(jì)一個(gè) CAN 網(wǎng)絡(luò),物理層有很大的選擇余地 ,但必須保證 CAN 總線的非破壞性仲裁,即出現(xiàn)競(jìng)爭(zhēng)時(shí)有高優(yōu)先權(quán)標(biāo)識(shí)符的數(shù)據(jù)獲取仲裁的原則;所以要求物理層必須支持 CAN 總線中隱性位(高電平 1)和顯性位(底電平 0)的狀態(tài)特征,顯性位的發(fā)送會(huì)覆蓋隱性位的狀態(tài)。當(dāng)兩 控制線 地址線 數(shù)據(jù)線 TX RX CAN-H CAN-L 節(jié)點(diǎn)微控制器 CAN 控制器 CAN 驅(qū)動(dòng)器 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 個(gè)節(jié)點(diǎn)同時(shí)發(fā)送信息的時(shí)候先出現(xiàn)底電平的數(shù)據(jù)獲得仲裁。從物理結(jié)構(gòu)上看,一個(gè) CAN接點(diǎn)的構(gòu)成如圖 2-2。 CAN 總線的數(shù)據(jù)鏈路層是 CAN 協(xié)議的核心內(nèi)容,它定義了四種 不同的信息幀:數(shù)據(jù)幀,遠(yuǎn)程幀,錯(cuò)誤幀,超載幀。其中數(shù)據(jù)幀是最重要的,如圖 3所示。起始域?yàn)橐粋€(gè)顯性位( 0),當(dāng)總線空閑時(shí),一個(gè)隱性到顯性的變化表示一個(gè)幀的開(kāi)始,進(jìn)行硬同步。標(biāo)識(shí)符有 29 位和 11 位兩種, 11 位的是標(biāo)準(zhǔn) CAN 格式, 19 位的是擴(kuò)展 CAN 格式。我們選擇 29 位的是擴(kuò)展 CAN 格式。 RTR 為遠(yuǎn)程傳送請(qǐng)求位。控制域給出要傳送的數(shù)據(jù)的長(zhǎng)度,最多 8個(gè)字節(jié)。數(shù)據(jù)域給出要傳送的數(shù)據(jù)。接收數(shù)據(jù)的節(jié)點(diǎn)在應(yīng)答域給出應(yīng)答(一個(gè)顯性位 0),表示正確接收到了數(shù)據(jù)。如果沒(méi)有節(jié)點(diǎn)在應(yīng)答域給出應(yīng)答,就表示數(shù)據(jù)發(fā)送錯(cuò)誤,發(fā)送數(shù)據(jù)的節(jié)點(diǎn)會(huì) 重發(fā)該幀。 7 個(gè)連續(xù)的隱性位表示幀結(jié)束。 表 2-1 數(shù)據(jù)幀格式 CAN 總線的傳輸層是由物理層和數(shù)據(jù)鏈路層共同決定的。 CAN 總線上的信息以一定的格式發(fā)送 ,當(dāng)總線空閑時(shí) ,任何網(wǎng)上節(jié)點(diǎn)都可以發(fā)送信息 ,要發(fā)送的信息有特征標(biāo)識(shí)符 ,信息以廣播的方式發(fā)送 ,所有的節(jié)點(diǎn)都可以接收。節(jié)點(diǎn)接收到一幀數(shù)據(jù)后通過(guò)標(biāo)識(shí)符判定是否接收這個(gè)信息。不同的 CAN 系統(tǒng)可以有不同的數(shù)據(jù)傳送速率,但同一網(wǎng)絡(luò)的節(jié)點(diǎn)傳輸速度必須一致。我們選擇最高的波特率 1Mbps。理論上 CAN 總線上的節(jié)點(diǎn)沒(méi)有數(shù)量的限制,而實(shí)際應(yīng)用中受限于總線上的數(shù)據(jù) 延時(shí)和電氣負(fù)載能力。 CAN 使用廣播信息發(fā)送,各節(jié)點(diǎn)采用驗(yàn)收碼和屏蔽碼組合的方法來(lái)決定是否接收某一個(gè)數(shù)據(jù)幀。除去屏蔽碼屏蔽掉的位外,當(dāng)某個(gè)幀的發(fā)送標(biāo)識(shí)符和驗(yàn)收碼一致時(shí),該數(shù)據(jù)被接收。 本設(shè)計(jì)屏蔽碼都設(shè)定為 0000FFFF,即把后兩個(gè)字節(jié)屏蔽掉另做它用。前兩個(gè)字節(jié)用于識(shí)別,用節(jié)點(diǎn)的節(jié)點(diǎn)號(hào)的重復(fù)作為識(shí)別可以大大提高系統(tǒng)的穩(wěn)定性。倒數(shù)第二個(gè)字節(jié)用作發(fā)送節(jié)點(diǎn)的節(jié)點(diǎn)號(hào)。最后一個(gè)字節(jié)只有高五位有效,用作指令。這樣,當(dāng)一幀的標(biāo)識(shí)符為 01010210 時(shí),說(shuō)明:該幀是由 2 號(hào)節(jié)點(diǎn)發(fā)給 1 號(hào)節(jié)點(diǎn)的,指令信息為 01。 根據(jù)分析,結(jié)合 本汽車(chē) CAN 總線系統(tǒng)設(shè)計(jì)的內(nèi)容和目的, CAN 總線的重要參數(shù),標(biāo)識(shí)符和數(shù)據(jù)域的選擇和分配如表 2-2。 幀起始 標(biāo)識(shí)符 RTR 控制域 數(shù)據(jù)域 CRC 校驗(yàn) 應(yīng)答域 幀結(jié)束 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 表 2-2 系統(tǒng)參數(shù) 項(xiàng)目 Node_1 Node_2 Node_3 幀格式 擴(kuò)展幀 擴(kuò)展幀 擴(kuò)展幀 發(fā)送格式 正常發(fā)送 正常發(fā)送 正常發(fā)送 濾波方式 單濾波 單濾波 單濾波 波特率 1Mbps 1Mbps 1Mbps 驗(yàn)收碼 01010000 02020000 03030000 屏蔽碼 0000FFFF 0000FFFF 0000FFFF 發(fā)送 幀類(lèi)型 數(shù)據(jù)幀 數(shù)據(jù)幀 數(shù)據(jù)幀 發(fā)送標(biāo)識(shí)符 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)用層的角度來(lái)看 ,本汽車(chē) CAN總線系統(tǒng)主要實(shí)現(xiàn)如圖 2-3所示的四個(gè)數(shù)據(jù)通道: node_2 測(cè)量電機(jī) 2 的實(shí)時(shí)速度上傳到 node_1; node_1 對(duì)電機(jī) 2控制指令下傳到總線 實(shí)時(shí)速度 顯示 2 電機(jī)速度 控制 2 實(shí)時(shí)速度 顯示 3 電機(jī)速度 控制 3 速度測(cè)量 PWM 調(diào)速 速度測(cè)量 PWM 調(diào)速 通道 1 node_2測(cè)量的實(shí)時(shí)速度數(shù)據(jù)上傳到node_1;node_1 對(duì)電機(jī)二的控制指令下傳到node_2; 通道 2 通道 3 通道 4 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) node_2; node_3 測(cè)量電機(jī) 3的實(shí)時(shí)速度上傳到 node_1; node_1 對(duì)電機(jī) 3 控制指令下傳到 node_3。四個(gè)通道都是建立在 CAN 總線上,因?yàn)?CAN 總線是一種對(duì)等總線(不像RS-232 或者 USB2.0 是主從總線),上傳和下傳只是相對(duì)的。 在通道 1 上,每一秒鐘 node_2 上傳一次測(cè)量的電機(jī) 2的實(shí)時(shí)速度到 node_1,發(fā)送標(biāo)識(shí)符 01010200(表示由 node_2 發(fā)送到 node_1,指令為 00),含有兩個(gè)字節(jié)的數(shù)據(jù), data0 是電機(jī) 2 的實(shí)時(shí)速度的底字節(jié), data1 是電機(jī) 2的實(shí)時(shí)速度的高字節(jié)。 Node_1采用查詢方式(使用一個(gè)進(jìn)程)接收數(shù)據(jù)并顯示電機(jī) 2的實(shí)時(shí)速度。 在通道 2 上,控制指令的傳輸是事件觸發(fā)的,當(dāng)操作人員有指令的時(shí)候, node_1就會(huì)實(shí)時(shí)的把它下傳到 node_2,發(fā)送標(biāo)識(shí)符 02020100(表示由 node_1 發(fā)送到 node_2,指令為 00),含有一個(gè)字節(jié)的數(shù)據(jù) data0。 data0 是 PWM 的占空比,范圍 1 到 255。node_2 采用中斷方式(外部中斷 1, interrupt0)接收數(shù)據(jù),并改變電機(jī)的占空比,從而改變電機(jī) 2的速度。 在通道 3上,每一秒鐘 node_3 上傳一次測(cè)量的電機(jī) 3的實(shí)時(shí)速度到 node_1,發(fā)送標(biāo)識(shí)符 01010300(表示由 node_3 發(fā)送到 node_1,指令為 00),含有兩個(gè)字節(jié)的數(shù)據(jù), data0 是電機(jī) 3 的實(shí)時(shí)速度的底字節(jié), data1 是電機(jī) 3的實(shí)時(shí)速度的高字節(jié)。 Node_1采用查詢方式(使用一個(gè)進(jìn)程)接收數(shù)據(jù)并顯示電機(jī) 3的實(shí)時(shí)速度。 在通道 4上,控制指令的傳輸是事件觸發(fā)的,當(dāng)操作人員有指令的時(shí)候, node_1就會(huì)實(shí)時(shí)的把它下傳到 node_3,發(fā)送標(biāo)識(shí)符 03030100(表示由 node_1 發(fā)送到 node_2,指令為 00),含有一個(gè)字節(jié)的數(shù)據(jù) data0。 data0 是 PWM 的占空比,范圍 1 到 255。node_3 采用中斷方式(外部中斷 1, interrupt0)接收數(shù)據(jù),并改變電機(jī)的占空比,從而改變電機(jī) 3的速度。 2.4 程序設(shè)計(jì)方法選擇 基于 MCU 的 CAN 節(jié)點(diǎn)的程序設(shè)計(jì)采用前 /后臺(tái)系統(tǒng),模塊化設(shè)計(jì)方法。每一個(gè)功能讓一個(gè)子程序完成,所以功能通過(guò)子程序調(diào)用。設(shè)計(jì)軟件 Keil C51,使用 C 語(yǔ)言完成。 基于 PC 的 CAN 節(jié)點(diǎn)程序設(shè)計(jì)成 Windows 程序。驅(qū)動(dòng)程序和接口函數(shù)庫(kù)的編寫(xiě)使用 C+語(yǔ)言編寫(xiě),其中接口函數(shù)庫(kù)生成動(dòng)態(tài)鏈接庫(kù),供編寫(xiě)的 Windows 應(yīng)用程序調(diào)用。應(yīng)用程序使用 MFC 編程生成 Windows 應(yīng)用程序。 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 3 基于單片機(jī)的 CAN 節(jié)點(diǎn)的接口設(shè)計(jì) 3.1 接口硬件設(shè)計(jì) 3.1.1 接口元器件選擇 基于 MCU 的 CAN 總線智能節(jié)點(diǎn)由四部分組成 :單片機(jī) ,CAN 控制器 ,CAN 驅(qū)動(dòng)器和高速光電耦合器。主要考慮到 CAN 總線是車(chē)載的,其抗干擾和穩(wěn)定性要求都很高。所以在 CAN 總線通信接口中采用 PHILIPS 公司的 SJA1000 和 TJA1050芯片。 SJA1000 是獨(dú)立 CAN 控制器, TJA1050 為高性能 CAN 總線收發(fā)器(總線驅(qū)動(dòng)器)?;?MCU 的CAN 總線智能節(jié)點(diǎn)采用 P89C668 作為節(jié)點(diǎn)的微處理器,高速光電耦合器選用 6N137。 P89C668 是增強(qiáng)型 80C51 系列的單片機(jī)。 P89C668 單片機(jī)內(nèi)帶 64KB Flash 存儲(chǔ)器,該存儲(chǔ)器既可并行編程也可以串行在系統(tǒng)編程( ISP)。在 Boot ROM 程序中可通過(guò)一個(gè)默認(rèn)的串行下載器 UART 對(duì) Flash 存儲(chǔ)器作 ISP 編程,而在 Flash 代碼區(qū)中并不需要有 調(diào)用下載器的代碼。用戶程序可通過(guò)調(diào)用在 Boot ROM 中的標(biāo)準(zhǔn)子程序?qū)lash 存儲(chǔ)器擦寫(xiě)和再編程即 IAP。該器件在 6 個(gè)時(shí)鐘周期內(nèi)執(zhí)行一條指令,是傳統(tǒng)的 80C51 的兩倍。該器件用 advanced CMOS 工藝制造是 80C51 單片機(jī)家族的衍生品其指令集和 80C51 相同。該器件有四個(gè) 8 位 I/O 口,三個(gè) 16 位定時(shí)器 /計(jì)數(shù)器,多中斷源,四個(gè)優(yōu)選級(jí),可嵌套中斷結(jié)構(gòu),一個(gè)增強(qiáng)型 UART 和片內(nèi)振蕩器以及時(shí)序電路。 P89C668 新增特性使其成為一個(gè)功能強(qiáng)大的單片機(jī),為某些應(yīng)用提供 PWM ,高速的 I/O 和加 /減計(jì)數(shù),如汽車(chē)控制。 此外,選擇 P89C668 主要基于以下幾個(gè)原因:它使用 Flash 存儲(chǔ)器, ISP 編程和 IAP 編程,開(kāi)發(fā)方便快捷;其 64KB 的程序存儲(chǔ)器和 8KB 的數(shù)據(jù)存儲(chǔ)器足夠我們的需求,無(wú)須外部擴(kuò)展;其功能強(qiáng)大,提供 PWM,符合系統(tǒng)的要求。 SJA1000 是一個(gè)獨(dú)立的 CAN 控制器,它在汽車(chē)和普通的工業(yè)應(yīng)用上有先進(jìn)的特征。特別適合于轎車(chē)內(nèi)的電子模塊傳感器,制動(dòng)器的連接和通用工業(yè)應(yīng)用中。特別是系統(tǒng)優(yōu)化,系統(tǒng)診斷和系統(tǒng)維護(hù)時(shí)特別重要。 SJA1000 它是 PHILIPS 半導(dǎo)體 PCA82C200 CAN 控制器 BasicCAN 的替代產(chǎn)品而且它增加了一種新的工作模式 PeliCAN ,這種模式支持具有很多新特性的 CAN 2.0B 協(xié)議。總之, SJA1000 是車(chē)上專用的 CAN 控制器,起穩(wěn)定性和抗干擾能力很好。 TJA1050 高速 CAN 收發(fā)器是控制器局域網(wǎng) CAN 控制器和物理總線之間的接口。它主要有以下特征:與“ ISO 11898”標(biāo)準(zhǔn)完全兼容;速度高(最高可達(dá) 1M 波特);低電磁輻射( EME);可抗電磁干擾( EMI);沒(méi)有上電的節(jié)點(diǎn)不會(huì)對(duì)總線造成干擾;熱 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 保護(hù);可以連接至少 110 個(gè)節(jié)點(diǎn)。 3.1.1 接口總體設(shè)計(jì) 綜上所述,接口電路主要由四部分所構(gòu)成,微控制器 89C668, 獨(dú)立 CAN 控制器SJA1000, CAN 總線收發(fā)器 TJA1050 和高速光電耦合器 6N137。 微處理器 89C668 負(fù)責(zé) SJA1000 的初始化通過(guò)控制 SJA1000 實(shí)現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。 SJA1000 的 AD0-AD7 連接到 89C668 的 P0 口, CS 連接到 89C668 的P2.0。 P2.0 為 0 時(shí), CPU 片外存貯器地址可選中 SJA1000, CPU 通過(guò)這些地址可對(duì)SJA1000 執(zhí)行相應(yīng)的讀寫(xiě)操作。 SJA1000 的 RD, WR, ALE 分別與 89C668 的對(duì)應(yīng)引腳相連。 INT 接 89C668 的 0INT。 89C668 也可通過(guò)中斷方式訪問(wèn) SJA1000,本汽車(chē) CAN總線系統(tǒng)所使用的就是這種方式。 為了增強(qiáng) CAN 總線節(jié)點(diǎn)的抗干擾能力, SJA1000 的 TX0 和 RXO 并不是直接與SJA1000 的 TXD 和 RXD 相連,而是通過(guò)高速光耦 6N137 后與 SJA1000 相連。這樣就很好的實(shí)現(xiàn)了總線上各 CAN 節(jié)點(diǎn)間的電氣隔離。不過(guò)應(yīng)該特別說(shuō)明的一點(diǎn)是光耦部分電路所采用的兩個(gè)電源 VCC 和 VDD 必須完全隔離否則采用光耦也 就失去了意義。電源的完全隔離采用小功率電源隔離模塊實(shí)現(xiàn)。這些部分雖然增加了節(jié)點(diǎn)的復(fù)雜但是卻提高了節(jié)點(diǎn)的穩(wěn)定性和安全性。 TJA1000與 CAN 總線的接口部分也采用了一定的安全和抗干擾措施, TJA1000 的CANH 和 CANL 引腳各自通過(guò)一個(gè)阻值為 5 的電阻與 CAN 總線相連。電阻可起到一定的限流作用 ,保護(hù) TJA1000 免受過(guò)流的沖擊。 CANH 和 CANL 與地之間并聯(lián)了兩個(gè) 30P 的小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射的能力。另外在兩根CAN 總線接入端與地之間分別反接了一個(gè)保護(hù)二極 管,當(dāng) CAN 總線有較高的負(fù)電壓時(shí)通過(guò)二極管的短路可起到一定的過(guò)壓保護(hù)作用。 圖 3-1 CAN接口電路圖 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 3.1.2 接口電路圖 根據(jù)總體設(shè)計(jì)思想和選擇的芯片,使用繪圖軟件 Protel 繪制基于 MCU 的 CAN節(jié)點(diǎn) CAN 總線接電路原理圖,如圖 3-1。 3.2 接口軟件設(shè)計(jì) CAN 總線節(jié)點(diǎn)的軟件設(shè)計(jì)包括三大部分: CAN 節(jié)點(diǎn)初始化,報(bào)文發(fā)送和報(bào)文接收。有了這三個(gè)部分程序的設(shè)計(jì)就能編寫(xiě)出利用 CAN 總線進(jìn)行通信的一 般應(yīng)用程序。要將 CAN 總線應(yīng)用于通信任務(wù)比較復(fù)雜的系統(tǒng)中,需詳細(xì)了解有關(guān) CAN 總線錯(cuò)誤處理,總線脫離處理,接收濾波處理,波特率參數(shù)設(shè)置和自動(dòng)檢測(cè),以及 CAN 總線通信距離和節(jié)點(diǎn)數(shù)的計(jì)算等方面的內(nèi)容。 3.2.1 初始化子程序設(shè)計(jì) 圖 3-2 初始化子程序流程圖 SJA1000 的初始化只有在復(fù)位模式下才可以進(jìn)行,初始化主要包括:工作方式的設(shè)置,接收濾波方式的設(shè)置,接收屏蔽寄存器 AMR 和接收代碼寄存器 ACR 的設(shè) 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 置,波特率參數(shù)設(shè)置,中斷允許寄存器 IER 的設(shè)置 ,等等。在完成 SJA1000 的初始化設(shè)置以后 SJA1000 就可以回到工作狀態(tài),進(jìn)行正常的通信任務(wù)。圖 3-2 提供了SJA1000 初始化的流程圖。 在已經(jīng)具有基本流程圖的前提下,整個(gè)初始化程序就可以輕松編寫(xiě)源代碼了,其具體程序見(jiàn)附錄 B。 3.2.2 報(bào)文發(fā)送子程序設(shè)計(jì) 進(jìn)行完初始化程序后, CAN 器件便能進(jìn)行正常的 CAN 報(bào)文發(fā)送和接收了。發(fā)送子程序負(fù)責(zé)節(jié)點(diǎn)報(bào)文的發(fā)送。發(fā)送時(shí),用戶將待發(fā)送的數(shù)據(jù)按 CAN 報(bào)文的格式組合成一幀報(bào)文送入 SJA1000 發(fā)送緩存區(qū)中,然后啟動(dòng) SJA1000 相應(yīng)的發(fā)送命令。在往SJA1000 發(fā)送緩存區(qū)送報(bào)文之前,必須先作判斷。發(fā)送程序可以發(fā)送 CAN 報(bào)文的遠(yuǎn)程幀和數(shù)據(jù)幀。遠(yuǎn)程幀與數(shù)據(jù)幀相比無(wú)數(shù)據(jù)場(chǎng),掌握數(shù)據(jù)幀的發(fā)送就能掌握遠(yuǎn)程幀的發(fā)送。下面就以發(fā)送數(shù)據(jù)幀為例進(jìn)行分析。圖 3-3 提供了報(bào)文發(fā)送子程序的流程分析,具體的程序?qū)崿F(xiàn)見(jiàn)附錄 B。 圖 3-3 報(bào)文發(fā)送子程序流程圖 3.2.3 報(bào)文接收子程序設(shè)計(jì) 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) CAN 控制器收到的報(bào)文是存放在接收緩沖區(qū)。接收子程序負(fù)責(zé)讀取接收緩沖區(qū)的值以及其它情況處理。報(bào)文的接收可以使用查詢方式和中斷方式。兩者在思路上相似,不 過(guò)采用中斷方式進(jìn)行接收,在實(shí)時(shí)性方面要大大優(yōu)于查詢方式。本汽車(chē) CAN總線系統(tǒng)使用的是中斷方式接收?qǐng)?bào)文。圖 3-4 提供了報(bào)文接收子程序的流程分析,具體的程序?qū)崿F(xiàn)見(jiàn)附錄 B。 圖 3-4:報(bào)文接受子程序流程圖 從流程圖可以看出,在確定 CAN 節(jié)點(diǎn)的接收緩沖區(qū)有接收數(shù)據(jù)后,讀取接收緩沖區(qū)的數(shù)據(jù)并保存,然后釋放接收緩沖區(qū)。 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 4 基于單片機(jī)的 CAN 節(jié)點(diǎn)的功能部分設(shè)計(jì) 4.1 功能部分硬件電路的設(shè)計(jì) 4.1.1 元器件的選擇 基于單片機(jī)的功能部分包括兩塊, PWM 調(diào)速 和霍爾效應(yīng)傳感器測(cè)量轉(zhuǎn)速。 MCU根據(jù)要求輸出 PWM 信號(hào), MCU 輸出的 PWM 信號(hào)大約只有 200uA,該 PWM 信號(hào)經(jīng)放大后用來(lái)驅(qū)動(dòng)一個(gè) 5 伏, 200mA 的電機(jī)。選擇 ULN200A 作為放大器件?;魻栃?yīng)接近開(kāi)關(guān)感應(yīng)到的電機(jī)的轉(zhuǎn)動(dòng),產(chǎn)生脈沖信號(hào),該脈沖信號(hào)經(jīng)過(guò)經(jīng)光電耦合后無(wú)須放大直接送給 MCU 計(jì)數(shù), MCU 計(jì)數(shù)一秒得到電機(jī)的轉(zhuǎn)速?;魻柦咏_(kāi)關(guān)選用HKK5002C,光電耦合器使用 TLP512。 ULN2003A 是耐高壓,高集成度的達(dá)林頓管 (Darlington)陣列,每片由七個(gè) NPN型的 Darlington 組成,并且共 用一個(gè)續(xù)流二極管。 工作電壓 5 伏時(shí),一個(gè) Darlington 的集電級(jí)額定電流是 500mA,并且 Darlington 可以進(jìn)行并聯(lián)。 HKK5002C 是 HK 系列的霍爾接近開(kāi)關(guān),它是一種用磁場(chǎng)訊號(hào)來(lái)驅(qū)動(dòng)的新型自動(dòng)開(kāi)關(guān)。其工作電壓 5 伏,負(fù)載電流 20mA,工作距離 5mm,最高響應(yīng)頻率 50KHZ,足夠用來(lái)測(cè)量直流電機(jī)轉(zhuǎn)速。 4.1.2 電路圖的設(shè)計(jì) 單片機(jī)使用 P1.3 口產(chǎn)生 PWM 信號(hào), PWM 出來(lái)后接到 ULN2003A 的 7B 口(使用第七個(gè)達(dá)林頓管)進(jìn)行放大,經(jīng)過(guò)放大后從 7C 口輸出驅(qū)動(dòng)電機(jī), ULA2003A 的 COM口接 9 伏電源?;魻柦咏_(kāi)關(guān)使用 5 伏電源 VCC,輸出的信號(hào)經(jīng)過(guò)一個(gè) 390 歐的限流電阻后,接到 TLP512 的 9 端,經(jīng)過(guò)光電耦合后,經(jīng)過(guò)一個(gè) 390 歐的上拉電阻接到MCU 的 P3.5 進(jìn)行計(jì)數(shù)。 390 歐的上拉電阻的電源使用信號(hào)源( VCC 電源必須先經(jīng)過(guò)一個(gè)電源轉(zhuǎn)換器 B0505),以達(dá)到完全的隔離。電路圖見(jiàn)附錄 A,圖 4-1 只給出框圖: P1.3 圖 4-1 功能電路方框圖 MCU ULA2003A 電機(jī) HKK5002C TLP512 390 歐 B0505 390 歐 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 4.2 功能部分軟件的設(shè)計(jì) CAN 節(jié)點(diǎn) node_2 和 node_3 功能部分的軟件設(shè)計(jì)完全相同,包括兩大部分: PWM調(diào)速軟件設(shè)計(jì)和計(jì)數(shù)測(cè)速的軟件設(shè)計(jì)。 4.2.1 PWM調(diào)速軟件設(shè)計(jì) PWM 調(diào)速的軟件設(shè)計(jì),主要利用中斷方式接收 CAN 總線上的調(diào)速指令,根據(jù)指令設(shè)置 P89C668 的可編程計(jì)數(shù)器陣列 PCA。 程序源碼見(jiàn)附錄 B,圖 4-2 為 PWM 調(diào)速軟件設(shè)計(jì)流程圖。 圖 4-2 PWM調(diào)速軟件設(shè)計(jì) 4.2.2 計(jì)數(shù)測(cè)速軟件設(shè)計(jì) 計(jì)數(shù)測(cè)速的軟件設(shè)計(jì),首 先讓定時(shí) /計(jì)數(shù)器 T1 工作于 16 位計(jì)數(shù),計(jì)數(shù) P3.5 口的霍爾接近開(kāi)關(guān)的方波信號(hào)。定時(shí) /計(jì)數(shù)器 T2 工作于 16 位常數(shù)自動(dòng)再裝入方式,產(chǎn)生25ms 的計(jì)時(shí)。每 25ms 會(huì)產(chǎn)生一次中斷( interrupt 7),中斷服務(wù)子程序中的一個(gè)全局變量會(huì)加 1,計(jì)數(shù) 40 個(gè) 25ms 就是 1s,每 1s讀出 T1 計(jì)數(shù)器的值(即轉(zhuǎn)速),并清零。程序源碼見(jiàn)附錄 B,圖 4-3 為 PWM 調(diào)速軟件設(shè)計(jì)流程圖。 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) N Y 圖 4-3 計(jì)數(shù)測(cè)速的軟件流程 T1 初試化 設(shè)定工作方式 16 位計(jì)數(shù) 清零 完成初始化 T2 初始化 設(shè)定工作方式 16 位計(jì)時(shí) 設(shè)定計(jì)數(shù)初值 設(shè)定中斷禁止 設(shè)定中斷允許 啟動(dòng) 啟動(dòng) 完成初始化 中斷服務(wù)入口 清中斷標(biāo)志 計(jì)數(shù)值 time 加 1 1S T2 停止計(jì)數(shù) 讀計(jì)數(shù)值到發(fā)送 緩沖區(qū) Data=0,重新開(kāi)始 中斷出口 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 5 基于 PC機(jī)的 CAN 節(jié)點(diǎn)的設(shè)計(jì) 基于 PC 機(jī)的 CAN 節(jié)點(diǎn) (node_1)的設(shè)計(jì) ,首先制作一塊 CAN 到 LPT 的轉(zhuǎn)接卡,實(shí)現(xiàn) CAN 總線接入計(jì)算機(jī)。然后編寫(xiě)總線驅(qū)動(dòng)程序和低層的接口函數(shù)庫(kù),最后完成控制平臺(tái)應(yīng)用程序。為了縮短項(xiàng)目的開(kāi)發(fā)周期,選用廣州周立功單片機(jī)發(fā)展有限公司的 CANmini 微型 CAN 接口 卡,驅(qū)動(dòng)和接口函數(shù)庫(kù),此基礎(chǔ)上設(shè)計(jì)本系統(tǒng)的 UI 應(yīng)用程序。 5.1 LPT-CAN接口卡 CANmini 微型 CAN 接口卡是一款便攜式 CAN 總線通訊適配卡,通過(guò)計(jì)算機(jī)并行接口,使 PC 機(jī)方便地連接到 CAN 總線,實(shí)現(xiàn) CAN2.0B( A)協(xié)議的數(shù)據(jù)通訊。CANmini 微型 CAN 接口卡能自動(dòng)檢測(cè)系統(tǒng)中可用的并口資源,采用 EPP 傳輸模式及中斷機(jī)制實(shí)現(xiàn)接收 /發(fā)送,更快的傳輸速率、更低的計(jì)算機(jī) CPU 資源占用。 CANmini 硬件小巧,直接插在計(jì)算機(jī)的 LPT 上即可使用,軟件使用通用的 ZLGVCI 驅(qū)動(dòng)程序接口 。 5.2 接口函數(shù)庫(kù) 在接口函數(shù)庫(kù)里,定義了 4 個(gè)數(shù)據(jù)結(jié)構(gòu), 14 個(gè)接口函數(shù),應(yīng)用程序通過(guò)調(diào)用他們來(lái)對(duì) CAN 總線進(jìn)行操作。接口庫(kù)函數(shù)使用,首先,把庫(kù)函數(shù)文件都放在工作目錄下??偣灿腥齻€(gè)文件 ControlCAN.h , ControlCAN.lib, ControlCAN.dll 和一個(gè)文件夾kerneldlls。然后, VC+ 調(diào)用動(dòng)態(tài)庫(kù),在 .CPP 中包含 ControlCAN.h 頭文件;在工程文件中加入 ControlCAN.lib 文件。 這 14 個(gè)函數(shù)分別是:打開(kāi)設(shè)備函數(shù);關(guān)閉設(shè)備函數(shù);初始化 CAN 函數(shù);讀 取設(shè)備信息函數(shù);獲取錯(cuò)誤信息函數(shù);讀取 CAN 狀態(tài)函數(shù);讀取設(shè)備參數(shù)函數(shù);設(shè)置設(shè)備參數(shù)函數(shù);返回緩沖區(qū)未讀取的幀數(shù)函數(shù);清空指定緩沖區(qū)函數(shù);啟動(dòng) CAN 函數(shù);復(fù)位 CAN 函數(shù);發(fā)送數(shù)據(jù)函數(shù)和接收數(shù)據(jù)函數(shù)。 5.3 應(yīng)用軟件的 MFC設(shè)計(jì) 根據(jù) 2.3 節(jié)對(duì)本 CAN 總線系統(tǒng)應(yīng)用層的定義, 在接口函數(shù)庫(kù)的基礎(chǔ)上編寫(xiě)Windows 應(yīng)用程序。在 VC+中使用 MFC 應(yīng)用程序向?qū)Ы⒁粋€(gè)工程項(xiàng)目名為 node-1的基本對(duì)話框項(xiàng)目,并把庫(kù)函數(shù)文件都放在工作目錄下。總共有三個(gè)文件ControlCAN.h , ControlCAN.lib, ControlCAN.dll 和一個(gè)文件夾 kerneldlls。在 .CPP 中包含 ControlCAN.h 頭文件;在工程文件中加入 ControlCAN.lib 文件。制作如圖 5-2 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 的應(yīng)用程序主窗口。 圖 5-1 接口函數(shù)使用流程 讀取設(shè)備信息函數(shù) 獲取錯(cuò)誤信息函數(shù) 數(shù) 讀取 CAN 狀態(tài)函數(shù) 數(shù) 讀取設(shè)備參數(shù)函數(shù) 數(shù) 讀取設(shè)備信息函數(shù) 打開(kāi)設(shè)備函數(shù) 初始化 CAN函數(shù) 啟動(dòng) 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è)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 6 系統(tǒng)構(gòu)建與性能檢測(cè) 6.1 系統(tǒng)構(gòu)建和調(diào)試 在本 CAN 總線系統(tǒng) 設(shè)計(jì)完成后,進(jìn)行構(gòu)建調(diào)試和性能檢測(cè)。通常情況下,設(shè)計(jì)一個(gè)系統(tǒng),應(yīng) 該先開(kāi)發(fā)硬件再進(jìn)行軟件設(shè)計(jì)。在有仿真實(shí)驗(yàn)儀的前提下,可以先開(kāi)發(fā)軟件,確保軟件可以實(shí)現(xiàn),再做硬件,這樣可以降低開(kāi)發(fā)風(fēng)險(xiǎn)和成本,提高開(kāi)發(fā)速度,減小開(kāi)發(fā)周期。 用 Keil C51 編寫(xiě) node_2 的軟件,并進(jìn)行軟件仿真( Keil C51 具有軟件仿真的功能)。再進(jìn)行硬件仿真,使用 DP-668 仿真實(shí)驗(yàn)儀,上位機(jī)使用 CAN 測(cè)試軟件模擬應(yīng)用層協(xié)議。功能部分硬件暫時(shí)沒(méi)有,使用示波器觀察 P1.3 口的 PWM 信號(hào),它是不是根據(jù)指令調(diào)整了 PWM 的占空比。使用函數(shù)信號(hào)發(fā)生器產(chǎn)生方波信號(hào)輸入到 P3.5 口,模擬霍爾接近開(kāi)關(guān)產(chǎn)生的轉(zhuǎn)速信號(hào), 不斷改變方波信號(hào)的頻率, node_2 采集的轉(zhuǎn)速是不是和方波信號(hào)的頻率一致。 圖 5-2 應(yīng)用程序主窗口 Node_2 的程序調(diào)通后,改變一下 ID 得到 node_3 的軟件程序。下位機(jī)的程序調(diào) 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 通后,再通過(guò)下位機(jī)來(lái)調(diào)試上位機(jī)的程序, node_1 的界面如圖 5-2。在軟件全部完成后,開(kāi)始制作硬件。制作 PCB 板,然后焊接電路。硬件完成后,讓標(biāo)準(zhǔn)程序在電路板上運(yùn)行,硬件沒(méi)有問(wèn)題后,把系統(tǒng)軟件和硬件結(jié)合,完成整個(gè)系統(tǒng)。 6.2 系統(tǒng)性能 檢測(cè) 本汽車(chē) CAN 總線系統(tǒng)完成后要對(duì)其進(jìn)行性能檢測(cè),通過(guò)系統(tǒng)性能檢測(cè)發(fā)現(xiàn)潛在的缺陷,掌握系統(tǒng)性能參數(shù)。 系統(tǒng)性能測(cè)試可以細(xì)分到單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試。單元測(cè)試、集成測(cè)試都應(yīng)該在開(kāi)發(fā)階段完成。系統(tǒng)測(cè)試應(yīng)該由專門(mén)的測(cè)試部門(mén)進(jìn)行,開(kāi)發(fā)者完成集成測(cè)試后,即可啟動(dòng)系統(tǒng)測(cè)試;當(dāng)產(chǎn)品完全達(dá)到設(shè)計(jì)指標(biāo)時(shí),即可完成測(cè)試。 圖 6-1 系統(tǒng)檢測(cè) 單元測(cè)試在系統(tǒng)搭建的時(shí)候已經(jīng)完成了,要做的是系統(tǒng)的集成測(cè)試。其測(cè)試網(wǎng)絡(luò)如圖 6-1, 左邊是本汽車(chē) CAN 總線系統(tǒng),右邊增加一個(gè)測(cè)試節(jié)點(diǎn),該節(jié)點(diǎn)上運(yùn)行ZLGCANTest 軟件,監(jiān)視整個(gè)網(wǎng)絡(luò)。系統(tǒng)正常運(yùn)行,并反復(fù)使用設(shè)計(jì)要求中所規(guī)定的功能,看看他們能否準(zhǔn)確完成項(xiàng)目所要求的各個(gè)功能,這個(gè)過(guò)程至少需要 24 個(gè)小時(shí),在整個(gè)過(guò)程中測(cè)試節(jié)點(diǎn)記錄下總線上所有的通信數(shù)據(jù),測(cè)試過(guò)程見(jiàn)附錄。 對(duì)監(jiān)控?cái)?shù)據(jù)進(jìn)行分析,得出如下結(jié)論:在 24 個(gè)小時(shí)的不間斷數(shù)據(jù)傳輸中,總線上沒(méi)有出現(xiàn)錯(cuò)誤數(shù)據(jù),系統(tǒng)穩(wěn)定運(yùn)行,沒(méi)有死機(jī),非法操作等現(xiàn)象??梢哉f(shuō)明本汽車(chē)CAN 總線系統(tǒng)的正確性 ,和穩(wěn)定性。此外,測(cè)試得到了表 6-2 中的重要的系統(tǒng)性能參數(shù) 。 Node_1 Node_2 Node_3 CAN-BUS 測(cè)試節(jié)點(diǎn) 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 表 6-2 系統(tǒng)重要參數(shù) 項(xiàng)目 最大值 無(wú)網(wǎng)橋最長(zhǎng)節(jié)點(diǎn)距離 40m 無(wú)網(wǎng)橋最多節(jié)點(diǎn)數(shù)目 110 最高位傳輸速率 1Mbps 每幀基本用時(shí) 0.322ms 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 7 汽車(chē)車(chē)身 CAN 解決方案 CAN 總線優(yōu)越的性能完全滿足汽車(chē)對(duì)的實(shí)時(shí)性,安全性和穩(wěn)定性的要求,幾乎可以把它應(yīng)用中在汽車(chē)網(wǎng)絡(luò)系統(tǒng)的不同領(lǐng)域,不同層次(除車(chē)上媒體系統(tǒng)要求更高的傳輸速率)?;谏厦鎸?duì) CAN 總線的研究,提出如下的車(chē)身 CAN 解決方案。 該 CAN 網(wǎng)絡(luò)用來(lái) 連接中央門(mén)鎖以及車(chē)門(mén)控制單元。網(wǎng)絡(luò)采用星型結(jié)構(gòu),以保證在一個(gè)單元出現(xiàn)故障時(shí),其他的單元仍可以發(fā)送接收信息。使用網(wǎng)絡(luò)連接的方法實(shí)現(xiàn)這些電控單元間的通信,減少線路,提高通信線路的可靠性和容錯(cuò)能力,提高自診斷能力。該 CAN 網(wǎng)絡(luò)是用于車(chē)身的其對(duì)實(shí)時(shí)性要求不高,選擇如下參數(shù): 傳輸介質(zhì)使用雙絞線。數(shù)據(jù)傳輸速度使用低速: 62.5Kbps。每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的發(fā)送信息的時(shí)間間隔為 10ms 該網(wǎng)絡(luò)由 5 個(gè)節(jié)點(diǎn)組成,其優(yōu)先級(jí)的順序定義如下: 1) 中央控制單元, node1。 2) 駕駛員側(cè)前門(mén)控制單元, node2。 3) 乘客側(cè)前門(mén)控制單元, node3。 4) 駕駛員側(cè)后門(mén)控制單元, node4。 5) 乘客側(cè)后面控制單元, node5。 CAN 電源 圖 7-1 車(chē)身 CAN網(wǎng)絡(luò) 中央控制器 左 前 單元 左 后 單元 右 后 單元 右 前 單元 門(mén)鎖 車(chē)窗 車(chē)窗 車(chē)窗 車(chē)窗 門(mén)鎖 門(mén)鎖 門(mén)鎖 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 圖 7-2 給出駕駛員側(cè)前門(mén)控制單元中央控制器的應(yīng)用層的定義,其它的單元傳輸?shù)男畔⒍x類(lèi)似。 表 7-1 車(chē)身 CAN 應(yīng)用層定義 功能 狀態(tài) Data0 標(biāo)識(shí)符 中央門(mén)鎖 驗(yàn)收碼: 02020110 屏蔽碼: 000000FF 基本狀態(tài) 00000001B 01010210 安全狀態(tài) 00000010B 01010210 上鎖 00000100B 01010210 開(kāi)鎖 00001000B 01010210 電動(dòng)窗 驗(yàn)收碼: 02020120 屏蔽碼: 000000FF 打開(kāi) 00000001B 01010220 關(guān)上 00000010B 01010220 開(kāi)大一些 00000100B 01010220 關(guān)小一些 00001000B 01010220 中央控制器: 驗(yàn)收碼: 01010000 屏蔽碼: 0000FFFF 例如:當(dāng)中央控制器發(fā)送一個(gè)數(shù)據(jù)幀,標(biāo)識(shí)符 02020110,數(shù)據(jù) 00000011B,駕駛員側(cè)前門(mén)控制單元就會(huì)接收到該信息,表示:中央控制器讓駕駛員側(cè)前門(mén)中央門(mén)鎖上鎖,并處于安全狀態(tài)。當(dāng)駕駛員側(cè)前門(mén)控制單元處理完該信息后,就會(huì)反饋一個(gè)幀,標(biāo)識(shí)符 01010210,數(shù)據(jù) 00000011B, 中央控制器就會(huì)接收到該信息,表示:駕駛員側(cè)前門(mén)中央門(mén)鎖已經(jīng)上鎖, 并處于安全狀態(tài)。如果 1s 后中央控制器還沒(méi)有接收到駕駛員側(cè)前門(mén)控制單元的反饋信息,就報(bào)警表示系統(tǒng)故障。如果在 1s 內(nèi)接收到駕駛員側(cè)前門(mén)控制單元的反饋信息,這顯示駕駛員側(cè)前門(mén)中央門(mén)鎖已經(jīng)上鎖,并處于安全狀態(tài)。 CAN 更重要的應(yīng)用是用于汽車(chē)重要電控系統(tǒng)間的通信。這些電控系統(tǒng)包括:電控燃油噴射系統(tǒng),電控轉(zhuǎn)向系統(tǒng),防抱死制動(dòng)系統(tǒng)( ABS),防滑控制系統(tǒng)( ASR),等等。當(dāng)然, 當(dāng) CAN 用于這些重要系統(tǒng)間的時(shí)候,就需要更加復(fù)雜的應(yīng)用層協(xié)議。現(xiàn)在有很多行業(yè)標(biāo)準(zhǔn)或者是國(guó)際標(biāo)準(zhǔn),比如國(guó)際標(biāo)準(zhǔn)化組織( International Organization for Standardization)的 ISO11992、 ISO11783 以及汽車(chē)工程協(xié)會(huì)( Society of Automotive Engineers )的 SAE J1939。最好遵守這些標(biāo)準(zhǔn),因?yàn)?CAN 總線已經(jīng)作為汽車(chē)的一種標(biāo)準(zhǔn)設(shè)備列入汽車(chē)的整體設(shè)計(jì)中。只要遵守這些標(biāo)準(zhǔn)就可以大大縮短項(xiàng)目的開(kāi)發(fā)周期,當(dāng)然也就需要更大的投入,因?yàn)檫@些協(xié)議都會(huì)收取高額的使用費(fèi)用。 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 8 摩托車(chē) CAN 總線解決方案 把廉價(jià)的 CAN 通信系統(tǒng)移植到高端摩托車(chē)上是很有意義的,因?yàn)槭褂?CAN 總線的摩托車(chē)與普 通摩托車(chē)相比至少具有以下四個(gè)優(yōu)點(diǎn): 1) 降低摩托車(chē)組裝的開(kāi)銷(xiāo)。 2) 大大提高系統(tǒng)的可靠性和安全性。 3) 使摩托車(chē)的升級(jí)換代更加簡(jiǎn)單,快速。 4) 操作更加簡(jiǎn)單方便。 摩托車(chē) CAN 總線通信網(wǎng)絡(luò)由四個(gè) CAN 節(jié)點(diǎn)組成,每個(gè) CAN 節(jié)點(diǎn)控制摩托車(chē)上的一個(gè)區(qū)域,如圖。 圖 8-1 車(chē)上節(jié)點(diǎn)安排 CAN-bus 圖 8-2 摩托車(chē) CAN 總線 解決方案 儀表板節(jié)點(diǎn) 油 量 顯 示 油 量 顯 示 速 度 顯 示 用 戶 指令示 其 它 顯 示 車(chē)尾節(jié)點(diǎn) 車(chē) 尾 燈 轉(zhuǎn) 向燈 傳感器 車(chē)頭節(jié)點(diǎn) 傳感器4 啟動(dòng) 鎖 冷卻風(fēng)扇 電喇叭 轉(zhuǎn) 向燈 傳感器5 座下節(jié)點(diǎn) 傳感器3 傳感器2 傳感器1 電子擋 車(chē)頭節(jié)點(diǎn) 儀表板節(jié)點(diǎn) 車(chē)尾節(jié)點(diǎn) 坐下節(jié)點(diǎn) 減震器 減震器 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 摩托車(chē)上的四個(gè)區(qū)域是這樣劃分的:儀表板區(qū)域,車(chē)頭區(qū)域,車(chē)尾區(qū)域,座下區(qū)域。四個(gè)區(qū)域只通過(guò)一個(gè) CAN 總線連接起來(lái),這樣大大減少了線簇,組裝時(shí)間也會(huì)大大減少,并且提高了系統(tǒng)的穩(wěn)定性。 下面討論一下這四個(gè) CAN 節(jié)點(diǎn)是如何工作的。車(chē)頭節(jié)點(diǎn)負(fù)責(zé)控制大燈,轉(zhuǎn)向燈,啟動(dòng)鎖,發(fā)聲輪,已及額外的溫度傳感器,冷卻風(fēng)扇,電喇叭。儀表節(jié)點(diǎn)在車(chē)頭節(jié)點(diǎn)的上面,它負(fù)責(zé)控制所以的用戶指令,數(shù)碼顯示和儀表。座下節(jié)點(diǎn)安排在摩托車(chē)的中部,用來(lái)管理發(fā)動(dòng)機(jī)的一些傳感器 (如:油量傳感器,發(fā)動(dòng)機(jī)溫度傳感器,油壓傳感器 )和電子擋的循環(huán)。最后,車(chē) 尾節(jié)點(diǎn)負(fù)責(zé)控制車(chē)尾燈,傳感器,轉(zhuǎn)向燈。系統(tǒng)總線結(jié)構(gòu)如圖 8-2。 使用 CAN 總線通信網(wǎng)絡(luò)的摩托車(chē)最大的變化就是:用總線,電子開(kāi)關(guān)和軟件驅(qū)動(dòng)代替了傳統(tǒng)的線簇,機(jī)械開(kāi)關(guān)和繼電器。當(dāng)然,要這樣做首先必須解決的問(wèn)題就是必須保證那些重要操作的安全性。上面那個(gè)典型系統(tǒng)現(xiàn)在就顯得很有意義了,硬件結(jié)構(gòu)一樣,以第二章提出的高層協(xié)議作為基礎(chǔ),而且是完全具有版權(quán)的,無(wú)需向任何組織提交申請(qǐng)和支付大量的版權(quán)費(fèi)用,要做的就是盡量提高軟件的安全性。表 8-3 為摩托車(chē) CAN 總線應(yīng)用的應(yīng)用層協(xié)議和主要參數(shù)選擇。 表 8-1 節(jié)點(diǎn) 驗(yàn)收碼 屏蔽碼 標(biāo)識(shí)符 Data0 Data1 Data3-7 儀表板 01010000 0000FFFF 0X0X0100 功能 指令 動(dòng)作 指令 數(shù)據(jù) 坐下 02020100 000000FF 01010200 車(chē)頭 03030100 000000FF 01010300 車(chē)尾 04040100 000000FF 01010400 注:其中功能指令用于指定該幀是用來(lái)發(fā)給哪個(gè)功能的。 動(dòng)作指令是指要該功能完成什么動(dòng)作。 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 9 CAN 總線本科教學(xué)建議 目的與要求 知識(shí)基礎(chǔ) 試驗(yàn)步驟及 注意事項(xiàng) 注重動(dòng)手能力培養(yǎng) 增加感性認(rèn)識(shí) 1 教學(xué)部分 2 實(shí)踐部分 CAN 協(xié)議已經(jīng)有了 15 年的歷史,但它仍處在改進(jìn)之中?,F(xiàn)在, CAN 在全球市場(chǎng)上仍然處于起始點(diǎn),當(dāng)?shù)玫街匾晻r(shí)誰(shuí)也無(wú)法預(yù)料 CAN 總線系統(tǒng)在下一個(gè) 10-15 年內(nèi)的發(fā)展趨勢(shì)。這里需要強(qiáng)調(diào)一個(gè)現(xiàn)實(shí),近幾年美國(guó)和歐洲的汽車(chē)廠商將會(huì)在他們所生產(chǎn)汽車(chē)的串行部件上使用 CAN 。另外大量潛在的新應(yīng)用,例如娛樂(lè),正在呈現(xiàn)。CAN 不僅可用于客車(chē),也可用于家庭消費(fèi)。同時(shí),結(jié)合高層協(xié)議應(yīng)用的特殊保安系統(tǒng)對(duì) CAN 的需求也正在穩(wěn)健增長(zhǎng)。鑒于此,建議在本科 階段開(kāi)設(shè) CAN 總線課程以及其實(shí)驗(yàn)課。 本科 CAN 總線教學(xué),主要是想通過(guò)必要的基礎(chǔ)理論教學(xué)與大量的實(shí)踐練習(xí)環(huán)節(jié)相結(jié)合,利用先進(jìn)的教學(xué)實(shí)驗(yàn)儀器、開(kāi)發(fā)環(huán)境,使學(xué)生快速掌握 CAN 總線的基本原理、電路檢測(cè)、開(kāi)發(fā)設(shè)計(jì)技術(shù),并具有較強(qiáng)的綜合運(yùn)用能力,從而培養(yǎng)成為具有良好的實(shí)際操作能力、設(shè)計(jì)能力的開(kāi)拓性電子應(yīng)用人才,讓他們真正的掌握一個(gè)實(shí)用的總線。 CAN 總線技術(shù)適用于本科的應(yīng)用電子技術(shù)、機(jī)電一體化、微機(jī)應(yīng)用、數(shù)控技術(shù)、自動(dòng)化、計(jì)算機(jī)原理與應(yīng)用、儀表及控制、信息通信技術(shù)、汽車(chē)工程等現(xiàn)場(chǎng)總線和微機(jī)控制的相關(guān)專業(yè)。學(xué)生應(yīng)具有以 下的基礎(chǔ)知識(shí): 數(shù)字電路,模擬電路 、 數(shù)控技術(shù) 、PC 原理、 MCU 原理、匯編 /C 語(yǔ)言。 實(shí)驗(yàn)室的建設(shè)方面有兩套方案。第一套方案,硬件主要:計(jì)算機(jī) , 基于 Keil C51 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 的 CANStarter-1 開(kāi)發(fā)套件, ISP 功能的單片機(jī)芯片( P89C6678),步進(jìn)電機(jī) /伺服電機(jī)控制板。 軟件方面: Keil C51 編程與開(kāi)發(fā)、調(diào)試軟件。這些也正是本課題開(kāi)發(fā)過(guò)程中所用到的主要工具。特點(diǎn)是資金要求低,但對(duì)學(xué)生的要求較高,實(shí)用于小型 CAN總線實(shí)驗(yàn)室,優(yōu)秀學(xué)生選修。第二套方案,選用國(guó)外成型的 CAN 總線實(shí)驗(yàn)臺(tái),特點(diǎn)是資金要求高, 實(shí)用于大型 CAN 總線實(shí)驗(yàn)室。 CAN 總線的教材可以使用北京航空航天大學(xué)出版社出版的現(xiàn)場(chǎng)總線 CAN 原理與應(yīng)用技術(shù)。該書(shū)系統(tǒng)的講述了 CAN 總線的基本原理, CAN 總線的網(wǎng)絡(luò)協(xié)議, CAN控制器 SJA1000 和 CAN 驅(qū)動(dòng)器 TJA1050。關(guān)于實(shí)驗(yàn)教材,本畢業(yè)設(shè)計(jì)詳細(xì)的講解了一個(gè)典型 CAN 網(wǎng)絡(luò)的設(shè)計(jì)過(guò)程,并提供了所有的源碼,可以在此基礎(chǔ)上修改為本科的實(shí)驗(yàn)教材。 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 結(jié) 論 本汽車(chē) CAN 總線通信網(wǎng)絡(luò)在實(shí)驗(yàn)室階段工作穩(wěn)定,控制準(zhǔn)確,數(shù)據(jù)傳輸可靠。證明用單片機(jī) P89C668, CAN 控制器 SJA1000 和 CAN 驅(qū)動(dòng)器 TJA1050 構(gòu)成的 CAN 節(jié)點(diǎn)具有足夠的實(shí)時(shí)性,穩(wěn)定性和抗干擾能力,完全滿足車(chē)上網(wǎng)絡(luò)應(yīng)用的需求。它是把 CAN總線技術(shù)用于車(chē)上數(shù)據(jù)采集傳輸,實(shí)時(shí)控制的可行性論證和嘗試,說(shuō)明我們獨(dú)立自主研制開(kāi)發(fā)汽車(chē)局域網(wǎng)、實(shí)現(xiàn)汽車(chē)信息化是完全可行的。 本課題主要對(duì) 包括 CAN 總線的汽車(chē)電控系統(tǒng)研發(fā)的步驟、方法以及規(guī)律性等進(jìn)行深入探索。 主要解決了以下幾個(gè)問(wèn)題: 1 CAN 通信網(wǎng)絡(luò)的 結(jié)構(gòu) 設(shè)計(jì),節(jié)點(diǎn)的安排,主要參數(shù)的選擇和汽車(chē)通信網(wǎng)絡(luò)的應(yīng)用層協(xié)議制定的方法和步驟。 2 基于 MCU 的 CAN 節(jié)點(diǎn)接口硬件電路設(shè)計(jì)方法, CAN 控制器的初始化 程序設(shè)計(jì),報(bào)文發(fā)送子程序的設(shè)計(jì)和報(bào)文接收子程序的設(shè)計(jì)。 3 基于 PC 的 CAN 節(jié)點(diǎn)硬件電路設(shè)計(jì)方法, CAN 驅(qū)動(dòng)程序設(shè)計(jì), CAN 接口庫(kù)函數(shù)設(shè)計(jì)和應(yīng)用程序設(shè)計(jì)。 4 探索了 CAN 總線系統(tǒng)檢測(cè)方法,得出了 CAN 總線的重要性能參數(shù)。 5 提出了 CAN 總線在摩托車(chē)上使用的方案 和 關(guān)于了 CAN 總線教學(xué)的建議 。 汽車(chē) CAN 總線通信是一項(xiàng)新技術(shù),相關(guān)資料缺乏,且課題對(duì)系統(tǒng)的自動(dòng)化程度要求較高,牽涉的技術(shù)范圍廣,一人單獨(dú)完成,因此具有一定研制難度。由于本人水平有限,課題研究時(shí)間短,對(duì)開(kāi)發(fā)軟件的掌握也還有限,系統(tǒng)存在缺陷在所難免( 如:系統(tǒng)的兼容性問(wèn)題,上位機(jī)程序在 2000 系統(tǒng)上運(yùn)行的時(shí)候就常有死機(jī)現(xiàn)象)有待進(jìn)一步研究與完善。 在畢業(yè)設(shè)計(jì)過(guò)程中,我學(xué)到了很多東西,動(dòng)手能力有很大的提高,掌握了開(kāi)發(fā)一個(gè)系統(tǒng)的一般過(guò)程:先收集相關(guān)資料,然后設(shè)計(jì)出系統(tǒng)方案,再完成硬件的選型和軟件開(kāi)發(fā)。通過(guò)資料的收集整理使我的知識(shí)面得到了很大的拓展,對(duì)汽車(chē)電控,汽車(chē)CAN 總線通信的認(rèn)識(shí)更加深刻,并了解了車(chē)上網(wǎng)絡(luò)的發(fā)展現(xiàn)狀。經(jīng)過(guò)硬件選型,讓我接觸到很多工程中常用的器件,使我搞懂了這些器件的工作原理,并掌握了查找一個(gè)所需零件的方法和在查找過(guò)程中所應(yīng)該注意的問(wèn)題。 UI 應(yīng)用程序的設(shè)計(jì)讓我了解了 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) MFC。通過(guò) WDM 驅(qū)動(dòng)程序的編寫(xiě),我學(xué)會(huì) DDK 的使用。 希望通過(guò)本論文的撰寫(xiě),總結(jié)一下含有 CAN 總線的汽車(chē)電控系統(tǒng)研發(fā)的步驟、方法以及規(guī)律性,為后續(xù)的研究做好準(zhǔn)備。也希望通過(guò)本論文的撰寫(xiě),能夠給正在為我國(guó)自主開(kāi)發(fā)汽車(chē)網(wǎng)絡(luò)網(wǎng)而奮斗的同仁們有所幫助。 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 致 謝 在本課題結(jié)束之際,首先我要衷心地感謝我的畢業(yè)設(shè)計(jì)指導(dǎo)老師常思勤教授。是他給我提供良好的工作環(huán)境,整套的實(shí)驗(yàn)儀器和充裕的項(xiàng)目經(jīng)費(fèi),也是他給我指明了研究方向,明確設(shè)計(jì)目標(biāo),使我在專業(yè)知識(shí)和科研方法上都收益非淺。對(duì)常老師給 予我的關(guān)心、指導(dǎo)和幫助表示誠(chéng)摯的感謝! 此外,還要感謝本實(shí)驗(yàn)室的師兄給予的支持和各種幫助。 借此機(jī)會(huì),請(qǐng)容許我對(duì)給我提供這四年學(xué)習(xí)機(jī)會(huì)的父母表示最崇高的謝意。是他們不辭勞苦的工作 ,我才有機(jī)會(huì)進(jìn)入高等院校學(xué)習(xí)。 在論文的撰寫(xiě)和校正階段,得到了許多熱心人的幫助,在此一并感謝! 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 參 考 文 獻(xiàn) 1 秦貴和 .車(chē)上網(wǎng)絡(luò)技術(shù)北京:機(jī)械工業(yè)出版社, 2003 2 鄔寬明 .CAN 總線原理與應(yīng)用系統(tǒng)設(shè)計(jì) .北京 ,北京航空航天大學(xué)出版社 ,1996 3 王練 .CAN 在大眾汽車(chē)中的應(yīng)用 .上海大眾 ,2000 4 周立功 .單片機(jī)與 TCP/IP 綜合應(yīng)用技術(shù) .廣州周立功單片機(jī)發(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 開(kāi)發(fā)套件應(yīng)用指南 V1.1, 2003 5 饒運(yùn)濤 .現(xiàn)場(chǎng)總線 CAN 原理與應(yīng)用技術(shù) .北京航空航天大學(xué)出版社, 2003.6 6 廣州周立功單片機(jī)發(fā)展有限公司 .SJA1000 獨(dú)立的 CAN 控制器 ,2003 7 周立功 .單片機(jī)原理與應(yīng)用設(shè)計(jì) .北京航空航天大學(xué)出版社 ,2001 8 黃維通 .Visual C+面向?qū)ο笈c可視化程序設(shè)計(jì) .清化大學(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ò)在汽車(chē)中的應(yīng)用研究 .汽車(chē)技術(shù) ,2000 12 程芳 .車(chē)輛控制系統(tǒng) CAN 總線通信的實(shí)施方法 .汽車(chē)工程 ,2001.5 13 劉惠 .基于 CAN 總線的客車(chē)后置發(fā)動(dòng)機(jī)數(shù)據(jù)采集顯示系統(tǒng) ,車(chē)輛與動(dòng)力技術(shù) ,2002 14 馬安麗 .汽車(chē)網(wǎng)絡(luò)總線技術(shù)發(fā)展分析 .汽車(chē)科技, 2002.3 15 劉錄秀 .國(guó)外車(chē)身 CAN 數(shù)據(jù)總線 .重慶重汽科技, 2001.4 16 劉 新亮 .汽車(chē)電器網(wǎng)絡(luò)設(shè)計(jì)研究 .汽車(chē)電器, 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ù)手冊(cè) .DC/DC 轉(zhuǎn)換技術(shù)手冊(cè) .2004.4 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 22 數(shù)據(jù)手冊(cè) .DP-668 下載實(shí)驗(yàn)儀用戶指南 .2004.4 23 數(shù)據(jù)手冊(cè) .CAN starter-I 開(kāi)發(fā)套件用戶手冊(cè) .2004.8 24 數(shù)據(jù)手冊(cè) .CAN-mini 用戶手冊(cè) .2003.6 25 趙慧敏,朱先民,王明國(guó),趙方庚,姜丁,吳曉 .評(píng)價(jià) CAN 總線系統(tǒng) EMC 的一種新方法汽車(chē)電器,第 7 期 ,2001.3 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 附錄 A 節(jié)點(diǎn)電路圖 本科畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) 附錄 B 部分源碼 /CCCCCC* /函數(shù)原型 : char charSJA_write(struct sms *info) /說(shuō)明 : 報(bào)文發(fā)送子程序 /* struct sms unsignedcharRTRFlag :1; /遠(yuǎn)程幀或數(shù)據(jù)幀標(biāo)志 ;0=數(shù)據(jù)幀; 1=遠(yuǎn)程幀; unsignedcharDataLength :4; /本次幀的數(shù)據(jù) dlc unsignedcharFrameID4; /報(bào)文識(shí)別碼 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ā)送命令 , 不允許自動(dòng)重發(fā) return status; /DDDDDD* /函數(shù)原型 : char charSJA_read(struct sms *info) /說(shuō)明 : 報(bào)文接受子程序 /* 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è)計(jì)說(shuō)明書(shū)(論文) 第 頁(yè) 共 42 頁(yè) ReadSJARegBlock(REG_CAN_TXBUF5,info-Databuf,info-DataLength); else info-RTRFlag=1; ReadSJARegBlock(REG_CAN_TXBUF1,info-

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論