版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第一章 緒論汽油機噴油器的噴油特性對汽油機的動力性,經(jīng)濟(jì)性,排放性能指標(biāo)有很大的影響。在電控汽油機中通過單片機對噴油器的各個噴油特性指標(biāo)測量和控制使噴油器的性能得到更大程度的優(yōu)化。此設(shè)計是通過串口通訊將單片機采集到的各個噴油器參數(shù)傳送到上位機,上位機通過Labview對所接收的到的數(shù)據(jù)進(jìn)行分析處理,達(dá)到對噴油器參數(shù)和功能的更加精確的控制。近年來,我國的摩托車行業(yè)得到了快速發(fā)展,我國摩托車產(chǎn)銷量躍居世界第一,出口躍居世界第二,摩托車已成為我國最具有全球化特征的機電產(chǎn)品之一,但隨著國民環(huán)保意識的不斷增強和對摩托車排放污染嚴(yán)重性的認(rèn)識不斷提高,以及全球的能源恐慌,各國對摩托車的排放和經(jīng)濟(jì)性都提出了更
2、高的要求。近年來,我國的摩托車排放標(biāo)準(zhǔn)如下:2003年1月1日起執(zhí)行歐標(biāo)準(zhǔn);2004年1月1日起新定型的摩托車產(chǎn)品污染物的排放達(dá)到相當(dāng)于歐排放控制水平;2005年1月1日起新定型的輕便摩托車產(chǎn)品污染物的排放應(yīng)當(dāng)達(dá)到相當(dāng)于歐的排放控制水平;2006年前后我國所有新定型的摩托車產(chǎn)品污染物的排放應(yīng)達(dá)到國際先進(jìn)排放控制水平;2008年我國將實施等同于針對摩托車歐排放標(biāo)準(zhǔn)的第3階段標(biāo)準(zhǔn)。由此可見,我國的摩托車排放標(biāo)準(zhǔn)加嚴(yán)進(jìn)程在不斷加快,這對我國摩托車行業(yè)來講,將是一個重大的考驗。排放問題解決的好壞將直接關(guān)系到我國摩托車行業(yè)今后的可持續(xù)發(fā)展。在汽油機普遍采用電控技術(shù),發(fā)動機性能普遍得到較大提高的今天,稀薄
3、燃燒技術(shù)為汽油機性能的進(jìn)一步提高提供了廣闊的前景?;鸹c火發(fā)動機采用稀薄燃燒技術(shù)不僅可以提高其燃油經(jīng)濟(jì)性,而且可以改善火花點火發(fā)動機對大氣的污染。對發(fā)動機排放方面,隨著空燃比的增加,由于采用稀的混合氣使燃燒溫度降低,NOx的排放明顯減少,同時燃燒產(chǎn)物中的氧成分有利于HC和CO的氧化,因此,HC和CO的排放也減小,然而,隨著空燃比增加到一定程度,由于燃燒速度的降低可能會使燃燒不完全,HC的排放會迅速增加。如果能合理地設(shè)計緊湊的燃燒室,并組織好空氣運動使燃燒在短時間內(nèi)完成,那么三種排放都可以大大減少。汽油機的排放問題在汽車方面已得到有效的解決:方案一 采用三效轉(zhuǎn)化器,該方案是目前在汽車領(lǐng)域運用的最
4、成功的方法,可使CO、HC和NOx等排放物減少80%90%.方案二 采用稀燃技術(shù),該方案不僅可以較大幅度的降低汽油機的排放,還可以降低汽油機的油耗,提高其經(jīng)濟(jì)性。因此該方案是各研究單位研究和開發(fā)的熱點。比較上述兩方案,第一方案成本過高,不適合摩托車行業(yè);只有采用第二種方案,才能有效的解決目前摩托車行業(yè)遇到的困難。實現(xiàn)稀燃技術(shù),需解決的問題很多,實現(xiàn)摩托車汽油機的電控是解決該問題的關(guān)鍵【3】。電控汽油機的內(nèi)容很多,其中噴油系統(tǒng)就是最重要的內(nèi)容之一。它必須精確地計量燃油并形成噴霧,當(dāng)發(fā)動機作高速運轉(zhuǎn)時,在個噴油周期內(nèi)從開啟、噴油到回位僅幾個毫秒,為了使噴油器在如此短的過程中有足夠的噴油量,就要求其
5、具有很高的頻響特性1。另外,它的流量特性對汽油機與電控系統(tǒng)的匹配有很大影響。因此,通過建立數(shù)學(xué)模型研究其噴射過程具有重要實用意義,有助于了解各種參數(shù)對噴油器性能的影晌程度可為噴油器的開發(fā)設(shè)計和改進(jìn)提供條新的有效手段。在電噴發(fā)動機的電控系統(tǒng)中,電控單元通過控制噴油器的噴油脈寬來控制噴油量,從而適應(yīng)發(fā)動機各種工況的需要。噴油量的精確性將直接影響發(fā)動機的動力性、經(jīng)濟(jì)性及排放性能等,因此,有必要對噴油器的一個極為重要的特性流量特性進(jìn)行試驗和研究。流量特性是指噴油器單次噴油量與噴油脈寬的關(guān)系曲線。此軟件的設(shè)計為這些數(shù)值的測量提供了很大的幫助。第二章 噴油器流量測試意義及設(shè)計2.1 噴油器流量特性測試的意
6、義現(xiàn)代電子控制技術(shù)在發(fā)動機噴射系統(tǒng)中的應(yīng)用大大改善了發(fā)動機性能。電控噴油器作為電控噴射系統(tǒng)的一個關(guān)鍵部件,其工作特性對汽油機與電噴系統(tǒng)的改善是一個關(guān)鍵部件,其工作特性對汽油機與電噴系統(tǒng)的匹配和燃油的計量精度都有很大的影響。在電噴發(fā)動機的電控系統(tǒng)中,電控單元通過調(diào)節(jié)噴油器的噴油脈寬來控制噴油量,從而適應(yīng)發(fā)動機各種工況的需要。噴油量的精確性將直接影響發(fā)動機的動力性,經(jīng)濟(jì)性及排放性等。因此,對噴油器噴油量的高精度和高效率測量是噴油器及發(fā)動機生產(chǎn)企業(yè)重要的質(zhì)量保證手段。由于每個循環(huán)的噴油量和在穩(wěn)定工況下的平均燃油流量很小,因此需要研制專門的噴油器參數(shù)測量控制儀。下面我以噴油脈寬的測量為例說明開發(fā)此系統(tǒng)
7、的必要性。噴油器的噴油脈寬由電控單元精確控制,以保證缸內(nèi)混和氣的空燃比符合發(fā)動機各工況的要求。噴油器的流量和精度直接影響著發(fā)動機的動力性、經(jīng)濟(jì)性及排放等。在安裝噴油器之前,要對噴油器的流量特性進(jìn)行標(biāo)定,以檢查所選用的噴油器是否滿足流量和精度的要求。噴油器的流量特性,是指噴油器的實際噴油量隨噴油脈寬的變化規(guī)律,理想噴油器的開關(guān)是瞬時的,且在脈寬從零到最大的范圍內(nèi)都能獲得線性噴油量。而實際噴油器在噴射脈沖始點(或終點)與噴油器針閥升起(或落座)之間有一定的滯后時間,因此噴油器的流量特性在較小與較大的脈寬段是非線性的。為了保證發(fā)動機電控單元能精確地控制噴油量,從而達(dá)到精確控制空燃比的目的,噴油器的脈
8、寬與其噴油量必須具有線性關(guān)系。在發(fā)動機正常工作噴油量范圍內(nèi),不僅要求流量特性具有較好的線性度,而且其低端也要好,以保證噴油器在低速、小負(fù)荷工況下工作穩(wěn)定,并有足夠的流量精度。為此我所設(shè)計的軟件就是用于此測量系統(tǒng)的測試和控制部分,有上位機和下位機組成。下位機采集噴油器的各種參數(shù),上位機處理,同時上位機將各個控制參數(shù)下傳到下位機進(jìn)行控制噴油器各個參數(shù),對于汽油機噴油系統(tǒng)的優(yōu)化有很大作用,從而控制汽油機整體排放,動力等指標(biāo),以達(dá)到現(xiàn)在國家的各種排放,動力標(biāo)準(zhǔn)。2.2 噴油器特性參數(shù)測試方案設(shè)計電控噴油器參數(shù)測試是在專門的試驗臺上進(jìn)行,試驗臺上配有一套電控測量系統(tǒng),能夠精確測量出流量等參數(shù),快速處理試
9、驗數(shù)據(jù)。如圖3-1所示,噴油器流量檢測試驗臺主要由燃料供給系統(tǒng)和電控系統(tǒng)組成。圖2-1燃油供給系統(tǒng)框圖圖2-1燃油供給系統(tǒng)框圖燃料供給系統(tǒng)主要由燃油箱、燃油泵、燃油濾清器、油壓脈動阻尼器、燃油壓力調(diào)節(jié)器、燃油總管、噴油器等組成。燃油從燃油箱中被燃油泵吸出,先由燃油濾清器將雜志濾除后再通過輸油管送到各個噴油器。噴油器則根據(jù)ECU發(fā)出的指令,將燃油噴出。油壓調(diào)節(jié)器的作用是將噴油壓力控制在一定范圍內(nèi),將多余的燃油從調(diào)壓器經(jīng)回油管送回油箱。油壓脈動阻尼器的作用是為了消除燃油泵泵油是或噴油器噴油時引起的油壓脈動,吸收管路中油壓波動時的能量,提高噴油精度。一、燃油泵燃油泵的作用是向燃油系統(tǒng)提供足夠流量和規(guī)
10、定壓力的燃油,目前大多數(shù)EEI系統(tǒng)廣泛采用內(nèi)置式電動燃油泵。電動燃油泵主要由油泵、永磁電動機、安全閥(卸壓閥)、單向閥和外殼等組成電動機通電時即可帶動泵體轉(zhuǎn)動,燃油經(jīng)濾網(wǎng)過濾從吸油口吸入,流經(jīng)電動燃油泵內(nèi)部,壓開單向閥從出油口流出,向燃油系統(tǒng)供油。同時,燃油流經(jīng)電動燃油泵的內(nèi)部,可對永磁電動機的電樞部分進(jìn)行冷卻,故此種燃油泵又稱為濕式燃油泵。單向閥的作用是在燃油泵停止工作時防止燃油倒流,并可保持管路殘余壓力,防止溫度高時油路產(chǎn)生氣阻現(xiàn)象,影響發(fā)動機熱起動性能。若噴油泵輸出壓力達(dá)到400以上時,安全閥會自動打開,高壓燃油流回至油泵的進(jìn)油室,并在油泵和電動機內(nèi)循環(huán),避免由于油路堵塞、引起管路油壓過
11、高而造成管路破裂或燃油泵損壞。二、燃油壓力調(diào)節(jié)閥當(dāng)EFI系統(tǒng)工作時,噴油器的燃油噴射量與噴油器的噴油壓力和噴油器的開啟時間有關(guān),因此必須對噴油壓力加以限制。否則,同樣的通電時間,噴油壓力高,則噴油多;噴油壓力低,則噴油量少。只有噴油壓力一定時,才能使燃油噴射量與噴油器的開啟有關(guān)。噴油器的噴油壓力是指燃油總管絕對壓力與進(jìn)氣歧管壓力之差。燃油壓力調(diào)節(jié)器的作用是根據(jù)進(jìn)氣歧管絕對壓力的變化來調(diào)節(jié)系統(tǒng)油壓(燃油總管的絕對壓力),使噴油器的噴油壓力保持恒定,因此噴油器的燃油噴射量唯一取決于噴油器的開啟時間。ECU只須通過控制噴油器的開啟時間就可以精確控制噴油器的噴油量。三、電控噴油器電控噴油器的作用是根據(jù)
12、ECU發(fā)出的噴油脈沖信號,精確計量燃油噴射量,并將燃油噴射后霧化,以形成混合氣。噴油器是一種加工精度非常高的精密儀器,對它的工作要求是:動態(tài)流量范圍大,霧化性能好,抗堵塞能力強。峰值電流到達(dá)時間和單次噴油時間是控制噴油器工作的兩個重要參數(shù)。四、燃油壓力脈動阻尼器當(dāng)電動噴油泵泵油或噴油器噴油的時,在燃油輸入管道內(nèi)會產(chǎn)生燃油壓力脈動,因此影響噴油器的噴油精度。通常采用燃油壓力脈動阻尼器來減弱燃油總管中的壓力脈動波,可有效提高噴油器的噴油精度及降低噪聲。五、C5051F單片機1、C8051F系列單片機是美國Silabs公司的產(chǎn)品,把80C51系列單片機從MCU(微控制器)時代推向SOC(片上系統(tǒng))時
13、代,使得以8051為內(nèi)核的單片機上了一個新的臺階。C8051F系列單片機與80C51系列單片機的主要相同點是指令系統(tǒng)完全一樣。主要進(jìn)步如下:指令運行速度比一般的80C51系列單片機提高了大約10倍;I/O端口的配置由固定方式,轉(zhuǎn)變?yōu)檐浖O(shè)定方式;時鐘系統(tǒng)更加完善,有多個時鐘源,且時鐘振蕩器可編程等;可實現(xiàn)通過JTAG接口的在系統(tǒng)調(diào)試增加了模數(shù)和數(shù)模轉(zhuǎn)換模塊增加了SPI、和CAN等串行接口;有多種復(fù)位方式;進(jìn)一步降低了系統(tǒng)功耗。2、C8051F系列單片機的微控制器內(nèi)核稱為CIP-51,它是Intel公司標(biāo)準(zhǔn)8位8051單片機的組織結(jié)果和功能的基礎(chǔ)上加以改進(jìn)和提高形成的。CIP-51內(nèi)核特點:主要
14、功能部件及組成與8051相同;與MCS-51指令完全兼容;時鐘頻率為025MHz,執(zhí)行速度一般可達(dá)25兆指令/秒;增加了流水線結(jié)構(gòu),70指令的執(zhí)行時間安為1個或2個系統(tǒng)時鐘周期;模/數(shù)、數(shù)字外設(shè)有關(guān)的SFR移到核外,通過SFR接口與CPU交換信息;中斷系統(tǒng)擴展為可處理22個中斷源;復(fù)位與時鐘電路不包括在核內(nèi);具有程序和數(shù)據(jù)存儲安全管理功能。 由于整體的設(shè)計還處在測試階段,所以此設(shè)計采用的是8051作為本系統(tǒng)的測試,實驗。第三章 噴油器流量特性分析及軟件整體設(shè)計概況3.1 噴油器流量特性分析電磁噴油器的流量特性是指噴油量與噴油脈沖(電磁線圈通電時間)的變化規(guī)律。通常,噴油器的流量特性可用靜態(tài)流量
15、和動態(tài)流量來表示。如圖42所示:圖3-1 噴油器流量特性圖3-1 噴油器流量特性:靜態(tài)流量,是指電磁噴油器在規(guī)定壓力下,使針閥保持在最大升程位置時,在單位時間內(nèi)的燃油噴射量();:動態(tài)流量,一個噴油脈沖寬度的燃油噴射量();理論上電磁噴油器的動態(tài)理論與噴油脈寬之間呈線性關(guān)系,但是在實際的動態(tài)噴射中,噴油器的脈沖信號和電磁線圈所產(chǎn)生的電磁力及針閥運動三者直接案有一定的滯后時間,造成噴油器的動態(tài)理論特性圖中其較短的噴油脈寬(略小于開啟時間)或較長的噴油脈寬(接近脈沖周期)區(qū)域內(nèi)的實際動態(tài)理論特性呈非線性。3.2 噴油器測試系統(tǒng)控制參數(shù)分析 在整個測試系統(tǒng)中,控制的參數(shù)有噴油脈寬時間,噴油間隔時間,
16、噴油脈寬增量時間,打開脈沖時間,維持脈沖時間1,維持脈沖時間2,維持脈沖時間3,測量點數(shù),每點噴油總次數(shù)。這9個控制參數(shù)均在10H參數(shù)輸入?yún)^(qū),對應(yīng)9個確定按鍵,可以對其參數(shù)的數(shù)值進(jìn)行調(diào)整和矯正。但每個參數(shù)都有其默認(rèn)值和對應(yīng)的參數(shù)范圍,例如噴油脈寬時間在系統(tǒng)初始化的時候,其默認(rèn)值為5毫秒,其輸入值的范圍為小于20毫秒。這9個參數(shù)的變化間接的控制系統(tǒng)噴油量的變化,從而控制汽油機的排放及動力特性。3.3 設(shè)計軟件整體概述 (1)、設(shè)計整體噴油器特性參數(shù)測試方案。(2)、進(jìn)行噴油器特性分析。(3)、單片機與上位機(電腦)通訊協(xié)議的制訂。(4)、Labview與單片機通訊方式及實現(xiàn)。(5)、上位機參數(shù)配
17、置與顯示軟件設(shè)計。3.4 設(shè)計軟件整體概述 整個軟件分為上位機和下位機,上位機的程序利用Labview進(jìn)行編寫,下位機主控芯片為MCS-51利用匯編進(jìn)行編寫。在上位機控制界面上一共有四個區(qū),10H區(qū)參數(shù)輸入?yún)^(qū),將上位機輸入的噴油器參數(shù)傳到下位機進(jìn)行控制噴油器的噴油特性。20H區(qū)功能命令區(qū),傳送噴油器要執(zhí)行的命令信號。30H噴油器流量數(shù)據(jù)上傳區(qū),接收各個噴油器位置噴出油的流量值,根據(jù)這些值將噴油量形象的顯示在界面上。40H區(qū)實時數(shù)據(jù)上傳區(qū),實時顯示噴油器位置,噴油脈寬的值。下位機由于實驗條件的限制,僅僅是通過51單片機模擬各個需要執(zhí)行的命令和需要上傳的參數(shù),并在P1口上實時的顯示,從而對軟件進(jìn)行
18、有效的測試。第三章 串口概述3.1 RS232串口概述串口是計算機上一種非常通用設(shè)備通信的協(xié)議。大多數(shù)計算機包含兩個基于RS232的串口。串口同時也是儀器儀表設(shè)備通用的通信協(xié)議;很多GPIB兼容的設(shè)備也帶有RS-232口。同時,串口通信協(xié)議也可以用于獲取遠(yuǎn)程采集設(shè)備的數(shù)據(jù)。串口的接線如圖1所示圖3-1串口圖3-1串口針腳定義 符號1 載波檢測 DCD2 接收數(shù)據(jù) RXD3 發(fā)送數(shù)據(jù) TXD4 數(shù)據(jù)終端準(zhǔn)備好 DTR5 信號地 SG6 數(shù)據(jù)準(zhǔn)備好 DSR7 請求發(fā)送 RTS8 清除發(fā)送 CTS9 振鈴提示 RI串口通信的概念非常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并
19、行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。它很簡單并且能夠?qū)崿F(xiàn)遠(yuǎn)距離通信。比如IEEE488定義并行通行狀態(tài)時,規(guī)定設(shè)備線總常不得超過20米,并且任意兩個設(shè)備間的長度不得超過2米;而對于串口而言,長度可達(dá)1200米。典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗。對于兩個進(jìn)行通行的端口,這些參數(shù)必須匹配:a,波特率:這是一個衡量通信速度的參數(shù)。它表示每秒鐘傳送的
20、bit的個數(shù)。例如300波特表示每秒鐘發(fā)送300個bit。當(dāng)我們提到時鐘周期時,我們就是指波特率例如如果協(xié)議需要4800波特率,那么時鐘是4800Hz。這意味著串口通信在數(shù)據(jù)線上的采樣率為4800Hz。通常電話線的波特率為14400,28800和36600。波特率可以遠(yuǎn)遠(yuǎn)大于這些值,但是波特率和距離成反比。高波特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設(shè)備的通信。b,數(shù)據(jù)位:這是衡量通信中實際數(shù)據(jù)位的參數(shù)。當(dāng)計算機發(fā)送一個信息包,實際的數(shù)據(jù)不會是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)置取決于你想傳送的信息。比如,標(biāo)準(zhǔn)的ASCII碼是0127(7位)。擴展的ASCII碼是025
21、5(8位)。如果數(shù)據(jù)使用簡單的文本(標(biāo)準(zhǔn) ASCII碼),那么每個數(shù)據(jù)包使用7位數(shù)據(jù)。每個包是指一個字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗位。由于實際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語“包”指任何通信的情況。c,停止位:用于表示單個包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時也越慢。d,奇偶校驗位:在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低
22、。當(dāng)然沒有校驗位也是可以的。對于偶和奇校驗的情況,串口會設(shè)置校驗位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數(shù)是偶數(shù)個。如果是奇校驗,校驗位位1,這樣就有3個邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗。這樣使得接收設(shè)備能夠知道一個位的狀態(tài),有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。RS-232(ANSI/EIA-232標(biāo)準(zhǔn))是IBM-PC及其兼容機上的串行連接標(biāo)準(zhǔn)??捎糜谠S多用途,比如連接鼠標(biāo)、打印機或者M(jìn)odem,同時也可以接工業(yè)儀器儀表。用于驅(qū)動和連線的
23、改進(jìn),實際應(yīng)用中RS-232的傳輸長度或者速度常常超過標(biāo)準(zhǔn)的值。RS-232只限于PC串口和設(shè)備間點對點的通信。RS-232串口通信最遠(yuǎn)距離是50英尺。3.2單片機串口概述MCS-5有兩個獨立的接收、發(fā)送緩沖器SBUF(屬于特殊功能寄存器),一個用作發(fā)送,一個用作接收。發(fā)送緩沖器只能讀出;接收緩沖器只能讀出但不能寫入,兩者公用一個字節(jié)地址(99H)。SBUF是兩個在物理上獨立的接收,發(fā)送緩沖器,可同時發(fā)送,接收數(shù)據(jù)。兩個緩沖區(qū)只用一個字節(jié)地址99H,可通過指令對SBUF的讀寫來區(qū)別接收緩沖區(qū)的操作還是對發(fā)送緩沖區(qū)的操作,CPU寫SBUF,就是修改發(fā)送緩沖器;讀SBUF,就是讀接收緩沖器。串行口
24、對外也有兩條獨立的收發(fā)信號線RXD(P3.0),TXD(P3.1),因此可以同時發(fā)送和接收數(shù)據(jù),實現(xiàn)全雙工。串行口控制寄存器SCON用來控制串口的工作狀態(tài),它可以是位尋址。在復(fù)位時所有位被清零,字地址為98H,其格式如表2所示:表2-1 串口工作寄存器各位的定義位地址9F9E9D9C9B9A9998位符號SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行口工作方式選擇位SM2:多機通信控制位REN:允許接收位TB8:發(fā)送數(shù)據(jù)位RB8:接收數(shù)據(jù)位TI:發(fā)送中斷標(biāo)志位RI: 接收中斷標(biāo)志位 根據(jù)SM0,SM1的選擇,設(shè)置串行口的工作方式,方式0為同步移位寄存器方式,其波特率為固定的,
25、為fosc(振蕩頻率)的1/12。方式1時,串口的被設(shè)置為波特率可變的8位異步通信接口。方式2時,串口被定義為9位異步通信接口,帶奇偶校驗位。方式3時,串口被定義為9位異步通信方式,波特率的設(shè)置為可變波特率,帶奇偶校驗位。電源控制寄存器PCON主要是為CHMOS型單片機的電源控制設(shè)置的專用寄存器,單元地址為87H,其格式如表3所示表2-2 電源控制寄存器各位定義位序D7D6D5D4D3D2D1D0位符號SMOD/GF1GF0PDIDL其中,PCON低4位是CHMOS單片機掉電方式控制位,在HMOS單片機中,該寄存器中除最高位之外,其它位都是虛設(shè)的,最高位SMOD是串口波特率的倍增位,在單片機的
26、工作方式1,方式2,方式3時,當(dāng)SMOD=1時,串口波特率提高一倍,若SMOD=0,則波特率不加倍。系統(tǒng)復(fù)位時SMOD=0。PCON的其它各位應(yīng)用于MCS-51的電源控制。3.3 Labview軟件概述LabVIEW是一種程序開發(fā)環(huán)境,由美國國家儀器(NI)公司研制開發(fā)的,類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計算機語言的顯著區(qū)別是:其他計算機語言都是采用基于文本的語言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產(chǎn)生的程序是框圖的形式。與C和BASIC一樣,LabVIEW也是通用的編程系統(tǒng),有一個完成任何編程任務(wù)的龐大函數(shù)庫。LabVIEW的函數(shù)庫包括數(shù)據(jù)采集、
27、GPIB、串口控制、數(shù)據(jù)分析、數(shù)據(jù)顯示及數(shù)據(jù)存儲,等等。LabVIEW也有傳統(tǒng)的程序調(diào)試工具,如設(shè)置斷點、以動畫方式顯示數(shù)據(jù)及其子程序(子VI)的結(jié)果、單步執(zhí)行等等,便于程序的調(diào)試。LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一種圖形化的編程語言的開發(fā)環(huán)境,它廣泛地被工業(yè)界、學(xué)術(shù)界和研究實驗室所接受,視為一個標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件。LabVIEW集成了與滿足GPIB、VXI、RS-232和RS-485協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能。它還內(nèi)置了便于應(yīng)用TCP/IP、ActiveX等軟件標(biāo)準(zhǔn)的庫函數(shù)。這是一個
28、功能強大且靈活的軟件。利用它可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過程都生動有趣。圖形化的程序語言,又稱為“”語言。使用這種語言編程時,基本上不寫程序代碼,取而代之的是流程圖或框圖。它盡可能利用了技術(shù)人員、科學(xué)家、工程師所熟悉的術(shù)語、圖標(biāo)和概念,因此,LabVIEW是一個面向最終用戶的工具。它可以增強你構(gòu)建自己的科學(xué)和工程系統(tǒng)的能力,提供了實現(xiàn)儀器編程和數(shù)據(jù)采集系統(tǒng)的便捷途徑。使用它進(jìn)行原理研究、設(shè)計、測試并實現(xiàn)儀器系統(tǒng)時,可以大大提高工作效率。利用LabVIEW,可產(chǎn)生獨立運行的可執(zhí)行文件,它是一個真正的位編譯器。像許多重要的軟件一樣,LabVIEW提供了Windows、
29、UNIX、Linux、Macintosh的多種版本。利用Labview強大的編程能力,其中的VISA串口模塊能夠非常方便的實現(xiàn)對串口的控制,從而使電腦與單片機通訊及其方便,有效。3.4 Labview中串口模塊概述目前,串口通信程序的開發(fā),在Windows操作系統(tǒng)下一般用VB、VC、Delphi等編寫。當(dāng)用VB、VC開發(fā)串行通信程序時,開發(fā)人員不得不面對非常繁瑣的API函數(shù)編程;而Delphi沒有自帶的串口通信控件,在它的幫助文檔里也沒有提及串口通信,這也給編程人員帶來許多不便。可見,用上述三種文本語言編串口通信程序較為復(fù)雜,花費的時間較長。筆者試圖找到一種實現(xiàn)PC機與單片機的串口通信更為簡捷
30、的方法:利用LabVIEW進(jìn)行開發(fā)。由于Labview具有實用性和開放性,采用VISA(Virtual Instrument Software Architecture)接口模塊來進(jìn)行編程。VISA是應(yīng)用于儀器編程的標(biāo)準(zhǔn)I0應(yīng)用程序接口,是工業(yè)界通用的儀器驅(qū)動器標(biāo)準(zhǔn)API(應(yīng)用程序接口),采用面向?qū)ο缶幊?,具有很好的兼容性、擴展性和獨立性。用戶可以用一個API控制包括VXI、GPIB及串口儀器在內(nèi)的不同種類的儀器。它還支持多平臺工作、多接口控制,是一個多類型的函數(shù)庫,例如筆者編寫的VISA接口程序,當(dāng)外部設(shè)備變更時,只需要更換幾個程序模塊即可,很方便而且開發(fā)效率高??傊?,使用VISA方便用戶在
31、不同的平臺,對不同類型的設(shè)備進(jìn)行開發(fā)、移植及升級測控系統(tǒng)。下面對Labview中VISA函數(shù)幾個基本模塊做個簡單的介紹:1:VISA串口初始化模塊如下圖所示:圖3-2 VISA串口初始化模塊圖3-2 VISA串口初始化模塊功能:對串口的設(shè)置進(jìn)行初始化輸入的端口及功能VISA資源名稱:用于確定通訊端口是COM口還是LPT1口,由于單片機端用的是COM口,所以我選用的是COM口和單片機通訊。波特率:即傳輸速率的設(shè)置,兩端均設(shè)置為2400bit/s。數(shù)據(jù)比特:即輸入數(shù)據(jù)的位數(shù),其值介于5和8之間,由于下位機傳送的是8位數(shù)據(jù),所以上位機選擇默認(rèn)值為8。奇偶標(biāo)志位:指定要傳輸或接收的每一幀所使用的奇偶標(biāo)
32、志,每個數(shù)據(jù)對應(yīng)是何種校驗,由于單片機一端為偶校驗,所以選用的是值為2,對應(yīng)的為偶校驗。停止位:用于表示幀結(jié)束的停止位的數(shù)量。選用的數(shù)值為10,對應(yīng)的是1個停止位。輸出的端口及功能VISA資源名稱的輸出:用于返回此函數(shù)利用的VISA資源名稱。錯誤輸出:輸出此程序運行的錯誤信息。2:VISA數(shù)據(jù)寫入模塊如下圖所示:圖3-3 VISA數(shù)據(jù)寫入模塊圖3-3 VISA數(shù)據(jù)寫入模塊功能:將寫入緩沖區(qū)的數(shù)據(jù)寫入VISA資源名稱指定的設(shè)備或接口中。輸入端口及功能VISA資源名稱:指定要打開的資源名稱。寫入緩沖區(qū):寫入要寫入下位機的數(shù)據(jù)。錯誤輸入:表明VI或函數(shù)運行前發(fā)生的錯誤。輸出端口及功能VISA資源名稱
33、的輸出:用于返回此函數(shù)利用的VISA資源名稱。返回數(shù):返回實際寫入的字節(jié)數(shù)。錯誤輸出:輸出此程序運行的錯誤信息。3:VISA讀取模塊如下圖所示圖3-4 VISA讀取模塊圖3-4 VISA讀取模塊功能:讀取緩沖區(qū)指定數(shù)目的數(shù)據(jù)輸入端口及功能VISA資源名稱:指定要打開的資源名稱。字節(jié)總數(shù):要讀取緩沖區(qū)字節(jié)的總數(shù)。錯誤輸入:表明VI或函數(shù)運行前發(fā)生的錯誤。輸出端口及功能VISA資源名稱的輸出:用于返回此函數(shù)利用的VISA資源名稱。讀取緩沖區(qū):讀取下位機傳到緩沖區(qū)的數(shù)據(jù)。錯誤輸出:輸出此程序運行的錯誤信息4:VISA關(guān)閉模塊如下圖所示:圖3-5 VISA讀取模塊圖3-5 VISA讀取模塊功能:關(guān)閉V
34、ISA資源名稱指定的設(shè)備會話句柄或事件對象。輸入端口及功能VISA資源名稱:指定要打開的資源名稱。錯誤輸入:表明VI或函數(shù)運行前發(fā)生的錯誤。輸出端口及功能錯誤輸出:輸出此程序運行的錯誤信息在Labview中利用VISA進(jìn)行串口數(shù)據(jù)發(fā)送的基本流程為,首先VISA串口初始化模塊對串口進(jìn)行初始化,設(shè)置波特率,奇偶校驗位等參數(shù)。其次調(diào)用串口發(fā)送或串口接收模塊進(jìn)行接收,發(fā)送數(shù)據(jù)。最后調(diào)用VISA串口關(guān)閉模塊,關(guān)閉串口。串口編程注意事項:1:串口通訊的波特率設(shè)置要精確,比如要求9 600的波特率,則晶振應(yīng)選擇11059 3 MHz或其倍數(shù)。2:由于通常情況下LabVIEW 串口VI接收或發(fā)送的都是字符串(
35、Norma1),所以,如果需要發(fā)送或接收十六進(jìn)制數(shù)值,要在發(fā)送或接收之前進(jìn)行必要的轉(zhuǎn)換例如傳輸動態(tài)產(chǎn)生和變化的數(shù)值型數(shù)據(jù)時,在發(fā)送之前要先將這些數(shù)據(jù)構(gòu)成一個數(shù)組,用Byte Array To String進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換的結(jié)果就是數(shù)組數(shù)值對應(yīng)16進(jìn)制的字符串,然后提交VISAWrite發(fā)送。第四章 上位機軟件設(shè)計4.1上位機整體流程圖設(shè)計流程圖說明:1:整體為2個順序模塊,第1個順序模塊為握手測試模塊,第2個順序模塊為do-while循環(huán)檢測4個模塊是否有確定按鈕按下,如果有執(zhí)行對應(yīng)的功能模塊,如果沒有繼續(xù)循環(huán)檢測。但在每個循環(huán)的過程中都進(jìn)行讀取命令執(zhí)行標(biāo)志字節(jié)和實時數(shù)據(jù)的采集模塊,從而進(jìn)行數(shù)據(jù)
36、的實時顯示。2:第1個模塊包含數(shù)據(jù)范圍判斷子VI,發(fā)送數(shù)據(jù)子VI,數(shù)據(jù)分離子VI,接收數(shù)據(jù)子VI,用于噴油參數(shù)的輸入。流程順序為判斷范圍-發(fā)送區(qū)號-發(fā)送參數(shù)名稱-發(fā)送分離的4個16進(jìn)制數(shù)據(jù)-接收結(jié)束信號3:第2個模塊包含數(shù)據(jù)接收子VI,數(shù)據(jù)發(fā)送子VI,為功能命令區(qū),用于調(diào)試。流程順序為將一些需要調(diào)試的參數(shù)通過局部變量進(jìn)行傳遞-判斷是否有按鈕按下-執(zhí)行對應(yīng)的按鈕的模塊-接收結(jié)束信號。若為非復(fù)位按鈕按下,將其他未按下的按鈕改變器屬性的值將其改為禁用狀態(tài)。4:第3個模塊包含數(shù)據(jù)發(fā)送子VI,數(shù)據(jù)接收子VI,為各個噴油器流量采集區(qū),用于采集各個各個噴油器的流量并在圖形上形象的顯示。流程順序為發(fā)送區(qū)號-接
37、收8個流量數(shù)據(jù)-接收結(jié)束標(biāo)志-通過擬合曲線求出無效噴油時間,靜態(tài)噴射率-在圖形上直觀的表示流量數(shù)據(jù)。5:第4個模塊為實時數(shù)據(jù)模塊,用于讀取命令運行時的參數(shù)標(biāo)志,并實時的采集噴油器的位置,噴油脈寬實時數(shù)據(jù)。流程順序為發(fā)送區(qū)號-讀取命令運行的參數(shù)標(biāo)志并判斷-若運行結(jié)束,運行按鈕改為啟用狀態(tài)-接收實時數(shù)據(jù)-接收結(jié)束標(biāo)志。圖4-1 上位機軟件整體流程圖圖4-1 上位機軟件整體流程圖圖4-2 軟件界面4.2上位機軟件界面設(shè)計圖4-2 軟件界面 根據(jù)流程圖的思路,將界面分為3個區(qū),將實時數(shù)據(jù)上傳區(qū)和命令參數(shù)控制區(qū)放置到一個區(qū),便于管理和整體界面的布局。 在10H區(qū)參數(shù)輸入?yún)^(qū)中,設(shè)置每個參數(shù)對應(yīng)的確定按鈕,
38、在未運行的時候為紅色,按下后顏色變?yōu)榫G色便于和其它按鈕識別。 在20H區(qū)命令控制區(qū),40H區(qū)實時數(shù)據(jù)上傳區(qū)。自動測量,單點測量,參數(shù)調(diào)試對應(yīng)的按鈕,每按下一個,都將其余兩個禁用,當(dāng)對應(yīng)的程序運行完畢后將其解禁。以便區(qū)分各個命令,防止運行噴油器運行的時候發(fā)生混亂。復(fù)位按鈕和其他的三個按鈕相互獨立,任何時候都可以將噴油器進(jìn)行復(fù)位處理。 在30H區(qū)噴油流量上傳區(qū),將傳感器采集到的8個位置的噴油量顯示到對應(yīng)的數(shù)據(jù)框內(nèi),并這組數(shù)據(jù)進(jìn)行擬合,以噴射時間為橫坐標(biāo),以噴射量為縱坐標(biāo),表示到坐標(biāo)圖上,再根據(jù)坐標(biāo)圖計算出無效噴射時間,靜態(tài)噴射率等參數(shù)。另外一個坐標(biāo)圖,以噴油位置為橫坐標(biāo),以噴油量為縱坐標(biāo),利用液柱
39、的方式形象的表示在界面上。4.3 Labview串口接收發(fā)送模塊設(shè)計 在發(fā)送和接收模塊中采用的雙向傳輸,雙向反饋。以上位機為主,無論是數(shù)據(jù)的發(fā)送還是傳輸都是以上位機為主,都是有上位機挑起發(fā)送的。發(fā)送數(shù)據(jù)成功后下位機向上位機反饋01H,不成功反饋0FH,數(shù)據(jù)重新發(fā)送。接收數(shù)據(jù)時,上位機首先向下位機發(fā)送0FFH標(biāo)志字符,下位機接到標(biāo)志字符后,發(fā)送需要發(fā)送的數(shù)據(jù),上位機接收到后,經(jīng)過奇偶校驗,若正確向下位機發(fā)送01H,若錯誤向下位機發(fā)送0FH,下位機重新發(fā)送。一、上位機發(fā)送模塊設(shè)計圖4-3 發(fā)送模塊流程圖圖4-3 發(fā)送模塊流程圖 在整個發(fā)送的流程中,除了用到基本的發(fā)送接收VISA函數(shù)之外,還用到了字
40、符串轉(zhuǎn)化為無符號字節(jié)數(shù)組函數(shù),其主要的功能是將從下位機讀取的字符串?dāng)?shù)據(jù)轉(zhuǎn)化為10進(jìn)制數(shù)據(jù),進(jìn)行判斷下位機所反饋的數(shù)據(jù)是不是01,如果是說明數(shù)據(jù)為正確的,如果錯誤重新發(fā)送。在整個流程中采用的是do-while循環(huán),直到數(shù)據(jù)發(fā)送正確。發(fā)送模塊的入口為一個字符串輸入框,此字符串的輸入框的屬性為16顯示,發(fā)送過程中發(fā)送的是16進(jìn)制數(shù),而不是字符串所對應(yīng)的ASCII碼值。發(fā)送VI的程序如圖6所示:圖4-4 數(shù)據(jù)發(fā)送子VI圖4-4 數(shù)據(jù)發(fā)送子VI圖4-5 上位機器接收模塊流程圖二、上位機接收模塊設(shè)計圖4-5 上位機器接收模塊流程圖整個程序流程為一個do-while循環(huán),如果接收錯誤繼續(xù)接收,如果數(shù)據(jù)正確接
41、收跳出循環(huán)。在接收模塊中,下位機發(fā)送的是2個數(shù)據(jù),第一個數(shù)據(jù)為要所要接收的數(shù)據(jù),第二個數(shù)據(jù)為所要接收數(shù)據(jù)的奇偶標(biāo)志,Labview中無法像單片機那樣對串口的底層進(jìn)行操作,無法通過讀取通過單片機所發(fā)送的TB8數(shù)據(jù)位,即奇偶標(biāo)志位。所以下位機發(fā)送的第2個數(shù)據(jù)的最低位為數(shù)據(jù)的奇偶標(biāo)志位,上位機通過比較接收數(shù)據(jù)的奇偶標(biāo)志,進(jìn)行判斷數(shù)據(jù)是否正確,如果正確回發(fā)01H,如果錯誤回發(fā)0FH,重新接收。圖4-6 接收數(shù)據(jù)子VI 接收數(shù)據(jù)的VI程序如圖8所示:圖4-6 接收數(shù)據(jù)子VI4.4軟件子VI模塊設(shè)計 在整體的軟件設(shè)計過程中,使用的模塊化的設(shè)計思路,將一些經(jīng)常用的模塊,設(shè)計成子VI,設(shè)計出口參數(shù)和入口參數(shù),
42、便于調(diào)用,從而使整體程序更加簡潔易懂,增強了整體程序的可移植性,使程序更加可靠。 在整體的軟件設(shè)計中含有,發(fā)送子VI,接收子VI,奇偶標(biāo)志生成子VI,字符串轉(zhuǎn)化16進(jìn)制子VI,握手模塊子VI,數(shù)據(jù)范圍判讀子VI,數(shù)據(jù)四位分離子VI,下面將詳細(xì)的介紹各個模塊的功能和流程。3.4.1握手模塊設(shè)計 握手模塊的主要功能是檢查232通信線路是否正常。如果正常軟件界面上面的指示燈為亮,如果握手不才成功說明線路沒有連接通,或者軟件出錯,可以重新啟動軟件和單片機進(jìn)行再試,如果依然連接不成功,請檢查單片機的硬件電路是否正常。 上位機發(fā)送010101信號給下位機,如果下位機收到數(shù)據(jù)正確,反饋01H。表明線路正???/p>
43、以進(jìn)行通訊。如果下位機收到的數(shù)據(jù)錯誤,反饋0FH,表明線路不正常,彈出對話框,重啟軟件,檢查線路。在此個模塊中用到了顯示對話信息框函數(shù),如果反饋信號不正確,輸入布爾值,啟動對話框,顯示對話框的內(nèi)容,點擊確定輸出布爾值,將輸出的布爾值連接到Labview停止函數(shù)上,軟件停止運行。圖4-7 手模塊子VI流程圖下面為握手模塊子VI程序圖:圖4-7 手模塊子VI流程圖3.4.2數(shù)據(jù)范圍判斷模塊設(shè)計在10H參數(shù)輸入?yún)^(qū)共有9個參數(shù),依次為噴油脈寬時間,噴油間隔時間,噴油脈寬增量時間,打開脈沖時間,維持脈沖時間1,維持脈沖時間2,維持脈沖時間3,測量點數(shù),每次噴油總數(shù)。這9個參數(shù)對應(yīng)的都有自己的范圍,此模塊
44、的目的就是判斷所輸入的數(shù)據(jù)是否在其范圍內(nèi),若不在范圍內(nèi),顯示出對話框讓其重新輸入,如果再次輸入錯誤,軟件程序停止。重新檢查所要發(fā)送的數(shù)據(jù)。此子模塊的數(shù)據(jù)入口是,確定按鈕的布爾值,輸入的數(shù)據(jù),此參數(shù)所對應(yīng)的范圍的值。數(shù)據(jù)的出口為經(jīng)過數(shù)據(jù)范圍判斷后的數(shù)據(jù)值,以及所輸入的數(shù)據(jù)的是否符合范圍的布爾值,以便判斷數(shù)據(jù)是否需要重新循環(huán)輸入。此模塊的流程為,首先比較輸入的數(shù)據(jù)和此參數(shù)的范圍數(shù)據(jù)進(jìn)行比較,若數(shù)據(jù)小于參數(shù)范圍數(shù)據(jù),則將其輸出,如果數(shù)據(jù)大于參數(shù)的范圍數(shù)據(jù),顯示對話框信息,重新輸入,輸入后再次進(jìn)行比較,如果正確將其輸出,如果錯誤,此軟件停止。提示用戶檢查你所輸入的數(shù)據(jù)之后重新啟動軟件。此模塊通過控制所
45、要輸入數(shù)據(jù)的范圍,控制噴油器的各個參數(shù)范圍,另一方面也保護(hù)了噴油器,以防數(shù)據(jù)過大而造成噴油器的損壞。圖4-8 數(shù)據(jù)范圍判斷子VI下面為數(shù)據(jù)范圍判斷模塊子VI的程序圖:圖4-8 數(shù)據(jù)范圍判斷子VI3.4.3數(shù)據(jù)四位分離模塊設(shè)計 在10H區(qū)輸入的最大數(shù)值為四位數(shù),需將每個數(shù)據(jù)的四位分離成對應(yīng)的四個16進(jìn)制數(shù)據(jù),便于傳輸和存儲。例如:一個十進(jìn)制數(shù)據(jù)2009,經(jīng)過此模塊后分離成02H,00H,00H,09H,分別進(jìn)行傳送和存儲。 整個模塊的流程為:首先將10進(jìn)制的數(shù)據(jù)的每一位進(jìn)行分離,數(shù)據(jù)除以1000得商為千位的數(shù)據(jù),余數(shù)除以100商為百位數(shù)據(jù),余數(shù)除以10商為十位數(shù)據(jù),余數(shù)為個位數(shù)據(jù)。然后將各個數(shù)據(jù)
46、轉(zhuǎn)化為16進(jìn)制的字符串。最后調(diào)用16進(jìn)制數(shù)轉(zhuǎn)化模塊將其轉(zhuǎn)化為16進(jìn)制數(shù)據(jù)進(jìn)行發(fā)送。 在整個流程中值得注意的是16進(jìn)制字符串轉(zhuǎn)化為16進(jìn)制數(shù)據(jù)。此過程是由于在發(fā)送的過程中,若發(fā)送的字符串下位機接收的到的是對應(yīng)的ASCII碼值,而不是16進(jìn)制數(shù)據(jù),傳送就會出錯。所以必須經(jīng)過轉(zhuǎn)化才能傳送,這樣才能保證數(shù)據(jù)的正確性。 此模塊中所包含的字符串轉(zhuǎn)化為16進(jìn)制數(shù)據(jù)的模塊,在下一節(jié)中再做詳細(xì)的說明和解釋。此子VI的數(shù)據(jù)入口為1個十進(jìn)制數(shù)據(jù),出口為一個含有4個元素的16進(jìn)制數(shù)的數(shù)組。在引用是需注意數(shù)據(jù)的格式。圖4-9 數(shù)據(jù)四位分離模塊下面為數(shù)據(jù)分離模塊子VI的程序圖11:圖4-9 數(shù)據(jù)四位分離模塊3.4.4數(shù)據(jù)
47、奇偶標(biāo)志生成模塊設(shè)計 由在Labview中無法讀取底層數(shù)據(jù),既發(fā)送的數(shù)據(jù)的奇偶標(biāo)志位TB8,上位機無法讀取,所以下位機發(fā)送的時候,發(fā)送的是2個數(shù)據(jù),第一個數(shù)據(jù)為所要發(fā)送的數(shù)據(jù),第二個數(shù)據(jù)為含有奇偶標(biāo)志的數(shù)據(jù),此奇偶標(biāo)志放在數(shù)據(jù)的第0位。上位機接收到數(shù)據(jù)后利用奇偶標(biāo)志生成模塊,生成第一個數(shù)據(jù)的奇偶標(biāo)志,然后通過對比第二個數(shù)據(jù)的最后一位進(jìn)行對比,若相等此數(shù)據(jù)奇偶校驗正確,若不等此數(shù)據(jù)奇偶校驗錯誤。 通過以上的奇偶校驗可以有效的判斷接收到的數(shù)據(jù)是否正確,若錯誤向下位機發(fā)送錯誤信號,讓下位機重新發(fā)送數(shù)據(jù)。若正確發(fā)送子程序結(jié)束。 發(fā)送接收模塊采用的是偶校驗,即此數(shù)據(jù)轉(zhuǎn)化為二進(jìn)制數(shù)據(jù)后,1的個數(shù)為偶數(shù)時,
48、奇偶標(biāo)志為0,1的個數(shù)為奇數(shù)時,奇偶標(biāo)志為1。根據(jù)這個定義將數(shù)據(jù)轉(zhuǎn)化為二進(jìn)制數(shù)據(jù),然后將二進(jìn)制數(shù)的各位累加,判斷累加和是偶數(shù)還是奇數(shù),若是偶數(shù)返回0,若是奇數(shù)返回1。 此模塊用到了10進(jìn)制數(shù)轉(zhuǎn)化為布爾數(shù)組函數(shù),即將一個10進(jìn)制數(shù)轉(zhuǎn)化為一個布爾值形式的二進(jìn)制數(shù)組。另外一個是布爾值轉(zhuǎn)化為0,1值函數(shù),即將布爾值轉(zhuǎn)化為10進(jìn)制數(shù)據(jù)0或1便于計算。此模塊的的入口為一個10進(jìn)制數(shù)據(jù),出口為一個含有奇偶標(biāo)志的10進(jìn)制數(shù)據(jù)。圖4-10 奇偶標(biāo)志生成模塊下圖12為奇偶標(biāo)志生成模塊子VI程序圖:圖4-10 奇偶標(biāo)志生成模塊3.4.5字符串轉(zhuǎn)16進(jìn)制數(shù)據(jù)模塊設(shè)計在字符串輸入模塊中,字符顯示的屬性一共有四個選項分別
49、為正常顯示,/代碼顯示,密碼顯示,16進(jìn)制顯示。一個10進(jìn)制數(shù)據(jù)轉(zhuǎn)化為一個16進(jìn)制數(shù)據(jù)需要經(jīng)過兩個流程,分別為10進(jìn)制數(shù)轉(zhuǎn)化為16進(jìn)制字符串,16進(jìn)制字符串轉(zhuǎn)化為16進(jìn)制數(shù)據(jù),僅僅有16進(jìn)制數(shù)據(jù)可以準(zhǔn)確的發(fā)送。所以需要此轉(zhuǎn)化過程。此模塊所用到的函數(shù)有部分字符串輸出函數(shù),功能為返回部分字符串便于方便處理,選擇函數(shù),功能為通過一個布爾值控制輸出那個數(shù)據(jù),若為真返回t所對應(yīng)的值,若為假返回s對應(yīng)的值。字符串長度函數(shù),功能為返回一個字符串的長度,入口為一個字符串,出口為字符串的長度數(shù)據(jù)。16進(jìn)制字符串轉(zhuǎn)化為10進(jìn)制數(shù)據(jù)函數(shù),功能為將一個16進(jìn)制字符串轉(zhuǎn)化為一個10進(jìn)制數(shù)據(jù)。此模塊的入口為16進(jìn)制的字符
50、串,出口為16進(jìn)制數(shù)據(jù)。圖4-11 字符串轉(zhuǎn)化為16進(jìn)制數(shù)據(jù)下圖13為字符串轉(zhuǎn)化為16進(jìn)制數(shù)模塊圖4-11 字符串轉(zhuǎn)化為16進(jìn)制數(shù)據(jù)第五章 下位機MSC-51單片機軟件設(shè)計圖5-1下位機流程圖5.1下位機整體流程圖設(shè)計圖5-1下位機流程圖 下位機采用循環(huán)結(jié)構(gòu)進(jìn)行判斷所接收的區(qū)號,若正確,執(zhí)行相應(yīng)區(qū)號所對應(yīng)的子程序,若不正確,跳出繼續(xù)接收判斷。由于條件的限制,此程序?qū)⑺獔?zhí)行的程序指令,用P1口輸出,并用流水燈顯示出來,便于上位機的調(diào)試和測試。 在10H參數(shù)輸入?yún)^(qū),此模塊接收5個數(shù)據(jù),第1個為參數(shù)號,后四個為分離后的四個數(shù)據(jù)。5個數(shù)據(jù)依次存入7BH-7FH。然后調(diào)用參數(shù)處理子程序,將幾個數(shù)據(jù)進(jìn)行
51、讀取和處理。最后向上位機發(fā)送11H,表明此模塊單片機的處理過程結(jié)束。 在20H命令參數(shù)區(qū),一共要執(zhí)行4個指令,分別為單點測量指令,自動測量指令,參數(shù)調(diào)試指令,復(fù)位指令,單片機每執(zhí)行一條指令在P1口顯示對應(yīng)的數(shù)據(jù),便于調(diào)試。其中復(fù)位指令是和其他的3個按鍵是相互獨立的,隨時都可以進(jìn)行復(fù)位。但其它3個按鍵,當(dāng)按下其中一個按鍵的時候其它兩個按鍵為禁用狀態(tài),防止噴油器運動出現(xiàn)混亂造成機器的損壞。當(dāng)子程序運行結(jié)束后發(fā)送所對應(yīng)的結(jié)束指令,表明此模塊單片機的處理過程已經(jīng)結(jié)束。 在30H噴油器流量數(shù)據(jù)上傳區(qū),就是將所采集到的8個流量值按照順序依次發(fā)送,發(fā)送結(jié)束后向上位機發(fā)送子程序結(jié)束命令。對于數(shù)據(jù)處理等其它工作
52、都有上位機來處理。 在40H數(shù)據(jù)實時上傳區(qū),上傳的參數(shù)為噴油器實時流量值和噴油器的位置。由于此程序僅僅是為了測試上位機軟件所以噴油器實時流量值和噴油器的位置對應(yīng)的僅僅是個數(shù)據(jù)塊進(jìn)行循環(huán)發(fā)送便于測試。 下位機整體軟件程序見附錄1。5.2下位機發(fā)送接收模塊設(shè)計 下位機的發(fā)送接收模塊與上位機的發(fā)送接收模塊相對應(yīng)。數(shù)據(jù)正確標(biāo)志為01H,數(shù)據(jù)錯誤標(biāo)志為0FH,握手標(biāo)志為010101H。串口采用的是方式3,帶奇偶標(biāo)志,波特率為2400bit/s.一、下位機接收模塊設(shè)計 下位機接收模塊的流程為:首先將接收數(shù)據(jù)的寄存器R4,累加器A復(fù)位清零,等待接收結(jié)束標(biāo)志RI置位,表明數(shù)據(jù)接收完畢,然后對RI軟件清零。SB
53、UF中接收的數(shù)據(jù)放入累加器A,奇偶標(biāo)志位RB8賦給進(jìn)位標(biāo)志位C,累加器A中數(shù)據(jù)放入數(shù)據(jù)出口寄存器R4中。其次對接收的數(shù)據(jù)進(jìn)行奇偶校驗,判斷累加器的奇偶標(biāo)志位PSW.0位的狀態(tài)和從上位機發(fā)送下來的奇偶標(biāo)志位C的狀態(tài),是否相等,若不相等向上位機發(fā)送錯誤標(biāo)志0FH,程序跳轉(zhuǎn)到子程序的開始,若相等向上位機發(fā)送01H,子程序結(jié)束,跳出子程序。 此模塊的數(shù)據(jù)出口為第一組寄存器中的R4,接收完畢后將數(shù)據(jù)放入此寄存器,便于調(diào)用和讀取。下圖為下位機接收模塊流程圖:圖5-2下位機接收模塊流程圖圖5-2下位機接收模塊流程圖 此模塊的子程序及詳細(xì)說明見附錄2。二、上位機發(fā)送模塊設(shè)計 由于上位機無法讀取TB8奇偶標(biāo)志的
54、原因,發(fā)送的數(shù)據(jù)為兩個,后一個數(shù)據(jù)為含有奇偶標(biāo)志的數(shù)據(jù)。此模塊的大致流程為:首先接收上位機發(fā)送模塊開始標(biāo)志0FFH,接收到后發(fā)送模塊開始工作。累加器A復(fù)位清零,將所要發(fā)送的數(shù)據(jù)R5賦給A。累加器A的奇偶標(biāo)志位PSW.0賦給進(jìn)位標(biāo)志位C,再將進(jìn)位標(biāo)志位C賦給TB8進(jìn)行發(fā)送。等待發(fā)送結(jié)束標(biāo)志TI置位,表明發(fā)送數(shù)據(jù)結(jié)束,然后軟件將TI清零。其次將累加器清零,R5的奇偶標(biāo)志C通過左移循環(huán)放入累加器的A的最低位。然后再對累加器中的數(shù)據(jù)進(jìn)行發(fā)送。等待發(fā)送結(jié)束標(biāo)志TI置位,表明發(fā)送數(shù)據(jù)結(jié)束,然后軟件將TI清零。最后等待接收中斷標(biāo)志位RI置位,表明接收數(shù)據(jù)結(jié)束,將接收的數(shù)據(jù)放入累加器A,奇偶標(biāo)志RB8賦給C,
55、然后判斷累加器A是否為01H,如果是接收子程序結(jié)束,如果否跳轉(zhuǎn)到子程序開頭,R5數(shù)據(jù)重新發(fā)送。下圖為下位機發(fā)送模塊流程圖:圖5-3下位機發(fā)送模塊流程圖圖5-3下位機發(fā)送模塊流程圖此模塊下位機發(fā)送模塊程序的詳細(xì)說明見附錄3。第五章 結(jié)論 此設(shè)計的主要內(nèi)容為上位機Labview的設(shè)計,由于學(xué)習(xí)時間比較短,在正個軟件的設(shè)計和設(shè)計中不免有些錯誤和不當(dāng)之處,比如Labview程序流程為順序查詢的結(jié)構(gòu),這樣造成了軟件的響應(yīng)速度降低,對應(yīng)子模塊的執(zhí)行速度降低。若在軟件的基礎(chǔ)上進(jìn)行擴展會造成軟件更加復(fù)雜,響應(yīng)速度更加緩慢。這就是這個軟件的最大弊端,最好的解決方法為采用面向?qū)ο蟮氖录Y(jié)構(gòu),這樣會是這個軟件的擴展
56、性大大的提高。在這個軟件設(shè)計中最大的提高就是熟悉了整個軟件的設(shè)計流程和思路,同時也明白了程序的編寫最重要的不是程序本身,而是之前的控制模型,物理模型的建立,流程圖的編寫,有這寫做為鋪墊,程序才會更加清晰易懂,程序的邏輯之美才會在此顯現(xiàn)!參考文獻(xiàn)1 楊樂平,李海濤,肖凱,等虛擬儀器技術(shù)概念M北京:電子 電子工業(yè)出版社,2005:78,822 雷振山LabVIEW 7 Express實用技術(shù)教程M北京:中國鐵工業(yè)出版社,2003:102105 3 楊樂平,李海濤,楊磊LabVIEW 程序設(shè)計與應(yīng)用M北京: 道出版社,2004:1671704 張毅剛,等MCS-51單片機應(yīng)用設(shè)計M哈爾濱工業(yè)大學(xué)出版
57、社,19975LabVIEW User ManualMUSA:National Instnunents Corpration19986 周龍保等內(nèi)燃機學(xué)M機械工業(yè)出版社,19997 關(guān)兵,錢耀義,于秀敏電控噴油器的標(biāo)定與試驗J吉林工業(yè)大學(xué)學(xué)報,1996(4):46568 李 剛,林凌LABVIEW 易學(xué)易用的計算機圖形化編程語言北京:北京航空航天大學(xué)出版社,2001:961059 陳明,王穎,周偉基于LabVIEW 7 Express的串行口通信編程J現(xiàn)代電子技術(shù),2004(8):3435致 謝大學(xué)生活將伴隨著畢業(yè)論文的完成而結(jié)束。論文是我們的心血,我們是導(dǎo)師的心血。沒有導(dǎo)師就沒有現(xiàn)在出色的我
58、們,導(dǎo)師的教導(dǎo)和關(guān)懷陪伴我們走過了這段美好的時光,在這里,我要對我的導(dǎo)師楊老師衷心的說聲:老師辛苦了,謝謝您!楊老師知識淵博,經(jīng)驗豐富,治學(xué)嚴(yán)謹(jǐn),和藹可親而又不失嚴(yán)格。他把一個對電子世界充滿好奇、滿腔熱情的我?guī)肓诉@個廣闊的神奇的世界,使我盡情吸收知識,迅速成長為一個可以為社會做出貢獻(xiàn)的人。在整個畢業(yè)設(shè)計中楊老師一直敦促我注重基礎(chǔ),剛開始不是很理解,到最后我才深刻理解基礎(chǔ)對整個設(shè)計的重要性。 “萬里之行始于足下,千里之堤潰于蟻穴”在以后的日子里,我會用恩師的教導(dǎo)嚴(yán)格督促自己虛心學(xué)習(xí),踏實工作,不斷進(jìn)取。大學(xué)生活中,陪伴我的還有師兄弟們,感謝他們對我的幫助和鼓勵。衷心感謝李欣欣、宋孝忠、閔俊杰、
59、劉二會,希望他們前程錦繡,健康快樂!限于作者的水平和其他一些因素,文中難免有疏漏和不妥之處,敬請各位專家、學(xué)者和老師給予批評指正,以求在以后的工作中做出進(jìn)一步的改進(jìn)和提高。附 錄下位機整體程序及說明此程序用于測試上位機的功能和錯誤! R4接收的出口,R5發(fā)送的入口。ORG 0000HLJMP MAIN;主程序入口ZCC EQU 28HDCC EQU 29HCTC EQU 30H ;標(biāo)志位設(shè)置MAIN:MOV TMOD,#20H;將定時器0,1均為方式2 MOV TH1,#0F4H MOV TL1,#0F4H;定時器1的設(shè)置,2400bit/s的波特率 MOV SCON,#0D0H;串口為方式3
60、,帶奇偶校驗位 MOV PCON,#00H SETB EA SETB TR1;串口初始化程序 MOV 25H,#07H MOV 58H,#00H MOV 59H,#20H MOV 5AH,#40H MOV 5BH,#60H MOV 5CH,#80H MOV 5DH,#0A0H MOV 5EH,#0C0H MOV 5FH,#0E0H;流量的默認(rèn)值賦值 LCALL WOSHOU;調(diào)用握手模塊,檢查通信線路QHJS:LCALL JIESHOU;調(diào)用接收模塊接收區(qū)號 MOV A,R4 L1:CJNE A,#10H,L2 LCALL MK1 L2:CJNE A,#20H,L3 LCALL MK2 L3:
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘭州外語職業(yè)學(xué)院《五官醫(yī)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西科技職業(yè)學(xué)院《中國民間美術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 濟(jì)南大學(xué)《現(xiàn)代控制理論及其仿真》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南信息職業(yè)技術(shù)學(xué)院《人體形態(tài)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南工程職業(yè)技術(shù)學(xué)院《體育舞蹈摩登》2023-2024學(xué)年第一學(xué)期期末試卷
- 衡水健康科技職業(yè)學(xué)院《生物工程實訓(xùn)理論與實踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶智能工程職業(yè)學(xué)院《手繪空間快速表現(xiàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶健康職業(yè)學(xué)院《信號與系統(tǒng)理論教學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 中原科技學(xué)院《熱儲工程課程設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江汽車職業(yè)技術(shù)學(xué)院《土建工程基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024-2025學(xué)年八年級上學(xué)期1月期末物理試題(含答案)
- 2025年國新國際投資有限公司招聘筆試參考題庫含答案解析
- 制造車間用洗地機安全操作規(guī)程
- 2025河南省建筑安全員-A證考試題庫及答案
- 油氣田智能優(yōu)化設(shè)計-洞察分析
- 陜西2020-2024年中考英語五年真題匯編學(xué)生版-專題09 閱讀七選五
- 磚混結(jié)構(gòu)基礎(chǔ)加固技術(shù)方案
- MOOC 有機化學(xué)(上)-北京師范大學(xué) 中國大學(xué)慕課答案
- 五年級上冊脫式計算100題及答案
- 標(biāo)桿房企人力資源體系研究之龍湖
- 醫(yī)療設(shè)備報廢申請表
評論
0/150
提交評論