当前位置:文档之家› 基于嵌入式四轴的研究设计报告

基于嵌入式四轴的研究设计报告

基于嵌入式四轴的研究设计报告
基于嵌入式四轴的研究设计报告

西北师范大学第十届

“挑战杯”大学生课外学术科技作品竞赛

研究设计报告

作品名称:基于嵌入式的四轴飞行器设计

申报学院: 计算机科学与工程学院

指导教师:王小牛

申报者姓名(集体名称): 马云潮

类别:

□自然科学类学术论文

□社会科学类社会调查报告和学术论文

□科技发明制作A类

科技发明制作B类

摘要:四轴飞行器具有不稳定、非线性、强耦合等特性, 姿态控制是四轴飞行器飞行控制系统的核心; 通过分析四轴飞行器的飞行原理, 根据其数学模型和系统的功能要求, 设计了四轴飞行器的姿态控制系统; 该系统采用 stm32 系列32位处理器作为主控制器, 使用MPU6050惯性测量单元等传感器用于姿态信息检测;系统基于模块化设计的思想, 各传感器都使用数字接口进行数据交换, 结构简单; 使用 P I D 控制算法进行姿态角的闭环控制, 实验结果表明, 飞行器能较好的稳定在实验平台上, 系统满足四轴飞行器基本动作飞行姿态控制的要求。

关键词:四旋翼飞行器,STM32F103,捷联式惯导,飞行控制系统,四元数

目录

第1章绪论 (4)

第2章系统方案 (4)

第3章功能与指标 (5)

第4章硬件系统设计 (5)

4.1四轴飞行器供电方案.................................. .. (5)

4.2四轴飞行器硬件清单 (5)

第5章软件系统设计 (5)

5.1四元数计算与姿态角的实现 (7)

5.2 PID控制设计 (10)

5.3 PID参数调节 (10)

第六章系统调试. (11)

6.1姿态角调试 (11)

6.2电机控制调试 (12)

6.3四轴飞行器试飞 (13)

第七章系统创新...................................................... ..15 结论. .. (15)

附录A :. (16)

参考文献. (18)

第1章绪论

四轴飞行器是一种利用四个旋翼作为飞行引擎来进行空中飞行的飞行器。进入20世纪以来,电子技术飞速发展四轴飞行器开始走向小型化,并融入了人工智能,使其发展趋于无人机,智能机器人。

本设计主要研究了四轴飞行器的姿态结算和飞行控制,并设计制作了一架四轴飞行器,对关键传感器做了标定,并利用上位机软件进行姿态显示、波形显示、PID调参。微型四旋翼飞行器是一种具有4个对称分布的旋翼由电驱动能垂直起降的飞行器。具有结构简单稳定性好承载能力强的特点。针对四旋翼飞行器,设计了一种基于STM32的飞行制器,其具有体积小功耗低硬件和硬件资源丰富,开发效率高成本低等优势.STM32系列处理器是ST公司新推出的一款基于高性能低成本低功耗要求的嵌入式处理器,应用专门设计的ARMCortex-M3低功耗高速内核。STM32丰富的片上资源可满足各类传感器通讯需求。基于STM32的飞行控制器与传统的飞行控制器相比可大大降低系统的开发成本节约资源。飞行控制器中姿态角解算应用了分布式融合滤波器的思想,四元数加互补滤波作为姿态解算算法具有较大的理论和应用价值。

本设计是基于STM32F103的四轴飞行平台。以STM32F103为控制核心,加速度、陀螺仪为姿态传感器。硬件上由飞控电路,MPU6050模块,通信模块,动力系统,机架组成。算法上采用简洁稳定的四元数加互补滤波作为姿态解算算法,PID作为控制器,实现飞行,具有灵活轻盈,延展性,适应性强好等特点。

第2章系统方案

采用STM32F103作为核心处理器,该处理器内核架构ARM Cortex-M3,具有高性能、低成本、低功耗等特点。包括传感器MPU6050电路模块、电机启动模块等;

遥控使用商品遥控及接收机。控制芯片捕获接收机的PPM命令信号,传感器与控制芯片之间采用IIC总线连接,MCU与电调之间用PWM传递控制信号。

软件算法才用基于四元数的互补滤波解算姿态角,控制才用经典PID控制算法控制四轴电机。如图为本设计总体框图(图1-1)。

图1-1

第三章功能与指标

通过微控芯片读取数据、数据滤波、姿态角解算、PID控制、遥控数据融合,实现能够基本的稳定飞行,能够完成俯仰、横滚、航向变换等基本动作,在稳定飞行的情况下可添加其他设备,如航拍云台、气体检测、店里拉线、高

空广告等功能。

第四章硬件系统设计

针对前面提出的整体设计方案,本设计采取模块化策略,将各个功能部分开来设计,逐个模块逐个开发调试,最后组合起来进行整体开发、调试。

4.1四轴飞行器硬件清单

4.2 四轴供电方案

电子调速器为11.1v输入 STM32开发板为5v输入,接收机为5v输入,MPU6050模块为3.3v供电,锂电池为11.1v输出,因电子调速器提供一个5v

输出,开发板提供多个3.3v输出,所以用两个电子调速器分别为开发板和接

收机供电,开发板为MPU6050供电,未用到稳压芯片。

第五章系统软件设计

软件设计上由控制核心STM32F103读取传感器信息,解算姿态角,以姿态角为被控制量融合遥控信息后,输出到四个电机以完成四轴飞行控制。软件流

程如图(5-0),软件上使用四个定时器,定时器2为4路遥控输入捕获,定

时器3为4路PWM输出,定时器5为系统定时中断,中断后读取传感器数据、姿态解算、PID控制。定时器6为LED闪烁定时。系统通过IIC接口读取传感

器数据,串口端向上位机发送数据。

图5-0

5.1四元数计算姿态角的实现

根据姿态解算方程与四元数,即可得到姿态计算系统的计算原理如下图(5-1):

图5-1

本设计基于互补滤波的思想上完成的四元素算法,其核心思路为利用加速度测得的重力向量与估计姿态得到重力向量的误差来矫正陀螺仪积分误差,然后利用矫正后的陀螺仪积分得到姿态角。

首先设处理后的加速度数据为:ax,ay,az ,单位m/s^2。加速度计的向量为a

(ax,ay,az )陀螺仪数据为:gx,gy,gz ,单位rad/s 。陀螺仪向量g (gx,gy,gz ),载体到

导航坐标系的四元数形式转换矩阵为:b g q 。

根据余弦矩阵和欧拉角的定义,地理坐标系的重力向量,转到机体坐标系,是b

g

q 中的第三列的三个元素,即[]001T

g

b q ?。所以加速的向量与估计重力向量叉积:

[]001T

g b a e q a

=

??

然后利用向量的叉积,e 可视为误差向量,这个叉积向量仍旧是位于机体坐标系

上的,而陀螺积分误差也是在机体坐标系,而且叉积的大小与陀螺积分误差成正比,正好拿来纠正陀螺。由于陀螺是对机体直接积分,所以对陀螺的纠正量会直接体现在对机体坐标系的纠正。用上面得到的结果校正陀螺仪:

e g t k θ=?+?

此处k 为一个常量系数。

再利用二阶毕卡法解四元数微分方程,更新四元数为下一次计算做准备。毕卡二阶算法为:

其中θ?为角增量

[]201

q(1){(1)}()

82n q n θθ+=-I +?

222

20=x y z θθθθ??+?+?

最后将四元数转变为欧拉角:

Q_ANGLE.Pitch=asin(-2 * q1 * q3 + 2 * q0* q2)

Q_ANGLE.Rool=atan2(2*q2*q3+2*q0*q1,-2*q1*q1-2*q2*q2+1)

Q_ANGLE.Yaw=atan2(2*q1*q2+2*q0*q3,-2*q2*q2-2*q3*q3+1)

数据流程图5-2:

图5-2

通过以上算法我成功得出了飞行器的姿态角,在开启电机的情况下,角度误差在+/-2°以内,满足了控制要求。姿态计算效果如下图所示,青色、紫色、灰色是由加速度计和陀螺仪通过滤波后数据融合算出的俯仰角、横滚角和航向角。由图(5-3)中数据可看出,解算的姿态角不仅能即时的反应角度变化切曲线平滑,说明姿态解算算法有效。

图(5-3)

00[]00x y z x

z y y z x z

y

x

θθθθ

θθθθθθθθθ-?-?-???

????-??

??=??

?-??????-?????

T

e

姿态解算代码实现:

5.2 PID控制设计

由于四轴飞行器独特的机械结构,即结构上的对称设计,使得四轴在俯仰角的控制与横滚角的控制上有这近乎相同的控制特性,且两者相对独立。四

轴飞行器的俯仰,横滚,偏航,升降可以通过四个输入量来控制。通过设定一

个期望角度,调整电机转速,使得测得的姿态角稳定在期望角。控制律的设计

主要采用是闭环控制。以姿态角做为被控制量,采用经典的PID控制算法。

四轴飞行器系统是一个时变且非线性的系统,采用传统PID算法的单一的反

馈控制会使系统存在不同程度的超调和振荡现象,无法得到理想的控制效果。

本文将前馈控制引入到了四轴飞行器系统的控制中,有效地改善了系统的实时

性,提高了系统的反应速度;并且根据四轴飞行器系统的特点,对数字PID

算法进行了改进,引入了微分先行环节,改善了系统的动态特性;使得控制器

能够更好地适应四轴飞行器系统的实际情况。

在姿态角的控制中,本设计将控制器捕获到的遥控器信号转换为一个角度,作为期望角,与解算出来的测量角作差,得到偏差error。将error乘以一个比

例系数kp。在只有kp作用下,系统会有静差所以考虑利用积分ki控制消除稳

态误差。但积分控制会降低系统的动态性能,甚至造成闭环系统不稳定,因此

要对积分进行限幅,防止积分过大。

对于微分,如果采用传统的D方法,在人为操纵四轴时会产生输入的设定值

变化频繁且幅度较大,从而造成系统的振荡。对人为控制十分不利,为了解决

设定值的频繁变化给系统带来的不良影响,本文在姿态角控制上引入了微分先

行PID算法,其特点是只对输出量进行微分,即只对陀螺仪角速度测量值进行

微分,而不对姿态角的设定值进行微分。这样,在设定值发生变化时,输出量

并不会改变,而被控量的变化相对是比较缓和的,这就很好地避免了设定值的频繁变化给系统造成的振荡,明显地改善了系统的动态性能。控制周期定为

2ms,姿态控制系统示意图如下:

通过前面一章的介绍我们已经的达到了俯仰,横滚,航向三个控制量,然后将它们分别输入三个独立的如上图所示的PID控制器,我们可以得到三个PID

输出:PID_ROL.OUT,PID_PIT.OUT,PID_YAW.OUT将这三个输出量做简单的线性运算输出给电机。部分代码如下:

5.3. PID参数调节

PID参数的整定是PID控制的关键环节,直接影响到控制的效果。故一个PID 设计的好不好往往要看其参数能否调节好,本设计的PID参数调节采用凑试法。凑试法是通过实际的闭环系统,通过观察系统的响应曲线,在本设计中通过观察被调量,PID输出,设定值三条曲线,判断出kp,ki,kd对系统响应的影响,反复尝试,

最终达到满意响应,从而达到确定控制参数的kp,ki,kd的目的。在参数调节过程总遵循以下原则:

(1)在输出不振荡时,增大比例增益P。

(2)在输出不振荡时,减小积分时间常数Ti。

(3)在输出不振荡时,增大微分时间常数Td。

(4)一般步骤:

a.确定比例增益P

确定比例增益P 时,首先去掉PID的积分项和微分项,一般是令Ti=0、 Td=0 (具体见PID的参数设定说明),使PID为纯比例调节。输入设定为系统允许

的最大值的60%~70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过

来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益 P,设定PID的比例增益P为当前值的60%~70%。比例增益P调试完成。

b.确定积分时间常数Ti

比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消

失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积

分时间常数Ti调试完成。

c.确定积分时间常数Td

积分时间常数Td一般不用设定,为0即可。若要设定,与确定 P和Ti的方法相同,取不振荡时的30%。

d.系统空载、带载联调,再对PID参数进行微调,直至满足要求。

(5)最终调试好的标准应该是,PID输出曲线在有一个阶跃响应来是,响应一大一小两个波,小波是大波的四分之一。

四轴飞行器的PID整定,我们首先四轴固定在单轴平衡平台上,让飞行器完成单轴平衡,主要观察姿态角的(1)稳定性,能否平衡在期望角度;(2)响应性,当操纵命令改变时,四轴能否即时的响应期望的变化;(3)操纵性,由操纵员感受四轴的姿态是否已与操纵,会不会产生响应过冲。

在参数调整时,先调P,将I,D给0,先给一个小值P1,如果飞行器不能稳定在一个角度,则P1给小了,下一次给一个较大值P2,如果飞行器产生震荡则证明P2给大了,那么合适的P在P1-P2之间,反复试验几次可找到P震荡的临界点P0,然后保持P0不变按照调P的方法来调D,D是用来消除误差的,当抖动差不多被消除时,此时我们有较合适的P0,D0,在这两个值附近再试几组参数,观察效果得到最优参数。调好P,D后此时四轴的稳定状态与期望状态间也学会有静差,接下来加入I,参数有小到大,当静差差不多被消除时,我们再对P,I,D三组参数在小范围内联调。最后确定恰当的积分限幅值,完成整个PID参数的整定。

第六章系统测试

6.1 姿态角调试

在完成控制器底层的硬件驱动后,开始姿态角算法的调试。利用串口模块将解算出的姿态角数据发回上位机,摇动四轴机体,观察上位机数据曲线图(6-1)与姿态演示立方块图(6-2)。

图(6-1)

图(6-2)

6.2电机控制调试

在第五章,已经针对四轴飞行器进行了PID的控制设计,但为了得到实际使用的PID 控制参数我们还需要通过反复试验来整定出最优参数。为了方便参数的调试,在本设计过程中才用了先调平衡一个方向,再调另一个方向,最后联达到平衡的效果。为此设计了如下图(6-3)所简易示试试验平台:

(图6-3)

在调试过程中,为了避免频繁的下载程序带来的不变,采用串口发送参数的做法,大大提高了调试效率。当俯仰与横滚两个轴都能够独立的平衡时,可以脱离单轴平台开始在空中进行航向角的稳定性调试。

6.3四轴飞行器试飞

当前面的各项调试都完成了之后,就准备要进行试飞实验。飞行试验是对控制系统的功能和技术指标进行验证的最终手段,也是衡量四轴设计是否成功的重要标志。

试飞前要确保系统各部分工作正常,稳定。检查各个接口连接是否正确,各部件安装是否牢固,电池电量是否充足。打开电源前检查遥控器油门是否在最低位置,起飞前先轻推油门确保电机工作正常。一切准备就绪,即可进行试飞。将四种飞行器放在水平地面上,开始启动姿态初始化程序,听到电调提示音后,缓慢增加油门,螺旋桨转速上升,将飞机拉离地面。由实际情况可看出当姿态发生倾斜时,姿态解算及PID控制能够及时调整电机转速,稳定飞行姿态。飞行器还能根据遥控指令的变化完成相应的动作。本此设计的四轴飞行器可实现垂直升降的要求,能保持姿态的稳定,机体晃动小,在微风的干扰下能够自动调整姿态,确保平稳飞行,且系统响应快,续航时间大概在8分钟。因此本次的设计是有效的。试飞拍摄图如下及图6-4、图6-5

试飞图:

图6-4

图6-5

第七章系统创新

1)整体设计成本较低,采用STM32F103这样一款32位高性能芯片作为控制核心,代码易移植

2)姿态算法采用基于四元数的互补滤波,姿态角解算,比起卡尔曼滤波等高端算法有着计算量小的特点且能投入使用,大大节约了cpu计算时间,也降低

了对cpu的性能要求。

3)可添加需要机动性的轻型设备,方便改装用于执行其他任务。

结论

通过本次设计从中学到很多知识,从一个对ARM嵌入式的“小白”成为对ARM 嵌入式非常熟悉和掌握的开发人员。增强了我的动手能力,知道了细节的重要性,学习知识不能太死板,灵活学习知识。

经过测试,文中所设计控制器的各个硬件模块工作正常,满足设计要求; 该控制器的软件设计流程合理可行; 采用STM32捕获输入功能可正确实现遥控信号解码.实验表明基于分布式融合滤波器获取飞行姿态的方法可行且计算负担小。地面测试表明,控制律的设计合理,能实现飞行器俯仰和滚转通道的稳定控制.该控制器的设计为后续的研究提供了基础和平台,可以在该平台上对系统建模数据处理和飞行控制等方面进行更进一步的深入学习和研究。

附录A

部分源代码

//使用加速度计计算欧拉角

void Get_Accel_Angle(s16 x,s16 y,s16 z,float* roll,float* pitch)

{

float temp;

temp = sqrtf((float)(y*y+z*z));

temp = atan2((float)x,temp)*(180/3.14159265);

*pitch = temp;

temp = sqrtf((float)(x*x+z*z));

temp = atan2((float)y,temp)*(180/3.14159265);

*roll = temp;

}

//电机控制:

void CONTROL(float rol_now, float pit_now, float yaw_now, u16 throttle, float rol_tar, float pit_tar, s16 yaw_gyro_tar)

{

float rol_error = rol_now - rol_tar ;//计算角度差值

float pit_error = pit_now - pit_tar;

float yaw_error = yaw_now - (yaw_gyro_tar/12); //YAW差值(yaw_gyro_tar/12 = 0-30

float yaw_gyro_now = number_to_dps(gyro[2]);// //YAW轴的当前角速度

//----------------------- Pitch\Roll的PID控制-START-----------------------------

PID_ROL.pout = PID_ROL.P * rol_error; //输出的P值

PID_PIT.pout = PID_PIT.P * pit_error;

//输出的I值

PID_ROL.iout += PID_ROL.I * rol_error;

//判读I是否超出范围

PID_ROL.iout = Get_MxMi(PID_ROL.iout,PID_ROL.IMAX,-PID_ROL.IMAX);

PID_PIT.iout += PID_PIT.I * pit_error;

PID_PIT.iout = Get_MxMi(PID_PIT.iout,PID_PIT.IMAX,-PID_PIT.IMAX);

if(throttle<1100) //当油门小于1100时,I值清零

{

PID_ROL.iout = 0;

PID_PIT.iout = 0;

}

// //输出的D值(与遥控器的输入无关)

PID_ROL.dout = PID_ROL.D * number_to_dps(gyro[0]);

PID_PIT.dout = PID_PIT.D * number_to_dps(gyro[1]);

//----------------------- Pitch\Roll的PID控制-END-------------------------------

//------------------- YAW的PID控制-START-----------------------------

if(yaw_gyro_tar>=-5 && yaw_gyro_tar<= 5) //YAW摇杆死区控制

{

yaw_gyro_tar = 0;

}

else

{

//Q_ANGLE.YAW = 0;//YAW角度清零

//YAW角度保持不变(IMUupdate中)

}

PID_YAW.pout = PID_YAW.P * yaw_error;//P

PID_YAW.iout = 0;//I

PID_YAW.dout = PID_YAW.D * (yaw_gyro_now-yaw_gyro_tar); //D 防止YAW轴转动//--------------------- YAW的PID控制-END-----------------------------

PID_ROL.OUT = PID_ROL.pout + PID_ROL.iout + PID_ROL.dout; ////PID值相加

PID_PIT.OUT = PID_PIT.pout + PID_PIT.iout + PID_PIT.dout;

PID_YAW.OUT = PID_YAW.pout + PID_YAW.iout + PID_YAW.dout

if(ARMED == 1)

{

if(throttle>=1100) //对油门进行进行判断<1100的油门电机不转动

{

moto1 = throttle + PID_ROL.OUT - PID_PIT.OUT + PID_YAW.OUT;

moto1 = Get_MxMi(moto1,2000,1000);

moto2 = throttle - PID_ROL.OUT - PID_PIT.OUT - PID_YAW.OUT;

moto2 = Get_MxMi(moto2,2000,1000);

moto3 = throttle - PID_ROL.OUT + PID_PIT.OUT + PID_YAW.OUT;

moto3 = Get_MxMi(moto3,2000,1000);

moto4 = throttle + PID_ROL.OUT + PID_PIT.OUT - PID_YAW.OUT;

moto4 = Get_MxMi(moto4,2000,1000);

Set_Motor(moto1,moto2,moto3,moto4); //电机PWM输出

}

else

{

moto1 =1000;moto2 =1000;moto3 =1000;moto4 =1000;

Set_Motor(moto1,moto2,moto3,moto4); //电机PWM输出

}

}

else

{

moto1 =1000;moto2 =1000;moto3 =1000;moto4 =1000;

Set_Motor(moto1,moto2,moto3,moto4); //电机PWM输出}

}

参考文献:

[1] 杨明志, 王敏. 四旋翼微型飞行器控制系统设计 [J] .计算机测量与控制,

2008,(4):16714598.

[2] 王东来,吕强, 王珂珂. 基于神经网络的小型四旋翼无人机姿态控制 [ C] .上海:

2009年全国博士研究生论坛,2009.

[3] 李宁基于 MDK的stm32处理器开发应用 [ M ] 北京航空航天大学出版社, 2008

[4]邓自立.信息融合滤波理论及其应用[M].哈尔滨: 哈尔滨工业大学出版社,

2007: 368-390.

[5]宿敬亚,张瑞峰,王新华,蔡开元.基于滤噪微分器的四旋翼飞行器控制[J].控

制理论与应用,2009,26( 8) :827-828.

[6]宿敬亚,樊鹏辉,蔡开元.四旋翼飞行器的非线性PID姿态控制[J].北京航

空航天大学学报,2011,37( 9) :1054-1055.

[7]邓正隆.惯性技术[M].哈尔滨: 哈尔滨工业大学出版社.2006.

[8]程国采.四元数法及其应用[M].长沙: 国防科技大学出版.1991.

北京科技大学 嵌入式课程设计报告

《嵌入式控制系统》课程设计报告 学院 专业班级 姓名 学号 指导教师 _

目录 摘要 (4)

Abstract (4) 引言 (5) 带中断LED数码管驱动程序设计 (6) 1.设计内容 (6) 1.1 基本功能 (6) 1.2 扩展功能 (6) 1.3创新功能 (6) 2.实验设备 (6) 3.设计功能块说明 (6) 4.设计原理 (7) 4.1 LED发光原理 (7) 4.2 八位LED显示器 (8) 5. 实验步骤 (8) 5.1 驱动程序加载 (8) 5.2 添加控件 (8) 5.3基本功能的实现 (9) 5.4 使用指南 (10) 6. 实验结果 (10) 6.1 基本功能实现结果 (10) 6.2 LED数码管清零功能实现结果 (11) 6.3 中断计数功能实现结果 (12) 6.4 频率设置功能实现结果 (13) 7. 心得体会 (14) 附录 (16)

摘要 通过嵌入式控制系统课程的学习并结合本次课程设计,了解嵌入式系统的开发方法和流程,熟悉Intel XScale硬件平台及其应用处理机的使用方法,熟悉Windows CE嵌入式系统的基本原理、概念。能针对Intel XScale硬件平台、应用需求自行定制、优化WinCE操作系统,并独立编写可在Intel XScale嵌入式设备上运行的应用程序。 本课程设计主要实现了LED数码管的驱动程序,中断计数功能、LED显示清零功能、LED 数字显示频率设置的功能。 关键字:WINCE 中断数码管驱动 Abstract Learning Embedded Control Systems and combining the curriculum design can help us understand the Embedded Control Sy stems’ development methods and processes, and be familiar with Intel XScale Hardware platform and its usage. Know well the basic principles and concepts about WINCE. Design and optimize Windows Embedded Compact and compose Application software program that can operate on the Intel XScale Hardware platform. The main achievement of the curriculum design are drivers for LED, Interrupt Count, clean the results of the LED and set up the display frequency of the LED. Key words: WINCE Interrupt Digital Driving

ARM课程设计报告

摘要 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 定时器是对外设时钟(PCLK)进行计数,根据4个匹配寄存器的设定,可以设置为匹配时产生中断或执行其他动作。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器的当前值,并可选择产生中断。 关键字:单片机 LPC2106 GPIO 定时器timer 实时时钟外部中断Int 目录 第一章原理与总体方案 (4) 1.1单片机简介 (4) 1.2 LPC2106简介 (5) 1.3单片机的选择 (7) 1.4 LPC2106芯片的选择及设计原理 (8) 第二章硬件设计 (9) 2.1 LED显示电路 (9) 2.2电路图整体设计 (9) 第三章调试 (12) 3.1调试及处理 (12) 第四章测试与分析 (14)

4.1Proteus软件介绍 (14) 4.2仿真结果 (15) 第五章结束语 (16) 5.1结束语 (16) 第1章原理与总体方案 本章阐述了本课题研究的背景,表述了单片机的发展、功能以及LPC2114的简单介绍。阐述了单片机的选择原理以及LPC2106的设计原理。 1.1数字单片机简介 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。 单片机的另外一个名称就是嵌入式微控制器,原因在于它可以嵌入到任何微型或小型仪器或设备中。目前,把单片机嵌入式系统和Internet连接已是一种趋势。但是,Internet一向是一种采用肥服务器,瘦用户机的技术。这种技术在互联上存储及访问大量数据是合适的,但对于控制嵌入式器件就成了"杀鸡用牛刀"了。要实现嵌入式设备和Int ernet连接,就需要把传统的Internet理论和嵌入式设备的实践都颠倒过来。为了使复杂的或简单的嵌入式设备,例如单片机控制的机床、单片机控制的门锁,能切实可行地和Internet连接,就要求专门为嵌入式微控制器设备设计网络服务器,使嵌入式设备可以和Internet相连,并通过标准网络浏览器进行过程控制。

嵌入式课程设计

嵌入式课程设计 学院:计算机与通信工程学院专业:物联网工程班级:物联1501 姓名:王强学号:41501602 实验日期:2017年12月25日 实验名称: 嵌入式课程设计 实验目的: 以STC89开发板为硬件平台,开发温度采集、动态数码管显示、按键响应、与PC串口通讯的综合程序,实现以下功能: 1)PC上的串口调试助手通过串口给STC89开发板发送“GetTemp”命令。 2)STC89开发板从串口接收到“GetTemp”命令后启动温度传感器DS18B20的测温程序获取当前温度,测试完成时将所测得温度数据显示在动态数码管上。(动态数码管在温度获取之前应该显示“FFFFFFFF”,只有在获取温度后才显示温度值) 3)动态数码管显示出温度数据后,请通过按键触发STC89开发板通过串口回送步骤2所测的温度数据给PC上串口调试助手,同时恢复动态数码管显示为“FFFFFFFF”。为保证每个同学的实验都独立完成,要求回送的数据包含自己的学号,即如果你的学号是20150809,当前温度值是19.6摄氏度,那么在PC上的串口调试助手应该显示:20150809 : 19.6°C。硬件电路说明: 1)STC89处理器管脚和晶振电路

2)独立按键 独立按键一共5个,分别连接在单片机的P3.0到P3.4口。去抖动的方式,我们采用软件延时的方法。过程如下: 先设置IO口为高电平(一般上电默认就为高),读取IO口电平确认是否有按键按下,如有IO电平为低电平后,延时几个ms,再读取该IO电平,如果任然为低电平,说明对应按键按下,执行相应按键的程序。 3)DS18B20温度传感器部分 DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。 高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。 初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。 初始时,计数器1预置的是与-55℃相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。 DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读

嵌入式课程设计报告

嵌入式课程设计报告设计题目:电子密码锁

、 摘要 随着科技和人们的生活水平的提高,实现防盗的问题也变得尤为突出,传统机械锁构造简单,电子锁的保密性高,使用灵活性好。根据需要设计运用W90P170开发板,制作一款电子密码锁,密码锁通过键盘输入密码,通过在LCD的文字和图片显示当前密码锁的状态。实现设置密码,密码验证,错误密码自锁、图片显示的功能。 目录

一、选题意义及系统功能 (3) 二、硬件设计及描述 (4) 三、软件设计及描述 (5) 四、程序代码 (6) 五、课程设计体会 (11) 六、运行结果 (12) 七、心得体会 (12) 八、参考文献 (13) 九、附录 (13) 一、选题意义及功能描述 1、选题意义 电子密码锁是通过密码输入来控制电路或是芯片工作,从而控制机械的开关闭合、开锁的电子产品。随着科技提高和人们生活水平的提高,对电子密码锁的需求增加。电子密码做较传统的机械锁安全性能更高。 特点如下: (1)保密性好,编程量大,随机开锁的成功率几乎为零。

(2)密码可变,用户可以随时改变密码,防止密码被盗,同时也可以避免人员的更替而使锁的密级下降。 (3)误码输入保护,输入密码多次错误是,系统进行自锁。 (4)无活动零件,不会磨损,寿命长。 (5)使用灵活性好,无需佩戴钥匙,操作简单。 2、功能描述 基本功能: (1)从键盘输入任意6位数字作为密码,将这六位数字经过USI总线存储到Flash芯片中,设置密码完成。 (2)从键盘输入密码,比较键盘输入的密码与Flash中存储的密码是否相同。 (3)如果密码正确,则LED灯点亮;如果密码不正确,则LED灯闪烁,而且如果连续三次输入密码错误则系统锁定,不允许再次输入密码。 扩展功能: (1)首先显示“请输入密码:”,显示密码锁背景图片1。 (2)如果密码正确则显示“密码正确”,显示成功进入系统的背景图片2。 (3)如果密码不正确则显示“密码不正确,请重新输入:” (4)如果连续三次输入密码错误则显示“对不起,您已经连续三次输入密码错误,系统锁定”,显示图片1。

《嵌入式系统开发技术》设计报告

嵌入式系统开发技术 设计报告 组长: 成员: 中国石油大学(华东)计算机与通信工程学院计算机科学系 二0 年12 月

一、引言 OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列C 函数和少量C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。它的应用领域非常广泛,包括人机互动、物体识别、图像分割、人脸识别、机器视觉、汽车安全驾驶等。随着手机性能的不断提高,OpenCV往安卓上移植已经成为可能,安卓设备移植上OpenCV之后将能够进行复杂的图像处理和视频分析工作,人们不必拘泥于使用固定的设备进行图像以及视频的处理,从而增加了处理的灵活性。 本课程设计实现的就是OpenCV到安卓的移植以及在安卓上实现一个简单的图像处理应用。Android应用程序是通过Android SDK(Software Development Kit)利用Java编程语言进行开发,同时也可以通过JNI调用C动态库,不过这种开发方式存在技术障碍,伴随着Android NDK(Native Development Kit)的问世,使得“JA V A+C”的开发方式走向成熟。 二、总体设计 1、功能描述 本课程设计分为以下四个模块,各模块功能介绍如下: Android-OpenCV项目: OpenCV中大部分重要API在该项目中已经封装成了JA V A接口,为安卓上的OpenCV开发提供C、C++函数支持。 Android NDK: 它包括从C / C++生成原生代码库所需要的工具和build files,能够将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(application packages files ,即.apk文件)中,支持所有未来Android平台的一些列原生系统头文件和库。在本课程设计中担任重要角色,包括交叉编译OpenCV源代码、编译测试程序等。 Cygwin: Windows下模拟Linux操作环境,在其中执行NDK编译。 Eclipse: Android开发环境,开发android程序,生成可执行的.apk文件,连接真机或虚拟机进行调试。 2、设计特色 本课程设计的特色在于成功的将android-opencv移植到eclipse开发环境中去,实现了在android设备开发图像处理、视频分析应用,提高了android设备的使用价值。编译环境采用Android NDK+Cygwin,方便开发者在windows环境下开发“java+c”程序。 3、体系结构

ARM课程设计报告GPIO—流水灯

目录 一、设计目的 (3) 二、设计原理 1、GPIO—流水灯 (3) 2、SPI (7) 3、定时器 (10) 4、实时时钟 (12) 三、所用仪器 (18) 四、EasyARM2131开发套件功能介绍 (18) 五、设计内容:万年历-定时器-流水灯-SPI 1、功能描述 (21) 2、流程图 (22) 3、程序设计 (22) 六、心得体会 (28) 七、参考文献 (29)

一、设计目的 1、根据要求,复习巩固ARM的基础知识。 2、掌握ARM系统的设计方法,特别是熟悉模块化的设计思想。 3、熟练掌握ARM软件和2131开发板的使用。 4、提高综合运用所学的理论知识独立分析和解决问题的能力; 二、设计原理 1、GPIO—流水灯 (1)LPC2131具有多达47个通用I/O 口(GPIO,General Purpose I/O ports),分别为P0[31:0]、 P1[31:16],其中,P0.24未用,P0.31仅为输出口。由于口线与其它功能复用,因而需要进行相关的管脚连接模块(PINSEL0、PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR进行输入/输出属性设置后才能操作。 当管脚选择GPIO 功能时,有IOSET、IOCLR和IOPIN 3 个寄存器用于控制GPIO 的使用。IOSET 用于口线置位,而IOCLR 则用于口线清零,IOPIN 则反映当前IO口的状态,读回IOSET 则反映当前IO口设定状态。 (2)GPIO的特性和应用 特性: 单个位的方向控制; 单独控制输出的置位和清零; 所有I/O口在复位后默认为输入。 应用: 通用I/O口 驱动LED或其它指示器 控制片外器件 检测数字输入 (3)GPIO引脚描述 GPIO管脚描述见表4.1。 表4.1 GPIO 管脚描述

嵌入式程序设计课程设计

课程设计 课程名嵌入式软件开发技术 题目基于嵌入式Linux的温度监测系统的 设计与实现 专业计算机科学与技术(嵌入式系统方向)班级 13计算机嵌入式系统班 学号 学生姓名 2016年6月

摘要 温度是个很普遍而又非常重要的参数,在日常生活、工农业生产以及科研领域都有着广泛的应用。因此,研制能够准确地测量和记录这个参数值的系统具有十分重要的意义。 基于ARM的嵌入式温度监测系统是采用嵌入式Linux作为操作系统,针对以S5PV210为处理器的开发板设计的一个嵌入式温度监测系统。论文在分析了Linux设备驱动程序的基本工作原理基础上,讨论了开发中经常会碰到的中断处理、拥塞处理、I/O端口,并在此基础上实现了基于S5PV210嵌入式处理器的开、读、写、关外部RAM的字符设备驱动和网络驱动。结合高精度温度传感器DS18B20,实现温度的正确采集,并通过以太网络将数据上传给上位机客户端。 论文首先介绍了通信网络中各种设备特性、总线结构及传输技术,然后根据单片机与PC机之间的串行通信原理,用ubantu完成温度监测系统的软件设计与实现,为用户提供一个友好的人机界面,对监测系统进行控制并显示采集后的数据。本系统还通过多线程实现了多个客户端与服务器的通信。 关键词:S5PV210;嵌入式Linux操作系统;DS18B20;网络编程

Abstract Temperature is a very common and very important parameter, in daily life, industrial and agricultural production and scientific research fields have a wide range of applications. Therefore, it is very important to develop a system that can accurately measure and record the value of this parameter. The temperature monitoring system of base on the ARM is use of embedded Linux as the operating system for the processor to S5PV210 development board designed for an embedded temperature monitoring system. Based on the analysis of the basic working principle based on the Linux device drivers discussed development often encounter interrupt handling, congestion handling, I / O ports, and on this basis to achieve the embedded processor based on open S5PV210 reading, writing, characters off the external RAM device driver and network drives. Combined with precision temperature sensor DS18B20, to achieve the correct temperature acquisition, and upload the data via Ethernet to a PC client. At first,the paper introduces the characteristics of various devices in a communication network, the bus structure and transmission technology, and according to the principle of serial communication between SCM and PC, with ubantu complete temperature monitoring system software design and implementation, to provide users with a friendly man-machine interface, the monitoring system to control and display the data after collection. The system also enables communication via a plurality of multi-threaded client and the server. Key words:S5PV210; embedded Linux operating system; DS18B20; Network programming

嵌入式系统设计课设报告分析解析

福州大学 《嵌入式系统设计课设》 报告书 题目:基于28027的虚拟系统 姓名: 学号: 学院:电气工程与自动化学院 专业:电气工程与自动化 年级: 起讫日期: 指导教师:

目录 1、课程设计目的 (1) 2、课程设计题目和实现目标 (1) 3、设计方案 (1) 4、程序流程图 (1) 5、程序代码 (1) 6、调试总结 (1) 7、设计心得体会 (1) 8、参考文献 (1)

1、课程设计目的 《嵌入式系统设计课设》是与《嵌入式系统设计》课程相配套的实践教学环节。《嵌入式系统设计》是一门实践性很强的专业基础课,通过课程设计,达到进一步理解嵌入式芯片的硬件、软件和综合应用方面的知识,培养实践能力和综合应用能力,开拓学习积极性、主动性,学会灵活运用已经学过的知识,并能不断接受新的知识。培养大胆发明创造的设计理念,为今后就业打下良好的基础。 通过课程设计,掌握以下知识和技能: 1.嵌入式应用系统的总体方案的设计; 2.嵌入式应用系统的硬件设计; 3.嵌入式应用系统的软件程序设计; 4.嵌入式开发系统的应用和调试能力 2、课程设计题目和实现目标 课程设计题目:基于28027的虚拟系统 任务要求: A、利用28027的片上温度传感器,检测当前温度; B、通过PWM过零中断作为温度检测A/D的触发,在PWM中断时 完成温度采样和下一周期PWM占空比的修正;PWM频率为1K; C、利用按键作为温度给定;温度给定变化从10度到40度。 D、当检测温度超过给定时,PWM占空比增减小(减小幅度自己设 定);当检测温度小于给定时,PWM占空比增大(增大幅度自己 设定); E、把PWM输出接到捕获口,利用捕获口测量当前PWM的占空比; F、把E测量的PWM占空比通过串口通信发送给上位机; 3、设计方案-----介绍系统实现方案和系统原理图 ①系统实现方案: 任务A:利用ADC模块通道A5获取当前环境温度。 任务B:PWM过零触发ADC模块,在PWM中断服务函数中,将当前环境温度和按键设定温度进行比较,并按照任务D的要求修订PWM占空比。

嵌入式系统原理及应用课程设计

. 嵌入式系统原理及应用课程设计报告 题目:电子时钟的设计与实现 班级:文专电0931 姓名:杨阳 学号:200990607145 试验台号:10 指导老师:邱秀芹 程序成绩: 报告成绩: 总成绩:优良中及格不及格 2012年2月25日

一.课程设计目的 通过该课程设计将嵌入式系统原理及应用课程中所学的处理器和接口等技术应用于实际设计中。通过中断、PWM定时器、串口、SIO、GPIO等技术在实验平台上进行综合设计,在理论和实验的基础上进一步提高综合设计能力。 二. 课程设计内容及功能要求 1. 通过一个PWM定时计数器,采用定时中断的功能,设计能够在LED上进行时分秒显示的时钟; 2. 通过键盘实现对钟的功能; 3. 实现闹钟的功能,闹钟的时间由键盘输入进行设定; 4. 将时钟在超级终端上显示;时间的设定可以通过超级终端实现; 三.功能实现 1.总体功能框图

2.详细设计:(将所设计的各部分的功能程序框图及相关程序代码进行详细的描述) ①. #include"uhal.h" #include"myuart.h" #include"KeyBoard.h" #include"Timer.h" #include"Isr.h" #include"44b.h" #include "Zlg7289.h" #include "def.h" #include "lcd320.h" int Timer3INTCount=0; int hour = 0 ; int minute = 0 ; #pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting int main(void) { int clock_h = 23 ; int clock_m = 59 ; int clock_s = 0 ; int key ; int val=0; ARMTargetInit(); //开发版初始化 Zlg7289_Reset(); Init_Timer3(100,16,40000,20000); INTS_OFF();//Disable interrupt in PSR SetISR_Interrupt(INT_TIMER3_OFFSET, Timer3_ISR,0); Open_INT_GLOBAL(); Open_INT(BIT_TIMER3); INTS_ON();//Enable interrupt in PSR Start_Timer3();

嵌入式系统课程设计报告

湖北民族学院 信息工程学院 课程设计报告书 题目 :基于A RM的数字式万年历 课程:嵌入式系统课程设计 专业:电子信息科学与技术 班级: 03114411 学号: 031441119 学生姓名:田紫龙 指导教师:易金桥 2017年6 月20 日

信息工程学院课程设计任务书 学号031441119学生姓名田紫龙专业(班级)0314411 设计题目基于 ARM 的数字式万年历 1.能测量温度并且实时显示; 2.具有时间显示功能,能够显示年月日,时分秒,并且可以手动调节时间。 设 3. 具有 12 小时制和 24 小时制切换功能。 计 技 术 参 数 对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集 选用 DS18B20芯片,万年历采用直观的数字显示,数据显示采用1602 液晶显 示模块,可以在LCD1602 上同时显示年、月、日、周日、时、分、秒,还具有 设 时间校准整点灯光提醒等功能。制作仿真和实物。 计 要 求 [1]苏平 . 单片机的原理与接口技术 [M]. 北京 : 电子工业出版社, 2006,1-113. [2]王忠民 . 微型计算机原理 [M]. 西安 : 西安科技大学出版社, 2003,15-55. [3]左金生 . 电子与模拟电子技术 [M]. 北京 : 电子工业出版社, 2004,105-131. [4]新编单片机原理与应用(第二版). 西安电子科技大学出版社, 2007.2 [5]张萌 . 单片机应用系统开发综合实例 [M]. 北京:清华大学出版社, 2007.7 [6] 朱思荣. 51 单片机实现公历与农历、星期的转换[Z].当当电子网 [7]李广弟 . 单片机原理及应用 [M] 北京航空航天大学出版社 ,2004 年 参[8] 王越明 . 电子万年历的设计 [J]. 黑龙江科技信息, 2004 年 考 资 料 2017年 6 月 20 日

嵌入式MINIQQ程序设计项目开发总结报告

编号: [嵌入式MiniQQ程序设计] 项目开发总结报告(GB8567——88) [公司名称]北京邮电大学 [作者] [日期]2015/05/18

目录 1.引言 (1) 1.1.编写目的 (1) 1.3.参考资料 (1) 2.实际开发结果 (1) 2.1.产品 (1) 2.2.基本流程 (2) 2.3.进度 (2) 2.4.费用 (2) 开发工作评价 (2) 2.5.对生产效率的评价 (3) 2.6.对技术方法的评价 (3) 2.7.出错原因的分析 (3) 3.经验与教训 (3)

1.引言 1.1.编写目的 为了便于用户使用我们的MiniQQ,现做出一个一个说明性文档,旨在对本组设计思想,实现的功能性能的分析,输入项、输出项,流程逻辑,接口,存储分配,关键程序代码,限制条件与测试计划等做一个的详细说明。这项详细的说明书也是以后编程人员修改本代码的主要线索,为非本组成员修改和提高该程序的功能和性能有效地提供了便利的信息。1.2.定义 本文件中用到的专门术语包括窗口,控件,套接字 1.3.参考资料 [1] 《嵌入式实验指导书1~6》 [2] 《嵌入式Linux系统开发技术详解--基于ARM》,孙纪坤,人民邮电出版社. [3] 《嵌入式GUI开发设计—基于MiniGUI》ISBN 978-7-121-08606-9 2009.5 电子工业出版社 [4] 《ARM体系结构与编程》,杜春雷,清华大学出版社 [5] 《嵌入式Linux程序设计案例与实验教程》俞辉主编,ISBN 978-7-111-26327-2 2009.3 机械工业出版社 2.实际开发结果 2.1.产品 具有登录和聊天功能的miniQQ

arm课程设计报告

课程设计报告 (嵌入式接口技术) 学院:电气工程与自动化学院 题目:基于ARM的多路数据采集系统设计 专业班级:自动化113班 学号:35号 学生姓名:翁志荣 指导老师:温如春 2013 年12月19日

摘要 数据采集系统用于将模拟信号转换为计算机可以识别的数字信号.该系统目的是便于对某些物理量进行监视.数据采集系统的好坏取决于他的精度和速度.设计时,应在保证精度的情况下尽可能的提高速度以满足实时采样、实时处理、实时控制的要求.在科学研究中应用该系统可以获得大量动态;是研究瞬间物理过程的重要手段;亦是获取科学奥秘的重要手段之一. 本次设计是基于ARM的多路数据采集系统,主控器能够对模拟信号产生的各路数据,通过数据采集系统进行采集并在主控器的程控下显示。 关键字:数据采集;模数转换;ARM;实时采样。 Abstract Data acquisition system for digital signal to analog signal conversion can be identified by computer. The system is aimed at facilitating monitoring of some physical quantity. Data acquisition system is good or bad depends on the precision and speed. When the design, should be in the case of ensuring accuracy as much as possible to meet the high speed real-time sampling, real-time processing, the requirement of real time control. The application of this system in scientific research can obtain a large number of dynamic; is an important means to study the instantaneous physical process; and it is also one of the important means of access to the mysteries of Science. Keyword s: data acquisition; ARM; real-time sampling analog-to-digital conversion.

嵌入式课程设计

嵌入式课程设计报告 学院信息电子技术 专业电子信息工程 班级13级 学籍号 姓名 指导教师 2016年0月00日

基于ARM9的无线智能家居控制系统 1.引言 当网络席卷整个社会,带来经济飞速发展的同时,也给人们的生活带来无限的惊奇。不断更新的生活方式,使得越来越多的人追求对生活的舒适度和享受度。智能家居作为新生力量呼之欲出,自然地走进了我们的生活,随之,引领新一代的数字家庭生活。 所谓“智能家居”(Smart Home),又称智能住宅。它利用先进的计算机嵌入式系统、通信技术、现代传感技术和网络技术,将家庭中的各种设备(如照明系统、安防系统、信息家电)通过家庭内部无线网络连接到一起。一方面,智能家居将使得使用它的用户能够更加方便、快捷和轻松的管理自己的家电设备,例如,用户可以通过平板电脑、智能手机和其他控制终端设备对家用设备进行远程操控和状态的实时监控,进行室内场景配置以及形成多个家电设备的联动功能等等;另一方面,智能家居内的各种设备不需要通过用户的操控就可以实现相互间的通讯,从而根据相关家电设备的不同的状态互动运行,为用户提供高效、便利、舒适与安全的智能家居生活。 2.系统设计 (1)硬件电路设计 文中提出的基于ARM9的无线智能家居控制系统主要包括ARM9核心控制模块,无线通信模块、LCD触摸屏模块和家居电器,另外还有传感检测,语音报警和电源等模块。系统总体结构模型图如图1所示。 图1系统总体结构模型图 其中ARM是整个系统的控制核心,通过GPRS和ZigBee无线通信网络收

发控制指令实现对家居电器进行综合监控,同时提供防火墙的功能,阻止外界对家庭内部设备的非法访问和攻击。 无线通信模块分为本地和远程两部分,本地通信主要通过新型的ZigBee无线通信技术实现系统与家居电器的通信,达到对其控制;远程通信是利用手机通过GPRS通信网络或利用计算机通过互联网实现人与控制系统的通信,进而达到对家居电器的远程监控。采用无线通信技术省去了布线使家居布局更加灵活,远程控制使家居电器工作更加贴近人们的工作和生活要求。 智能家居控制系统的具体功能包括:家居电器的综合监控、室内环境信息采集、自动报警、本地控制、远程控制、安全防盗等。 基本电路组成 1)主控芯片S3C2440A 本系统采用的是Samsung公司推出的16/32位RISC微处理器S3C2440A,它具有0.13μm的CMOS标准宏单元和存储器单元,它的杰出的之处是其处理器核心,该核心是由Advanced RISC Machines有限公司设计的ARM920T内核,ARM920T内核实现了MMU,AMBA BUS和Harvard高速缓冲体系结构,这一体系结构具有独立的16KB指令Cache和16KB数据Cache。 2)电源电路 电源是整个智能家居控制系统的能量之源,电源的稳定供电为系统得以安全、正确的运行提供了保障,本系统共需要两种电压5V和3.3V。为了提高终端设备内部的安全性并进一步减低系统的设计成本,本系统选用的市面上的12V、2A的开关稳压电源作为系统的基本供电输入,首先经过LM2576转换成5V,并经过滤波和稳压电路输出稳定的5V电压,为系统上需要5V电源的电路供电。其次,5V输出再经过LM1117D转换成3.3V,经过一定的滤波处理后为系统需要3.3V供电的电路供电,如图2所示。 图2 3.3V电压转换输出电路 3)复位电路的设计

广东海洋大学嵌入式系统课程设计

《嵌入式系统》设计报告学生姓名 Adao (学号) 所在学院数学与计算机学院 所在班级计科1141 指导教师 成绩

目录 1.课程设计目的 (2) 2.系统分析与设计 (2) 3.系统结构图 (2) 4.实现过程 (3) 5.实验效果 (5) 6.代码分析 (6) 7.系统测试出现的问题和解决的方案 (7) 8.系统优缺点 (7) 9.心得体会 (8) 参考文献 (8)

双按键控制流水灯系统开发 1.课程设计目的: 本次课程设计目的主要是对之前所学习的STM32的某个实验进行更深入的学习与了解,弄懂引脚,端口等相关的配置,对实验原理和具体实现有一定的理解,能做到自己通过原理图和使用库函数等把功能实现出来。我选择的是EXTI-外部中断实验并加以整合,具有一定实用功能的系统,可以对外提供服务。 2.系统分析与设计: 本课程设计所定义的系统主要功能为,通过两个按键KEY1(PA0)、KEY2(PC13)可以实现对流水灯进行同步控制,即一个开关控制产生的灯的状态可以被另一个开关去改变,按键控制需要对两个按键的端口,引脚等进行相关配置,并在两个引脚的中断服务程序中完成对流水灯状态同步控制的操作。本还想通过使用SysTick(系统滴答定时器)功能对流水灯进行精确定时,但由于时间比较匆促,最终没有实现。 3.系统结构图: 图3-1

4.实现过程: 1、GPIO的输入模式有上拉输入模式、下拉输入模式、浮空输入模式和模拟输入模式。GPIO 中的每个引脚可以通过配置端口配置寄存器来配置它的模式。每个引脚的模式由寄存器的4个位控制。 上拉/下拉输入模式:1000 浮空输入模式:0100 模拟输入模式:0000 2、STM32的所有GPIO都可以用作外部中断源的输入端。STM32的中断由中断控制器NVIC 处理。STM32的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表面它的优先级别越高。抢占属性会出现嵌套中断。 3、编写NVIC_Configuration()函数配置NVIC控制器的函数。 static void NVIC_Configuration(uint8_t IRQ) { NVIC_InitTypeDef NVIC_InitStructure; //将NVIC中断优先级分组设置为第1组 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); /* 配置中断源 */ NVIC_InitStructure.NVIC_IRQChannel = IRQ;//设置中断线 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//设置抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//设置响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //对NVIC中断控制器进行初始化 } 4、调用GPIO_EXTILineConfig()函数把GPIOA、Pin0和GDIOC、PIN13设置为EXTI输入线。 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13); 5、填写EXTI的初始化结构体,然后调用EXTI_Init()把EXTI初始化结构体的参数写入寄存器。编写EXTI_PA0_Config()函数完成各种需要的初始化。 void EXTI_Pxy_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; /* config the extiline clock and AFIO clock */

嵌入式操作系统课程设计报告

嵌入式系统设计报告 系(院):计算机科学学院 专业班级:计科11201 姓名:微尘 学号: 201203300 指导教师:王剑 设计时间:2015.6.22 - 2015.7.3 设计地点:4教硬件实验室

目录 一、课程设计的目的 (2) 1.1设计目的 (2) 1.2任务介绍 (2) 二、实验及开发环境 (3) 2.1 实验室环境 (3) 2.2 个人计算机课后开发环境 (3) 三、总体设计 (3) 四、详细设计 (4) 4.1 Windows CE系统编译与安装 (4) 4.2 编程驱动LED和数码管显示正确的信息 (7) 4.3 编程驱动电机运转 (8) 4.4 个人设计小程序 (10) 五、课程设计小结 (17) 5.1 设计小结 (17)

一、课程设计的目的 1.1设计目的 本次课程设计的目的是了解嵌入式系统、嵌入式操作系统,掌握基于嵌入式系统的应用开发基本知识。了解嵌入式操作系统Windows CE的特点,Windows CE的主要模块及各自的功能。掌握嵌入式操作系统Windows CE 的配置、编译、移植方法。了解Visual Studio .NET开发环境,掌握基于Windows CE平台的应用程序设计方法。 1.2任务介绍 以下任务需基于实验室的XSBase270开发平台完成 1.嵌入式操作系统Windows CE平台的搭建 使用Platform Builder编译出自己的Windows CE 5.0操作系统,然后根据实验提供的EBOOT引导程序将编译出的Windows CE 5.0系统安装(刷入)到实验平台。 2.IO接口控制-七段数码管的LED显示控制程序 了解Windows CE下I/O访问机制的原理。了解LED和七段数码管的显示和控制原理。掌握Windows CE下访问硬件I/O寄存器的方法。 3.IO接口控制-点击控制设计 了解Window CE下I/O访问机制和原理。掌握Windows CE下访问硬件I/O寄存器的方法,以及使用Visual Studio .NET对硬件设备编程的一般方法。 4.编写实用小程序并在指定的Windows CE平台上运行调试(选做) 这一部分我选择的是在Windows CE平台上使用Visual Studio 2005基于.NET利用C#语言编写一个简易计算器小程序。从而体验对嵌入式设备编程与普通PC编程的区别。

嵌入式系统设计课程设计

电气与电子信息工程学院 嵌入式系统设计课程设计 设计题目:基于AT89S52单片机的游戏机嵌入式系统设计与制作专业班级:电子信息工程2008级(2)班 学号:200840210212 姓名:童俊 指导教师:邓彬伟李玉平 设计时间:2011/11/14~2011/12/2 设计地点:K2自动化综合实验室

嵌入式系统设计课程设计成绩评定表 姓名童俊学号200840210212 专业班级电子信息工程2008级(2)班 课程设计题目:基于AT89S52单片机的游戏机嵌入式系统设计与制作 课程设计答辩或质疑记录: 1、什么叫嵌入式系统? 答:以应用为中心,以计算机技术为基础,软硬件可剪裁适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 2.所做的电路中有哪几个任务? 答:总共六个,分别是:功能选择,贪吃蛇游戏,时间温度显示,PS2键盘控制,温度采集,时间采集。 3.贪吃蛇这个游戏是怎么实现的? 答:在这个游戏中主要用到两个长度为二的数组控制蛇的头部坐标和尾部坐标,蛇的初始化长度为3,通过定时器没隔一定的时间给蛇一个步进信号,在蛇移动的过程中和转弯的过程中需判断前面是否有食物,是否碰到自己身体。食物的坐标也是通过定时器的高八位和第八位的数字余上30所的。 成绩评定依据: 实物制作(40%): 课程设计考勤情况(20%): 课程设计答辩情况(20%): 完成设计任务及报告规范性(20%): 最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 2010年12 月20 日

课程设计任务书 2011 ~2012 学年第 1 学期 学生姓名:林忠航专业班级: 08电信本1、2 指导教师:邓彬伟、李玉平工作部门:电信教研室 一、课程设计题目 嵌入式系统设计课程设计 二、课程设计目的 为了提高嵌入式系统设计与实际的应用能力,开始为期三周的嵌入式系统设计课程设计。通过实训使学生在巩固所学单片机知识的基础之进一步把其与μC/OS-II操作系统的移植结合起来,增强学生对所学知识的实际应用能力和以及与当前专业的前沿知识结合,达到对μC/OS-II操作系统的学习和理解,为以后从事嵌入式工作的研究和开发打好基础。 三、课程设计内容 设计基于51单片机的嵌入式系统,把μC/OS-II操作系统移植到51单片机上,能完成基本的输入和输出,输入采用4*4的键盘,输出采用1602液晶。再此基础之上,每个同学根据自己的特长扩展应用系统,具体可参考以下五种扩展方案的实现。 1、设计的游戏机,在游戏机工作时有背景音乐放出。 2、设计的是电子琴以及1602液晶显示。 3、设计的流水灯、蜂鸣器、闪烁灯任务。, 4、设计的流水灯和电子书功能。 5、(1)所有灯灭,(2)1602显示 93)LED灯闪烁,显示字符。 四、进度安排 序号设计内容所用时间 1 布置任务,学习μC/OS-II操作系统5天 2 开发μC/OS-II操作系统的移植代码3天 3 制作基于51单片机的硬件系统2天 4 软硬件集成和调试2天 5 答辩、撰写设计报告书3天 合计15天 五、基本要求 1、设计基于51单片机的输入和输出电路。 2、用4×4的键盘作为输入设备。 3、用LED或LCD进行显示。

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