0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于S3C44B0X和μC/OS-Ⅱ智能家居嵌入式系统设计

电子工程师 来源:电子技术应用 作者:刘刚 2021-04-05 10:49 次阅读

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

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

1 软硬件选择

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

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

(2)8路10位ADCI2C,I2S总线控制器,6个PWM定时器

(3)4种工作模式,正常、慢速、闲置和停止,可以根据需要切换系统工作方式,使系统功耗降低到最低限度;

(4)内置彩色LCD控制器(最大支持256色的DSTN),71个通用可编程I/O口和实时时钟(RTC)。

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

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

2 智能家居硬件设计

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

pIYBAGBb_EOAbT5EAAA_j8P1afQ805.png

2.1 存储器系统

其中静态存储器由FLASH组成,用于存储智能家居中的嵌入式操作系统、HTTP服务器、家庭网络服务器以及支持各种服务所需的文件系统。动态存储器采用SDRAM,以提高系统的允许速度和采用操作系统来保证系统的稳定性,整个智能家居系统软件平台存储在FLASH中,在系统启动时,将从FLASH中运行Boot-loader,解压缩操作系统,并将其搬移到SDRAM中,完成搬移之后,所有程序从SDRAM中运行。

其中,FLASH选用SST公司生产的SST39VF160芯片。39VF160采用CMOS工艺设计,支持1 M的地址空间,20条地址总线,16条数据总线。SDRAM选用Hynix公司生产的HY57V641620芯片。HY57V641620存储容量为4组×16 M(8 MB),由于采用行/列地址锁存机制,由行列地址共同构成20条地址线,完成1 M的寻址范围。

2.2 输入/输出系统

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

2.3 外部通讯接口

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

2.4 蓝牙通信模块

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

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

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

3 μC/OS-Ⅱ在S3C44B0X上的移植

μC/OS-Ⅱ在S3C44B0X上的移植,需要修改3个与ARM体系相关的文件:OS_CPU.H,OS_CPU_C.C,OS_CPU.ASM。在μC/OS-Ⅱ的移植过程中,采用ADS作为编译器,ADS由一套完备的应用程序构成,可用来编写和调试ARM系列的RISC处理器的应用程序,并可通过主机和实时分析工具让使用者对应用程序进行完整的分析,加速实时嵌入式系统的开发和测试。

3.1 设置OS_CPU.H中与处理器和编译器相关的代码

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

3.2 编写与操作系统相关的函数OS_CPU_C.C

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

pIYBAGBb_FmAfrwkAAAZQAE6Q0U343.png

3.3 编写与处理器相关的函数OS_CPU.ASM

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

3.3.1 OSStanHighRdy()

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

3.3.2 OSCtxsw()

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

3.3.3 OSIntCtxSw()

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

3.3.4 OSTicklSR()

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

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

4 结语

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

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3587

    浏览量

    129441
  • 智能家居
    +关注

    关注

    1928

    文章

    9556

    浏览量

    184967
  • ISR
    ISR
    +关注

    关注

    0

    文章

    38

    浏览量

    14426
收藏 人收藏

    评论

    相关推荐

    新手怎么学嵌入式?

    新手怎么学嵌入式? 在科技飞速发展的今天,嵌入式技术已经渗透到我们生活的各个角落,从智能手机到智能家居,从汽车电子到医疗设备。对于新手而言,嵌入式
    发表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指将人工智能技术应用于嵌入式系统中的一种技术。嵌入式
    的头像 发表于 12-11 09:23 272次阅读
    什么是<b class='flag-5'>嵌入式</b>人工<b class='flag-5'>智能</b>

    嵌入式和人工智能究竟是什么关系?

    应用场景。例如,在智能家居领域,嵌入式系统可以控制各种智能设备,如智能灯泡、智能空调等,而人工
    发表于 11-14 16:39

    嵌入式系统的未来趋势有哪些?

    智能家居领域,嵌入式系统可以集成语音识别和自然语言处理技术,去实现智能家电的语音控制。 2. 更强大的处理能力 在未来的嵌入式
    发表于 09-12 15:42

    C28x嵌入式应用程序二进制接口

    电子发烧友网站提供《C28x嵌入式应用程序二进制接口.pdf》资料免费下载
    发表于 08-31 09:39 0次下载
    <b class='flag-5'>C28x</b><b class='flag-5'>嵌入式</b>应用程序二进制接口

    嵌入式热门领域有哪些?

    通过物联网连接各种物理设备和传感器,促使它们之间实现信息的交换和数据的共享。从智能家居智能城市,物联网的应用不断扩展,为嵌入式系统工程师带来了广泛的就业机会和发展前景。 自动驾驶
    发表于 07-16 09:23

    适合初学者的嵌入式项目有哪些?

    驱动直流电机来控制小车的运动,你可以学习如何处理无线通信、电机控制、中断处理和嵌套循环等高级概念,从而提升嵌入式系统的实时性和稳定性。 4.智能家居控制系统 详细描述:这个项目将
    发表于 07-11 10:23

    嵌入式系统怎么学?

    嵌入式系统怎么学? 随着物联网、智能制造等新技术的兴起,嵌入式系统的应用范围更加广泛。包括但不限于工业控制、汽车电子、医疗设备、
    发表于 07-02 10:10

    嵌入式开发就业前景怎么样?

    开发的就业前景。 1)智能家居 智能家居是指通过智能化设备和系统,将家庭生活变得更加便捷、舒适和安全。随着人们生活水平的提高和科技的发展,智能家居
    发表于 06-07 14:51

    嵌入式人工智能的就业方向有哪些?

    操作系统使用及C高级编程 数据结构与算法 二:嵌入式Linux应用工程师,Linux网络开发工程师 文件IO 并发程序设计 项目实战:基于Linux的Flappybird游戏开发 网络编程开发及实战上
    发表于 02-26 10:17

    给大家讲讲嵌入式系统中I²C总线的时序

    C总线在嵌入式系统中很常见,今天就来给大家讲讲I²C总线的时序。
    的头像 发表于 02-23 09:47 1637次阅读
    给大家讲讲<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>中I²<b class='flag-5'>C</b>总线的时序

    嵌入式学习步骤

    嵌入式行业是一个涉及广泛领域的行业,嵌入式、物联网、人工智能智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式
    发表于 02-02 15:24

    聊一聊嵌入式C语言

    作为一名嵌入式软件开发者,熟练掌握嵌入式C语言对我的日常工作至关重要。
    的头像 发表于 01-22 09:28 544次阅读

    飞凌嵌入式这2款核心板已完成“矿鸿OS”适配,矿企伙伴看过来

    飞凌嵌入式FETA40i-C和FETMX6ULL-S两款核心板成功完成“矿鸿OS”的系统适配,嵌入式
    的头像 发表于 01-17 11:25 866次阅读
    飞凌<b class='flag-5'>嵌入式</b>这2款核心板已完成“矿鸿<b class='flag-5'>OS</b>”适配,矿企伙伴看过来

    基于XIAO ESP32C3智能家居四路控制器设计

    今天小编给大家带来的是印度的Maker Technolab creation的基于ESP32C3智能家居四路控制器,该控制器可以通过传统的手动开关按钮、红外遥控器、智能手机进行控制,同时手机上也可以实时显示温度和湿度,可以实现
    的头像 发表于 01-02 10:53 1699次阅读
    基于XIAO ESP32<b class='flag-5'>C3</b>的<b class='flag-5'>智能家居</b>四路控制器设计