基于MXT8051單片機(jī)的發(fā)動(dòng)機(jī)車(chē)載監(jiān)控系統(tǒng)研究
引言
本文引用地址:http://cafeforensic.com/article/110393.htm隨著我國(guó)石油資源的日益枯竭、人們環(huán)保意識(shí)的增強(qiáng)、國(guó)內(nèi)人均機(jī)動(dòng)車(chē)保有量的增加,節(jié)能減排,正逐漸成為動(dòng)力機(jī)械類(lèi)OEM們不得不重點(diǎn)關(guān)注的首要問(wèn)題。而另一個(gè)更加緊迫地促使OEM實(shí)施技術(shù)升級(jí)的客觀因素就是:世界各國(guó)都在積極嘗試推行新的機(jī)動(dòng)車(chē)排放法規(guī),預(yù)計(jì)最遲到2015年,不符合最新排放標(biāo)準(zhǔn)的動(dòng)力機(jī)械將被禁止生產(chǎn)銷(xiāo)售。當(dāng)改進(jìn)工藝、增壓中冷、結(jié)構(gòu)優(yōu)化等傳統(tǒng)方法不足以滿(mǎn)足新標(biāo)準(zhǔn)時(shí),基于微控制器的電子智能優(yōu)化控制將成為新的曙光。
根據(jù)成熟的發(fā)動(dòng)機(jī)控制理論,當(dāng)發(fā)動(dòng)機(jī)工作在較高轉(zhuǎn)速時(shí),要求氣缸內(nèi)的工作介質(zhì)較早起燃才能實(shí)現(xiàn)較高的工作效率,而當(dāng)工作在較高負(fù)載時(shí),則需要每個(gè)工作循環(huán)燃燒更多的燃料吸入更多的氣體,可是一旦轉(zhuǎn)為從降低排放的角度來(lái)考慮的話(huà),情況則完全相反,如果從產(chǎn)品可靠性出發(fā),則又是一另番景象,從事發(fā)動(dòng)機(jī)性能優(yōu)化的工程師們?cè)谂ふ夷承﹨?shù)的平衡點(diǎn),基于發(fā)動(dòng)機(jī)工作原理的復(fù)雜性,會(huì)發(fā)現(xiàn)可編程微控制器在這個(gè)領(lǐng)域有著極為廣闊的應(yīng)用空間。
51單片機(jī)是最為人們熟知的可編程微控制器,也是對(duì)目前所有兼容Intel 8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱(chēng)。該系列單片機(jī)的始祖是Intel的8031單片機(jī),后來(lái)隨著Flash rom技術(shù)的發(fā)展,8051單片機(jī)取得了長(zhǎng)足的進(jìn)展,成為目前應(yīng)用最廣泛的8位微控制器,由北京時(shí)代民芯公司最新推出的MXT8051單片機(jī)就是最具代表性的國(guó)產(chǎn)8051單片機(jī)之一。
系統(tǒng)工作原理
與其它大部分電子控制系統(tǒng)一樣,發(fā)動(dòng)機(jī)電控系統(tǒng)也是由信號(hào)采集、信號(hào)處理和執(zhí)行機(jī)構(gòu)等部分組成。MXT8051片上自帶3路10位ADC功能,可用于采集三路由電壓型或電阻型傳感器輸出的模擬信號(hào),在發(fā)動(dòng)機(jī)上,可以是氣壓、水壓、油壓、氣溫、水溫、油溫、各種流量、角度、速度等等,MXT8051單片機(jī)的ADC功能設(shè)定較為簡(jiǎn)單,給EAD寄存器賦值1,使能10位AD轉(zhuǎn)換,ADMR寄存器的高5位控制AD轉(zhuǎn)換頻率,低3位控制當(dāng)前通道序號(hào),ADCON最高位置1,模擬電路總允許,最后,拉高ENDATA寄存器的bit6位ADCEN,即可從ADRESH和ADRESL中分別讀取當(dāng)前ADC轉(zhuǎn)換結(jié)果的高8位和低2位了。
對(duì)于轉(zhuǎn)速的測(cè)量,本文采用的是日本電裝公司的常開(kāi)式霍爾轉(zhuǎn)速傳感器,每當(dāng)目標(biāo)旋轉(zhuǎn)體上的鐵磁體靠近,傳感器就會(huì)感應(yīng)出一個(gè)脈沖,將該脈沖輸出腳接至MXT8051單片機(jī)的外部中斷端,并將定時(shí)器溢出中斷設(shè)定到較高優(yōu)先級(jí),定時(shí)訪問(wèn)外部中斷次數(shù)并清零,就可以算出采樣時(shí)間內(nèi)的平均轉(zhuǎn)速了。
MXT8051的P2.0~P2.4五個(gè)雙向IO可作為外部中斷使用,本例中采用P2.1連接轉(zhuǎn)速傳感器的信號(hào)端,定時(shí)器0設(shè)為最高優(yōu)先級(jí),程序進(jìn)入主函數(shù)時(shí),通常先通過(guò)PCON|=0x02;指令使能外部時(shí)鐘,然后EA=1;開(kāi)啟總中斷,IE=0xff;使能串口、定時(shí)器、外部信號(hào)、低電壓檢測(cè)等中斷,通過(guò)賦值IT0和IT1為1,設(shè)定外部中斷1、2均為下降沿觸發(fā)。
MXT8051單片機(jī)有足夠的GPIO用于驅(qū)動(dòng)LCD顯示發(fā)動(dòng)機(jī)運(yùn)行參數(shù),本例使用的是帶中文字庫(kù)的LCD12864(ST7920),采用串行通信方式,除電源與地參考外另需5個(gè)GPIO用于通信,即RS為數(shù)據(jù)、指令選擇;R/W(SID)為讀寫(xiě)選擇(信號(hào)位);E(SCLK)為信號(hào)使能(時(shí)鐘位);PSB為并行與串行選擇位;RST為復(fù)位腳。本例采用MXT8051單片機(jī)的P1.0~P1.4共五個(gè)雙向IO控制12864實(shí)時(shí)顯示各種運(yùn)行時(shí)信息。
軟件設(shè)計(jì)
上位機(jī)通信軟件使用VB6.0編制,由于系統(tǒng)工作中需要記錄一些工況點(diǎn)的數(shù)據(jù),故調(diào)用了excel工作表對(duì)數(shù)據(jù)表格進(jìn)行操作,基本通信原理為:上位機(jī)軟件啟動(dòng)后向目標(biāo)板發(fā)送通信指令,目標(biāo)板開(kāi)始把采集到的發(fā)動(dòng)機(jī)工況參數(shù)按指定順序發(fā)送給上位機(jī)軟件,軟件接收到信號(hào)以后把數(shù)據(jù)按指定順序分配到窗體的顯示控件,當(dāng)需要向目標(biāo)板寫(xiě)入map數(shù)據(jù)時(shí),上位機(jī)軟件通過(guò)串口發(fā)送寫(xiě)入指令,8051接收到第一位map數(shù)據(jù)時(shí),即采用IIC協(xié)議將該值寫(xiě)入AT24C08,然后以相同地址讀取該值發(fā)送回上位機(jī)軟件,地址累加1,同時(shí)上位機(jī)軟件的串口通信事件激活,從excel工作表讀取下一個(gè)單元格的值重復(fù)執(zhí)行發(fā)送-IIC協(xié)議寫(xiě)入-讀取-發(fā)送-地址累加的通信行為,直至最后一位完成讀寫(xiě)。上位機(jī)軟件的界面如圖1所示。
評(píng)論