基于LPC2214的家庭智能终端的设计与实现
络各种设备的状态.并且可以改变某些设备的状态。这里利用小区网关完成小区局域同与外网的连接,小区内部局域网上的IP地址可以使用私有地址,从而节省费用。
2 家庭智能终端软件设计
嵌入实时操作系统μCOS-Ⅱ是一种占先式多任务操作系统.可固化、可裁减、移植性好,具有良好的可靠性和稳定性。它支持64个任务,具有信号量、消息邮箱、消息队列等多种进程间通信机制,已经在商业领域得到了成功的应用。由于μCOS-Ⅱ操作系统本身并不带TCP/IP协议栈,因此在操作系统上需要移植IP协议。本文采用μCOS-Ⅱ+LWIP来实现家庭智能终端的网络通信。
2.1 家庭智能终端软件的总体规划
家庭智能终端软件部分包括远程通信模块、RS-485通信模块、无线通信模块、232通信模块、报警检测模块、联动控制模块以及电话和语音控制模块。根据以上划分,在μCOS-II操作系统中定义了远程通信任务、485通信任务、232通信任务、报警检测任务、联动控制任务、电话语音控制任务以及蓝牙通信任务。各任务的优先级和堆栈空间分配如表l。
软件设计采用模块化设计,保证程序具有良好的可移植性和可重用性,各种软件模块分别属于不同的程序层。如图3所示,笔者将软件模块分为三个程序集合,即软件的程序层。内层是μCOS-Ⅱ内核,承担任务管理、内存管理和时间管理功能。应用程序层主要完成数据处理和请求内核服务的功能。中间件层移植和编写各部分通信协议和底层接口芯片的驱动程序。图3中最外围层为硬件接口层,它不是实际的软件层,并不做软件编写工作。智能终端的软件部分非常复杂,由于篇幅所限,本文重点介绍操作系统的移植和远程监控及控制。
2.2 μCOS-II操作系统在LPC2214上的移植
将μCOS-Ⅱ操作系统移植到PLC2214上需要0S_CPU.H、OS_CPEL_C.C、OS_CPU_A.ASM三个文件。OS_CPU.H主要定义不依赖于编译的数据类型、指定堆栈的生长方式以及定义底层接口。
为了具有良好的可移植性,μCOS-II并不使用C语言中的short、im、long等数据类型,而是以整数数据类型代替。PLC2214有四种堆栈形式:满递减、满递增、空递减、空递增,但是ADS1.2编译器只支持满递减堆栈,即选择由上向下增长方式。
定义底层接口是为了在C语言中调用汇编代码高效地完成某些系统服务功能。本文采用软中断指令实现底层接口。底层接口代码如下:
OS_CPU_C.C文件首先根据PLC2214体系结构和ADSl.2编译器定义任务的堆栈结构。在定义堆栈结构的函数:OS_STK OSTaskStkInit(void(*task)void(*pd).void*plat,OS_STK**ptos,INT16U opt)中定义了一个全局变量OsEnterSum,主要用于对关中断次数进行计数,这样可以实现开中断和关中断的嵌套。此文件也包括实现软中断的详细代码。
此外,本文件还包括运行多任务时系统启动前调用最高优先级任务的函数void0SStartHighRdy(void)以及几个供用户编写的Hook函数。
OS_CPU_A.ASM包括四个简单的汇编语言函数:调用启动前最高优先级任务函数OSStartHigh Rdy(),从低优先级任务切换到高优先级任务的函数OSCtxSw()、OS-IntCtxSw(),时钟节拍中断处理函数OSTickISR()。任务切换函数在任务切换之前要利用堆栈保存被切换任务的有用状态。LPC2214具有17个寄存器,但并不是所有的寄存器都需要进入堆栈。为了节省堆栈空问和减少切换时的时间开销,建立了一个任务切换时的堆栈结构,如图4所示。
2.3 远程监控和远程控制
远程监控与远程控制的软件设计采用客户端一服务器方式。TCP/IP协议的传输层有两个数据传输协议:传输控制协议TCP和用户数据报传输协议UDP,二者各有特点。UDP协议是提供最少服务和费用的协议,它不基于连接来传输数据,因此UDP的传送数据是不可靠的。TCP协议是基于连接的双向传输的可靠数据传输协议,但是TCP协议的使用费用较高。在智能终端的设计中,充分考虑了数据传输的便利性和可靠性,并且鉴于ARM系统能够提供足够的资源,根据数据的不同要求,采用了不同的传输层协议。在软件设计中使用Socket API函数来编写UDP和TCP通信任务。TCP和UDP通信时,Socket API的应用流程如图5所示。
家庭智能终端是家庭内外信息交换和家电控制的平台。本文采用Philipes公司的ARM7芯片LPC2214设计了硬件和软件,克服了8位单片机处理速度慢、接口资源和存储资源不足的限制。利用RS-485和蓝牙网络作为家庭内部网络,局域网和电话网络作为外部网络,保证了大数据量传输的稳定性和可靠性,并且兼顾了传统的电话网络远程控制方式。实践表明。系统具有良好的实时性和稳定性,在高端家庭智能终端领域具
- 智能家居相关技术及比较(05-29)