汽車電動(dòng)空調(diào)的數(shù)據(jù)采集系統(tǒng)的研究
部分配置程序如下:
ECanaMboxes.MBOX0.MSGID.all = 0x003FFFFF; // mail0:00F
ECanaMboxes.MBOX5.MSGID.all = 0x0FFFFFFF; // mail5:3FF
// Configure Mailboxes 0-3 as Tx, 4,5 as Rx
ECanaRegs.CANMD.all = 0x00000030; // Enable Mailboxes
ECanaRegs.CANME.all = 0x0000003F; // Specify that 2 bits will be sent
CAN模塊有兩種中斷形式,一種是與郵箱有關(guān)的中斷,另一種是系統(tǒng)中斷,用于處理錯(cuò)誤
或者與系統(tǒng)相關(guān)的中斷源[4]。而本系統(tǒng)中 CAN與上位機(jī)通信主要是通過郵箱中斷來實(shí)現(xiàn)。
CAN郵箱的中斷程序如下:
interrupt void can_send(void)
{
if((((int) ECanaRegs.CANGIF1.all)0) (ECanaRegs.CANGIF1.bit.MIV1==4))
{ IER |=M_INT1;} if((((int) ECanaRegs.CANGIF1.all)0) (ECanaRegs.CANGIF1.bit.MIV1==5)) { IER = M_INT9;} PieCtrlRegs.PIEACK.bit.ACK9 = 0x1;
}
以高電壓為例來說明本系統(tǒng)在數(shù)據(jù)采集、數(shù)據(jù)轉(zhuǎn)換及發(fā)送的相應(yīng)任務(wù)。
Pre_High= AdcRegs.ADCRESULT6 >> 4 + AdcRegs.ADCRESULT7 >> 4; Pre_High = Pre_High 1; //高電壓值 Pre_High = Ave_cur * CalGain - CalOffset *CalGain; ECanaMboxes.MBOX2.MDL.word.LOW_WORD = Pre_High; ECanaRegs.CANTRS.all=0x0000000C;
while(ECanaRegs.CANTA.all!=0x0000000C){} ECanaRegs.CANTA.all=0x0000000C;
經(jīng)實(shí)際運(yùn)行證明執(zhí)行結(jié)果達(dá)到了設(shè)計(jì)需要,說明該部分程序設(shè)計(jì)完全滿足預(yù)期的任務(wù)調(diào)度規(guī)劃,并能與硬件平臺(tái)很好的配合工作。
2.3.2 PC機(jī)軟件部分此部分軟件采用面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù),關(guān)于 CAN232接口卡的硬件操作函數(shù)已經(jīng)封裝在 ControlCAN.dll,在 Visual C++的工程中添加 ControlCAN.lib和 ControlCAN.h這兩個(gè)庫文件和頭文件。方便在程序中調(diào)用。在編譯生成的應(yīng)用程序中設(shè)置好有關(guān) CAN232的相應(yīng)參數(shù),
開始采集過程。每次將采集到的數(shù)據(jù)寫到數(shù)據(jù)文件并送到數(shù)據(jù)緩沖區(qū),以實(shí)現(xiàn)采集模塊和顯示模塊的數(shù)據(jù)共享。這部分的流程圖如圖 2所示:
在此工程中,使用 VC自帶的屬性頁對(duì)話框,并設(shè)置相應(yīng)的四個(gè)屬性頁,可以方便的切換及觀察采集的數(shù)據(jù)波形、數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)幀、以及采集事件的統(tǒng)計(jì)。顯示模塊采用了 Measurement Studio的顯示控件 (CNiGraph)。Measurement Studio是National Instruments(美國國家儀器公司)專為測(cè)試和控制領(lǐng)域開發(fā)的工具軟件,將強(qiáng)大的數(shù)據(jù)采集分析功能無縫隙的集成到Visual Studio環(huán)境中。Measurement Studio向用戶提供直觀的測(cè)量硬件接口、高級(jí)分析函數(shù)、科學(xué)的用戶界面控件及測(cè)量數(shù)據(jù)網(wǎng)絡(luò),可大大提高數(shù)據(jù)采集分析系統(tǒng)的開發(fā)效率[5]。
在本系統(tǒng)中。數(shù)據(jù)量龐大,針對(duì)此情況,建立了 Access數(shù)據(jù)庫文件。Access是一個(gè)適應(yīng)于普通場合的、典型的關(guān)系型數(shù)據(jù)庫,根據(jù)關(guān)系型數(shù)據(jù)庫的設(shè)計(jì)原理及本文的需求,對(duì)數(shù)據(jù)庫的操作轉(zhuǎn)化為對(duì)于相應(yīng)記錄集的操作,實(shí)現(xiàn)語言采用了 SQL語言實(shí)現(xiàn)。圖 3為空調(diào)壓縮機(jī)的四路數(shù)據(jù)的波形圖圖 4為此四路數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)值的統(tǒng)計(jì)圖
3 結(jié)束語
本采集系統(tǒng)經(jīng)過多次的軟硬件測(cè)試,證實(shí)可以很好的滿足對(duì)汽車空調(diào)壓縮機(jī)系統(tǒng)相關(guān)參數(shù)的采集,所設(shè)計(jì)的上位機(jī)系統(tǒng)能夠配合采集節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)的顯示、存儲(chǔ)、數(shù)據(jù)記錄、檢索等功能,采用多線程,臨界量等編程技術(shù),結(jié)合Measurement Studio用戶界面控件與分析函數(shù)庫,方便、快捷地在 Visual C++環(huán)境下實(shí)現(xiàn)了數(shù)據(jù)采集系統(tǒng),有效地降低了該類程序開發(fā)的復(fù)雜性,縮短了程序開發(fā)的周期,實(shí)驗(yàn)證明本系統(tǒng)具有實(shí)時(shí)性、可擴(kuò)展性等優(yōu)點(diǎn)。本文作者創(chuàng)新點(diǎn):結(jié)合DSP和CAN總線技術(shù)應(yīng)用到在線檢測(cè)系統(tǒng)中,使得該系統(tǒng)的抗干擾能力、可靠性、準(zhǔn)確性得到保障;提高運(yùn)算速度和工作效率。
評(píng)論