船舶柴油機論文
船舶柴油機論文題目 船用柴油機遙控系統設計 目 錄摘要1前言21船舶遙控系統設計的背景和要求1.1船舶遙控系統設計的背景1.2船舶遙控系統設計的基本要求2船舶柴油機遙控的系統設計32.1系統的結構設計3 2.2系統的主要功能設計83系統硬件電路設計123.1系統硬件結構介紹 3.2上位機電路設計14 3.2.1 電源電路設計 3.2.2 顯示電路設計3.3下位機電路設計153.3.1 LED燈顯示電路設計3.3.2 繼電器狀態(tài)檢測電路設計3.3.3 繼電器驅動電路設計3.3.4 直流電機橋式驅動電路設計3.3.5 轉速脈沖降幅電路設計4系統軟件設計 4.1 RS-485通信原理與實現 4.1.1 RS-485通信原理 4.1.2 RS-485通信的實現 4.2系統程序結構設計 4.3遙控功能程序設計4.4手動功能程序設計 4.5參數的測量與設備的控制 5系統調試與結論致謝41參考文獻42 42 船用柴油機遙控系統設計 摘 要:本柴油機遙控系統設計研究的主要內容是基于核心控制器atmega16單片機,圍繞其檢測系統、控制系統、執(zhí)行系統、報警系統四大系統進行的,其核心技術涉及到柴油機各狀態(tài)參數的檢測、控制信號的數字輸出、EIA-485通信三大問題。本設計解決了船舶柴油機的遙控問題。能檢測柴油機的主機滑油壓力、齒輪箱滑油壓力、主機轉速、主機冷卻水溫、離合器失能、齒輪箱正車掛排缸壓力、齒輪箱倒車掛排缸壓力等重要參數,確保了柴油機的運行安全。且設計采用的自識別系統和優(yōu)化技術,能保證推進裝置始終處于最佳工作狀態(tài),解決了遙控大換向時經常出現的主機悶車熄火的通病。適用于長期在長江、內河及沿海湖泊作業(yè)的中、小型船舶。關鍵詞: atmega16單片機;EIA-485通信;船舶柴油機;遙控 Abstract:This engine control system design, the main contents is based on the core controller chip around its atmega16 - and testing system, control system, implement system, alarm system, the system of four core technology involves diesel status parameters testing and control signal digital output, EIA - 485 communications three problems. The design of the Marine diesel engine control to solve problems. To detect diesel engine lub oil pressure, and the main gear box lub oil pressure and speed, main engine cooling water host, clutch incapacitation, gear box are hanged line cylinder pressure, car gearbox hang back row cylinder pressure and other important parameters, ensure the safety operation of the diesel engine. And the design and optimization technology since recognition system can ensure propulsion system are always the best working state, solved the large remote host stuffy often appear in the car stalled. Applicable in the Yangtze river, the river and long-term assignments in the coastal lakes, small ships. Keywords: Atmega16 microcontroller;EIA 485 communication;Marine diesel engine;remote 前言 現代電子技術和計算機技術的迅猛發(fā)展和普及應用,使得自動測控這個技術領域發(fā)生了革命性的變化,從而波及各行各業(yè)。在船舶的控制領域,也因而發(fā)生了翻天覆地的變化?,F代船舶幾乎都采用了高度自動化的主機遙控系統。這類系統的主要特點是,用微型計算機的軟件程序來實現主機遙控的各種邏輯和控制回路,系統的各個環(huán)節(jié)和遙控系統的操作較為復雜,而且功能也非常的完善。此外,船舶的柴油機是船舶前行的動力裝置,如何控制好該動力裝置,直接關系到船舶運行的安全和效率。船舶主機的全自動控制業(yè)已成為船舶制造的一個發(fā)展方向,遙控技術的發(fā)展即可解決這個難題。實現對柴油機各狀態(tài)參數的實時檢測,利用自動控制算法對各參數進行處理,將處理結果清晰顯示,將故障狀態(tài)實時告警,根據處理結果對操作系統發(fā)出控制指令,自動控制柴油機安全可靠運行。本設計充分考慮了現實系統的各要素性質,相互關系和規(guī)律,并進行一定的抽象,建立的可以描述該系統的邏輯關系和數學關系的理論模型,然后利用編程技術將這些模型編成微型計算機系統能夠識別的程序,以實現系統要求達到的功能。 國內船舶柴油機的遙控屬于船舶自動化技術領域,經歷了由輪機當班人員依照駕駛臺指令操作的本地控制、采用機艙集控室的集中控制、機艙無人值班船舶到屬于全自動化以節(jié)能為中心的網絡型發(fā)展的過程。由此,船舶主機遙控系統應運而生,且成立世界主要造船國家船級社的通用標準。國內外的許多同類產品的控制器都采用了PLC作為控制器,致使裝置本身的體積偏大,造價成本偏高。部分產品的通信采用了TCP/IP協議,使得網絡的結構復雜化,可靠性降低,可維護性不強。供電電源也較為單一,不能滿足不間斷電控的要求。邏輯運算能力也頗低,沒有可靠的自動控制算法作保障。因而本設計采用了atmega16單片機作為控制器,以RS-484通訊方式進行控制系統(上位機和下位機之間)數據和命令的傳遞。藉由系統里檢測系統、控制系統、執(zhí)行系統、報警系統四大模塊,實現了船舶柴油機運行參數的檢測,利用調速電機對柴油機轉速和方向進行控制,以及人機交互。達到了簡化系統結構、提高可維護性、顯示簡潔,輸入操作簡單,降低成本的目的。1 船舶遙控系統設計的背景和要求 1.1 船舶遙控系統設計的背景 目前,我國應用比較廣泛的船用主機遙控裝置,如果以控制方式進行劃分,大致可分為以下四種方式:機械式;全氣動控制式;氣電混合控制式;全電控制式。其中,機械式還可分軟軸控制式和鋼絲繩控制式,因其受控制距離的限制,主要用于近距離控制或小型船舶。全氣動控制式遙控裝置的控制原理一般采用氣動邏輯元件或氣動閥件組成氣動發(fā)訊及程序控制回路,然后通過氣動三位置氣缸控制齒輪箱換向,通過氣動膜片執(zhí)行器控制主機油門調速。因為氣動元件以氣為動力和介質而不需要電,以及氣動元件的密封性和不會產生電火花,所以氣動遙控裝置即使在失電的情況下仍可以安全駕駛,比較適合易燃防爆(如油船、液化氣船、化學品船)及環(huán)境條件比較惡劣的船舶使用。全氣動遙控裝置具有原理比較簡單易懂,適應各種易燃、易爆等惡劣環(huán)境,維修維護比較容易等特點。另外,全氣動遙控裝置使用范圍廣,執(zhí)行機構力矩大,幾乎所有國產和進口機型均可采用。氣電混合控制式遙控裝置的控制原理是采用氣動元件和電器元件結合起來,組成程序控制系統,然后通過電磁閥進行轉換,再通過氣動執(zhí)行偶控制齒輪箱轉向(如果齒輪箱為電控轉向齒輪箱則不需要轉換,直接控制)。而主機調速則一般直接采用氣動控制,不進行轉換。氣電混合控制式遙控裝置從全氣動遙控裝置的基礎上發(fā)展而來,其性能和控制原理與氣動控制原理基本相同,只是將其氣動控制轉向發(fā)令及自動程序部分改為電氣控制,然后再將電信號轉換為氣信號通過氣動執(zhí)行機構執(zhí)行。電動控制式遙控裝置從發(fā)令到程序采用電子元件和高集成電路,然后采用控制電機轉換成機械行程,控制主機和齒輪箱調速和轉向。電子遙控裝置安裝連接比以上兩種遙控裝置都簡單,可以實現更復雜的程序和功能,更適合多個控制站對主機組進行控制。當然其執(zhí)行力矩沒有以上兩種裝置大,其使用范圍有一定的局限性。電動控制式遙控裝置國內從上世紀八十年代開始研發(fā),但其早期的電動遙控裝置因安裝比較復雜,元器件性能比較差,因而性能不是很穩(wěn)定?,F在電動遙控裝置多采用先進的芯片控制技術,控制微型電機作輸出位移,然后通過軟軸和主機換向及油門把手連接,實現對主機的控制。電動遙控設計控制對象主要為國外進口或引進機型,對國內部分機型不太合適,存在油門執(zhí)行推拉力不足的缺點。但是電動控制遙控裝置無需氣源,駕駛室與機艙連接完全采用電纜連接,因而安裝簡單。但其價格相對于國產全氣動遙控與氣電混合控制式遙控來說比較高?,F今,國內外的同類產品都在向著帶有簡易傳令車鐘裝置,體積小,建議操作,直觀感強的方向發(fā)展。部分產品已經做到了只需4X1電纜即可完成整個系統(報警箱報警采集點除外),結構相對較為簡單。其供電電源多希望采用兩路電源自動切換措施,一保障供電的可靠性,設備的可靠性。以求適應惡劣環(huán)境、保證線路簡單、程序極易修改的目的。在初級邏輯運算的基礎上,希望增加數值運算、死循環(huán)調節(jié)功能,增加模擬量和PID調節(jié)模塊,提高運算的速度。因此本設計采用的控制方式為電動控制遙控方式。1.2 船舶遙控系統設計的基本要求目前國內外大型船舶的自動化程度都比較高,技術上基本采用了當前最新的計算機網絡監(jiān)控于控制技術,真正實現了無人機艙。但由于結構復雜和其初始投資較高,故在小型船舶上的推廣應用還有一定的難度。同時大多數主機遙控裝置使用自行研發(fā)的專業(yè)控制裝置,可靠性差,通用性弱。因而船舶的遙控設計要求裝置簡單,易操作,可靠性強,耗能低,抗干擾能力強,控制精確及系統的可拓展性強。結合機艙條件、調試簡單、維護簡單等因素,我們需要使船舶的遙控在設計的時候滿足下列要求:靈活性好、可調性高、通訊性強、性價比高,維護性好。過去,電氣工程師必須為每套設備配置專用的控制裝置,嚴重的限制了遙控裝置的通用性和拓展能力?,F在采用電氣控制遙控裝置,主控芯片采用高性能單片機,因而我們只需要根據不同的環(huán)境編寫不同的控制程序。如此可使得遙控裝置的靈活性得到了大大的提高,在性能拓展方面,我們只需根據實際需要添加相應的程序即可完成功能的拓展。而一旦出現故障,系統的自檢功能將指出故障的部位,便于維修人員更換模塊,使維修難度和時間降低到了最低程度。同時,亦壓縮了備件庫存。降低了成本。船舶遙控裝置設計的初期,需要做大量的調試工作,利用單片機可對所控制的功能在實驗室內進行模擬調試,大大增加了系統的調試性能,縮短了現場調試的時間和難度,減少了遙控產品的開發(fā)周期。目前,隨著船舶的大型化,其需要連接的控制設備的距離也增加了許多。要實現對主機及各設備的精確和及時控制,勢必對遙控系統的通信能力提出了很高的要求。利用單片機做控制器,可靈活的選用成熟的串口通信技術實現及時通訊。如RS-485技術便可完全滿足現代規(guī)模龐大、結構復雜、功能綜合、因素眾多的工程大系統的控制要求。 由于單片機自身數據處理、邏輯判斷能力相對都較強,且可與外部電路配合,特別是與集成電路元件配合,可大大降低遙控裝置的成本。此外,應用集成元件可降低系統的復雜度,結構變的極為簡單。若在硬件設計上采取光電隔離、濾波等技術,在軟件上利用一系列控制算法、濾波技術、自診斷等技術,既可抵消環(huán)境的干擾,又提高了設備的可靠性。船舶遙控的主要設計依據是船用中速柴油機主機遙控裝置技術規(guī)格書,內河鋼船建造規(guī)范,鋼質海船入級與建造規(guī)范,船舶與海上設施與電氣電子設備型式試驗指南。由上述規(guī)范知:在駕駛室用操縱手柄直接遙控齒輪箱按設定的程序換向和控制主機按給定的加速和減速程序調速。操縱器發(fā)送指令(正車、停車或倒車指令),若齒輪箱處于相反工作狀態(tài),則齒輪箱等待脫排,延時0.5秒后開始脫排,同時接通柴油機限速閥,延時5分鐘后脫排完成。接通相應換向閥(正車或倒車換向閥),斷開柴油機限速閥,齒輪箱開始脫排;若齒輪箱正處于脫排狀態(tài),則直接連通相應的換向閥,齒輪箱開始合拍;整個指令的完成過程時間不能超過12秒??刂破鹘邮盏郊蓖C睿瑱z測齒輪箱工作狀態(tài),若齒輪箱處于合排狀態(tài),則要求齒輪箱等待脫排,延時0.5秒后開始脫排,延時5秒后脫排完成,保持脫排狀態(tài);若齒輪箱已處于脫排狀態(tài)則保持脫排狀態(tài)。一旦實施過急脫排控制,只有確認主機狀態(tài)正常后,由機旁輸入急停指令才可以解除該狀態(tài)。系統由操縱器發(fā)出指令,直到齒輪箱到達相應指令要求的狀態(tài),整個相應過程應不超過12秒,若超過時間,控制器發(fā)出錯向報警。 2 船舶柴油機遙控裝置的系統設計 2.1 系統結構設計本設計主要有兩個大的組成部分,即上位機控制部分、下位機控制部分和RS485通信部分組成。其系統結構框圖如圖2.1。圖2.1系統結構框圖上位機控制部分和下位機控制部分都是圍繞以下四個子系統來設計實現的,即檢測系統、控制系統、執(zhí)行系統、報警系統、電源系統。檢測系統包括數字量輸入檢測、模擬量輸入檢測。模擬量輸入檢測主要完成電壓的檢測,數字量輸入檢測主要完成對外圍設備物理開關量的檢測??刂葡到y由三部分組成,智能芯片自動控制器,鍵盤模塊和顯示模塊。智能芯片控制器實現對各數字量、模擬量的數字運算與邏輯分析,并對執(zhí)行系統給出明確的指令。鍵盤模塊和顯示模塊可實現人機交互。下位機的執(zhí)行系統比較復雜,可細分為柴油機的調速系統,柴油機的轉向控制系統,報警系統的控制。報警系統分為燈光報警和聲音報警,燈光報警有兩種狀態(tài),一是常亮,二是閃爍。由于要保證微型控制器的持續(xù)可靠工作,則必須保證電源的持續(xù)、穩(wěn)定、可靠、安全的工作,因而本系統的電源系統很好的解決了這個問題。RS485通信系統完成上位機系統和下位機系統的數據傳輸、命令傳遞兩個主要的功能。2.2系統的功能設計本遙控系統有的主要功能包含手動控制,遙控控制,緊急停車和越控,它們完成了船舶柴油機遙控裝置的主要功能,柴油機遙控的后備保護(車鐘遙控裝置)不在本設計的考慮范圍之列。手動控制需要在上位機和下位機同時切換到手動操作,且經確認一致后操作才有效。該功能包含四個操作:分別為完車、備車、停車和消音操作。完車、備車、停車操作在單方面發(fā)生時,系統會聲音報警和燈光閃爍報警,在上位機和下位機的操作取得一致時,聲音報警解除,燈光閃爍報警改為常亮提示。當進行消音操作后,聲音報警也可單方面解除,燈光閃爍報警也變?yōu)槌A撂崾?。遙控控制,當上位機手柄動作時,上位機控制芯片檢測手柄的動作狀態(tài),做出順車、停車、倒車的判斷,把命令發(fā)送到下位機,下位機根據收到的命令控調速直流電機和順車、倒車電磁閥動作。下位機檢測調速直流電機的動作狀態(tài)和順車、倒車電磁繼電器的狀態(tài),判斷順車、倒車動作是否準確,并判斷是否有錯向發(fā)生。下位機還將對柴油機的轉速進行檢測,并根據轉速作出是否會發(fā)生共振、是否超速,若檢測的轉速可能引起共振,下位機將向上位機發(fā)出轉速禁區(qū)的報警信號。若檢測的轉速超出預置的轉速,將自動調用減速控制程序以保證柴油機在正常的轉速區(qū)間工作。當系統處于遙控控制狀態(tài)時,下位機將自動檢測外部設備的工作狀態(tài),如主機水溫、主機油壓、齒輪箱油溫,齒輪箱油壓、離合器壓力。上述的報警動作將在故障排除或者有消音操作時解除。下位機對檢測到得這些參數進行智能分析,若上述參數異常,下位機將作聲音報警和燈光閃爍報警,并實時將上述故障點通過MAX485發(fā)送到上位機,由上位機控制進行聲音報警和燈光閃爍報警。越控控制功能主要是針對輕微故障和緊急情況而設置的操作。在遙控控制正常工作時,一旦發(fā)生輕微的外圍設備故障或遙控程序故障時,進行越控操作能夠使柴油機的工作狀態(tài)恢復正常,屏蔽掉對外圍設備故障狀態(tài)的處理。該操作只能在上位機進行,下位機無此操作。在進行越控操作時,上位機將進行聲音報警和燈光閃爍報警,整個報警過程可由動作完成或消音操作解除。這是系統的一種自我修復能力的體現。這從很大程度上加強了整個遙控裝置的可靠性,同時也對緊急事件的處理能力有了極大的提高。緊急停車功能主要是為了應對緊急情況。當船舶柴油機主機需要立即停車時,由遙控裝置控制柴油機按一定得操作規(guī)范智能停車。不論是上位機還是下位機,都可單方面的進行緊急停車的操作,無須驗證上位機和下位機的該操作是否同步有效。但在進行該操作時,會發(fā)出聲音報警和燈光閃爍報警信號,且報警信號須傳送到另一方的控制芯片,作出相應的報警動作。該報警信號在停車操作完成或有消音操作時解除。由于緊急停車操作在手動控制和遙控控制時都有效,無須切換到后備保護(車鐘操作控制),很大程度上保證了船舶運行的安全性。3 系統硬件電路設計3.1硬件結構設計整個遙控系統由上位機控制部分、通信模塊和下位機控制部分組成,其系統硬件結構圖如圖3.1所示。圖3.1系統硬件結構圖上位機控制部分由A/D采樣模塊、顯示模塊、按鍵模塊、報警模塊組成。下位機控制部分由A/D采樣模塊、轉速檢測模塊、顯示模塊、按鍵模塊、報警模塊、繼電器工作狀態(tài)檢測模塊、電機調速模塊組成。按鍵輸入模塊、報警模塊比較簡單,將不做詳細介紹。顯示模塊含LED燈顯示電路、數碼管顯示電路。報警模塊指蜂鳴器的報警電路。A/D采樣模塊是指對電壓的檢測電路。按鍵輸入模塊是指按鍵的檢測電路。轉速檢測模塊是指柴油機的檢測電路。繼電器檢測模塊是指各繼電器開關量的輸入檢測電路。3.2上位機電路設計3.2.1 電源電路設計電源電路設計包括電源自動切換設計、降壓穩(wěn)壓電路設計和失電檢測設計。由于本系統屬于電動式遙控控制裝置,因此必須保證電源的可靠性、只需性,可靠性,否則,一旦出現電源故障,整個控制裝置將不能工作,勢必對船舶的正常運行造成極大的危害。為此,在上位機和下位機的硬件電路設計時,都對電源電路做了專門的設計,既有供電的自動切換,也有降壓穩(wěn)壓電路設計,還有失電的檢測??蓪崿F交流電源發(fā)生故障時,后備電源(蓄電池電源)自動切換。工作原理為:當交流電源出現故障時,24V蓄電池將自動投入電路,向系統提供穩(wěn)定的24V電源。圖中的整流二極管可以使蓄電池電源的電流流向控制系統。穩(wěn)壓二極管可以防止交流電源過來的電流破壞蓄電池。 圖3.2.1降壓穩(wěn)壓電路所示降壓穩(wěn)壓電路如圖3.2.1所示。其功能為將24V電壓降到穩(wěn)定的5V電壓。由于系統中的集成芯片的工作電壓都是5V,故要對24V電壓進行降壓穩(wěn)壓處理。圖中穩(wěn)壓芯片采用LM2575,LM2575系列開關穩(wěn)壓集成電路是美國國家半導體公司生產的1A集成穩(wěn)壓電路,它內部集成了一個固定的振蕩器,只須極少外圍器件便可構成一種高效的穩(wěn)壓電路,可大大減小散熱片的體積,而在大多數情況下不需散熱片;內部有完善的保護電路,包括電流限制及熱關斷電路等;芯片可提供外部控制引腳。是傳統三端式穩(wěn)壓集成電路的理想替代產品。最大輸出電流為1A,最大輸入電壓63V。輸出電壓:3.3V、5V、12V、ADJ(可調),震蕩頻率54KHz,最大穩(wěn)壓誤差4%;轉換效率75%88%(不同的電壓輸出效率不同)。失電檢測電路如圖3.2.3所示。其功能是檢測外部電源的工作狀態(tài),當外部電源不故障時,將故障信號通過單片機報警。圖中電源代表交流電源輸入,OFF輸出到單片機的PB5。當交流電源供電正常,三極管關斷,單片機的PB5腳檢測到低電平。當交流電源故障,三極管開通,OFF輸出高電平,單片機即可檢測到高電平,判斷為失電,然后報警。圖3.2.3失電檢測電路3.2.2 數碼管顯示電路本設計的顯示功能由兩部分完成,一是數碼管顯示,二是LED燈顯示。數碼管顯示主要用來顯示轉速,LED燈則是用來顯示各操作的狀態(tài)和外圍設備的狀態(tài)。LED的顯示分為閃爍和常亮兩種,用來進行燈光報警。圖3.2.4數碼管顯示電路數碼管的顯示電路如圖3.2.4所示。數碼管主要用來顯示轉速。數碼管采用共陽7段數碼管,顯示驅動芯片采用74LS164。單片機采用Timer2定時器定時20mS,將所要顯示的數據送出后就不再管,直到下一次顯示數據需要更新時,即下一個20mS定時到,再傳送一次新數據,該顯示方式顯示數據穩(wěn)定,占用很少的CPU時間。若采用動態(tài)顯示,則需要CPU時刻對顯示器件進行數據刷新,顯示數據有閃爍感,占用的CPU時間多。圖中還采用了一個NPN三極管,利用PWM控制數碼管顯示的亮度,四級調節(jié)。改變PWM信號的占空比,即改變了電壓的有效值,因而可實現對數碼管顯示亮度的調節(jié)。圖中的DATA端口用于單片機向移位寄存器送數據,SCK端口用于單片機為移位寄存器移位提供時鐘信號。該顯示的驅動程序如下:void display(uchar *str) uchar i,j,tmp; for(i=0;i<4;i+) tmp=led_7*str+; for(j=0;j<8;j+) SCK=0; DAT=tmp&0x01; SCK=1; tmp>>=1; Led_7數組中存放數碼管顯示需要的段碼,0到9十個數字的段碼為0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09。tr數組用于存放需要顯示的數據,該顯示數據根據轉速檢測的結果計算得出。上面驅動程序執(zhí)行時每次送8位數據,連續(xù)送4次,即可實現四位轉速的顯示。LED燈(即報警燈、指示燈)的顯示電路如圖3.2.5所示。LED燈主要用來顯示特命令的操作以及檢測各繼電器的狀態(tài)。顯示驅動芯片采用MM74C373,該芯片是并入并出芯片,芯片的D1D8引腳分別連接到單片機的PC口的PC0PC7。每片顯示驅動芯片采用MM74C373有一個使能端LE,當該引腳為高電平時,芯片被選中,芯片才能有效工作。使用結束,需要對LE清0,關閉驅動芯片,以防干擾。該顯示芯片可以直接操作到位,即對每個燈實現直接的控制。所有的LED燈的電源端都是接的NPN型三極管2N3906。三極管的基極電壓由單片機的PWM信號提供,單片機可通過改變占空比實現對LED燈發(fā)光亮度的調節(jié)。圖3.2.5 LED燈顯示電路3.3下位機電路設計 下位機的轉速顯示與上位機的轉速顯示電路相同,只是少了一個調節(jié)光亮強度的功能,即少了三極管部分。下位機的電源電路與上位機也是一致的,下位機僅僅少了一個失電檢測的功能部分。3.3.1 LED燈顯示電路下位機的LED顯示電路與上位機不同,采用的顯示驅動芯片為74LS595。其電路原理圖如圖3.3.1所示。圖3.3.1下位機LED顯示驅動電路該電路也被用來顯示特命令的操作以及檢測各繼電器的狀態(tài)。74ls595的數據端:QAQH:八位并行輸出端,可以直接控制數碼管的8個段,在該顯示電路中,由每一位去控制各個LED燈。QH:級聯輸出端。用來連接下一個74LS595的數據輸入端SI。SI:串行數據輸入端。74LS595的控制端說明:(10腳):低電平時將移位寄存器的數據清零。本電路中直接與VCC相連。SRCLK(11腳):上升沿時數據寄存器的數據移位。QAQBQCQH;下降沿移位寄存器數據不變。(脈沖寬度:5V時,大于20納秒。)RCLK(12腳)上升沿時移位寄存器的數據進入數據存儲寄存器,下降沿存儲寄存器數據不變。先給RCLK低電平,當移位結束后,在RCK端產生一個正脈沖,更新數據。(13腳):高電平時禁止輸出(高阻態(tài))。電路中直接與地相連。74164和74595功能相仿,都是8位串行輸入轉并行輸出移位寄存器。74164的驅動電流(25mA)比74595(35mA)的要小,14腳封裝,體積也小一些。74164和74595功能相仿,都是8位串行輸入轉并行輸出移位寄存器。74164的驅動電流(25mA)比74595(35mA)的要小,14腳封裝,體積也小一些。74595的主要優(yōu)點是具有數據存儲寄存器,在移位的過程中,輸出端的數據可以保持不變。這在串行速度慢的場合很有用處,數碼管沒有閃爍感。與164只有數據清零端相比,595還多有輸出端時能/禁止控制端,可以使輸出為高阻態(tài)。 該顯示電路的驅動程序如下:str =0x00,0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F,0xff,0xbe用于存放需要顯示的LED燈段位碼。void led_display(uchar *str) uchar i=0,j=0; for(i=0;i<2;i+) OutByte=*str+; /再輸出段碼 for(j=0;j<8;j+) SLclk=0; Bout=Bit_Out; OutByte>>=1; SLclk=1; /位同步脈沖輸出 Sclk=0; Sclk=1; /一個鎖存脈沖輸出 3.3.2繼電器狀態(tài)檢測電路 繼電器狀態(tài)檢測電路主要用來檢測柴油機的主機滑油壓力、齒輪箱滑油壓力、主機轉速、主機冷卻水溫、離合器失能、齒輪箱正車掛排缸壓力、齒輪箱倒車掛排缸壓力等重要參數和遙控/手動、緊急停車按鍵狀態(tài)。檢測電路電路如圖3.3.2所示。由于系統需要測量的外部邏輯數據(開關量)比較多,而單片機的32個I/O口不夠用,必須進行端口的擴展,以測量外部的開關信號。圖中的RP2為2K的排阻,起限流作用。D30D36為穩(wěn)壓二極管,防止外部設備的電壓對芯片造成破壞。74LS165是并行輸入,串行輸出移位寄存器。其引腳A、B、C、D、E、F、G、H為并行輸入端。QH為串行輸出端。CLOCK:時鐘輸入端。CLOCK INH:時鐘禁止端。當時鐘禁止端為低電平時,允許時鐘輸入,本電路直接與地相連。S/L:移位與置位控制端。:擴展多個74LS165首尾連接端。本電路沒有用到此功能,故不作考慮。圖3.3.2 單片機端口擴展電路該擴展電路的驅動程序如下:程序返回值read_temp用于存放單片機讀到的外部開關信號。uchar read_data(void) uchar i; DATA= 0; / 鎖存八位數據 DATA= 1; for(i=0;i<8;i+) read_temp<<=1; / 左移一位 RCLK=0; if(DATAIN=1) read_temp|=0x01; RCLK=1; return read_temp;3.3.3 繼電器驅動電路繼電器驅動電路主要用來驅動電磁繼電器控制柴油機的正轉或反轉,以及直流調速電機的驅動電流的放大。其驅動電路原理圖如圖3.3.3所示。圖3.3.3 2803驅動電路原理圖由于單片機的I/O口的驅動電流比較小,只有20mA,不能直接驅動直流電機和電磁繼電器,故需要做一個專門的驅動電路,以放大單片機I/O口的輸出電流,達到能夠驅動達林頓管和電磁繼電器的目的。設計中采用的驅動芯片為ULN2803,使得輸出電流大于200mA。圖中的限流電阻RP1采用5K的排阻。IN8IN1分別連接到單片機PC口的PC0PC7。ULN2803它的內部結構是達林頓管陣列,在芯片內部做了一個消線圈反電動勢的二極管。內部的輸入輸出是一個反相器,實際上相當于一個三極管,當輸入高電平時,輸出是低電平;當輸入低電平時,輸出高電平。如圖3.3.4為電磁繼電器的驅動電路。當OUT5OUT8輸入低電平時,對應的電磁繼電器吸合,其輸出(C7、C9、C14、C16)即可接通到24V的直流電源上,為電磁閥和報警器提供電源。OUT5OUT8受單片機控制,其電流鏡ULN2803放大之后,電平與單片機的輸出相反。圖3.3.4電磁繼電器的連接圖3.3.4 直流電機橋式驅動電路 直流電機橋式驅動電路主要是控制直流調速電機的轉向,以實現對柴油機加速和減速的控制。驅動電路電路圖如圖3.3.5所示:圖3.3.5直流電機驅動電路柴油機的調速是通過直流電機的位移量改變的。因此直流電機的功率較大,其工作電流大,電壓也較大,為24V。為了保護系統電路和加強電機驅動的穩(wěn)定性和可靠性,利用橋式電路又做了一個驅動電路。當圖中OUT1為低電平,OUT4為高電平時,三極管Q1開通,和三極管Q4閉合時,電機電源滿足工作條件,可正轉,實現柴油機的加速;同時必須使得OUT2為高電平,OUT3為低電平,三極管Q2關閉,三極管Q3開通,以減小漏電流對電機運行控制的干擾,及提高電機供電的可靠性。同理,要使電機反轉,實現柴油機的減速操作,只需要進行相反的操作即可。若要停止電機則需要使Q1、Q2同時關斷。3.3.5 轉速脈沖降幅電路 轉速脈沖降幅電路的功能是將傳感器24V的脈沖信號轉化成5V的脈沖信號,以及對脈沖信號整波,使脈沖上升沿和下降沿更陡。該降幅電路原理圖如圖3.3.6所示。圖3.3.6轉速脈沖降幅電路原理圖柴油機的轉速經電磁傳感器檢測、變換之后,輸出的是0V和24V的TTL信號,而單片機的允許電壓最大只有5V,因此需要對轉速脈沖進行降幅處理,使其轉化為0V和5V的TTL信號。該降幅電路圖采用了比較器工作的原理,當輸入電壓大于比較器設定的參考電壓時,比較器輸出高電平5V,當輸入電壓低于設定的參考電壓時,比較器輸出0V,這樣即實現了對轉速脈沖的幅值變換,還對轉速脈沖可以起到整波的效果。原理圖中的比較器選用的是LM339。6號輸入端起到了門限電壓的作用,經兩個電阻分壓之后,門限電壓約為2.5V,7號輸入端輸入轉速脈沖,圖中D21限流二極管防止了輸入轉速脈沖對門限電壓的干擾。4系統軟件設計4.1 RS-485通信4.1.1 RS-485通信原理串行通訊標準RS-485,是由電子工業(yè)協會(EIA)制訂并發(fā)布的。標準只對接口的電氣特性做出規(guī)定,而不涉及接插件、電纜或協議,在此基礎上用戶可以建立自己的高層通信協議。RS-485通信的數據信號采用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為A,另一線定義為B。通常情況下,發(fā)送驅動器A、B之間的正電平在+2+6V,是一個邏輯狀態(tài),負電平在-2V6V,是另一個邏輯狀態(tài)。另有一個信號地C,在RS-485中還有一個“使能”端?!笆鼓堋倍耸怯糜诳刂瓢l(fā)送驅動器與傳輸線的切斷與連接。當“使能”端起作用時,發(fā)送驅動器處于高阻狀態(tài),稱作“第三態(tài)”,即它是有別于邏輯“1”與“0”的第三態(tài)。 RS-485標準,具有多點、雙向通信能力,即允許多個發(fā)送器連接到同一條總線上,同時增加了發(fā)送器的驅動能力和沖突保護特性,擴展了總線共模范圍,后命名為TIA/EIA-485-A標準。RS-485可以采用二線與四線方式,二線制可實現真正的多點雙向通信。RS-485采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力。加上總線收發(fā)器具有高靈敏度,能檢測低至200mV的電壓,故傳輸信號能在千米以外得到恢復。 RS-485采用半雙工工作方式,任何時候只能有一點處于發(fā)送狀態(tài),因此,發(fā)送電路須由使能信號加以控制。RS-485用于多點互連時非常方便,可以省掉許多信號線。應用RS-485 可以聯網構成分布式系統,其允許最多并聯32臺驅動器和32臺接收器。RS-485的共模輸出電壓在-7V至+12V之間。RS-485的最大傳輸距離約為1219米,最大傳輸速率為10Mbps。平衡雙絞線的長度與傳輸速率成反比,在100Kbps速率以下,才可能使用規(guī)定最長的電纜長度。只有在很短的距離下才能獲得最高速率傳輸。一般100米長雙絞線最大傳輸速率僅為1Mbps。4.1.2 MAX485的結構和性能MAX485接口芯片是Maxim公司的一種RS485芯片。采用單一電源+5V工作,額定電流為300A,采用半雙工通訊方式。它完成將TTL電平轉換為RS485電平的功能。MAX485芯片的結構和引腳都非常簡單,內部含有一個驅動器和接收器。RO和DI端分別為接收器的輸出和驅動器的輸入端,與單片機連接時只需分別與單片機的RXD和TXD相連即可;/RE和DE端分別為接收和發(fā)送的使能端,當/RE為邏輯0時,器件處于接收狀態(tài);當DE為邏輯1時,器件處于發(fā)送狀態(tài),因為MAX485工作在半雙工狀態(tài),所以只需用單片機的一個管腳控制這兩個引腳即可;A端和B端分別為接收和發(fā)送的差分信號端,當A引腳的電平高于B時,代表發(fā)送的數據為1;當A的電平低于B端時,代表發(fā)送的數據為0。在與單片機連接時接線非常簡單。只需要一個信號控制MAX485的接收和發(fā)送即可。同時將A和B端之間加匹配電阻,一般可選100的電阻。4.1.3 RS-485通信的實現MAX485在實現RS-485通信時采用如圖4.1所示的電路連接。圖4.1 MAX485的點對點RS-485通信連接圖圖4.1是單片機點對點的RS-485通信連接,MAX485與單片機的連接關系為:MAX485的1號腳(RO)接單片機的14號腳RXD,單片機接收MAX485傳輸的數據。MAX485的4號腳(DI)接單片機的15號腳(TXD),單片機向MAX485傳送數據,當TXD上的低電平強制輸出A為低電平,而輸出B為高電平。同理,TXD上的高電平強制輸出A為高電平,而輸出B為低電平。MAX485的2號腳()和3號腳(DE)接單片機的16號腳(PD2),當PD2為低電平時,RO有效,驅動器輸出為高阻狀態(tài),器件被用作線接收器;當PD2為高電平時,RO為高阻狀態(tài),驅動器輸出A與B有效,器件被用作線驅動器。Rt為100的匹配電阻(也稱終接電阻),接在傳輸線的兩端,增大吸收,減少信號回波反射。RS-485的通信實現用到了單片機的串口USART。上位機采用定時發(fā)送,每5mS鐘發(fā)送一次數據,接收采用usart中斷接收。下位機不主動發(fā)送數據,接收采用usart中斷接收,在每次接收完后,并進行簡單的數據提取處理,處理完成后立即向上位機發(fā)送數據。上位機通信數據幀長度定義為12個字節(jié)。往下位機發(fā)送的數據幀包括:下位機的LED顯示數據s_led0,s_led1;下位機要接收的AD值s_ad_dat0,s_ad_dat1;手動/遙控命令s_shoudong默認為0,代表遙控狀態(tài);按鍵值s_key_value默認為,代表無按鍵操作,1,2,3,4分別代表完、備、停車和緊急停車命令。接收的下位機的數據幀包括:下位機測的的轉速led_su0,led_su1,led_su2,led_su3;下位機傳上來的LED顯示數據r_led0,r_led1,r_led2;手動/遙控命令shoudong默認為,代表遙控狀態(tài);下位機的按鍵值r_key_valuve,初始為代表無按鍵操作,1,2,3,4分別代表完、備、停車和緊急停車命令;遙控是順、倒、停車的閃爍控制shanshuo_flag=0,默認常亮。下位機通信數據幀長度定義為12個字節(jié)。往上位機位機發(fā)送的數據幀包括:下位機測的的轉速led_su0,led_su1,led_su2,led_su3;上位機的LED需要顯示的數據s_led0,s_led1,s_led2;手動/遙控命令s_shoudong默認為,代表遙控狀態(tài);下位機的按鍵值s_key_valuve,初始為代表無按鍵操作,1,2,3,4分別代表完、備、停車和緊急停車命令;遙控是順、倒、停車的閃爍控制shanshuo_flag=0,默認常亮。接收的上位機數據幀包括:上位機測得得AD值ad_dat0,ad_dat1;手動/遙控命令r_shoudong默認為0,代表遙控狀態(tài);按鍵值r_key_value默認為,代表無按鍵操作,1,2,3,4分別代表完、備、停車和緊急停車命令。開始標志位同一定義為“”,結束標志位同一定義為“$”。Rx為已接收字節(jié)數,uartStart為開始接受標志,初始化為0,finish為接受結束標志,初始化為0。通信速率為9600bps,波特率寄存器的初始化可以由系統軟件得到。正常異步模式的計算公式:通信的校驗方式采用和校驗,即對發(fā)送的數據進行求和,對接收的數據進行求和,將兩個和值進行比較,若二者一致,則可認為通信數據正常,否則拋棄不正常數據。下位機的通信函數包含上位機通信函數的所有功能,故只給出下位機的數據發(fā)送函數、中斷接收函數、接受數據處理函數分別如下所示:void send_485() uchar i; E485=1; /485發(fā)送使能 UCSRB=0x08; output0=0x40; /"" output1=led_su0;/向上位機發(fā)送數碼管轉速顯示數據,此位對應最高位 output2=led_su1;/向上位機發(fā)送數碼管轉速顯示數據,此位對應第二位 output3=led_su2;/向上位機發(fā)送數碼管轉速顯示數據,此位對應第三位 output4=led_su3;/向上位機發(fā)送數碼管轉速顯示數據,此位對應最低位 output5=s_led0; output6=s_led1; output7=s_led2; output8=s_shoudong; output9=s_key_value; output10=shanshuo_flag; output11=0x24; /"$" for(i=0;i<12;i+) UDR=outputi; while(!(UCSRA&0x40); delay_ms(1); UCSRB=0x90; delay_ms(1); E485=0; /485接收使能interrupt USART_RXC void usart_rx_isr(void) char tmp; tmp=UDR; if(tmp=0x40) /"" rx=0; uartStart=1; else if(tmp=0x24) /"$" uartStart=0; finish=1; else if(uartStart=1) bufferrx=tmp; rx+; void receive() if(finish=1) r_key_value=buffer5; /接收上位機緊急停車、完、備、停信號 r_shoudong=buffer4; /接收上位機手動/遙控信號 r_led1=buffer3; /接收上位機LED顯示數據,對應U3 r_led0=buffer2; /接收上位機LED顯示數據,對應U2 ad_da1=buffer1&0x03; /接收上位機檢測的AD數據,高兩位 ad_da0=buffer0; /接收上位機檢測的AD數據,低八位 finish=0; delay_ms(10); send_485(); ad_v=ad_da1; /取出上位機電壓的高兩位數據 ad_v<<=8; ad_v|=ad_da0;/取出上位機電壓的第八位,求與4.2系統程序結構設計系統由上位機和下位機兩塊智能控制芯片控制,在系統運行中,各自發(fā)揮著不同的作用,因而各自的執(zhí)行程序也不相同。上位機主程序結構流程圖如圖4.2.1所示。在沒有越控操作、緊急停車操作時,將根據手動/遙控按鍵確定需要手動還是遙控操作。若有越控操作命令或緊急停車操作命令時,執(zhí)行相應的命令。在所有的函數執(zhí)行完后,對所有的需要通信數據更新,顯示數據更新,這樣保證了通信的高效率與可靠,也保證了顯示的準確性,不會因為邏輯的復雜性而造成顯示的混亂。圖4.2.1 上位機主程序流程圖上位機若檢測到中斷請求信號,執(zhí)行中斷服務程序。上位機的中斷處理服務程序如圖4.2.2所示。4.2.2上位機中斷程序流程圖進行判斷上位機為了節(jié)省數碼管顯示占用大量的資源,利用人的視覺誤差,由Timer2定時20mS,每20mS更新一次顯示數據,這樣較在主程序里循環(huán)調用程序要節(jié)省資源。為了使程序簡練,防止反復調用通信的發(fā)送數據程序對下位機的處理產生影響和通信堵塞,由Timer2定時5mS,每5mS發(fā)送一次數據。在數據接收方面,上位機 采用了中斷接收的方式,只有在USART的接收端口RXD檢測到電平的變化時,觸發(fā)USART中斷,然后執(zhí)行USART中斷接收處理程序。在對手柄的電壓采樣的時候,程序也調用了A/D中斷處理函數。其ADC轉換過程為:選擇通道和轉換頻率啟動轉換轉換結束檢查讀取轉換數據。下位機主程序結構流程圖如圖4.2.3所示。首先檢測輸入數據,在沒有越控操作、緊急停車操作時,將根據手動/遙控按鍵確定需要手動還是遙控操作。若有越控操作命令或緊急停車操作命令時,執(zhí)行相應的命令。在所有的函數執(zhí)行完后,對所有的需要通信數據更新,顯示數據更新,這樣保證了通信的高效率與可靠,也保證了顯示的準確性,不會因為邏輯的復雜性而造成顯示的混亂。圖4.2.3下位機主程序流程圖下位機若檢測到中斷請求信號,執(zhí)行中斷服務程序。下位機的中斷處理服務程序如圖4.2.4所示。下位機在數據接收方面,也采用了中斷接收的方式,只有在USART的接圖4.2.4下位機中斷程序流程圖收端口RXD檢測到電平的變化時,觸發(fā)USART中斷,然后執(zhí)行USART中斷接收處理程序。在中斷處理結束后,即執(zhí)行向上位機發(fā)送數據的函數,這樣避免了通信過程中的通信沖突,提高了通信的效率。在對直流電機調速裝置電壓采樣的時候,程序也調用了A/D中斷處理函數。其ADC轉換過程為:選擇通道和轉換頻率啟動轉換轉換結束檢查讀取數據。唯一不同于上位機的地方是下位機采用了ICP輸入捕捉中斷,輸入信號的上升沿時Timer1內置的計數器開始計數,程序還開通了輸入捕獲噪聲抑制器,只有在輸入捕捉信號連續(xù)4次采樣都有效時,輸入捕獲標志位才置位。需要注意的是相鄰兩次捕捉操作間的間隔不得小于中斷響應時間與中斷服務程序執(zhí)行的時間之和。4.3手動功能設計 圖4.3手動程序流程圖手動控制的程序流程圖如圖4.3所示,實現了遙控裝置的完車、停車、備車的手動操作控制。上位機和下位機的手動控制程序流程圖都一樣,都是按著上述思路進行函數的調用,實現手動功能的。4.4遙控功能設計圖4.4 下位機遙控程序流程圖 上位機的遙控功能函數比較簡單,不需要對電機進行直接的智能控制。故只給出下位機的遙控功能函數,以說明系統式如何針對不同的轉速,對電機進行智能控制的。下位機的遙控控制程序流程圖如圖4.4所示。4.5 參數的測量與設備的控制4.5.1轉速的測量轉速的測量是對柴油轉速的檢測。通過電磁傳感器將轉速轉化成方波信號,然后ATmega16去對方波信號進行檢測。即將一個磁鐵固定在柴油機的轉軸上,然后使電磁傳感器探頭與轉軸保持約1cm的距離。電磁測速傳感