<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設計應用 > 基于MPC5634的汽車(chē)控制器多路AD采樣的設計

基于MPC5634的汽車(chē)控制器多路AD采樣的設計

作者:蔡余喜 趙震 時(shí)間:2014-03-27 來(lái)源:電子產(chǎn)品世界 收藏

  引言

本文引用地址:http://dyxdggzs.com/article/235425.htm

  隨著(zhù)汽車(chē)對控制系統的要求和依賴(lài)性提高,AD采樣的設計模塊成為汽車(chē)控制器中重要的組成部分。AD采樣的結果是汽車(chē)控制器控制執行器的依據,它的速率和精度在汽車(chē)控制中起著(zhù)重要的作用。

  本文主要介紹一種基于的多路模擬信號采集方法,通過(guò)增強型直接內存訪(fǎng)問(wèn)()方式,自動(dòng)在RAM和增強型隊列式模數轉換器模塊之間轉移數據,能高效和準確地完成對模擬信號的采集。

  1 增強型隊列式模數轉換器模塊

  1.1 模塊的結構

  的eQADC模塊有兩個(gè)可獨立工作的ADC轉換單元(ADC0和ADC1),40路模擬通道(可擴展),0~5V的轉換范圍,轉換精度有8位、10位、12位三種精度可選,具有軟件和硬件兩種觸發(fā)方式,采樣方式有單次方式和連續方式等,ADC的工作時(shí)鐘可達15MHz。速率和精度可以滿(mǎn)足汽車(chē)控制器的要求。圖1為eQADC模塊的結構框圖,顯示了eQADC模塊的主要組成部分。

  1.2 命令緩存CFIFO的工作機制

  eQADC模塊有6個(gè)命令緩存CFIFO,每個(gè)CFIFO有4個(gè)深度,CFIFO有單次掃描和連續掃描的操作模式,配置為不同的掃描模式時(shí),CFIFO就有不同的觸發(fā)機制。當配置為單次掃描模式時(shí),每次會(huì )使存儲于隊列中的eQADC轉換命令序列執行一次。當設置為連續掃描模式時(shí),只要隊列啟動(dòng)后,就可以持續的運行。數據的流程如圖2所示。

  1.3 eQADC的命令格式

  eQADC有配置命令和轉換命令兩種命令格式。配置命令用于對eQADC模塊進(jìn)行初始化設置,像使能ADC模塊單元,設置時(shí)鐘分頻因子,轉換速率因子,使能請求等;轉換命令主要用于設置采集哪個(gè)通道,用哪個(gè)ADC模塊單元轉換,轉換的結果放在6個(gè)結果緩存的哪一個(gè)里面,是否對采集的結果進(jìn)行校正等。

  2 增強型存儲器直接訪(fǎng)問(wèn)()模塊

  DMA控制器是總線(xiàn)上的一個(gè)主機,能夠在片內資源(Flash、RAM和I/O外設等)以及片外資源之間傳輸數據。DMA有32個(gè)通道,在某個(gè)時(shí)刻只能有一個(gè)通道成為總線(xiàn)上的主機并進(jìn)行數據傳輸。為了解決他們之間的沖突,DMA有兩種可編程的優(yōu)先級機制:固定優(yōu)先級機制和輪詢(xún)優(yōu)先級機制。一旦一個(gè)通道成為主機,該通道將通過(guò)先讀再寫(xiě)的操作方式,把數據從一個(gè)存儲器地址傳輸到另一個(gè)存儲器地址。每個(gè)DMA通道都有一個(gè)獨立的傳輸控制描述符(TDCn)。

  3 多路eQADC采樣程序設計

  在這次的設計中,數據的傳輸是通過(guò)DMA進(jìn)行的。多路eQADC采樣程序設計主要包括命令隊列、結果隊列的定義,eQADC的初始化,DMA初始化,觸發(fā)CFIFO等。程序的設計流程如圖3。

  3.1 定義數組

  本文中cQUEUE0[40]被定義為轉換命令的存儲數組,rQUEUE0[40]被定義為轉換結果的存儲數組。把所有通道的轉換命令分別放在數組cQUEUE0[40]中,最后采集的結果分別放在數組rQUEUE0[40]中,這個(gè)可以隨時(shí)讀取rQUEUE0[40]中的數據被汽車(chē)控制器所用。

  3.2 初始化DMA

  TCD0對應于CFIFO0,TCD1對應于RFIFO0。由于本設計只要一個(gè)命令緩存CFIFO0和一個(gè)結果緩存RFIFO0就可以滿(mǎn)足設計要求,故只用到一個(gè)CFIFO0,一個(gè)RFIFO0,以及與他們對應的TCD0和TCD1。設置TCD0:源地址為&cQUEUE0,目的地址為0xFFF80010,源地址偏移為4,傳輸的大小為32位,次要字節傳輸數NBYTES為2;主迭代數為40;設置TCD1:源地址為&rQUEUE0,目的地址為0xFFF80032,源地址偏移為4,傳輸的大小為16位,次要字節傳輸數NBYTES為2;主迭代數為40。

  3.3 初始化eQADC

  初始化轉換命令的存儲數組cQUEUE0[40],本設計是采用ADC0模塊單元,12位精度,采用校正,一次采集40個(gè)通道的模擬量。配置eQADC的寄存器,時(shí)鐘分頻因子為2,使能DMA0,DMA1請求等。

  3.4 校正寄存器的設置

  本項目的芯片功能很強大,以前的校正都需要外面加硬件來(lái)校正采樣結果,自帶的有校正功能,本項目采用的校正是這樣的:ADC的初步轉換結果將通過(guò)MAC單元來(lái)完成校正。MAC單元執行下列算法來(lái)進(jìn)行校正:

  Idealresult=GCCXADCresult+OCC+2 (1)

  GCC為增益校正的常數,它是在寄存器ADCn_GCCR中定義的;OCC為偏移量校正常數,它在寄存器ADCn_OCCR中定義的。

  GCCR與OCCR的值是需要計算來(lái)確定的。通過(guò)以下公式進(jìn)行求解:

  Idealresult1=GCCXADCresult1+OCC+2 (2)

  Idealresult1=GCCXADCresult1+OCC+2 (3)

  為了求出GCCR與OCCR的值,我們只需要兩個(gè)通道的理想結果和實(shí)際的結果就行了,通道44和通道43的電壓值分別對應0.25Vdd和0.5Vdd。而他們的實(shí)際結果可以采集到。因此,可以求出GCCR和OCCR的值。

  3.5 使能DMA請求

  設置使能DMA0和DMA1請求。

  3.6 觸發(fā)CFIFO0

  設置CFIFO0為連續轉換模式,這樣就可以連續、持續地采集信號,并及時(shí)把采集的結果放到結果存儲數組中,如此就可以保證汽車(chē)控制器在結果存儲數組中所讀取的數據為最新的采集結果,可以使控制器根據最新的數據來(lái)控制各個(gè)執行器。

  4 主程序和執行結果

  void main(void)

  {

  uint32_t cQUEUE0[40]; //定義命令存儲數組

  uint16_t rQUEUE0[40]; //結果存儲數組

  dma_init_fnc(); //DMA初始化

  eqadc_init_fnc (); //eQADC初始化

  set_calconstants ();//校正寄存器的設置

  dma_able();//使能DMA0,DMA1

  cfifo0_trig();//使能DMA0,DMA1

  while(1)

  {

  }

  }

  5 結束語(yǔ)

  本設計完成了汽車(chē)控制器的采樣模塊的設計,它保證在時(shí)間上和精度上滿(mǎn)足汽車(chē)控制器的要求。通過(guò)不斷地測試,該設計達到了系統所要求的性能和功能。

  參考文獻:

  [1]Freescale Semicondutor.MPC5634M Microcontroller Reference Manual

  [2]Freescale.Semicondutor.Enhanced Time Processing Unit(eTPU) Preliminary Reference Manual[M]

  [3]Code Warrior Development Tools C Compilers Reference 3.2[M].[S.L.]:Metrowerks company,2004

  [4]孫同景,陳佳友.十六位單片機原理及嵌入式開(kāi)發(fā)技術(shù)[D].機械工業(yè)出版社,2008.5

  [5]SojaR,Bannoura M.MPC5554/5553 微處理器揭秘.龔光華,宮輝,安鵬,譯.北京航空航天大學(xué)出版社,2010

  [6]FreescaleSemicondutor.Tips and Tricks with DMA on MPC56XX.Rev.0,2010

  [7]FreescaleSemicondutor.Design,Accuracy,and Calibration of Analog to Digital Converters on the MPC5500 Family Rev.2,2010

  [8]FreescaleSemicondutor.Using DMA to Emulate ADC Flexible Scan Mode on Kinetis K Series.Reved,2012

逆變器相關(guān)文章:逆變器原理


可控硅相關(guān)文章:可控硅工作原理


逆變器相關(guān)文章:逆變器工作原理


比較器相關(guān)文章:比較器工作原理


模數轉換器相關(guān)文章:模數轉換器工作原理


存儲器相關(guān)文章:存儲器原理




關(guān)鍵詞: MPC5634 eQADC DMA 201404

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>