函数信号发生.docx
- 文档编号:15441335
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:24
- 大小:321.21KB
函数信号发生.docx
《函数信号发生.docx》由会员分享,可在线阅读,更多相关《函数信号发生.docx(24页珍藏版)》请在冰点文库上搜索。
函数信号发生
三、硬件电路的设计
1、基本原理:
系统框图如图1所示。
图1低频信号发生器系统框图
低频信号发生器系统主要由CPU、D/A转换电路、基准电压电路、电流/电压转换电路、按键和波形指示电路、电源等电路组成。
其工作原理为当分别按下四个按键中的任一个按键就会分别出现方波、锯齿波、三角波、正弦波,并且有四个发光二极管分别作为不同的波形指示灯。
2、资源分配:
软、硬件设计是设计中不可缺少的,为了满足功能和指标的要求,资源分配如下
1.晶振采用6MHZ;
2.内存分配
P1口的分别与四个按键连接,分别控制锯齿波、三角波、正弦波和方波,与四个发光二极管相连,按键一对应发光二极管一,依次类推,发光二极管四对应按键四,实现输出一个波形对应亮一个灯。
P0口与DAC0832的DI0-DI7数据输入端相连。
P2口用来控制DAC0832的输入寄存器选择信号CS、输入寄存器写选通信号WR1及DAC寄存器写选通信号WR2和数据传送信号XFER。
3、最小系统设计
(1)最小单片机系统
①AT89S52的引脚图如图2所示
图2AT89S52引脚图
②管脚说明
低频信号发生器采用AT89S52单片机作为控制核心,其内部组成包括:
一个8位的微处理器CPU及片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接;片内数据存储器RAM低128字节,存放读/写数据;高128字节被特殊功能寄存器占用;片内程序存储器4KBROM;四个8位并行I/O(输入/输出)接口P3-P0,每个口可以用作输入,也可以用作输出;两个定时/计数器,每个定时/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口。
VCC:
供电电压。
GND:
接地。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
89S52单片机外部有32个端口可供用户使用,其功能如下:
表189S52并行I/O接口
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
RXD(串行输入口)
TXD(串行输出口)
/INT0(外部中断0)
/INT1(外部中断1)
T0(记时器0外部输入)
T1(记时器1外部输入)
/WR(外部数据存储器写选通)
/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
③AT89S52的晶振及其连接方法
CPU工作时都必须有一个时钟脉冲。
有两种方式可以向89S52提供时钟脉冲:
一是外部时钟方式,即使用外部电路向89S52提供始终脉冲,见图3--(a);二是内部时钟方式,即使用晶振由89S52内部电路产生时钟脉冲。
一般常用第二种方法,其电路见图3--(b)。
图389S52的时钟脉冲
图3中:
J一般为石英晶体,其频率由系统需要和器件决定,在频率稳定度要求不高时也可以使用陶瓷滤波器。
C1、C2:
使用石英晶体时,C1=C2=30(±10)pF
使用陶瓷滤波器时,C1=C2=40(±10)pF
④AT89S52的复位
使CPU开始工作的方法就是给CPU一个复位信号,CPU收到复位信号后将内部特殊功能寄存器设置为规定值,并将程序计数器设置为“0000H”。
复位信号结束后,CPU从程序存储器“0000H”处开始执行程序。
89S52为高电平复位,一般有3种复位方法。
ⅰ上电复位。
接通电源时
ⅱ手动复位。
设置一个复位按钮,当操作者按下按钮时产生一个复位信号。
ⅲ自动复位。
设计一个复位电路,当系统满足某一条件时自动产生一个复位信号。
图4为最简单的上电复位和手动复位方法。
89S52
图489S52的复位电路
关于CPU的复位电路应当注意,在调试单片机程序时有两种工作方式。
一是仿真器方式,主要用于调试程序。
此时程序的执行由仿真器控制,复位电路不起作用,系统时钟也经常设置为仿真器产生,此时用户的晶振也不起作用。
二是用户方式,即脱离仿真器的实际工作方式,用户的时钟振荡电路和复位电路都必须正常工作。
因此,如果系统复位电路或晶振电路有故障,就会出现仿真器方式工作正常,而用户方式不工作的现象,这是许多初学者常遇到的问题。
⑤芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89S52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
(2)达盛平台介绍
本系统是在达盛的平台E—PLAY—51CPU上设计的,单片机AT89S52与DAC0832的是通过POTRA,POTRB,POTRC连接起来,三个接口的定义如下所示:
编号
定义
备注
1
+5V
数字电源,无论CPU板,还是接口板,所有的数字电源都来自这里或由此变换而来。
2
+5V
3
DGND
数字地,在CPU板上,只在电源附近通过0欧的电阻与电源地相连。
4
DGND
5
D0/IO0
总线中的双向数据线,在CPU板上要通过16245驱动后再与CPU芯片的数据线相连,16245要通过RD及由CS0---CS7译码生成总地址控制信号所控制。
在设计接口板时要保证其数据线在空闲时为高阻状态,否则必须加接隔离电路。
没有用到的数据线可悬空。
总线接口,输入、输出皆为5VTTL电平,芯片电平与此不符时,必须经过电平转换。
6
D1/IO1
7
D2/IO2
8
D3/IO3
9
D4/IO4
10
D5/IO5
11
D6/IO6
12
D7/IO7
13
D8
14
D9
15
D10
16
D11
17
D12
18
D13
19
D14
20
D15
21
A0/IO8
总线中的地址线,CPU板输出,在CPU板上要通过16244驱动后再与接口引脚相连,接口板上不用时要悬空。
22
A1/IO9
23
A2/IO10
24
A3/IO11
25
A4
26
A5
27
A6
28
A7
29
A8
30
A9
31
A10
32
A11
33
A12
34
A13
35
A14
36
A15
37
CS0/IO12
片选信号线,CPU板输出,接口板输入,低电平有效,设计CPU板时,不用的引脚要悬空。
而在设计接口板时,要通过8选1开关(跳线)来选择。
38
CS1/IO13
39
CS2/IO14
40
CS3/IO15
表2PORTA接口定义
编号
定义
备注
41
CS4
在分配地址空间时,每个片选信号的最小地址范围应大于256个字节。
42
CS5
43
CS6
44
CS7
45
/W/R/IO16
CPU板输出,接口板输入,写信号低有效
46
/R/D/IO17
CPU板输出,接口板输入,读信号低有效
47
/W/A/I/T
CPU板输入,接口板输出,等待请求低有效
48
RSROUT
CPU板输出,接口板输入,复位高有效
5VTTL电平
49
/R/S/T/O/U/T
CPU板输出,接口板输入,复位低有效
50
EXINT0
外部中断请求信号,5VTTL电平,CPU板输入,接口板输出,低电平有效,在CPU板上,没有用到的中断线要优先使用低编号的中断线填充,如果CPU是3V器件,必须通过244/245隔离。
在接口板上,所有用到的中断信号线要用5选1的开关(跳线)选择。
51
EXINT1
52
EXINT2
53
EXINT3
54
EXINT4
55
T0out/C0in/CAP0
定时器输出/计数器输入/捕捉脉冲输入,5VTTL电平,在CPU板上只有一路时,第二路要用第一路填充,用户板上要通过开关相连。
56
T1out/C1in/CAP1
57
SPI_NSS0/BFSX0
SPI片选信号
SPI总线,5VTTL电平,CPU功能引脚(主),在设计CPU板时,如果有SPI总线,应优先使用这一组,没有用时要悬空。
接口板只能做从。
复用MCBSP信号线。
58
SPI_CLK0/BCLKX0
SPI时钟
59
SPI_MISO0/BDR0
主入从出
60
SPI_MOSI0/BDX0
主出从入
编号
定义
备注
1
+12V
模拟电源,所有的模拟电源都由此产生。
2
+12V
3
AGND
模拟地,在CPU板上的电源接口附近通过0欧电阻与电源地相连
4
AGND
5
SPI_NSS1/BFSX1
SPI片选信号
CPU功能引脚(主),在CPU板上,当只有一路时要悬空。
在接口板上,当CPU板上只有一路时也要悬空。
而且在系统中只允许与一路相连。
复用MCBSP信号线。
6
SPI_CLK1/BCLKX1
SPI时钟
7
SPI_MISO1/BDR1
主入从出
8
SPI_MOSI1/BDX1
主出从入
9
IIC_SCL
IIC时钟
CPU功能引脚。
10
IIC_SDA
IIC数据
11
UART-RxD
简易串口,CPU功能引脚。
当CPU只有一路时,要悬空。
CPU板上要优先使用。
12
UART-TxD
13
保留
暂未定义
14
保留
15
ALE
ALE信号
16
BFSR0
MCBSP信号线
17
BCLKR0
18
BFSR1
19
BCLKR1
20
IIS_LRCK/BFSX0
IIS通道选择时钟
复用MCBSP信号线
IIS接口,CPU功能引脚。
不用时要悬空。
21
IIS_SDI/BDR0
IIS数据输入
22
IIS_SDO/BDX0
IIS数据输出
23
IIS_SCLK/BCLKX0
IIS时钟
24
IIS_CDCLK
IIS编解码时钟
25
AGIO0
A组GIO,CPU功能引脚或CPU板的扩展IO。
要优先使用。
在CPU板上当不足时要优先使用低编号信号线填充。
在设计接口板时,当IO少于4个时,每个IO都要通过4选1开关(跳线)来选择;但多于4个时要用244或273通过总线扩展IO,以免与其它接口板冲突。
26
AGIO1
27
AGIO2
28
AGIO3
29
AGIO4
30
AGIO5
31
AGIO6
32
AGIO7
33
BGIO0
B组GIO,CPU功能引脚或CPU板的扩展IO。
在CPU板上当不足时要用A组相应信号线填充,顺序同A组。
在接口板上,同A组。
34
BGIO1
35
BGIO2
36
BGIO3
37
BGIO4
38
BGIO5
39
BGIO6
40
BGIO7
表3PORTB接口定义
编号
定义
备注
41
PWMA0
CPU的PWM功能输出,在CPU板上,优先布置低编号的信号线,没有用到的信号线要用现有的信号线由低到高依次填充,在接口板上,用户端的每一路都要通过4选1开关(跳线)选择。
42
PWMA1
43
PWMA2
44
PWMA3
45
PWMB0
CPU的PWM功能输出,在CPU板上,如果信号线不足,要用A组以标号由低到高填充。
在接口板上的设计同A组。
在设计CPU板时,如果CPU的PWM是分组的,且某一组的PWM数目大于4个时,应将A、B两组统一布置此组信号。
46
PWMB1
47
PWMB2
48
PWMB3
49
EGIO0
接口板IO,由接口板扩展产生,CPU板上不能占用,必须悬空。
接口板可使用。
50
EGIO1
51
EGIO2
52
EGIO3
53
EGIO4
54
EGIO5
55
EGIO6
56
EGIO7
57
EGIO8
58
EGIO9
59
AGND
模拟地,用以屏蔽输入模拟信号
在PCB布线时,所有的模拟输入集中独立布线,由AGND覆铜。
60
AINA0
模拟信号,在CPU上为输入,设计时要优先布置低编号的信号线,空闲信号线要用现有的信号线由低到高依次填充。
在用户板上,做输出时要通过4选1开关(跳线)选择,作输入时可直接连接。
61
AINA1
62
AINA2
63
AINA3
64
AINB0
模拟信号,在CPU上为输入,空闲时要用A组信号线顺序填充,在接口板上要做输出时要通过4选1开关(跳线)选择,作输入时可直接连接。
65
AINB1
66
AINB2
67
AIN7B3
68
AGND
模拟地,用以屏蔽输入模拟信号
69
-12V
模拟电路的负电源。
70
-12V
编号
定义
备注
1
VREFout
CPU板参考电压输出
不用时要悬空。
2
VREFin
CPU板参考电压输入
3
AOUT0
CPU模拟信号输出0
在CPU板上只有一路时,优先使用AOUT0,AOUT1要悬空。
4
AOUT1
CPU模拟信号输出1
5
EAOUT0
接口板模拟信号输出0
由接口板扩展产生,CPU板上不能占用,必须悬空。
接口板可使用。
6
EAOUT1
接口板模拟信号输出1
7
XPON
触摸屏X轴P
在CPU板上,不用时要悬空。
使用时要注意:
此信号线直接由触摸屏输出,判断是否需要增加相关驱动电路。
在接口板上。
可直接与触摸屏(4线)相连。
8
YPON
触摸屏Y轴P
9
XMON
触摸屏X轴M
10
YMON
触摸屏Y轴M
11
R00/CAP2
液晶模拟电压输入0
液晶模拟电压输入1
液晶模拟电压输入2
液晶模拟电压输出3
CPU的捕捉输入,接口板输出。
CPU上自带段式液晶控制器的接口,不用时要选悬空。
12
R01/CAP3
13
R02/CAP4
14
R03/CAP5
15
COM0/VM
液晶位输出公共端0
复用点阵屏的控制信号。
16
COM1/VFRAME
液晶位输出公共端1
17
COM2/VLINE
液晶位输出公共端2
18
COM3/VCLK
液晶位输出公共端3
19
SEG0/VD0/VR0
液晶段输出0
复用点阵屏的数据信号线。
当CPU具有TFT和STN两种LCD控制器时,优先使用TFT类型的LCD接口。
20
SEG1/VD1/VR1
液晶段输出1
21
SEG2/VD2/VR2
液晶段输出2
22
SEG3/VD3/VR3
液晶段输出3
23
SEG4/VD4/VR4
液晶段输出4
24
SEG5/VD5/VG0
液晶段输出5
25
SEG6/VD6/VG1
液晶段输出6
26
SEG7/VD7/VG2
液晶段输出7
27
SEG8/VG3
液晶段输出8
28
SEG9/VG4
液晶段输出9
29
SEG10/VG5
液晶段输出10
30
SEG11/VB0
液晶段输出11
31
SEG12/VB1
液晶段输出12
32
SEG13/VB2
液晶段输出13
33
SEG14/VB3
液晶段输出14
34
SEG15/VB4
液晶段输出15
35
SEG16/SDCLK
液晶段输出16
液晶段输出17
液晶段输出18
液晶段输出19
复用为SD卡的接口。
36
SEG17/SDCMD
37
SEG18/SD0
38
SEG19/SD1
39
SEG20/SD2
液晶段输出20
40
SEG21/SD3
液晶段输出21
表4PORTC接口定义
表5JTAG接口定义
编号
ARM定义
DSP定义
CYGNAL定义
1
VCC
TMS
VCC
2
GND
nTRST
GND
3
nTRST
TDI
GND
4
GND
GND
TCK
5
TDI
VCC
TMS
6
GND
空
TDO
7
TMS
TDO
TDI
8
GND
GND
空
9
TCK
TCK
GND
10
GND
GND
空
11
TDO
TCK
12
nRESET
GND
13
VCC
EMU0
14
GND
EMU1
注:
JTAG接口的电源(VCC)要参考CPU芯片的技术手册和JTAG电缆线的要求。
4、各部分电路原理
(1)DAC0832芯片原理
①管脚功能介绍(如图5所示)
图5DAC0832管脚图
(1)DI7~DI0:
8位的数据输入端,DI7为最高位。
(2)IOUT1:
模拟电流输出端1,当DAC寄存器中数据全为1时,输出电流最大,当DAC寄存器中数据全为0时,输出电流为0。
(3)IOUT2:
模拟电流输出端2,IOUT2与IOUT1的和为一个常数,即IOUT1+IOUT2=常数。
(4)RFB:
反馈电阻引出端,DAC0832内部已经有反馈电阻,所以RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。
(5)VREF:
参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定0至255的数字量转化出来的模拟量电压值的幅度,VREF范围为(+10~-10)V。
VREF端与D/A内部T形电阻网络相连。
(6)Vcc:
芯片供电电压,范围为(+5~15)V。
(7)AGND:
模拟量地,即模拟电路接地端。
(8)DGND:
数字量地。
当WR2和XFER同时有效时,8位DAC寄存器端为高电平“1”,此时DAC寄存器的输出端Q跟随输入端D也就是输入寄存器Q端的电平变化;反之,当端为低电平“0”时,第一级8位输入寄存器Q端的状态则锁存到第二级8位DAC寄存器中,以便第三级8位DAC转换器进行D/A转换。
一般情况下为了简化接口电路,可以把和直接接地,使第二级8位DAC寄存器的输入端到输出端直通,只有第一级8位输入寄存器置成可选通、可锁存的单缓冲输入方式。
特殊情况下可采用双缓冲输入方式,即把两个寄存器都分别接成受控方式
制作低频信号发生器有许多方案:
主要有单缓冲方式,双缓冲方式和直通方式。
单缓冲方式具有适用于只有一路模拟信号输出或几路模拟信号非同步输出的情形的优点,但是电路线路连接比较简单。
而双缓冲方式适用于在需要同时输出几路模拟信号的场合,每一路模拟量输出需一片DAC0832芯片,构成多个DAC0832同步输出电路,程序简单化,但是电路线路连接比较复杂。
根据以上分析,我们的课题选择了单缓冲方式使用方便,程序简单,易操作。
②工作原理
DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。
8位输入寄存器用于存放主机送来的数字量,使输入数字量得到缓冲和锁存,由加以控制;8位DAC寄存器用于存放待转换的数字量,由加以控制;8位D/A转换器输出与数字量成正比的模拟电流;由与门、非与门组成的输入控制电路来控制2个寄存器的选通或锁存状态。
原理框图如图6所示。
图6DAC0832的原理框图
DAC0832与反相比例放大器相连,实现电流到电压的转换,因此输出模拟信号的极性与参考电压的极性相反,数字量与模拟量的转换关系为
Vout1=-Vref×(数字码/256)
若D/A转换器输出为双极性,如图4所示。
图7D/A转换器双极性输出电路
图7中,运算放大器A2的作用是把运算放大器A1的单向输出电压转换成双向输出电压。
其原理是将A2的输入端Σ通过电阻R1与参考电压VREF相连,VREF经R1向A2提供一个偏流I1,其电流方向与I2相反,因此运算放大器A2的输入电流为I1、I2之代数和。
则D/A转换器的总输出电压为:
VOUT2=-[(R3/R2)VOUT1+(R3/R1)]VREF
设R1=R3=2RR2=R,则
VOUT2=-(2VOUT1+VREF)
DAC0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数 信号 发生