基于CPLD的內(nèi)燃機車邏輯控制模塊的設(shè)計
作者:王 曦 王立德 劉 彪 丁國君
本文引用地址:http://butianyuan.cn/article/201610/308494.htm0 引言
內(nèi)燃機車在實際應(yīng)用中仍占有很大的比重,比如在貨運及調(diào)車運轉(zhuǎn)方面發(fā)揮著重要的作用,且隨著科學(xué)技術(shù)的發(fā)展,對機車的可靠性,安全性及高效性提出了更高的要求。因此,基于內(nèi)燃機車的新設(shè)備的開發(fā)和研究很有必要。
目前,我國大多數(shù)內(nèi)燃機車邏輯控制電路采用繼電器有觸點控制,有觸點電器故障率高,長期使用容易導(dǎo)致動、靜觸頭接觸不良甚至不導(dǎo)通,更嚴重的是,機車運行中的強烈振動可能引起控制電路的誤動作,給行車帶來危險。此外,傳統(tǒng)有觸點控制電路接線復(fù)雜,給布線,維護和檢修帶來了很大的不便,且控制系統(tǒng)的通用性和靈活性差,當(dāng)機車的控制功能或控制過程需做修改時,必須重新布線。
本文介紹的內(nèi)燃機車邏輯控制模塊的設(shè)計,首先對內(nèi)燃機車的控制邏輯進行分析優(yōu)化,然后設(shè)計可以完全取代原有邏輯控制功能的 IP核,在此基礎(chǔ)上利用 SOC技術(shù)并結(jié)合電力電子技術(shù)取代了機車上繼電器和接觸器的輔助觸點,最大限度地簡化了傳統(tǒng)的有觸點控制電路,減少了外部連線,提高了系統(tǒng)的可靠性和設(shè)計制造的靈活性,縮短了內(nèi)燃機車設(shè)計調(diào)試的時間,實現(xiàn)了控制系統(tǒng)的通用性。 1 邏輯控制模塊的整體結(jié)構(gòu)
內(nèi)燃機車邏輯控制模塊由輸入、輸出、控制、電源這四個部分組成(如圖 1所示)。每個模塊包含兩套結(jié)構(gòu)和功能完全相同的系統(tǒng),每一套系統(tǒng)都能獨立工作。同一時間,一個邏輯控制模塊中只有一套系統(tǒng)進行工作,另一套系統(tǒng)備用,由模塊上的電源轉(zhuǎn)換開關(guān)在兩套系統(tǒng)之間進行切換。
整個系統(tǒng)包括邏輯控制模塊,司機室顯示屏,檢測儀,數(shù)據(jù)采集模塊四種節(jié)點,在實際運行中,邏輯控制模塊需要向顯示屏傳輸自身狀態(tài)等數(shù)據(jù)信息用于顯示,并且還要接收檢測儀的 定時查詢,因此它還承擔(dān)著接收和發(fā)送信息的任務(wù),所以在設(shè)計中加入了 CAN總線控制器,通過 CAN總線跟其它節(jié)點進行信息交互。
邏輯控制模塊的硬件設(shè)計
2.1 輸入與輸出電路的設(shè)計
輸入電路用于采集機車上各條控制線路的信號,因此整個輸入電路由若干路結(jié)構(gòu)相同的輸入通道組成,如圖 2所示。
輸入通道采集的信號來自內(nèi)燃機車上的 110V線路,110V的直流信號通過降壓處理后,經(jīng)過光耦隔離和施密特觸發(fā)器(74HC14)整形和濾波,生成 CPLD能夠處理的信號,然后傳輸給CPLD,為 CPLD進行邏輯判斷和控制提供相應(yīng)的線路信息。
輸出電路也由若干條結(jié)構(gòu)相同的輸出通道組成,用于驅(qū)動內(nèi)燃機車上的接觸器及控制一些用電設(shè)備(如干燥器,指示燈等)的開通和關(guān)斷。輸出通道的結(jié)構(gòu)如圖 2所示。
CPLD以原有的邏輯控制電路為基礎(chǔ),根據(jù)輸入信息進行邏輯判斷和處理后輸出各種控制信號,輸出的控制信號電壓為3.3V,不足以驅(qū)動MOSFET,因此,首先通過驅(qū)動芯片 ULN2004將控制信號放大到 7V左右,然后利用原副邊比1:3的變壓器放大到 20V左右以達到能夠驅(qū)動 MOSFET的電壓等級。該變壓器除起到信號放大作用外,還起到了保護和隔離的作用,進一步提高了整個系統(tǒng)的安全性和可靠性。CPLD輸出的控制信號經(jīng)過一系列處理后通過控制MOSFET的開斷實現(xiàn)了對機車上的接觸器及用電設(shè)備的控制。
2.2 控制電路的設(shè)計
控制電路主要由兩部分組成,一是以 CPLD為核心的機車邏輯判斷和控制部分,一是以單片機和 CAN控制器為核心的通信控制部分??刂齐娐返慕Y(jié)構(gòu)如圖 3所示。
本次設(shè)計中使用Lattice公司ispMACH4000系列的LC4512V型CPLD,ATMEL公司的 89C52單片機,采用 Philips的 CAN控制器 SJA1000及 CAN收發(fā)器PCA82C250。由于 CPLD內(nèi)部資源有限,為節(jié)省對晶振分頻所耗費的資源,采用外部 100HZ的時鐘發(fā)生器,該時鐘發(fā)生器由NE555芯片構(gòu)成,為 CPLD提供計算時間的基本時鐘,用于邏輯控制中的延時和信號濾波。CPLD電源為 5V轉(zhuǎn) 3.3V的電源芯片LM3940,為 CPLD提供穩(wěn)定的 3.3V電壓。單片機外接 5V電源。CPLD將需要傳輸?shù)男畔鬟f給單片機(MCU),再由單片機控制通信部分完成發(fā)送任務(wù)。PCA82C250是 CAN控制器和物理傳輸線路之間的接口,提供了對總線的差動接收和差動發(fā)送能力,為了增強系統(tǒng)的抗干擾能力,在 SJA1000和 PCA82C250之間使用光耦 6N137以實現(xiàn)電氣隔離,在通信控制部分使用 B0505隔離電源模塊。
2.3 系統(tǒng)電源介紹
邏輯控制模塊上分為四個電壓等級,分別是110V,12V,5V,3.3V。其中 110V為機車控制電路電壓,為邏輯控制模塊的電源模塊提供穩(wěn)定的輸入電壓;12V為驅(qū)動芯片 ULN2004提供電源;5V給單片機及外圍電路供電;3.3V給 CPLD及輸入隔離電路供電。
12V和5V是采用標準化的機車專用電源模塊將 110V電壓變換得到,該電源模塊的輸入
輸出均采用相應(yīng)的保護,提供系統(tǒng)工作所需的兩路電壓。3.3V由電源芯片 LM3940轉(zhuǎn)換得到。 邏輯控制模塊的軟件設(shè)計 邏輯控制模塊的軟件設(shè)計包括機車邏輯控制 IP核設(shè)計及 CAN通信的程序設(shè)計。
3.1 機車邏輯控制IP核設(shè)計
本系統(tǒng)采用SOC 技術(shù)設(shè)計,將信號采集,處理,控制,存儲,傳輸?shù)裙δ茉谝粔K CPLD上實現(xiàn),該系統(tǒng)實現(xiàn)的前提是機車邏輯控制 IP核的使用。機車邏輯控制 IP核采用 Verilog語言編制,使用Verilog-HDL設(shè)計,采用自頂向下的設(shè)計方法,把本系統(tǒng)分為幾個基本模塊(如圖 4所示),再將每個基本模塊劃分為下一層次的基本模塊,直到能用 PLD器件結(jié)構(gòu)相對應(yīng)的邏輯單元來實現(xiàn)。
在輸入模塊的設(shè)計中,為每一個輸入信號設(shè)置一個輸入狀態(tài)寄存器,用于存儲各輸入信號狀態(tài);并設(shè)置一個輸入緩沖區(qū)。整個輸入模塊的功能就是讀取輸入信號狀態(tài),并將其置入輸入緩沖區(qū),其工作流程如圖六所示。同樣,在輸出模塊的設(shè)計中,為每一路輸出也設(shè)置一個狀態(tài)寄存器,并設(shè)置一個輸出緩沖區(qū)。輸出子模塊的主要功能就是從輸出緩沖區(qū)中讀取輸出狀態(tài)并將其輸出。
功能模塊主要用來完成邏輯功能的實現(xiàn)。該模塊中根據(jù)機車原有的邏輯控制電路生成了各種虛擬繼電器和接觸器,執(zhí)行時首先從輸入緩沖區(qū)中讀出各輸入狀態(tài),如果有延時關(guān)系,還得從延時模塊中讀取相應(yīng)的參數(shù);然后調(diào)用各種虛擬繼電器或接觸器判斷邏輯關(guān)系的成立與否;如邏輯關(guān)系成立則將相應(yīng)的輸出狀態(tài)寄存器置“1”,否則置“0”。
延時模塊用來實現(xiàn)相應(yīng)時間繼電器功能的,當(dāng)有延時信號到來時,啟動延時模塊,首先初始化各寄存器并設(shè)置延時值,然后開始計時。如果延時信號在延時時間到后還存在,則設(shè)置延時緩沖區(qū)參數(shù);否則結(jié)束延時過程。
數(shù)據(jù)傳輸模塊實現(xiàn)CPLD和單片機之間的數(shù)據(jù)傳輸,CPLD將相應(yīng)的數(shù)據(jù)存儲在寄存器中并映射到單片機的地址空間,單片機將 CPLD作為外設(shè)進行讀寫操作。
3.2 CAN通信程序設(shè)計
內(nèi)燃機車邏輯控制模塊作為整個檢測控制模塊中的一個節(jié)點,需要同其它節(jié)點進行信息交互,交互的數(shù)據(jù)包括邏輯控制 IP核功能模塊中生成的虛擬繼電器,接觸器的狀態(tài)信息及故障信息。本設(shè)計中采用 CAN總線作為數(shù)據(jù)傳輸?shù)拿浇椤?/p>
邏輯控制模塊在三種條件下對外部發(fā)送信息。
1 沒有接收到外部請求及自身數(shù)據(jù)信息沒發(fā)生改變的前提下定時對外部發(fā)送數(shù)據(jù)。通過單片機內(nèi)的定時器實現(xiàn)。
2 當(dāng)需要傳輸?shù)臄?shù)據(jù)發(fā)生改變時,立刻對外部發(fā)送數(shù)據(jù)。單片機在每一個 While循環(huán)中查看數(shù)據(jù)的狀態(tài),如數(shù)據(jù)發(fā)生變化則調(diào)用發(fā)送函數(shù)發(fā)送數(shù)據(jù)。
3 當(dāng)接收到外部請求時,立刻對外部發(fā)送數(shù)據(jù)。在接收函數(shù)中對接收到的數(shù)據(jù)進行校驗,正確后接收,再根據(jù)定好的協(xié)議得到目標節(jié)點地址并判斷是否是請求數(shù)據(jù)發(fā)送,如果是則調(diào)用發(fā)送函數(shù)向目標節(jié)點發(fā)送數(shù)據(jù)。
CAN通信的主程序流程圖如圖 5所示。
4 邏輯控制模塊抗干擾設(shè)計
由于機車運行環(huán)境的特殊性,對邏輯控制模塊的穩(wěn)定性和抗干擾能力有更高的要求。在系統(tǒng)的輸入端加入光耦器件進行隔離,在輸出端加入變壓器進行隔離,這樣既提高了系統(tǒng)的抗干擾能力,又進一步保證了系統(tǒng)的安全。同時通過使用施密特觸發(fā)器,加入硬件濾波,能夠有效地抑制幅值較小,持續(xù)時間較長的干擾信號,對于持續(xù)時間短,幅值較大的干擾信號的處理,通過在芯片內(nèi)部用 Verilog引入濾波時鐘和軟件濾波模塊實現(xiàn)數(shù)字濾波。 5 結(jié)語
內(nèi)燃機車邏輯控制模塊利用 SOC技術(shù)實現(xiàn)了傳統(tǒng)的繼電器控制電路的可編程無觸點控制,大大減少了控制電路的機械觸點和布線,簡化了機車控制電路的設(shè)計、生產(chǎn)和調(diào)試過程,提高了控制系統(tǒng)可靠性,并且可以方便地用硬件描述語言完成各種控制功能,具有很強的靈活性和通用性。無觸點控制是內(nèi)燃機車電氣控制系統(tǒng)的發(fā)展方向。
本文作者的創(chuàng)新點:采用 SOC技術(shù),設(shè)計和利用內(nèi)燃機車邏輯控制 IP核取代了原有的有觸點控制系統(tǒng),大大提高了邏輯控制系統(tǒng)的通用性和可靠性,簡化了布線和生產(chǎn)調(diào)試過程。在通信方面,用 CAN總線取代了機車上原有的串口通信,提高了通信效率和穩(wěn)定性。
參考文獻:
[1]丁磊.CPLD在基于單片機的多入多出控制系統(tǒng)中的應(yīng)用[J].微計算機信息,2006,9-2: 172-174.
[2]金衛(wèi)民,神顯豪,鞏傳雷.基于 CAN總線的DNC遠程診斷及監(jiān)控系統(tǒng)[J].微計算機信息,2007,12-2:32-34.
[3]謝東,溫陽東.電力機車邏輯控制單元的設(shè)計[J].自動化與儀器儀表,2006,3:29-32.
[4]杜尚豐,曹曉鐘,涂津.CAN總線測控技術(shù)及其應(yīng)用.電子工業(yè)出版社,2007
[5]布朗.數(shù)字邏輯基礎(chǔ)與 Verilog設(shè)計.機械工業(yè)出版社,2007
[6]焦志新.東風(fēng) 7型內(nèi)燃機車運用與保養(yǎng).中國鐵道出版社,2004
評論