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

北航ARM9嵌入式实验实验报告

北航ARM9嵌入式实验实验报告
北航ARM9嵌入式实验实验报告

实验一ARM基础知识和开发环境

一、实验目的

◆掌握ARM的串行口工作原理

◆学习编程实现ARM的UART通讯

◆掌握S3C2410寄存器配置方法

二、实验内容

◆熟悉打开已有工程的步骤,掌握仿真调试的方法。

◆建立一个新工程,熟练掌握编译器和链接器的设置方法。

◆从串口输入字符串,将0~9数字在超级终端上连续显示,“Enter”键

换行。

◆将第三步得到的字符转换成BCD码,限制在0~1023,用于控制直流

电机。

三、预备知识

◆了解EW ARM集成开发环境的基本功能

◆学习串口通讯的基本知识

◆熟悉S3C2410串口有关的寄存器

四、实验设备及工具

◆硬件:ARM嵌入式开发平台、PC机Pentium100以上、用于ARM920T

的JTAG仿真器、串口线。

◆软件:PC机操作系统WinXP、EWARM集成开发环境、仿真器驱动

程序、超级终端通讯程序。

五、实验原理及说明

1)异步串行通信

异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。数据的各不同位可以分时使用同一传输通道,因此串行I/O可以减少信号连线,最少用一对线即可进行。接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。

为了恢复发送的信息,双方必须协调工作。在微型计算机中大量使用异步串行I/O方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。

图1-1 串行通信字符格式

图1-1给出异步串行通信中一个字符的传送格式。开始前,线路处于空闲状态,送出连续“1”。传送开始时首先发一个“0”作为起始位(即双方同步信号),然后出现在通信线上的是字符的二进制编码数据。每个字符的数据位长可以约定为5位、6位、7位或8位,一般采用ASCII编码。后面是奇偶校验位,根据约定,用奇偶校验位将所传字符中为“1”的位数凑成奇数个或偶数个。也可以约定不要奇偶校验,这样就取消奇偶校验位。最后是表示停止位的“1”信号,这个停止位可以约定持续1位、1.5 位或2位的时间宽度。至此一个字符传送完毕,线路又进入空闲,持续为“1”。经过一段随机的时间后,下一个字符开始传送才又发出起始位。每一个数据位的宽度等于传送波特率的倒数。

2)串行接口的物理层标准

EIA RS-232C标准:美国电子工业协会推荐的一种标准(Electronic industries Association Recoil-mended Standard)。它在一种25针接插件(DB—25)上定义了串行通信的有关信号。这个标准后来被世界各国所接受并使用到计算机的I/O接口中。

在信号连线上大量采用9针接插件(DB—9)来担当此任,几个主要信号包括:TXD/RXD:是一对数据线,TXD称发送数据输出,RXD称接收数据输入。当两台微机以全双工方式直接通信(无MODEM方式)时,双方的这两根线应交叉联接(扭接)。

信号地:所有的信号都要通过信号地线构成耦合回路。

通信线有以上三条(TXD、RXD和信号地)就能工作了。其余信号主要用于双方设备通信过程中的联络(握手信号),而且有些信号仅用于和MODEM的联络。若采取微型机对微型机直接通信,且双方可直接对异步串行通信电路芯片编程,若设置成不要任何联络信号,则其它线都可不接。

信号电平规定为:双极性的信号逻辑电平(-3V到-25V之间的电平表示逻辑“1”。+3V到+25V 之间的电平表示逻辑“0”),是一套负逻辑定义。

RS-232C接口通信的两种基本连接方式如图1-2所示。

图1-2 RS-232C接口通信的两种基本连接方式

3)信号电平规定

(1)EIA电平:双极性信号逻辑电平, 它是一套负逻辑定义

-3V到-25V之间的电平表示逻辑“1”,+3V到+25V之间的电平表示逻辑“0”

(2)TTL电平:计算机内部(S3C2410)使用LVTTL电平

(3)电平转换电路:常用专门的RS-232接口芯片,如SP3232、SP3220等,在LVTTL电平和EIA电平之间实现相互转换。

4)相关寄存器

(1)线路控制寄存器ULCONn

(2)控制寄存器UCONn

(3)状态寄存器UTRSTAT

(4)发送寄存器UTXH和接收寄存器URXH

六、设计方法及实验步骤

1)以实验一为模板,完成实验的1和2

2)将接收串口数据的数组cl[1]改为cl[256],用cl[i]==0x0d 回车字符作为一

帧结束的条件

3)将“Exp4 电机转动控制实验”inc目录下的MotorCtrl.H 和src目录下的

MotorCtrl.C拷到该工程相应目录,将MotorCtrl.C 添加到工程中

4)在main函数里包含以下头文件以及宏定义

#include “../inc/MotorCtrl.h”

#include “inc/macro.h“

#define MOTOR_COUNT 12657

5)在Main函数里执行init_MotorPort();

6)直流电机调试的函数是

SetPWM((setspeed -512)*MOTOR_COUNT/1024)

setspeed是速度指令,取值范围0~1023.

7)程序设计:

编写串口驱动函数,流程见图2:

图2 发送及接收子程序流程(左为发送、右为接收)在主函数中实现将从串口0接收到的数据发送到串口0(Main.c),流程见图3:

图3主程序流程图

8)相关函数:

初始化:s3c2410_cpu_init();//CPU时钟设置

发送数据:void Uart_SendByten(int Uartnum, U8 data) //往串口发送数据

WrUTXH0(data); //往串口数据寄存器写数据

接收数据:char Uart_Getchn(char* Revdata, int Uartnum, int timeout)

//接收数据

RdURXH0(); //读取串口数据寄存器数据

七、思考题

1)232串行通讯的数据格式是什么?

RS-232属于“异步传输”,在传送数据时,并不需要另外使用一条传输线来传送同步信号,不过必须在每一组数据的前后都加上同步信号,把同步信号与数据混和之后,使用同一条传输线来传输。从低位到高位的一帧数据格式为:

起始位(Start)+数据位(Data)+奇偶校验位(Parity)+停止位(Stop)

其中起始位固定为一个比特,停止位则可以是1、1.5或者是2比特(传送与接受一致),数据位可以设置为7、8或者9,奇偶校验位可以设置为无(N)、奇(O)或者偶(E),奇偶校验位可以使用数据中的比特。

2)串行通讯最少需要几根线,分别如何连接?

最少需要3根线,分别为RXD、TXD、信号地。两计算机通信的时候A 的RXD接B的TXD,B的RXD接到A的TXD上,两者信号地相连。

3)ARM的串行口有几个,相应的寄存器是什么?

ARM自带三个UART端口,每个UART通道都有16字节的FIFO(先入先出寄存器)用于接受和发送。用系统时钟最大波特率可达230.4K,如果用外部时钟(UCLK)UART 可以以更高的波特率运行。

UART线控制寄存器包括ULCON0,ULCON1和ULCON2,主要用来选择每帧数据位数、停止位数,奇偶校验模式及是否使用红外模式。

UART控制寄存器包括UCON0, UCON1 and UCON2,主要用来选择时钟,接收和发送中断类型(即电平还是脉冲触发类型),接收超时使能,接收错误状态中断使能,回环模式,发送接收模式等。

UART错误状态寄存器包括UERSTAT0, UERSTAT1 and UERSTAT2,此状态寄存器的相关位表明是否有帧错误或溢出错误发生。

UART 模块中有三个接收/发送状态寄存器,包括UTRSTAT0,UTRSTAT1 和UTRSTAT2。在UART模块中有3个UART发送缓冲寄存器,包括UTXH0,UTXH1和UTXH2,UTXHn有8位发送数据。

UART包括三个波特率因子寄存器UBRDIV0, UBRDIV1 and UBRDIV2,存储在波特率因子寄存器(UBRDIVn)中的值决定串口发送和接收的时钟数率(波特率)。

4)用中断方式实现串口驱动。

UART控制寄存器UCONx第8、9位来使能发送和接收中断。然后编写中断子函数,来完成程序中读取A/D转换器的功能,子函数主要包括:中断标志位清零、读取A/D转换器、重新使能中断。

八、程序

#include "../inc/drivers.h"

#include "../inc/lib.h"

#include

#include

#include

#include "../inc/macro.h"

#include "../uhal/isr.h"

#define TRUE 1

#define FALSE 0

#define MOTOR_COUNT 12657

#define rUTRSTA T0 (*(volatile unsigned *)0x50000010)

#define rUTRSTA T1 (*(volatile unsigned *)0x50004010)

#define WrUTXH0(ch) (*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)

#define WrUTXH1(ch) (*(volatile unsigned char *)0x50004020)=(unsigned char)(ch)

#define RdURXH0() (*(volatile unsigned char *)0x50000024)

#define RdURXH1() (*(volatile unsigned char *)0x50004024)

void Uart_SendByten(int,U8);

char Uart_Getchn(char* Revdata, int Uartnum, int timeout);

void ARMTargetInit(void);

void hudelay(int time);

int main(void)

{ char c1[256];

char err;

char al[1];

int i,j;

int setspeed=0;

ARMTargetInit(); // do target (uHAL based ARM system) initialisation //

init_MotorPort();

while(1)

{

Uart_SendByten(0,0xa);//换行

Uart_SendByten(0,0xd);//回车

for(i=0;i<=255;)

{

err=Uart_Getchn(al,0,0); //从串口采集数据

if (err==TRUE)

{

Uart_SendByten(0,al[0]); //显示采集的数据

c1[i]=al[0]-0x30;}

if(0xd==al[0])

{

al[0]=0;

if(i<4)

{

setspeed=0;

for(j=0;j

{

setspeed=setspeed*10+c1[j];

}

}

else

{

setspeed=0;

for(j=i-3;j

setspeed=setspeed*10+c1[j];

}

i=256;

if(setspeed>1023)

setspeed=1023;

}

i++;

}

SetPWM((setspeed -512)*MOTOR_COUNT/1024);

}

}

void Uart_SendByten(int Uartnum, U8 data)//ok eric rong

{ //int i;

if(Uartnum==0)

{

while(!(rUTRSTAT0 & 0x4)); //Wait until THR is empty.

hudelay(10);

WrUTXH0(data);

}

else

{

while(!(rUTRSTAT1 & 0x4)); //Wait until THR is empty.

hudelay(10);

WrUTXH1(data);

}

}

char Uart_Getchn(char* Revdata, int Uartnum, int timeout)

{

if(Uartnum==0){

while(!(rUTRSTAT0 & 0x1)); //Receive data read

*Revdata=RdURXH0();

return TRUE;

}

else{

while(!(rUTRSTAT1 & 0x1));//Receive data read

*Revdata=RdURXH1();

return TRUE;

}

}

实验二LCD和电机综合实验

一、实验目的

◆通过电位器控制直流电机转动

◆根据电位器值的不同使屏幕显示不同颜色

二、实验内容

◆通过一个电位器控制直流电机转动速度,并且用该电位器值使屏幕显

示不同颜色

◆用三个电位器分别控制R、G、B,观察屏幕的变化

◆使用函数Uart_Printf(),将RGB的值打印到串口输出

三、预备知识

◆用EW ARM集成开发环境,编写和调试程序的基本过程

◆ARM应用程序的框架结构

◆会使用Source Insight 3编辑C语言源程序

◆掌握通过ARM自带的A/D转换器的使用

◆了解LCD的基本原理

◆了解直流电机的基本原理

四、实验设备及工具

◆硬件:ARM嵌入式开发平台、PC机Pentium100以上、用于ARM920T

的JTAG仿真器、串口线。

◆软件:PC机操作系统WinXP、EWARM集成开发环境、仿真器驱动

程序、超级终端通讯程序。

五、实验原理及说明

1)LCD的驱动控制

市面上出售的LCD 有两种类型:

一种是带有驱动电路的LCD显示模块,这种LCD可以方便地与各种低档单片机进行接口,如8051 系列单片机,但是由于硬件驱动电路的存在,体积比较大。这种模式常常使用总线方式来驱动。

另一种是LCD 显示屏,没有驱动电路,需要与驱动电路配合使用。特点是体积小,但却需要另外的驱动芯片。也可以使用带有LCD 驱动能力的高档MCU 驱动,如ARM 系列的S3C2410X。

2)直流电动机的PWM电路原理

晶体管的导通时间也被称为导通角а,若改变调制晶体管的开与关的时间,也就是说通过改变导通角а的大小,来改变加在负载上的平均电压的大小,以实现对电动机的变速控制,称为脉宽调制(PWM)变速控制。在PWM 变速控制中,系统采用直流电源,放大器的频率是固定,变速控制通过调节脉宽来实现。

构成PWM 的功率转换电路或者采用"H"桥式驱动,或者采用"T"式驱动。由于"T"式电路要求双电源供电,而且功率晶体管承受的反向电压为电源电压的两倍。因此只适用于小功率低电压的电动机系统。而"H"桥式驱动电路只需一个电源,功率晶体管的耐压相对要求也低些,所以应用得较广泛,尤其用在耐高压的电动机系统中。

脉宽调制(PWM)变速原理

3)直流电动机的PWM等效电路

如图下图a 所示:是一个直流电动机的PWM 控制电路的等效电路。在这个等效电路中,传送到负载(电动机)上的功率值决定于开关频率、导通角度及负载电感的大小。

开关频率的大小主要和所用功率器件的种类有关,对于双极结型晶体管(GTR),一般为lkHz至5kHz,小功率时(100W,5A以下)可以取高些,这决定于晶体管的特性。对于绝缘栅双极晶体管(IGBT),一般为5kHz至l2kHz;对于场效应晶体管(MOSFET),频率可高达2OkHz。另外,开关频率还和电动机电感有关,电感小的应该取得高些。

a) 等效电路b) PWM 电路中电流和电压波讨论

当接通电源时,电动机两端加上电压UP,电动机储能,电流增加,当电源中断时,电枢电感所储的能量通过续流二极管VD继续流动,而储藏的能量呈下降的趋势。

除功率值以外,电枢电流的脉动量也与电动机的转速无关,仅与开关周期、正向导通时间及电机的电磁时间常数有关。

六、设计方法及实验步骤

1)以实验四模板,将实验六inc目录下的LCD320.H 和src目录下的

LCD640.C到模板下的相应目录,将LCD640.C 添加到工程中。

2)在main函数里包含以下头文件#include "inc/lcd320.h“

3)在main函数里包含以下头文件#include "inc/macro.h“

4)声明引用的变量extern U32 LCDBufferII2[480][640];

5)删除模板内Main函数中和步进电机相关的内容,简化Main函数

6)在Main函数里执行LCD_Init();

7)将AD采样的结果在驱动电机的同时,和jcolor建立起联系。

8)显示缓冲区填充LCDBufferII2[k][j]=jcolor;

9)调用LCDFresh()函数

七、实验思考题

1)液晶显示的基本原理是什么?

LCD显示器是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。因此,LCD的驱动控制归于对每个液晶单元通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使用光线通过。光源的提供方式有两种:透射式和反射式。笔记本电脑的LCD显示屏即为透射

式,屏后面有一个光源,因此外界环境可以不需要光源。而一般微控制器上使用的LCD为反射式,需要外界提供光源,靠反射光来工作。

2)总线方式驱动液晶模块和使用控制器进行驱动控制有什么异同?

一般带有驱动模块的LCD显示屏使用总线驱动方式,由于这种LCD显示屏已经带有驱动硬件电路,因此模块给出的是总线接口,便于与单片机的总线进行接口。驱动模块具有八位数据总线,外加一些电源接口和控制信号。

而且自带显示缓存,只需要将要显示的内容送到显示缓存中就可以实现内容的显示。由于只有八条数据线,因此常常通过引脚信号来实现地址与数据线复用,以达到把相应数据送到相应显示缓存的目的。因此在总线方式驱动液晶模块中由于液晶模块以自带驱动器进行控制,所以模块只需提供总线接口,单片机只需通过总线向液晶模块发送数据,控制其显示。

而使用控制器进行驱动控制,对于某些控制其(单片机)其具有内置的LCD控制器,有将内部显示缓存中的LCD图象数据传输到外部LCD驱动电路的逻辑功能,所以这样就无需使用液晶模块自带的驱动器,可以由直接有控制器控制了。

3)LCD显示图形的基本思想是什么?

LCD 的发光原理是通过控制加电与否来使光线通过或挡住,从而控制各个液晶点。从而通过对各个液晶点的颜色控制,即扫点实现图形的效果。

对于uCOS系统,绘图必须通过使用绘图设备上下文(DC)来实现,其包括了绘图相关的信息,比如:画笔的宽度、绘图的原点等等。这样,在多任务系统中,不同的任务通过不同的绘图设备上下文(DC)绘图才不会互相影响。之后通过调用API函数(包括画点、画线等功能)来完成图形显示。

八、程序

#include "../inc/drivers.h"

#include "../inc/lib.h"

#include

#include

#include

#include "../inc/max504.h"

#include "../inc/MotorCtrl.h"

#include "../inc/EXIO.h"

#include "../inc/lcd320.h"

#include "../inc/macro.h"

#include "../uhal/isr.h"

#define MCLK (50700000)

#define MOTOR_SEVER_FRE 1000 //20kHz

#define MOTOR_CONT (MCLK/2/2/MOTOR_SEVER_FRE)

#define MOTOR_MID (MOTOR_CONT/2)

#define ADCCON_FLAG (0x1<<15)

#define ADCCON_ENABLE_START_BYREAD (0x0<<1)

#define rADCCON (*(volatile unsigned *)0x58000000)

#define rADCDA T0 (*(volatile unsigned *)0x5800000C)

#define PRSCVL (49<<6)

#define ADCCON_ENABLE_START (0x1)

#define STDBM (0x0<<2)

#define PRSCEN (0x1<<14)

#define rADCCON (*(volatile unsigned *)0x58000000)

#define rADCDA T0 (*(volatile unsigned *)0x5800000C)

#define rUTRSTA T0 (*(volatile unsigned *)0x50000010)

//#define rUTRSTA T0 (*(volatile unsigned *)0x50000024)

#define RdURXH0() (*(volatile unsigned char *)0x50000024)

extern U32 LCDBufferII2[480][640];

void ARMTargetInit(void);

void init_ADdevice()

{

rADCCON=(PRSCVL|ADCCON_ENABLE_START|STDBM|PRSCEN);

}

int GetADresult(int channel)

{

rADCCON=ADCCON_ENABLE_START_BYREAD|(channel<<3)|PRSCEN|P RSCVL;

rADCCON|=0x01; //启动AD转换器

hudelay(10);

while(!(rADCCON&ADCCON_FLAG));//转换结束

return (0x3ff&rADCDAT0);//返回采样值

}

main(void)

{

U32 jcolor;

int z,m,n;

int ADData[3]={0,0,0};

ARMTargetInit(); //开发版初始化

init_MotorPort();

init_ADdevice();

LCD_Init();

while(1)

{

ADData[0]=GetADresult(0);

ADData[1]=GetADresult(1);

ADData[2]=GetADresult(2);

hudelay(10);

//SetPWM((ADData[2]-512)*MOTOR_CONT/1024);

jcolor =

((ADData[0]>>2)<<16)+((ADData[1]>>2)<<8)+(ADData[2]>>2);

for(m=0;m<480;m++)

{

for(n=0;n<640;n++)

LCDBufferII2[m][n]=jcolor;

}

LCD_Refresh();

Uart_Printf(0,"%d ",ADData[0]);

Uart_Printf(0,"%d ",ADData[1]);

Uart_Printf(0,"%d",ADData[2]);

Uart_Printf(0,"%s","\n");

}

}

实验三uCOS-II实验

一、实验目的

◆在内核移植了uCOS-II 的处理器上创建任务

二、实验内容

◆运行实验十,在超级终端上观察四个任务的切换

◆任务1~3,每个控制“红”、“绿”、“蓝”一种颜色的显示,适当增加

OSTimeDly()的时间,且优先级高的任务延时时间加长,以便看清三

种颜色

◆引入一个全局变量BOOLEAN ac_key,解决完整刷屏问题

◆任务4管理键盘和超级终端,当键盘有输入时在超级终端上显示相应

的字符

三、预备知识

◆掌握在EW ARM 集成开发环境中编写和调试程序的基本过程

◆了解ARM920T 处理器的结构

◆了解uCOS-II 系统结构

四、实验设备及工具

◆硬件:ARM嵌入式开发平台、PC机Pentium100以上、用于ARM920T

的JTAG仿真器、串口线。

◆软件:PC机操作系统WinXP、EWARM集成开发环境、仿真器驱动

程序、超级终端通讯程序。

五、实验原理及说明

所谓移植,指的是一个操作系统可以在某个微处理器或者微控制器上运行。虽然uCOS-II的大部分源代码是用C语言写成的,仍需要用C语言和汇编语言完成一些与处理器相关的代码。比如:uCOS-II在读写处理器、寄存器时只能通过汇编语言来实现。因为uCOS-II 在设计的时候就已经充分考虑了可移植性,所以,uCOS-II的移植还是比较容易的。

1)要使uCOS-II可以正常工作,处理器必须满足以下要求:

(1)处理器的C编译器能产生可重入代码

可重入的代码指的是一段代码(如一个函数)可以被多个任务同时调用,而不必担心会破坏数据。也就是说,可重入型函数在任何时候都可以被中断执行,过一段时间以后又可以继续运行,而不会因为在函数中断的时候被其他的任务重新调用,影响函数中的数据。

(2)在程序中可以打开或者关闭中断

在uCOS-II中,可以通过OS_ENTER_CRITICAL()或者OS_EXIT_CRITICAL()宏来控制系统关闭或者打开中断。这需要处理器的支持,在ARM920T的处理器上,可以设置相应的寄存器来关闭或者打开系统的所有中断。

(3)处理器支持中断,并且能产生定时中断(通常在10Hz~1000Hz之间)uCOS-II是通过处理器产生的定时器的中断来实现多任务之间的调度的。在ARM920T的处理器上可以产生定时器中断。

(4)处理器支持能够容纳一定量数据的硬件堆栈。

(5)处理器有将堆栈指针和其它CPU寄存器存储和读出到堆栈(或者内存)的指令。

uCOS-II进行任务调度的时候,会把当前任务的CPU寄存器存放到此任务的堆栈中,然后,再从另一个任务的堆栈中恢复原来的工作寄存器,继续运行另一个任务。所以,寄存器的入栈和出栈是uCOS-II多任务调度的基础。

下图说明了uCOS 的结构以及它与硬件的关系

uCOS-II硬件和软件体系结构

2)uCOS-II在S3C2410X上的移植

(1)设置os_cpu.h中与处理器和编译器相关的代码

包括与编译相关的数据类型,用于实现开关中断的OS_ENTER_CRITICAL 和OS_EXIT_CRITICAL两个函数,制定堆栈生长方式的

OS_STX_GROWTH.

(2)用C语言编写6个操作系统相关的函数(OS_CPU_C.C)

OSTaskSTKInit堆栈结构初始化函数、OSTaskCreateHook该函数允许用户或使用移植实例的用户扩展uCOS-II功能、OSTaskDelHook任务删除时调用、OSTaskSWHook任务切换时调用、OSTaskStatHook统计功能扩展,

OSTimeTickHook时钟节拍时会被调用。

(3)用汇编语言编写4个与处理器相关的函数(OS_CPU.ASM)

OSStartHighRdy运行优先级最高的就绪任务、OS_TASK_SW任务级的任务切换函数、OSIntCtxSw中断级的任务切换函数、OSTickISR时钟节拍中断。

(4)时钟节拍中断功能实现

多任务操作系统的任务调度是基于时钟节拍中断的,uCOS-II也需要处理器

提供一个定时器中断来产生节拍,借以实现时间的延时和期满功能。但在本系统移植uCOS-II时,时钟节拍中断的服务函数并非uCOS-II文献中提到的OSTickISR(),而直接是C 语言编写的OSTimeTick()。本系统uCOS-II 移植时占用的时钟资源是TIMER1。

在平台初始化函数ARMTargetInit()中,调用uHALr_InitTimers()函数初始化TIMER4相关寄存器;调用uHALr_InstallSystemTimer(void)开始系统时钟,其中通过语句SetISR_Interrupt(IRQ_TIMER4, TimerTickHandle, NULL)将TimerTickHandle函数设置为TIMER4 的中断服务函数。这些函数在文件UHAL.C 以及ISR.C中。

程序中必须在开始多任务调度之后再允许时钟节拍中断,即在OSStart()调用过后,uCOS-II运行的第一个任务中启动节拍中断。如果在调用OSStart()启动多任务调度之前就启动时钟节拍中断,uCOS-II运行状态可能不确定而导致崩溃。

本系统是在系统任务SYS_Task中调用uHALr_InstallSystemTimer()函数

设置TIMER4的IRQ中断的,从而启动时钟节拍。SYS_Task()在文件OSAddTask.C中定义,用户不必创建。

(5)硬件初始化和配置文件

STARTUP目录下的文件还包括中断处理,时钟,串口通信等基本功能函数。在文件main.c 中给出了应用程序的基本框架,包括初始化和多任务的创建,启动等。

任务创建方法如下:

A、在程序开头定义任务堆栈,任务函数声明和任务优先级:

OS_STK TaskName_Stack[STACKSIZE]={0, }; //任务堆栈

void TaskName(void *Id); //任务函数

#define TaskName_Prio N //任务优先级

B、在main()函数中调用OSStart()函数之前用下列语句创建任务:

OSTaskCreate(TaskName,(void*)0,(OS_STK*)&TaskName_Stack[STA

CKSIZE-1],TaskName_Prio);

OSTaskCreate()函数的原型是:INT8U OSTaskCreate (void (*task)(void

*pd), void *p_arg, OS_STK *ptos, INT8U prio);

自动控制原理实验报告

第一章Matlab 基本运算 [范例1-2] 建立矩阵A={7 8 9},B={7 8 9} >> A=[7,8,9] A = 7 8 9 >> B=A' B = 7 8 9 (2) >> B=[1 1 2 ; 3 5 8 ; 10 12 15] B= 1 1 2 3 5 8 10 12 15 (3) >> a=1:1:10 a = 1 2 3 4 5 6 7 8 9 10 >> t=10:-1:1

t = 10 9 8 7 6 5 4 3 2 1 [范例1-3]求多项式D(S)=(5S^2+3)(S+1)(S-1)的展开式 >> D=conv([5 0 3],conv([1 1],[1 -2])) D = 5 -5 -7 -3 -6 [范例1-4]求多项式P(X)=2X^4-5X^3-X+9 (1) >> P=[2 -5 6 -1 9] P = 2 -5 6 -1 9 >> x=roots(P) x = 1.6024 + 1.2709i 1.6024 - 1.2709i -0.3524 + 0.9755i -0.3524 - 0.9755i 第二章控制系统的数学模型 [范例2-1]已知系统传递函数G(S)= s + 3/ s^3 + 2 s^2 + 2 s + 1 >> num=[0 1 3]; >> den=[1 2 2 1]; >> printsys(num,den) num/den = s + 3 --------------------- s^3 + 2 s^2 + 2 s + 1 [范例2-2]已知系统传递函数G(S)=【5*(S+2)^2(S^2+6S+7)】/S(S+1)^3(S^3+2S+1)],试

北航电子电路设计数字部分实验报告

电子电路设计数字部分实验报告 学院: 姓名:

实验一简单组合逻辑设计 实验内容 描述一个可综合的数据比较器,比较数据a 、b的大小,若相同,则给出结果1,否则给出结果0。 实验仿真结果 实验代码 主程序 module compare(equal,a,b); input[7:0] a,b; output equal; assign equal=(a>b)1:0; endmodule 测试程序

module t; reg[7:0] a,b; reg clock,k; wire equal; initial begin a=0; b=0; clock=0; k=0; end always #50 clock = ~clock; always @ (posedge clock) begin a[0]={$random}%2; a[1]={$random}%2; a[2]={$random}%2; a[3]={$random}%2; a[4]={$random}%2; a[5]={$random}%2; a[6]={$random}%2; a[7]={$random}%2; b[0]={$random}%2; b[1]={$random}%2; b[2]={$random}%2; b[3]={$random}%2; b[4]={$random}%2;

b[5]={$random}%2; b[6]={$random}%2; b[7]={$random}%2; end initial begin #100000 $stop;end compare m(.equal(equal),.a(a),.b(b)); endmodule 实验二简单分频时序逻辑电路的设计 实验内容 用always块和@(posedge clk)或@(negedge clk)的结构表述一个1/2分频器的可综合模型,观察时序仿真结果。 实验仿真结果

北航实验报告实验实验

实验三UC-OS移植实验 一、实验目的 在内核移植了uCOS-II 的处理器上创建任务。 二、实验内容 1.运行实验十,在超级终端上观察四个任务的切换。 2. 任务1~3,每个控制“红”、“绿”、“蓝”一种颜色的显示,适当增加OSTimeDly()的时间,且优先级高的任务延时时间加长,以便看清三种颜色。 3.引入一个全局变量BOOLEAN ac_key,解决完整刷屏问题。 4. #define rUTRSTAT0 (*(volatile unsigned *)0x50000010) #define RdURXH0()(*(volatile unsigned char *)0x50000024) 当键盘有输入时在超级终端上显示相应的字符。 三、实验设备 硬件:ARM嵌入式开发平台、用于ARM920T的JTAG仿真器、PC机Pentium100以上。 软件:PC机操作系统Win2000或WinXP、ARM ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。 四、实验原理 所谓移植,指的是一个操作系统可以在某个微处理器或者微控制器上运行。虽然uCOS-II的大部分源代码是用C语言写成的,仍需要用C语言和汇编语言完成一些与处理器相关的代码。比如:uCOS-II在读写处理器、寄存器时只能通过汇编语言来实现。因为uCOS-II在设计的时候就己经充分考虑了可移植性,所以,uCOS-II的移植还是比较容易的。 要使uCOS一工工可以正常工作,处理器必须满足以下要求: 1)处理器的C编译器能产生可重入代码。 2)在程序中可以打开或者关闭中断。 3)处理器支持中断,并A能产生定时中断(通常在10Hz}1000Hz之间)。 4)处理器支持能够容纳一定量数据的硬件堆栈。 5)处理器有将堆栈指针和其它CPU寄存器存储和读出到堆栈(或者内存)的指

北航自动控制元件复习提纲

自控元件复习提纲 一、关于考试(从学长处获得信息,仅供大家参考): 1、简答:eg:1)、为什么空载实验可以测r m ,x m? 2)、变压器中是否必须有无功功率? 2、论述:eg:1)、变压器工作原理。 2)、电机基本特点。 论述时必要时要作图说明。如要论述两相伺服电机为何有无自转特性时应该作出单相工作时两相伺服电机的机械特性曲线来说明。 3、计算:两个计算,一个直流,一个交流。 二、各章重点内容概述(参考往届笔记): 第1章直流磁路及其计算 重点章节:1-1,1-2,1-3 磁路总是闭合的;磁路计算的正反两类任务;等效磁路的画法第2章直流电磁铁及其典型应用 重点章节:2-1,2-2,另外第三节中的继电器的主要技术指标大家也要注意第3章直流电机的一般问题 重点章节:3-1,3-2,3-4,3-5,3-6 发电机、电动机的识别,电角的概念,电枢反应的概念,直流电机的电枢电动 势和电磁转矩的计算方法,直流电机的电势平衡关系、转矩平衡关系、功率平 衡关系,电枢绕组的具体原理如果不明白大家不必深究,只要知道概念就可以, 这里不是重点。 PS:本章是比较重要的一章,计算题可能出在这一章。 第4章直流测速发电机和直流伺服电动机 重点章节:4-1,4-2 第三节要掌握直流力矩电动机的特点,知道其应用场合以 及为什么要用在这些场合。 准确理解直流伺服电动机的工作原理、四种工作状态,准确掌握直流测速发电 机和直流伺服电动机的工作原理及特性(输入、输出等) 第5章变压器 重点章节:5-2,5-3,5-4,5-5,5-6 空载电压平衡式和等效电路及相量图,负载运行的电压平衡式和磁动势平衡式 及相量图和等效电路P101的图5-12大家仔细看。参数、额定数据和特性。磁 场问题转化到电路问题。 第6章异步电动机 重点章节:6-1,6-3,6-4,6-5 转差率S,功率传递,相电动势,第三节可能考计算,注意一下习题中的最后 两道计算题6.12,6.15 另外,第六章和第五章联系很紧密,大家可以结合起来复习效果更好。 第7章两相电机 重点章节:7-1,7-2 分解磁场,无自转的分析,稳定运行范围大,第一节的第(四)部分其它大家 可以不用管。异步测速发电机的输出电压的特点,原理,频率与转速无关,只 与电源有关。 第8章同步电动机

北航电子电路设计训练模拟分实验报告

北航电子电路设计训练模拟部分实验报告

————————————————————————————————作者:————————————————————————————————日期:

电子电路设计训练模拟部分实验 实验报告

实验一:共射放大器分析与设计 1.目的: (1)进一步了解Multisim的各项功能,熟练掌握其使用方法,为后续课程打好基础。 (2)通过使用Multisim来仿真电路,测试如图1所示的单管共射放大电路的静态工作点、电压放大倍数、输入电阻和输出电阻,并观察 静态工作点的变化对输出波形的影响。 (3)加深对放大电路工作原理的理解和参数变化对输出波形的影响。 (4)观察失真现象,了解其产生的原因。 图 1 实验一电路图 2.步骤: (1)请对该电路进行直流工作点分析,进而判断管子的工作状态。 (2)请利用软件提供的各种测量仪表测出该电路的输入电阻。 (3)请利用软件提供的各种测量仪表测出该电路的输出电阻。 (4)请利用软件提供的各种测量仪表测出该电路的幅频、相频特性曲线。 (5)请利用交流分析功能给出该电路的幅频、相频特性曲线。 (6)请分别在30Hz、1KHz、100KHz、4MHz和100MHz这5个频点利用示波器测出输入和输出的关系,并仔细观察放大倍数和相位差。 (提示:在上述实验步骤中,建议使用普通的2N2222A三极管,并请注 意信号源幅度和频率的选取,否则将得不到正确的结果。) 3.实验结果及分析: (1)根据直流工作点分析的结果,说明该电路的工作状态。 由simulate->analyses->DC operating point,可测得该电路的静态工作点为:

北航计软实验报告一

北航计软实验报告一

————————————————————————————————作者: ————————————————————————————————日期:

计算机软件基础上机实验报告(一) XXXXXX班XXX 1.实验目的 掌握线性表在顺序分配下的插入与删除运算;掌握线性表的链式存储结构;掌握插入排序的方法;并掌握一种产生随机数的方法。 2.实验内容 1.产生1000个0至999间的随机整数,并以产生的次序存入一个数据文件中。 2.编制一个程序,依次实现以下功能: (1)?定义一个有序(非递减)线性表,其最大容量为1000,初始时为空。 (2)?从由1产生的数据文件中依次取前N个随机整数,陆续插入到此线性表中,并要求在每次插入后保持线性表的有序性。最后将此有序线性表打印输出。 (3)?在由(2)产生的线性表中,依在1中产生的次序逐个将元素删除,直至表空为止。 3. 以N=100及N=400分别运行2的程序,并比较它们的运行时间。 4. 编写一个程序,用插入排序依次将1中产生的1000个随机整数链接成有序链表(不改变原随机数在存储空间中的顺序)。 3.源代码与运行结果 #include<stdio.h> #include<stdlib.h> #include /** 1_1 产生1000个0至999间的随机整数,并以产生的次序存入一个数据文件(1_1.txt)中。 **/ main() { FILE *fo=fopen("1_1.txt","w"); int i,j; srand((unsigned)time(0)); for(i=0;i<=999;i++)fprintf(fo,"%d\n",rand()%1000); fclose(fo); printf("1000个随机数已输出至目录下1_1.txt文件\n");

电气工程专业考研专业课初试科目及复试内容汇总

《电气工程专业考研专业课初试科目及复试内容汇总》 自动化专业的考研方向 自动化专业方向很广,考的时候还分双控,模式,电力电机等等方面,你可以参看学校是否在这个方面有无国家重点实验室,是不是国家重点学科来比较。 1. 清华, 2.中科院, 3.上海交大, 4.浙大,5华工,北航,东南,东北大学,西安交大,哈 尔滨工业大学,中国科技大学,华北电力,天津大学,东南大学,华中科技,武汉大学天津大学自动化 一般说来,初试的分数是最重要的,特别是考外校。当然,你的动手能力也是很重要的,还有你的英语口语,考研复试都是要考虑的。例如上海交大的复试,双控353的复试线,有380的被刷下来,就是英语口语已经专业课不是很扎实的。考外校的话依据学校而定是否要找导师 动手能力强,参加电子设计大赛都是作为你考研复试的参考,还是好好的准备初试的考试吧,毕竟它是个门槛。 【电气工程及其自动化】 北京工业大学 421自动控制原理 复试:1、电子技术2、计算机原理 北京航空航天大学 [双控] 432控制理论综合或433控制工程综合 [检测] 433控制工程综合或436检测技术综合 [系统] 431自动控制原理或451材料力学或841概率与数理统计 [模式] (自动化学院)433控制工程综合或436检测技术综合、(宇航学院)423信息类专业综合或431自动控制原理或461计算机专业综合 [导航] (自动化学院)432控制理论综合或433控制工程综合、(宇航学院)431自动控制原理 复试:无笔试。1) 外语口语与听力考核;2) 专业基础理论与知识考核;3) 大学阶段学习成绩、科研活动以及工作业绩考核;4) 综合素质与能力考核 北京化工大学 440电路原理 复试:综合1(含自动控制原理和过程控制系统及工程)、综合2(含自动检测技术装置和传感器原理及应用)、综合3(含信号与系统和数字信号处理) 注:数学可选择301数学一或666数学(单) 北京交通大学 [双控/检测]404控制理论 [模式]405通信系统原理或409数字信号处理 复试: [电子信息工程学院双控]常微分方程 [机械与电子控制工程学院检测]综合复试(单片机、自动控制原理) [计算机与信息技术学院模式] 信号与系统或操作系统

北航自动控制原理实验报告(完整版)

自动控制原理实验报告 一、实验名称:一、二阶系统的电子模拟及时域响应的动态测试 二、实验目的 1、了解一、二阶系统阶跃响应及其性能指标与系统参数之间的关系 2、学习在电子模拟机上建立典型环节系统模型的方法 3、学习阶跃响应的测试方法 三、实验内容 1、建立一阶系统的电子模型,观测并记录在不同时间常数T时的响应曲线,测定过渡过程时间T s 2、建立二阶系统电子模型,观测并记录不同阻尼比的响应曲线,并测定超调量及过渡过程时间T s 四、实验原理及实验数据 一阶系统 系统传递函数: 由电路图可得,取则K=1,T分别取:0.25, 0.5, 1 T 0.25 0.50 1.00 R2 0.25MΩ0.5M Ω1MΩ C 1μ1μ1μ T S 实测0.7930 1.5160 3.1050 T S 理论0.7473 1.4962 2.9927 阶跃响应曲线图1.1 图1.2 图1.3 误差计算与分析 (1)当T=0.25时,误差==6.12%; (2)当T=0.5时,误差==1.32%; (3)当T=1时,误差==3.58% 误差分析:由于T决定响应参数,而,在实验中R、C的取值上可能存在一定误差,另外,导线的连接上也存在一些误差以及干扰,使实验结果与理论值之间存在一定误差。但是本实验误差在较小范围内,响应曲线也反映了预期要求,所以本实验基本得到了预期结果。 实验结果说明 由本实验结果可看出,一阶系统阶跃响应是单调上升的指数曲线,特征有T确定,T越小,过度过程进行得越快,系统的快速性越好。 二阶系统 图1.1 图1.2 图1.3

系统传递函数: 令 二阶系统模拟线路 0.25 0.50 1.00 R4 210.5 C2 111 实测45.8% 16.9% 0.6% 理论44.5% 16.3% 0% T S实测13.9860 5.4895 4.8480 T S理论14.0065 5.3066 4.8243 阶跃响应曲线图2.1 图2.2 图2.3 注:T s理论根据matlab命令[os,ts,tr]=stepspecs(time,output,output(end),5)得出,否则误差较大。 误差计算及分析 1)当ξ=0.25时,超调量的相对误差= 调节时间的相对误差= 2)当ξ=0.5时,超调量的相对误差==3.7% 调节时间的相对误差==3.4% 4)当ξ=1时,超调量的绝对误差= 调节时间的相对误差==3.46% 误差分析:由于本试验中,用的参量比较多,有R1,R2,R3,R4;C1,C2;在它们的取值的实际调节中不免出现一些误差,误差再累加,导致最终结果出现了比较大的误差,另外,此实验用的导线要多一点,干扰和导线的传到误差也给实验结果造成了一定误差。但是在观察响应曲线方面,这些误差并不影响,这些曲线仍旧体现了它们本身应具有的特点,通过比较它们完全能够了解阶跃响应及其性能指标与系统参数之间的关系,不影响预期的效果。 实验结果说明 由本实验可以看出,当ωn一定时,超调量随着ξ的增加而减小,直到ξ达到某个值时没有了超调;而调节时间随ξ的增大,先减小,直到ξ达到某个值后又增大了。 经理论计算可知,当ξ=0.707时,调节时间最短,而此时的超调量也小于5%,此时的ξ为最佳阻尼比。此实验的ξ分布在0.707两侧,体现了超调量和调节时间随ξ的变化而变化的过程,达到了预期的效果。 图2.2 图2.1 图2.3

北航自动控制原理实验报告- 一、二阶系统的电子模拟及时域响应的动态测试

成绩 北京航空航天大学 自动控制原理实验报告 学院机械工程及自动化学院 专业方向机械工程及自动化 班级 学号 学生姓名刘帆 自动控制与测试教学实验中心

实验一 一、二阶系统的电子模拟及时域响应的动态测试 实验时间2014年11月15日 实验编号 同组同学 一、实验目的 1、 了解一、二阶系统阶跃响应及其性能指标与系统参数之间的关系。 2、 学习在电子模拟机上建立典型环节系统模型的方法。 3、 学习阶跃响应的测试方法。 二、实验内容 1、 建立一阶系统的电子模型,观测并记录在不同时间常数T 时的跃响应曲线,并测定其过渡过程时间T s 。 2、 建立二阶系统的电子模型,观测并记录在不同阻尼比ζ时的跃响应曲线,并测定其超调量σ%及过渡过程时间T s 。 三、实验原理 1、一阶系统阶跃响应性能指标的测试 系统的传递函数为:()s ()1 C s K R s Ts φ=+()= 模拟运算电路如下图 : 其中2 1 R K R = ,2T R C =;在实验中,始终保持21,R R =即1K =,通过调节2R 和C 的不同取值,使得T 的值分别为0.2,0.51,1.0。记录实验数据,测量过度过程的性能指标,其中取正负5%误差带,按照经验公式取3s t T =

2、二阶系统阶跃响应性能指标的测试 系 统 传递函数为: 令ωn=1弧度/秒,则系统结构如下图: 二阶系统的 模拟电路图如下: 在实验过程中,取22321,1R C R C ==,则 442312R R C R ζ==,即42 12R C ζ=;在实验当中取123121,1R R R M C C F μ===Ω==,通过调整4R 取不同的值,使得ζ分别为0.25,0.5,0.707,1;记录所测得的实验数据以及其性能指标,取正负5%误差 带,其中当ζ<1时经验公式为2 1 3.5 %100%,s n e t ζσζω- -=?= ,当ζ=1时经验公式 为n 4.75 ts ω= 四、试验设备: 1、HHMN-1型电子模拟机一台。 2、PC 机一台。 3、数字万用表一块。 4、导线若干。

北航数字图象处理实验报告

数字图像处理实验报告 实验二图像变换实验 1.实验目的 学会对图像进行傅立叶等变换,在频谱上对图像进行分析,增进对图像频域上的感性认识,并用图像变换进行压缩。 2.实验内容 对Lena或cameraman图像进行傅立叶、离散余弦、哈达玛变换。在频域,对比他们的变换后系数矩阵的频谱情况,进一步,通过逆变换观察不同变换下的图像重建质量情况。 3. 实验要求 实验采用获取的图像,为灰度图像,该图像每象素由8比特表示。具体要求如下: (1)输入图像采用实验1所获取的图像(Lena、Cameraman); (2)对图像进行傅立叶变换、获得变换后的系数矩阵; (3)将傅立叶变换后系数矩阵的频谱用图像输出,观察频谱; (4)通过设定门限,将系数矩阵中95%的(小值)系数置为0,对图像进行反变换,获得逆变换后图像; (5)观察逆变换后图像质量,并比较原始图像与逆变后的峰值信噪比(PSNR)。 (6)对输入图像进行离散余弦、哈达玛变换,重复步骤1-5; (7)比较三种变换的频谱情况、以及逆变换后图像的质量(PSNR)。 4. 实验结果 1. DFT的源程序及结果 J=imread('10021033.bmp'); P=fft2(J); for i=0:size(P,1)-1 for j=1:size(P,2) G(i*size(P,2)+j)=P(i+1,j); end end Q=sort(G); for i=1:size(Q,2) if (i=size(Q,2)*0.95) t=Q(i); end end G(abs(G)

FPGA实验报告北航电气技术实验

FPGA电气技术实践 实验报告 院(系)名称宇航学院 专业名称飞行器设计与工程(航天)学生学号XXXXXXXX 学生姓名XXXXXX 指导教师XXXX 2017年11月XX日

实验一四位二进制加法计数器与一位半加器的设计实验时间:2017.11.08(周三)晚实验编号20 一、实验目的 1、熟悉QuartusII的VHDL的文本编程及图形编程流程全过程。 2、掌握简单逻辑电路的设计方法与功能仿真技巧。 3、学习并掌握VHDL语言、语法规则。 4、参照指导书实例实现四位二进制加法计数器及一位半加器的设计。 二、实验原理 .略 三、实验设备 1可编程逻辑实验箱EP3C55F484C8 一台(包含若干LED指示灯,拨码开关等)2计算机及开发软件QuartusII 一台套 四、调试步骤 1四位二进制加法计数器 (1)参照指导书实例1进行工程建立与命名。 (2)VHDL源文件编辑 由于实验箱上LED指示灯的显示性质为“高电平灭,低电平亮”,为实现预期显示效果应将原参考程序改写为减法器,且”q1<= q1+1”对应改为”q1<= q1-1”,以实现每输入一个脉冲“亮为1,灭为0”。 由于参考程序中的rst清零输入作用并未实现,所以应将程序主体部分的最外部嵌套关于rst输入是否为1的判断,且当rst为1时,给四位指示灯置数”1111”实现全灭,当rst为0时,运行原计数部分。 (3)参照指导书进行波形仿真与管脚绑定等操作,链接实验箱并生成下载文件 (4)将文件下载至实验箱运行,观察计数器工作现象,调试拨动开关查看是否清零。 可以通过改变与PIN_P20(工程中绑定为clk输入的I/O接口)相连导线的另一端所选择的实验箱频率时钟的输出口位置,改变LED灯显示变化频率。 并且对照指导书上对实验箱自带时钟频率的介绍,可以通过改变导线接口转换输入快慢,排查由于clk输入管脚损坏而可能引起的故障。

北航电涡流传感器实验报告

电涡流传感器实验报告 38030414蔡达 一、实验目的 1.了解电涡流传感器原理; 2.了解不同被测材料对电涡流传感器的影响。 二、实验仪器 电涡流传感器实验模块,示波器:DS5062CE,微机电源:WD990型,士12V,万用表:VC9804A型,电源连接电缆,螺旋测微仪 三、实验原理 电涡流传感器由平面线圈和金属涡流片组成,当线圈中通以高频交变电流后,在与其平行的金属片上会感应产生电涡流,电涡流的大小影响线圈的阻抗Z,而涡流的大小与金属涡流片的电阻率、导磁率、厚度、温度以及与线圈的距离X有关,当平面线圈、被测体(涡流片)、激励源确定,并保持环境温度不变,阻抗Z只与距离X有关,将阻抗变化转为电压信号V输出,则输出电压是距离X的单值函数。

四. 实验数据及处理 1.铁片 0.5 1 1.52 2.5 3 3.5 电涡流传感器电压位移曲线—铁片 电压/V 位移/mm

0.5 1 1.5 2 2.53 3.5 电涡流传感器电压位移拟合曲线—铁片 电压/V 位移/mm 其线性工作区为0.6——3.4,对该段利用polyfit 进行函数拟合,可得V=-1.0488X-1.2465 2.铜片

电涡流传感器电压位移曲线—铜片 电压/V 位移/mm 2.2 2.4 2.6 2.83 3.2 3.4 3.6 -6-5.95-5.9-5.85 -5.8-5.75-5.7 -5.65-5.6-5.55-5.5电涡流传感器电压位移拟合曲线—铜片 电压/V 位移/mm 其线性工作区为2.4——3.4,对该段利用polyfit 进行函数拟合,可得V= -0.4500X -4.4667

自动控制原理实验报告

自动控制原理 实验报告

实验一一、二阶系统的电子模拟及时域响应的动态测试 实验目的 1.了解一、二阶系统阶跃响应及其性能指标与系统参数之间的关系。 2.学习在电子模拟机上建立典型环节系统模型的方法。 3.学习阶跃响应的测试方法。 二、实验内容 1.立一阶系统的电子模型,观测并记录在不同时间常数T时的跃响应曲线, 并测定其过渡过程时间TS。 2.立二阶系统的电子模型,观测并记录在不同阻尼比ζ时的跃响应曲线, 并测定其超调量σ%及过渡过程时间TS。 三、实验原理 1.一阶系统: 系统传递函数为:错误!未找到引用源。 模拟运算电路如图1-1所示: 图1-1 由图得: 在实验当中始终取错误!未找到引用源。, 则错误!未找到引用源。, 错误!未找到引用源。 取不同的时间常数T分别为: 0.25、 0.5、1。 记录不同时间常数下阶跃响应曲线,测量纪录其过渡过程时 ts。(取错误! 未找到引用源。误差带) 2.二阶系统: 其传递函数为: 错误!未找到引用源。 令错误!未找到引用源。,则系统结构如图1-2所示:

图1-2 根据结构图,建立的二阶系统模拟线路如图1-3所示: 图1-3 取错误!未找到引用源。,错误!未找到引用源。,则错误!未找到引用源。及错误!未找到引用源。 错误!未找到引用源。取不同的值错误!未找到引用源。 , 错误!未找到引用源。, ,观察并记录阶跃响应曲线,测量超调量σ%(取错误!未找到引用源。误差带),计算过渡过程时间Ts。 四、实验设备 1.HHMN-1型电子模拟机一台。 2.PC 机一台。 3.数字式万用表一块。 4.导线若干。 五、实验步骤 1.熟悉HHMN-1型电子模拟机的使用方法,将各运算放大器接成比例器,通电调零。 2.断开电源,按照实验说明书上的条件和要求,计算电阻和电容的取值,按照模拟线路图搭接线路,不用的运算放大器接成比例器。 3.将D/A1与系统输入端Ui连接,将A/D1与系统输出端UO连接(此处连接必须谨慎,不可接错)。线路接好后,经教师检查后再通电。 4.在Windows XP桌面用鼠标双击MATLAB图标后进入,在命令行处键入autolab 进入实验软件系统。 5.在系统菜单中选择实验项目,选择实验一,在窗口左侧选择实验模型,其它步骤察看概述3.2节内容。 6.观测实验结果,记录实验数据,绘制实验结果图形,填写实验数据表格,完成实验报告。 7.研究性实验方法。实验者可自行确定典型环节传递函数,并建立系统的SIMULINK模型,验证自动控制理论相关的理论知识。实现步骤可察看概述3.3节内容。

北航17系光电子实验报告实验5讲解

光电子技术实验报告

实验五光电池特性实验 一.实验目的: 1.学习掌握硅光电池的工作原理。 2.学习掌握硅光电池的基本特性。 3.掌握硅光电池基本特性测试方法。 二.实验原理: 光电池是一种不需要加偏置电压就能把光能直接转换成电能的PN结光电器件,按光电池的功用可将其分为两大类:即太阳能光电池和测量光电池,本仪器用的是测量用的硅光电池,其主要功能是作为光电探测,即在不加偏置的情况下将光信号转换成电信号。 图(20)图(21)如图(20)所示为2DR型硅光电池的结构,它是以P型硅为衬底(即在本征型硅材料中掺入三价元素硼或镓等),然后在衬底上扩散磷而形成N型层并将其作为受光面。如图(21)所示当光作用于PN结时,耗尽区内的光生电子与空穴在内建电场力的作用下分别向N区和P区运动,在闭合电路中将产生输出电流IL,且负载电阻RL上产生电压降为U。显然,PN结获得的偏置电压U与光电池输出电流IL与负载电阻RL有关,即U=IL?RL,当以输出电流的IL为电流和电压的正方向时,可以得到如图(22)所示的伏安特性曲线。

图(22)图(23)光电池在不同的光强照射下可以产生不同的光电流和光生电动势,硅光电池的光照特性曲线如图(23)所示,短路电流在很大范围内与光强成线性关系,开路电压随光强变化是非线性的,并且当照度在2000lx时就趋于饱和,因此,把光电池作为测量元件时,应把它当作电流源来使用,不宜用作电压源。 硒光电池和硅光电池的光谱特性曲线如图(25)所示,不同的光电池其光谱峰值的位置不同,硅光电池的在800nm附近,硒光电池的在540nm附近,硅光电池的光谱范围很广,在450~1100nm之间,硒光电池的光谱范围为340~750nm。 图(24)图(25)光电池的温度特性主要描述光电池的开路电压和短路电流随温度变化的情况,由于它关系到应用光电池设备的温度漂移,影响到测量精度或控制精度等主要指标,光电池的温度特性如图(24)所示。开路电压随温度升高而下降的速度较快,而短路电流随温度升高而缓慢增加,因此,当使用光电池作为测量元件时,在系统设计中应考虑到温度的漂移,并采取相应的措施进行补偿。 三.实验所需部件: 两种光电池、各类光源、实验选配单元、数字电压表(4 1/2位)自备、微安表(毫安表)、激光器、照度计(用户选配)。

北航verilog实验报告(全)

目录 实验一 (2) 实验二 (8) 实验三 (14) 实验四 (27)

实验一 实验目的:熟悉硬件开发流程,掌握Modelsim设计与仿真环境,学会简单组合逻辑电路、简单时序逻辑电路设计,不要求掌握综合和综合后仿真。 实验内容:必做实验:练习一、简单的组合逻辑设计 练习二、简单分频时序逻辑电路的设计 选做实验:选做一、练习一的练习题 选做二、7段数码管译码电路 练习一、简单的组合逻辑设计 描述一个可综合的数据比较器,比较数据a 、b的大小,若相同,则给出结果1,否则给出结果0。 实验代码: 模块源代码: module compare(equal,a,b); input a,b; output equal; assign equal=(a==b)?1:0; endmodule 测试模块源代码: `timescale 1ns/1ns `include "./compare.v" module t; reg a,b; wire equal; initial begin a=0; b=0; #100 a=0;b=1; #100 a=1;b=1; #100 a=1;b=0; #100 a=0;b=0; #100 $stop; end compare m(.equal(equal),.a(a),.b(b)); endmodule 实验波形

练习二、简单分频时序逻辑电路的设计 用always块和@(posedge clk)或@(negedge clk)的结构表述一个1/2分频器的可综合模型,观察时序仿真结果。 实验代码: 模块源代码: module halfclk(reset,clkin,clkout); input clkin,reset; output clkout; reg clkout; always@(posedge clkin) begin if(!reset) clkout=0; else clkout=~clkout; end endmodule 测试模块源代码: `timescale 1ns/100ps `define clkcycle 50 module tt; reg clkin,reset; wire clkout; always#`clkcycle clkin=~clkin; initial begin clkin=0; reset=1; #10 reset=0; #110 reset=1; #100000 $stop; end halfclk m0(.reset(reset),.clkin(clkin),.clkout(clkout)); endmodule

北航自动控制原理实验报告1-4合集

自动控制原理 实验报告 实验一二阶系统的电子模拟及时域响应的动态测试实验二频率响应测试 实验三控制系统串联校正 实验四控制系统数字仿真 姓名: 学号:单位:仪器科学与光电工程学院 日期:2013年12月27日

实验一二阶系统的电子模拟及时域响应的动态测试 一、实验目的 1. 了解一、二阶系统阶跃响应及其性能指标与系统参数之间的关系。 2. 学习在电子模拟机上建立典型环节系统模型的方法。 3. 学习阶跃响应的测试方法。 二、实验内容 1. 建立一阶系统的电子模型,观测并记录在不同时间常数T时的跃响应曲线,并测定其过渡过程时间TS。 2. 建立二阶系统的电子模型,观测并记录在不同阻尼比ζ时的跃响应曲线,并测定其超调量σ%及过渡过程时间TS。 三、实验原理 1.一阶系统:系统传递函数为: 模拟运算电路如图1- 1所示: 图 1- 1 由图 1-1得 在实验当中始终取R2= R1,则K=1,T= R2C取不同的时间常数T分别为:、、1 2.二阶系统: 其传递函数为: 令=1弧度/秒,则系统结构如图1-2所示: 图1-2 根据结构图,建立的二阶系统模拟线路如图1-3所示:

图1-3 取R2C1=1 ,R3C2 =1,则及 ζ取不同的值ζ= , ζ= , ζ=1 四、实验步骤 1. 确定已断开电子模拟机的电源,按照实验说明书的条件和要求,根据计算的电阻电容值,搭接模拟线路; 2. 将系统输入端与D/A1相连,将系统输出端与A/D1相; 3. 检查线路正确后,模拟机可通电; 4. 双击桌面的“自控原理实验”图标后进入实验软件系统。 5. 在系统菜单中选择“项目”——“典型环节实验”;在弹出的对话框中阶跃信号幅值选1伏,单击按钮“硬件参数设置”,弹出“典型环节参数设置”对话框,采用默认值即可。 6. 单击“确定”,进行实验。完成后检查实验结果,填表记录实验数据,抓图记录实验曲线。 五、实验设备 HHMN-1电子模拟机一台、PC机一台、数字式万用表一块 六、实验数据 T1 R2250K500K1M C1μF1μF1μF Ts理论 Ts实测 Ts误差%%% 响应图形图1图2图3

北航eda实验报告

2014-2015-2-G02A3050-1 电子电路设计训练(数字EDA部分) 实验报告 (2015年5月19日) 教学班学号姓名组长签名成绩120311王天然* 120311马璇 120312唐玥 自动化科学与电气工程学院

目录 ( 2015年5月19日).........................................错误!未定义书签。目录 .........................................................错误!未定义书签。实验一、简单组合逻辑和简单时序逻辑............................错误!未定义书签。 简单的组合逻辑设计..................................错误!未定义书签。 实验目的和内容:..................................错误!未定义书签。 实验源代码:......................................错误!未定义书签。 测试模块源代码:..................................错误!未定义书签。 简单分频时序逻辑电路的设计...........................错误!未定义书签。 实验目的和内容:..................................错误!未定义书签。 实验源代码:......................................错误!未定义书签。 实验测试源代码:..................................错误!未定义书签。 (选作)设计一个字节(8位)比较器....................错误!未定义书签。 实验内容:........................................错误!未定义书签。 实验代码:........................................错误!未定义书签。 实验测试源代码:..................................错误!未定义书签。 实验小结.............................................错误!未定义书签。实验二、条件语句和always过程块...............................错误!未定义书签。 实验任务1——利用条件语句实现计数分频时序电路.......错误!未定义书签。 实验要求.........................................错误!未定义书签。 模块的核心逻辑设计...............................错误!未定义书签。 测试程序的核心逻辑设计...........................错误!未定义书签。 仿真实验关键结果及其解释.........................错误!未定义书签。 实验任务2——用always块实现较复杂的组合逻辑电路....错误!未定义书签。

北航惯性导航综合实验一实验报告

实 验一 陀螺仪关键参数测试与分析实验 加速度计关键参数测试与分析实验 二零一三年五月十二日 实验一陀螺仪关键参数测试与分析实验 一、实验目得 通过在速率转台上得测试实验,增强动手能力与对惯性测试设备得感性认识;通过对陀螺仪测试数据得分析,对陀螺漂移等参数得物理意义有清晰得认识,同时为在实际工程中应用陀螺仪与对陀螺仪进行误差建模与补偿奠定基础。 二、实验内容 利用单轴速率转台,进行陀螺仪标度因数测试、零偏测试、零偏重复性测试、零漂测试实验与陀螺仪标度因数与零偏建模、误差补偿实验。 三、实验系统组成 单轴速率转台、MEMS 陀螺仪(或光纤陀螺仪)、稳压电源、数据采集系统与分析系统。

四、实验原理 1.陀螺仪原理 陀螺仪就是角速率传感器,用来测量载体相对惯性空间得角速度,通常输出与角速率对应得电压信号。也有得陀螺输出频率信号(如激光陀螺)与数字信号(把模拟电压数字化)。以电压表示得陀螺输出信号可表示为: (1-1)式中就是与比力有关得陀螺输出误差项,反映了陀螺输出受比力得影响,本实验不考虑此项误差。因此,式(1-1)简化为 (1-2)由(1-2)式得陀螺输出值所对应得角速度测量值: (1-3) 对于数字输出得陀螺仪,传感器内部已经利用标度因数对陀螺仪模拟输出进行了量化,直接输出角速度值,即: (1-4)就是就是陀螺仪得零偏,物理意义就是输入角速度为零时,陀螺仪输出值所对应得角速度。且 (1-5) 精度受陀螺仪标度因数、随机漂移、陀螺输出信号得检测精度与得影响。通常与表现为有规律性,可通过建模与补偿方法消除,表现为随机特性,可通过信号滤波方法抵制。因此,准确标定与就是实现角速度准确测量得基础。 五、陀螺仪测试实验步骤 1)标度因数与零偏测试实验 a、接通电源,预热一定时间; b、陀螺工作稳定后,测量静止情况下陀螺输出并保存数据;

自动控制元件作业答案

《自动控制元件》作业 第一章 直流伺服电动机 1-1直流伺服电动机的电磁转矩和控制电流由什么决定? 答:a :由T em =C m ΦI a 知电磁转矩由每极磁通量和绕组电流大小决定。 b :由T em =T 0 +T 2 =CmΦIa 控制电流由负载转矩(T 2)和空载转矩(T 0)大小决定。 1-2当直流伺服电动机的负载转矩恒定不变时,控制电压升高将使稳态的电磁转矩、控制电流、转速发生怎样的变化?为什么? 答:a :电磁转矩T em =T 0 +T 2可见电磁转矩也不变。由T em =C m ΦI a 知控制电流 I a 也不变 b :KeKt RaTem Ke Ua n -=知T em 不变可见U a 转速升高理想空载转速变大导致转速n 升高。 1-3已知一台直流电动机,其电枢额定电压Ua=110V ,额定运行时电枢电流Ia=0.4A ,转速n=3600rpm ,它的电枢电阻Ra=50欧姆,负载阻转矩To=15mN.m 。试问该电动机额定负载转矩是多少? 答:Ea= Ua- IaRa=110-0.4×50=90V Ea=Ce Φn, Ce=0.105Cm Cm Φ=0.2383600 0.10590n 105.0=?=?Ea T em =T 0 +T 2=CmΦI a →T 2=CmΦIa -T 0 =0.40.238=0.0952-15×10-3=80.2mN.m 1-6当直流伺服电动机电枢电压、励磁电压不变时,如将负载转矩减少,试问此时电动机的电枢电流、电磁转矩、转速将怎样变化?并说明由原来的状态到新的稳态的物理过程。 答:磁转矩T em =T 0 +T 2可见T 2 ↓电磁转矩也↓。由T em =C m ΦI a 知控制电流I a ↓

北航电气实验FPGA实验报告

北京航空航天大学电气实验报告 FPGA实验 张天 130325班 学号:13031220

一.实验目的 略 二.实验要求 略 三.实验设备 略 四.实验内容 略 五.实验实例 1.实例6-1 思考题1:输出信号q3q2q1绑定接口电路的七段数码管或米字型数码管或LED点 阵显示? 答: 思考题2:怎样修改成4位二进制减法计数器,具有清零,启动控制功能等? 答: 思考题3:把计数器修改成2位或更多位十进制计数功能,再用七段数码管进行显示等? 答: 2.实例6-2 思考题:一位半加器电路采用VHDL语言实验 答: library ieee; use ieee.std_logic_1164.all; use iee.std_logic_unsigned.all; entity halfadd is port (a,b;in std_logic sum,carry; out std_logic) end entity halfadd; architecture halfadd is begin sum<=a and(not b)+b and (not a); carry<= a and b; end architecture halfadd; 六.实验过程 我们组做的是一个利用led点阵规律亮灭变化形成字体,并且字体产生变化,形成“自动化?”的样子,实现图片如下图:

1.实验分析: 实验设计思路: 本实验的设计思路是利用led灯的 辉光效应,利用逐行扫描,在高频情况下就会显示所有行的亮灯,进而形成汉字,并且有时钟计数程序,当时钟数字达到规定值(本实验为111111111b)时,跳转到下一个状态,显示第二个憨子。每个汉字的颜色由led灯决定,改led矩阵有红绿两种led灯,因此有红绿橙三种颜色显示。 2.实现过程 对设计思路的实现并非一帆风顺,最初编写的时候遇到了一些问题。首先,定义输入输出角是个繁琐的事情(需要定义40+次,每次必须手动),另外,在程序编写过程中,也出现了一些逻辑错误,对于错误,我们仔细逐条语句分析,最终解决了错误,解决过程中也加深了对FPGA的语言逻辑及硬件结构的理解。 七.FPGA使用心得 在学习FPGA过程中,我获得了很多收获。首先,由于有单片机的基础,上手过程并不是十分复杂,对于输入输出的理解我没有遇到太多阻碍。这次学习也验证了我具有短时间内掌握一款新型的芯片的能力。学习过程中最大的困难就是VDHL语言的编写。我们以前有c语言的基础,不过学习这种新的语言还是花出了不少时间与精力,现在可以说基本掌握的VDHL的基本写法和思路,能运 用到需要的程序中来。另外,调试的过程能极强地加大对程序的理解及逻辑的构建,在调试中,逐渐明白了以前不懂的东西,对FPGA的工作原理的理解更加透彻了。 不了解的人可能会把FPGA当做一种单片机,但其实,相比于单片机,FPGA 是有很多优势的。其无固定的硬件结构使其具有远超单片机的灵活性,另外,它的编程方法可以同步进行多个process 使其能同步处理多个进程,因此,它的

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