【正文】
來實現(xiàn)整個車燈的點亮與熄滅。車燈狀態(tài)通過串聯(lián)在電路中的狀態(tài)燈進行指示。這樣增加了線束的質(zhì)量與體積,加劇了粗大的線束與汽車有限的可用空間的矛盾。下面利用 CAN 總線技術(shù)實現(xiàn)車燈控制與狀態(tài)檢測,可以很好的解決傳統(tǒng)車燈控制與狀態(tài)檢測方法的弊端。微控制器對 CAN 控制器進行初始化設(shè)置,控制 CAN 控制器實現(xiàn)數(shù)據(jù)的接收和發(fā)送等通信任務(wù)。圖410 汽車車燈控制節(jié)點畫電路板時布線對系統(tǒng)的抗干擾性能有很大影響,本電路板設(shè)計時主要從幾下幾個方面進行考慮:1.盡量增加電源走線寬度,在電源線輸入端并聯(lián)一個大容量的電解電容和一個小的瓷片電容,其中大容量的電解電容是為抑制電源噪聲中的低頻分量,而小的瓷片電容則是為抑制噪聲中的高頻分量。3.晶振和 CPU 的時鐘輸入端都易產(chǎn)生噪聲,所以晶振和 CPU 之間要盡量靠近些。如本系統(tǒng)的 LM7805管和車窗電機驅(qū)動芯片L298N。給出總線節(jié)點電路的設(shè)計以及電源電路的設(shè)計,針對一些干擾,采取了相應(yīng)措施。第五章 CAN總線網(wǎng)絡(luò)軟件設(shè)計結(jié)合上一章的硬件電路設(shè)計,本章完成了下位機數(shù)據(jù)采集程序的編寫,制定了CAN通信協(xié)議,實現(xiàn)了CAN節(jié)點間的數(shù)據(jù)通信。SJA1000的初始化只有在復(fù)位模式下才可以進行,初始化主要包括工作方式的設(shè)置、接收濾波方式的設(shè)置、接收屏蔽寄存器(AMR)和接收代碼寄存器(ACR)的設(shè)置、波特率參數(shù)設(shè)置和中斷允許寄存器(IER)的設(shè)置等。CAN總線控制器SJA1000的初始化流程圖如圖51所示。 CLI()。 } while(!(Read_SJA1000(MODE) amp。 Write_SJA1000(CDR,0XC8)。 //設(shè)置驗收屏蔽位 Write_SJA1000(AMR1,0X00)。 Write_SJA1000(AMR3,0X00)。 Write_SJA1000(ACR3,0x01)。 Write_SJA1000(BTR1,0XFF)。 //TX1懸空 ,TX0推挽正常輸出 do { Write_SJA1000(MODE,0X00)。0x01))。 //配置發(fā)送緩沖區(qū)ID3 Write_SJA1000(IER,0X01)。 }根據(jù)CAN協(xié)議規(guī)范,報文的傳輸由CAN控制器SJA1000獨立完成。發(fā)送過程由SJA1000的中斷請求控制或由查詢控制段的狀態(tài)標(biāo)志控制。發(fā)送過程流程圖如圖52所示。 unsigned char SR_temp,i。 for(i = 2 。 i++) { CLI()。 } while(!(a_temp amp。 TransBuffer[0]=0x04。 TransBuffer[2]=0x01。 TransBuffer[4]= i。 TransBuffer[6]=0x04。 TransBuffer[8]=0x06。 Write_SJA1000(TXSFF,TransBuffer[0])。 Write_SJA1000(TXID2,TransBuffer[2])。 Write_SJA1000(TXDATA2,TransBuffer[4])。 Write_SJA1000(TXDATA4,TransBuffer[6])。 //發(fā)送請求命令 while(!(Read_SJA1000(SR) amp。 //開中斷 Delay_Ms(1000)。收到的信息放到接收緩沖器。主控制器會將這條信息發(fā)送到本地信息存儲器,然后釋放接收緩沖器并對信息操作。其接收程序流程圖如圖53所示。 Length_Data = (RxBuffer[0]) amp。 RxBuffer[1] = Read_SJA1000(RXID1)。 RxBuffer[3] = Read_SJA1000(RXDATA1)。 RxBuffer[5] = Read_SJA1000(RXDATA3)。 RxBuffer[7] = Read_SJA1000(RXDATA5)。 RxBuffer[9] = Read_SJA1000(RXDATA7)。 //清接收緩沖器}// 外部中斷1服務(wù)函數(shù)void INT1_Sev(){ int i。//關(guān)接收中斷 /**************處理函數(shù)******************/ CAN_Receive()。 Write_SJA1000(IER,0X01)。 系統(tǒng)整體流程圖 主站流程圖圖54 CAN總線網(wǎng)絡(luò)主站流程圖主站的任務(wù)是周期性地給從站發(fā)送輪詢信號,然后等待從站返回采集的信息,該信息經(jīng)處理后在顯示屏上顯示出來。 超聲波傳感器檢測液位流程超聲波傳感器模塊接線圖如圖48所示。當(dāng)檢測到回波信號后,模塊還要進行溫度值的測量,然后根據(jù)當(dāng)前溫度對測距結(jié)果進行校正,將校正后的結(jié)果通過Echo 管腳輸出。即距離值為:(高電平時間*340m/s)/2。軟件流程如圖56所示。DS18B20 工作流程見圖57 所示。ROM 操作命令均為8 位,命令代碼分別為:讀ROM(0x33H)、匹配ROM(0x55H)、跳過ROM(0xCCH) 、搜索ROM(0xF0H) 和告警搜索(0xECH) 命令;存儲器操作命令為:寫暫存存儲器(0x4EH) 、讀暫存存儲器(0xBEH)、復(fù)制暫存存儲器(0x48H)、溫度變換(0x44H)、重新調(diào)出EERAM(0xB8H)以及讀電源供電方式(0xB4H)命令。DS18B20 的數(shù)據(jù)讀寫由測溫分機來完成,包括初始化、讀數(shù)據(jù)和寫數(shù)據(jù)。規(guī)定總線上有一個測溫主機和1臺分機,分機地址唯一。溫度采集模塊負(fù)責(zé)數(shù)據(jù)的采集工作。嵌入式應(yīng)用系統(tǒng)在噪聲環(huán)境下使用時,大量的干擾源常常并不損壞系統(tǒng)硬件,卻能使系統(tǒng)無法正常工作。2)在干擾的侵害下,可讀寫的RAM中數(shù)據(jù)可能被竄改,這里包括片內(nèi)RAM擴展RAM和片內(nèi)特殊功能寄存器的內(nèi)容被篡改,導(dǎo)致某些部件工作狀態(tài)發(fā)生變化,引起控制失靈。針對這幾種現(xiàn)象,在軟件編程時,充分分析數(shù)據(jù),有針對性地采取數(shù)字濾波數(shù)據(jù)冗余與軟件冗余措施,配置具有自動糾錯、自動恢復(fù)功能的軟件模塊;針對零漂采取一些軟硬件的補償。同時,在程序中設(shè)置軟件陷阱,捕獲PC,將其導(dǎo)入正常軌道。常用的軟件抗干擾技術(shù)有:1)數(shù)字濾波對于實時數(shù)據(jù)采集系統(tǒng),為了消除傳感器通道中的干擾信號,在硬件措施上常采取有源或無源RLC網(wǎng)絡(luò),構(gòu)成模擬濾波器對信號實現(xiàn)頻率濾波。在本設(shè)計中,我們采用了在一般數(shù)據(jù)采集系統(tǒng)中,常采用一些簡單的數(shù)值、邏輯運算處理來達到濾波的效果。這樣經(jīng)過數(shù)字濾波,可以減少系統(tǒng)的隨機干擾對采集結(jié)果的影響。并且使其重復(fù)周期盡可能短的措施。3)程序運行失常的軟件抗干擾措施系統(tǒng)受到干擾,致使PC值改變,造成程序運行失常,常常導(dǎo)致程序飛出數(shù)據(jù)區(qū)及工作寄存器中數(shù)據(jù)破壞。① 指令冗余。通過指令冗余可以在一些對于程序流向起決定作用的指令之前插入NOP()函數(shù),降低程序彈飛的可能性。當(dāng)PC失控,造成程序“亂飛”而進入非程序區(qū)(如ROM中未使用的空間和未使用的中斷向量區(qū)等)時,指令冗余就不起作用了;只有在非程序區(qū)設(shè)置攔截措施,使跑飛的程序掉入軟件陷阱,強行使程序進入初始狀態(tài)。程序跑飛后,將從程序的第一條指令開始執(zhí)行,而不會出現(xiàn)死機的現(xiàn)象。當(dāng)程序彈飛到一個臨時構(gòu)成的死循環(huán)時,冗余指令和軟件陷井也無能為力了,此時系統(tǒng)將完全癱瘓。表明程序正在正常運行,則認(rèn)為程序進入了死循環(huán),此時看門狗電路就將單片機的RESET置低以使系統(tǒng)復(fù)位,程序從頭開始執(zhí)行。本章首先闡述了程序設(shè)計的思路和方法,并采用模塊化的編程思想對車身CAN控制系統(tǒng)主要程序進行了設(shè)計。文中針對CAN底層通訊程序進行了較詳細(xì)的設(shè)計,從而保證系統(tǒng)各單元間的正常通訊。為保證軟件運行的可靠性,文中針對軟件的干擾因素進行了分析并提出了相應(yīng)的抗干擾措施。將制作好的PCB板按照原理圖焊上相應(yīng)的元器件,焊接的原則是:先貼片后直插、先小后大。、連接線與元器件檢查焊接好元器件的電路板及連好線的整個應(yīng)用電路必須經(jīng)檢查無誤后才能通電。通電檢查的目的是保證整個電路各電路板處于正常工作狀態(tài)。然后把各個電路板模塊連接起來,進行整個系統(tǒng)檢查。軟件調(diào)試是通過對用戶程序的匯編,連接和執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤,并加以排除糾正的過程。從宏觀上說,單片機應(yīng)用系統(tǒng)中的軟件和硬件是密切相關(guān),相輔相成的。因此,將軟件和硬件完全孤立開來是不可能的。在系統(tǒng)聯(lián)調(diào)中,先對依賴于硬件的功能程序模塊進行調(diào)試,然后對與硬件關(guān)聯(lián)度較小的部分調(diào)試,最后進行兩大部分程序的有機組合及總調(diào)試。在調(diào)試時所劃分的程序模塊應(yīng)基本上保持與軟件設(shè)計時的程序功能模塊一致。對所有程序模塊的整體組合是在系統(tǒng)聯(lián)調(diào)中進行的,由于各個程序模塊均已通過調(diào)試,說明已基本排除內(nèi)部錯誤,所以總體聯(lián)調(diào)時程序的錯誤就大大減少,因而調(diào)試成功的可能性也就大大提高了。從而排除錯誤,但是如果對所有需調(diào)試的程序都以單步運行方式來查找錯誤的話,實在是一件既費時又費力的工作。將程序故障定位在一個較小的范圍內(nèi),然后針對故障程序段再使用單步運行調(diào)試方法來精確定位錯誤所在,這樣就可以做到調(diào)試的快捷和準(zhǔn)確。對于中斷操作利用單步運行調(diào)試無法完成調(diào)試工作,必須采取連續(xù)運行方法來調(diào)試。通過對軟硬件的調(diào)試,系統(tǒng)達到了預(yù)期效果,現(xiàn)給出各模塊調(diào)試結(jié)果。如圖 61所示。如圖62所示。如圖63所示。圖64為主站系統(tǒng)開機顯示畫面。 CAN通信網(wǎng)絡(luò)聯(lián)機調(diào)試通過以上分步調(diào)試,系統(tǒng)各部分運行正常,系統(tǒng)聯(lián)調(diào)也達到了預(yù)期效果。圖61 1號從站溫度采集圖62 4號從站液位測量圖63 CAN通信數(shù)據(jù)波形 圖64 顯示模塊效果圖圖65 系統(tǒng)整體運行效果第七章 結(jié)論與展望隨著汽車上電子控制裝置越來越多,車身布線也愈來愈復(fù)雜,使得運行可靠性降低,故障維修難度加大。針對這個問題,本文將CAN總線技術(shù)引入到車身控制系統(tǒng)。闡述了總線控制器SJA1000和收發(fā)器PCA82C250的結(jié)構(gòu)、特點及工作原理。② 根據(jù)汽車電器的位置和功能,完成對汽車電器網(wǎng)絡(luò)的設(shè)計,將汽車電器網(wǎng)絡(luò)合理分塊,并針對每個模塊進行了功能描述。同時設(shè)計總線接口每一部分的電路,并進行仔細(xì)分析。從而簡化系統(tǒng)軟件開發(fā)過程。并以左前車門模塊為例,闡述了控制軟件設(shè)計流程。④ 糾正了最初原理圖和電路板上的錯誤,通過對系統(tǒng)軟、硬件的調(diào)試,最終實現(xiàn)了CAN總線網(wǎng)絡(luò)的通信。在成本方面,本系統(tǒng)采用了獨立CAN控制器SJA1000+CAN驅(qū)動器PCA82C250與微控制器連接,與選用帶CAN接口的微處理器相比,具有成本低、擴展靈活等優(yōu)點。由于本文所研究的CAN總線技術(shù)尚處于初步研究階段,要應(yīng)用到工程實踐,還有大量的后續(xù)工作。② 對系統(tǒng)進行全面的穩(wěn)定性分析并提出解決方法。參考文獻[1] [M].北京:北京航空航天大學(xué)出版社, 2003[2] User39。 Information,Hangzhou Dianzi UniversityHangzhou, Zhejiang, 310018The People’s Republic of Chinazyj16888ABSTRCTThis paper presents a design of elevator positioning control system model based on the ATmega128 microcontroller. The model mainly includes MCU control module, stepper motor drive module, infrared detection module, LCD display module and keys module. The elevator’s running path is set by keys。 the realtime information of the elevator’s location is detected by infrared detection circuits and is fed back to the MCU. The speed and direction of the stepper motor are controlled by MCU inputting timing pulse signals to its drive chip L298(internal circuits are Hbridge drive circuits).The elevator stops when the information input by the key and the feedback signals of the infrared detection circuits are the same and the elevator’s realtime running status is displayed by the LCD1602.3. SYSTEM HARDWARE DESIGN Stepper motor drive module designStepper motor drive circuit is shown in Figure 3. L298 integrated chip’s input ports connect with the system MCU I/O ports and its output ports connect with the signal input ports of twophase four wires stepper motor. MCU