基于CAN總線的電動(dòng)汽車蓄電池管理系統(tǒng)設(shè)計(jì)設(shè)計(jì).doc_第1頁(yè)
基于CAN總線的電動(dòng)汽車蓄電池管理系統(tǒng)設(shè)計(jì)設(shè)計(jì).doc_第2頁(yè)
基于CAN總線的電動(dòng)汽車蓄電池管理系統(tǒng)設(shè)計(jì)設(shè)計(jì).doc_第3頁(yè)
基于CAN總線的電動(dòng)汽車蓄電池管理系統(tǒng)設(shè)計(jì)設(shè)計(jì).doc_第4頁(yè)
基于CAN總線的電動(dòng)汽車蓄電池管理系統(tǒng)設(shè)計(jì)設(shè)計(jì).doc_第5頁(yè)
已閱讀5頁(yè),還剩64頁(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)介

本科生畢業(yè)設(shè)計(jì)(論文)I基于基于 CAN 總線的電動(dòng)汽車蓄電池管理系統(tǒng)設(shè)計(jì)設(shè)計(jì)總線的電動(dòng)汽車蓄電池管理系統(tǒng)設(shè)計(jì)設(shè)計(jì)摘 要電動(dòng)汽車已成為未來(lái)汽車技術(shù)發(fā)展的趨勢(shì),有效合理的電池管理系統(tǒng)能夠最優(yōu)的利用有限的電池能量,最大化的延長(zhǎng)電池生命周期。因此,動(dòng)力蓄電池管理系統(tǒng)成為電動(dòng)車技術(shù)重要課題之一。本次要求設(shè)計(jì)基于 CAN 總線的電動(dòng)汽車蓄電池能量管理系統(tǒng),以 AT89C52 單片機(jī)為核心,采用多通道溫度采集電路和電壓采集電路組成。通訊部分包括 CAN通訊和串口通訊,CAN 通訊與車內(nèi)其他控制器通訊。溫度采集電路有電阻R3、R4、R5 和熱敏電阻 RT 組成全橋,由運(yùn)放 A1 提供橋路一個(gè)恒壓,根據(jù)所測(cè)溫度的起始點(diǎn),選擇橋路各臂電阻;所測(cè)溫度值有運(yùn)放 A2 組成差動(dòng)放大電路輸出;電壓采集電路的信號(hào)是電池組兩端的相對(duì)電壓。為了保證高壓動(dòng)力蓄電池電組的電壓不影響測(cè)量系統(tǒng)的工作,利用光電耦合器件進(jìn)行隔離,因此構(gòu)成了懸浮采樣系統(tǒng);CAN 通訊接口電路由 C8051F040 單片機(jī)內(nèi)部嵌入滿足 CAN2.0B 規(guī)范的 CAN控制器,不必?cái)U(kuò)展 CAN 控制器。82C250 是 CAN 總線收發(fā)器,它是 CAN 控制器與總線之間的接口器件,實(shí)現(xiàn)對(duì)總線的差動(dòng)發(fā)送和差動(dòng)接收,6N173 為高速隔離器件,用于保護(hù)總線控制器,從而實(shí)現(xiàn)實(shí)時(shí)檢測(cè)電池運(yùn)行狀態(tài),對(duì)電池組電壓、溫度等動(dòng)態(tài)測(cè)量。在此的基礎(chǔ)上,判斷電池運(yùn)行狀態(tài)及運(yùn)行性能,完成系統(tǒng)的軟硬件設(shè)計(jì)。關(guān)鍵詞關(guān)鍵詞:CAN 總線;蓄電池;在線監(jiān)測(cè);單片機(jī) 本科生畢業(yè)設(shè)計(jì)(論文)II本科生畢業(yè)設(shè)計(jì)(論文)IIIAbstractElectric vehicles have become the trend of future automotive technology, effective and reasonable battery management system can best use the limited battery power, maximize battery life cycle. Therefore, the power battery technology for electric vehicle management system has become an important issue.The subject of the request design is based on CAN bus automotive battery energy management system to AT89C52 microcontroller core, with the current acquisition circuit, multi-channel temperature acquisition circuitry and voltage acquisition circuit. Communication part, including CAN communications and serial communications, CAN communication with other controllers vehicle communications. Temperature measurement circuit resistors R3, R4, R5, and the composition of the thermistor RT full-bridge, bridge from the operational amplifier A1 provides a constant pressure, according to the measured temperature of the starting point, select the arm resistance bridge; the measured temperature values A2 op amp differential amplifier circuit composed of the output; voltage acquisition circuit signal is relatively voltage across the battery. To ensure the high-voltage electric power battery voltage does not affect the groups work measurement system using optical coupling device isolation, and therefore constitutes suspension sampling system; CAN communication interface circuit by the C8051F040 microcontroller embedded within the norms of the CAN controller to meet CAN2.0B without extended CAN controller. 82C250 CAN bus transceiver is that it is between CAN controller and bus interface device to realize the transmission and differential bus and differential receive, 6N173 for the high-speed isolation device, used to protect the bus controller. In order to achieve real-time detection of the battery running on battery voltage, temperature, dynamic measurement. In this basis, determine the battery operation status and operation performance. Completion of system design.Key words: CAN bus;Batteries; On-line monitoring; Single chip microcomputer 本科生畢業(yè)設(shè)計(jì)(論文)IV目 錄第 1 章 緒 論.11.1 設(shè)計(jì)目的及意義.11.2 主要內(nèi)容及研究方法.1第 2 章 CAN 總線原理.32.1 CAN 總線.32.1.1 CAN 的性能特點(diǎn).32.1.2 CAN 技術(shù)規(guī)范.42.2 CAN 通信控制器 SJA1000.92.2.1 BasicCAN 功能說(shuō)明.9第 3 章 總體設(shè)計(jì)方案.123.1 系統(tǒng)功能描述.123.2 設(shè)計(jì)方案.123.3 設(shè)計(jì)要點(diǎn).133.4 芯片的選擇.14第 4 章 系統(tǒng)硬件設(shè)計(jì).174.1 單片機(jī)電路設(shè)計(jì).174.2 CAN 控制器電路設(shè)計(jì).214.2.1 SJA1000 介紹 .214.2.2 SJA1000 管腳說(shuō)明 .224.2.3 SJA1000 與單片機(jī)連接電路 .234.2.4 PCA82C250 收發(fā)器與 SJA1000 連接電路.244.3 LED 顯示電路.244.4 看門狗監(jiān)控電路.254.5 硬件抗干擾設(shè)計(jì).26第 5 章 系統(tǒng)軟件設(shè)計(jì).285.1 主程序流程圖.285.2 CAN 控制器初始化程序.295.3 CAN 發(fā)送報(bào)文程序.305.4 中斷程序.32本科生畢業(yè)設(shè)計(jì)(論文)V5.5 CAN 接收?qǐng)?bào)文程序.32第 6 章 結(jié) 論.34參考文獻(xiàn).35致 謝.37附 錄.38附 錄.48附 錄.49附 錄.52 本科生畢業(yè)設(shè)計(jì)(論文)1第 1 章 緒 論1.1 設(shè)計(jì)目的及意義目的:進(jìn)行該研究的目的是利用現(xiàn)場(chǎng)總線中的 CAN 總線技術(shù),設(shè)計(jì)一種通用的基于 CAN 總線的電動(dòng)汽車蓄電池管理系統(tǒng),通過(guò)對(duì)各組電池進(jìn)行監(jiān)測(cè)、診斷和維護(hù),最大限度的提高蓄電池的壽命。意義:計(jì)算機(jī)技術(shù)、通訊技術(shù)和大規(guī)模集成電路技術(shù)的飛速發(fā)展,促進(jìn)了電子控制技術(shù)在汽車上的應(yīng)用。為了解決汽車中眾多控制器與測(cè)量?jī)x器間的互聯(lián)數(shù)據(jù)通訊,德國(guó) BOSCH 公司開發(fā)了一種通用串行數(shù)據(jù)通訊協(xié)議CAN 總線,又稱控制器局域網(wǎng)。CAN 總線是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通訊網(wǎng)絡(luò),它采用多主方式,網(wǎng)絡(luò)上任意接點(diǎn)都可以主動(dòng)向其他接點(diǎn)發(fā)送消息。電動(dòng)汽車相對(duì)與傳統(tǒng)的內(nèi)燃機(jī)汽車,應(yīng)用了更多的控制器?,F(xiàn)代社會(huì)能源危機(jī)和生態(tài)環(huán)境的日益惡化,使人們認(rèn)識(shí)到必須利用可再生的綠色能源代替?zhèn)鹘y(tǒng)的一次性能源。能源消耗在汽車中的比例占主要工業(yè)國(guó)家能源消耗的 24%。因電池在充電和使用過(guò)程中無(wú)污染,應(yīng)用在汽車上可實(shí)現(xiàn)零排放,有助于解決汽車造成的環(huán)境污染,并且可對(duì)電池反復(fù)多次充電,因此,純電動(dòng)汽車和混合動(dòng)力汽車成為世界各國(guó)研究的重點(diǎn)。電動(dòng)汽車技術(shù)發(fā)展不斷成熟,但還存在一些關(guān)鍵的技術(shù)需要解決,例如,蓄電池的管理技術(shù)、電機(jī)控制技術(shù)、電子控制技術(shù)等。此次設(shè)計(jì)的蓄電池管理系統(tǒng)能實(shí)時(shí)的監(jiān)測(cè)蓄電池組在充放電過(guò)程中各組電池的電壓和溫度,避免過(guò)放電,同時(shí)對(duì)各組電池進(jìn)行定期自動(dòng)監(jiān)測(cè)、診斷和維護(hù),最大限度的提高蓄電池的壽命,通過(guò) CAN 總線與其它控制器通訊。1.2 主要內(nèi)容及研究方法這次設(shè)計(jì)的電動(dòng)汽車蓄電池組的標(biāo)稱電壓是 312 伏,由 156 個(gè)標(biāo)稱 2.0 伏的單體電壓組成。為了更好的控制各個(gè)單體電池的均衡性,應(yīng)該采集每個(gè)單體電池的電壓和溫度,但這樣會(huì)增加采集電路的成本,也不易于硬件設(shè)計(jì)。由于軟件每查詢一次電壓和溫度,均需要等待很長(zhǎng)的時(shí)間,降低了系統(tǒng)的實(shí)時(shí)性。因此,將156 個(gè)單體分成 2 組,采集每組蓄電池組的電壓和溫度。然后經(jīng)單片機(jī)C8051F040 處理之后傳送到 CAN 總線,然后經(jīng) CAN 總線送到單片機(jī) AT89C52 進(jìn)行顯示控制等處理。一方面在實(shí)際應(yīng)用中蓄電池的溫度和電壓是分組測(cè)試的,如果本科生畢業(yè)設(shè)計(jì)(論文)2用同一個(gè)單片機(jī)進(jìn)行數(shù)據(jù)處理和控制的話,就不能實(shí)時(shí)監(jiān)測(cè)電池的工作溫度和電壓,降低了實(shí)用性;另一方面在實(shí)際生活中對(duì)蓄電池的監(jiān)測(cè)是多方面的,所以采用兩個(gè)單片機(jī)。在本設(shè)計(jì)中只涉及監(jiān)測(cè)蓄電池的電壓和溫度,但也采用了實(shí)際應(yīng)用中的監(jiān)測(cè)方法,所以單片機(jī)的引腳有些空置。本科生畢業(yè)設(shè)計(jì)(論文)3第 2 章 CAN 總線原理2.1 CAN 總線2.1.1 CAN 的性能特點(diǎn)CAN 總線即控制器局域網(wǎng)絡(luò)(Controller Area Network) 。由于其高性能、高可靠性、及獨(dú)特的設(shè)計(jì),CAN 越來(lái)越受到人們的重視。其應(yīng)用范圍目前已不再局限于汽車行業(yè),而向過(guò)程工業(yè)、機(jī)械工業(yè)、紡織機(jī)械、農(nóng)用機(jī)械、機(jī)器人、數(shù)控機(jī)床、醫(yī)療器械及傳感器等領(lǐng)域發(fā)展。CAN 已經(jīng)形成國(guó)際標(biāo)準(zhǔn),并己被公認(rèn)為幾種最有前途的現(xiàn)場(chǎng)總線之一。CAN 屬于總線式串行通信網(wǎng)絡(luò),由于其采用了許多新技術(shù)及獨(dú)特的設(shè)計(jì),與一般的通信總線相比,CAN 總線的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性。其特點(diǎn)可概括為:1CAN 為多主方式工作,網(wǎng)絡(luò)上任一節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其它節(jié)點(diǎn)發(fā)送信息,而不分主從,通信方式靈活,且無(wú)需站地址等節(jié)點(diǎn)信息。利用這一特點(diǎn)可方便地構(gòu)成多機(jī)備份系統(tǒng)。2CAN 網(wǎng)絡(luò)上的節(jié)點(diǎn)信息分成不同的優(yōu)先級(jí),可滿足不同的實(shí)時(shí)要求,高優(yōu)先級(jí)的數(shù)據(jù)最多可在 134us 內(nèi)得到傳輸。3CAN 采用非破壞性總線仲裁技術(shù),當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)送信息時(shí),優(yōu)先級(jí)較低的節(jié)點(diǎn)會(huì)主動(dòng)地退出發(fā)送,而最高優(yōu)先級(jí)的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),從而大大節(jié)省了總線沖突仲裁時(shí)間。尤其是在網(wǎng)絡(luò)負(fù)載很重的情況下也不會(huì)出現(xiàn)網(wǎng)絡(luò)癱瘓情況。4CAN 只需通過(guò)報(bào)文濾波即可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)、一點(diǎn)對(duì)多點(diǎn)及全局廣播等幾種方式傳送接收數(shù)據(jù),無(wú)需專門的“調(diào)度” 。5CAN 的直接通信距離最遠(yuǎn)可達(dá) 10Km(速率 5Kbps 以下) ;通信速率最高可達(dá) 1 Mbps(此時(shí)通信距離最長(zhǎng)為 40m) 。6CAN 上的節(jié)點(diǎn)數(shù)主要取決于總線驅(qū)動(dòng)電路,目前可達(dá) 110 個(gè);報(bào)文標(biāo)識(shí)符可達(dá)2032 種(CAN2.0A) 。7采用短幀結(jié)構(gòu),傳輸時(shí)間短,受干擾概率低,具有極好的檢錯(cuò)效果。8CAN 每幀信息都有 CRC 校驗(yàn)及其它檢錯(cuò)措施,保證了數(shù)據(jù)出錯(cuò)率極低。9CAN 的通信介質(zhì)可為雙絞線、同軸電纜或光纖,選擇靈活。本科生畢業(yè)設(shè)計(jì)(論文)410CAN 節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出功能,以使總線上其它節(jié)點(diǎn)的操作不受影響。2.1.2 CAN 技術(shù)規(guī)范1CAN 節(jié)點(diǎn)的分層結(jié)構(gòu)為使設(shè)計(jì)透明和執(zhí)行靈活,遵循 ISO/OSI 標(biāo)準(zhǔn)模型,CAN 分為數(shù)據(jù)鏈路層(包括邏輯鏈路控制子層 LLC 和媒體訪問(wèn)控制子層 MAC)和物理層,而在 CAN 技術(shù)規(guī)范 2.0A 的版本中,數(shù)據(jù)鏈路層的 LLC 和 MAC 子層的服務(wù)和功能被描述為“目標(biāo)層”和“傳送層” 。 LLC 子層的主要功能是:為數(shù)據(jù)傳送和遠(yuǎn)程數(shù)據(jù)請(qǐng)求提供服務(wù),確認(rèn)由 LLC子層接收的報(bào)文實(shí)際已被接收,并為恢復(fù)管理和通知超載提供信息。在定義目標(biāo)處理時(shí),存在許多靈活性。MAC 子層的功能主要是傳送規(guī)則,亦即控制幀結(jié)構(gòu)、執(zhí)行仲裁、錯(cuò)誤檢測(cè)、出錯(cuò)標(biāo)定和故障界定。MAC 子層也要確定,為開始一次新的發(fā)送,總線是否開放或者是否馬上開始接收。位定時(shí)特性也是 MAC 子層的一部分。MAC 子層特性不存在修改的靈活性。2報(bào)文傳送及其幀結(jié)構(gòu)在進(jìn)行數(shù)據(jù)傳送時(shí),發(fā)出報(bào)文的單元稱為該報(bào)文的發(fā)送器。該單元在總線空閑或丟失仲裁前恒為發(fā)送器。如果一個(gè)單元不是報(bào)文發(fā)送器,并且總線不處于空閑狀態(tài),則該單元為接收器。對(duì)于報(bào)文發(fā)送器和接收器,報(bào)文的實(shí)際有效時(shí)刻是不同的。對(duì)于發(fā)送器而言,如果直到幀結(jié)束末尾一直未出錯(cuò),則對(duì)于發(fā)送器報(bào)文有效。如果報(bào)文受損,將允許按照優(yōu)先權(quán)順序自動(dòng)重發(fā)送。為了能同其它報(bào)文進(jìn)行總線訪問(wèn)競(jìng)爭(zhēng),總線一旦空閑,重發(fā)送立即開始。對(duì)于接收器而言,如果直到幀結(jié)束的最后一位一直未出錯(cuò),則對(duì)于接收器報(bào)文有效。 構(gòu)成一幀的幀起始、仲裁場(chǎng)、控制場(chǎng)、數(shù)據(jù)場(chǎng)和 CRC 序列均借助位填充規(guī)則進(jìn)行編碼。當(dāng)發(fā)送器在發(fā)送的位流中檢測(cè)到 5 位連續(xù)的相同數(shù)值時(shí),將自動(dòng)地在實(shí)際發(fā)送的位流中插入一個(gè)補(bǔ)碼位。數(shù)據(jù)幀和遠(yuǎn)程幀的其余位場(chǎng)采用固定格式,不進(jìn)行填充。出錯(cuò)幀和超載幀同樣是固定格式,也不進(jìn)行位填充。報(bào)文中的位流按照非歸零(NRZ)碼方法編碼,這意味著一個(gè)完整位的位電平要么是“0” ,要么“l(fā)” 。報(bào)文傳送由 4 種不同類型的幀表示和控制:數(shù)據(jù)幀攜帶數(shù)據(jù)由發(fā)送器至接收器;遠(yuǎn)程幀通過(guò)總線單元發(fā)送,以請(qǐng)求發(fā)送具有相同標(biāo)識(shí)符的數(shù)據(jù)幀;出錯(cuò)幀由檢測(cè)出總線錯(cuò)誤的任何單元發(fā)送;超載幀用于提供當(dāng)前的和后續(xù)的數(shù)據(jù)幀的附加時(shí)間延遲。(1)數(shù)據(jù)幀數(shù)據(jù)幀由 7 個(gè)不同的位場(chǎng)組成,即幀起始、仲裁場(chǎng)、控制場(chǎng)、數(shù)據(jù)場(chǎng)、CRC本科生畢業(yè)設(shè)計(jì)(論文)5場(chǎng)、ACK 場(chǎng)和幀結(jié)束。CAN2.0A 數(shù)據(jù)幀的組成如圖 2.1 所示。 幀起始(SOF)標(biāo)志數(shù)據(jù)幀和遠(yuǎn)程幀的起始,它僅由一個(gè)“1”位構(gòu)成。只有在總線處于空閑狀態(tài)時(shí),才允許節(jié)點(diǎn)開始發(fā)送。所有節(jié)點(diǎn)都必須同步于首先開始發(fā)送的那個(gè)節(jié)點(diǎn)的幀起始前沿。仲裁場(chǎng)由標(biāo)識(shí)符和遠(yuǎn)程發(fā)送請(qǐng)求位(RTR)組成。仲裁場(chǎng)如圖 2.2 所示。 標(biāo)識(shí)符:標(biāo)識(shí)符的長(zhǎng)度為 11 位,這些位以從高位到低位的順序發(fā)送,最低位為 ID.0,其中最高 7 位(ID.10ID.4)不能全為“1” 。RTR 位為“0”代表是數(shù)據(jù)幀,為“1”代表遠(yuǎn)程幀。為“0”還是為“1”是由用戶填寫的??刂茍?chǎng)由 6 位組成,如圖 2.3 所示。 由圖 2.3 可見,控制場(chǎng)包括數(shù)據(jù)長(zhǎng)度碼和兩個(gè)保留位,這兩個(gè)保留位必須發(fā)送“0” 。幀間空間仲裁場(chǎng)控制場(chǎng)標(biāo)識(shí)符RTR 位幀起始控制場(chǎng)仲裁場(chǎng)數(shù)據(jù)場(chǎng)或 CRC 場(chǎng)R1R0DLC3DLC2DLC1DLC0保留位數(shù)據(jù)長(zhǎng)度碼幀間空間數(shù)據(jù)幀幀間空間幀起始仲裁場(chǎng)控制場(chǎng)數(shù)據(jù)場(chǎng)CRC 場(chǎng)ACK 場(chǎng)幀結(jié)束或幀超載圖 2.1 數(shù)據(jù)幀組成圖 2.2 仲裁場(chǎng)組成圖 2.3 控制場(chǎng)組成本科生畢業(yè)設(shè)計(jì)(論文)6數(shù)據(jù)長(zhǎng)度碼數(shù)據(jù)字節(jié)數(shù)目DLC3DLC2DLC1DLC0012345678000000001000011110001100110010101010數(shù)據(jù)場(chǎng)由數(shù)據(jù)幀中被發(fā)送的數(shù)據(jù)組成,它可包括 08 個(gè)字節(jié),每個(gè)字節(jié) 8 位。首先發(fā)送的是最高有效位。CRC 場(chǎng)包括 CRC 序列,后隨 CRC 界定符。CRC 場(chǎng)結(jié)構(gòu)如圖 2.4 所示。為實(shí)現(xiàn) CRC計(jì)算,被除的多項(xiàng)式系數(shù)由包括幀起始、仲裁場(chǎng)、控制場(chǎng)、數(shù)據(jù)場(chǎng)在內(nèi)的位給出,其 15 個(gè)最低位的系數(shù)為 0。此多項(xiàng)式被發(fā)生器產(chǎn)生的多項(xiàng)式除(系數(shù)為模 2 運(yùn)算),該多項(xiàng)式除法的余數(shù)即為發(fā)向總線的 CRC 序列。CRC 界定符必須為“1” 。應(yīng)答場(chǎng)(ACK)為兩位,包括應(yīng)答間隙和應(yīng)答界定符,如圖 2.5 所示。CRC 場(chǎng)ACK 場(chǎng)CRC 序列CRC 界定符圖 2.4 CRC 場(chǎng)結(jié)構(gòu)CRC 場(chǎng)ACK 場(chǎng)幀結(jié)束ACK 間隙ACK 界定符圖 2.5 應(yīng)答場(chǎng)組成表 2.1 數(shù)據(jù)長(zhǎng)度碼中數(shù)據(jù)字節(jié)數(shù)目本科生畢業(yè)設(shè)計(jì)(論文)7在應(yīng)答場(chǎng)中,發(fā)送器送出“1 1” ,即發(fā)送時(shí) ACK 間隙是“1”位,且 ACK 界定符也是“1”位。一個(gè)正確地接收到有效報(bào)文的節(jié)點(diǎn),在 ACK 間隙期間,將正確接收的信息通過(guò)填寫一個(gè)“0”位而覆蓋了 ACK 間隙的“1”位來(lái)報(bào)告給發(fā)送節(jié)點(diǎn)。同理,所有正確地接收到有效報(bào)文的節(jié)點(diǎn),通過(guò)在應(yīng)答間隙內(nèi)把“0”位寫入應(yīng)答場(chǎng)的 ACK 間隙的“1”位來(lái)報(bào)告。ACK 界定符是應(yīng)答場(chǎng)的第二位,并且必須是“1” ,因此,ACK 間隙被兩個(gè)“1” (CRC 界定符和 ACK 界定符)包圍。應(yīng)答場(chǎng)的位填充由硬件自動(dòng)確定。幀結(jié)束:每個(gè)數(shù)據(jù)幀和遠(yuǎn)程幀均由“1111111”組成的標(biāo)志序列界定。這也由硬件來(lái)自動(dòng)填充。(2)遠(yuǎn)程幀需要獲得數(shù)據(jù)的節(jié)點(diǎn)可以借助于傳送一個(gè)遠(yuǎn)程幀來(lái)請(qǐng)求對(duì)應(yīng)的節(jié)點(diǎn)發(fā)送數(shù)據(jù)給它。遠(yuǎn)程幀由 6 個(gè)不同分位場(chǎng)組成:幀起始、仲裁場(chǎng)、控制場(chǎng)、CRC 場(chǎng)、應(yīng)答場(chǎng)和幀結(jié)束。同數(shù)據(jù)幀相比較,不同的是:遠(yuǎn)程幀的 RTR 位是“1” (這須由用戶用程序填充) ;遠(yuǎn)程幀不存在數(shù)據(jù)場(chǎng)。DLC 的數(shù)據(jù)值是獨(dú)立的,它可以是 08 中的任何數(shù)值。遠(yuǎn)程幀的組成如圖 2.6 所示。 (3)出錯(cuò)幀出錯(cuò)幀由兩個(gè)不同場(chǎng)組成,第一個(gè)場(chǎng)由來(lái)自各站的錯(cuò)誤標(biāo)志疊加得到,后隨的第二個(gè)場(chǎng)是出錯(cuò)界定符。出錯(cuò)幀的組成如圖 2.7 所示。 數(shù)據(jù)幀出錯(cuò)幀錯(cuò)誤標(biāo)志幀間空間或超載幀錯(cuò)誤疊加標(biāo)志錯(cuò)誤界定符圖 2.7 出錯(cuò)幀組成幀間空間遠(yuǎn)程幀幀間空間或超載幀幀起始仲裁場(chǎng)控制場(chǎng)CRC 場(chǎng)ACK 場(chǎng)幀結(jié)束 圖 2.6 遠(yuǎn)程幀組成本科生畢業(yè)設(shè)計(jì)(論文)8錯(cuò)誤標(biāo)志具有兩種形式,一種是活動(dòng)錯(cuò)誤標(biāo)志(active error flag) ,一種是認(rèn)可錯(cuò)誤標(biāo)志(Passive error flag) ,活動(dòng)錯(cuò)誤標(biāo)志由“000000”組成,而認(rèn)可錯(cuò)誤標(biāo)志由“111111”組成。一個(gè)檢測(cè)到出錯(cuò)條件的“錯(cuò)誤激活”節(jié)點(diǎn)通過(guò)發(fā)送一個(gè)活動(dòng)錯(cuò)誤標(biāo)志進(jìn)行標(biāo)注。同理,其它節(jié)點(diǎn)若同樣也檢測(cè)到出錯(cuò)條件,則也發(fā)送出錯(cuò)標(biāo)志。這樣,在總線上被監(jiān)視到的“0”序列是由各個(gè)站單獨(dú)發(fā)送的出錯(cuò)標(biāo)志疊加而成的。該序列的總長(zhǎng)度在最小值 6 和最大值 12 位之間變化。一個(gè)檢測(cè)到出錯(cuò)條件的“錯(cuò)誤認(rèn)可”站發(fā)送一個(gè)認(rèn)可錯(cuò)誤標(biāo)志進(jìn)行標(biāo)注。該錯(cuò)誤認(rèn)可站以發(fā)送出認(rèn)可錯(cuò)誤標(biāo)志為起點(diǎn),當(dāng)檢測(cè)到總線上有 6 個(gè)相同的連續(xù)位后,認(rèn)可錯(cuò)誤標(biāo)志即告完成。出錯(cuò)界定符包括“11111111。錯(cuò)誤標(biāo)志發(fā)送后,每個(gè)站都送出“1” ,并監(jiān)視總線,直到檢測(cè)到“1” 。此后開始發(fā)送剩余的“1111111” 。以上錯(cuò)誤幀的位填充由節(jié)點(diǎn)硬件自動(dòng)控制。(4)超載幀超載幀包括兩個(gè)位場(chǎng):超載標(biāo)志和超載界定符,如圖 2.8 所示。(5)幀間空間數(shù)據(jù)幀和遠(yuǎn)程幀同前面的幀相同,不管是何種幀(數(shù)據(jù)幀、遠(yuǎn)程幀、出錯(cuò)幀或超載幀)均被稱為幀間空間的位場(chǎng)分開。幀間空間包括間歇場(chǎng)和總線空閑場(chǎng),對(duì)于“錯(cuò)誤認(rèn)可”節(jié)點(diǎn)還有暫停發(fā)送場(chǎng)。對(duì)于非“錯(cuò)誤認(rèn)可”的接收器,其幀間空間如圖 2.9 所示;對(duì)于“錯(cuò)誤認(rèn)可”節(jié)點(diǎn),其幀間空間如圖 2.10 所示。 幀間空間總線空間幀幀間歇場(chǎng)幀結(jié)束或超載界定符錯(cuò)誤界定符超載幀超載錯(cuò)誤幀間空間或超載幀超載界定符超載疊加標(biāo)志圖 2.8 超載幀組成圖 2.9 非“錯(cuò)誤認(rèn)可”幀間空間本科生畢業(yè)設(shè)計(jì)(論文)9 間歇場(chǎng)由“111”組成。間歇期間,不允許啟動(dòng)發(fā)送數(shù)據(jù)幀或遠(yuǎn)程幀??偩€空閑周期可為任意長(zhǎng)度。此時(shí),總線是開放的,因此任何需要發(fā)送的站均可訪問(wèn)總線。暫停發(fā)送場(chǎng)是指:“錯(cuò)誤認(rèn)可”節(jié)點(diǎn)發(fā)完一個(gè)報(bào)文后,在開始下一次報(bào)文發(fā)送或總線空閑之前,它緊隨間歇場(chǎng)后送出“11111111” 。如果其間由其它站引起一次發(fā)送,則本節(jié)點(diǎn)將變?yōu)閳?bào)文接收器。2.2 CAN 通信控制器 SJA1000CAN 的通信協(xié)議主要由 CAN 控制器完成。CAN 控制器主要由實(shí)現(xiàn) CAN 總線協(xié)議部分和微控制器接口部分組成。不同型號(hào)的 CAN 總線通信控制器,實(shí)現(xiàn) CAN 協(xié)議部分電路的結(jié)構(gòu)和功能大都相同,而與微控制器接口部分的結(jié)構(gòu)及方式存在一些差異。2.2.1 BasicCAN 功能說(shuō)明1地址分配SJA1000 的地址域由控制段和報(bào)文緩沖器組成。在 SJA1000 被初始化時(shí),控制段可被設(shè)置通信參數(shù),CAN 總線上的通信可通過(guò)此段由 CPU 控制。被發(fā)送的報(bào)文必須被寫入發(fā)送節(jié)點(diǎn)的發(fā)送緩沖器,接收節(jié)點(diǎn)成功接收后,微控制器可從接收節(jié)點(diǎn)的接收緩沖器讀取報(bào)文,然后釋放它,準(zhǔn)備下次用。注:(1)寄存器在高端 CAN 地址區(qū)被重復(fù)(8 位 CPU 地址的最高位是不參與解碼的;CAN 地址 32 是和 CAN 地址 0 連續(xù)的)(2)測(cè)試寄存器只用于產(chǎn)品測(cè)試。正常操作中使用這個(gè)寄存器會(huì)導(dǎo)致設(shè)備不可意料的結(jié)果。(3)許多位在復(fù)位模式中是只寫的(CAN 模式和 CBP)2控制寄存器(CR):CAN 地址 0控制寄存器的內(nèi)容是用于改變 CAN 控制器的行為的。這些位可以被微控制器幀間空間間歇場(chǎng)暫停發(fā)送場(chǎng)總線空間幀幀圖 2.10 “錯(cuò)誤認(rèn)可”幀間空間本科生畢業(yè)設(shè)計(jì)(論文)10設(shè)置或復(fù)位,用戶可以對(duì)控制寄存器進(jìn)行讀/寫操作。3命令寄存器(CMR):CAN 地址 1命令位初始化 SJA1000 傳輸層動(dòng)作。命令寄存器對(duì)微控制器來(lái)說(shuō)是只寫存儲(chǔ)器,用戶可以對(duì)之進(jìn)行操作。如果去讀這個(gè)地址,返回值是11111111 。4狀態(tài)寄存器(SR):CAN 地址 2狀態(tài)寄存器內(nèi)容反映了 SJA1000 的狀態(tài)。狀態(tài)寄存器對(duì)用戶來(lái)說(shuō)是只讀存儲(chǔ)器。5中斷寄存器(IR):CAN 地址 3中斷寄存器允許中斷源的識(shí)別。當(dāng)寄存器的一位或多位被置位時(shí),INT(低電平有效)引腳就被激活了。寄存器在被控制器讀過(guò)之后,所有會(huì)導(dǎo)致 INT 引腳上的電平漂移的位被復(fù)位。中斷寄存器對(duì)用戶來(lái)說(shuō)是只讀存儲(chǔ)器。6識(shí)別碼(ID)識(shí)別碼有 11 位(ID.0ID.10) 。ID.10 是最高位,在仲裁過(guò)程中是最先被發(fā)送到總線上。識(shí)別碼就像信息的名字。它在接收器的接收過(guò)濾器中被用到,也在仲裁過(guò)程中決定總線訪問(wèn)的優(yōu)先級(jí)。識(shí)別碼的值越低,其優(yōu)先級(jí)越高。該識(shí)別碼由用戶填寫。7遠(yuǎn)程發(fā)送請(qǐng)求(RTR)如果此位是“1” ,總線將以遠(yuǎn)程結(jié)構(gòu)發(fā)送數(shù)據(jù),這意味著此段中沒(méi)有數(shù)據(jù)字節(jié)。盡管如此,也需要同識(shí)別碼相同的數(shù)據(jù)結(jié)構(gòu)來(lái)識(shí)別正確的數(shù)據(jù)長(zhǎng)度。如果 RTR 位沒(méi)有被置位,數(shù)據(jù)將以數(shù)據(jù)長(zhǎng)度碼規(guī)定的長(zhǎng)度來(lái)傳送。8數(shù)據(jù)長(zhǎng)度碼(DLC)信息數(shù)據(jù)區(qū)的字節(jié)數(shù)根據(jù)數(shù)據(jù)長(zhǎng)度碼編制。在遠(yuǎn)程結(jié)構(gòu)傳送中,因?yàn)?RTR 被置位數(shù)據(jù)長(zhǎng)度碼是不被考慮的。這就迫使發(fā)送、接收數(shù)據(jù)字節(jié)數(shù)為 0??傊?,數(shù)據(jù)長(zhǎng)度碼必須正確設(shè)置以避免兩個(gè) CAN 控制器用同樣的識(shí)別機(jī)制啟動(dòng)遠(yuǎn)程結(jié)構(gòu)傳送而發(fā)生總線錯(cuò)誤。數(shù)據(jù)字節(jié)數(shù)是 08,是以如下方法計(jì)算的:數(shù)據(jù)字節(jié)數(shù)=8DLC. 3+4DLC. 2+2DLC.1+DLC. 0為了保持兼容性,數(shù)據(jù)長(zhǎng)度碼不超過(guò) 8,如果選擇的值超過(guò) 8,則按照 DLC規(guī)定認(rèn)為是 8。它的各位由用戶填寫。9數(shù)據(jù)區(qū)傳送的數(shù)據(jù)字節(jié)數(shù)由數(shù)據(jù)長(zhǎng)度碼決定。發(fā)送的第一位是地址 12 單元的數(shù)據(jù)字節(jié)的最高位。由用戶填寫所要發(fā)送的數(shù)據(jù)。10接收緩沖器接收緩沖器的全部列表和發(fā)送緩沖器類似。接收緩沖器是 RXFIFO 中可訪問(wèn)的部分,位于 CAN 地址的 2029 之間。本科生畢業(yè)設(shè)計(jì)(論文)11識(shí)別碼、遠(yuǎn)程發(fā)送請(qǐng)求位和數(shù)據(jù)長(zhǎng)度碼同發(fā)送緩沖器的相同,只不過(guò)是在地址 2029。RXFIFO 共有 64 字節(jié)的信息空間。在任何情況下,F(xiàn)IFO 中可以存儲(chǔ)的信息數(shù)取決于各條信息的長(zhǎng)度。如果 RXFIFO 中沒(méi)有足夠的空間來(lái)存儲(chǔ)新的信息,CAN 控制器會(huì)產(chǎn)生數(shù)據(jù)溢出。數(shù)據(jù)溢出發(fā)生時(shí),己部分寫入 RXFIFO 的當(dāng)前信息將被刪除。這種情況將通過(guò)狀態(tài)位或數(shù)據(jù)溢出中斷反應(yīng)到微控制器。接收緩沖器的內(nèi)容是本節(jié)點(diǎn)有效接收的數(shù)據(jù)。11接收過(guò)濾器在接收過(guò)濾器的幫助下,CAN 控制器能夠允許 RXFIFO 只接收同識(shí)別碼和接受過(guò)濾器中預(yù)設(shè)值相一致的信息。接收過(guò)濾器通過(guò)接收代碼寄存器和接收屏蔽寄存器來(lái)定義。該接收過(guò)濾器由用戶填寫。12接收代碼寄存器(ACR) CAN 地址 4復(fù)位請(qǐng)求位被置高(當(dāng)前)時(shí),這個(gè)寄存器是可以訪問(wèn)的。如果一條信息通過(guò)了接收過(guò)濾器的測(cè)試而且接收緩沖器有空間,那么描述符和數(shù)據(jù)將被分別順次寫入 RXFIFO。當(dāng)信息被正確的接收完畢,就會(huì):收狀態(tài)位置高(滿)收中斷使能位置高(使能)接收中斷置高(產(chǎn)生中斷) 。接收代碼位(AC.7AC.0)和信息識(shí)別碼的高 8 位(ID.10ID.0)相等,且與接收屏蔽位(AM.7AM.0)的相應(yīng)位相等或?yàn)?1。即如果滿足以下方程的描述,則被接收:ID.10ID.3=AC.7AC.0AM.7AM.01111111113接收屏蔽寄存器(AMR) CAN 地址 5如果復(fù)位請(qǐng)求位置高(當(dāng)前) ,這個(gè)寄存器可以被訪問(wèn)(讀/寫) 。驗(yàn)收屏蔽寄存器定義驗(yàn)收代碼寄存器的哪些位對(duì)接收過(guò)濾器是“相關(guān)的”或“無(wú)關(guān)的” 。本科生畢業(yè)設(shè)計(jì)(論文)12第 3 章 總體設(shè)計(jì)方案3.1 系統(tǒng)功能描述在汽車中,有很多信號(hào)的采集。這些信號(hào)需要共享,而不僅僅是用于某一個(gè)控制單元。使用 CAN 總線就可以很簡(jiǎn)單的將這些信號(hào)采集單元組成網(wǎng)絡(luò),從而共享數(shù)據(jù)。CAN 總線系統(tǒng)中所有的信號(hào)傳輸都通過(guò)總線傳輸。電動(dòng)汽車已成為未來(lái)汽車技術(shù)發(fā)展的趨勢(shì),有效合理的電池管理系統(tǒng)能夠最優(yōu)的利用有限的電池能量,最大化的延長(zhǎng)電池生命周期。因此,動(dòng)力蓄電池管理系統(tǒng)成為電動(dòng)車技術(shù)重要課題之一。本次設(shè)計(jì)以單片機(jī)為核心,設(shè)計(jì)了一種高精度、低價(jià)格的電池管理系統(tǒng),實(shí)現(xiàn)了對(duì)電動(dòng)汽車多組蓄電池組的溫度和電壓的實(shí)時(shí)監(jiān)測(cè)。應(yīng)用 CAN 總線與動(dòng)力總成控制器通訊,性能可靠,開放性強(qiáng),抗電磁干擾能力強(qiáng),特別適用于復(fù)雜的車輛環(huán)境監(jiān)測(cè)。本系統(tǒng)就是要用 CAN 總線技術(shù)來(lái)實(shí)現(xiàn)。純電動(dòng)汽車以車載動(dòng)力蓄電池為電源,而蓄電池是一種化學(xué)反應(yīng)裝置,內(nèi)部的化學(xué)反應(yīng)一般不易覺(jué)察,日常使用中的缺陷不會(huì)立即反應(yīng)出來(lái)。為了延長(zhǎng)蓄電池的壽命,必須避免過(guò)充電或過(guò)放電,并且能顯示電監(jiān)測(cè)各單體蓄電池的工作電壓和溫度,降低蓄電池組各單體蓄電池的不均衡性,并且能通過(guò) CAN 總線與車用動(dòng)力總控制器通訊,將蓄電池組的溫度、電壓等參數(shù)實(shí)時(shí)傳給動(dòng)力總控制器。傳感器采集蓄電池的電壓和溫度,并進(jìn)行處理后通過(guò) CAN 總線將采集來(lái)的數(shù)據(jù)發(fā)送到汽車的其它控制單元中,而且可以接收 CAN 總線中其它節(jié)點(diǎn)或控制單元的數(shù)據(jù)。要求系統(tǒng)的軟硬件能夠協(xié)同工作實(shí)現(xiàn)功能。3.2 設(shè)計(jì)方案系統(tǒng)工作過(guò)程是:?jiǎn)卧械膯纹瑱C(jī) C8051F040 把來(lái)自信號(hào)采集電路采集的信號(hào)采集進(jìn)來(lái),對(duì)其進(jìn)行處理后,發(fā)向 CAN 控制器的發(fā)送緩沖區(qū),然后啟動(dòng) CAN 控制器的發(fā)送命令,此時(shí) CAN 控制器將自動(dòng)向總線發(fā)送數(shù)據(jù)。CAN 控制器通過(guò)信息幀中的標(biāo)識(shí)符來(lái)進(jìn)行仲裁,標(biāo)識(shí)符數(shù)值最小的 CAN 控制器具有對(duì)總線的優(yōu)先使用權(quán)。CAN 控制器檢測(cè)到總線上有數(shù)據(jù)時(shí)會(huì)自動(dòng)接收總線上的所需數(shù)據(jù),存入其接收緩沖區(qū),并向單片機(jī) AT89C52 發(fā)送接收中斷,啟動(dòng)單片機(jī)的接收服務(wù)程序,單片機(jī)通過(guò)執(zhí)行接收服務(wù)程序從 CAN 控制器的接收緩沖區(qū)讀取數(shù)據(jù),然后進(jìn)行顯示本科生畢業(yè)設(shè)計(jì)(論文)13控制等。系統(tǒng)結(jié)構(gòu)框圖如圖 3.1 所示。溫度傳感器電壓隔離采樣電路單片機(jī)C8051F040信號(hào)放大放大電壓變換CAN 收發(fā)器CAN BUSCAN 收發(fā)器光電隔離CAN 控制器單 片 機(jī)AT89C52LED 顯示鍵盤圖 3,.1 系統(tǒng)結(jié)構(gòu)框圖3.3 設(shè)計(jì)要點(diǎn)(1)在設(shè)計(jì)微處理器與 SJA1000 的接口電路時(shí),首先要根據(jù)微處理器選擇SJA1000 的接口模式。其次要注意 SJA1000 的片選地址應(yīng)與其它的外部寄存器無(wú)沖突,還應(yīng)注意 SJA1000 的復(fù)位電路應(yīng)為低電平有效。(2)微處理器對(duì) SJAI000 的控制訪問(wèn),是以外部寄存器方式來(lái)訪問(wèn) SJA1000 的內(nèi)部寄存器,所以在微處理器訪問(wèn) SJA1000 時(shí),應(yīng)該正確定義 SJA1000 內(nèi)部寄存器的訪問(wèn)地址。(3)微處理器可以通過(guò)中斷和查詢的方式來(lái)訪問(wèn) SJA1000。(4)微處理器訪問(wèn) SJA1000 時(shí),有兩種不同的模式:工作模式和復(fù)位模式。對(duì)SJA1000 的初始化只能在 SJA1000 的復(fù)位模式下進(jìn)行。初始化包括設(shè)置驗(yàn)收濾波器、總線定時(shí)器、輸出控制、時(shí)鐘分頻中的特定控制等,設(shè)置復(fù)位請(qǐng)求后,一定要校驗(yàn),以確保設(shè)置成功。(5)向 SJA1000 的發(fā)送緩沖區(qū)寫入數(shù)據(jù)時(shí),一定要檢查發(fā)送緩沖區(qū)是否處于鎖定狀態(tài),如鎖定,這時(shí)寫入的數(shù)據(jù)將丟失。(6)對(duì) SJA1000 的操作難點(diǎn)在于總線定時(shí)器的設(shè)置,設(shè)置總線定時(shí)器包括:設(shè)置總線波特率、同步跳轉(zhuǎn)寬度、位周期的長(zhǎng)度、采樣點(diǎn)的位置和每個(gè)采樣點(diǎn)的數(shù)本科生畢業(yè)設(shè)計(jì)(論文)14目。本科生畢業(yè)設(shè)計(jì)(論文)153.4 芯片的選擇1單片機(jī) 本次設(shè)計(jì)用到兩個(gè)單片機(jī):C8051F040 和 AT89C52。Cygnal 公司的 51 系列單片機(jī) C8051F040 是集成在一塊芯片上的混合信號(hào)系統(tǒng)級(jí)單片機(jī),在一個(gè)芯片內(nèi)集成了構(gòu)成一個(gè)單片機(jī)數(shù)據(jù)采集或控制的智能節(jié)點(diǎn)所需要的幾乎所有模擬和數(shù)字外設(shè)以及其他功能部件,代表了目前 8 位單片機(jī)控制系統(tǒng)的發(fā)展方向。芯片上有 1 個(gè) 12 位多通道 ADC,2 個(gè) 12 位 DAC,2 個(gè)電壓比較器,1 個(gè)電壓基準(zhǔn),1 個(gè) 32kB 的 FLASH 存儲(chǔ)器,與 MCS51 指令集完全兼容的高速 CIP51 內(nèi)核,峰值速度可達(dá) 25MIPS,并且還有硬件實(shí)現(xiàn)的 UART 串行接口和完全支持 CAN2.0A 和 CAN2.0B 的 CAN 控制器。C8051F040 內(nèi)部嵌入一個(gè) 8 路 12 位 ADC 和一個(gè) 8 路 8 位 ADC,可滿足多組電池組電壓和溫度信號(hào)的輸入要求。內(nèi)部有 4352 字節(jié) RAM 和 64K FLAH 程序存儲(chǔ)器,可省去擴(kuò)展存儲(chǔ)器的工作;并且內(nèi)部嵌入滿足 CAN2.0B 規(guī)范的 CAN 控制器,可方便實(shí)現(xiàn) CAN 通訊。AT89C52 芯片內(nèi)部有 6 個(gè)中斷源,在本次設(shè)計(jì)中涉及到 AT89C52 芯片的中斷源有三個(gè),分別是外部中斷 INT0、INT1、定時(shí)/計(jì)數(shù)器 T0。其中外部中斷 INT0優(yōu)先級(jí)別最高,定時(shí)/計(jì)數(shù)器 T0 次之,然后是 INT1 中斷。下面就這四個(gè)中斷源介紹如下:(1)關(guān)于外部中斷外部中斷的激活方式分為兩種:一種是電平激活,另一種是邊緣激活。這兩種方式可以靠 TCON 寄存器中的中斷方式位 IT1 或 IT0 來(lái)控制。若 ITx=0(X 為 0或 1) ,則采用電平激活方式:在 INTX 引腳上檢測(cè)到低電平,將觸發(fā)外部中斷。若 ITx=1,則采用邊沿激活方式:在相繼的 2 個(gè)周期中,對(duì) ITx 引腳進(jìn)行連續(xù) 2次采樣,若第一次采樣值為高,第二次為低,則 TCON 寄存器中的中斷請(qǐng)求標(biāo)志IEx 被置 1,以請(qǐng)求中斷。由于外部中斷引腳每個(gè)機(jī)器周期被采樣一次,為確保采樣由引腳 INTX 輸入的信號(hào)至少保持一個(gè)機(jī)器周期,即 12 個(gè)振蕩周期。如果外部中斷為邊緣激活方式,則引腳處的高電平和低電平值至少各保持一個(gè)機(jī)器周期,才能確保 CPU 檢測(cè)到電平的跳變,而把中斷請(qǐng)求標(biāo)志 IEx=1。如果采用電平激活外部中斷方式,外部中斷源應(yīng)一直保持中斷請(qǐng)求有效,直至所請(qǐng)求的中斷得到響應(yīng)時(shí)為止。(2)關(guān)于定時(shí)/計(jì)數(shù)器 T1、T0 和 T2AT89C52 有三個(gè)定時(shí)計(jì)數(shù)器,本系統(tǒng)中使用了一個(gè)定時(shí)/計(jì)數(shù)器 T0。本科生畢業(yè)設(shè)計(jì)(論文)16在專用寄存器 TMOD(定時(shí)器方式)中,各有一個(gè)控制為(C/T) ,分別用于控制定時(shí)/計(jì)數(shù)器 0 和 1 是工作在定時(shí)器方式還是計(jì)數(shù)器方式。選擇定時(shí)器工作方式時(shí),計(jì)數(shù)輸入信號(hào)是內(nèi)部時(shí)鐘,每隔機(jī)器周期使寄存器的值增 1。每個(gè)機(jī)器周期等于 12 個(gè)振蕩器周期,故計(jì)數(shù)速率為振蕩器頻率的 1/12。當(dāng)采用 I2MHz 晶振時(shí),計(jì)數(shù)速率為 1MHz。當(dāng)選擇計(jì)數(shù)器工作方式時(shí),計(jì)數(shù)脈沖來(lái)自相應(yīng)的外部引腳T0 或 T1。當(dāng)輸入信號(hào)產(chǎn)生由 1 至 0 的跳變時(shí),計(jì)數(shù)寄存器(TH0、TL0 或TH1、TH0)的值增 1。每個(gè)定時(shí)/計(jì)數(shù)器還有 4 種操作模式。模式 0:通過(guò) TMOD 寄存器把定時(shí)/計(jì)時(shí)器 0 或 1 置為模式 0。在這種模式下,16 位寄存器 TH1/0+TL1/0 只用了 13 位,TL1/0 的高三位未用。模式 1:定時(shí)/計(jì)數(shù)器 0 或 1 以全 16 位參與操作的。模式 2:這種模式是把定時(shí)計(jì)數(shù)器 TL0 或 TL1 配置成一個(gè)可以自動(dòng)重裝載的8 為計(jì)數(shù)器。TL1 計(jì)數(shù)溢出時(shí),不僅使溢出標(biāo)志 TF1 置 1,而且還自動(dòng)把 TH1 中的內(nèi)容重裝載到 TL1 中。TH1 的內(nèi)容可以靠軟件預(yù)置,重裝載后內(nèi)容不變。模式 3:操作模式 3 對(duì)定時(shí)/計(jì)數(shù)器 0 和定時(shí)/計(jì)數(shù)器 1 是不同的。對(duì)于定時(shí)/計(jì)數(shù)器 1,設(shè)置為模式 3 將使它保持原有的計(jì)數(shù)值,其作用如同使 TR1=0。對(duì)于定時(shí)/計(jì)數(shù)器 0,模式 3 將使 TL0 和 TH0 成為 2 個(gè)互相獨(dú)立的 8 位計(jì)數(shù)器。(3)串行口AT89C52 單片機(jī)內(nèi)有一個(gè)全雙工串行口,可同時(shí)發(fā)送和接收數(shù)據(jù)。該口在接收數(shù)據(jù)時(shí)具有緩沖作用。串行口的中斷是由串行口控制寄存器 SCON 中的發(fā)送標(biāo)志 TI 或接收中斷標(biāo)志 RI 產(chǎn)生。在中斷相應(yīng)的過(guò)程中,此二標(biāo)志位均不會(huì)被硬件清 0。通常,串行口中斷服務(wù)程序往往需要查清此次中斷究竟由何種標(biāo)志所致。串行口有四種運(yùn)作方式。方式 0:在這種方式下,串行數(shù)據(jù)的發(fā)送與接收均通過(guò) RXD 引腳進(jìn)行。RXD引腳來(lái)輸出移位脈沖。以 8 位數(shù)據(jù)為一幀,每個(gè)機(jī)器周期發(fā)送或接收一位,波特率為振蕩頻率的 1/12。方式 1:數(shù)據(jù)發(fā)送通過(guò) TXD 引腳,接收通過(guò) RXD 引腳進(jìn)行。10 位為一幀:一個(gè)起始位(0) ,8 個(gè)數(shù)據(jù)位(最低位優(yōu)先)和一個(gè)停止位(1) 。接收時(shí),停止位進(jìn)入專用寄存器 SCON 的 RB8。波特率可變。方式 2:數(shù)據(jù)的發(fā)送和接收分別通過(guò) TXD 和 RXD 引腳進(jìn)行。11 位為一幀:一個(gè)起始位(0) ,8 個(gè)數(shù)據(jù)位(最低位優(yōu)先) ,一個(gè)可編程的第九數(shù)據(jù)位和一個(gè)停止位(1) 。發(fā)送時(shí),第九數(shù)據(jù)位來(lái)自專用寄存器 SCON 的 TB8,可為 0 或 1 波特率可編程為振蕩頻率的 1 /32 或 1/64。方式 3:在此方式下,波特率是可任意安排的,除此之外,方式 3 和方式 2本科生畢業(yè)設(shè)計(jì)(論文)17完全相同。2CAN 控制器作為一種非常成熟的現(xiàn)場(chǎng)總線技術(shù),目前市面上有許多 CAN 控制器和 CAN 總線驅(qū)動(dòng)器產(chǎn)品。有獨(dú)立 CAN 控制器,也有和 CPU 集成到一起的非獨(dú)立 CAN 控制器。生產(chǎn) CAN 控制器和驅(qū)動(dòng)器產(chǎn)品的廠家也很多,幾乎所有半導(dǎo)體生產(chǎn)廠家都有 CAN總線器件,這也是選擇 CAN 總線構(gòu)成本系統(tǒng)的因素之一。 考慮到本系統(tǒng)中 CPU 的負(fù)荷較重,所以設(shè)計(jì) CAN 通信電路時(shí),選擇硬件實(shí)現(xiàn)的獨(dú)立 CAN 控制器。目前應(yīng)用較多的就是 Philips 公司的 SJA1000,考慮到該產(chǎn)品的應(yīng)用十分普遍,設(shè)計(jì)參考資料也很豐富,市場(chǎng)上也容易購(gòu)置,價(jià)格也相對(duì)比較便宜,所以本設(shè)計(jì)選用該芯片。3通用 CAN 收發(fā)器PCA82C50 是 CAN 協(xié)議控制器和物理總線間的接口,它主要是為汽車中高速通訊(高達(dá) 1Mbps)應(yīng)用而設(shè)計(jì)。此器件對(duì)總線提供差動(dòng)發(fā)送能力,對(duì) CAN 控制器提供差動(dòng)接收能力,完全符合“ISO11898”標(biāo)準(zhǔn)。一個(gè)限流電路可防止發(fā)送輸出級(jí)對(duì)電池電壓的正端和負(fù)端短路。雖然在這種故障條件出現(xiàn)時(shí),功耗將增加,但這種特性可以阻止發(fā)送器輸出級(jí)的破壞。在節(jié)點(diǎn)溫度大約超過(guò) 160時(shí),兩個(gè)發(fā)送器輸出端的極限電流將減少。由于發(fā)送器是功耗的主要部分,因此芯片溫度會(huì)迅速降低。IC 的其它所有部分將繼續(xù)工作。當(dāng)總線短路時(shí),熱保護(hù)十分重要。CANH、CANL 兩條線也防止在汽車環(huán)境下可能發(fā)生的電氣瞬變現(xiàn)象。PCA82C250 共有三種不同的工作模式控制,通過(guò) Rs 控制引腳提供:第一種模式是高速模式。它支持最大的總線速度和長(zhǎng)度。第二種是斜率模式。當(dāng)使用非屏蔽的總線電纜時(shí),可以考慮使用這種模式。這種模式的輸出轉(zhuǎn)換速度可被故意降低,以減少電磁輻射。第三種是準(zhǔn)備模式。這種模式在電池供電的應(yīng)用要求系統(tǒng)功率消耗非常低的應(yīng)用中非常有用。在準(zhǔn)備模式中傳輸一個(gè)報(bào)文就可以將系統(tǒng)激活。本科生畢業(yè)設(shè)計(jì)(論文)18第 4 章 系統(tǒng)硬件設(shè)計(jì)4.1 單片機(jī)電路設(shè)計(jì)本系統(tǒng)因?yàn)閼?yīng)用于汽車中,周圍信號(hào)干擾強(qiáng),最好系統(tǒng)使用盡可能少的外圍擴(kuò)展芯片,提高系統(tǒng)運(yùn)行的可靠性,所以要求使用的單片機(jī)具有片內(nèi)足夠大的ROM 和 RAM。目前 AT89C52 是應(yīng)用最廣的單片機(jī)之一,它具有很高的性能價(jià)格比。而 C8051F040 內(nèi)部嵌入一個(gè) 8 路 12 位 ADC 和一個(gè) 8 路 8 位 ADC,可滿足多組電池組電壓和溫度信號(hào)的輸入要求。內(nèi)部有 4352 字節(jié) RAM 和 64K FLAH 程序存儲(chǔ)器,可省去擴(kuò)展存儲(chǔ)器的工作;并且內(nèi)部嵌入滿足 CAN2.0B 規(guī)范的 CAN 控制器,可方便實(shí)現(xiàn) CAN 通訊。完全滿足設(shè)計(jì)本系統(tǒng)的要求,因此在眾多的單片機(jī)類型中選取了 ATMEL 公司的 AT89 系列單片機(jī) AT89C52 和 Cygnal 公司的 C8051F040 單片機(jī)。AT89C52 單片機(jī)是的一種低功耗、高性能內(nèi)含 8K 字節(jié)閃電存儲(chǔ)器(Flash Memory)的 8 位 CMOS 微控制器,與工業(yè)標(biāo)準(zhǔn) MCS-51 指令系列和引腳完全兼容。有超強(qiáng)的加密功能,其片內(nèi)閃電存儲(chǔ)器的編程與擦除完全用電實(shí)現(xiàn),數(shù)據(jù)不易揮發(fā),編程/擦除速度快,全 4K 字節(jié)編程只需 3s,擦除時(shí)間約用 10ms;它的主要特點(diǎn)有:(1)內(nèi)部程序存儲(chǔ)器為電擦除可編程只讀存儲(chǔ)器 EEPROM,容量 8KB,內(nèi)部數(shù)據(jù)存儲(chǔ)器容量 256B(不包括專用寄存器) ,外部數(shù)據(jù)存儲(chǔ)器尋址空間 64KB,外部程序存儲(chǔ)器尋址空間 64KB;(2)有三個(gè) 16 位的定時(shí)器/計(jì)數(shù)器;(3)可利用兩根 I/O 口線作為全雙工的串行口,有四種工作方式,可通過(guò)編程選定;(4)內(nèi)部 ROM 中開辟了四個(gè)通用工作寄存器區(qū),共 32 個(gè)通用寄存器,以適應(yīng)多種中斷或子程序嵌套的情況;(5)內(nèi)部有 6 個(gè)中斷源,分為兩個(gè)優(yōu)先級(jí),每個(gè)中斷源優(yōu)先級(jí)是可編程的;(6)堆棧位置是可編程的,堆棧深度可達(dá) 128 字節(jié);(7)內(nèi)部有一個(gè)由直接可尋址位組成的布爾處理機(jī),在指令系統(tǒng)中包含了一個(gè)指令子集,專用于對(duì)布爾處理機(jī)的各位進(jìn)行各種布爾處理,特別適用于控制目的和解決邏輯問(wèn)題;(8)AT89C52 的狀態(tài)周期由振蕩器 2 分頻后獲得,作為芯片工作的基本時(shí)間本科生畢業(yè)設(shè)計(jì)(論文)19單位。采用 12MHz 時(shí),AT89C52 的狀態(tài)周期為(2/12)10-8=167ns。設(shè)計(jì) SJA1000 控制器與 CPU 的硬件連接電路,主要是 SJA1000 控制器的片選CS 和中斷 INT 兩個(gè)引腳的連接設(shè)計(jì)。片選 CS 連接決定 SJA1000 控制器內(nèi)的地址寄存器占用的數(shù)據(jù)存儲(chǔ)空間范圍,中斷 INT 連接決定 SJA1000 通訊中斷的優(yōu)先級(jí)和中斷向量以及中斷服務(wù)程序的調(diào)用。本設(shè)計(jì)分配給 SJA1000 控制器的中斷源使用 AT89C52 基本 I/O 端口 3 提供的一個(gè)外部中斷 INT0,分配給 SJA1000 控制器的數(shù)據(jù)地址空間,通過(guò)基本 I/O 端口2 的 P2.7 提供控制線。在進(jìn)行 CAN 控制器和 CPU 的連線設(shè)計(jì)之前,必須先設(shè)計(jì) CPU 訪問(wèn) CAN 控制器的方式。本系統(tǒng)采用查詢和中斷相結(jié)合的方式訪問(wèn) CAN 控制器,且通過(guò) CPU 的數(shù)據(jù)地址空間,訪問(wèn) CAN 控制器中的各種寄存器。設(shè)計(jì) SJA1000 控制器的硬件連接電路時(shí),要進(jìn)行 Intel 和 Motorola CPU 器件類型的選擇。AT89C52 是與 Intel 兼容的芯片,所以本設(shè)計(jì)選擇 Intel 模式。C8051F040單片機(jī)是由美國(guó)Cygnal公司生產(chǎn)的完全集成的混合信號(hào)系統(tǒng)級(jí)SoC(System on Chip),具有與8051指令集完全兼容的CIP-51內(nèi)核。它在一塊芯片上集成了構(gòu)成一個(gè)單片機(jī)數(shù)據(jù)采樣或控系統(tǒng)所需要的幾乎所有模擬和數(shù)字外設(shè)及其它功能部件。它具有64K Bflash、4352B RAM、CAN控制器2.0、2個(gè)串行接口、5個(gè)16位定時(shí)器、12位A/D轉(zhuǎn)換器、8位A/D轉(zhuǎn)換器及12位D/A轉(zhuǎn)換器等,它內(nèi)部還帶有JTAG接口,使調(diào)試變得非常方便。C8051F040 CAN控制器構(gòu)成及訪問(wèn)方式:C8051F040內(nèi)部集成的CAN 控制器為Bosch CAN控制器。此CAN控制器有以下幾部分構(gòu)成:CAN內(nèi)核、報(bào)文RAM(與C8051 RAM相互獨(dú)立)、報(bào)文處理狀態(tài)機(jī)制和CAN控制寄存器。在 CAN 控制器里只有三個(gè)寄存器可通過(guò) CIP-51 中的特殊功能寄存器直接訪問(wèn),其它的寄存器只能通過(guò) CAN 0ADR、CAN 0DATH 和 CAN 0DATL 寄存器以地址索引的方式間接訪問(wèn)。在使用 CAN 控制器時(shí),重點(diǎn)和難點(diǎn)是對(duì) CAN 控制器的寄存器的使用,其內(nèi)部寄存器的分類及其主要功能如下:(a)CAN 控制器協(xié)議寄存器該協(xié)議寄存器是用來(lái)配置 CAN 控制器,處理各種中斷,監(jiān)控總線狀態(tài)以及置控制器為測(cè)試模式。CAN 控制器協(xié)議寄存器可使用 C8051 MCU 特殊功能寄存器通過(guò)索引方式間接訪問(wèn),其中有些還可以很方便的通過(guò) C8051 內(nèi)部特殊功能寄存器直接尋址來(lái)訪問(wèn)。這部分的寄存器有:CAN 控制寄存器(CAN0CN)、CAN 狀態(tài)寄存器(CAN0STA)、CAN 測(cè)試寄存器(CANTST)、錯(cuò)誤計(jì)數(shù)寄存器、位定時(shí)寄存器和波特率預(yù)比列因子擴(kuò)展寄存器。其中,CAN0CN、CAN0STA 和 CANTST 可通過(guò) C8051 MCU 特殊功能寄存器直接訪問(wèn),其它的只能通過(guò)間接訪問(wèn)。本科生畢業(yè)設(shè)計(jì)(論文)20(b)報(bào)文對(duì)象接口寄存器CAN 控制器中有兩組報(bào)文對(duì)象接口寄存器,它們用來(lái)配置報(bào)文 RAM 中 32 個(gè)報(bào)文對(duì)象是用來(lái)向 CAN 總線發(fā)送數(shù)據(jù),還是從 CAN 總線接收數(shù)據(jù)。當(dāng)其中的一組被設(shè)置為向報(bào)文 RAM 中寫數(shù)據(jù),另一組則從報(bào)文 RAM 中讀取數(shù)據(jù)。利用此接口寄存器可以避免 CPU 訪問(wèn)報(bào)文 RAM 與 CAN 報(bào)文接收和發(fā)送緩沖轉(zhuǎn)移之間的沖突。所有的報(bào)文對(duì)象都存儲(chǔ)在報(bào)文 RAM 里面,通過(guò)報(bào)文對(duì)象寄存器對(duì)其進(jìn)行訪問(wèn)和配置, 這些寄存器要通過(guò) C8051

溫馨提示

  • 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)論