基于CPLD和单片机的任意波形发生器设计
发布时间:2008/5/28 0:00:00 访问次数:529
在电子工程设计与测试中,常常需要一些复杂的、具有特殊要求的信号,要求其波形可任意产生,频率方便可调。通常的信号产生器难以满足要求,市场上出售的任意信号产生器价格昂贵。结合实际需要,我们设计了一种任意波形发生器。电路设计中充分利用matlab的仿真功能,将希望得到的波形信号在matlab中完成信号的产生、抽样和模数转换,并将得到的数字波形数据存放在数据存储器中,通过单片机和cpld控制,将波形数据读出,送入后向通道进行a/d转换和放大处理后得到所需的模拟信号波形。利用上述方法设计的任意波形发生器,信号产生灵活方便、功能扩展灵活、信号参数可调,实现了硬件电路的软件化设计。具有电路结构简单、实用性强、成本低廉等优点。
系统框图
&nb
|
sp;任意波形发生器的设计思想,是利用matlab的强大仿真功能,方便、快捷的生成给定频率、周期、脉宽的任意波形数据;并将数据预存在数据存储器中。在单片机控制下,利用cpld电路产生地址读出数据,送入d/a转换电路,得到所需的任意波形信号。系统结构框图如图1;图中分频电路和地址发生器由cpld实现。
图1 系统框图
电路设计及实现
单片机控制电路
单片机采用at89c52芯片,通过软件编程产生所要求的控制信号。主要的控制参数包括:信号周期、脉宽;分频电路的开始信号、地址发生器的复位信号;e2prom的选通信号;d/a转换电路的选通信号。在具体电路中,端口p1.0控制分频电路的启动、p1.1控制地址发生器的清零,p2.0控制28c256和ad7545的选通信号。单片机工作在定时器0方式,软件设计利用c语言实现。流程图如图2所示。
图2 软件流程图
波形数据生成
matlab作为一款优秀的数学工具软件,具有强大的运算功能;可以方便的产生各种信号波形,在软件中实现波形信号的产生、抽样和模数转换。设计的任意波形发生器,数据存储器选用28c256芯片,信号波形通过matlab仿真产生;得到的波形数据存放在数据存储器28c256中。具体设计中,我们要求产生周期为200ms,脉宽为5ms的单/调频混合信号,其中单频信号的脉宽为4ms,频率为30khz;调频信号的脉宽为1ms,频率为30khz_35khz。在matlab中设定抽样率为500khz,得到了2500个波形数据。这些混合波形数据在烧录入数据存储器的过程中,由于波形数据较多,直接用手工录入数据存储器中不仅费时且容易出错。为克服这一弊端,通过matlab编程的方法将产生的波形数据按照hex文件的intel格式存放,然后将这些波形数据整批次烧录入数据存储器中。采用上述方法,波形数据生成简单,快捷;可根据需要在软件程序中方便地修改信号参数;无需改动硬件电路即可实现信号参数的功能扩展。
cpld逻辑设计
分频电路采用两片74hc163实现。通过分频电路,将12mhz的晶振标准频率分频后,得到500khz的抽样频率,作为地址发生器的时钟。分频电路的工作由单片机控制。
地址发生器电路由3片74hc163组成,时钟频率为500khz,有分频电路提供;和预存的波形数据抽样频率相一致,以实现数据的无失真读出。电路设计中,采用altra公司的epm7128aetc100-10芯片,在max+plusⅱ开发环境中完成分频缏泛偷刂贩⑸鞯缏返纳杓啤;贑pld的电路设计,可以省去大部分的中小规模集成电路和分离元件;使得电路具有集成度高、工作速度快、编程方便、价格低廉的显著优点。通过cpld和数据预生成的信号实现方法,无需改变硬件电路,即可实现信号参数的任意调整;同时外围电路十分简单,为工程调试和应用带来了方便。
d/a转换电路
d/a转换电路的实现如图3所示。 电路中,ad7545将波形数据转换为模拟信号;lf353进行信号滤波和整形。
图3 d
在电子工程设计与测试中,常常需要一些复杂的、具有特殊要求的信号,要求其波形可任意产生,频率方便可调。通常的信号产生器难以满足要求,市场上出售的任意信号产生器价格昂贵。结合实际需要,我们设计了一种任意波形发生器。电路设计中充分利用matlab的仿真功能,将希望得到的波形信号在matlab中完成信号的产生、抽样和模数转换,并将得到的数字波形数据存放在数据存储器中,通过单片机和cpld控制,将波形数据读出,送入后向通道进行a/d转换和放大处理后得到所需的模拟信号波形。利用上述方法设计的任意波形发生器,信号产生灵活方便、功能扩展灵活、信号参数可调,实现了硬件电路的软件化设计。具有电路结构简单、实用性强、成本低廉等优点。
系统框图
&nb
|
sp;任意波形发生器的设计思想,是利用matlab的强大仿真功能,方便、快捷的生成给定频率、周期、脉宽的任意波形数据;并将数据预存在数据存储器中。在单片机控制下,利用cpld电路产生地址读出数据,送入d/a转换电路,得到所需的任意波形信号。系统结构框图如图1;图中分频电路和地址发生器由cpld实现。
图1 系统框图
电路设计及实现
单片机控制电路
单片机采用at89c52芯片,通过软件编程产生所要求的控制信号。主要的控制参数包括:信号周期、脉宽;分频电路的开始信号、地址发生器的复位信号;e2prom的选通信号;d/a转换电路的选通信号。在具体电路中,端口p1.0控制分频电路的启动、p1.1控制地址发生器的清零,p2.0控制28c256和ad7545的选通信号。单片机工作在定时器0方式,软件设计利用c语言实现。流程图如图2所示。
图2 软件流程图
波形数据生成
matlab作为一款优秀的数学工具软件,具有强大的运算功能;可以方便的产生各种信号波形,在软件中实现波形信号的产生、抽样和模数转换。设计的任意波形发生器,数据存储器选用28c256芯片,信号波形通过matlab仿真产生;得到的波形数据存放在数据存储器28c256中。具体设计中,我们要求产生周期为200ms,脉宽为5ms的单/调频混合信号,其中单频信号的脉宽为4ms,频率为30khz;调频信号的脉宽为1ms,频率为30khz_35khz。在matlab中设定抽样率为500khz,得到了2500个波形数据。这些混合波形数据在烧录入数据存储器的过程中,由于波形数据较多,直接用手工录入数据存储器中不仅费时且容易出错。为克服这一弊端,通过matlab编程的方法将产生的波形数据按照hex文件的intel格式存放,然后将这些波形数据整批次烧录入数据存储器中。采用上述方法,波形数据生成简单,快捷;可根据需要在软件程序中方便地修改信号参数;无需改动硬件电路即可实现信号参数的功能扩展。
cpld逻辑设计
分频电路采用两片74hc163实现。通过分频电路,将12mhz的晶振标准频率分频后,得到500khz的抽样频率,作为地址发生器的时钟。分频电路的工作由单片机控制。
地址发生器电路由3片74hc163组成,时钟频率为500khz,有分频电路提供;和预存的波形数据抽样频率相一致,以实现数据的无失真读出。电路设计中,采用altra公司的epm7128aetc100-10芯片,在max+plusⅱ开发环境中完成分频缏泛偷刂贩⑸鞯缏返纳杓啤;贑pld的电路设计,可以省去大部分的中小规模集成电路和分离元件;使得电路具有集成度高、工作速度快、编程方便、价格低廉的显著优点。通过cpld和数据预生成的信号实现方法,无需改变硬件电路,即可实现信号参数的任意调整;同时外围电路十分简单,为工程调试和应用带来了方便。
d/a转换电路
d/a转换电路的实现如图3所示。 电路中,ad7545将波形数据转换为模拟信号;lf353进行信号滤波和整形。
图3 d
上一篇:Cadence逻辑设计解决方案