基于s3c2410的智能风扇控制系统的设计

更新时间:2024-06-28 13:37:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

科目名称 嵌入式系统开发技术

智能风扇控制系统设计

专业:计算机科学与技术

班级:2007级4班

学号:20074589 姓名:孟祥伟

2010年 10月 19日

1、现状分析(不少于800字)

针对所设计内容,查阅目前有哪些解决方案。分析现有解决方案的特点,总结优缺点,并说明题目设计的必要性及意义。

1.1设计的必要性和意义

风扇作为一种老式家电,电风扇具有价格便宜、摆放方便、体积轻巧等特点。虽然在调节温度方面没有空调高效,但由于大部分家庭消费水平的限制,电风扇作为一个成熟的家电行业的一员,尤其在中小城市,以及乡村将来一段时间内仍然会占有市场的大部分份额。 面临庞大的市场需要的同时,也要提高电风扇的市场竞争力。使之在技术含量上有所提高,应使风扇不仅功能多样,操作简便,而且更加安全可靠。

为此,在现有市场上多功能电风扇的基础上,提出了一种新型的智能电风扇,该风扇功能更多,添加了很多人性化的设计,如智能温度控制,转速和功率的职能自控,安全保护,智能照明等功能,使电风扇更加人性化,相信其丰富的功能,人性化的设计将会大大提高电风扇的市场竞争力。

1.2当前设计方案的分析

目前智能风扇的设计主要基于单片机的自动控制来实现的,单片机作为智能电风扇控制系统的测量和控制核心,采用霍尔集成芯片测量电风扇的转速,通过主从单片机之间的串行通信来完成电风扇转速数据处理及转速控制,采用移相触发方式控制可控硅功率。用8279扩展键盘及双行LCD显示来实现人机交互,采用红外发射与接受装置来完成遥控功能。 采用单片机虽然实现了转速的自动控制,但再智能程度上还是达不到理想的效果,其功能的可扩充和可扩展性达不到理想要求。往往只能实现简单的交互和控制,没法体现出真正的智能系统强交互、界面友好、实时控制的优点。例如上述的设计方案,只能实现简单的风扇转速和功率的控制,在简单程序的控制下可以实现输出自然风和睡眠风等功能,但没办法做到依据当前室内温度的自控制和实时控制。另外,单片机的设计现对于arm的嵌入式系统的设计来说要繁琐的多,处理器的相当多的功能都需要外围设备来实现,现在随着嵌入式处理器芯片价格的大幅度降低,集成各种功能的嵌入式芯片能更方便、高效的完成设计要求。

2、方案设计(不少于600字)

在现状分析的基础上,给出宏观设计思路、设计方法。可结合流程图、框图进行表述。

2.2功能分析

本设计主要目标是使普通的电风扇的功能更加强大,使操作简单化、智能化,主要实现以下几个部分的功能:

温度智控功能:风扇可以感知环境的温度,以调节风扇的转速,达到更好的工作效果。用户可以选择这种智能调速方式,也可以选择手动设定方式来控制转速。当选择手动设定方式时,该功能不发挥作用。

多种安全保护功能:当风扇的倾斜角度大于一定程度时,电机将停止工作,以保证安全;当风扇电机温度超过允许温度时,为保证安全使用,电机同样会停止工作。

智能照明功能:在晚间,当用户接近风扇时,风扇能够探测到人体的接近,从而启动微光照明,方便用户操作并避免用户和风扇或其他物体发生不必要的碰撞。

多级调速功能:提供更多的风力级别和风型,提高用户的舒适度。

定时工作功能:该定时功能可以让用户自己定制风扇工作时间的长短,以提供更人性化的服务。

液晶显示功能:使用液晶屏显示当前室温,风扇的转速,风扇的工作模式,当前时间,风扇工作时间等参数,美观大方。

红外遥控功能:提供远距离非接触式的风扇控制操作。

2.3总体设计

智能电风扇主要由 MCU,电机驱动,温度检测,人机接口等主要部分组成:MCU 使基于ARM9架构的嵌入式芯片S3C2410。

温度检测模块使用 DS18B20,主要用来监测室温和电机温度。 ? 人机接口包括红外遥控,键盘模块和 LCD 显示模块,实现电风扇与用户的信 息交互。

3、具体设计(不少于2000字)

根据设计方案,写出详细设计过程。 硬件详细设计

内容包括:详细原理图,并进行说明。

②软件详细设计

内容包括:理论分析,程序流程图,要写出详细代码并加注释。 3.1 硬件详细设计

3.1.1 温度采集单元的电路设计

单线数字温度传感器 DS18B20 采用一线总线接口,大大节省了系统的 I/O 资源。

图 11 温度传感器 DS18B20 电路

电机驱动模块PWM的电路

图2.9.3 直流电动机PWM 电路举例

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

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

串行端口硬件电路设计

异步串行 I /O 方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。数 据的各不同位可以分时使用同一传输通道,因此串行I/O 可以减少信号连线,最少用一对 线即可进行。接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字 符。为了恢复发送的信息,双方必须协调工作。在微型计算机中大量使用异步串行I/O 方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。 红外设备硬件电路图

图 红外功能框图

s3c2410x 的UART 支持红外的收发,只要将ULCONn 寄存器的红外模式位设置为1 即可,其 他相关寄存器的设置同串口实验是相同的,在红外数据传输中,对串口发送的数据采用脉 冲进行调制的方式。在IrDA 标准1.0 中,脉冲的宽度为3/16 的BIT 占空比或者为固定的 1.63μs 的脉冲宽度。IrDA1.0 简称为SIR,SIR 的最高通信速率是115.2Kbps。

图7-5 LCD控制器逻辑框图

S3C2410X中具有内置的LCD控制器,它具有将显示缓存(在系统存储器中)中的LCD图象数据传输到外部LCD驱动电路的逻辑功能。

S3C2410X中内置的LCD控制器可支持灰度LCD和彩色LCD。在灰度LCD上,使用基于时间的抖动算法(time-based dithering algorithm)和FRC (Frame Rate Control)方法,可以支持单色、4级灰度和16级灰度模式的灰度LCD。 在彩色LCD上,可以支持256级彩色,使用STN LCD可以支持4096级彩色。对于不同尺寸的LCD,具有不同数量的垂直和水平象素、数据接口的数据宽度、接口时间及刷新率,而LCD控制器可以进行编程控制相应的寄存器值,以适应不同的LCD显示板。

3.2 软件详细设计

3.2.1 系统的搭建和移植

虽然实验室的arm s3c2410开发箱已经搭建好开发环境,可是这一部还是必须得熟悉的,首先是Boot—Loader的移植,然后再进行LINUX 内核移植,进而烧写Linux根文件系统,搭建好操作系统之后,此外,还得安装与建立QT 桌面运行环境,用于lcd显示人机交互的界面。这些步骤,在前边的试验中都已经搭建好,此处不再详述搭建步骤。

在宿主机的linux下需要搭建Linux交叉编译环境,用于应用程序的开发和编译。搭建Qt Designer以及Qt/Embedded 交叉编译的环境,用于人机界面的qt界面开发。

3.2.2设备驱动程序的加载

将硬件系统设计好之后,必须开发、加载各种设备的驱动程序,包括lcd驱动,键盘驱动,直流电机驱动,红外设备驱动。这些驱动设备开发商都已经提供,只需要insmod到目标机上,即可编程操作这些设备。 3.23系统应用程序的编写 温度测控程序设计

传感器读数据的代码如下。 unsigned char read()

{unsigned char i,k,indata; indata=O:

for(i=1;i<9;i++) DQ=O;

DQ=1; nop(); k=DQ;

if(k==1)

i indata=indatalox01; } else

{ indata=indataIOx00;} delay(5); DQ=1;

indam=ww(indata,1);} return(indata); }

电机模块程序设计:

开启设备时,配置IO 口为定时器工作方式:({ GPBCON &=~ 0xf; GPBCON |= 0xa; })

配置定时器的各控制寄存器:

({ TCFG0 &= ~(0x00ff0000); \\ TCFG0 |= (DCM_TCFG0); \\ TCFG1 &= ~(0xf); \\

TCNTB0 = DCM_TCNTB0; /* less than 10ms */ \\ TCMPB0 = DCM_TCNTB0/2; \\ TCON &=~(0xf); \\ TCON |= (0x2); \\ TCON &=~(0xf); TCON |= (0x19); })

在s3c2410_dcm_ioctl 中提供调速功能接口:case DCM_IOCTRL_SETPWM: return dcm_setpwm((int)arg);

应用程序dcm_main.c 中调用:

ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor));

串口主要实现代码: 打开串口

int fd;

fd = open( \以读写方式打开串口*/ if (-1 == fd){ /* 不能打开串口一*/ perror(\提示错误!\}

串口设置 struct termio

{

unsigned short c_iflag; /* 输入模式标志 */ unsigned short c_oflag; /* 输出模式标志 */ unsigned short c_cflag; /* 控制模式标志 */ unsigned short c_lflag; /* local mode flags */ unsigned char c_line; /* line discipline */

unsigned char c_cc[NCC]; /* control characters */ };

读写串口 发送数据:

nByte = write(fd, buffer ,Length) 读取串口数据:

int readByte = read(fd, buff, Len);

人机接口程序设计:

本部分功能主要便于用户使用电风扇,使用户只要简单的操作,就能实现需要的全部功 能,主要有以下几个方面组成:

键盘操作模块

在电风扇底座部分也有一个 3×3 小键盘,按键功能分配如下:

可以进行风的强度,类型,定时等系统设置。与之相对应的是键盘扫描处理模块。

转换扫描码的函数

static int Ps2_Kbd_translate(unsigned char scancode, unsigned char *keycode, char raw_mode) {

static int prev_scancode = 0;

DPRINTK(\。。。。。。}

4、系统设计总结(不少于400字)

本文进行嵌入式系统的开发,采用了ARM+Linux嵌入式开发系统平台解决方案,将通用Linux操作系统成功移植到ARM微处理器上,并辅以Linux内核,对Linux实时性进行了改造,真诈发挥了嵌入式系统“软硬件可裁剪”的优势。按照结构化、模块化的方式进行系统软硬件的设计、调试和最终实现,系统具备嵌入式控制、高迷数据采集、实时处理,在测量与控制领域具有广阔的应用前景。

一体化多功能智能风扇的设计是基于节能、智能化、多功能等理念,提出一种基于嵌入式控制器的多功能智能化设计。系统除具有传统风扇的功能外,同时具有无人自动关机功能、环境温度检测功能、便携功能、实时时钟的设置和显示功能以及定时工作功能,融合了多种知识与技术。产品所用元器件多为普通器件,价格低廉,少数特殊器件价格也不高,这样整个传感器的成本是比较低的,焊接工艺也没有特殊的要求,易于生产。

5、系统设计体会及建议(不少于200字)

总之通过这次艰难得课程设计我还是收获不少,首先通过这次课程设计使我了解了如何从提出一个课题到完成得全过程。其次,通过这一次得课程设计,是我对ARM嵌入式系统有了更深得了解,同时我们感觉到作为一个大学生,应当注重培养多动手的习惯。就比如在这次设计中得程序部分,如果以前没有任何动手编程得经念,那将会是无从下手。因此,经过这次课程设计之后我将在以后的学习生活中注重培养动手能力,当然,由于本人选择了考研,因此,在大学期间在深入了解可能不太可能,但是这个精神还要具有的,在以后得生活和学习中这一点很重要。

(稿件首页打印,其余内容手写,必须独立完成,抄袭、雷同者全部按0分处理)

本文来源:https://www.bwwdw.com/article/i3p3.html

Top