首页 > 范文大全 > 正文

基于3C44B0X和μC/O-Ⅱ智能家居嵌入式系统设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于3C44B0X和μC/O-Ⅱ智能家居嵌入式系统设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:为了提高家居的智能化水平,给出一种基于3c44b0x芯片和蓝牙通信技术的智能家居控制器的硬件设计和软件设计。该系统主要由存储器系统、以太网接口、蓝牙通信模块、温度检测和实时时钟等组成。介绍源码开放的实时多任务的μC/o-Ⅱ操作系统在ARM微处理器3C44BOX上的移植方法,并简要说明移植的主要步骤。

关键词:μC/O-Ⅱ;3C44B0X;智能家居嵌入式系统

Embedded ystem Design of Intelligent ome Based on 3C44B0X & μC/O-Ⅱ

LIU Gang

(Wenzhou Vocational College of cience & echnology,Wenzhou,32006,China)オ

Abstract:In order to improve the intelligence level of home,offering one hardware and software design for an intelligent home controller based on the 3C44BOX CMO chip and Bluetooth communication technologyIt is composed of memory systems,Ethernet,Bluetooth communication,temperature detecting and real-time testing systemhe methods to transplant the open-resourced,real-time and multitask μC/O-Ⅱ operating system on the ARM microprocessor and 3C44BOX are introduced,also the main steps for it are explained in brief

Keywords:μC/O-Ⅱ;3C44B0X;intelligent home;embedded systemオ

随着社会经济的飞速发展及计算机控制技术等科技的进步,人们对自身的生活和工作环境有了更高的要求,由此对家居智能化控制系统的要求也越来越紧迫。设计家居智能化控制系统,对促进住宅现代化建设具有重要意义。家居智能化控制系统就是指利用先进的计算机技术、网络通信技术、综合布线技术,将与家居生活相关的各种子系统有机结合,从而进行统筹管理,使家居生活更加舒适、安全、有效。

近年来,嵌入式系统设备全面渗透到人们日常生活的各个领域,本文针对智能家居嵌入式系统的软硬件设计需求,以3C44B0X为处理器进行智能家居系统的硬件设计,以实现μC/O-Ⅱ在3C44B0X上的移植。

1 软硬件选择

目前主要的嵌入式处理器类型有386EX,C-400,Power PC,MIP,ARM/trong,ARM系列等,其中ARM以其小体积、低功耗、低成本、高性能成为嵌入式处理器首选。3C44B0X是amsung公司推出的16/32位RIC处理器,基于ARM7DMI内核,提供3级流水线结构。它一方面具有ARM处理器低功耗、高性能的特点,同时又具有非常丰富的片上资源。其特点如下:

(1)内置锁相环(PLL),系统主频最高达66 Mz;

(2)8路l0位ADC,I2C,I2总线控制器,6个PWM定时器;

(3)4种工作模式,正常、慢速、闲置和停止,可以根据需要切换系统工作方式,使系统功耗降低到最低限度;(4)内置彩色LCD控制器(最大支持26色的DN),71个通用可编程I/O口和实时时钟(RC)。

由此可以看出,3C44BOX具有高性能、低功耗、接口资源丰富的特点。这些特点可以较好地满足家居智能控制系统的设计需要。作为家居智能控制系统,除了具有局域网接口、PN接口、R 48接口、蓝牙接口外,还应提供音频视频接口、UB接口、报警传感器接口等。这些接口可以实现音频视频自动切换、多台PC同时上网、与各PC机结合完成家庭设备管理等功能。

μC/O-Ⅱ是一种源码公开的实时嵌入式操作系统。它完全是占先式的实时内核,是基于优先级的,即总是让就绪态中优先级最高的任务先运行,因此实时性比非占先式的内核要好。它包含了实时内核、任务管理、时间管理、任务问通信同步(信号量、邮箱、消息队列)和内存管理等功能;它的绝大部分代码用C语言编写,可移植性强。目前,μC/O-Ⅱ绝大多数可以在8位、l6位、32位以至64位微处理器、微控制器、数字信号处理器(DP)上运行。

2 智能家居硬件设计

在选定了处理器之后,电路就可按要求进行设计。其硬件框图如图1所示,主要包括:

21 存储器系统

其中静态存储器由FLA组成,用于存储智能家居中的嵌入式操作系统、P服务器、家庭网络服务器以及支持各种服务所需的文件系统。动态存储器采用DRAM,以提高系统的允许速度和采用操作系统来保证系统的稳定性,整个智能家居系统软件平台存储在FLA中,在系统启动时,将从FLA中运行Bootloader,解压缩操作系统,并将其搬移到DRAM中,完成搬移之后,所有程序从DRAM中运行。其中,FLA选用公司生产的39VF160芯片。39VF160采用CMO工艺设计,支持1 M的地址空间,20条地址总线,16条数据总线。DRAM选用ynix公司生产的Y7V641620芯片。Y7V641620存储容量为4组×16 M(8 MB),由于采用行/列地址锁存机制,由行列地址共同构成20条地址线,完成1 M的寻址范围。

22 输入/输出系统

包含LCD液晶显示、键盘以及微型打印机等,可以基本满足测试数据等显示以及人机交互的需要。

23 外部通讯接口

包括R 232串口、以太网接口。R 232接口用于系统同PC机之间的通讯,可以把测试系统保存的数据导出来,本系统采用国际通用的R 232C作为串行接口;以太网接口则可以把整个测试系统连接到互联网上,从而实现该测试系统的远程监控。

24 蓝牙通信模块

在家居控制器上使用蓝牙技术主要是为了给家居控制器的各个功能模块提供无线传输的方式。在家居中央控制器上可以采用蓝牙模块加开放蓝牙协议的方式开发蓝牙功能,综合考虑成本、结构等因素,信息家电可以采用蓝牙模块加单片机的方式实现蓝牙功能。将整个蓝牙核心协议栈移植到单片机中显然不合实际,可以采用这样的开发方案:在蓝牙CI层的基础上,根据信息家电信息传输的实际需求,建立相关协议,利用单片机直接和蓝牙硬件模块交换CI指令,实现信息交互。单片机采集信息家电的相关信息通过蓝牙模块发送出去,蓝牙模块也可以将接收到的命令用CI指令传递给单片机执行。

2 温度、湿度检测和实时时钟实现模块

主要实现对室内环境的监控,便于控制系统采取适当的方式控制室内环境。其中温度采用温度传感器实现,实时时钟采用3C440BX自带的RC模块实现。

3 μC/O-Ⅱ在3C44B0X上的移植

μC/O-Ⅱ在3C44B0X上的移植,需要修改3个与ARM体系相关的文件:O_CPU,O_CPU_CC,O_CPUAM 。在μC/O-Ⅱ的移植过程中,采用AD作为编译器,AD由一套完备的应用程序构成,可用来编写和调试ARM系列的RIC处理器的应用程序,并可通过主机和实时分析工具让使用者对应用程序进行完整的分析,加速实时嵌入式系统的开发和测试。3.1设置O_CPU中与处理器和编译器相关的代码

这部分代码的定义主要包括数据类型的定义、开关中断代码的宏定义、任务切换时执行代码的定义和堆栈增长方向的定义。在3C44B0X中,所有的任务堆栈都是用O_K声明数据类型,用O_ENER_CRIICAL( )和O_EXI_CRIICAL( )实现开关中断,用结构常量O_K_GROW来指定堆栈的生长方式。

32 编写与操作系统相关的函数O_CPU_CC

μC/O-Ⅱ定义了6个函数在该文件中,其中Oasktklnit( )是任务堆栈初始化函数,其他个函数都是ook函数,即OaskCreateook( ),OaskDelook( ),Oaskwook( ),Oasktatook( ),0simeickook( )等接口函数,是系统预留给用户添加功能的,只要声明,可以不包含代码,当用户需要额外扩展功能时,在这个函数中选择加入就可。实际上需要修改的只有Oasktklnit( )函数,该函数用来初始化任务堆栈,使得任务堆栈建立时与发生1次中断后的堆栈结构相同。3C44B0X的堆栈结构如图2所示。在修改Oasktklnit( )函数时应依照该结构进行。

33 编写与处理器相关的函数O_CPUAM

这部分代码是对处理器的寄存器进行操作,必须用汇编语言来编写,包括以下4个子函数:

331 OtanighRdy( )

运行优先级最高的就绪任务,此函数是在O-tart( )多任务启动后,负责从最高优先级任务的CB控制块中获得该任务的堆栈指针P,通过P依次将CPU现场恢复,这时,系统就将控制权交给用户创建的该任务进程,直到该任务堵塞或者被其他更高优先级的任务抢占CPU。该函数仅在多任务启动时被执行一次,之后多任务的调度和切换由以下函数实现。

332 OCtxsw( )

可实现任务级的上下切换,任务级切换是通过WI或者RAP人为制造的中断来实现。IR的向量地址必须指向OCtxw( ),这一中断完成的功能为:保存任务的环境变量(主要是寄存器的值,通过入栈来实现),将当前P存入任务控制块中,载入就绪最高优先级任务的P,恢复就绪态最高优先级任务的环境变量,中断返回,以完成任务级的切换。

333 OIntCtxw( )

中断级的任务切换,在时钟中断IR中(中断服务例程)如果发现有高优先级等待的时钟信号到来,则在中断中退出后并不返回被中断任务,而是直接调度高优先级的任务执行,从而能够尽快地让高优先级任务得到响应,保证系统的实时性能。其原理基本上与任务级的切换相同,但是由于进人中断时已经保存了被中断任务的CPU现场,因此不再进行类似的操作,只需对堆栈指针做相应调整。

334 OicklR( )

OickIR( )是一个周期性函数,为内核提供时钟节拍中断。频率越高、系统负荷越大、其周期的大小[LL]决定了内核所能给应用系统提供的最小时间间隔。一般只限于毫秒级(跟处理器有关),对于要求更加苛刻的任务,需要用户自己建立中断来解决。该函数具体内容:保存寄存器,调用OIntEnter( ),调用Oimeick( ),调用OIntExit( ),恢复寄存器,中断返回。但注意不要在Otaut( )之前调用OickIR( )。

完成以上3个程序的改写,μC/O-Ⅱ就可以在3C44BOX上正确运行。

4 结 语

家居智能控制系统是家庭内外信息交换和家电控制的平台。本文采用AMUNG公司的3C44BOX芯片设计硬件和软件,克服8位单片机处理速度慢、接口资源和存储资源不足的限制。在实验调试过程中,该系统运行状况良好、工作稳定。证明其设计是实用、有效的。但智能家居嵌入式系统是一个比较大的系统,目前只是涉及到其中核心部分,其他部分还需继续探讨。

参 考 文 献

[1]戚继忠,王自强基于ARM7DMI实现CF卡存储的文件系统设计[J]微处理机,2007,28(1):114-11,118

[2]王田苗嵌入式系统设计与实例开发――基于ARM处理器与μC/O-Ⅱ实时操作系统[M]北京:清华大学出版社,2003

[3]李兰英,杨晨基于3C44BOX的智能家居终端控制系统的设计与实现[J]哈尔滨理工大学学报,2007,12(3):87-89,93

[4]宋寅卯,张青波μC/O-Ⅱ在3C44B0X上的移植[J]微计算机信息,200(4):131-132

[]蒋小平,施卫东,郎涛,等基于ARM 的水泵性能测试系统开发[J]中国农村水利水电,2007(10):102-104

[6]Jean JLabrose嵌入式实时操作系统基于μC/O-Ⅱ[M]2版邵贝贝,译北京:北京航空航天大学出版社,2003

[7]俞露基于ARM的嵌入式系统硬件设计[D]杭州:浙江大学,2003

[8]杨连沁基于嵌入式3G44BOX 的家居智能控制系统设计[J]仪器仪表标准化与计量,2007(3):-6

[9]刘卉,刘建辉,李新嵌入式技术推动家居智能化发展[J]中国科技信息,2007():144-14

[10]张明健,赵乃卓无线蓝牙技术在智能家居中的应用[J]辽宁师范大学学报:自然科学版,2007(4):18-21

[11]薛宏全,杨琳嵌入式智能家居系统连入Internet的研究和实现[J]现代电子技术,2007,30(13 ):17-17