• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于STM32的DMA研究及嵌入式互補(bǔ)脈寬發(fā)生器設(shè)計(jì)

      2014-05-25 03:24:28周洪雁
      關(guān)鍵詞:死區(qū)外設(shè)寄存器

      周洪雁,宮 志

      (1.大慶師范學(xué)院 物理與電氣信息工程學(xué)院,黑龍江 大慶163712 2.大慶油田有限責(zé)任公司 信息技術(shù)公司,黑龍江 大慶163000)

      1 為CPU 減負(fù)DMA

      1.1 DMA 功能簡(jiǎn)介

      DMA,即為存儲(chǔ)器訪問(wèn),DMA 數(shù)據(jù)傳輸是按照地址空間的標(biāo)識(shí)來(lái)傳遞的。CPU 雖然初始化了DMA傳輸動(dòng)作,但是在實(shí)際的應(yīng)用當(dāng)中整個(gè)數(shù)據(jù)傳輸過(guò)程是不需要CPU 來(lái)參與的,完全由DMA 自身來(lái)實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)移,這也就是為什么在進(jìn)行大量多次的數(shù)據(jù)采集的時(shí)候,我們采用DMA 來(lái)實(shí)現(xiàn)數(shù)據(jù)的傳輸可以很大程度的提升處理器的處理速度,其實(shí)本質(zhì)并不是提升了CPU 的處理速度,而是讓CPU 有更多的時(shí)間去處理數(shù)據(jù)而不是浪費(fèi)在數(shù)據(jù)的傳輸上。

      1.2 DMA 通道分析

      STM32 的大多數(shù)外設(shè)可產(chǎn)生DMA 請(qǐng)求,可通過(guò)邏輯或的關(guān)系掛載到DMA 的使能端子,由于是邏輯或的關(guān)系故而同一時(shí)刻只能有一個(gè)請(qǐng)求被執(zhí)行。STM32 上所掛載外設(shè)的DMA 請(qǐng)求,可以通過(guò)填充相應(yīng)的結(jié)構(gòu)體來(lái)實(shí)現(xiàn)。

      1.2.1 DMA1 通道簡(jiǎn)介

      DMA 通道配置如圖1所示。

      圖1 DMA 通道配置

      圖1中的邏輯或,如同一個(gè)通道的DMA 請(qǐng)求,這里DMA1 為例(ADC3、TIM2_CH1、TIM4_CH3),需要強(qiáng)調(diào)的是這幾個(gè)參數(shù)在通道1 上是邏輯或的關(guān)系,所謂邏輯或就是同一時(shí)間DMA 只能響應(yīng)其中的一個(gè)。

      1.2.2 DMA 中斷狀態(tài)寄存器

      通常我們?cè)谂渲肈MA 的時(shí)候會(huì)開(kāi)啟DMA 中斷,一旦數(shù)據(jù)傳輸結(jié)束會(huì)進(jìn)入中斷服務(wù)函數(shù),當(dāng)沒(méi)有開(kāi)啟DMA 中斷的時(shí)候也可以通過(guò)查詢的方式來(lái)檢測(cè)DMA 是否傳輸完畢,這是因?yàn)镈MA 傳輸完畢后會(huì)有一個(gè)標(biāo)志位,該標(biāo)志位會(huì)置一來(lái)標(biāo)識(shí)DMA 傳輸結(jié)束,CPU 可以處理下一組數(shù)據(jù)了,然而這個(gè)標(biāo)志位是軟件置位的,置1 后不會(huì)自動(dòng)清零,需要軟件清零,所以在檢測(cè)到標(biāo)志位后首先進(jìn)行軟件清零,再進(jìn)入下一步操作,使DMA 工作在滿負(fù)荷狀態(tài),極大地提升CPU 的運(yùn)作效率。

      1.2.3 DMA 中斷標(biāo)志清除寄存器

      上面提到了標(biāo)志位需要通過(guò)軟件清零,同樣的中斷標(biāo)志位也是需要我們進(jìn)行軟件清零的,不同的是我們不能通過(guò)直接給中斷標(biāo)志寄存器寫(xiě)0 來(lái)實(shí)現(xiàn)清零,需要通過(guò)給中斷標(biāo)志清除寄存器寫(xiě)1 來(lái)實(shí)現(xiàn)對(duì)中斷標(biāo)志位的清零。同樣在進(jìn)入中斷之后,我們首先需要做的就是清除中斷標(biāo)志位。

      2 TIM1 同時(shí)發(fā)生7 路三對(duì)互補(bǔ)脈寬系統(tǒng)

      2.1 TIM1 內(nèi)部原理

      高級(jí)定時(shí)器TIM1 或高級(jí)定時(shí)器TIM8 的本質(zhì)都是一個(gè)獨(dú)立于內(nèi)設(shè)掛載在CPU 上的外設(shè),就是一個(gè)16 位的可以自動(dòng)重新裝載的計(jì)數(shù)器,與普通單片機(jī)一樣該計(jì)數(shù)器的工作同樣不需要CPU 內(nèi)核的參與,它的時(shí)鐘驅(qū)動(dòng)是由一個(gè)可編程的預(yù)分頻從系統(tǒng)時(shí)鐘上獨(dú)立分支出來(lái)的,如圖2所示。高級(jí)定時(shí)器TIM1 適用領(lǐng)域較多,對(duì)于脈沖寬度的測(cè)量或者像普通單片機(jī)那樣生成產(chǎn)生輸出各種波形也是完全可以勝任的。

      圖2 整體系統(tǒng)圖

      2.2 TIM1 時(shí)鐘選擇與設(shè)定

      根據(jù)內(nèi)部電路圖可知定時(shí)器1 與定時(shí)器8 掛載在APB2 預(yù)分頻器上,分頻因子可選1,2,4,8,16。而APB2 預(yù)分頻器掛載在AHB 預(yù)分頻上分頻因子可選1,2…512 故使能定時(shí)器1 時(shí)區(qū)別于常用的定時(shí)器。

      2.3 死區(qū)的簡(jiǎn)介與設(shè)定

      所謂死區(qū)就是在一組成對(duì)出現(xiàn)的互補(bǔ)脈寬上兩者之間并不是完全互補(bǔ)的而是存在一定的錯(cuò)位,所謂錯(cuò)位的這段時(shí)間就被稱之為死區(qū)。在配置STM32 生成互補(bǔ)脈寬的同時(shí)也可對(duì)死區(qū)進(jìn)行初始配置,可通過(guò)相關(guān)的寄存器使能死區(qū),同時(shí)也只需繼續(xù)填充相應(yīng)的結(jié)構(gòu)體即可完成對(duì)死區(qū)時(shí)間的配置。死區(qū)的設(shè)置函數(shù)里還有一個(gè)剎車功能,剎車功能有效電平設(shè)置為低電平的時(shí)候,倘若突然將該引腳拉低,原先正在輸出的互補(bǔ)脈寬會(huì)突然停止。

      3 結(jié) 語(yǔ)

      通過(guò)把基于STM32 的脈寬發(fā)生器用于實(shí)際工作領(lǐng)域,可以得到該脈寬發(fā)生器具有精度高和速度快的特點(diǎn),可以滿足一般的實(shí)驗(yàn)和生存需要。故該脈寬發(fā)生器的設(shè)計(jì)和開(kāi)發(fā)具有一定的實(shí)際意義。

      [1]黃智偉.全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽常用電路模塊制作[M].北京:北京航空航天大學(xué)出版社,2011.

      [2]李全利,遲榮強(qiáng).單片機(jī)原題與接口技術(shù)[M].北京:高等教育出版社,2004.

      [3]宋巖.Cortex-M3 權(quán)威指南[M].北京:北京大學(xué)出版社,2008.

      猜你喜歡
      死區(qū)外設(shè)寄存器
      具有輸入死區(qū)的分?jǐn)?shù)階Victor-Carmen 系統(tǒng)的有限時(shí)間同步(英)
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      零電壓開(kāi)關(guān)移相全橋的死區(qū)時(shí)間計(jì)算與分析
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      接觸網(wǎng)驗(yàn)電死區(qū)電場(chǎng)仿真及其啟動(dòng)電壓的探討
      電氣化鐵道(2017年1期)2017-04-16 06:00:17
      含有死區(qū)與間隙電動(dòng)舵機(jī)的反演控制
      航空兵器(2016年5期)2016-12-10 17:14:13
      Microchip推出具備雙ADC外設(shè)的全新器件,擴(kuò)展其低成本8位PIC?單片機(jī)產(chǎn)品線
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      一種可重構(gòu)線性反饋移位寄存器設(shè)計(jì)
      貼身呵護(hù) 必不可少的PSP外設(shè)
      托里县| 庆阳市| 锡林郭勒盟| 昌邑市| 扎兰屯市| 越西县| 湖南省| 西青区| 大港区| 温州市| 调兵山市| 南京市| 浦东新区| 昌都县| 永昌县| 邵阳市| 全南县| 五原县| 育儿| 永新县| 松潘县| 昆山市| 石棉县| 麻江县| 田东县| 达日县| 鄯善县| 金昌市| 台安县| 南宁市| 肥城市| 奉化市| 丰顺县| 珠海市| 栾川县| 桐庐县| 沈丘县| 绥滨县| 海原县| 伊宁市| 铜梁县|