一种基于微控制器的波形产生系统及方法

文档序号:7533418阅读:442来源:国知局
专利名称:一种基于微控制器的波形产生系统及方法
技术领域
本发明涉及一种基于微控制器的波形产生系统及方法。
背景技术
目前,设备常采用嵌入式微控制器作为主控制器。遗憾地是,如果利用微控制器指令执行的直接结果产生特定波形,那么这种波形的实现是不现实的,这主要有以下原因一是CPU需要执行较高优先级的控制任务、异步中断服务等使CPU指令序列发生变化;另一方面如果CPU在某一时间段,将所有的时间都应用于数字波形产生的指令序列,那么其他一些重要的任务将难以获得运行,从而影响系统的控制性能。基于以上原因,基于微控制器设计波形产生的硬件电路可以保证波形产生的实时性。然而,目前的设计思路是将取I个波形周期内足够的数据点数,存储于存储器中,然后将其输出。但该方法没有考虑许多波形的每个周期内的波形数据具有重复性,总是将每个周期内的数据全部写入SRAM中,进一步发出控制命令,将SRAM中的波形数据周期性地输出。

发明内容
本发明的目的是解决现有基于微控制器波形产生系统中因为每个周期波形数据的重复性导致的占用SRAM过大,影响系统的控制性能的问题。本发明为解决上述技术问题提供一种基于微控制器的波形产生系统,该波形产生系统包括微控制器、双端口 SRAM、时钟芯片、分频器、可逆二进制计数器、2位计数器、I位计数器、选择开关、同相比例放大电路和反相比例放大电路,微控制器分别与双端口 SRAM、分频器和可逆二进制计数器相连,时钟芯片的输出端与分频器的输入端相连,分频器的输出端与可逆二进制计数器相连,可逆二进制计数器的输出端分别与双端口 SRAM、1位计数器和2位计数器相连,双端口 SRAM的输出端与同相比例放大电路和反相比例放大电路的输入端相连,同相比例放大电路和反相比例放大电路的输出端与模拟开关相连,I位计数器的输出端和可逆二进制计数器的控制端相连,2位计数器的输出端和选择开关的控制端相连。所述的微控制器和双端口 SRAM之间还设置有译码器、锁存器和缓冲器,微控制器的地址口和译码器输入端相连,译码器输出端和锁存器及缓冲器相连,微控制器的数据口与锁存器和缓冲器相连,译码器用以产生片选信号,锁存器和缓冲器用于扩展微控制器的I/O 口。所述的双端口 SRAM的输出端和同相比例放大电路及反相比例放大电路的输入端之间连有D/A转换器,该D/A转换器的输入端与双端口 SRAM的输出端相连,该D/A转换器的输出端与同相比例放大电路及反相比例放大电路的输入端相连。该波形产生系统的工作过程为
微控制器发出分频控制信号,得到计数器的输入时钟,从而确定波形的周期;同时发出分频器、计数器、SRAM右端口片选信号和读出信号,以及缓冲器使能信号;分频器输出信号作为可逆计数器的时钟,计数器输出作为SRAM的右端口地址信号;SRAM的右端口的数据线即输出了第一个周期的前1/4波形,并经D/A转换,同相比例放大后输出;计数器计数结束,发出计数满输出信号,经过I位计数器产生改变计数方式信号,将计数器由加I计数改为从最大值减I计数,从而输出和前1/4波形关于Y轴对称的波形,并经D/A转换,同相比例放大后输出;当计数又结束,则计数器发出计数满输出信号,并经过I位计数器产生改变计数方式信号,将计数器由减I计数改为从O开始后加I计数,同时经过2位计数器产生模拟开关控制信号,将D/A转换的输出经反相比例放大后输出;当计数再次结束,则计数器发出计数满输出信号,并经过I位计数器产生改变计数方式信号,将计数器由加I计数改为从最大值开始后减I计数,输出数字波形数据经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的大小,减少设计成本。


图I是本发明实施例中需要产生的波形 图2是本发明实施例中波形产生系统结构 图3是本发明实施例中波形产生流程图。
具体实施例方式下面结合附图对本发明的具体实施方式
做进一步说明。本发明的一种基于微控制器的波形产生系统的实施例
本发明以产生如图I所示的波形为例,来详细介绍产生该波形的系统图,如图2所示,该电路包括微控制器、用以产生片选信号的译码器、用以扩展I/O 口的缓冲器和锁存器、用以存储数字波形数据的双端口 SRAM、产生基本时钟的时钟芯片、用以产生系统所需不同时钟的分频器、用以产生SRAM地址的0 5V输出的8位可逆二进制计数器、用以将数字波形转换为模拟波形的8位D/A转换器、用以判断关于y轴对称的重复数据产生的I位计数器、用以判断关于X轴对称的重复数据产生的2位计数器、用以选择同相还是反相信号输出的模拟开关、同相比例放大电路和将信号反相并放大的反相比例放大电路,微控制器的地址口与译码器相连,译码器的输出端与3个8位锁存器和I个8位缓冲器相连,微控制器的数据口与3个8位锁存器和I个8位缓冲器相连。

该波形产生系统的工作流程如图3所示,其具体过程如下
步骤I :假定根据实际需要,系统确定波形包含256点,并已计算了每一点的数值,系统选择了 8位双端口 SRAM,双端口 SRAM具有8根地址线;
步骤2 :微控制器通过锁存器3向双端口 SRAM的左端口发出地址信号;
步骤3 :微控制器通过锁存器2向双端口 SRAM的左端口发出数据信号,该数据代表了数字波形的大小;
步骤4 :微控制器通过锁存器I向双端口 SRAM的左端口发出片选信号和写信号,将数字波形的幅值写入SRAM ;
步骤5 :重复步骤2、3和4,将波形所有点的幅值写入双端口 SRAM ;
步骤6 :通过锁存器I发出8位可逆计数器、I位计数器、2位计数器的复位信号,将其输出复位为0 ;
步骤6 :通过锁存器I同时发出分频器、计数器、SRAM右端口片选信号、以及8位缓冲器4的使能信号;
步骤8 8位可逆二进制计数器开始从0计数,其输出作为双端口 SRAM的右端口 8位地址,从而将SRAM中存储的8位数字波形数据通过8位缓冲器4输出,从而产生了 I个波形周期内的前1/4波形。该数字波形经2倍同相比例放大电路输出;
步骤9 :计数结束,8位可逆二进制计数器产生计数结束信号,使I位计数器和2位计数器开始计数,并且I位计数器输出信号发生反转,从而将8位可逆二进制计数器改为减I计数;
步骤10 8位可逆二进制计数器开始从OFF开始作减I计数,其输出作为双端口 SRAM的右端口 8位地址,从而将SRAM中存储的8位数字波形数据通过8位缓冲器4输出,从而产生了 I个波形周期内的第2个1/4波形。该数字波形经过2倍同相比例放大电路输出;步骤11 :计数结束,8位可逆二进制计数器产生计数结束信号,使I位计数器和2位计数器开始计数,并且使这两个计数器的输出信号发生反转,从而将8位可逆二进制计数器改为加I计数,使模拟开关选择2倍反相比例放大电路输出;
步骤12: 8位可逆二进制计数器开始从0计数,其输出作为双端口 SRAM的右端口 8位地址,从而将SRAM中存储的8位数字波形数据通过8位缓冲器4输出,从而产生了 I个波形周期内的第3个1/4波形,该数字波形经2倍反相比例放大电路输出;
步骤13 :计数结束,8位可逆二进制计数器产生计数结束信号,使I位计数器和2位计数器开始计数,并且I位计数器输出信号发生反转,从而将8位可逆二进制计数器改为减I计数;
步骤14 8位可逆二进制计数器开始从OFF开始作减I计数,其输出作为双端口 SRAM的右端口 8位地址,从而将SRAM中存储的8位数字波形数据通过8位缓冲器4输出,从而产生了 I个波形周期内的第2个1/4波形。该数字波形经过2倍反相比例放大电路输出;步骤15 :重复步骤8、9、10、11、12、13和14,从而输出所需波形的其余周期。本发明的一种基于微控制器的波形产生方法的实施例 本发明以产生如图I所示的波形为例,来详细说明产生该波形的方法,其具体步骤如

I.假定根据实际需要,系统确定波形包含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的大小,减少设计成本。
权利要求
1.一种基于微控制器的波形产生系统,其特征在于该波形产生系统包括微控制器、双端口 SRAM、时钟芯片、分频器、可逆二进制计数器、2位计数器、I位计数器、选择开关、同相比例放大电路和反相比例放大电路,微控制器分别与双端口 SRAM、分频器和可逆二进制计数器相连,时钟芯片的输出端与分频器的输入端相连,分频器的输出端与可逆二进制计数器相连,可逆二进制计数器的输出端分别与双端口 SRAM、1位计数器和2位计数器相连,双端口 SRAM的输出端与同相比例放大电路和反相比例放大电路的输入端相连,同相比例放大电路和反相比例放大电路的输出端与模拟开关相连,I位计数器的输出端和可逆二进制计数器的控制端相连,2位计数器的输出端和选择开关的控制端相连。
2.根据权利要求I所述的基于微控制器的波形产生系统,其特征在于所述的微控制器和双端口 SRAM之间还设置有译码器、锁存器和缓冲器,微控制器的地址口和译码器输入端相连,译码器输出端和锁存器及缓冲器相连,微控制器的数据口与锁存器和缓冲器相连,译码器用以产生片选信号,锁存器和缓冲器用于扩展微控制器的I/O 口。
3.根据权利要求2所述的基于微控制器的波形产生系统,其特征在于所述的双端口SRAM的输出端和同相比例放大电路及反相比例放大电路的输入端之间连有D/A转换器,该D/A转换器的输入端与双端口 SRAM的输出端相连,该D/A转换器的输出端与同向比例放大电路及反向比例放大电路的输入端相连。
4.根据权利要求3所述的基于微控制器的波形产生系统,其特征在于该波形产生系统的工作过程为 微控制器发出分频控制信号,得到计数器的输入时钟,从而确定波形的周期;同时发出分频器、计数器、SRAM右端口片选信号和读出信号,以及缓冲器使能信号;分频器输出信号作为可逆计数器的时钟,计数器输出作为SRAM的右端口地址信号;SRAM的右端口的数据线即输出了第一个周期的前1/4波形,并经D/A转换,同相比例放大后输出;计数器计数结束,发出计数满输出信号,经过I位计数器产生改变计数方式信号,将计数器由加I计数改为从最大值减I计数,从而输出和前1/4波形关于Y轴对称的波形,并经D/A转换,同相比例放大后输出;当计数又结束,则计数器发出计数满输出信号,并经过I位计数器产生改变计数方式信号,将计数器由减I计数改为从O开始后加I计数,同时经过2位计数器产生模拟开关控制信号,将D/A转换的输出经反相比例放大后输出;当计数再次结束,则计数器发出计数满输出信号,并经过I位计数器产生改变计数方式信号,将计数器由加I计数改为从最大值开始后减I计数,输出数字波形数据经D/A转换后,进一步经反相比例放大后输出,从而得到所需的波形。
5.一种基于微控制器的波形产生方法,其特征在于该波形产生方法的步骤如下 1) 根据系统对波形的精度和周期要求,计算出波形每个周期内所需的点数和每一点的幅值,并排除掉每个周期内的重复数据,并选择合适容量和数据位数的双端口 SRAM ; 2).根据波形的周期,选择合适的时钟电路和分频电路,产生合适的时钟信号作为可逆二进制计数器的计数时钟,其输出的二进制计数信号作为SRAM的右端口地址线; 3).微控制器通过双端口SRAM的左端口将波形周期中初始的一段没有重复的波形数据写入SRAM中; 4).微控制器发出命令,选中计数器和双端口SRAM,计数器正向计数,逐个选中双端口SRAM中的波形数据,并将SRAM中的波形数据输出,然后数字波形转换成模拟波形;5).如果周期内后面的一段波形数据和存储在SRAM中的波形数据大小关于纵轴对称,则利用可逆二进制计数器计数完毕信号,并在其开始重新计数之前,将可逆二进制计数器设置为反向计数,然后将存储在SRAM中的波形数据经数模转换和正相放大电路后输出波形; 6).如果周期内后面的一段波形数据和存储在SRAM中的波形数据大小关于横轴对称,则利用可逆二进制计数器计数完毕信号,并在其开始重新计数之前,将放大电路设置为反 相放大电路,然后将存储在SRAM中的波形数据经数模转换和反相放大电路后输出; 7).重复执行步骤4至6直至产生出所需波形。
全文摘要
本发明涉及一种基于微控制器的波形产生系统及方法,本发明通过利用微控制器、双端口SRAM和可逆二进制计数器,首先将波形周期中初始的一段没有重复的波形数据写入SRAM中,然后利用周期内后面的一段波形数据和存储在SRAM中波形数据大小的对称性,并使用可逆二进制计数器计数完毕信号,使其在开始重新计数之前,选择计数方式和放大电路形式,然后计数器工作并将存储在SRAM中的波形数据经数模转换和合适的放大电路后输出。本发明可以提高每个周期内数据个数,从而提高波形精度,排除掉重复性数据后,只存储基本波形数据,可以减少SRAM的大小,降低设计成本。
文档编号H03K3/02GK102684648SQ20121000589
公开日2012年9月19日 申请日期2012年1月10日 优先权日2012年1月10日
发明者叶宇程, 张海涛, 张聚伟, 梁云朋, 白舸 申请人:河南科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1