<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 發(fā)動(dòng)機(jī)ECU測(cè)試系統(tǒng)的開(kāi)發(fā)

          發(fā)動(dòng)機(jī)ECU測(cè)試系統(tǒng)的開(kāi)發(fā)

          作者: 時(shí)間:2012-01-31 來(lái)源:網(wǎng)絡(luò) 收藏

          2.1 信號(hào)模擬

          信號(hào)模擬是為發(fā)動(dòng)機(jī)ECU產(chǎn)生各種必要的模擬信號(hào),這些信號(hào)等效于汽車傳感器在不同工況下的輸出信號(hào)。系統(tǒng)提供兩種生成這些信號(hào)所需要數(shù)據(jù)的方法可供選擇。一種是由手動(dòng)設(shè)置給出,一種是選擇關(guān)聯(lián)設(shè)置。關(guān)聯(lián)時(shí),秒表開(kāi)始計(jì)時(shí),各信號(hào)參數(shù)根據(jù)汽車動(dòng)力學(xué)在后臺(tái)計(jì)算。

          2.2 信號(hào)采集和分析

          系統(tǒng)采集發(fā)動(dòng)機(jī)ECU的輸出信號(hào),得到一組相關(guān)的測(cè)試數(shù)據(jù),根據(jù)采集的數(shù)據(jù)繪制發(fā)動(dòng)機(jī)ECU噴油脈沖信號(hào)和點(diǎn)火控制信號(hào)。還可以根據(jù)發(fā)動(dòng)機(jī)ECU的輸出信號(hào)計(jì)算出頻率、峰-峰值、脈沖寬度、占空比等物理參數(shù),給出發(fā)動(dòng)機(jī)ECU的噴油時(shí)間、噴油量相對(duì)變化率、點(diǎn)火提前角等工作參數(shù)。

          2.3 數(shù)據(jù)交換實(shí)現(xiàn)方法

          計(jì)算機(jī)通過(guò)串行口向發(fā)動(dòng)機(jī)ECU發(fā)送數(shù)據(jù),采集到ECU噴油和點(diǎn)火輸出信號(hào),通過(guò)串行口將這些數(shù)據(jù)傳給計(jì)算機(jī)。計(jì)算機(jī)接收數(shù)據(jù)并繪制圖形。

          計(jì)算機(jī)根據(jù)應(yīng)采集數(shù)據(jù)個(gè)數(shù)收集數(shù)據(jù),編制成固定格式再發(fā)送。采集的數(shù)據(jù)存放在一個(gè)整型數(shù)組里,再轉(zhuǎn)換成VARIANT數(shù)據(jù)類型,計(jì)算機(jī)通過(guò)串口將這些數(shù)據(jù)發(fā)送到發(fā)動(dòng)機(jī)ECU中。

          數(shù)據(jù)格式:標(biāo)識(shí)參數(shù)名+數(shù)據(jù)+標(biāo)識(shí)參數(shù)名+數(shù)據(jù)……標(biāo)識(shí)參數(shù)名+數(shù)據(jù)。

          每?jī)晌槐硎疽粋€(gè)量,前一位指明參數(shù),后一位給出數(shù)值。

          2.4 測(cè)試軟件的主工作界面

          幾乎所有的Windows應(yīng)用程序都要借助于對(duì)話框來(lái)和用戶交流,本測(cè)試系統(tǒng)也是如此。對(duì)話框是Windows應(yīng)用程序中常見(jiàn)的元素之一,是用戶與應(yīng)用程序進(jìn)行交互的最簡(jiǎn)單且最常用的方式之一。一個(gè)完整的對(duì)話框主要是由對(duì)話框資源和對(duì)話框類構(gòu)成,所以創(chuàng)建一個(gè)對(duì)話框就是創(chuàng)建對(duì)話框資源和對(duì)話框類的過(guò)程。創(chuàng)建對(duì)話框資源包括添加對(duì)話框模板、修改對(duì)話框?qū)傩?,并在?duì)話框中添加各種控件;創(chuàng)建對(duì)話框類包括添加控件變量和添加控件消息處理函數(shù)。

          界面設(shè)計(jì)要遵循簡(jiǎn)單直觀的原則,這樣操作人員用起來(lái)才會(huì)得手,減少求助,提高工作效率。本程序的編寫和調(diào)試采用的是Microsoft公司的VisualC++軟件。

          測(cè)試系統(tǒng)的主界面如圖4所示,各種控制參數(shù)都很直觀的顯示出來(lái),用戶可以直接對(duì)一些主要控制參數(shù)做連續(xù)調(diào)整,操作方便。

          測(cè)試系統(tǒng)的主界面
          2.5 串口通信參數(shù)設(shè)置

          要實(shí)現(xiàn)計(jì)算機(jī)串行通信的功能,一種較為簡(jiǎn)便的方法是使用MSComm(Microsoft Communication Control)通信控件,它提供了標(biāo)準(zhǔn)的事件處理函數(shù)過(guò)程,是微軟公司開(kāi)發(fā)的專門用于串行通信的控件。它是高級(jí)語(yǔ)言編寫的串行通信程序和PC串口之間的橋粱。本系統(tǒng)采用得就是這種方法。設(shè)置控件的屬性。添加控件的響應(yīng)代碼。就可以使串口按照要求進(jìn)行工作。在這個(gè)界面,可以進(jìn)行串口號(hào)和波特率的設(shè)置。通信參效設(shè)置界面如圖5所示。

          通信參效設(shè)置界面
          3 結(jié)果顯示

          發(fā)動(dòng)機(jī)油路中汽油壓力是一定的。因此噴油器通電時(shí),單位時(shí)間的噴油量是一定的。發(fā)動(dòng)機(jī)一個(gè)工作循環(huán)噴油量,可通過(guò)噴油持續(xù)時(shí)間來(lái)控制。由于電噴發(fā)動(dòng)機(jī)噴油嘴是通過(guò)電磁閥來(lái)控制關(guān)閉,而發(fā)動(dòng)機(jī)轉(zhuǎn)速較高,噴油時(shí)間很短,噴油器響應(yīng)快,因此ECU輸出的噴油信號(hào)是一個(gè)很短暫的脈沖信號(hào),這個(gè)信號(hào)的時(shí)間寬度就是噴油脈寬。

          點(diǎn)火控制信號(hào)實(shí)際上就是點(diǎn)火器中功率結(jié)晶管的通斷控制信號(hào)。它是ECU輸出到點(diǎn)火組件的點(diǎn)火命令信號(hào),也是點(diǎn)火組件計(jì)算閉合角的基準(zhǔn)信號(hào)。點(diǎn)火控制信號(hào)輸出后,在活塞位置達(dá)到存儲(chǔ)器所記憶的最佳點(diǎn)火時(shí)間時(shí),點(diǎn)火控制信號(hào)消失,也就是發(fā)出了點(diǎn)火指令,如圖6所示。

          信號(hào)輸出
          4 結(jié)束語(yǔ)

          通過(guò)對(duì)桑塔納2000型轎車發(fā)動(dòng)機(jī)ECU實(shí)際測(cè)試表明,通過(guò)該系統(tǒng)可以方便的將各種信號(hào)傳遞到發(fā)動(dòng)機(jī)ECU中,采集發(fā)動(dòng)機(jī)ECU的輸出信號(hào),還可以測(cè)試發(fā)動(dòng)機(jī)ECU是否正常工作。其產(chǎn)生的各種傳感器信號(hào)可用于實(shí)際車輛檢測(cè)。此外還可以用于學(xué)習(xí)和演示不同環(huán)境不同工況下,ECU如何控制發(fā)動(dòng)機(jī)工作。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();