跟着社会经济的飞速发展及计算机操控技能等科技的前进,人们对本身的日子和作业环境有了更高的要求,由此对家居智能化操控体系的要求也越来越急迫。规划家居智能化操控体系,对促进住所现代化建设具有重要意义。
家居智能化操控体系就是指运用先进的计算机技能、网络通讯技能、归纳布线技能,将与家居日子相关的各种子体系有机结合,然后进行统筹办理,使家居日子愈加舒适、安全、有用。
近年来,嵌入式体系设备全面渗透到人们日常日子的各个领域,本文针对智能家居嵌入式体系的软硬件规划需求,以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位ADC,I2C,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所示,首要包含:
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_CRIT%&&&&&%AL()完结开关中止,用结构常量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()函数时应按照该结构进行。
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位单片机处理速度慢、接口资源和存储资源缺乏的约束。在试验调试过程中,该体系运转状况良好、作业安稳。证明其规划是有用、有用的。但智能家居嵌入式体系是一个比较大的体系,现在仅仅涉及到其间中心部分,其他部分还需持续讨论。
发布者:吕勇