支持CAN總線的電動車輔助逆變電源的設(shè)計_第1頁
支持CAN總線的電動車輔助逆變電源的設(shè)計_第2頁
支持CAN總線的電動車輔助逆變電源的設(shè)計_第3頁
支持CAN總線的電動車輔助逆變電源的設(shè)計_第4頁
支持CAN總線的電動車輔助逆變電源的設(shè)計_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

硬件電路設(shè)計3.1逆變電源硬件構(gòu)成電動車三相逆變輔助電源基本上可分成三個部分:(1)主控板–用來查出電路之間所有的輸出電流,電壓,在按照其系統(tǒng)運行情況來調(diào)節(jié)主控板的逆變電路輸出;(2)直流/直流路電源–找到合適的DC輸入的電壓,但可能浮動大,所以針對浮動大的電壓對其他電路系統(tǒng)提供之間的隔離,使電路低電壓電源的得到穩(wěn)定;(3)主電源逆變電路–由三相輔助逆變模塊組成的集成,通過集成模塊很好完成對逆變器的主電路的功能要求[5]。輸出脈沖寬度的調(diào)整:8引腳和9引腳的PWM脈沖寬度控制底層的一端。集成電路U1電壓誤差經(jīng)過放大后反饋到U2的反向輸入端,比較器的正輸出端,比較輸入電容器CT的鋸齒波,看出兩者之間的不同。方波脈沖SG3525A來控制輸出放大管的內(nèi)部循環(huán)(如圖3所示)。接地所需要的引腳電容設(shè)計,9針直流/直流高壓直流電壓所產(chǎn)生的反饋電壓與調(diào)節(jié)輸出的電壓逐步穩(wěn)定。如圖2所示,在誤差放大器芯片SG3525A中,引腳有1,2,9。R7,R1,C1,C2是外部電阻器和電容器。SG3525A的16引腳5V為輸出參考電壓。電阻R3,R4,和U1逆算子,R4/R3可以靜態(tài)放大,但是要使精度準(zhǔn)確就必須控制它的定值。放大倍數(shù)太大所引起振蕩,會引入C1、R5,所以誤差放大器也是不完全的比例積分控制器,通過靜態(tài)誤差的放大,導(dǎo)致動態(tài)誤差減小而放大倍數(shù),但精度不會受到影響,因此減少超調(diào)振蕩所造成的誤差。系統(tǒng)的基本結(jié)構(gòu)如圖2所示,這是明顯的組成部分的系統(tǒng)供電的直流/直流電源。逆變器的輸入端(+12V,4.5AH),電源頻率的方波電壓輸出是(50Hz,220V)。其主控制電路和電路圖可以根據(jù)(圖1)所示,是一個典型的二次轉(zhuǎn)型:直流/直流轉(zhuǎn)換器、直流/交流逆變器的過程。經(jīng)過12V直流電壓由推挽逆變換成高頻的方波,由高頻變壓器帶來的升壓,整流濾波后出來直流電壓保證其有效性;在由橋式變換為方波逆變的形式,逆變的直流電壓的值因如果比220V方波電壓大的話,就采取驅(qū)動負(fù)載。怎么使系統(tǒng)進(jìn)行穩(wěn)定有效的運行,需要采取直流高壓和直流側(cè)電壓,電壓,流信號,送入SG3525A,通過關(guān)閉脈沖的電壓調(diào)節(jié)器或調(diào)節(jié)脈沖占空比,過流、欠壓保護(hù),等。周期中斷定時器T1時,同時也開始A/D轉(zhuǎn)換器,電壓和電流的反饋取樣,T2的A/D轉(zhuǎn)換結(jié)束后,雙閉環(huán)控制算法的實現(xiàn)直到時間T3。T4在定時器下溢中斷之間的計算值比較CMPRx加載時間。如系統(tǒng)結(jié)構(gòu)圖2所示。圖2系統(tǒng)基本結(jié)構(gòu)圖標(biāo)準(zhǔn)的直流/直流電源開關(guān)電源的設(shè)計,再加上有不的相等比例,使多抽頭變壓器各路的輸出比例分別為20V直流電,12V直流電,5V直流隔離。電池電壓的波動幅度大的話,例(滿的為400V,在使用的情況下應(yīng)會下降到270V上下),所以在設(shè)計時選擇合適的電路結(jié)構(gòu)是很重要的,這樣才能更好地滿足輸入電壓的要求。整個系統(tǒng)的核心是電動車的控制板,單片機(jī)使用的82C50芯片,脈沖寬度調(diào)制,CAN總線收發(fā)器82C250和初級電路的電壓和電流數(shù)據(jù)采集模塊。通過SA8282芯片的三相逆變器模塊提供6路PWM信號控制面板。SA8282芯片由MITEL公司研制生產(chǎn)的,它的特點有:1操控起來方便,2對使用頻率精度要求非常高,3使用程序安全,另外它可以使8路復(fù)用總線得到支持,可以與芯片系統(tǒng)方便的數(shù)據(jù)互換。單片機(jī)內(nèi)芯片5個數(shù)據(jù)寄存器進(jìn)行分配數(shù)值,就能完成對PWM輸出波形。SA8282為標(biāo)準(zhǔn)的28引腳雙列直插式封裝,其管腳中的rpht,rphb,ypht,yphb,北石海泰,bphb等TTL信號可以控制三相輸出,可對應(yīng)三相橋上的IGBT六路。位于三相輸入和輸出數(shù)據(jù)采集模塊直流主電路可以對每個電壓,電流,和A/D轉(zhuǎn)換后保存在數(shù)據(jù)采集器P80C592芯片,CPU系統(tǒng)的輸出/輸入查看滿足了要求沒有,而系統(tǒng)會做出來相應(yīng)的行動。82c50是CAN總線收發(fā)器可以控制器和物理總線之間的接口,原本為車輛系統(tǒng)應(yīng)用與許多電動車設(shè)計結(jié)構(gòu)的通信設(shè)計。功能包括:瞬間有效降低干擾信號和環(huán)境對系統(tǒng)所發(fā)生出來的信號影響,還具有總線保護(hù)的實力;具有短路保護(hù)能力等,因此滿足于電動三相逆變電源的需求。CAN82c250接口與P80C592連接輸入和輸出端口的接口,變成輔助逆變電源的外部接口。3.2P80C592芯片介紹在逆變電源的設(shè)計中,不僅檢測負(fù)載電壓和電流的模擬,同時還支持CAN總線通信控制電路邏輯,電動車三相逆變器的功能可以用使芯片很好的來實現(xiàn)其功能。選一個電光動車的CAN控制器是不可用的,如果在加一個帶有CAN功能的控制器那樣就能滿足其要求。80C592芯片是8位微處理器,由德國飛利浦公司所生產(chǎn),其中包括了:一個80C51中的央處理單元(CPU)具有兩個標(biāo)準(zhǔn)的16位計數(shù)器/定時器其中包括四抓三寄存器的16位計數(shù)器/定時器具有8路模擬輸入的10位A/D轉(zhuǎn)換器具有8位脈寬調(diào)制輸出,雙通道的分辨率具有兩級優(yōu)先級的15個的中斷源5個8位I/O端口,和一組A/D模擬輸入常見的8位輸入端口轉(zhuǎn)換器可以使用內(nèi)部RAM控制器DMA數(shù)據(jù)傳輸具有總線故障管理功能1Mbps的CAN控制器與標(biāo)準(zhǔn)80C51兼容,全雙工UART的通信方式P80C592有68個引腳的P80C592,包括6位I/O口,P0和P3端口功能一樣,但P1可滿足于特殊的功能的要求,包括4中輸出/入端,(1)計數(shù)器輸入端子;(2)外部輸入端子;(3)捕獲輸入端子;(4)外部計數(shù)器復(fù)位。CAN接口ctx0和CTX1輸出端口。通過I/O口的并行,使P1和其他4個的功能不同,P2和P3P4,P5則是不帶輸出功能的并行輸入,但是是A/D轉(zhuǎn)換器的模擬轉(zhuǎn)換功能[6]。80C592內(nèi)嵌CAN的控制器,包括所有的高性能串行通信所需的硬件,能夠控制流量順利通過局域網(wǎng)CAN協(xié)議。使其更加清楚的避免混淆,添加到芯片控制器的CPU能夠獨立開展工作,作為存儲圖像的外圍設(shè)備,可以簡單地看作是P80C592的兩個單獨的設(shè)備集成。CAN控制器的部分功能假如不能實現(xiàn),則該芯片只能作為個普通的單片機(jī)使用,但它具有模擬量A/D轉(zhuǎn)換功能。電動車CAN控制器的功能,要由四個特殊功能寄存器方式(SPR)去實現(xiàn),CPU可以通過完整的界面結(jié)構(gòu)控制他們的訪問。這四個特殊功能寄存器分別為:(1)(CANDAT)數(shù)據(jù)寄存器;(2)(CANADR)地址寄存器;(3)(CANCON)控制寄存器;(4)(CANSTA)狀態(tài)寄存器。還有,DMA邏輯和CPU允許可以在高速數(shù)據(jù)交換同時做為主內(nèi)存控制器。3.3復(fù)位電路模塊當(dāng)電路處于穩(wěn)定狀態(tài),發(fā)揮直流電容的作用,+5V隔離,和復(fù)位按鈕的狀態(tài)左,底部的電路部分沒有電壓差產(chǎn)生的,所以以下部分和GND電位相等鍵和電容器C11,電壓為0V。這是高水平停下來,低水平的正常工作,所以正常工作電壓為0V電壓完全可以。再分析從沒有上電的瞬間,電容器C11以上是5V電壓,下面是0V電壓,當(dāng)電容器C11用于充電,充電離子從上往下,負(fù)電子充電,當(dāng)電容器在電路等效的一根線上,所有的電壓都加在了R31電阻上,所以第一口位置是+5V電壓,電容充電越來越多,充滿時,電流會越來越小,在RST端電壓等于電流乘以電阻R31,將越來越小,直到電容器完全填滿,線上不再存在電流這段時間,電壓為0V和GND

RST。從過程來看,設(shè)計添加的電路,單片機(jī)系統(tǒng)上電,RST引腳會先呆一小會兒,然后高到低水平,這個過程是在復(fù)位過程?!倍虝r間內(nèi)“每個單片機(jī)是不完全相同的,51單片機(jī)的手冊上寫的是不少于2小時的機(jī)器周期時間。按復(fù)位(手動復(fù)位)有2個過程,在你按下按鈕,RST電壓為0V,按下按鍵電路傳導(dǎo)和電容器將在瞬間放電時,RST電壓值改為4700.vcc/(4700+18),將在高電壓位。當(dāng)你釋放按鈕,上電復(fù)位,第一電容器充電電流減小到后過程的第一電壓0V。時間往往有幾百毫秒,這時就有足夠的時間重置。兩端電壓(5V和GND之間沒有電源)可直接連接,會有瞬間的大電流沖擊時,可能會導(dǎo)致在局部范圍內(nèi)的電磁干擾,為了抑制由高電流引起的干擾,選擇了電容放電電路,在一系列的18歐電阻電流。復(fù)位電路電路圖如圖所示3。圖3復(fù)位電路模塊3.4指示燈電路模塊PIC單片機(jī)IO引腳的接地,LED燈的電源由5V供電,有1K的限流電阻。對相應(yīng)引腳寫1,就點亮1個燈,寫0就熄滅一個燈。以上的方法的缺點是,單片機(jī)的所有引腳,必須對所有的IO引腳輸出

20微安的電流(以獲得單片機(jī)的IO引腳的最大的輸出電流20微安),對于單片機(jī)功率的輸出,需做好電流的控制。在設(shè)計中,因為這樣大的電流對單片機(jī)內(nèi)部的工作穩(wěn)定性造成影響,應(yīng)盡量避免單片機(jī)的輸出功率過大。我們不應(yīng)為IO引腳設(shè)置驅(qū)動電路的,但需在直接負(fù)載和逆變器之間鎖定引腳。IO腳提供邏輯門閂和為逆變器提供電源。指示燈電路電路圖如圖4所示。圖4指示燈電路模塊3.5電源電路模塊一個完整的電子設(shè)計,首先就是要設(shè)計好它的電源模塊,穩(wěn)定可靠的電源模塊可以為系統(tǒng)順利運行提供基礎(chǔ)和前提。51單片機(jī)的使用最早,應(yīng)用范圍最為廣泛,但在實際使用中,比較典型的問題是其他系列的單片機(jī),51單片機(jī)的出現(xiàn)更容易受到中斷程序運行,克服這種現(xiàn)象的一個重要途徑是為單片機(jī)系統(tǒng)穩(wěn)定可靠的電源模塊。單片集成電路的正常工作電壓是一個范圍值,需要電源的VCC工作電壓5.5V至3.4V之間,高于5.5V是絕對不允許的,可如果低于3.4V電壓則立刻燒毀單片機(jī),導(dǎo)致單片機(jī)被損壞,使它不能正常工作。在這方面,最典型、最常用的電壓為5V,這是在后面的括號里“5V單片機(jī)”名稱的由來。此外,有一個共同的電壓范圍是2.7v-3.6v,典型值為3.3V單片機(jī)。電源電路模塊電路如圖5所示。3.6接口電路模塊接口是用來定義一個協(xié)議合同的程序。類或結(jié)構(gòu)實現(xiàn)定義嚴(yán)格按照接口。有了這個協(xié)議的程序,無論在理論上還是在編程上的語言限制。一個接口可以從多個基接口的繼承,而類似的結(jié)構(gòu)可以連接多個接口。接口包含目標(biāo)索引器,所需事件,接口方法,和接口屬性。接口不能定義的接入成員和定義的實現(xiàn)。接口僅僅指定實現(xiàn)的接口或接口成員必須提供的類別。接口描述組件要求,在根據(jù)具體的要求提供出服務(wù)。使組件來完成和客戶之間的交互,就只能通過預(yù)定義的接口提供合理的服務(wù)。一個組件即可以很好的連接多個接口,也可以和一個特定的組件接口連接,也可以被多個組件之間的連接來實現(xiàn)[7]。在單片機(jī)應(yīng)用系統(tǒng)中,顯示的兩種方法:靜態(tài)顯示和動態(tài)顯示。所謂靜態(tài)顯示,就是每個監(jiān)控占用一個單獨的I/O接口與鎖存功能的字形碼的行程。只要代碼發(fā)送到字形接口,電路就會顯示,直到有新的數(shù)據(jù)時,如果你想顯示,然后發(fā)送一個新的字形碼,所以用這種方法在單片機(jī)CPU耗能小。MCS-51單片機(jī)的串行口,移位寄存器74LS164,add-6靜態(tài)顯示6位LED顯示接口,數(shù)據(jù)輸出線RXDTXD作為移位時鐘脈沖的8031。8位移位寄存器74LS164TTL單向使串行輸入并行輸出。其中A,B(引腳1,2)為串行數(shù)據(jù)輸入,2腳按照邏輯和操作的輸入信號模式,當(dāng)輸入信號可以連接。T(8引腳)的時鐘輸入,發(fā)送端口可以連接到串行端口。每當(dāng)時鐘的上升沿信號至②,移一個位置,8個時鐘脈沖的所有8位二進(jìn)制數(shù)為74LS164后。R(9引腳)時重置客戶端,R=0,和移位寄存器的所顯示的0,只有在R=1和時鐘不工作。Q1…Q8(第3-6和10-13引腳)分別在LED顯示對應(yīng)段落汞引腳輸出并聯(lián)。圖5電源電路模塊接口電路電路圖如圖6所示。圖6接口電路模塊3.7晶振電路模塊晶振通常分為有源晶振和無源晶振兩種類型,無源晶振一般稱之為crystal(晶體),而有源晶振則叫做oscillator(振蕩器)。有源晶振是一個完整的諧振振蕩器,壓電效應(yīng),他是利用石英晶體振蕩器,晶體需要電力系統(tǒng)有源晶體振蕩器電路完成,不需要外部電路,它可以振蕩頻率,以提供高精度的頻率和參考信號的質(zhì)量是更好的比較信號。無源晶振自身無法振蕩起來,它需要芯片內(nèi)部的振蕩電路一起工作才能振蕩,但信號質(zhì)量差,和更準(zhǔn)確的比活性的晶體。typically有源晶體有4個引腳,VCC,GND引腳與晶體振蕩器的輸出,在overhanging引腳。被動oscillators引腳2或3,如果它是一個3針,針是在收到的外殼中間的晶體,利用接地時,在線的兩端引腳2是導(dǎo)致晶體到腳,這是等價的兩個引腳,引腳是一個之間的電阻2,區(qū)分陽性和陰性。非活性的晶體,晶體是使用我們的在線雙釘,和有源晶體振蕩器,晶體只有在收到的輸入引腳,輸出引腳是不是必需的。晶振電路電路圖如下圖7所示。圖7晶振電路模塊3.8CAN通信模塊CAN總線是現(xiàn)場總線控制網(wǎng)絡(luò)的一部分[8]。由于其很高的可靠性,高流量,連接方便,以及高效的性能的價格優(yōu)勢。多路徑網(wǎng)絡(luò)通過低成本的高速網(wǎng)絡(luò)的應(yīng)用,應(yīng)用于電子,傳感器,汽車發(fā)動機(jī)控制單元,防滑系統(tǒng)中擴(kuò)展到控制區(qū)域的二次利用,如數(shù)控機(jī)床,農(nóng)業(yè)機(jī)械,醫(yī)療設(shè)備和各種各樣的領(lǐng)域。3.8.1CAN總線基本原理在1980年底的第二十世紀(jì),CAN總線是德國博世公司首先提出的,它屬于一種串行數(shù)據(jù)通信協(xié)議在汽車產(chǎn)品,控制設(shè)備和測試數(shù)據(jù)之間的溝通和交流通過它[9]。CAN總線具有以下特點:(1)非常簡單的總線結(jié)構(gòu),只有兩根信號線就可以實現(xiàn)不同模塊之間的數(shù)據(jù)通信和交換。(2)滿足數(shù)據(jù)通信的實時性和分布節(jié)點CAN網(wǎng)絡(luò)中的信息的不同需求,分為不同的優(yōu)先級。(3)靈活多樣的通信方式,接收和發(fā)送數(shù)據(jù),可以點對點,點對多點的控制模式。(4)有一個數(shù)據(jù)傳輸速率非??斓?,最大速率可達(dá)1Mbps左右。(5)在CAN總線,短幀結(jié)構(gòu)的數(shù)據(jù)格式,而每幀數(shù)據(jù)將有一個CRC校驗或其他驗證方法,在數(shù)據(jù)傳輸過程中,驗證的方法可以保證非常低的錯誤率,在高干擾的情況下也可以使用,保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和可靠性[10]。3.8.2CAN通信模塊電路設(shè)計根據(jù)CAN的通信原理,電子控制系統(tǒng)單元CAN,通信模塊硬件主要由CAN控制器、CAN驅(qū)動器及中心微處理器構(gòu)成?;?1系列單片機(jī)作為中央處理器的CAN通信模塊的傳統(tǒng),CAN控制器SJA1000為驅(qū)動器PCA82C250。這一選擇的晶片,占用空間大,擴(kuò)展外圍接口有局限性,高功耗的同時。因此,在設(shè)計過程當(dāng)中,我采用了TJA1050和LPC2119驅(qū)動器配有一個內(nèi)置CAN控制器的CAN通信模塊的電子控制系統(tǒng)。如圖1所示通信硬件圖模塊。根據(jù)設(shè)計理論,電子控制單元硬件CAN通信模塊主要由CAN控制器構(gòu)成,可以驅(qū)動和中央微處理器?;?1系列單片機(jī)作為中央處理器的CAN通信模塊的傳統(tǒng),CAN控制器SJA1000為驅(qū)動器PCA82C250。這一選擇的晶片,占用空間大,外圍接口擴(kuò)展的局限性,高功耗的同時。因此,在設(shè)計中,我們采用LPC2119和TJA1050驅(qū)動器配有一個內(nèi)置CAN控制器的CAN通信模塊的電子控制系統(tǒng)[11]。設(shè)計的電池管理系統(tǒng),CAN總線的數(shù)據(jù)通信和傳輸。單片機(jī)PIC18F4580芯片集成的基于CAN總線的模塊,可以實現(xiàn)通過CAN總線收發(fā)器PCA82C250的對外擴(kuò)張,在單片機(jī)的信號轉(zhuǎn)換成CAN總線,實現(xiàn)數(shù)據(jù)傳輸?shù)钠囯姵毓芾硐到y(tǒng)的通信。但在實踐中,工作現(xiàn)場條件比較特殊,高共模電壓的存在中的每個節(jié)點之間的CAN總線,盡管對共模噪聲的影響CAN總線接口。當(dāng)電壓高的存在時,可以使收發(fā)裝置PCA82C250是不能正常工作,嚴(yán)重的情況下也會燒毀芯片外圍電路,所以在電路設(shè)計中的抗干擾能力的提高可以使其達(dá)到要求的模塊,采用更高性能的通信,CAN總線上各節(jié)點之間的電氣隔離方式將應(yīng)用程序設(shè)計[12]。CAN通信模塊電路如圖8所示。圖8CAN通信模塊電路圖4軟件系統(tǒng)設(shè)計4.1軟件系統(tǒng)設(shè)計構(gòu)思通過多種考慮最后確認(rèn)了采用C語言編程,目的是為了完成所需要的控制功能,保證程序的簡化性和合理性,來滿足電動車輔助逆變電源系統(tǒng)的穩(wěn)定性和安全性的要求。在系統(tǒng)開始投入運行后,首先初始化寄存器P80C592單片機(jī),通過SA8282實現(xiàn)數(shù)據(jù)初始化,然后進(jìn)行電動車軟件啟動程序的負(fù)載特性。當(dāng)三相電源輸出電壓滿足一定的要求后,電動車逆變電源可很好進(jìn)入運行狀態(tài)??刂苹芈窓z測到線電壓,電流的情況,SA8282控制寄存器中所有參數(shù),根據(jù)按照運行的實際情況,如果需要話的調(diào)整PWM輸出,三相輸出。例如,運行一段時間后的電動車,電動車功能下降,導(dǎo)致三相逆變電源輸出電壓低于以前設(shè)定值,檢查是否通過sa8282P80c592現(xiàn)象,輸出電壓振幅和電動車穩(wěn)定的功率輸出是否達(dá)到要求[13]。同時,數(shù)據(jù)存儲控制程序還將定期控制參數(shù)。如果車輛控制系統(tǒng)通信可以修改變頻器的運行參數(shù),P80C592將運行在新的參數(shù)來調(diào)節(jié)輸出。程序中斷的程序有:系統(tǒng)處理故障程序,CAN總線通訊和數(shù)據(jù)采集程序。數(shù)據(jù)的采集程序,需要通過系統(tǒng)芯片中計數(shù)定時器來觸發(fā),輸入數(shù)據(jù)采樣A/D轉(zhuǎn)換后的數(shù)據(jù)存儲到逆變電路輸出,然后運行CPU。CAN總線通信程序包括多個程序,其基本程序結(jié)構(gòu)根據(jù)圖8所示。當(dāng)CAN總線通訊程序運行后,控制器可以執(zhí)行P80C592下達(dá)的相關(guān)系統(tǒng)命令。系統(tǒng)主機(jī)要請求的數(shù)據(jù)發(fā)生時,車輛的計算機(jī)查詢節(jié)點狀態(tài)獲取驅(qū)動系統(tǒng)所運行的參數(shù),節(jié)點可以發(fā)送當(dāng)前狀態(tài)數(shù)據(jù)時,如果系統(tǒng)查詢運行所修改參數(shù),就可以將存儲中的控制參數(shù)提取[14]。4.2主控程序軟件設(shè)計4.2.1主控程序設(shè)計方案P80C592單片機(jī)MCU編寫的主控程序,主要包括數(shù)據(jù)信息讀入單片機(jī),由單片機(jī)存器進(jìn)行數(shù)據(jù)備份,通過CAN總線通信,進(jìn)行相應(yīng)問題處理,可完成對電動汽車電池組的管理功能。電池工作狀態(tài)數(shù)據(jù)讀取由主控芯片的功能和電源管理芯片和主控oz8920通信,單片機(jī)是通過I2C總線的EEPROM芯片的讀(oz8920)中的數(shù)據(jù),從獲得的電池電壓,電流和溫度,和工作狀態(tài)信息;通信模塊,通過CAN總線將主控裝置汽車控制系統(tǒng)和整個汽車通信工作,把電池和電池狀態(tài)信息,參數(shù)信息和報警信息,上到全車控制器,車輛控制器發(fā)送和接收控制信號和數(shù)據(jù)。4.2.2主程序設(shè)計流程主控程序流程的工作包括系統(tǒng)初始化、CAN通信處理、控制子程序等部分。用以滿足整個系統(tǒng)對于參數(shù)信息采集,當(dāng)發(fā)現(xiàn)哪個參數(shù)不在設(shè)定范圍內(nèi),由單片機(jī)控制器發(fā)出聲光報警提示信息,最后經(jīng)CAN總線通信發(fā)送至主控制器,實現(xiàn)分別對各個子程序的調(diào)用工作[15]。系統(tǒng)主程序流程圖如圖9所示。控制程序中的三個中斷程序如下:數(shù)據(jù)采集程序,CAN總線通信和故障處理程序。數(shù)據(jù)采集程序,通過芯片計數(shù)器定時觸發(fā),輸入數(shù)據(jù)采樣A/D轉(zhuǎn)換后的數(shù)據(jù)存儲到逆變電路輸出,運行CPU。CAN總線通信程序包括多個子程序[16]。當(dāng)通信程序觸發(fā)后,可以在控制器P80C592命令字執(zhí)行相關(guān)任務(wù)。主機(jī)在請求當(dāng)前數(shù)據(jù)時,將變頻器的運行參數(shù)對車輛系統(tǒng)狀態(tài)的電腦查詢節(jié)點時,節(jié)點可以發(fā)送當(dāng)前狀態(tài)數(shù)據(jù)時,系統(tǒng)提出修改運行參數(shù),將存儲在數(shù)據(jù)存儲器中的控制參數(shù)。系統(tǒng)初始化過程中使整個軟件系統(tǒng)控制寄存器需要設(shè)置初始設(shè)置初始值,目的是確保系統(tǒng)工作電源,并能在開機(jī)時進(jìn)行自我測試,看看是否有異常參數(shù)監(jiān)測模塊。參數(shù)檢測子模塊如圖10所示。圖9主程序流程圖圖10參數(shù)檢測子模塊4.3故障處理程序設(shè)計故障處理程序具有中斷程序的優(yōu)先級,能夠自動分辨出優(yōu)先級,即外部中斷(INT0)0P80C592與SA8282芯片引腳連接的運行。當(dāng)電動車的輔助逆變變頻器發(fā)生故障的時候,IPM會將發(fā)生故障信號會傳送SA8282芯片,系統(tǒng)會在立即在PWM輸出,并且發(fā)給P80C592采取中斷措施,觸發(fā)的故障會馬上進(jìn)行處理,完成處理后。故障處理程序SA8282關(guān)閉,然后由電動車CAN總線PC故障代碼寫參數(shù)與當(dāng)前運行的系統(tǒng)完成消息的發(fā)送;來恢復(fù)了單片機(jī)系統(tǒng)控制關(guān)閉,安全關(guān)機(jī)。故障診斷模塊的子程序如圖11所示

[17]

。4.4CAN總線數(shù)據(jù)通信子程序設(shè)計根據(jù)CAN總線的通信原理,在接收過程中,主要通過標(biāo)志的內(nèi)部寄存器為“0”或為“1”,數(shù)據(jù)已由“1”標(biāo)志為收到,“0”表示為他們沒有收到數(shù)據(jù)或接收數(shù)據(jù)還沒有完成;在數(shù)據(jù)發(fā)送,發(fā)送相關(guān)的初始化數(shù)據(jù),格式和參數(shù)的ID碼,包括數(shù)據(jù)的長度是一樣的。根據(jù)數(shù)據(jù)發(fā)送CAN總線的通信原理,在發(fā)送過程中,主要通過發(fā)送標(biāo)志位內(nèi)部寄存器為“0”“1”一個數(shù)據(jù)幀發(fā)送到標(biāo)志識別,當(dāng)標(biāo)志為“0”時,表明沒有數(shù)據(jù)發(fā)送或發(fā)送的數(shù)據(jù)還沒有完成;當(dāng)標(biāo)志為“1”,這意味著1幀數(shù)據(jù)發(fā)送和已發(fā)送,發(fā)送緩沖區(qū)中上傳,所以通知CPU發(fā)送數(shù)據(jù)發(fā)送,同時,寄存器自動清除標(biāo)志位發(fā)送,寄存器自動添加此位被清零,用于下一幀數(shù)據(jù)傳輸[18]。CAN總線數(shù)據(jù)通信接收子程序流程圖如圖12所示。圖11故障處理子模塊圖12CAN總線數(shù)據(jù)通信子程序流程圖CAN通信網(wǎng)絡(luò)引入電動車所提供的車輛的各個子系統(tǒng)的調(diào)節(jié),實施全局優(yōu)化控制,為所有車輛的智能節(jié)點實施的控制。P80C592集成控制器為核心,結(jié)合三相逆變電源,不僅安全,穩(wěn)定性高,數(shù)據(jù)交換快和車輛控制精準(zhǔn),不同的電動車參與一個專用的PWM波形的電動汽車芯片SA8282計算機(jī)輔助設(shè)計時,都需要使用不同的電動汽車CAN總線協(xié)議[19]。采用適當(dāng)?shù)淖兏刂瞥绦?,只需更改與CAN控制程序通信程序的程序段,就能夠訪問整個車輛系統(tǒng),使逆變器具有更多的功能。5電路開環(huán)仿真結(jié)果5.1開環(huán)仿真圖13所示為車載逆變電源原理圖,及在任意負(fù)載下的波形,逆變SPWM調(diào)制波形。下面將為在開環(huán)負(fù)載下SA8282輸出PWM波、中間級直流電壓、輸出正弦波等波形做分析。設(shè)負(fù)載分別約為50W額定負(fù)載、RL=230Ω和負(fù)載約為25W,RL=1KΩ,將SA8282輸出波形占空比設(shè)定為0.5。SA8282輸出PWM波、及未經(jīng)調(diào)制SPWM波輸出及正弦波波形如圖13所示。圖13SA8282輸出PWM波圖14與15的對比可以看出未經(jīng)調(diào)制的SPWM波,當(dāng)負(fù)載減輕時其幅值上升。圖1450W未經(jīng)濾波的SPWM波圖1525W未經(jīng)濾波的SPWM波圖16與圖17的對比可以看出當(dāng)負(fù)載減輕時輸出正弦波電壓上升。圖1650W正弦波輸出圖1725W正弦波輸出從以上的波形對比可以看出,在開環(huán)狀態(tài)下,中間級直流輸出及輸出正弦波在負(fù)載變化下,其輸出波形電壓幅值也將隨著變化。這樣輸出電壓不穩(wěn)定,可能會對用點設(shè)備造成損害,使系統(tǒng)發(fā)生故障,這樣就需要關(guān)閉輸出,進(jìn)行安全關(guān)機(jī)。5.2仿真結(jié)果總結(jié)該章主要對電路系統(tǒng)在開環(huán)狀態(tài)下,負(fù)載變化時的中間級直流輸出,正弦波輸出波形進(jìn)行了仿真分析。在開環(huán)狀態(tài)下,當(dāng)負(fù)載減輕時,輸出電壓會升高,這樣會對用電設(shè)備的安全造成威脅,引起設(shè)備發(fā)生故障,這時就需要斷開輸出,進(jìn)行安全關(guān)機(jī)。通過CAN的控制總線,發(fā)生出來的故障需要向各個節(jié)點和上位機(jī)進(jìn)行報告,并對總線中每個發(fā)生的故障做出操作,如:在位于電動車上顯示系統(tǒng)顯示出系統(tǒng)做出的預(yù)警告示信息,提醒駕駛員減速。由電動車能量管理系統(tǒng)發(fā)出命令關(guān)閉輔助逆變電源的輸入,接收其錯誤代碼和保存當(dāng)前電動車運行數(shù)據(jù),來方便維修人員排除故障。結(jié)束語畢業(yè)設(shè)計在黃海波老師精心指導(dǎo)和嚴(yán)格的要求下,終于完成了支持CAN總線的電動車輔助逆變電源的設(shè)計。畢業(yè)設(shè)計是對大學(xué)這兩年學(xué)習(xí)成績的檢閱以及檢查我們的動手能力,平時學(xué)的課程很少能融會貫通,通過CAN總線的電動車輔助逆變電源的設(shè)計,讓平時所學(xué)的知識得到了進(jìn)一步的鞏固,讓理論和實踐得到了很好的結(jié)合。剛一開始拿到這個題目時不知如何下手,由于對這方面的知識了解很少,走了不少彎路,甚至出現(xiàn)了一些錯誤,但正是在這一次的錯誤中讓我學(xué)到了許多知識,同時也磨練了自己的耐心并加強(qiáng)了對軟件平臺的操作水平。在這次寫論文中學(xué)到了許多以前沒有接觸到的知識,學(xué)到了如何用Keil4、億圖、電路仿真軟件等軟件。在黃海波老師的精心和耐心的指導(dǎo)下終于實現(xiàn)了電動車的輔助逆變電源的基本功能,如電動車上各種智能化節(jié)點的優(yōu)化。每位老師都很有耐心,他們會把每個知識都講解的很清晰,遇到不會的他們都很有耐心的給我們講解,一直到聽懂為止。在設(shè)計中不僅學(xué)到了專業(yè)知識還學(xué)到了怎樣做人,如何與人交流,遇到問題要多思考多和同學(xué)交流,多和老師交流。這兩年充實的生活告訴我,只有不斷經(jīng)歷考驗、挫折、甚至失敗,才能逼近最終的理想。生于斯時,長于斯境,唯有以雙倍的努力、十倍的耐心、百倍的豪情和千倍的執(zhí)著來完成原賦的使命。CAN總線的電動車輔助逆變電源的設(shè)計的完成意味著大學(xué)生快要結(jié)束,大學(xué)這兩年它帶給我的影響不是可以用時間來衡量的,這兩年來經(jīng)過所以的事,都是人生生活回味的一部分。對于今后迎接的是更多的困難,經(jīng)過畢業(yè)設(shè)計的錘煉,相信能更好的面對生活面對未來,把握機(jī)遇。在大學(xué)里得到了最好的訓(xùn)練,這將是大學(xué)生活最美好的回憶,要把學(xué)習(xí)到的知識轉(zhuǎn)化正能量,為著美好未來而努力奮斗,相信生活相信自己相信未來!

參考文獻(xiàn)[1]朱正禮,任少云.CAN總線系統(tǒng)在電動轎車上的應(yīng)用.[D]汽車工程,2013ZhuZhengli.lowcloud,applicationofCAN-bussystemintheelectriccar.[D]automotiveengineering2013(inChinese)[2]林長加.CAN總線技術(shù)在混合動力汽車中的應(yīng)用[D].大連理工大學(xué),2007LinChangadded.CANbustechnologyinhybridelectricvehicleapplication[D].DalianUniversityofTechnology,2007(inChinese)[3]丁成偉,趙吉利.一種實用車載逆變器的設(shè)計[C].電子產(chǎn)品世界,2013DingChengwei,ZhaoJili.Apracticalvehicleinverterdesign[C].Journalofelectronicproductsintheworld.2013(inChinese)[4]葛衛(wèi)清,葉文華,伍家駒.單相交流逆變器的設(shè)計研究[D].科技廣場,2004(11)GeWeiqing,wen-huaye,WuGuJu.Thedesignofthesingle-phaseacinverterresearch[D].Scienceandtechnologysquare.2004(11).(inChinese)[5]李津.城市車輛輔助逆變電源[J].標(biāo)準(zhǔn)設(shè)計,2006,5(09):10~12Lijing.Urbanvehicleauxiliaryinverterpowersupply[J].Journalofstandarddesign.2006,5(9)10~12(inChinese)[6]朱蓉.具有CAN總線的P8XC592系列微控制器及其應(yīng)用[J].甘肅科技,2013,1(05):139~152Zhurong.P8XC592seriesmicrocontrollerwithCANbusanditsapplication[J].Scienceandtechnologyingansuprovince.2013,1(05):139~152(inChinese)[7]馬家辰孫玉德張穎,MCS-51單片機(jī)原理及接口技術(shù)(修訂版)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2007MaGuchenYu-desunzhangying.MCS-51singlechipmicrocomputerprincipleandinterfacetechnology(revisededition)[M].Harbin:Harbinindustrialuniversitypress,2007(inChinese)[8]鄔寬明,CAN總線原理與應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,2008WuKuanMing.CANbussystemdesignprincipleandapplication[M].Beijing:Beijinguniversityofaeronauticsandastronauticspress,2008(inChinese)[9]遲瑞娟,曹正清.基于CAN總線的整車管理系統(tǒng)硬件設(shè)計[D].中國農(nóng)業(yè)大學(xué)學(xué)報,2002(04)ChiRuiJuanCaoZhengqing.VehiclemanagementsystembasedonCANbushardwaredesign[D].JournalofChinaagriculturaluniversity.2002(04)(inChinese)[10]李真花.CAN總線輕松入門與實踐[M].北京:北京航空航天大學(xué)出版社,2012LiZhenhua.IntroductiontoCANbuseasilywithpractice.Beijing:Beijinguniversityofaeronauticsandastronauticspress,2012(inChinese)[11]曹海歐,蔡月明.基于CAN總線通信系統(tǒng)的研究[D].電力系統(tǒng)及其自動化學(xué)報.2002(06)CaoHaiou,Mingyue-Cai.BasedonCANbuscommunicationsystemresearch[D].Journalofelectricpowersystemanditsautomation.2002(6)(inChinese)[12]劉剛.汽車CAN總線網(wǎng)絡(luò)控制系統(tǒng)設(shè)計與實現(xiàn)[J].電子科技大學(xué),2012,12(03):11~12Liugang.ThecarCANbusnetworkcontrolsystemdesignandimplementationof[J].Journalofuniversityofelectronicscienceandtechnology,2012,12(03):11~12(inChinese)[13]馬龍翔.基于嵌入式的汽車CAN總線控制系統(tǒng)設(shè)計[J].天津理工大學(xué),2012,20(12):19~20MaLongxiang.VehicleCANbuscontrolsystembasedonembeddeddesign[J].Journaloftianjinuniversityoftechnology,2012,20(12):19~20(inChinese)[14]熊福昌.汽車CAN總線通信技術(shù)研究[D].武漢科技大學(xué),2009(05)XiongFuchang.CarCANbuscommunicationtechnologyresearch[D].Journalofwuhanuniversityofscienceandtechnology,2009(05)(inChinese)[15]安斯光.電動汽車CAN總線系統(tǒng)的設(shè)計[J].浙江大學(xué),2006,7(03):39~42AnSiGuang.ThedesignofelectricvehicleCANbussystem[J].Journalofzhejianguniversity.2006,7(3):39~42(inChinese)[16]周震.基于CAN總線的車身控制模塊[J].南京航空航天大學(xué),2008,20(01):24~25ZhouZhen.BodycontrolmodulebasedonCANbus[J].Journalofnanjinguniversityofaeronauticsandastronautics,2008,20(01):24~25(inChinese)[17]劉睿.CAN總線故障診斷與分析[D].西南交通大學(xué),2014(01)LiuRui.CANbusfaultdiagnosisandanalysis[D].Journalofsouthwestjiaotonguniversity,2014(01)(inChinese)[18]楊洪.基于CAN總線的控制系統(tǒng)及應(yīng)用研究[D].華僑大學(xué),2004(01)Yanghong.ControlsystembasedonCANbusanditsapplicationstudy[D].Journalofhuaqiaouniversity.2004(01)(inChinese)[19]李芳,廖承林.電動汽車動力總成系統(tǒng)控制器局域網(wǎng)(CAN)總線通信協(xié)議.[R].機(jī)械工程學(xué)報,2008(05)Lifang,LiaoChenglin.Electricvehiclepowertrainsystemcontrollerlocalareanetwork(CAN)buscommunicationprotocol.[R].Journalofmechanicalengineering,2008(05)(inChinese)[20]譚浩強(qiáng).C語言程序設(shè)計(第二版)[M].北京,清華大學(xué)出版社,2004.TanHaojiang.Clanguageprogramdesign(secondedition)[M].Beijing:tsinghuauniversitypress,2004(inChinese)致謝支持CAN總線的電動車輔助逆變電源設(shè)計在黃海波導(dǎo)師的精心指導(dǎo)下順利完成,在整個畢業(yè)論文設(shè)計的過程中,遇到了很多所學(xué)專業(yè)方面的問題,通過對這兩年專業(yè)知識的梳理,以及在黃海波導(dǎo)師的大力協(xié)助下,得以順利完成。在此,我想在畢業(yè)設(shè)計即將結(jié)束之際,真心的向黃海波老師說一聲“老師您辛苦了”,感謝您在畢業(yè)設(shè)計過程中給予我的幫助和支持。通過這次的畢業(yè)論文環(huán)節(jié),使在理論上所學(xué)的和實踐操作相結(jié)合。在支持CAN總線的電動車輔助逆變電源設(shè)計中,我得到了許多同學(xué)們的支持和幫助,在此向他們表示衷心的感謝!

附錄附錄A:整機(jī)電路圖附錄B:程序清單#defineSCL_Hscl=1;#defineSCL_Lscl=0;#defineSDA_Hsda=1;#defineSDA_Lsda=0;子函數(shù)定義[20]***程序說明:CAN總線通訊程序設(shè)計***函數(shù)名:staticvoidTLC5615_Write_12Bits()***功能描述:一次向TLC中寫入12bit數(shù)據(jù);***全局變量:gBitMsb:待轉(zhuǎn)換10bit高兩位;gBitLsb:10bits的低8位;***輸入:NO!***輸出:NO!***創(chuàng)建人:王思宇日期:2015-06-05***修改人:日期:2015-06-05***函數(shù)說明:內(nèi)部函數(shù);voidTLC5615_Write_12Bits(unsignedcharH,unsignedcharL){inti;SCL_L;//置零SCL,為寫bit做準(zhǔn)備;CS_L;for(i=0;i<2;i++)//循2次,發(fā)送高兩位;{if(H&0X80)//高位先發(fā);{SDA_H;//將數(shù)據(jù)送出;SCL_H;//提升到寄存器,寫操作在寄存器上升沿觸發(fā);SCL_L;//結(jié)束該位傳送,為下次寫作準(zhǔn)備;}else{SDA_L;SCL_H;SCL_L;} H<<=1;}for(i=0;i<8;i++)//循環(huán)八次,發(fā)送低八位;{if(L&0X80){SDA_H;//將數(shù)據(jù)送出;SCL_H;//提升到寄存器,寫操作在寄存器上升沿觸發(fā);SCL_L;//結(jié)束該位傳送,為下次寫作準(zhǔn)備;}else{SDA_L;SCL_H;SCL_L;}L<<=1;}for(i=0;i<2;i++)//循環(huán)2次,發(fā)送兩個虛擬位;{SDA_L;SCL_H;SCL_L;}CS_H;SCL_L;}***程序說明:主電路模塊設(shè)計***函數(shù)名:externvoidTLC5615_Start(int16udacDat)***功能描述:啟動DAC轉(zhuǎn)換;***全局變量:gBitMsb:待轉(zhuǎn)換10bit高兩位;gBitLsb:10bits的低8位;***輸入:dacDat:int16u;***輸出:NO!***創(chuàng)建人:王思宇日期:2015-06-05***修改人:日期:2015-06-05***函數(shù)說明:外部函數(shù);voidTLC5615_Start(unsignedintdacDat){ unsignedcharH,L; dacDat%=1024; H=dacDat/256; L=dacDat%256; H<<=6; TLC5615_Write_12Bits(H,L);}#include<reg52.h>#include"mcp2515.h"#include"lcd1602.h"#include"tlc5615.h"sbitinled=P2^3;sbitoutled=P2^4;sbitbuzzer=P2^7;sbitkey_up=P3^2;sbitkey_down=P3^3;unsignedcharSOS;unsignedcharlen,Sta_Int,res,flag=0;unsignedcharsendbuf[3]={0x00,0x00,0x01};//待發(fā)送到CAN總線上的數(shù)據(jù)unsignedcharinbuf[3]={0};//接收到CAN總線上的數(shù)據(jù)voidCAN_send(unsignedchardat[]){ mcp2515_setRegisterS(MCP_TXB0CTRL+6,dat,3);/*發(fā)送數(shù)據(jù)*/ mcp2515_setRegister(MCP_TXB0CTRL+5,3); //設(shè)置發(fā)送的為4個字節(jié) mcp2515_write_can_id(MCP_TXB0SIDH,0,0x00);//寫入ID mcp2515_ModifyRegister(MCP_TXB0CTRL,0x0B,0x0B);//報文發(fā)送請求位,最高的報文發(fā)送優(yōu)先級 do //MCU將此位置1以請求報文發(fā)送-報文發(fā)送后該位自動清零 { res=mcp2515_ReadRegister(MCP_TXB0CTRL); res=res&0x08; }while(res);//等待報文發(fā)送完畢 outled=~outled;}voidEA_INIT(void){ EA=1; EX1=1; IT1=1;}voidmain(void){ unsignedintSuDu=0; EA_INIT(); Init_Can();//CAN初始化 inled=~inled;outled=~outled; Delay_Ms(500); inled=~inled;outled=~outled; LCD_Init(); LCD_Disp_String(0,0,"DAT:"); LCD_Disp_String(0,1,"SuDu:"); LCD_Disp_Word_Dec(5,1,SuDu); TLC5615_Start(SuDu); while(1) { if(key_up==0) { Delay_Ms(500); while(key_up==0); if(SuDu<=900) SuDu+=100; TLC5615_Start(SuDu); LCD_Disp_Word_Dec(5,1,SuDu); } if(key_down==0) { Delay_Ms(500); while(key_down==0); if(SuDu>=100) SuDu-=100; TLC5615_Start(SuDu); LCD_Disp_Word_Dec(5,1,SuDu); } if(flag) { SOS=inbuf[2]; LCD_Disp_Byte_Dec(5,0,SOS); flag=0; } } }voidInt0_ISR(void)interrupt2{ staticunsignedi=0; Sta_Int=mcp2515_ReadRegister(MCP_CANINTF);/*獲取中斷標(biāo)志寄存器*/// LCD_Disp_Byte_Dec(5,0,Sta_Int); //中斷標(biāo)志寄存器的數(shù)據(jù) if(Sta_Int&MCP_RX0IF)/*如果為接收緩沖器0中斷*/ { mcp2515_ModifyRegister(MCP_CANINTF,0x01,0x00);/*清除相關(guān)中斷標(biāo)志位*/ len=mcp2515_ReadRegister(MCP_RXB0CTRL+5); /*獲取接收數(shù)據(jù)的長度*/ for(i=0;i<len;i++) inbuf[i]=mcp2515_ReadRegister(MCP_RXB0CTRL+6+i); flag=1; inled=~inled; } if(Sta_Int&MCP_TX0IF)/*如果為發(fā)送緩沖器0中斷*/ { mcp2515_ModifyRegister(MCP_CANINTF,MCP_TX0IF,0x00);/*清除相關(guān)中斷標(biāo)志位*/ } mcp2515_setRegister(MCP_CANINTF,0x00);//清除中斷標(biāo)志位}#include"mcp2515.h"#include"mcp2515_bittime.h"/*引腳的定義*/sbit RST = P0^0;sbit CS = P0^1;sbit SO = P0^2;sbit SI = P0^3;sbit SCK = P0^4;/*引腳的定義sbit RST = P0^6;sbit CS = P0^7;sbit SO = P3^6;sbit SI = P1^0;sbit SCK = P1^1;*//*延時程序,大約微秒級別*/voidDelay_Us(unsignedintus){ for(;us>0;us--); for(;us>0;us--);}/*延時程序,大約毫秒級別*/voidDelay_Ms(unsignedintms){ for(;ms>0;ms--) Delay_Us(1000);}/*軟件模擬SPI的時序*///dat-->要發(fā)送的數(shù)據(jù)voidSPISendByte(unsignedchardat){ unsignedchari; CS=0; Delay_Us(50); for(i=0;i<8;i++) { SCK=0; Delay_Us(5); if(dat&0x80) SI=1; else SI=0; Delay_Us(5); SCK=1; dat=dat<<1; Delay_Us(5); }/*軟件模擬SPI,接收數(shù)據(jù)的程序*//*入口參數(shù):無返回參數(shù):接收的數(shù)據(jù),一個字節(jié)*/unsignedcharSPIRecvByte(void){ unsignedchardat=0; unsignedchari; CS=0; for(i=0;i<8;i++)//高位在前,低位在后 { dat=dat<<1; SCK=1; Delay_Us(5); SCK=0; Delay_Us(5); if(SO) dat=dat|0x01; else dat=dat&0xFE; } SCK=0; returndat;}/*函數(shù)名:mcp2515_setRegister*//*入口參數(shù):adress>需要設(shè)置的寄存器的地址*//*入口參數(shù):Value>需要設(shè)置的具體值*//*返回參數(shù):無*//*說明:本函數(shù)是用來設(shè)置寄存器的*/voidmcp2515_setRegister(unsignedcharaddress,unsignedcharValue){ CS=1; Delay_Us(5); SPISendByte(0x02);//寫數(shù)據(jù)指令 SPISendByte(address);//發(fā)送要寫入數(shù)據(jù)寄存器的地址 SPISendByte(Value); //向寄存器寫入數(shù)據(jù) CS=1; Delay_Us(5);}/*函數(shù)名:mcp2515_setRegisterS*//*入口參數(shù):adress>需要設(shè)置的寄存器的地址*//*入口參數(shù):value[]>用來設(shè)置的緩沖區(qū)的頭指針*//*入口哦參數(shù):n>需要設(shè)置的緩沖區(qū)的大小,按字節(jié)進(jìn)行計算*//*返回參數(shù):無*//*說明:本函數(shù)是用來設(shè)置發(fā)送緩沖區(qū)的*/voidmcp2515_setRegisterS(unsignedcharaddress,unsignedcharvalues[],unsignedcharn){ unsignedchari; CS=1; Delay_Us(5); SPISendByte(MCP_WRITE); SPISendByte(address);//只要CS保持低電平,通過持續(xù)移入數(shù)據(jù)字節(jié)就可以對 //連續(xù)地址寄存器進(jìn)行順序?qū)懖僮?即:只要寫一次地址,后面地址會自動加1 for(i=0;i<n;i++) SPISendByte(values[i]); CS=1; Delay_Us(5);}/*讀取指定寄存器的值,返回值為讀取的結(jié)果*/unsignedcharmcp2515_ReadRegister(unsignedcharaddress){ unsignedret; CS=1; Delay_Us(5); SPISendByte(0x03);//寫讀指令 SPISendByte(address);//寫寄存器地址 ret=SPIRecvByte();//讀取該寄存器值 CS=1; returnret;}/*修改寄存器的值*///mask為掩碼voidmcp2515_ModifyRegister(unsignedcharaddress,unsignedcharmask, unsignedchardat){ CS=1; Delay_Us(10); CS=0; SPISendByte(0x05); //位修改命令 SPISendByte(address);//寄存器地址 SPISendByte(mask); //屏蔽字節(jié) SPISendByte(dat); //數(shù)據(jù)字節(jié) CS=1;}/*設(shè)置2515的工作模式,返回之后需要判斷返回值來確定是否設(shè)置成功*/unsignedcharmcp2515_SetCanCtrl_Mode(unsignedcharnewmode){ unsignedchari; mcp2515_ModifyRegister(MCP_CANCTRL,MODE_MASK,newmode);//newmode高3位可以修改,低5位為0 i=mcp2515_ReadRegister(MCP_CANCTRL); i&=MODE_MASK; if(i==newmode) returnMCP2515_OK; else returnMCP2515_FAIL;}/*設(shè)置通信的速率*/unsignedcharmcp2515_configrate(unsignedcharcanSpeed){ unsignedcharset,cfg1,cf

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論