基于PSoC4的智能家居远程控制从系统设计
1. PSoC4架构及资源介绍 PSoC 4200系列结合了微控制器和可编程数字逻辑、可编程模拟系统、以及标准通信和定时外设。具体特性如下:
l 基于ARM Cortex-M0的32位微处理器;
l 可编程模拟系统,可配置运放、12位ADC模数转换、电流数模转换器IDAC、温度传感器及内部低功耗比较器;
l 可编程数字系统,通用数字模块UDB及用户verilog输入;
l 低功耗工作模式,1.71~5.5V工作电压范围;
l 电容感应CapSense技术;
l LCD驱动;
l 可灵活配置的串行通讯模块(SCB);
l 定时和脉冲宽度调制(TCPWM);
l 36个可配置GPIO,驱动模式、驱动能力、摆率可配;
l 支持SWD调试和编程;
系统架构框图如下图所示:
图表 1 PSoC4系统结构
1.1. 硬件资源初体验 与我们常用的MCU相比较,PSoC4硬件具有以下几点不同的优势:
(1) 与其他的MCU相比可用的模拟资源较多,包括可配置运放、12位ADC模数转换、电流数模转换器IDAC、温度传感器及内部低功耗比较器等资源。;
(2) 整合微控制器和触控感应器Capsense功能于单一芯片;
(3) 驱动模式、驱动能力、摆率可配的GPIO,同时可任意分配给各模块输入输出;在系统架构中该GPIO模块设计较为灵活,给系统使用提供了方便;
当然,个人认为也有以下建议点:(并非系统问题或不足,只是个人的一些观点)
(1) 系统运行频率48Mhz对于本系统来讲刚好够用,个人认为这里实际上存在一个矛盾,系统频率可能在一定程度上会限制中高端的应用开发,低端应用看起来又好像不需要这么多让人流口水的硬件资源;
(2) 内部生成的时钟信号不能直接输出。在评估过程中,另外一个测试项目需要一个20Mhz的时钟,开始以为该系统能够生成一个20Mhz的时钟信号,但是经过尝试无法产生。
(3) 如果硬件资源再增加3路独立的ADC,总共4路,应用起来会更加灵活。
(4) PSoC5作为程序下载器使用,本次体验的板子固件存在一定问题,在使用IADC进行采样实验时,USB转串口数据收发不正常,需要掉电重启后才能够恢复正常,该问题网友已通过官方确认是批次问题,可升级固件解决。
2. PSoC4 Creator使用小结 除了上述提到的PSoC4硬件架构及资源的多样性,其开发软件PSoC4 Creator更能够有让人眼前一亮的感觉。主要特点如下:
(1) 该开发软件除了具有KEIL、ADS等软件的编译下载功能,同时集成了很多现成组件,将PSoC4各功能模块封装,已经包含底层驱动函数,给用户的入门和使用提供的快捷和方便;
(2) 上文提到PSoC4芯片内部有类似FPGA的UDB资源,所以PSoC4 Creator也有类似FPGA开发工具的GPIO分配的功能,较其他同类产品使用更灵活。
除此之外,在使用PSoC4Creator软件过程中仍然发现有一些有待改进和提高的地方:
(1) 在Windows 平台运行软件偶尔会出现卡死或者自动退出,不确定是否是个例;
(2) 在调用系统组件,对编译后的一些函数进行修改添加代码后,若再调用新的组件,会导致之前修改的代码丢失,不得不再重新修改,使用不太方便。例如:在调用中断组件后,对中断函数进行了编写保存后,若再调用一个其他组件后再保存编译,会导致之前编写好的中断函数变为初始化空函数。
(3) 软件自带的部分底层驱动兼容性还有待提高。例如使用的LCD1602的驱动对应我们当前的器件使用4线模式有问题,当第一行显示8个字符后,器件返回的busy状态驱动程序无法正常获取到,程序就会一直死在while循环中;
以上便是个人对软件使用的感受。
3. 使用PSoC4评估智能家居远程控制从系统 说明:
1、由于技术知识产权问题,本文中提及的关键技术点“远程控制”使用的是常见的电力载波方案进行替代演示,该方案在小区控制中仍然有一定实用价值,并非真正意义上的全球远程控制。
2、本次评估使用的是布线方式连接各个模块,没有使用智能无线转发,直连布线对于真正的智能家居应用方便性和界面友好性还不够。
3、出于演示看起来方便考虑,继电器控制信号通过LED进行指示。
上述说明请大家理解谅解,谢谢。
3.1. 系统概述 随着科技的发展,智能家居逐渐成为品质生活的一种趋势。本项目主要介绍基于PSoC4的智能家居远程控制从系统,包括系统供电自检、远程控制命令接收、数字时钟、太阳闹钟、智能电器开关、智能遮阳、调色板背景灯、入侵检测等方面的控制,下文将进行详细介绍。
3.2. 系统结构图 系统结构图如下图所示:
图表 2 系统结构图
整个从系统由两个电力载波通讯模块、PSOC4开发板及外设(系统中主要使用为Capsense按键)、LCD1602显示、光敏传感器、窗帘步进电机、电器继电器、红外模块、报警蜂鸣器组成。其中:
l 电力载波模块主要实现远程通讯;
l LCD1602实现时钟及控制信息及控制状态显示;
l 光敏传感器实现对外界光照强度的检测从而实现窗帘电机的自动控制,另外结合软件的闹钟开闭功能实现太阳闹钟;
l 电器继电器实现实用功能的电器控制,目前有电热水器,其余的电器控制目前没有太大实用性暂不考虑;
l 红外模块用来检测是否有人回到家从而自动开启RGB背光调节室内背景,在离家或者夜间模式复用为入侵检测,通过蜂鸣器模拟报警;
l AD采样系统供电,通过蜂鸣器实现PSoC4主控板掉电自动报警。
3.3. 模块功能及PSoC4资源使用说明3.3.1. 电力载波通信 (1) 功能介绍
电力载波模块在系统主要充当远程通讯的角色。主要有两个作用:
第一,将电脑串口终端发送的控制指令经电力载波模块1发送出去,并由载波模块2接收并送给PSoC4进行解析并通过智能转发给各外设下达控制动作;
第二,PSoC4将各家电外设的运行情况通过电力载波模块2发送,载波模块1接收后送给电脑终端进行显示,方便对家居系统运行状况的监控。
(2) 系统资源使用及硬件连接方式说明
通讯使用到的PSoC4资源为SCB组件,配置为UART,用来和主控板端电力载波模块进行连接。系统通信线路连接如下图所示:
图表 3 电力载波模块连接硬件示意图
工程调用的UART组件及通信配置信息如下图所示:
图表 4 UART组件图示
图表 5 UART组件配置
GPIO分配如下表所示:
表格 1 载波模块IO资源分配
(3) 测试模式实物连接照片
图表 6 电力载波模块实物图
3.3.2. LCD1602显示 (1) 功能介绍
LCD1602显示外设主要实现时钟及控制信息和控制状态的显示。
当系统处于空闲状态的时候在LCD1602第一行进行时间的显示;
当有按键操作及远程控制命令时,用于显示相应的控制信息及家电运行状态。
(2) 系统资源使用及硬件连接方式说明
LCD显示调用软件自带的LCD组件,连接方式按照驱动配套的4线数据线连接方式,节省GPIO资源,如下所示:
图表 7 LCD组件图示
表格 2 LCD模块IO资源分配
(3) 实物连接照片
图表 8 LCD1602显示实物图
3.3.3. 智能窗帘控制 (1) 功能介绍
窗帘电机控制主要分为三部分内容。
第一,根据外部光敏电阻传感器对外界光照强度的检测,PSoC4对光敏模块的输出电压进行AD转换,并作出相应的窗帘开闭动作,达到智能遮阳、天黑智能关闭窗帘的目的(需要结合场景控制,本试用报告没有描述场景控制相关的内容);
第二,通过PSoC4开发板上的Capsense按键可以实现对窗帘的手动开闭控制;
第三,电脑串口终端发送相应控制指令可以实现远程窗帘的开闭控制;
(2) 系统资源使用及硬件连接方式说明
窗帘电机控制使用到一个AD口输入对外部光敏器件变化进行检测,同时使用到4个GPIO来对窗帘步进电机进行控制,具体结构如下图所示:
图表 9 窗帘控制硬件示意图
工程中使用的AD组件及GPIO示意如下所示:
图表 10 ADC组件图示
表格 3 AD模块IO资源分配
(3) 实物连接照片
图表 11 窗帘控制实物图
3.3.4. 智能插座控制 (1) 功能介绍
家电继电器开关控制主要通过两种方式进行。
第一,通过PSoC4板上Capsense按键进行控制开关;
第二,通过电脑串口终端发送相应控制指令实现开关;
(2) 系统资源使用及硬件连接方式说明
当前继电器的控制采用一个GPIO控制发光二极管的亮灭来进行模拟。工程使用到一个输出IO组件,如下图所示:
图表 12 继电器组件图示
表格 4 继电器模块IO资源分配
(3) 实物连接照片
图表 13 继电器控制实物图
3.3.5. 调色板背景灯控制 (1) 功能介绍
RGB用来调节室内背光色调,主要包含背光颜色设定和红外模块检测到人回到家自动开启背光。背光设置采用PSoC采用电流IDAC检测,用户通过Capsense按键来自由选择喜爱的背光颜色;背光的开启由外部红外模块来实现,当红外模块检测到有人回到家将自动开启设置好的背光颜色,来调节室内背光色调。
(2) 系统资源使用及硬件连接方式说明
RGB背光使用到的系统资源为4个Capsense按键设置输入GPIO及一个红外模块输入GPIO,硬件连接如下图所示:
图表 14 背光灯硬件连接示意图
红外模块在检测到有人时候OUT输出为1,其余时候保持为0;Capsense按键用来设置背光自动开启功能与否及背光颜色选择。
工程使用到1个红外GPIO输入、1个IDAC输入、3个RGB输出GPIO,如下图所示:
(3) 实物连接照片
图表 16 调色板背景灯实物
说明:测试模式下,使用人体红外检测容易误触发,因此采用红外信号反射模拟红外检测输入。
3.3.6. 蜂鸣器报警 (1) 功能介绍
第一,蜂鸣器主要用来在系统板VBUS供电掉电时进行报警提示用。实际应用时,系统板采用两套电源供电,外部供电和备用电池供电,当外部供电掉电时,蜂鸣器报警。
第二,在离家以及夜间场景模式下对异常入侵检测进行本地报警;
(2) 系统资源使用及硬件连接方式说明
图表 17 蜂鸣器报警硬件示意图
3.4. 操作流程说明3.4.1. Capsense按键操作说明 在该系统中,Capsense按键主要用作PSoC4终控板功能设置、电器继电器控制、窗帘电机开关控制;功能设置包括时钟设置、RGB背光设置、智能窗帘设置、智能插座设置、报警蜂鸣器检测供电设置等。整个按键操作流程如下图所示:
图表 18 软件流程图结构
3.4.2. 电力载波远程控制说明 系统的远程控制是通过电脑串口终端发送相应控制指令来实现对智能插座、智能窗帘、背景灯等的控制。串口指令及相应控制功能对应列表如下:
图表 19 PC端远程控制软件界面
用户界面较为简洁,通过打开串口,然后选择对应的控制项目,将控制命令发送至电力载波模块,在电力载波的远程接收端对命令进行解析,然后控制连接在PSoC4系统板上的各种模块。
表格 5 命令CODE编码
3.5. 实物展示及总结3.5.1. 实物整体照片
3.5.2. PSoC4的产品应用独特性优势 由于个人经验限制,截止目前为止接触使用过的MCU主要有STC的51系列(8位)、TI的MSP430系列(16位)、三星的ARM11系列(32位)等。本产品的应用体验评估夺走了我的很多个第一次。就产品应用的独特性优势而言,Cypress的PSoC4产品提供的通用串行接口模块SCB、电容触摸模块、UDB模块以及功能异常强大的GPIO模块是非常抢眼的亮点。
SCB:同类产品在实现串行接口SPI、UART、SCI均是独立的模块,该产品中将其合并为SCB模块,并且用到UDB的资源。对于用户来讲有利于“串行通信”的概念集成,Creater带来的配置便利性一定程度上隔离了具体协议实现。
Capsense:这个的确是第一次接触到。对我而言本身就是完全的独特创新了,以前在使用平板电视空调调节的时候就对其触摸调节实现方式深感疑惑,但是也一直没有深究,通过该评估任务才发现这个原来可以这样玩儿。当然,家电里面的控制具体是怎么样的到目前为止还没有仔细研究过。但是,PSoC4这个就已经足够了。
UDB模块:数据手册中标注的硬件资源实际上一部分是通过该模块来实现的。在初步熟悉资源过程中,编写了简单的verilog代码进行下载运行,可以实现简单的输入输出功能。但是遗憾的是,可能我们选择的应用中没有这方面的需求,评估过程中认为这个功能的实用性有待进一步检验,原因是简单的没必要实现,复杂的资源不够。目前,国内的部分IC公司对特定的用户提供SOPC的解决方案,内嵌的可编程阵列均是定制的,价格非常昂贵。反而,我认为该部分功能对于学生的学习可能更加有帮助,降低学习成本。
功能异常强大的GPIO模块:由于个人也做逻辑设计,对于GPIO的功能电路实现有深入了解。第一次看PSoC4的数据手册把我的小伙伴们都惊呆了,这是我们见过的功能最强大的MCU GPIO。技术难点我认为主要有数字模拟IO复用、上升下降斜率可调,因为这些也是困扰我们的问题,当然,另一个有利原因也可能是这款产品本身的IO速度不高。对于>100Mhz的IO速度如果能够有这样的配置那就太好了。
3.5.3. PSoC4产品开发时间对比 我们认为PSoC4相比较其他产品在开发时间上的节省主要体现在将用户与寄存器隔离。对于用户来讲就是一堆的应用函数封装。不同的产品与PSoC4对比开发时间有一定的差异。以下是个人总结的基本对比(下述对比是基于同等难度的开发,每一项均有最高5星和最低1星便于对比):
产品 | | | | |
| | | | | |
| | | | |
| | | | | |
| | | | |
| | | | | |
| | | | 用户界面友好,各类应用函数较多,需要熟悉各类封装并通过单个例子体验 |
3.6. 应用推广及展望 在当前系统中简单地介绍了一个智能家居远程控制系统实现。系统以电力载波技术作为远程控制媒介,PSoC4为系统核心控制MCU,利用开发板提供的各便捷外设,实现了对常用家电控制的模拟。
智能家居的概念提出已有十余年,但目前的发展和普及市场仍然有待提高。原因在于当今一些智能家居提供的界面不太友好,给消费者的使用造成新的不便;另外一些先进智能家居的价格较为昂贵且为整机系统解决方案,中下层普通消费者不能承受,诸多因素限制了它的发展。所以推出一系列友好、价格适宜的智能家居控制系统成为智能家居领域的关键。本文中该系统仍然有许多需要改进和补充的地方。利用物联网技术将整个家庭的各种设备进行分类(照明、家电、安防等)后,通过有线和无线连接到一起;根据自动识别系统环境作出相应控制操作;再加上当前主流的智能操作终端,智能遥控器、移动触摸屏、电脑、手机、PDA等,实现远程方便控制。智能家居在智能化、平民化的领域具有相当大的发展前景。
4. 另一个有趣的例子 介绍一个网址,供大家参考,没事可以进去冒个泡泡:
http://www.element14.com/community/community/knode/dev_platforms_kits/element14_dev_kits/psoc4_pioneer_kit
PSoC4的资源中有一个IADC,该模块在智能家居的应用中非常有意思,由于系统规划的原因,该功能没有集成到当前我们评估的系统中,在这里单独列出,供大家耍耍,这个用来做背光灯的无级可调设置应该很不错。
http://www.element14.com/community/message/76985
5. 感谢 感谢论坛中的sacq同学孜孜不倦的工作,值得我辈学习,特此授予杰出贡献奖;
感谢Cypress免费提供的PSoC4 Pioneer Kit软件及硬件平台,授予硬件系统为本次最佳男主角,授予软件系统为本次最佳女主角;
感谢宝刀不老的51开发板对本次评估的鼎力支持,面对长江后浪推前浪的PSoC4,依然淡定执着敬业,特此授予最佳配角奖;
感谢优吉工作室的各位同事在工作之余,牺牲掉休息时间对本次评估任务的时间以及技术支持,特此授予最佳编剧奖,他们是李开亮、窦亮亮、吴煜、俞诗思。
最后,感谢彭睿同志对本次评估的导演,二等奖很不错,多给大家发发吧,讲了这么多,优吉工作室还缺一台示波器,我是承载着工作室同志们的再三嘱托来领取示波器的,活动组委会就看着办吧。谢谢!
6. 后记 由于我们自身知识结构及能力有限,上述评估报告中如有错误希望大家不吝赐教指正,我等定当虚心学习请教。
7. 授权说明
本授权声明:Cypress可以在任何场合以任何形式公开与该作品相关的任何资料。
特此声明
彭睿
8. 更新说明
2013.11.29 11:40 补充说明:1、有些图片看起来显示不完整,请直接下载附件查看。
2、行间距设置丢失,请直接下载附件查看。
12:30 更新 1、添加视频演示。
2、调整图片显示。
[
本帖最后由 ruissmec 于 2013-11-29 14:55 编辑 ]