CN102684648B - 一种基于微控制器的波形产生系统及方法 - Google Patents
一种基于微控制器的波形产生系统及方法 Download PDFInfo
- Publication number
- CN102684648B CN102684648B CN201210005891.0A CN201210005891A CN102684648B CN 102684648 B CN102684648 B CN 102684648B CN 201210005891 A CN201210005891 A CN 201210005891A CN 102684648 B CN102684648 B CN 102684648B
- Authority
- CN
- China
- Prior art keywords
- output
- waveform
- sram
- counting
- counter
- 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.)
- Expired - Fee Related
Links
Landscapes
- Manipulation Of Pulses (AREA)
Abstract
本发明涉及一种基于微控制器的波形产生系统及方法,本发明通过利用微控制器、双端口SRAM和可逆二进制计数器,首先将波形周期中初始的一段没有重复的波形数据写入SRAM中,然后利用周期内后面的一段波形数据和存储在SRAM中波形数据大小的对称性,并使用可逆二进制计数器计数完毕信号,使其在开始重新计数之前,选择计数方式和放大电路形式,然后计数器工作并将存储在SRAM中的波形数据经数模转换和合适的放大电路后输出。本发明可以提高每个周期内数据个数,从而提高波形精度,排除掉重复性数据后,只存储基本波形数据,可以减少SRAM的大小,降低设计成本。
Description
技术领域
本发明涉及一种基于微控制器的波形产生系统及方法。
背景技术
目前,设备常采用嵌入式微控制器作为主控制器。遗憾地是,如果利用微控制器指令执行的直接结果产生特定波形,那么这种波形的实现是不现实的,这主要有以下原因:一是CPU需要执行较高优先级的控制任务、异步中断服务等使CPU指令序列发生变化;另一方面如果CPU在某一时间段,将所有的时间都应用于数字波形产生的指令序列,那么其他一些重要的任务将难以获得运行,从而影响系统的控制性能。基于以上原因,基于微控制器设计波形产生的硬件电路可以保证波形产生的实时性。然而,目前的设计思路是将取1个波形周期内足够的数据点数,存储于存储器中,然后将其输出。但该方法没有考虑许多波形的每个周期内的波形数据具有重复性,总是将每个周期内的数据全部写入SRAM中,进一步发出控制命令,将SRAM中的波形数据周期性地输出。
发明内容
本发明的目的是解决现有基于微控制器波形产生系统中因为每个周期波形数据的重复性导致的占用SRAM过大,影响系统的控制性能的问题。
本发明为解决上述技术问题提供一种基于微控制器的波形产生系统,该波形产生系统包括微控制器、双端口SRAM、时钟芯片、分频器、可逆二进制计数器、2位计数器、1位计数器、选择开关、同相比例放大电路和反相比例放大电路,微控制器分别与双端口SRAM、分频器和可逆二进制计数器相连,时钟芯片的输出端与分频器的输入端相连,分频器的输出端与可逆二进制计数器相连,可逆二进制计数器的输出端分别与双端口SRAM、1位计数器和2位计数器相连,双端口SRAM的输出端与同相比例放大电路和反相比例放大电路的输入端相连,同相比例放大电路和反相比例放大电路的输出端与模拟开关相连,1位计数器的输出端和可逆二进制计数器的控制端相连,2位计数器的输出端和选择开关的控制端相连。
所述的微控制器和双端口SRAM之间还设置有译码器、锁存器和缓冲器,微控制器的地址口和译码器输入端相连,译码器输出端和锁存器及缓冲器相连,微控制器的数据口与锁存器和缓冲器相连,译码器用以产生片选信号,锁存器和缓冲器用于扩展微控制器的I/O口。
所述的双端口SRAM的输出端和同相比例放大电路及反相比例放大电路的输入端之间连有D/A转换器,该D/A转换器的输入端与双端口SRAM的输出端相连,该D/A转换器的输出端与同相比例放大电路及反相比例放大电路的输入端相连。
该波形产生系统的工作过程为:
微控制器发出分频控制信号,得到计数器的输入时钟,从而确定波形的周期;同时发出分频器、计数器、SRAM右端口片选信号和读出信号,以及缓冲器使能信号;分频器输出信号作为可逆计数器的时钟,计数器输出作为SRAM的右端口地址信号;SRAM的右端口的数据线即输出了第一个周期的前1/4波形,并经D/A转换,同相比例放大后输出;计数器计数结束,发出计数满输出信号,经过1位计数器产生改变计数方式信号,将计数器由加1计数改为从最大值减1计数,从而输出和前1/4波形关于Y轴对称的波形,并经D/A转换,同相比例放大后输出;当计数又结束,则计数器发出计数满输出信号,并经过1位计数器产生改变计数方式信号,将计数器由减1计数改为从0开始后加1计数,同时经过2位计数器产生模拟开关控制信号,将D/A转换的输出经反相比例放大后输出;当计数再次结束,则计数器发出计数满输出信号,并经过1位计数器产生改变计数方式信号,将计数器由加1计数改为从最大值开始后减1计数,输出数字波形数据经D/A转换后,进一步经反相比例放大后输出,从而得到所需的波形。
本发明为解决上述技术问题还提供一种基于微控制器的波形产生方法,该方法的步骤如下:
1).根据系统对波形的精度和周期要求,计算出波形每个周期内所需的点数和每一点的幅值,并排除掉每个周期内的重复数据,并选择合适容量和数据位数的双端口SRAM;
2).根据波形的周期,选择合适的时钟电路和分频电路,产生合适的时钟信号作为可逆二进制计数器的计数时钟,其输出的二进制计数信号作为SRAM的右端口地址线;
3).微控制器通过双端口SRAM的左端口将波形周期中初始的一段没有重复的波形数据写入SRAM中;
4).微控制器发出命令,选中计数器和双端口SRAM,计数器正向计数,逐个选中双端口SRAM中的波形数据,并将SRAM中的波形数据输出,然后数字波形转换成模拟波形;
5).如果周期内后面的一段波形数据和存储在SRAM中的波形数据大小关于纵轴对称,则利用可逆二进制计数器计数完毕信号,并在其开始重新计数之前,将可逆二进制计数器设置为反向计数,然后将存储在SRAM中的波形数据经数模转换和正相放大电路后输出波形;
6).如果周期内后面的一段波形数据和存储在SRAM中的波形数据大小关于横轴对称,则利用可逆二进制计数器计数完毕信号,并在其开始重新计数之前,将放大电路设置为反相放大电路,然后将存储在SRAM中的波形数据经数模转换和反相放大电路后输出;
7).重复执行步骤4至6直至产生出所需波形。
本发明的有益效果是:本发明根据每个周期内的波形数据具有重复性的特点,计算出波形每个周期内所需的点数和每一点的幅值,并排除掉每个周期内的重复数据,将没有重复数据的波形数据写入双端口SRAM中,然后利用周期内后面的一段波形数据和存储在SRAM中的波形数据大小对称性,将存储在SRAM中的波形数据经数模转换和合适的放大电路后输出。本发明可以提高每个周期内数据个数,从而提高波形精度;或者排除掉重复性数据后,只存储基本波形数据,可以减少SRAM的大小,减少设计成本。
附图说明
图1是本发明实施例中需要产生的波形图;
图2是本发明实施例中波形产生系统结构图;
图3是本发明实施例中波形产生流程图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
本发明的一种基于微控制器的波形产生系统的实施例
本发明以产生如图1所示的波形为例,来详细介绍产生该波形的系统图,如图2所示,该电路包括微控制器、用以产生片选信号的译码器、用以扩展I/O口的缓冲器和锁存器、用以存储数字波形数据的双端口SRAM、产生基本时钟的时钟芯片、用以产生系统所需不同时钟的分频器、用以产生SRAM地址的0~5V输出的8位可逆二进制计数器、用以将数字波形转换为模拟波形的8位D/A转换器、用以判断关于y轴对称的重复数据产生的1位计数器、用以判断关于x轴对称的重复数据产生的2位计数器、用以选择同相还是反相信号输出的模拟开关、同相比例放大电路和将信号反相并放大的反相比例放大电路,微控制器的地址口与译码器相连,译码器的输出端与3个8位锁存器和1个8位缓冲器相连,微控制器的数据口与3个8位锁存器和1个8位缓冲器相连。
该波形产生系统的工作流程如图3所示,其具体过程如下:
步骤1:假定根据实际需要,系统确定波形包含256点,并已计算了每一点的数值,系统选择了8位双端口SRAM,双端口SRAM具有8根地址线;
步骤2:微控制器通过锁存器3向双端口SRAM的左端口发出地址信号;
步骤3:微控制器通过锁存器2向双端口SRAM的左端口发出数据信号,该数据代表了数字波形的大小;
步骤4:微控制器通过锁存器1向双端口SRAM的左端口发出片选信号和写信号,将数字波形的幅值写入SRAM;
步骤5:重复步骤2、3和4,将波形所有点的幅值写入双端口SRAM;
步骤6:通过锁存器1发出8位可逆计数器、1位计数器、2位计数器的复位信号,将其输出复位为0;
步骤6:通过锁存器1同时发出分频器、计数器、SRAM右端口片选信号、以及8位缓冲器4的使能信号;
步骤8:8位可逆二进制计数器开始从0计数,其输出作为双端口SRAM的右端口8位地址,从而将SRAM中存储的8位数字波形数据通过8位缓冲器4输出,从而产生了1个波形周期内的前1/4波形。该数字波形经2倍同相比例放大电路输出;
步骤9:计数结束,8位可逆二进制计数器产生计数结束信号,使1位计数器和2位计数器开始计数,并且1位计数器输出信号发生反转,从而将8位可逆二进制计数器改为减1计数;
步骤10:8位可逆二进制计数器开始从0FF开始作减1计数,其输出作为双端口SRAM的右端口8位地址,从而将SRAM中存储的8位数字波形数据通过8位缓冲器4输出,从而产生了1个波形周期内的第2个1/4波形。该数字波形经过2倍同相比例放大电路输出;
步骤11:计数结束,8位可逆二进制计数器产生计数结束信号,使1位计数器和2位计数器开始计数,并且使这两个计数器的输出信号发生反转,从而将8位可逆二进制计数器改为加1计数,使模拟开关选择2倍反相比例放大电路输出;
步骤12: 8位可逆二进制计数器开始从0计数,其输出作为双端口SRAM的右端口8位地址,从而将SRAM中存储的8位数字波形数据通过8位缓冲器4输出,从而产生了1个波形周期内的第3个1/4波形,该数字波形经2倍反相比例放大电路输出;
步骤13:计数结束,8位可逆二进制计数器产生计数结束信号,使1位计数器和2位计数器开始计数,并且1位计数器输出信号发生反转,从而将8位可逆二进制计数器改为减1计数;
步骤14:8位可逆二进制计数器开始从0FF开始作减1计数,其输出作为双端口SRAM的右端口8位地址,从而将SRAM中存储的8位数字波形数据通过8位缓冲器4输出,从而产生了1个波形周期内的第2个1/4波形。该数字波形经过2倍反相比例放大电路输出;
步骤15:重复步骤8、9、10、11、12、13和14,从而输出所需波形的其余周期。
本发明的一种基于微控制器的波形产生方法的实施例
本发明以产生如图1所示的波形为例,来详细说明产生该波形的方法,其具体步骤如下:
1.假定根据实际需要,系统确定波形包含256个点,计算出波形每个周期内所需的点数和每一点的幅值,并排除掉每个周期内的重复数据,选择8位双端口SRAM,双端口SRAM具有8根地址线。
2.根据波形的周期,选择合适的时钟电路和分频电路,产生合适的时钟信号作为可逆二进制计数器的计数时钟,其输出的二进制计数信号作为SRAM的右端口地址线;
3. 微控制器向双端口SRAM的左端口发出地址信号和数据信号,该数据代表了数字包络线波形的大小,微控制器通过双端口SRAM的左端口将波形周期中初始的一段没有重复的波形数据写入SRAM中。
4.微控制器发出命令,选中计数器和双端口SRAM,计数器正向计数,逐个选中双端口SRAM中的波形数据,并将SRAM中的波形数据输出,然后再数字波形转换成模拟波形。
5.如果周期内后面的一段波形数据和存储在SRAM中的波形数据大小关于纵轴对称,则利用可逆二进制计数器计数完毕信号,并在其开始重新计数之前,将可逆二进制计数器设置为反向计数,然后将存储在SRAM中的波形数据经数模转换和正相放大电路后输出波形。
6.如果周期内后面的一段波形数据和存储在SRAM中的波形数据大小关于横轴对称,则利用可逆二进制计数器计数完毕信号,并在其开始重新计数之前,将放大电路设置为反相放大电路,然后将存储在SRAM中的波形数据经数模转换和反相放大电路后输出。
7.重复执行步骤4至6直至产生出所需波形。
本发明根据每个周期内的波形数据具有重复性的特点,计算出波形每个周期内所需的点数和每一点的幅值,并排除掉每个周期内的重复数据,将没有重复数据的波形数据写入双端口SRAM中,然后利用周期内后面的一段波形数据和存储在SRAM中的波形数据大小对称性,将存储在SRAM中的波形数据经数模转换和合适的放大电路后输出。本发明可以提高每个周期内数据个数,从而提高波形精度;或者排除掉重复性数据后,只存储基本波形数据,可以减少SRAM的大小,减少设计成本。
Claims (5)
1.一种基于微控制器的波形产生系统,其特征在于:该波形产生系统包括微控制器、用以产生片选信号的译码器、用以扩展I/O口的缓冲器和锁存器、D/A转换器、双端口SRAM、时钟芯片、分频器、可逆二进制计数器、用以判断X轴对称的重复数据产生的2位计数器、用以判断Y轴对称的重复数据产生的1位计数器、用以选择同相还是反相信号输出的模拟开关、同相比例放大电路和反相比例放大电路,微控制器分别与双端口SRAM、分频器和可逆二进制计数器相连,时钟芯片的输出端与分频器的输入端相连,分频器的输出端与可逆二进制计数器相连,可逆二进制计数器的输出端分别与双端口SRAM、1位计数器和2位计数器相连,双端口SRAM的输出端与同相比例放大电路和反相比例放大电路的输入端相连,同相比例放大电路和反相比例放大电路的输出端与模拟开关相连,1位计数器的输出端和可逆二进制计数器的控制端相连,2位计数器的输出端和所述模拟开关的控制端相连。
2.根据权利要求1所述的基于微控制器的波形产生系统,其特征在于:所述的微控制器和双端口SRAM之间还设置有译码器、锁存器和缓冲器,微控制器的地址口和译码器输入端相连,译码器输出端和锁存器及缓冲器相连,微控制器的数据口与锁存器和缓冲器相连,译码器用以产生片选信号,锁存器和缓冲器用于扩展微控制器的I/O口。
3.根据权利要求2所述的基于微控制器的波形产生系统,其特征在于:所述的双端口SRAM的输出端和同相比例放大电路及反相比例放大电路的输入端之间连有D/A转换器,该D/A转换器的输入端与双端口SRAM的输出端相连,该D/A转换器的输出端与同向比例放大电路及反向比例放大电路的输入端相连。
4.根据权利要求3所述的基于微控制器的波形产生系统,其特征在于:该波形产生系统的工作过程为:
微控制器发出分频控制信号,得到可逆二进制计数器的输入时钟,从而确定波形的周期,根据波形的周期,选择合适的时钟电路和分频电路;同时发出分频器、计数器、SRAM右端口片选信号和读出信号,以及缓冲器使能信号;分频器输出信号作为可逆计数器的时钟,计数器输出作为SRAM的右端口地址信号;SRAM的右端口的数据线即输出了第一个周期的前1/4波形,并经D/A转换,同相比例放大后输出;计数器计数结束,发出计数满输出信号,经过1位计数器产生改变计数方式信号,将计数器由加1计数改为从最大值减1计数,从而输出和前1/4波形关于Y轴对称的波形,并经D/A转换,同相比例放大后输出;当计数又结束,则计数器发出计数满输出信号,并经过1位计数器产生改变计数方式信号,将计数器由减1计数改为从0开始后加1计数,同时经过2位计数器产生模拟开关控制信号,将D/A转换的输出经反相比例放大后输出;当计数再次结束,则计数器发出计数满输出信号,并经过1位计数器产生改变计数方式信号,将计数器由加1计数改为从最大值开始后减1计数,输出数字波形数据经D/A转换后,进一步经反相比例放大后输出,从而得到所需的波形。
5.一种基于微控制器的波形产生方法,其特征在于:该波形产生方法的步骤如下:
1).根据系统对波形的精度和周期要求,计算出波形每个周期内所需的点数和每一点的幅值,并排除掉每个周期内的重复数据,并选择合适容量和数据位数的双端口SRAM;
2).根据波形的周期,选择合适的时钟电路和分频电路,产生合适的时钟信号作为可逆二进制计数器的计数时钟,其输出的二进制计数信号作为SRAM的右端口地址线;
3).微控制器通过双端口SRAM的左端口将波形周期中初始的一段没有重复的波形数据写入SRAM中;
4).微控制器发出命令,选中计数器和双端口SRAM,可逆二进制计数器正向计数,逐个选中双端口SRAM中的波形数据,并将SRAM中的波形数据输出,然后数字波形转换成模拟波形;
5).如果周期内后面的一段波形数据和存储在SRAM中的波形数据大小关于纵轴对称,则利用可逆二进制计数器计数完毕信号,并在其开始重新计数之前,将可逆二进制计数器设置为反向计数,然后将存储在SRAM中的波形数据经数模转换和正相放大电路后输出波形;
6).如果周期内后面的一段波形数据和存储在SRAM中的波形数据大小关于横轴对称,则利用可逆二进制计数器计数完毕信号,并在其开始重新计数之前,将放大电路设置为反相放大电路,然后将存储在SRAM中的波形数据经数模转换和反相放大电路后输出;
7).重复执行步骤4至6直至产生出所需波形。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210005891.0A CN102684648B (zh) | 2012-01-10 | 2012-01-10 | 一种基于微控制器的波形产生系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210005891.0A CN102684648B (zh) | 2012-01-10 | 2012-01-10 | 一种基于微控制器的波形产生系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102684648A CN102684648A (zh) | 2012-09-19 |
CN102684648B true CN102684648B (zh) | 2014-07-30 |
Family
ID=46816111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210005891.0A Expired - Fee Related CN102684648B (zh) | 2012-01-10 | 2012-01-10 | 一种基于微控制器的波形产生系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102684648B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104733039B (zh) * | 2015-01-19 | 2017-08-08 | 上海华虹宏力半导体制造有限公司 | 双端口sram的时序控制电路 |
CN112069768A (zh) * | 2020-09-08 | 2020-12-11 | 天津飞腾信息技术有限公司 | 一种针对双端口sram输入输出延时优化的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5258937A (en) * | 1992-04-13 | 1993-11-02 | The United States Of Amwerica As Represented By The Secretary Of The Navy | Arbitrary waveform generator |
CN1957857A (zh) * | 2006-10-17 | 2007-05-09 | 北京市亚可康达技术研究所 | 基于直接数字频率合成技术的高频电刀输出波形的控制装置 |
CN101243424A (zh) * | 2005-08-22 | 2008-08-13 | Nxp股份有限公司 | 微控制器波形发生 |
CN201708773U (zh) * | 2010-05-28 | 2011-01-12 | 深圳职业技术学院 | 一种任意波形发生器 |
CN202475379U (zh) * | 2012-01-10 | 2012-10-03 | 河南科技大学 | 一种基于微控制器的波形产生系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7477176B2 (en) * | 2005-07-28 | 2009-01-13 | International Business Machines Corporation | Method and apparatus for generating multiple analog signals using a single microcontroller output pin |
-
2012
- 2012-01-10 CN CN201210005891.0A patent/CN102684648B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5258937A (en) * | 1992-04-13 | 1993-11-02 | The United States Of Amwerica As Represented By The Secretary Of The Navy | Arbitrary waveform generator |
CN101243424A (zh) * | 2005-08-22 | 2008-08-13 | Nxp股份有限公司 | 微控制器波形发生 |
CN1957857A (zh) * | 2006-10-17 | 2007-05-09 | 北京市亚可康达技术研究所 | 基于直接数字频率合成技术的高频电刀输出波形的控制装置 |
CN201708773U (zh) * | 2010-05-28 | 2011-01-12 | 深圳职业技术学院 | 一种任意波形发生器 |
CN202475379U (zh) * | 2012-01-10 | 2012-10-03 | 河南科技大学 | 一种基于微控制器的波形产生系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102684648A (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110836993B (zh) | 基于fpga的随机等效采集系统 | |
US8736477B2 (en) | Low-memory-usage arbitrary waveform representation or generation | |
CN108535507B (zh) | 用于增量式编码器测速的计算机存储介质 | |
CN101860358A (zh) | 一种单光子计数系统及计数方法 | |
CN102684648B (zh) | 一种基于微控制器的波形产生系统及方法 | |
CN101710136A (zh) | 一种序列波形发生器 | |
JP6433955B2 (ja) | 高分解能の時間−ディジタル変換器 | |
CN103558434A (zh) | 一种快速定位数字示波器触发点系统 | |
JP4425537B2 (ja) | 試験装置、及び試験方法 | |
CN202475379U (zh) | 一种基于微控制器的波形产生系统 | |
CN101917204B (zh) | 扫频接收机的扫描控制参数的计算与数字控制方法 | |
CN109308275B (zh) | 一种正交编码脉冲的转换系统及方法 | |
CN105680800A (zh) | 一种具有扫频功能的信号发生器 | |
CN209842447U (zh) | 一种跨时钟域信号同步电路 | |
CN115629371A (zh) | 发射延时控制方法、装置、控制器、芯片和超声系统 | |
CN112711393B (zh) | 一种基于fpga的实时多通道累加方法 | |
CN103377029B (zh) | 参数化的通用fifo控制方法 | |
CN209417720U (zh) | 二进制至格雷转换电路和fifo存储器 | |
KR101912905B1 (ko) | 카스 레이턴시 설정 회로 및 이를 포함하는 반도체 메모리 장치 | |
CN206249288U (zh) | 一种采用动态存储器的数字ate实现失效转移的装置 | |
CN203632631U (zh) | 非交叠时钟产生电路 | |
CN110609463A (zh) | 一种基于fpga的激光雷达多脉冲时间间隔测量系统 | |
CN102208973B (zh) | 一种数据流传输的方法和装置 | |
JPH052030A (ja) | デイジタルストレ−ジオシロスコ−プ | |
CN116560453A (zh) | 一种高精度波形产生系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140730 Termination date: 20150110 |
|
EXPY | Termination of patent right or utility model |