柴油機的轉速測量_第1頁
柴油機的轉速測量_第2頁
柴油機的轉速測量_第3頁
柴油機的轉速測量_第4頁
柴油機的轉速測量_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、柴油機的轉速測量關鍵詞: 單片機 轉速測量 柴油機 消息前言柴油機的轉速是一個較為重要的運行參數(shù),也有很多種用于測量轉速的儀表,如:機械軟軸式轉速表、頻率-電壓轉換式轉速表、數(shù)字式轉速表等,它們中間有的成本很高而且精度較差、有的工藝復雜而且可靠性不高。本文介紹了一種利用單片機技術制成的智能轉速表,不僅精度高、工藝簡單、線路簡潔,而且可靠性高、功能強。其不僅可以測量轉速,而且可以統(tǒng)計機器運行的累計時間,當柴油機超速時,還可發(fā)出報警信號,切斷油路,保護機器不發(fā)生飛車事故。1 測量原理在測量柴油機轉速時我們采用了電磁感應式傳感器,這種傳感器可將轉速信號轉變成一個脈沖信號輸出,而脈沖信號的頻率與柴油機

2、的轉速是一種線性的正比關系。因此對柴油機轉速的測量,實質上是對脈沖信號的頻率的測量,可以采用閘門法進行測量。2 線路設計智能轉速表的框圖如圖1所示智能轉速表主要由脈沖放大及整形電路、單片機(AT90S2313)、多路動態(tài)掃描LED顯示電路和報警信號輸出電路組成。在設計中我們采用了ATMEL的AVR系列單片機中的AT90S2313,該單片機有如下特點:(1) 片內有2K字節(jié)可在線編程(ISP編程)的FLASH存貯器。(2) 片內有128字節(jié)SRAM和128字節(jié)EEPROM存貯器。(3) 精簡指令集結構單片機,尤其內部32個寄存器全部與ALU直接連接,突破傳統(tǒng)瓶頸限制,每MHZ時鐘具有1MIPS的

3、性能。(4) 內含帶預分頻的8位和16位的定時器各一個,16位定時器還具有捕捉、比較及PWM功能。(5) 一個片內WatchDog定時器。(6) 除具有普通UART串行口外,還具有高速SPI接口。(7) AVR的輸出端口可直接驅動LED。AT90S2313的定時器0(8位)工作于定時器方式,用來產生定時閘門信號;而定時器1(16位)工作于計數(shù)器方式,對整形電路送來的脈沖信號進行計數(shù);片內的EEPROM用于保存機器運行累計時間,在斷電時可以保持數(shù)據(jù)不丟失。3 程序設計在AVR單片機的程序設計中,我們采用了ImageCraft的C語言編譯器ICCAVR,并在單片機程序設計中引入了WINDOWS系統(tǒng)

4、中消息的概念。主要程序流程圖如圖二所示。主程序 中斷服務程序定時器0以中斷方式工作,其負責采集定時器1 的計數(shù)值、對運行時間累計和發(fā)送消息。由于在儀表中對采集到的定時器1 的計數(shù)值,需要進行一些處理,如:判斷是否超過額定速度、將16位二進制數(shù)轉換成BCD碼、為動態(tài)LED顯示電路進行軟件譯碼及掃描控制等等。如果所有工作全部放在中斷程序中完成,就會導致中斷服務程序執(zhí)行時間過長。由于儀表還要完成運行時間的累計工作,盡管中斷服務程序執(zhí)行時間過長對轉速的測量不會有太大影響,但勢必會給時間累計造成過大的累積誤差,影響累計時間的精度。為了解決這個問題,我們采取了下面的方法:借鑒windows 編程的原理,在

5、單片機編程中引入消息的概念,將中斷產生的標志作為消息,而數(shù)據(jù)處理則放在消息循環(huán)中進行。在這個例子中中斷服務程序中只進行數(shù)據(jù)的采集和標志位的設置(發(fā)送消息),而將數(shù)據(jù)的處理放到運行時間要求不很精確的中斷服務程序之外的主程序循環(huán)中(消息循環(huán))。這樣一方面減少了中斷服務程序的長度,縮短了中斷服務程序執(zhí)行的時間,提高了中斷處理的實時性,另一方面又不影響數(shù)據(jù)的處理。從而很好地解決了數(shù)據(jù)采集的實時性和數(shù)據(jù)處理耗時多而影響時間累計之間的矛盾。 和PC機相比,單片機資源十分有限。因此,單片機系統(tǒng)不可能象windows系統(tǒng)那樣建立龐大的消息循環(huán)機制,將消息分發(fā)給各個程序并行處理。在基于消息的單片機編程中,采取一

6、種簡化的方式,消息可以這樣來定義:當某個事件(例如中斷)發(fā)生時,事件處理程序(例如中斷服務程序)設置相應的標志,不同的標志即代表不同的消息;而主程序所進行的消息循環(huán)就是主程序不斷地判斷這些標志,以決定啟動哪一個處理函數(shù)(即將消息發(fā)送給特定的消息處理函數(shù))。這種方法在多中斷系統(tǒng)中使用,可以明顯地提高中斷的實時性;另外,由于在中斷服務程序中不需要調用數(shù)據(jù)處理程序,也有效地防止了代碼重入帶來的問題。如下面的T0中斷服務程序,發(fā)送消息:void timer0()if (timercount=0)TCCR1B = 0x00;count=TCNT1; /采集數(shù)據(jù)second+; /運行時間累計flag=1

7、; /發(fā)送消息WDR();TCNT1H = 0x00;TCNT1L = 0x00; /清除T1TCCR1B = 0x06;timercount=20;TCNT0 = 76; /重裝T0而下面這段程序是主程序消息循環(huán)中一部分,對T0發(fā)送的消息進行檢查,如果沒有消息產生則跳過數(shù)據(jù)處理部分:if (flag=1)/檢查是否有消息產生hextobcd(count);/16位二進制數(shù)轉換成BCD碼數(shù)if (count1134) /當轉速超過1134轉/分時,輸出報警信號asm(cbi 0x12,4);elseasm (sbi 0x12,4);flag=0; /清除消息4 總結比較我們這個系列的轉速表是在

8、上一代轉速表(采用AT89C2051單片機)的基礎上改造過來的,經過比較我們認為AVR單片機有以下優(yōu)點:(1)AVR是一種功能強大、集成度較高的新型單片機。譬如在這個例子中,一片AT90S2313代替了AT89C2051、AT24C01(EEPROM)和外置WatchDog三片集成電路,從而大大地簡化了裝配工藝和流程。由于AT90S2313與AT89C2051單片機的管腳基本兼容,最終我們把前者做成為后者的增強型,在同一個轉速表上可以做成兩個版本的產品。(2)AVR支持在線編程(ISP下載),對芯片的編程可以放在整機裝配完成后進行。這樣不僅節(jié)省了購買萬用編程器的費用,而且為現(xiàn)場調試及以后的軟件升級帶來了極大的便利。(3)AVR的運行速度快、處理能力強。在這個例子中,中斷服務程序執(zhí)行時間更短了,中斷的實時性提高了,對時間累計的累積誤差也變小了。(4)AVR對采用C語言編程提供了較好的支持。當我們將原來用KEIL51寫的程序轉換成AVR的C程序時,只需要修改有關硬件操作部分和KEIL51中bit及sbit類型的數(shù)據(jù)操作,其余均不需修改。另外,在單片機的編程中引入消息的概念,一方面提高了中斷處理的實時性,另一方面也解決了中斷服務程序中代碼重入的問題。參考文

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論