当前位置:文档之家› 北邮嵌入式实验报告

北邮嵌入式实验报告

北邮嵌入式实验报告
北邮嵌入式实验报告

北京邮电大学嵌入式系统开发实验报告

学院:

班级:

姓名:

学号:

序号:

目录

一、实验目的 (1)

二、实验设备 (1)

三、基础实验(实验一~实验七) (1)

1.实验五 (1)

2.实验六 (1)

3.实验七 (1)

四、驱动程序 (5)

1.设备驱动程序的概念 (5)

2.驱动程序结构 (6)

3.设备注册和初始化 (7)

4.设备驱动程序的开发过程 (8)

五、基本接口实验 (8)

1.实验十二简单设备驱动程序 (9)

2.实验十三CPU GPIO驱动程序设计 (9)

3.实验十四中断实验 (10)

4.实验十五数码管显示实验 (12)

5.实验十六LED点阵驱动程序设计 (19)

6.实验十七AD驱动实验 (23)

7.实验十八DA驱动实验 (26)

六、实验中遇到的问题及解决方法 (30)

七、实验总结及心得 (31)

一、实验目的

通过实验熟悉Linux环境,并掌握一些基本接口驱动的写法和用C语言编写简单的实验程序。学习LINUX开发环境的搭建,通讯配置等。并熟练掌握LINUX驱动程序的编写及开发流程。对嵌入式系统有进一步的了解。

二、实验设备

1.一套PXA270EP嵌入式实验箱

2.安装Redhat9的宿主PC机,并且配置好ARM Linux的开发环境

三、基础实验(实验一~实验七)

实验一~七为基础实验,目的是为后续实验搭建好软、硬件环境,配置好相关的协议、服务,并通过编写最简单的HelloWorld程序进行测试。由于后面的实验都要依靠前面实验的配置,故本段只着重叙述实验七的具体实现。

1.实验五

实验五为宿主PC机配置了TFTP服务。TFTP(Trivial File Transfer Protocol)是简单文件传输协议,由于特定开发环境的制约,这一服务是必须的。在配置完成后,每次重启宿主PC机时,都须先输入命令:service xinetd restart,以启动TFTP服务。

2.实验六

实验六为宿主PC机配置了NFS服务。NFS(Network File System)指网络文件系统,它实现了文件在不同的系统间使用。当我们想用远端档案时,只需调用“mount”就可以远端系统挂接在自己的档案系统之下。每次重启宿主PC机时,都须先输入命令:service nfs restart,以启动nfs服务。

3.实验七

实验七通过用c语言编写的简单程序HelloWorld,测试前面几个实验是否成功配置好环境,从超级终端可以看到HelloWorld程序的运行结果。

实验步骤如下:

1)硬件连接:

连接宿主PC 机和一台PXA270-RP目标板。

2)打开宿主PC 机电源,进入Linux操作系统。

3)启动RedHat 9.0 的图形界面,如下图,若您是以root 身份登陆在文本模

式下,则输入命令startx启动图形界面。进入RedHat 9.0 图形界面后,打开一个终端窗(Terminal)。

4)输入minicom然后回车,minicim设置为115200 8NI无流控。

5)打开PXA270_RP目标板电源,按目标板上的BOOT键,在minicom中应

该会看到如下图:

6)在minicom终端窗口中,如图,输入下列四条命令

root

ifconfig eth 192.168.0.50 up

mount -o nolock 192.168.0.100:/ /mnt

cd /mnt

此时,先将该窗口最小化,在后面的第10 操作步骤中还将会回到该窗口中进行操作。

7)宿主机上打开一个终端窗口(Terminal),点击【红帽/System

Tools/Terminal】启动终端窗口,输入下列4 条命令:

①cd /home

②mkdir HW

③cd HW

④vi HelloWorld.c /*请您输入程序7.1 程序清单*/

此时会显示一个空白的屏幕,这条命令的含义是,使用Vi 编辑器,对一个名叫HelloWorld.c的文件进行编辑,我们看到的空白窗口是对文件进行编辑的窗口,如下图。就像在Windows系统下面使用写字板等一样道理。

在vi 里面先单击键盘 A 键,然后左下角会变成—INSER。输入程序的时候和其他编辑器是一样的,如下图。

当输入程序完毕后,单击键盘Esc 键,然后按“:”(冒号)此时左下角会出现冒号然后输入“wq”最后按“Enter”确认存盘退出vi 编辑器,如下图。

8)在上面同一个终端窗口中,输入下列2 条命令交叉编译HelloWorld.c源

程序,并查看生成的.o 目标文件,如图7-10,图7-11:

①arm-linux-gcc–oHelloWorldHelloWorld.c

②ls

等到再次出现提示符,代表程序已经正确编译。如果此步出现错误信息,请查看错误信息,并且重新编辑原来的C文件,修改错误。直到正确编译。

9)重新打开第7 步最小化的开有minicom的终端窗口,即到PXA270-RP

目标板的mnt目录下,请您输入下列 3 条命令,运行HelloWorld编译成功的HelloWorld目标程序:

①cd home/HW /*回到minicom中目标板的/mnt/home/HW目录下*/

②ls

③./ HelloWorld /*此时会看到如下图*/

四、驱动程序

1.设备驱动程序的概念

设备驱动程序实际是处理和操作硬件控制器的软件,从本质上讲,是内核中具有最高特权级的、驻留内存的、可共享的底层硬件处理例程。驱动程序是内核的一部分,是操作系统内核与硬件设备的直接接口,驱动程序屏蔽了硬件的细节,完成以下功能:

对设备初始化和释放;

对设备进行管理,包括实时参数设置,以及提供对设备的操作接口;

读取应用程序传送给设备文件的数据或者回送应用程序请求的数据;

检测和处理设备出现的错误。

Linux操作系统将所有的设备全部看成文件,并通过文件的操作界面进行操作。对用户程序而言,设备驱动程序隐藏了设备的具体细节,对各种不同设备提供了一致的接口,一般来说,是把设备映射为一个特殊的设备文件,用户程序可以像对其他文件一样对此设备文件进行操作。这意味着:

由于每一个设备至少由文件系统的一个文件代表,因而都有一个“文件名”。

应用程序通常可以通过系统调用open()打开设备文件,建立起与目标设备的连接。

打开了代表着目标设备的文件,即建立起与设备的连接后,可以通过read()、write()、ioctl()等常规的文件操作对目标设备进行操作。

设备文件的属性由三部分信息组成:第一部分是文件的类型,第二部分是一个主设备号,第三部分是一个次设备号。其中类型和主设备号结合在一起惟一地确定了设备文件驱动程序及其界面,而次设备号则说明目标设备是同类设备中的

第几个。

由于Linux 中将设备当做文件处理,所以对设备进行操作的调用格式与对文件的操作类似,主要包括open()、read()、write()、ioctl()、close()等。应用程序发出系统调用命令后,会从用户态转到核心态,通过内核将open()这样的系统调用转换成对物理设备的操作。

2.驱动程序结构

一个设备驱动程序模块的基本框架

在系统内部,I/O设备的存取通过一组固定的入口点来进行,入口点也可以理解为设备的句柄,就是对设备进行操作的基本函数。字符型设备驱动程序提供如下几个入口点:

open入口点。打开设备准备I/O操作。对字符设备文件进行打开操作,都会调用设备的open入口点。open子程序必须对将要进行的I/O操作做好必要的准备工作,如清除缓冲区等。如果设备是独占的,即同一时刻只能有一个程序访问此设备,则open子程序必须设置一些标志以表示设备处于忙状态。

close入口点。关闭一个设备。当最后一次使用设备完成后,调用close子程序。独占设备必须标记设备方可再次使用。

read入口点。从设备上读数据。对于有缓冲区的I/O操作,一般是从缓冲区里读数据。对字符设备文件进行读操作将调用read子程序。

write入口点。往设备上写数据。对于有缓冲区的I/O操作,一般是把数据写入缓冲区里。对字符设备文件进行写操作将调用write子程序。

ioctl入口点。执行读、写之外的操作。

select入口点。检查设备,看数据是否可读或设备是否可用于写数据。select 系统调用在检查与设备文件相关的文件描述符时使用select入口点。

3.设备注册和初始化

设备的驱动程序在加载的时候首先需要调用入口函数init_module(),该函数最重要的一个工作就是向内核注册该设备,对于字符设备调用register_chrdev()完成注册。register_chrdev的定义为:intregister_chrdev(unsigned int major, const char *name, struct file_ operations *fops);

其中,major是为设备驱动程序向系统申请的主设备号,如果为0,则系统为此驱动程序动态分配一个主设备号。name是设备名,fops是对各个调用的入口点说明。此函数返回0时表示成功;返回-EINVAL,表示申请的主设备号非法,主要原因是主设备号大于系统所允许的最大设备号;返回-EBUSY,表示所申请的主设备号正在被其他设备程序使用。如果动态分配主设备号成功,此函数将返回所分配的主设备号。如果register_chrdev()操作成功,设备名就会出现在/proc/dvices文件中。

Linux在/dev目录中为每个设备建立一个文件,用ls–l命令列出函数返回值,若小于0,则表示注册失败;返回0或者大于0的值表示注册成功。注册以后,Linux 将设备名与主、次设备号联系起来。当有对此设备名的访问时,Linux通过请求访问的设备名得到主、次设备号,然后把此访问分发到对应的设备驱动,设备驱动再根据次设备号调用不同的函数。

当设备驱动模块从Linux内核中卸载,对应的主设备号必须被释放。字符设备在cleanup_ module()函数中调用unregister_chrdev()来完成设备的注销。unregister_chrdev()的定义为:intunregister_chrdev(unsigned int major, const char *name);

包括设备注册在内,设备驱动的初始化函数主要完成的功能是有以下5项。

(1)对驱动程序管理的硬件进行必要的初始化。

对硬件寄存器进行设置。比如,设置中断掩码,设置串口的工作方式、并口的数据方向等。

(2)初始化设备驱动相关的参数。

一般说来,每个设备都要定义一个设备变量,用以保存设备相关的参数。在这一步骤里对设备变量中的项进行初始化。

(3)在内核注册设备。

调用register_chrdev()函数来注册设备。

(4)注册中断。

如果设备需要IRQ支持,则要使用request_irq()函数注册中断。

(5)其他初始化工作。

初始化部分一般还负责给设备驱动程序申请包括内存、时钟、I/O端口等在内的系统资源,这些资源也可以在open子程序或者其他地方申请。这些资源不用时,

应该释放,以利于资源的共享。

若驱动程序是内核的一部分,初始化函数则要按如下方式声明:

int __initchr_driver_init(void);

其中__init是必不可少的,在系统启动时会由内核调用chr_driver_init,完成驱动程序的初始化。

当驱动程序是以模块的形式编写时,则要按照如下方式声明:

intinit_module(void)

当运行后面介绍的insmod命令插入模块时,会调用init_module函数完成初始化工作。

4.设备驱动程序的开发过程

由于嵌入式设备由于硬件种类非常丰富,在默认的内核发布版中不一定包括所有驱动程序。所以进行嵌入式Linux系统的开发,很大的工作量是为各种设备编写驱动程序。除非系统不使用操作系统,程序直接操纵硬件。嵌入式Linux系统驱动程序开发与普通Linux开发没有区别。可以在硬件生产厂家或者Internet上寻找驱动程序,也可以根据相近的硬件驱动程序来改写,这样可以加快开发速度。实现一个嵌入式Linux设备驱动的大致流程如下。

(1)查看原理图,理解设备的工作原理。一般嵌入式处理器的生产商提供参考电路,也可以根据需要自行设计。

(2)定义设备号。设备由一个主设备号和一个次设备号来标识。主设备号惟一标识了设备类型,即设备驱动程序类型,它是块设备表或字符设备表中设备表项的索引。次设备号仅由设备驱动程序解释,区分被一个设备驱动控制下的某个独立的设备。

(3)实现初始化函数。在驱动程序中实现驱动的注册和卸载。

(4)设计所要实现的文件操作,定义file_operations结构。

(5)实现所需的文件操作调用,如read、write等。

(6)实现中断服务,并用request_irq向内核注册,中断并不是每个设备驱动所必需的。

(7)编译该驱动程序到内核中,或者用insmod命令加载模块。

(8)测试该设备,编写应用程序,对驱动程序进行测试。

五、基本接口实验

在完成了基本实验后,我们开始着手基本接口实验。在这些实验中,我们学

习如何编写设备驱动程序,及如何用测试程序检验驱动程序是否正确,并通过改写测试程序正常地对驱动程序进行相关操作。

1.实验十二简单设备驱动程序

本次实验的任务是编写一个字符型设备驱动程序,并学习在应用程序中调用驱动。考虑到我们初次接触驱动程序的编写,对此还十分陌生,因此指导书中提供了本次实验所要用到的程序源代码。虽然这样一个字符型设备驱动程序并没有任何实际作用,但是它让我们轻松掌握了嵌入式驱动的编写过程,因为复杂繁琐的驱动,其骨架都是相同的。因此,看懂本实验的源代码,学习并模仿其编写方法,对于后续实验有着非常重要的意义。

2.实验十三CPU GPIO驱动程序设计

在本实验中,我们要编写第一个针对实际硬件的驱动程序。我们知道,凡是操作系统控制外部设备,即使是最简单的硬件电路,也是需要驱动的。本实验涉及的外部硬件只有电阻和发光二极管。我们使用自己编写的驱动程序与应用程序控制GPIO96的电平,通过LED 的亮灭来判断,是否CPU 做出了正确的响应。

补充代码(1)

// ------------------- WRITE -----------------------

ssize_tSIMPLE_GPIO_LED_write (struct file * file ,const char * buf, size_t count, loff_t * f_ops)

{

#ifdef OURS_GPIO_LED_DEBUG

printk ("SIMPLE_GPIO_LED_write [ --kernel--]\n");

#endif

return count;

}

补充代码(2)

// ------------------- OPEN ------------------------

ssize_tSIMPLE_GPIO_LED_open (structinode * inode ,struct file * file)

{

#ifdef OURS_GPIO_LED_DEBUG

printk ("SIMPLE_GPIO_LED_open [ --kernel--]\n");

#endif

MOD_INC_USE_COUNT;

return 0;

}

补充代码(3)

// -------------------------------------------------

structfile_operationsGPIO_LED_ctl_ops ={

open:SIMPLE_GPIO_LED_open,

read:SIMPLE_GPIO_LED_read,

write:SIMPLE_GPIO_LED_write,

ioctl:SIMPLE_GPIO_LED_ioctl,

release:SIMPLE_GPIO_LED_release,

};

实验作业

要求在目标板上LED闪烁产生亮7秒,灭2秒的效果

在测试程序中有这样一段代码:

while(1)

{ ioctl(fd,LED_OFF);

sleep(1); // 休眠1秒

ioctl(fd,LED_ON);

sleep(1); }

只需将上面的代码改为如下代码即可:

while(1)

{ ioctl(fd,LED_OFF);

sleep(2); // 灭2秒

ioctl(fd,LED_ON);

sleep(7); // 亮7秒

}

3.实验十四中断实验

在理论课中,我们学习了许多中断方面的知识,包括中断向量、中断优先级、中断过程等。在PXA270系统里,中断控制器分外部设备和PXA270X 处理器设备产生的两个层次的中断,前者是初级的中断源,后者是次级中断源,大量的次级中断源通常被映射为一个初级中断源。

补充代码1

voidshowversion(void)

{

printk("*********************************************\n");

printk("\t %s \t\n", VERSION);

printk("*********************************************\n\n");

}

static intSimpleINT_temp_count = 0;

补充代码2

// ------------------- READ ------------------------

ssize_tSIMPLE_INT_read (struct file * file ,char * buf, size_t count, loff_t * f_ops) {

#ifdef OURS_INT_DEBUG

printk ("SIMPLE_INT_read [ --kernel--]\n");

#endif

return count;

}

补充代码3

// ------------------- WRITE -----------------------

ssize_tSIMPLE_INT_write (struct file * file ,const char * buf, size_t count, loff_t * f_ops)

{

#ifdef OURS_INT_DEBUG

printk ("SIMPL_INT_write [ --kernel--]\n");

#endif

return count;

}

补充代码4

// -------------------------------------------------

structfile_operationsINT_ctl_ops ={

open: SIMPLE_INT_open,

read: SIMPLE_INT_read,

write:SIMPLE_INT_write,

ioctl:SIMPLE_INT_ioctl,

release:SIMPLE_INT_release,

};

通过此实验,我了解了硬件中断管脚与中断号的对应关系,以及中断号与中断处理程序的对应关系,对于今后编写更为复杂的中断程序打下基础。

4.实验十五数码管显示实验

在此实验中,我们要编写针对74LV164 的驱动程序,并用其串并转换功能来控制八段LED数码管的显示。

补充代码1

voidshowversion(void)

{

printk("*********************************************\n");

printk("\t %s \t\n", VERSION);

printk("*********************************************\n\n");

}

补充代码2

// ------------------- READ ------------------------

ssize_tSERIAL_LED_read (struct file * file ,char * buf, size_t count, loff_t * f_ops) {

#ifdef OURS_HELLO_DEBUG

printk ("SERIAL_LED_read [ --kernel--]\n");

#endif

return count;

}

补充代码3

// ------------------- WRITE -----------------------

ssize_tSERIAL_LED_write (struct file * file ,const char * buf, size_t count, loff_t * f_ops)

{

#ifdef OURS_HELLO_DEBUG

printk ("SERIAL_LED_write [ --kernel--]\n");

#endif

write_byte(* buf);

return count;

}

补充代码4

// ------------------- IOCTL -----------------------

ssize_tSERIAL_LED_ioctl (structinode * inode ,struct file * file, unsigned intcmd, long data)

{

#ifdef OURS_HELLO_DEBUG

printk ("SERIAL_LED_ioctl [ --kernel--]\n");

#endif

return 0;

}

补充代码5

// ------------------- OPEN ------------------------

ssize_tSERIAL_LED_open (structinode * inode ,struct file * file)

{

#ifdef OURS_HELLO_DEBUG

printk ("SERIAL_LED_open [ --kernel--]\n");

#endif

MOD_INC_USE_COUNT;

return 0;

}

补充代码6

// ------------------- RELEASE/CLOSE ---------------

ssize_tSERIAL_LED_release (structinode *inode ,struct file * file)

{

#ifdef OURS_HELLO_DEBUG

printk ("SERIAL_LED_release [ --kernel--]\n");

#endif

MOD_DEC_USE_COUNT;

return 0;

}

补充代码7

// -------------------------------------------------

structfile_operationsSERIAL_LED_ops ={

open: SERIAL_LED_open,

read: SERIAL_LED_read,

write:SERIAL_LED_write,

ioctl:SERIAL_LED_ioctl,

release:SERIAL_LED_release,

};

补充代码8

staticint __initHW_SERIAL_LED_init(void)

{

int ret = -ENODEV;

ret = devfs_register_chrdev(SERIAL_LED_MAJOR, "serial_led_ctl", &SERIAL_LED_ops);

showversion();

if( ret < 0 )

{

printk (" pxa270 init_module failed with %d\n [ --kernel--]", ret);

return ret;

}

else

{

printk(" pxa270 serial_led_driver register success!!! [ --kernel--]\n");

}

return ret;

}

补充代码9

staticint __init pxa270_SERIAL_LED_init(void)

{

int ret = -ENODEV;

#ifdef OURS_HELLO_DEBUG

printk ("pxa270_SERIAL_LED_init [ --kernel--]\n");

#endif

ret = HW_SERIAL_LED_init();

if (ret)

return ret;

return 0;

}

补充代码10

static void __exit cleanup_SERIAL_LED(void)

{

#ifdef OURS_HELLO_DEBUG

printk ("cleanup_SERIAL_LED [ --kernel--]\n");

#endif

devfs_unregister_chrdev (SERIAL_LED_MAJOR, "serial_led" );

}

补充代码11

MODULE_DESCRIPTION("serial_led driver module");

MODULE_AUTHOR("liduo");

MODULE_LICENSE("GPL");

module_init(pxa270_SERIAL_LED_init);

module_exit(cleanup_SERIAL_LED);

使用测试程序看到的测试结果是数码管按0-9显示输出。

实验作业要求在上述基础上,分别实现一下两个功能:

①要求您再编写一个测试程序,实现PXA270-EP 目标板上的LED 数码管循环显示的数字9-0。

②要求您再编写一个测试程序,实现PXA270-EP 目标板上的LED 数码管循环显示的数字02468。

由于在测试程序中定义了数组buf[10]分别存储了0-9是个数,因此上述功能的实现方法是,分别对测试程序做如下修改:

原测试程序:

while(1)

{ for(count=0;count<10;count++)

{ data[0] = buf[count]; ret=write(fd,data,1); sleep(1);

}

}

实现功能①:

while(1)

{ for(count=9;count>=0;count--) // 倒序显示数字

{ data[0] = buf[count]; ret=write(fd,data,1); sleep(1);

}

}

结果显示

实现功能②:

while(1)

{ for(count=0;count<9;count=count+2)

// 更改显数顺序 { data[0] = buf[count]; ret=write(fd,data,1); sleep(1);

}

}

结果显示

触发器实验报告

实验3 触发器及其应用 一、实验目的 1、掌握基本RS、JK、D和T触发器的逻辑功能 2、掌握集成触发器的逻辑功能及使用方法 3、熟悉触发器之间相互转换的方法 二、实验原理 触发器具有两个稳定状态,用以表示逻辑状态“1”和“0”,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态,它是一个具有记忆功能的二进制信息存贮器件,是构成各种时序电路的最基本逻辑单元。 1、基本RS触发器 图5-8-1为由两个与非门交叉耦合构成的基本RS触发器,它是无时钟控制低电平直接触发的触发器。基本RS触发器具有置“0”、置“1”和“保持”三种功能。通常称S为置“1”端,因为S=0(R=1)时触发器被置“1”;R为置“0”端,因为R=0(S=1)时触发器被置“0”,当S=R=1时状态保持;S=R=0时,触发器状态不定,应避免此 种情况发生,表5-8-1为基本RS触发器的功能表。 基本RS触发器。也可以用两个“或非门”组成,此时为高电平触发有效。 表5-8-1 图5—8—1 基本RS触发器 2、JK触发器 在输入信号为双端的情况下,JK触发器是功能完善、使用灵活和通用性较强的一种触发器。本实验采用74LS112双JK触发器,是下降边沿触发的边沿触发器。引脚功能及逻辑符号如图5-8-2所示。 JK触发器的状态方程为 Q n+1=J Q n+K Q n J和K是数据输入端,是触发器状态更新的依据,若J、K有两个或两个以上输入端时,组

成“与”的关系。Q与Q为两个互补输出端。通常把Q=0、Q=1的状态定为触发器“0”状态;而把Q=1,Q=0定为“1”状态。 图5-8-2 74LS112双JK触发器引脚排列及逻辑符号 下降沿触发JK触发器的功能如表5-8-2 表 注:×—任意态↓—高到低电平跳变↑—低到高电平跳变 Q n(Q n)—现态Q n+1(Q n+1 )—次态φ—不定态 JK触发器常被用作缓冲存储器,移位寄存器和计数器。 3、D触发器 在输入信号为单端的情况下,D触发器用起来最为方便,其状态方程为 Q n+1=D n,其输出状态的更新发生在CP脉冲的上升沿,故又称为上升沿触发的边沿触发器, 触发器的状态只取决于时钟到来前D端的状态,D触发器的应用很广,可用作数字信号的寄存,移位寄存,分频和波形发生等。有很多种型号可供各种用途的需要而选用。如双 D 74LS74、四D 74LS175、六D 74LS174等。 图5-8-3 为双D 74LS74的引脚排列及逻辑符号。功能如表5-8-3。

模电实验报告

模拟电子技术 实验报告 实验题目:放大电路的失真研究 学院:电子信息工程学院 专业: 姓名: 学号: 指导教师: 【2017年】

目录 一、实验目的与知识背景 (3) 1.1实验目的 (3) 1.2知识背景 (3) 二、实验内容及要求 (3) 2.1基本要求 (3) 2.2发挥部分 (4) 三、实验方案比较及论证 (5) 3.1理论分析电路的失真产生及消除 (5) 3.2具体电路设计及仿真 (8) 四、电路制作及测试 (12) 4.1正常放大、截止失真、饱和失真及双向失真 (12) 4.2交越失真 (13) 4.3非对称失真 (13) 五、失真研究思考题 (13) 六、感想与体会 (16) 6.1小组分工 (16) 6.2收获与体会 (16) 6.3对课程的建议 (17) 七、参考文献 (17)

一、实验目的与知识背景 1.1实验目的 1. 掌握失真放大电路的设计和解决电路的失真问题——针对工程问题,收集信息、查阅文献、分析现有技术的特点与局限性。提高系统地构思问题和解决问题的能力。 2. 掌握消除放大电路各种失真技术——依据解决方案,实现系统或模块,在设计实现环节上体现创造性。系统地归纳模拟电子技术中失真现象。 3. 具备通过现象分析电路结构特点——对设计系统进行功能和性能测试,进行必要的方案改进,提高改善电路的能力。 1.2知识背景 1.输出波形失真可发生在基本放大、功率放大和负反馈放大等放大电路中,输出波形失真有截止失真、饱和失真、双向失真、交越失真,以及输出产生的谐波失真和不对称失真等。 2.基本放大电路的研究、乙类功率放大器、负反馈消除不对称失真以及集成运放的研究与应用。 3.射极偏置电路、乙类、甲乙类功率放大电路和负反馈电路。 二、实验内容及要求 2.1基本要求 1.输入一标准正弦波,频率2kHz,幅度50mV,输出正弦波频率2kHz,幅度1V。

北邮大三数据库实验六数据查询分析实验

实验六数据查询分析实验 实验目的 通过对不同情况下查询语句的执行分析,巩固和加深对查询和查询优化相关理论知识的理解,提高优化数据库系统的实践能力,熟悉了解Sybase中查询分析器的使用,并进一步提高编写复杂查询的SQL 程序的能力。 实验内容 1.索引对查询的影响 (1)对结果集只有一个元组的查询分三种情况进行执行(必如查询一个具体学生的信息):不建立索引,(学号上)建立非聚集索引,(学号上)建立聚集索引。 建立聚集索引: create clustered index student on student(student_id) go 建立非聚集索引: create nonclustered index student_index on student(student_id) go 用查询分析器的执行步骤和结果对执行进行分析比较。 select*from student where student_id='30201' 不建立索引 建立聚集索引

建立非聚集索引 (2)对结果集中有多个元组的查询(例如查看某门成绩的成绩表)分类似(1)的三种情况进行执行比较。 select*from student where student_id>'30401' 不建立索引:

建立聚集索引: 建立非聚集索引: (3)对查询条件为一个连续的范围的查询(例如查看学号在某个范围内的学生的选课情况)分类似(1)的三种情况进行执行比较,注意系统处理的选择。 select*from student where student_id between'31201'and'31415' 不建立索引:

北邮数字电路综合实验报告

数字电路综合实验报告 简易智能密码锁 一、实验课题及任务要求 设计并实现一个数字密码锁,密码锁有四位数字密码和一个确认开锁按键,密码输入正确,密码锁打开,密码输入错误进行警示。 基本要求: 1、密码设置:通过键盘进行4 位数字密码设定输入,在数码管上显示所输入数字。通过密码设置确定键(BTN 键)进行锁定。 2、开锁:在闭锁状态下,可以输入密码开锁,且每输入一位密码,在数码管上显示“-”,提示已输入密码的位数。输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误系统仍然处于闭锁状态,并用蜂鸣器或led 闪烁报警。 3、在开锁状态下,可以通过密码复位键(BTN 键)来清除密码,恢复初始密码“0000”。闭锁状态下不能清除密码。 4、用点阵显示开锁和闭锁状态。 提高要求: 1、输入密码数字由右向左依次显示,即:每输入一数字显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。 2、密码锁的密码位数(4~6 位)可调。

3、自拟其它功能。 二、系统设计 2.1系统总体框图 2.2逻辑流程图

2.3MDS图 2.4分块说明 程序主要分为6个模块:键盘模块,数码管模块,点阵模块,报警模块,防抖模块,控制模块。以下进行详细介绍。 1.键盘模块 本模块主要完成是4×4键盘扫描,然后获取其键值,并对其进行编码,从而进行按键的识别,并将相应的按键值进行显示。 键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出高电平,在读入输出的行值时,通常高电平会被低电平拉低,当当前位置为高电平“1”时,没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。由此可确定按键位置。

北邮通电实验报告

实验3 集成乘法器幅度调制电路 信息与通信工程学院 2016211112班 苏晓玥杨宇宁 2016210349 2016210350

一.实验目的 1.通过实验了解振幅调制的工作原理。 2.掌握用MC1496来实现AM和DSB的方法,并研究已调波与调制信号,载波之间的关系。3.掌握用示波器测量调幅系数的方法。 二.实验准备 1.本实验时应具备的知识点 (1)幅度调制 (2)用模拟乘法器实现幅度调制 (3)MC1496四象限模拟相乘器 2.本实验时所用到的仪器 (1)③号实验板《调幅与功率放大器电路》 (2)示波器 (3)万用表 (4)直流稳压电源 (5)高频信号源 三.实验内容 1.模拟相乘调幅器的输入失调电压调节。 2.用示波器观察正常调幅波(AM)波形,并测量其调幅系数。 3.用示波器观察平衡调幅波(抑制载波的双边带波形DSB)波形。 四.实验波形记录、说明 1.DSB信号波形观察

2.DSB信号反相点观察 3.DSB信号波形与载波波形的相位比较 结论:在调制信号正半周期间,两者同相;负半周期间,两者反相。

4.AM正常波形观测 5.过调制时的AM波形观察(1)调制度为100%

(2)调制度大于100% (3)调制度为30% A=260.0mv B=140.0mv

五.实验结论 我们通过实验了解振幅调制的工作原理是:调幅调制就是用低频调制信号去控制高频振荡(载波)的幅度,使其成为带有低频信息的调幅波。目前由于集成电路的发展,集成模拟相乘器得到广泛的应用,为此本实验采用价格较低廉的MC1496集成模拟相乘器来实现调幅之功能。 DSB信号波形与载波波形的相位关系是:在调制信号正半周期间,两者同相;负半周期间,两者反相。 通过实验了解到了调制度的计算方法 六.课程心得体会 通过本次实验,我们了解了振幅调制的工作原理并掌握了实现AM和DSB的方法,学会计算调制度,具体见实验结论。我们对集成乘法器幅度调制电路有了更好的了解,对他有了更深入的认识,提高了对通信电子电路的兴趣。 和模电实验的单独进行,通电实验增强了团队配合的能力,两个人的有效分工提高了实验的效率,减少了一个人的独自苦恼。

课程设计实验报告 北邮

课程设计实验报告 -----物联网实验 学院:电子工程学院班级:2011211204 指导老师:赵同刚

一.物联网概念 物联网是新一代信息技术的重要组成部分。物联网的英文名称叫“The Internet of things”。顾名思义,物联网就是“物物相连的互联网”。这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网的基础上延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物体与物体之间,进行信息交换和通信。因此,物联网的定义是:通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把任何物体与互联网相连接,进行信息交换和通信,以实现对物体的智能化识别、定位、跟踪、监控和管理的一种网络。 二.物联网作用 现有成熟的主要应用包括: —检测、捕捉和识别人脸,感知人的身份; —分析运动目标(人和物)的行为,防范周界入侵; —感知人的流动,用于客流统计和分析、娱乐场所等公共场合逗留人数预警; —感知人或者物的消失、出现,用于财产保全、可疑遗留物识别等; —感知和捕捉运动中的车牌,用于非法占用公交车道的车辆车牌捕捉; —感知人群聚集状态、驾驶疲劳状态、烟雾现象等各类信息。 三.物联网无线传感(ZigBee)感知系统 ZigBee是一种新兴的短距离、低功耗、低数据速率、低成本、低复杂度的无线网络技术。ZigBee在整个协议栈中处于网络层的位置,其下是由IEEE 802.15.4规范实现PHY(物理层)和MAC(媒体访问控制层),对上ZigBee提供了应用层接口。 ZigBee可以组成星形、网状、树形的网络拓扑,可用于无线传感器网络(WSN)的组网以及其他无线应用。ZigBee工作于2.4 GHz的免执照频段,可以容纳高达65 000个节点。这些节点的功耗很低,单靠2节5号电池就可以维持工作6~24个月。除此之外,它还具有很高的可靠性和安全性。这些优点使基于ZigBee的WSN广泛应用于工业控制、消费性电子设备、汽车自动化、家庭和楼宇自动化、医用设备控制等。 ZigBee的基础是IEEE802.15.4,这是IEEE无线个人区域网工作组的一项标准,被称作IEEE802.15.4(ZigBee)技术标准。ZigBee不仅只是802.15.4的名字。IEEE仅处理低级MAC

北邮模电实验声控报警电路

北京邮电大学 《电子电路测量与设计实验》实验报告 题目:声控报警电路 姓名:李英民 学号:2014210579 班级: 2014211120 学院: 信息与通信工程学院 2016年 4 月

一、课题名称 声控报警电路 二、摘要及关键字 (一)摘要: 当今社会,对报警系统的需求越来越大,电子报警器应用于安全防范,系统故障,交通运输,医疗救护等领域,和社会生产密不可分。 本实验就针对声控报警电路进行设计和电路拼搭,通过实际面包板电路和仿真电路对报警电路的局部电路和整体电路两方面进行电路介绍和功能分析。并分析在实验中遇见的问题,困难及解决方法,最后总结本实验结束后的心得体验。 (二)关键字: 报警器;CD4011;无源蜂鸣器;LM358 三、设计任务要求 1、基本要求:在麦克风近处击掌(模拟异常响动),电路能发出报警声,持续时间大于5 秒。声音传感器用驻极体式咪头,蜂鸣器用无源压电式蜂鸣器 2、提高要求: A、增加报警灯,使其闪烁报警。 B、增加输出功率,提高报警音量,加强威慑力。 四、设计思路及总体结构框图 (一)设计思路: 驻极体式咪头作为声音传感器,将击掌产生的声信号转化为电信号,微弱 的电信号经过反相放大器放大,放大信号进入同相比较器,比较器根据实验可以设置合理的比较电压 VREF,当放大信号高于比较电压 VREF 时,放大器输出高电平促发方波振荡器开始工作,振荡产生的方波经三极管放大即可驱动无源式蜂鸣器发出报警声音。但由于一次拍手产生的电信号只有短暂的信号,故还需要在比较器后加入延时电路,利用时间常数的特性来延长报警时间 (二)总体结构框图: 五、分块电路和总体电路的设计

北邮微波实验报告整理版

北京邮电大学信息与通信工程学院 微波实验报告 班级:20112111xx 姓名:xxx 学号:20112103xx 指导老师:徐林娟 2014年6月

目录 实验二分支线匹配器 (1) 实验目的 (1) 实验原理 (1) 实验内容 (1) 实验步骤 (1) 单支节 (2) 双支节 (7) 实验三四分之一波长阻抗变换器 (12) 实验目的 (12) 实验原理 (12) 实验内容 (13) 实验步骤 (13) 纯电阻负载 (14) 复数负载 (19) 实验四功分器 (23) 实验目的 (23) 实验原理 (23) 实验内容 (24) 实验步骤 (24) 公分比为1.5 (25) 公分比为1(等功分器) (29) 心得体会 (32)

201121111x 班-xx 号-xx ——电磁场与微波技术实验报告 实验二 分支线匹配器 实验目的 1.熟悉支节匹配器的匹配原理 2.了解微带线的工作原理和实际应用 3.掌握Smith 图解法设计微带线匹配网络 实验原理 支节匹配器是在主传输线上并联适当的电纳(或者串联适当的电抗),用附加的反射来抵消主传输线上原来的反射波,以达到匹配的目的。 单支节匹配器,调谐时主要有两个可调参量:距离d 和由并联开路或短路短截线提供的电纳。匹配的基本思想是选择d ,使其在距离负载d 处向主线看去的导纳Y 是Y0+jB 形式。然后,此短截线的电纳选择为-jB ,根据该电纳值确定分支短截线的长度,这样就达到匹配条件。 双支节匹配器,通过增加一个支节,改进了单支节匹配器需要调节支节位置的不足,只需调节两个分支线长度,就能够达到匹配(但是双支节匹配不是对任意负载阻抗都能匹配的,即存在一个不能得到匹配的禁区)。 微带线是有介质εr (εr >1)和空气混合填充,基片上方是空气,导体带条和接地板之间是介质εr ,可以近似等效为均匀介质填充的传输线,等效介质电常数为 εe ,介于1和εr 之间,依赖于基片厚度H 和导体宽度W 。而微带线的特性阻抗与其等效介质电常数为εe 、基片厚度H 和导体宽度W 有关。 实验内容 已知:输入阻抗Z 75in ,负载阻抗Z (6435)l j ,特性阻抗0Z 75 ,介质基片 2.55r ,1H mm 。 假定负载在2GHz 时实现匹配,利用图解法设计微带线单支节和双支节匹配网络,假设双支节网络分支线与负载的距离114d ,两分支线之间的距离为21 8 d 。画出几种可能的电路图并且比较输入端反射系数幅度从1.8GHz 至2.2GHz 的变化。 实验步骤 1.根据已知计算出各参量,确定项目频率。 2.将归一化阻抗和负载阻抗所在位置分别标在Smith 圆上。 3.设计单枝节匹配网络,在图上确定分支线与负载的距离以及分支线的长度,根据给定的介质基片、特性阻抗和频率用TXLINE 计算微带线物理长度和宽度。此处应该注意电长度和实际长度的联系。 4.画出原理图,在用微带线画出基本的原理图时,注意还要把衬底添加到图中,将各部分的参数填入。注意微带 分支线处的不均匀性所引起的影响,选择适当的模型。 5.负载阻抗选择电阻和电感串联的形式,连接各端口,完成原理图,并且将项目的频率改为1.8—2.2GHz 。 6.添加矩形图,添加测量,点击分析,测量输入端的反射系数幅值。 7.同理设计双枝节匹配网络,重复上面的步骤。

CMOS反相器数电实验报告

1.实验目的 1.1了解Schematic设计环境 1.2掌握反相器电路原理图输入方法 1.3掌握逻辑符号创建方法 2实验原理 在Schematic设计环境中本实验所用的主要菜单有Tool、Design、Window、Edit、Add、Check、Sheet、Options等项。其中常用菜单有: Tool菜单提供设计工具以及辅助命令。比如,lab4、lab5所使用的仿真工具ADE,就在Tool下拉菜单中。 Window菜单中的各选项有调整窗口的辅助功能。比如,Zoom选项对窗口放大(Zoom in)与缩小(Zoom out),fit选项将窗口调整为居中,redraw选项为刷新。 Edit菜单实现具体的编辑功能,主要有取消操作(Undo)、重复操作(Redo)、拉伸(Stretch)、拷贝(copy)、移动(Move)、删除(Delete)、旋转(Rotate)、属性(Properties)、选择(Select)、查找(Search)等子菜单,在以下实验中将大量应用。 Add菜单用于添加编辑所需要的各种素材,比如元件(Instance)或输入输出端点(pin)等。 3实验步骤 3.1在ic5141中设计的管理以库的方式进行。库管理器中包含有设计使用的工艺库和ic5141软件提供的一些元件库。无论画电路图还是设计版图,都和建库有关,所以首先建立一个库文件,方法如下: CIW界面点击File菜单,出现下拉菜单,选命令File→New→Library,出现“New Library”对话框,填入合适的信息,如图1所示。

新建库后面还将用于版图绘制,选第二个选项,即“Attach to an existing techfile”,单击“OK”按钮,完成新库的建立。 3.2电路原理图输入 设计库建好后,就可以开始画电路原理图,具体过程如下。 建立设计原理图:在CIW中选菜单单项File→New→Cellview,出现“Create new File”对话框,如图所示填写、选择相应的选项,点击OK按钮,进入原理如编辑器。

北京邮电大学数字电路实验报告

北京邮电大学 数字电路与逻辑设计实验 实验报告 实验名称:QuartusII原理图输入 法设计与实现 学院:北京邮电大学 班级: 姓名: 学号:

一.实验名称和实验任务要求 实验名称:QuartusII原理图输入法设计与实现 实验目的:⑴熟悉用QuartusII原理图输入法进行电路设计和仿真。 ⑵掌握QuartusII图形模块单元的生成与调用; ⑶熟悉实验板的使用。 实验任务要求:⑴掌握QuartusII的基础上,利用QuartusII用逻辑 门设计实现一个半加器,生成新的半加器图像模 块。 ⑵用实验内容(1)中生成的半加器模块以及逻辑门 实现一个全加器,仿真验证其功能,并能下载到实 验板上进行测试,要求用拨码开关设定输入信号, 发光二级管显示输出信号。 ⑶用3线—8线译码器(74L138)和逻辑门实现要求 的函数:CBA F+ C + =,仿真验证其 + B C B A A A B C 功能,,并能下载到实验板上进行测试,要求用拨 码开关设定输入信号,发光二级管显示输出信号。二.设计思路和过程 半加器的设计实现过程:⑴半加器的应有两个输入值,两个输出值。 a表示加数,b表示被加数,s表示半加和, co表示向高位的进位。

⑵由数字电路与逻辑设计理论知识可知 b a s ⊕=;b a co ?= 选择两个逻辑门:异或门和与门。a,b 为异 或门和与门的输入,S 为异或门的输出,C 为与门的输出。 (3)利用QuartusII 仿真实现其逻辑功能, 并生成新的半加器图形模块单元。 (4)下载到电路板,并检验是否正确。 全加器的设计实现过程:⑴全加器可以由两个半加器和一个或门构 成。全加器有三个输入值a,b,ci ,两个输 出值s,co :a 为被加数,b 为加数,ci 为低 位向高位的进位。 ⑵全加器的逻辑表达式为: c b a s ⊕⊕= b a ci b a co ?+?⊕=)( ⑶利用全加器的逻辑表达式和半加器的逻 辑功能,实现全加器。 用3线—8线译码器(74L138)和逻辑门设计实现函数 CBA A B C A B C A B C F +++= 设计实现过程:⑴利用QuartusII 选择译码器(74L138)的图形模块

北京邮电大学通信原理软件实验报告

北京邮电大学实验报告 题目:基于SYSTEMVIEW通信原理实验报告

实验一:验证抽样定理 一、实验目的 1、掌握抽样定理 2. 通过时域频域波形分析系统性能 二、实验原理 低通滤波器频率与m(t)相同 三、实验步骤 1. 要求三个基带信号相加后抽样,然后通过低通滤波器恢复出原信号。 2. 连接各模块完成系统,同时在必要输出端设置观察窗。 3. 设置各模块参数。 三个基带信号的频率从上到下分别设置为10hz、12hz、14hz。 抽样信号频率设置为28hz,即2*14hz。(由抽样定理知,) 将低通滤波器频率设置为14hz,则将恢复第三个信号(其频率为14hz)进行系统定时设置,起始时间设为0,终止时间设为1s.抽样率设为1khz。 3.观察基带信号、抽样后的信号、最终恢复的信号波形

四、实验结果 最上面的图为原基带信号波形,中间图为最终恢复的信号波形,最下面的图为抽样后的信号波形。 五、实验讨论 从实验结果可以看出,正如前面实验原理所述,满足抽样定理的理想抽样应该使抽样后的波形图如同冲激信号,且其包络图形为原基带信号波形图。抽样后的信号通过低通滤波器后,恢复出的信号波形与原基带信号相同。 由此可知,如果每秒对基带模拟信号均匀抽样不少于2次,则所得样值序列含有原基带信号的全部信息,从该样值序列可以无失真地恢复成原来的基带信号。 讨论:若抽样速率少于每秒2次,会出现什么情况? 答:会产生失真,这种失真被称为混叠失真。 六、实验建议、意见 增加改变抽样率的步骤,观察是否产生失真。

实验二:奈奎斯特第一准则 一、实验目的 (1)理解无码间干扰数字基带信号的传输; (2)掌握升余弦滚降滤波器的特性; (3)通过时域、频域波形分析系统性能。 二、实验原理 在现代通信系统中,码元是按照一定的间隔发送的,接收端只要能够正确地恢复出幅度序列,就能够无误地恢复传送的信号。因此,只需要研究如何使波形在特定的时刻无失真,而不必追求整个波形不变。 奈奎斯特准则提出:只要信号经过整形后能够在抽样点保持不变,即使其波形已经发生了变化,也能够在抽样判决后恢复原始的信号,因为信息完全恢复携带在抽样点幅度上。 奈奎斯特准则要求在波形成形输入到接收端的滤波器输出的整个传送过程传递函数满足:,其充分必要条件是x(t)的傅氏变换X ( f )必须满足 奈奎斯特准则还指出了信道带宽与码速率的基本关系。即R B =1/T B =2? N =2B N。 式中R b 为传码率,单位为比特/每秒(bps)。f N 和B N 分别为理想信道的低通截止 频率和奈奎斯特带宽。上式说明了理想信道的频带利用率为R B /B N =2。 在实际应用中,理想低通滤波器是不可能实现的,升余弦滤波器是在实际中满足无码间干扰传输的充要条件,已获得广泛应用的滤波器。 升余弦滤波器的带宽为:。其中,α为滚降系数,0 ≤α≤1, 三、实验步骤 1.根据奈奎斯特准则,设计实现验证奈奎斯特第一准则的仿真系统,同时在必 要输出端设置观察窗。设计图如下

cmos模拟集成电路设计实验报告

北京邮电大学 实验报告 实验题目:cmos模拟集成电路实验 姓名:何明枢 班级:2013211207 班内序号:19 学号:2013211007 指导老师:韩可 日期:2016 年 1 月16 日星期六

目录 实验一:共源级放大器性能分析 (1) 一、实验目的 (1) 二、实验内容 (1) 三、实验结果 (1) 四、实验结果分析 (3) 实验二:差分放大器设计 (4) 一、实验目的 (4) 二、实验要求 (4) 三、实验原理 (4) 四、实验结果 (5) 五、思考题 (6) 实验三:电流源负载差分放大器设计 (7) 一、实验目的 (7) 二、实验内容 (7) 三、差分放大器的设计方法 (7) 四、实验原理 (7) 五、实验结果 (9) 六、实验分析 (10) 实验五:共源共栅电流镜设计 (11) 一、实验目的 (11) 二、实验题目及要求 (11) 三、实验内容 (11) 四、实验原理 (11) 五、实验结果 (14) 六、电路工作状态分析 (15) 实验六:两级运算放大器设计 (17) 一、实验目的 (17) 二、实验要求 (17) 三、实验内容 (17) 四、实验原理 (21) 五、实验结果 (23) 六、思考题 (24) 七、实验结果分析 (24) 实验总结与体会 (26) 一、实验中遇到的的问题 (26) 二、实验体会 (26) 三、对课程的一些建议 (27)

实验一:共源级放大器性能分析 一、实验目的 1、掌握synopsys软件启动和电路原理图(schematic)设计输入方法; 2、掌握使用synopsys电路仿真软件custom designer对原理图进行电路特性仿真; 3、输入共源级放大器电路并对其进行DC、AC分析,绘制曲线; 4、深入理解共源级放大器的工作原理以及mos管参数的改变对放大器性能的影响 二、实验内容 1、启动synopsys,建立库及Cellview文件。 2、输入共源级放大器电路图。 3、设置仿真环境。 4、仿真并查看仿真结果,绘制曲线。 三、实验结果 1、实验电路图

北邮arduino实验报告

电子电路综合实验设计 实验名称: 基于 Arduino 的电压有效值测量电路设计与实现 学院: 班级: 学号: 姓名: 班内序号:

实验 基于Arduino 的电压有效值测量电路设计与实现 一. 摘要 Arduino是一个基于开放原始码的软硬件平台,可用来开发独立运作、并具互动性的电子产品,也可以开发与PC 相连的周边装置,同时能在运行时与PC 上的软件进行交互。为了测量正弦波电压有效值,首先我们设计了单电源供电的半波整流电路,并进行整流滤波输出,然后选择了通过Arduino设计了读取电压有效值的程序,并实现使用此最小系统来测量和显示电压有效值。在频率和直流电压幅度限定在小范围的情况下,最小系统的示数基本和毫伏表测量的值相同。根据交流电压有效值的定义,运用集成运放和设计的Arduino最小系统的结合,实现了运用少量元器件对交流电压有效值的测量。 关键字:半波整流整流滤波 Arduino最小系统读取电压有效值 二. 实验目的 1、熟悉Arduino 最小系统的构建和使用方法; 2、掌握峰值半波整流电路的工作原理; 3、根据技术指标通过分析计算确定电路形式和元器件参数; 4、画出电路原理图(元器件标准化,电路图规范化); 5、熟悉计算机仿真方法; 6、熟悉Arduino 系统编程方法。 三. 实验任务及设计要求 设计实现 Arduino 最小系统,并基于该系统实现对正弦波电压有效值的测量和显示。 1、基本要求 (1)实现Arduino 最小系统,并能下载完成Blink 测试程序,驱动Arduino 数字13 口LED 闪烁; (2)电源部分稳定输出5V 工作电压,用于系统供电; (3)设计峰值半波整流电路,技术指标要求如下:

北邮模电简易晶体管图示仪实验报告

模拟综合实验 实 验 报 告 课题名称:简易晶体管图示仪 学院:信息与通信工程学院 专业: 班级: : 学号: 指导老师:王丹志

2016.04.15 摘要 本报告主要介绍了简易晶体管图示仪的设计原理、部结构、设计框图及仿真电路图;并且给出了各个分块电路和总体电路的设计原理、功能说明、电路图等;同时展示了实验中示波器上的波形和其他重要数据;最后分析了实际操作中遇到的问题并提出了解决办法,还有对本次实验的结论与总结。 关键词:阶梯波、三角波、晶体管、输出特性曲线

一.设计任务要求: 1.基本要求: 1)设计一个阶梯波发生器,f≥500Hz,Uopp≥3V,阶数 N=6; 2)设计一个三角波发生器,三角波Vopp≥2V; 3)设计保护电路,实现对三极管输出特性的测试。 2.提高要求: 1)可以识别NPN,PNP管,并正确测试不同性质三极管; 2)设计阶数可调的阶梯波发生器。 二.设计思路及总体结构框图: 1.设计思路: 本实验要求用示波器稳定显示晶体管的输出特性曲线,因此可用阶梯波和三角波对晶体管进行周期性扫描,并将结果以图示的方式显示在示波器上。 具体思路如下: 1)首先利用NE555时基振荡器产生符合条件的方波; 2)将方波输入到双运算放大器LF353中,其中一个运放作 为积分器产生锯齿波,另一个运放构成反相放大电路得 到合适幅值的三角波; 3)将方波作为时钟信号输入到四位同步二进制计数器 74LS169中,取其低三位输出作为地址输入到CD4051

的地址端,通过分压在CD4051的数据输入端输入等间 隔的电位值,CD4051作为数据选择器,根据输入的地 址对数据进行选择性输出,从而获得阶梯波; 4)将三角波输入到三极管的集电极,阶梯波作为基极电位 输入到三极管的基极作为扫描电压。通过示波器两通道 分别接集电极和射极,以X-Y模式显示晶体管的输入输 出特性曲线。 2.总体结构框图: 三.分块电路和总体电路设计: 1.方波电路: 1)原理:

北京邮电大学电路实验报告-(小彩灯)

北京邮电大学电路实验报告-(小彩灯)

电子电路综合实验报告课题名称:基于运算放大器的彩灯显示电路的设计与实现 姓名:班级:学号: 一、摘要: 运用运算放大器设计一个彩灯显示电路,通过迟滞电压比较器和反向积分器构成方波—三角波发生器,三角波送入比较器与一系列直流电平比较,比较器输出端会分别输出高电平和低电平,从而顺序点亮或熄灭接在比较器输出端的发光管。 关键字: 模拟电路,高低电平,运算放大器,振荡,比较 二、设计任务要求: 利用运算放大器LM324设计一个彩灯显示电路,让排成一排的5个红色发光二极管(R1~R5)重复地依次点亮再依次熄灭(全灭→R1→R1R2→R1R2R3→R1R2R3R4→R1R2R3R4R5→R1R2R3R4→R1R2R3→R1R2→R1→全灭),同时让排成一排的6个绿色发光二极管(G1~G6)单光

三角波振荡电路可以采用如图2-28所示电路,这是一种常见的由集成运算放大器构成的方波和三角波发生器电路,图2-28中运放A1接成迟滞电压比较器,A2接成反相输入式积分器,积分器的输入电压取自迟滞电压比较器的输出,迟滞电压比较器的输入信号来自积分器的输出。假设迟滞电压比较器输出U o1初始值为高电平,该高电平经过积分器在U o2端得到线性下降的输出信号,此线性下降的信号又反馈至迟滞电压比较器的输入端,当其下降至比较器的下门限电压U th-时,比较器的输出发生跳变,由高电平跳变为低电平,该低电平经过积分器在U o2端得到线性上升的输出信号,此线性上升的信号又反馈至迟

滞电压比较器的输入端,当其上升至比较器的上门限电压U th+时,比较器的输出发生跳变,由低电平跳变为高电平,此后,不断重复上述过程,从而在迟滞电压比较器的输出端U o1得到方波信号,在反向积分器的输出端U o2得到三角波信号。假设稳压管反向击穿时的稳定电压为U Z,正向导通电压为U D,由理论分析可知,该电路方波和三角波的输出幅度分别为: 式(5)中R P2为电位器R P动头2端对地电阻,R P1为电位器1端对地的电阻。 由上述各式可知,该电路输出方波的幅度由稳压管的稳压值和正向导通电压决定,三角波的输 出幅度决定于稳压管的稳压值和正向导通电压以及反馈比R1/R f,而振荡频率与稳压管的稳压值和正向导通电压无关,因此,通过调换具有不同稳压值和正向 导通电压的稳压管可以成比例地改变方波和三角波的幅度而不改变振荡频率。 电位器的滑动比R P2/R P1和积分器的积分时间常数R2C的改变只影响振荡频率而 不影响振荡幅度,而反馈比R1/R f的改变会使振荡频率和振荡幅度同时发生变化。因此,一般用改变积分时间常数的方法进行频段的转换,用调节电位器滑动头 的位置来进行频段内的频率调节。

北邮通信原理实验报告

北京邮电大学通信原理实验报告 学院:信息与通信工程学院班级: 姓名: 姓名:

实验一:双边带抑制载波调幅(DSB-SC AM ) 一、实验目的 1、了解DSB-SC AM 信号的产生以及相干解调的原理和实现方法。 2、了解DSB-SC AM 信号波形以及振幅频谱特点,并掌握其测量方法。 3、了解在发送DSB-SC AM 信号加导频分量的条件下,收端用锁相环提取载波的原理及其实现方法。 4、掌握锁相环的同步带和捕捉带的测量方法,掌握锁相环提取载波的调试方法。 二、实验原理 DSB 信号的时域表达式为 ()()cos DSB c s t m t t ω= 频域表达式为 1 ()[()()]2 DSB c c S M M ωωωωω=-++ 其波形和频谱如下图所示 DSB-SC AM 信号的产生及相干解调原理框图如下图所示

将均值为零的模拟基带信号m(t)与正弦载波c(t)相乘得到DSB—SC AM信号,其频谱不包含离散的载波分量。 DSB—SC AM信号的解调只能采用相干解调。为了能在接收端获取载波,一种方法是在发送端加导频,如上图所示。收端可用锁相环来提取导频信号作为恢复载波。此锁相环必须是窄带锁相,仅用来跟踪导频信号。 在锁相环锁定时,VCO输出信号sin2πf c t+φ与输入的导频信号cos2πf c t 的频率相同,但二者的相位差为φ+90°,其中很小。锁相环中乘法器的两个 输入信号分别为发来的信号s(t)(已调信号加导频)与锁相环中VCO的输出信号,二者相乘得到 A C m t cos2πf c t+A p cos2πf c t?sin2πf c t+φ =A c 2 m t sinφ+sin4πf c t+φ+ A p 2 sinφ+sin4πf c t+φ 在锁相环中的LPF带宽窄,能通过A p 2 sinφ分量,滤除m(t)的频率分量及四倍频载频分量,因为很小,所以约等于。LPF的输出以负反馈的方式控制VCO,使其保持在锁相状态。锁定后的VCO输出信号sin2πf c t+φ经90度移相后,以cos2πf c t+φ作为相干解调的恢复载波,它与输入的导频信号cos2πf c t 同频,几乎同相。 相干解调是将发来的信号s(t)与恢复载波相乘,再经过低通滤波后输出模拟基带信号 A C m t cos2πf c t+A p cos2πf c t?cos2πf c t+φ =A c 2 m t cosφ+cos4πf c t+φ+ A p 2 cosφ+cos4πf c t+φ 经过低通滤波可以滤除四倍载频分量,而A p 2 cosφ是直流分量,可以通过隔直

北邮-电子电路综合设计实验(函数信号发生器)报告

电子电路综合设计实验报告 实验1 函数信号发生器的设计与实现 姓名:------ 学号:---------- 班内序号:--

一. 实验名称: 函数信号发生器的设计与调试 二.实验摘要: 采用运放组成的积分电路产生方波-三角波,可得到比较理想的方波和三角波。根据所需振荡频率的高低和对方波前后沿陡度的要求以及对所需方波、三角波的幅度可以确定合适的运放以及稳压管的型号、所需电阻的大小和电容的值。三角波-正弦波的转换是利用差分放大器来完成的,选取合适的滑动变阻器来调节三角波的幅度以及电路的对称性。同时利用隔直电容、滤波电容来改善输出正弦波的波形。 关键词: 方波三角波正弦波频率可调 三、设计任务要求 1.基本要求: (1)输出频率能在1-10KHz范围内连续可调,无明显失真; (2)方波输出电压Uopp=12V,上升、下降沿小于10us,占空比可调范围30%-70%; (3)三角波Uopp=8V; (4)正弦波Uopp错误!未找到引用源。1V. (5)设计该电路的电源电路(不要求实际搭建) 2.提高要求: (1)正弦波、三角波和方波输出波形的峰峰值Uopp均可在1V-10V内连续可调。 (2)三种输出波形的输出端口的输出阻抗小于100Ω。 (3)三种波形从同一端口输出,并能够显示当前输出信号的种类、大小和频率 (4)用CPLD设计DDS信号源 (5)其他函数信号发生器的设计方案 四、设计思路以及总体结构框图 本课题中函数发生器结构组成如下所示:由比较器和积分器组成方波—三角波产生电

路,比较器输出的方波经积分器得到三角波,三角波到正弦波的变换电路主要由差分放大器来完成。差分放大器具有工作点稳定,输入阻抗高,抗干扰能力较强等优点。特别是作为直流放大器时,可以有效地抑制零点漂移,因此可将频率很低的三角波变换成正弦波。波形变换的原理是利用差分放大器传输特性曲线的非线性。 图4-1 函数信号发生器的总体框图 五.分块电路和总体电路的设计 (1)方波——三角波产生电路 图5-1 方波-三角波产生电路

北邮程序设计实验报告

程序设计实践 设 计 报 告 课题名称:邮件客户端学生姓名: 班级: 2 班内序号:16 学号: 2 日期:2014.6.4

1.课题概述 1.1课题目标和主要内容 本课题主要通过MFC的方式,利用SOCKET以及SMTP相关知识,来实现邮件(可携带附件)的定向发送,借此来复习和巩固C++编程的基本思想;学习SOCKET以及SMTP的相关知识,了解复杂网络应用程序的设计方法,并独立完成一个网络应用。 1.2系统的主要功能 1.邮件的发送(不携带附件) 2.邮件的发送(携带附件) 3.邮件接收 2. 系统设计 2.1 系统总体框架 程序的功能由MyEmailClientDlg.cpp,SMTP.cpp,MailMessage.cpp,Base64.cpp, MIMECode.cpp,MIMEContentAgent.cpp,MIMEMessage.cpp,AppOctetStream.cpp, MyEmailClient.cpp,StdAfx.cpp,TextPlain.cpp来实现。其中MIMECode.cpp, MIMEContentAgent.cpp,MIMEMessage.cpp, AppOctetStream.cpp, TextPlain.cpp来对MIME 协议进行封装,Base64.cpp来对Base64编码进行封装,SMTP.cpp是对SMTP协议进行封装,MailMessage.cpp是利用MIME协议对邮件内容的一个处理,最终通过MyEmailClientDlg.cpp 来实现邮件的发送的功能。 2.2 系统详细设计 [1] 模块划分图及描述 协议模块:包括网络应用程序中的各种协议,包括STMP协议,MIME协议等。 处理模块:主要实现对数据的进行编码以及解码。 实现模块:主要内容为邮件发送的具体步骤,相关按钮操作。 [2] 类关系图及描述 协议类:CSMTP, CTEXTPlai, CMIMECode,C MIMEContentAgent,C MIMEMessage, CAppOctetStream, CTextPlain.主要为协议中信息处理的中作用 编码类:Base64, MailMessage.主要为对邮件信息的处理

模拟CMOS集成电路设计课程设计实验报告(二级放大器的设计)

模拟CMOS集成电路设计课程设计报告 --------二级运算放大器的设计信息科学技术学院电子与科学技术系

一、概述: 运算放大器是一个能将两个输入电压之差放大并输出的集成电路。运算放大器是模拟电子技术中最常见的电路,在某种程度上,可以把它看成一个类似于BJT 或FET 的电子器件。它是许多模拟系统和混合信号系统中的重要组成部分。 它的主要参数包括:开环增益、单位增益带宽、相位阈度、输入阻抗、输入偏流、失调电压、漂移、噪声、输入共模与差模范围、输出驱动能力、建立时间与压摆率、CMRR、PSRR以及功耗等。 二、设计任务: 设计一个二级运算放大器,使其满足下列设计指标: 工艺Smic40nm 电源电压 1.1v 负载100fF电容 增益20dB 至少40dB 3dB带宽20MHz 输入小信号幅度5uV 共模电平自己选取 输出共模电平自己选取 电路结构两级放大器 相位裕度60~70度 功耗无要求 三、电路分析: 1.电路结构:

最基本的二级运算放大器如下图所示,主要包括四部分:第一级放大电路、第二级放大电路、偏置电路和相位补偿电路。 2.电路描述: 输入级放大电路由PM2、PM0、PM1和NM0、NM1组成。PM0和PM1构成差分输入对,使用差分对可以有效地抑制共模信号干扰;NM0和NM1构成电流镜作为有源负载;PM2作为恒流源为放大器第一级提供恒定的偏置电流。 第二级放大电路由NM2和PM3构成。NM2为共源放大器;

PM3为恒流源作负载。 相位补偿电路由电阻R0和电容C0构成,跨接在第二级输入输出之间,构成RC米勒补偿。 此外从电流电压转换角度来看,PM0和PM1为第一级差分跨导级,将差分输入电压转换为差分电流。NM0和NM1为第一级负载,将差模电流恢复为差模电压。NM2为第二级跨导级,将差分电压信号转换为电流,而PM3再次将电流信号转换成电压信号输出。 偏置电压由V0和V2给出。 3.静态特性 对第一级放大电路: 构成差分对的PM0和PM1完全对称,故有 G m1=g mp0=g mp1 (1) 第一级输出电阻 R out1=r op1||r on1 (2) 则第一级电压增益 A1=G m1Rout1=g mp0,1(r op1||r on1) (3) 对第二级放大电路: 电压增益 A2=G m2R out2= -g mn2(r on2||r op3) (4) 故总的直流开环电压增益 A0=A1A2= -g mp0,1g mn2(r op1||r on1)(r on2||r op3) (5)

相关主题
文本预览
相关文档 最新文档