系统集成电路大作业.docx
- 文档编号:9808773
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:28
- 大小:38.59KB
系统集成电路大作业.docx
《系统集成电路大作业.docx》由会员分享,可在线阅读,更多相关《系统集成电路大作业.docx(28页珍藏版)》请在冰豆网上搜索。
系统集成电路大作业
系统集成与应用实验
设计报告
16 路模拟信号发生器
班级:
小组成员:
指导教师:
目 录
1、设计任务和要求分析....................................................2
2、整体方案设计选择........................................................2
3、理论计算................... ... ... ... ........................................6
4、电路设计及仿真..................................... ......................7
5、实验总结……................................................................11
六、附
录………………..............................................................12
第 1 页 共 25 页
一、设计任务与要求分析
1.1 设计任务
用 C8051F020 单片机完成 16 路信号源的输出,并通过单片机内部 A/D 转换器进
行输出信号源的反馈采样,最后通过异步串行接口(UART)将采样结果输出。
利用 C8051 单片机将波形量化数据放置于内部 ROM,通过内部 D/A 产生信号以
及 I/O 端口控制多路模拟开关,同时生成 16 路信号源,注意信号源调理电路中
采保部分的选值,并给出理论计算结果。
反馈回采部分采用单片机的 12 位高精
度 A/D 转换器,采样频率自定(要求给出理论计算值),并通过 UART 接口将采
样值送出按 9600bps 的波特率发出(接收对象可以是计算机或其它)。
1.2 任务要求分析
我们通过集体讨论与分析,确定了如下的设计流程:
URAT输
出
电脑上
位机
单片机
DA
多路模
拟开关
采样保
持部分
滤波电
路
放大部
分 输出
AD
跟随输
入
16选1开
关
16路信
号输入
图 1.系统流程图
在进行具体的实验设计之后,我们进行了电路简化,放大滤波通过一个运
算放大器来实现,不仅使电路得到了简化,而且也节省了资源。
二、整体方案设计选择
2.1 单片机部分
单片机选用 C8051F020,是完全集成的混合信号系统级 MUC 芯片具有 64
个数字 I/O 引脚;具有 12 位 100kps 的 8 通道 ADC,带 PGA 和多路模拟开关 ;
具有 2 个 12 位 DAC,具有可编程数据更新方式;64K 可在系统编程的 FLASH 存
储器;4352 字节的片内 RAM;可寻址 64K 字节地址空间的数据存储器接口:
2 个
UART 串行接口。
基于以上优良特性,故选用该单片机。
单片机具有上电复位、掉电复位、外部复位、软件强制复位等多种复位方式。
在应用中外部复位方式得到广泛应用。
外部/RST 引脚提供使用外部电路使单片
机强制复位的手段。
在外部/RST 引脚加一个低电平有效信号,将使单片机复位,
最好提供一个外部上拉,或对 RST 引脚去耦以防止噪声引起复位。
第 2 页 共 25 页
图 2单片机外部电路
2.2 电源部分设计
电源的选定好与坏对于系统设计来说至关重要,一个好的电源的设计标志着成
功的一半。
在这个系统中我们需要用到一个正负 5V 的双电源,用于给运放
LM358 供电,尽管 LM358 可以采用单电源供电,但是输入信号的幅度比较小时,
用单电源供电运算放大器的特性会变差,而我们的设计中,输入信号的变化范
围较大,,用双电源比较合适。
同时还需要给模拟开关 ADG406 和构成采样保持
电路的 CA3140 提供正 5V 的电源电压。
综上所述,我们通过用 LM7805,LM7905 组成一个正负 5V 的双电源电路提
供正负 5V 的电源。
此外,C8051F020 的供电电压为 3.3V,所以我们还需要用
LM1117(低压差三端稳压器)将 5V 电源转换为 3.3V 给 C8051F020 单片机供电。
第 3 页 共 25 页
图 3. 7805 设计参考资料
图 4. 7905 设计参考资料
2.3模拟开关部分
在整个设计中,我们的多路模拟开关采用 ADG406,单芯片 CMOS 模拟多路
复用器。
ADG406 根据 4 位二进制地址线 A0,A1,A2,A3 所确定的地址,将
16 路输入之一切换至公共输出。
所有器件均提供 EN 输入,用来使能或禁用器
件。
禁用时,所有通道均关闭。
ADG406 采用增强型 LC2MOS 工艺设计,具有低功耗,高开关速度和低导通
电阻特性,因而适合高速度数据采集系统和音频信号开关应用。
低功耗特性则
适合电池供电系统。
接通时,各通道在两个方向的导电性能相同,输入信号范
围可扩展至电源电压范围。
在断开的条件下,达到电源电压的信号电平被阻止。
所有通道均采用先开后合式开关,防止开关通道时发生瞬时短路。
设计本身具
有低电荷注入特性,当切换数字输入时,可实现最小的瞬变。
我们采用 ADG406 进行采样时的 16 路信号的切换以及将 16 路信号输入单
片机 AD 时的 16 路信号切换。
第 4 页 共 25 页
图 5.ADG406 真值表以及转换时间
2.4信号调理部分设计
2.4.1 采样保持电路
采样保持电路采用的是 CA3140 集成采样保持芯片。
它的输入阻抗高达
1012Ω ,输入偏流约 10PA,工作速度较高(SR=9V/us),常用于积分及保持电路等。
它既可以双电源供电(±2V~±18V),又可以单电源供电(4V~36V)。
其工作温
度范围为-55℃~-125℃,使用 CA3140 的注意事项如下:
(1)因其输入级为 MOSFET,故安装焊接时应符合 MOSFET 的要求。
(2)CA3140 的最大允许差模电压为±8V,故一般应接保护电路,以免因电压
过高而击穿,其输入回路电流应小于 1mA,因此需在输入及反馈回路中接限
流电阻,其值一般不小于 3.9KΩ。
(3)其输出负载电阻应大于 2kΩ,否则将使负向输出动态范围变小。
2.4.2 放大滤波器部分
由于 C8051F020 的 AD 转换器输出电压为 2.4V,且在实际线路输出过程中会
受到噪声干扰,所以需要设计放大滤波电路。
我们选用 LM358 芯片进行放大滤
波,不仅可以简化电路,并且成本较低。
第 5 页 共 25 页
三、理论计算
3.1 DAC 输出频率
通过手册可知,C8051F020 内部 DAC 最高输出频率为 100kHz,模拟开关最
快切换时间为 180ns,采样保持电路的采样时间约为 4.5ns,计算如下:
180+4.5=184.5ns
所以 DA 的采样周期必须比 184.5ns 大,这里我们取 DA 的输出周期为
184.5*3=553.5ns。
即频率约为:
190000hz,但是却超过了 C8051F020 内部 DAC
最高输出频率为 100kHz。
所以只要低于 190000hz 就可以了,为了以后的设计
方便,也为了能够在采集一个周期中尽可能多的点,我们取 DAC 输出频率为
1600Hz.
此时每一路模拟开关的输出频率为 100Hz。
3.2 ADC 回采频率计算
依据题目 ADC 回采后经串口发送,串口波特率为 9600,所以 ADC 回采频率
受到串口波特率制约,所以取 ADC 回采频率与串口波特率一致:
9600
8
= 1200bps
所以 ADC 采集每一路模拟信号的频率为 1.2kHz。
3.3 采样保持电容计算
采样保持电容大小选取受到切换速度的制约,与模拟开关、输出放大器的
性能都有关系,具体计算如下:
1
τ1=RsC ≤ 切换时间1.8⨯10-4s
τ 2 =RiC ≥ 轮换时间2.88⨯ 0-3s
计算得:
9.47 ⨯10-7 pF < C < 0.11μ F
结果取 0.01uf 的电容。
3.4 滤波器的设计计算
由于 C8051F020 的 AD 转换器输出电压为 2.4V,而其内部的 DA 转换器的输
入电压可以达到 4.8V,且在实际线路输出过程中会受到噪声干扰,所以我们采
用放大倍数为 2 倍的低通滤波器。
我们设计的滤波器是无限增益多路型低通滤波器,滤波器的参数分别如下:
R1 = 25.65kΩ, R2 = 32.92kΩ, R3 = 51.30kΩ , C1 = 0.1μ F , C2 = 0.015μ F 所以,增益
第 6 页 共 25 页
R3
R1
1
R2R3C1C2
= 628.93 ,阻尼系数为:
1111
C1 R1R2R3
) / w0 = 1.413 。
所以截至频率为 w0 / 2π = 100Hz 。
四、电路设计及仿真
4.1 电源设计及仿真
图 6.双电源设计电路图
图 7.双电源仿真结果图
4.2 放大滤波设计及仿真设计及仿真
由于 C8051F020 的 AD 转换器输出电压为 2.4V,而其内部的 DA 转换器的输
入电压可以达到 4.8V,且在实际线路输出过程中会受到噪声干扰,所以我们采
用放大倍数为 2 倍的低通滤波器。
我们设计的滤波器是无限增益多路型低通滤波器,滤波器的参数分别如下:
R1 = 25.65kΩ, R2 = 32.92kΩ, R3 = 51.30kΩ , C1 = 0.1μ F , C2 = 0.015μ F 所以,增益
R3
R1
1
R2R3C1C2
= 628.93 ,阻尼系数为:
第 7 页 共 25 页
(
C1 R1R2R3
) / w0 = 1.413 。
所以截至频率为 w0 / 2π = 100Hz 。
图 8.低通滤波及放大电路
图 9.低通滤波及放大电路仿真图
4.3 采用保持电路的设计
图 10.采样保持电路原理图
第 8 页 共 25 页
4.4 模拟开关电路设计
图 11.模拟开关电路原理图
4.5 抗干扰设计
图 12.耦合电容设计
图 13.地隔离的设计
第 9 页 共 25 页
4.6整体电路设计
图 14.整体电路原理图
4.7pcb 设计
第 10 页 共 25 页
图 15.pcb 版图
五、实验总结
这次课程设计我们先从 C8051F020 芯片的引脚功能和工作原理入手。
将里
面所涉及到的功能用我所学的系统集成以及模数电、测控电路的知识进行运用。
在实现电路的稳压功能时,用到了 7805 和 7905,LM1117 这三种芯片。
在设计
电路的过程中,我们发现芯片的选择是非常重要的一个环节,芯片的参数以及
功能和成本都是我们需要考虑的问题。
同时这次课程设计让我们小组成员进一步巩固了对 Multisim 软件仿真和
AD 的使用和操作,在设计中遇到了很多问题,我们通过上网查资料以及同学和
老师的帮助,大都得到了解决。
除此之外,小组成员也感受到了合作的力量,
积极分工,在做好自己的工作的同时,协助其他成员。
在此,感谢老师的悉心
指导和他同学的无私帮助!
第 11 页 共 25 页
附录:
程序源码:
#include
//-----------------------------------------------------------------------------
// 16-bit SFR Definitions for 'F02x
//-----------------------------------------------------------------------------
sfr16 RCAP4= 0xE4;// Timer4 capture/reload
sfr16 TMR4= 0xF4;// Timer4
sfr16 DAC0= 0xd2;// DAC0 data
sfr16 DAC1= 0xd5;// DAC1 data
//-----------------------------------------------------------------------------
// Global Constants
//-----------------------------------------------------------------------------
#define SYSCLK22118400// Internal oscillator frequency in
Hz
第 12 页 共 25 页
#define SAMPLE_RATE_DAC 100000L// DAC sampling rate in Hz
#define PHASE_PRECISION 65536// range of phase accumulator
#define FREQUENCY1000// Frequency of output
waveform in Hz
//
// the set_DACs routine.
unsignedintPHASE_ADD=FREQUENCY*PHASE_PRECISION/
SAMPLE_RATE_DAC;
////////////自加////////////////
unsigned long AD;//AD 转换的值
unsigned char temp_l;
unsigned char temp_h;
bit ReceiveBit;/*接收标志位*/
unsigned char temp;
////////////////////////////
int code SINE_TABLE[256] = {
0x0000, 0x0324, 0x0647, 0x096a, 0x0c8b, 0x0fab, 0x12c8, 0x15e2,
0x18f8, 0x1c0b, 0x1f19, 0x2223, 0x2528, 0x2826, 0x2b1f, 0x2e11,
0x30fb, 0x33de, 0x36ba, 0x398c, 0x3c56, 0x3f17, 0x41ce, 0x447a,
0x471c, 0x49b4, 0x4c3f, 0x4ebf, 0x5133, 0x539b, 0x55f5, 0x5842,
0x5a82, 0x5cb4, 0x5ed7, 0x60ec, 0x62f2, 0x64e8, 0x66cf, 0x68a6,
0x6a6d, 0x6c24, 0x6dca, 0x6f5f, 0x70e2, 0x7255, 0x73b5, 0x7504,
0x7641, 0x776c, 0x7884, 0x798a, 0x7a7d, 0x7b5d, 0x7c29, 0x7ce3,
第 13 页 共 25 页
0x7d8a, 0x7e1d, 0x7e9d, 0x7f09, 0x7f62, 0x7fa7, 0x7fd8, 0x7ff6,
0x7fff, 0x7ff6, 0x7fd8, 0x7fa7, 0x7f62, 0x7f09, 0x7e9d, 0x7e1d,
0x7d8a, 0x7ce3, 0x7c29, 0x7b5d, 0x7a7d, 0x798a, 0x7884, 0x776c,
0x7641, 0x7504, 0x73b5, 0x7255, 0x70e2, 0x6f5f, 0x6dca, 0x6c24,
0x6a6d, 0x68a6, 0x66cf, 0x64e8, 0x62f2, 0x60ec, 0x5ed7, 0x5cb4,
0x5a82, 0x5842, 0x55f5, 0x539b, 0x5133, 0x4ebf, 0x4c3f, 0x49b4,
0x471c, 0x447a, 0x41ce, 0x3f17, 0x3c56, 0x398c, 0x36ba, 0x33de,
0x30fb, 0x2e11, 0x2b1f, 0x2826, 0x2528, 0x2223, 0x1f19, 0x1c0b,
0x18f8, 0x15e2, 0x12c8, 0x0fab, 0x0c8b, 0x096a, 0x0647, 0x0324,
0x0000, 0xfcdc, 0xf9b9, 0xf696, 0xf375, 0xf055, 0xed38, 0xea1e,
0xe708, 0xe3f5, 0xe0e7, 0xdddd, 0xdad8, 0xd7da, 0xd4e1, 0xd1ef,
0xcf05, 0xcc22, 0xc946, 0xc674, 0xc3aa, 0xc0e9, 0xbe32, 0xbb86,
0xb8e4, 0xb64c, 0xb3c1, 0xb141, 0xaecd, 0xac65, 0xaa0b, 0xa7be,
0xa57e, 0xa34c, 0xa129, 0x9f14, 0x9d0e, 0x9b18, 0x9931, 0x975a,
0x9593, 0x93dc, 0x9236, 0x90a1, 0x8f1e, 0x8dab, 0x8c4b, 0x8afc,
0x89bf, 0x8894, 0x877c, 0x8676, 0x8583, 0x84a3, 0x83d7, 0x831d,
0x8276, 0x81e3, 0x8163, 0x80f7, 0x809e, 0x8059, 0x8028, 0x800a,
0x8000, 0x800a, 0x8028, 0x8059, 0x809e, 0x80f7, 0x8163, 0x81e3,
0x8276, 0x831d, 0x83d7, 0x84a3, 0x8583, 0x8676, 0x877c, 0x8894,
0x89bf, 0x8afc, 0x8c4b, 0x8dab, 0x8f1e, 0x90a1, 0x9236, 0x93dc,
0x9593, 0x975a, 0x9931, 0x9b18, 0x9d0e, 0x9f14, 0xa129, 0xa34c,
0xa57e, 0xa7be, 0xaa0b, 0xac65, 0xaecd, 0xb141, 0xb3c1, 0xb64c,
0xb8e4, 0xbb86, 0xbe32, 0xc0e9, 0xc3aa, 0xc674, 0xc946, 0xcc22,
0xcf05, 0xd1ef, 0xd4e1, 0xd7da, 0xdad8, 0xdddd, 0xe0e7, 0xe3f5,
0xe708, 0xea1e, 0xed38, 0xf055, 0xf375, 0xf696, 0xf9b9, 0xfcdc,
};
//-----------------------------------------------------------------------------
// Function Prototypes
第 14 页 共 25 页
//-----------------------------------------------------------------------------
void main(void);
void OSCILLATOR_Init(void);
void DAC0_Init (void);
void DAC1_Init (void);
void TIMER4_Init(int counts);
void Set_DACs(void);
//////////////自加///////////////
void PORT_Init (void);
void Timer3_Init (int counts);
void ADC_Init(void);
void UART0_Init (void);
void delayms(unsigned int z);
////////////////////////////
//-----------------------------------------------------------------------------
// MAIN Routine
//-----------------------------------------------------------------------------
void main (void)
{
unsigned char temp1=0xff,temp2=0xff;
unsigned int ad_now;
WDTCN = 0xde;// Disable watchdog timer
WDTCN = 0xad;
OSCILLATOR_Init ();// Initialize oscillator
DAC0_Init ();// Initialize DAC0
PORT_Init ();
第 15 页 共 25 页
Timer3_Init (SYSCLK / 1200 );
ADC_Init();
UART0_Init();
AMX0SL =0x00; //选择通道 AIN0
TIMER4_Init(SYSCLK/SAMPLE_RATE_DAC);// Initialize Timer4 to overflow
//
per
// second
EA = 1;// Enable global interrupts
ES0 =1;//串口中断使能
while
(1)
{
temp1=0xff;
temp2=0xff;
ad_now=AD;
temp1&=ad_now;
temp2&=(ad_now>>8);
SBUF0=temp1;
while(!
TI0);
TI0=0;
SBUF0=temp2;
while(!
TI0);
TI0=0;
SBUF0=0x0d;
while(!
TI0);
TI0=0;
SBUF0=0x0a;
while(!
TI0);
第 16 页 共 25 页
TI0=0;
delayms(200);
}
}
////////////////自加//////////////////
void delayms(unsigned int z)
{
unsigned int x,y;
for(x=0;x
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统集成 电路 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)