I2C總線和SD卡設(shè)計的火車輪軸承溫度采集系統(tǒng)
本文介紹的火車輪軸承溫度采集系統(tǒng)運用高性能的處理器,能夠在火車運行的過程中不斷記錄溫度與時間信息,并實時地把相關(guān)信息存儲到SD卡中?;疖囕嗇S承的損壞將導(dǎo)致重大交通事故,提前預(yù)防是避免事故發(fā)生的最好辦法。現(xiàn)有的軸承溫度采集系統(tǒng)大都不能實時采集溫度信息,而且不能大量保存相關(guān)信息供人們分析。
1 系統(tǒng)設(shè)計原理
火車輪軸承溫度采集系統(tǒng)的工作原理是,各測量點通過溫度傳感器獲取軸承溫度信息,隨后通過I2C總線把這些信息轉(zhuǎn)輸給主機,主機收到后根據(jù)數(shù)據(jù)進行超溫報警等動作,同時把數(shù)據(jù)存儲在SD卡中,以便查詢。該系統(tǒng)以S3C2440A為主控制器,外部各個溫度傳感器直接掛接在I2C總線上,就可以實現(xiàn)主機對傳感器數(shù)據(jù)的采集,從而簡化了硬件電路。同時利用S3C2440處理器速度快的特點,可以實時對溫度進行采集,并且可以高速地存儲大量溫度信息。通過時鐘芯片,還可以記錄對應(yīng)時刻各測量點溫度的情況。
2 系統(tǒng)硬件設(shè)計
主控制器直接采用了Mini2440最小系統(tǒng)板。其處理器為三星S3C2440A,主頻高達400 MHz,很好地滿足了系統(tǒng)對速度的要求。在溫度測量方面,選取DS18B20數(shù)字溫度傳感器,它的精確度很好地滿足了設(shè)計需要,價格較低,大大降低了開發(fā)成本。在通信方面,選取了I2c總線連接方式。利用處理器2個I/O口,簡單方便地實現(xiàn)了數(shù)據(jù)的采集。時鐘芯片:DS1302還為系統(tǒng)提供了準確時間信息,可讓人們準確了解具體時刻各測量點的溫度信息。該部分的示意圖如圖1所示。
系統(tǒng)采用SD卡來擴展存儲器。在該系統(tǒng)中,SD卡用于存儲大量的信息,也可以很方便地將相關(guān)信息轉(zhuǎn)出。S3C2440A處理器中集成了SD卡控制器,給硬件電路的設(shè)計帶來了方便。SD卡硬件連接圖如圖2所示。
在軸承溫度采集系統(tǒng)實際工作中,電源的穩(wěn)定是相當(dāng)重要的。該系統(tǒng)需要5 V、3.3 V的工作電源。+5 V電壓經(jīng)過LM1117穩(wěn)壓后,可以得到+3.3 V的電壓,供Mini2440最小系統(tǒng)板與SD卡電路使用,+5 V的電壓由溫度傳感器、時鐘芯片等器件使用。電源模塊硬件圖如圖3所示。
3 系統(tǒng)軟件設(shè)計
設(shè)計的主要任務(wù)是完成測量點與主機的通信,以及對各測量點溫度數(shù)據(jù)的采集、處理和存儲。
3.1傳感器數(shù)據(jù)的采集
考慮到系統(tǒng)對溫度采集實時性的要求,系統(tǒng)每隔100ms采集1次溫度傳感器的數(shù)據(jù),并不間斷地對整組測量點進行輪流采集,確保讓每個測量點的溫度數(shù)據(jù)能及時地被主機處理。數(shù)據(jù)采集軟件流程如圖4所示。
3.2主機數(shù)據(jù)處理和管理軟件的設(shè)計
此模塊軟件的主要任務(wù)是處理采集的數(shù)據(jù)并存儲數(shù)據(jù)。軟件將采集到的數(shù)據(jù)進行比較,如果溫度有大于65℃,將啟動報警程式,并可以根據(jù)溫度的變化趨勢采取相應(yīng)的預(yù)防措施。同時,在每次讀取傳感器數(shù)據(jù)的過程中記錄此刻的時間,軟件將保存本次采集的溫度和時間信息。當(dāng)數(shù)據(jù)轉(zhuǎn)出時,可以清晰地看到各個時刻所對應(yīng)的不同溫度。數(shù)據(jù)處理的軟件流程如圖5所示。
3.3 基于S3C2440的SD卡控制器設(shè)計
主控制器S3C2440片內(nèi)集成了功能強大的SD卡的控制器,加上其提供的1組寄存器,使編程工作變得相對簡單。程序中定義相關(guān)寄存器如下:
[!--empirenews.page--]
從各個寄存器定義后面的注釋中可以看出相應(yīng)寄存器的作用。
這些寄存器相互配合,就可以很方便地實現(xiàn)協(xié)議所要求的復(fù)雜時序。在對各個寄存器有了全方位的把握之后,就可以實現(xiàn)SD卡的相關(guān)功能,其操作過程為:
①CPU寄存器設(shè)置過程
◆正確設(shè)置SDICON寄存器;
◆正確設(shè)置SDIPRE寄存器;
◆等待74個時鐘信號初始卡。
②CMD命令發(fā)送過程
◆向SDICARG寄存器中寫入發(fā)送的參數(shù);
◆確定命令類型并且通過設(shè)置SDICCON[8]來啟動命令;
◆確定命令是否發(fā)送完成,沒應(yīng)答的話看SDICSTA[11],有應(yīng)答的話看SDICSTA[9];
◆清除SDICSTA中的相應(yīng)位。
③數(shù)據(jù)傳輸過程
◆向SDITIMER中寫入超時值;
◆向SDIBSIZE中寫入塊大小的值;
◆設(shè)置塊模式,總線寬度等,通過SDIDCON啟動傳輸;
◆通過SDIFSTA檢查TxFIFO是否可用,再通過SDIDAT寫入發(fā)送數(shù)據(jù);
◆通過SDIFSTA檢查RxFIFO是否可用,再通過SDIDAT讀入接收數(shù)據(jù);
◆通過檢查SDIDSTA[4]確定傳輸過程已完成;
◆清除SDIDSTA中的相應(yīng)位。
程序采用模塊化設(shè)計思想。以主程序為核心設(shè)置功能模塊子程序,簡化了設(shè)計結(jié)構(gòu)。運行過程中通過主程序調(diào)用各功能模塊子程序。通過程序的聯(lián)合作用,實現(xiàn)了對SD卡的讀寫,對大量的溫度、時間信息進行了實時可靠的保存。以下是數(shù)據(jù)采集保存部分的函數(shù)分析。
[!--empirenews.page--]
結(jié) 語
系統(tǒng)采用高性能處理器作為主控制器,高速地采集各節(jié)點溫度信息,當(dāng)溫度過高時能及時報警,并能快速地存儲大量溫度與時間信息。運用SD卡能方便地將數(shù)據(jù)轉(zhuǎn)出并進行分析。本系統(tǒng)設(shè)計方案已成功運用在湖南電力機車設(shè)備公司的產(chǎn)品中,對海量數(shù)據(jù)采集有較高參考價值。