CN112526205B - 基于mcu的dma功能控制ad转换器峰值采样方法 - Google Patents
基于mcu的dma功能控制ad转换器峰值采样方法 Download PDFInfo
- Publication number
- CN112526205B CN112526205B CN202011393456.0A CN202011393456A CN112526205B CN 112526205 B CN112526205 B CN 112526205B CN 202011393456 A CN202011393456 A CN 202011393456A CN 112526205 B CN112526205 B CN 112526205B
- Authority
- CN
- China
- Prior art keywords
- mcu
- dma
- converter
- data
- timer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005070 sampling Methods 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 title claims abstract description 27
- 239000000872 buffer Substances 0.000 claims abstract description 22
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 2
- 238000005259 measurement Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 abstract description 5
- 238000012546 transfer Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 2
- 238000007429 general method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Abstract
本发明涉及一种基于MCU的DMA功能控制AD转换器峰值采样方法,包括如下步骤:根据AD转换器的时序要求配置好MCU的定时器DMA功能;配置连接AD转换器的端口寄存器指向第一缓冲区,AD转换器数据通过MCU的端口传输到第一缓冲区,进入中断执行程序;中断执行程序的第Ⅰ阶段,在小于1us的时间里完成DMA的关闭、重新指定数据端口寄存器传输到第二缓冲区,然后重新启动DMA;在第Ⅱ阶段,程序寻找上个缓冲区中已经填满的AD电压和电流数据中的最大值和最小值,并计算出平均值;在第Ⅲ阶段,MCU可执行其他程序。本发明能够用最简单的电路图实现电压、电流的无丢失连续全采样,并由此实现电压、电流峰值和纹波测量。
Description
技术领域:
本发明涉及仪器仪表和电子测量领域,尤其涉及一种基于MCU的DMA功能控制AD转换器峰值采样方法。
背景技术:
在电子测量领域,实现电压或者电流的峰值和纹波测量,通常采用硬件的峰值采样保持电路或者FPGA/CPLD单独连接AD模数转换器进行采样再通过FPGA/CPLD传给MCU的方法,如图1、图2所示。这些方法都有各自的缺点,都很难实现峰值采样的无丢失和随意可控时间段范围里的峰值和纹波测量。而且增加CPLD或者FPGA的方法增加了电路的复杂性和提高了成本。
发明内容:
本发明的目的是要克服现有技术的不足,提供一种利用MCU的DMA功能控制AD转换器实现电压电流无丢失的采样技术实现峰值和纹波测量的方法。
本发明提供一种基于MCU的DMA功能控制AD转换器峰值采样方法,包括如下步骤:
步骤一、首先根据AD转换器的时序要求配置好MCU的定时器DMA功能;
步骤二、MCU定时器配置完成后,先配置连接AD转换器的端口寄存器指向第一数据缓冲区,启动定时器后无需MCU干预,AD转换器数据通过MCU的端口传输到第一数据缓冲区,当DMA计数到达设定的计数值n时,触发DMA中断,进入中断执行程序;
步骤三、中断执行程序的第Ⅰ阶段,在小于1us的时间里完成DMA的关闭、重新指定数据端口寄存器传输到第二数据缓冲区,然后重新启动DMA;在第Ⅱ阶段,程序寻找上个缓冲区中已经填满的AD电压和电流数据中的最大值和最小值,并计算出平均值;在第Ⅲ阶段,MCU可执行其他程序;等到下一个DMA中断开始,又重复上述过程。
其中,步骤一中,配置MCU的定时器DMA是用MCU内部定时器输出产生1MHz的频率去控制AD转换器的/CNVST和A/B端口,定时器的上、下计数方式都触发DMA数据传输,从MCU端口传到定义的缓冲区,采用DMA计数中断,每n个计数到了就进入中断程序;/CNVST是下降沿触发一次AD转换过程,一次转换两个通道的数据,总共需要2us的时间;然后定义两个大小相同的数据缓冲区,一旦启动定时DMA方式采样,就不停的在两个数据缓冲区之间切换读取AD数据,以此实现无丢失的电压、电流采样。
作为优选,所述AD转换器为模数转换器AD7655,所述MCU为STM32F103VCT。
本发明的有益效果是:
(1)本发明运用MCU的DMA数据传输技术实现AD转换器的数据读取到MCU内部;
(2)该方法能实现AD采样数据无丢失,克服传统的间断采样的缺陷;
(3)整个程序流程围绕DMA中断的方式完成,并实现电压、电流峰值采样和纹波测量;
(4)本发明能够用最简单的电路图实现电压、电流的无丢失连续全采样,并由此实现电压、电流峰值和纹波测量。
附图说明:
图1是电压电流采样的通用方法原理框图;
图2是电压电流采样通用方法的时序图;
图3是本发明的基于MCU的DMA功能控制AD转换器峰值采样方法的电路原理框图;
图4是本发明的基于MCU的DMA功能控制AD转换器峰值采样方法的工作时序和程序图。
具体实施方式:
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易被本领域人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
本发明中涉及MCU的DMA技术,DMA(Direct Memory Access)是直接存储器存储,是一种不需要MCU干预的数据传输方式,其传输数据不占用MCU的工作。
如图3所示,本发明的基于MCU的DMA功能控制AD转换器峰值采样方法的基本电路包括:电压电流输入单元、MCU控制单元、AD模数转换单元。
被采样的电压、电流型号经过模拟电路处理后输入模数转换器AD7655,AD7655和STM32F103VCT6的连接信号主要包含16位数据线(D0-D15)、转换启动信号(/CNVST)和通道选择型号(A/B)连接。
图4中所示的方法和时序是本发明的核心。
首先根据AD转换器的时序要求配置好MCU的定时器DMA功能,本方法是用的MCU内部定时器T输出产生1MHz的频率去控制AD7655的/CNVST和A/B端口,定时器的上、下计数方式都触发DMA数据传输,从MCU端口传到定义的数据缓冲区buf1[n]和buf2[n],采用DMA计数中断,每n个计数到了就进入中断程序。/CNVST是下降沿触发一次AD转换过程,一次转换两个通道的数据,总共需要2us的时间,也就是每个通道的采样率为500kSPS。然后定义两个大小相同的数据缓冲区buf1[n]和buf2[n],这是实现DMA方式无丢失的读取AD转换器每次转换数据的必要条件,一旦启动定时DMA方式采样,就不停的在两个缓冲buf1和buf2之间切换读取AD数据,以此实现无丢失的电压、电流采样。其中n可以根据程序具体情况自由设定,比如本方案n是100,对应每个中断间隔时间是100*1us=100us。
采样过程为:MCU定时器配置完成后,注意先配置连接AD的端口寄存器指向buf1,启动定时器后无需MCU干预,AD7655数据通过MCU的端口传输到指定buf1,当DMA计数到达设定的计数值n时,触发DMA中断,进入中断执行程序。
中断执行程序在图4中的第Ⅰ阶段内,在小于1us的时间里必须完成DMA的关闭、重新指定数据端口寄存器传输到buf2地址、然后重新启动DMA,这样保证下个AD数据不丢失的传送到buf2[n]中。在图4中的第Ⅱ阶段内,程序寻找上个buf1[n]中已经填满的AD电压和电流数据中的最大值和最小值,并计算出平均值,上述程序的处理时间可以压缩到60us只内,在图4中的第Ⅲ阶段内,剩余空闲的40us时间内MCU可以执行其他程序,比如响应按键,通讯等。等到下一个DMA中断开始,又重复上述过程,只不过重新指定数据端口寄存器传输到buf1地址,然后重新启动DMA。让AD采样的电压电流数据在buf1和buf2中轮流传输。
其中计数个数n的值可根据具体需求自由设置,n值小那么采样间隔就小,可以配合一些对速度有要求的PID算法提高响应速度。
另外因为该峰值和纹波值是程序控制,可以指定测量一段时间内的峰值和纹波值。
综上所述,本发明提供一种可以利用MCU的DMA功能控制AD(模数转换器)实现对电压或电流信号的峰值采样和测量的方法。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (3)
1.一种基于MCU的DMA功能控制AD转换器峰值采样方法,其特征在于,包括如下步骤:
步骤一、首先根据AD转换器的时序要求配置好MCU的定时器DMA功能;
步骤二、MCU定时器配置完成后,再配置连接AD转换器的端口寄存器指向第一数据缓冲区,启动定时器后无需MCU干预,AD转换器数据通过MCU的端口传输到第一数据缓冲区,当DMA计数到达设定的计数值n时,触发DMA中断,进入中断执行程序;
步骤三、中断执行程序的第Ⅰ阶段,在小于1us的时间里完成DMA的关闭、重新指定数据端口寄存器传输到第二数据缓冲区,然后重新启动DMA;在第Ⅱ阶段,程序寻找上个数据缓冲区中已经填满的AD电压和电流数据中的最大值和最小值,并计算出平均值;在第Ⅲ阶段,MCU可执行其他程序;等到下一个DMA中断开始,把重新指定数据端口寄存器传输到第二数据缓冲区,又重复上述过程;
步骤一中,配置MCU的定时器DMA是用MCU内部定时器输出产生1MHz的频率去控制AD转换器的/CNVST和A/B端口,定时器的上、下计数方式都触发DMA数据传输,从MCU端口传到定义的缓冲区,采用DMA计数中断,每n个计数到了就进入中断程序;/CNVST是下降沿触发一次AD转换过程,一次转换两个通道的数据,总共需要2us的时间;然后定义两个大小相同的数据缓冲区,一旦启动定时DMA方式采样,就不停的在两个缓冲区之间切换读取AD数据,以此实现无丢失的电压、电流采样。
2.根据权利要求1所述的基于MCU的DMA功能控制AD转换器峰值采样方法,其特征在于,所述AD转换器为模数转换器AD7655。
3.根据权利要求1所述的基于MCU的DMA功能控制AD转换器峰值采样方法,其特征在于,所述MCU为STM32F103VCT。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011393456.0A CN112526205B (zh) | 2020-12-03 | 基于mcu的dma功能控制ad转换器峰值采样方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011393456.0A CN112526205B (zh) | 2020-12-03 | 基于mcu的dma功能控制ad转换器峰值采样方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112526205A CN112526205A (zh) | 2021-03-19 |
CN112526205B true CN112526205B (zh) | 2024-06-07 |
Family
ID=
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04293A (ja) * | 1990-04-12 | 1992-01-06 | Meidensha Corp | サイリスタレオナード装置制御方法 |
KR920009092A (ko) * | 1990-10-16 | 1992-05-28 | 만도기계 주식회사 | A/d 변환 시스템의 제어방법 |
CN1825292A (zh) * | 2005-02-23 | 2006-08-30 | 华为技术有限公司 | 一种直接存储器存取装置及单通道双向数据交互实现方法 |
CN1888917A (zh) * | 2006-08-03 | 2007-01-03 | 上海交通大学 | 数值电能表的采样方法 |
CN102512176A (zh) * | 2011-12-06 | 2012-06-27 | 中国科学院深圳先进技术研究院 | 一种光-频率转换式脉搏血氧仪的数字信号处理方法 |
CN103424608A (zh) * | 2013-07-31 | 2013-12-04 | 江苏林洋电子股份有限公司 | 一种低成本快速高精度交流电压信号采样系统 |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04293A (ja) * | 1990-04-12 | 1992-01-06 | Meidensha Corp | サイリスタレオナード装置制御方法 |
KR920009092A (ko) * | 1990-10-16 | 1992-05-28 | 만도기계 주식회사 | A/d 변환 시스템의 제어방법 |
CN1825292A (zh) * | 2005-02-23 | 2006-08-30 | 华为技术有限公司 | 一种直接存储器存取装置及单通道双向数据交互实现方法 |
CN1888917A (zh) * | 2006-08-03 | 2007-01-03 | 上海交通大学 | 数值电能表的采样方法 |
CN102512176A (zh) * | 2011-12-06 | 2012-06-27 | 中国科学院深圳先进技术研究院 | 一种光-频率转换式脉搏血氧仪的数字信号处理方法 |
CN103424608A (zh) * | 2013-07-31 | 2013-12-04 | 江苏林洋电子股份有限公司 | 一种低成本快速高精度交流电压信号采样系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US3946379A (en) | Serial to parallel converter for data transmission | |
RU2708791C1 (ru) | Генератор ошибок односторонней полубайтовой передачи | |
JPH04334239A (ja) | データ・フォーマット検出回路 | |
CN112526205B (zh) | 基于mcu的dma功能控制ad转换器峰值采样方法 | |
JP4353943B2 (ja) | シーケンス制御装置 | |
JP6050761B2 (ja) | データ処理方法、データ処理システム及び関連する装置 | |
CN116719388A (zh) | 波形信号生成方法、系统、终端及存储介质 | |
CN112526205A (zh) | 基于mcu的dma功能控制ad转换器峰值采样方法 | |
CN115567039A (zh) | 一种脉冲采集及灵活产生脉冲的控制电路 | |
US6480512B1 (en) | Method and device for converting bit rate of serial data | |
CN104735824A (zh) | 数据处理系统 | |
JPS60219919A (ja) | 電源投入方式 | |
TWI564735B (zh) | 資料分配裝置、訊號處理裝置及其資料分配方法 | |
CN113126530B (zh) | 一种用于计算定时器滤波器的采样率的方法及控制装置 | |
JP4427991B2 (ja) | クロック同期シリアルデータ転送方式 | |
CN109067398B (zh) | 一种具备多路通道信号的adc电路的控制方法 | |
CN115882863B (zh) | 一种多时钟域快速切换的系统和方法 | |
CN212933507U (zh) | 随机采样系统 | |
SU1026115A1 (ru) | Измеритель временных интервалов | |
SU1179413A1 (ru) | Устройство дл адаптивного сжати информации | |
CN117294282A (zh) | 一种脉冲展宽系统 | |
JP2003263404A (ja) | シリアル通信方式とそれを用いたマイクロコンピュータ | |
JP2553543B2 (ja) | 周波数検出制御装置 | |
JP3882300B2 (ja) | シリアルデータ保持回路 | |
RU1807586C (ru) | Устройство дл св зи с объектом управлени |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |