徐晓霞
(西安工业大学北方信息工程学院 电子信息系,陕西 西安 710025)
正弦信号发生器是一种广泛应用的信号源。随着电子技术的不断发展与进步,现代的电子测量、通信系统越来越需要有高精度和灵活的正弦信号发生器进行测量和调试。而ARM芯片在当今由于其高性能、低成本、低功耗,可扩展性强,正被广泛应用于便捷式仪器的设计。因此,为了满足对仪器便捷﹑灵活及待机时间长等的要求,文中利用DDS技术通过ARM控制,设计了一种便携式的正弦信号发生器,该信号发生器的频率范围在0~25 kHz,频率分辨率为1 Hz,输出幅度为5 V。
对系统总体设计方案充分理解的基础上,按照模块化的设计思想,合理划分各个不同单元待实现的功能,从而形成了系统总体方案设计框图,如图1所示。
图1 正弦信号源总体设计方案图Fig.1 Design plans of the sinusoidal signal source
此方案的工作原理及各部分的功能如下:
1)电平转换模块主要是完成232电平和TTL电平的转换,以便通过串口把检测到的有效值发送到上位机界面进行同步显示。
2)ARM处理器是整个方案的控制核心,采用的是STM32芯片。其接收操作人员通过上位机软件发出的各种操作指令以及从按键上输入的指令,按照这些指令的要求,控制信号产生芯片产生所需的幅度、频率信号。
3)按键模块是控制系统中人机交互的一部分,采用的是4个独立键盘。操作人员通过键盘输入想要产生波形的参数,送给处理器进行处理。
4)显示模块采用NOKIA5110液晶显示屏显示模块。是将要产生的波形信息利用显示屏进行显示,可以使操作人员很直观的知道波形的幅值和频率。
5)DDS模块是合成所需频率的合成器,该模块选用的ML2035芯片。模块通过ARM处理器进行控制产生所需的频率。
6)信号放大模块完成对信号的幅度放大,满足正弦信号幅值实际应用的需求。
处理器电路设计包括STM32F103RCT6芯片所用外围管脚连接、晶振电路设计、去耦电路设计、复位电路设计、JTAG调试电路设计。
2.1.1 晶振电路
晶振是为处理器STM32提供频率基准的元器件,属于最小系统中不可或缺的一部分。晶振电路用于向处理器提供工作时钟。本系统最小系统晶振电路即时钟源包括两部分:
1)在引脚OSC_IN和OSC_OUT跨接晶振Y1和电容C16、C17共同构成电容三点式振荡电路;
2)在引脚PC14和PC15跨接晶振Y2和电容C17、C18共同构成电容三点式振荡电路。
本系统使用无源晶振8MHz作为系统的主振荡器,一个32.768kHz的晶振作为内置实时时钟(RTC)振荡器。晶体振荡器的连接如图2所示。
图2 晶振电路Fig.2 Crystal oscillator circuit
2.1.2 去耦电路
电路中存在模拟和数字电源,需要加入电感和电容组成去耦电路。STM32中有3组VDD/VSS管脚,有1组VDDA/VSSA管脚。尽管所有的VDD和所有VSS在内部相连,在芯片外部仍然需要连接所有的VDD和VSS。模拟电源与数字电源去耦电路如图3所示。
图3 去耦及隔离电路Fig.3 Decoupling and isolation circuit
2.1.3 复位电路
复位电路的基本功能是让系统上电时提供复位信号,直至电源稳定后,撤销复位信号。本系统采用简单的“RC+按键”复位形式,该复位电路可以实现上电自动复位和手动按键复位。如图4为复位电路原理图。
图4 复位电路Fig.4 Reset circuit
2.1.4 JTAG电路
标准的 JTAG 接口是 4 线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。系统的JTAG除了上面的4线外,还与处理器连接接了测试系统复位信号线TRST,并且还必须把测试时钟返回信号RTCK拉低。系统20针JTAG电路连接如图5所示。
图5 系统20针JTAG电路连接图Fig.5 Connection diagram of the system 20-pin JTAG circuit
DDS芯片选择ML2035,本发生器输出的低频信号主要由STM32通过SPI1接口来控制ML2035产生。ML2035原理图如图6所示。ML2035的外围晶振选用6.5536 MHz可以满足技术要求,使用的是STM32的SPI1接口。PA5为SPI1的时钟端(SCK),PA6 为主机输入从机输出端(MISO),PB4(NSS)为从机选择端。
图6 ML2035原理图Fig.6 Schematic of Ml2035
在NOKIA5110液晶显示屏中可以显示出信号源的频率和幅值,本系统LCD和STM32之间采用的是SPI串行数据传输,采用直接背光的形式,液晶显示电路的设计如图7所示。
图7 NOKIA5110液晶显示屏电路Fig.7 NOKIA5110 LCD display circuit
采用4个独立按键,每个按键占用一条I/O线,按键与处理器的PA0~PA3进行连接,按下为0,不按为1,如图8按键电路所示。按键电路主要完成4个功能,对初始化的频率值加、减和选择+5 V、+10 V输出。
图8 按键电路Fig.8 Key circuit
采用LM321设计信号放大电路。LM321是高增益,内部频率补偿运算放大器。信号放大电路图如图9所示。
图9 信号放大电路Fig.9 Signal amplifying circuit
RS-232C电平与单片机的TTL电平不匹配,通讯时必须对两种电平进行转换。系统利用的是处理器的串口1,所以处理器的PA9和PA10还要与MAX232进行连接。电平转换电路原理图设计如图10所示。
图10 电平转换电路原理图Fig.10 Schematic of level conversion circuit
ML2035驱动程序是通过处理器STM32的SPI1口发送控制字给ML2035,包括SPI1的初始化程序和SPI1读写程序,程序如下:
u16 SPI1_ReadWrite(u16 writedat)//SPI1读写一字数据{while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE)==RESET);*Loop while DR register in not emplty*/
SPI_I2S_SendData(SPI1,writedat);/*Send byte through the SPI1 peripheral*/}
3.2.1 NOKIA5110液晶显示程序
NOKIA5110液晶显示程序的流程图如图11所示,本系统写NOKIA5110显示程序采用CPIO模拟SPI。
图11 LCD显示程序流程图Fig.11 Flow chart of LCD display program
程序代码编写如下:
LCD_write_byte(0x21,0);//LCD功能设置:芯片活动,水平寻址,使用扩展指令
LCD_write_byte(0xd0,0);//设置VOP值,室温下的编程范围为3.00-10.68
LCD_write_byte(0x20,0);//LCD功能设置:芯片活动,水平寻址,使用基本指令
LCD_write_byte(0x0C,0);//设定显示配置:普通模式set_SCE();}
3.2.2 按键扫描程序
按键扫描程序依次扫描4个按键,使用一个u8变量的低4位存储扫描结果,如果对应位上的按键被按下,则该位置0,否则,置1;然后处理扫描结果,依次判断u8变量的低4位,如果某个按键被按下,则做出相应的处理。按键程序流程图如图12所示。按键扫描部分程序如下:
图12 按键程序流程图Fig.12 Flow chart of key program
uchar KEY_GPIO_Scanning(void)
{int scan_bit=1;//单个按键扫描变量int scan_sum=0x0f;//四个按键总的情况变量scan_sum低四位的每一位对应一个按键
由DDS的基本原理可以知道,输出的正弦信号将有可能出现误差。但是本系统对精度要求相当高,所以进行了信号的精度测试[7-8]。对于不同的参考时钟,将产生不同程度的频率误差,表1列举了ML2035在0~25 kHz频率范围内,不同输出信号产生的误差。
表1 误差分析Tab.1 table of error analysis
从表1中可以看出,在小于100 Hz,相对误差较小,基本满足条件。在100~25 000 Hz,可能因为干扰信号加强,实验仪器误差、人为因素产生的误差,导致误差相对较大,但是没超过 5 Hz。
系统以DDS模块为研究对象,基于ARM处理器、DDS技术、显示技术、EDA技术等完成高精度、便携且操作简单方便的正弦信号产生模块的设计。实验结果表明,利用DDS技术,有低成本、低功耗、频率切换时间短,频率分辨率高等特点;ARM处理器STM32芯片应用于信号源设计,具有控制功能强,电路简单等特点;ML2035芯片所产生的正弦信号能达到很高的精度,且易于调试,因此它被广泛用于正弦信号发生模块的相关领域,为设计便携信号源提供了良好的芯片选择。
[1]杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.
[2]李佳.ARM系列处理器应用技术完全手册[M].北京:人民邮电出版社,2009.
[3]马敖翔.基于ARM内核的嵌入式系统的开发和应用[M].成都:四川大学,2002.
[4]Goodaere J.Parallelisn and the ARM instruction set arehiteeture[J].Computer,2005,38(7):28.
[5]LM1117[EB/OL].http://baike.baidu.com/view/1997366.htm.
[6]DDS[EB/OL].http://baike.baidu.com/view/38405.htm.
[7]许德志,才成.一种基于DDS技术的信号发生器研究与实现[J].电子科技,2010(3):59-61.
[8]王冉,金繁.基于DDS技术的线性调频脉冲信号的产生[J].电子设计工程,2014(16):52-54.