<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 汽車電動空調(diào)的數(shù)據(jù)采集系統(tǒng)的研究設(shè)計(jì)

          汽車電動空調(diào)的數(shù)據(jù)采集系統(tǒng)的研究設(shè)計(jì)

          作者: 時(shí)間:2011-06-23 來源:網(wǎng)絡(luò) 收藏

          1 引言

            汽車空調(diào)作為車內(nèi)溫度小環(huán)境的控制中心,其作用不言而喻。由于過去的汽車空調(diào)檢測系統(tǒng)因?yàn)榭刂撇呗詥握{(diào)而沒有使用綜合檢測平臺的必要,即使有控制過程檢測,大都使用昂貴的采集設(shè)備如數(shù)據(jù)采集卡,其通信方式也以串行口通信為主,無法接入整車環(huán)境進(jìn)行監(jiān)控[1]。針對這一情況,本文所設(shè)計(jì)開發(fā)的檢測系統(tǒng)主要對電動汽車空調(diào)運(yùn)行過程中的四個(gè)工程物理量進(jìn)行檢測分析:風(fēng)機(jī)的電壓、電流,壓縮機(jī)端口的高壓、低壓。本課題來源于某汽車空調(diào)系統(tǒng)的開發(fā)過程中所需檢測系統(tǒng)的設(shè)計(jì),主要用于使空調(diào)系統(tǒng)的控制策略的執(zhí)行更加透明化、直觀化,為控制策略的優(yōu)化提供數(shù)字依據(jù);為汽車空調(diào)后續(xù)開發(fā)提供可靠的保證。

          本文引用地址:http://www.ex-cimer.com/article/197386.htm

          2 采集系統(tǒng)設(shè)計(jì)

            2.1 總體設(shè)計(jì)

            如圖1所示,在該系統(tǒng)中,DSP部分的軟件設(shè)計(jì)主要完成以下工作:數(shù)據(jù)采集周期的設(shè)定、AD轉(zhuǎn)換、數(shù)據(jù)校正及濾波等。并可以接收上位機(jī)通過CAN總線發(fā)來的采集開始指令打開采集或關(guān)閉采集功能,在采集開始后按照要求對四路信號進(jìn)行采樣及軟件校正,校正完成后將采集結(jié)果保存在CAN郵箱內(nèi),通過CAN控制模塊進(jìn)行發(fā)送。在本系統(tǒng)中,電壓、電流采集周期為50ms,高、低壓采樣周期為200ms。

            2.2 硬件部分

            以TI公司的TMS320F2812為該四通道的核心。該款DSP芯片是TI公司2000系列中的一員,最高主頻可達(dá)到150MHz,具有強(qiáng)大的數(shù)字信號處理能力[2]。片內(nèi)集成的12位AD轉(zhuǎn)換器共有16個(gè)通道,轉(zhuǎn)換速率在可達(dá)到12.5MSPS(ADC時(shí)鐘為25MHz時(shí)),在采集速度及精度上均能達(dá)到本系統(tǒng)的設(shè)計(jì)要求。而且該AD模塊可采用多種方式觸發(fā)能夠滿足不同的任務(wù)需要。輸入2812AD端的模擬信號由傳感器采集變換得到。本系統(tǒng)所用傳感器輸出信號為4~20mA的電流環(huán)信號,而AD模擬輸入范圍為0~3V電壓信號。

            CAN是控制器區(qū)域網(wǎng)絡(luò)(ControlAreaNetwork)的簡稱,最早是由德國BOSCH公司推出的,用于汽車內(nèi)部測量與執(zhí)行部件間的數(shù)據(jù)通信,其總線規(guī)范現(xiàn)已被ISO國際標(biāo)準(zhǔn)制定為國際標(biāo)準(zhǔn)[3]。它廣泛的應(yīng)用于汽車電子、工業(yè)控制,其信號傳輸介質(zhì)為普通雙絞線,通信速率最高可達(dá)1Mbps。CAN總線具有較強(qiáng)的抗干擾能力。本系統(tǒng)采用CAN總線的通信方式,也方便了整車調(diào)試的接入。

            2.3 軟件部分設(shè)計(jì)

            2.3.1 DSP軟件部分

            該部分軟件主要包括兩個(gè)部分:模擬信號的AD轉(zhuǎn)換和CAN總線通信。因?yàn)門MS320F2812內(nèi)置有12位AD轉(zhuǎn)換器,因此轉(zhuǎn)換部分可分為AD模塊配置和數(shù)據(jù)轉(zhuǎn)換處理;而AD模塊的配置主要包括工作和通道的選擇。在本系統(tǒng)中,選用連續(xù)轉(zhuǎn)換方式;需要采集的模擬量共四個(gè),加上A、B通道各配置兩個(gè)校正輸入端口,所以總共需要占用8個(gè)模擬輸入口。

            50ms200ms集周期為,高、低壓采樣周期為。部分配置程序如下:…

            AdcRegs.ADCTRL1.bit.SEQ_CASC=0;//雙排序發(fā)生

            AdcRegs.ADCTRL1.bit.CONT_RUN=1;//連續(xù)轉(zhuǎn)換方式

            AdcRegs.ADCTRL1.bit.CPS=0;//分頻系數(shù)為1

            AdcRegs.ADCMAXCONV.all=0x0055;//共有12個(gè)轉(zhuǎn)換,采樣值取2次,標(biāo)準(zhǔn)值1次

            AdcRegs.ADCCHSELSEQ1.all=0x1100;//轉(zhuǎn)換序列

            CAN總線通信主要包括TMS320F2812中eCAN模塊郵箱的定義和郵箱中斷子程序的設(shè)置[6]。

            部分配置程序如下:

            ECanaMboxes.MBOX0.MSGID.all=0x003FFFFF;//mail0:00F

            ECanaMboxes.MBOX5.MSGID.all=0x0FFFFFFF;//mail5:3FF

            //ConfigureMailboxes0-3asTx,4,5asRx

            ECanaRegs.CANMD.all=0x00000030;//EnableMailboxes

            ECanaRegs.CANME.all=0x0000003F;//Specifythat2bitswillbesent

            CAN模塊有兩種中斷形式,一種是與郵箱有關(guān)的中斷,另一種是系統(tǒng)中斷,用于處理錯(cuò)誤或者與系統(tǒng)相關(guān)的中斷源[4]。而本系統(tǒng)中CAN與上位機(jī)通信主要是通過郵箱中斷來實(shí)現(xiàn)。

            CAN郵箱的中斷程序如下:

            interruptvoidcan_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_High1;//高電壓值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ī)劃,并能與硬件平臺很好的配合工作。

            2.3.2 PC機(jī)軟件部分

            此部分軟件采用面向?qū)ο蟪绦蛟O(shè)計(jì)技術(shù),關(guān)于CAN232接口卡的硬件操作函數(shù)已經(jīng)封裝在ControlCAN.dll,在VisualC++的工程中添加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自帶的屬性頁對話框,并設(shè)置相應(yīng)的四個(gè)屬性頁,可以方便的切換及觀察采集的數(shù)據(jù)波形、數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)幀、以及采集事件的統(tǒng)計(jì)。顯示模塊采用了MeasurementStudio的顯示控件(CNiGraph)。MeasurementStudio是NationalInstruments(美國國家儀器公司)專為測試和控制領(lǐng)域開發(fā)的工具軟件,將強(qiáng)大的數(shù)據(jù)采集分析功能無縫隙的集成到VisualStudio環(huán)境中。MeasurementStudio向用戶提供直觀的測量硬件接口、高級分析函數(shù)、科學(xué)的用戶界面控件及測量數(shù)據(jù)網(wǎng)絡(luò),可大大提高數(shù)據(jù)采集分析系統(tǒng)的開發(fā)效率[5]。

            在本系統(tǒng)中。數(shù)據(jù)量龐大,針對此情況,建立了Access數(shù)據(jù)庫文件。Access是一個(gè)適應(yīng)于普通場合的、典型的關(guān)系型數(shù)據(jù)庫,根據(jù)關(guān)系型數(shù)據(jù)庫的設(shè)計(jì)原理及本文的需求,對數(shù)據(jù)庫的操作轉(zhuǎn)化為對于相應(yīng)記錄集的操作,實(shí)現(xiàn)語言采用了SQL語言實(shí)現(xiàn)。圖3為空調(diào)壓縮機(jī)的四路數(shù)據(jù)的波形圖圖4為此四路數(shù)據(jù)對應(yīng)的數(shù)據(jù)值的統(tǒng)計(jì)圖

          3 結(jié)束語

            本采集系統(tǒng)經(jīng)過多次的軟硬件測試,證實(shí)可以很好的滿足對汽車空調(diào)壓縮機(jī)系統(tǒng)相關(guān)參數(shù)的采集,所設(shè)計(jì)的上位機(jī)系統(tǒng)能夠配合采集節(jié)點(diǎn)實(shí)現(xiàn)數(shù)據(jù)的顯示、存儲、數(shù)據(jù)記錄、檢索等功能,采用多線程,臨界量等編程技術(shù),結(jié)合MeasurementStudio用戶界面控件與分析函數(shù)庫,方便、快捷地在VisualC++環(huán)境下實(shí)現(xiàn)了,有效地降低了該類程序開發(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)用到在線檢測系統(tǒng)中,使得該系統(tǒng)的抗干擾能力、可靠性、準(zhǔn)確性得到保障;提高運(yùn)算速度和工作效率。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();