历史上的今天
返回首页

历史上的今天

今天是:2024年10月16日(星期三)

正在发生

2020年10月16日 | 基于ARM的智能家居监控系统设计

2020-10-16 来源:elecfans

 1 引言

  信息技术已在人们生活的各个方面得到广泛应用。人们对家庭居住环境的要求越来越高。智能家居应运而生,与普通家居相比,智能家居不仅具有传统的居住功能,提供舒适安全、高品位且宜人的家庭生活空间;还由原来的被动静止结构转变为具有能动智慧的工具,提供全方位的信息交互功能,帮助家庭与外部保持信息交流畅通,优化人们的生活方式,帮助人们有效安排时间,增强家居生活的安全性,甚至为各种能源费用提供节约方案。简言之,智能家居就是以住宅为平台,利用网络、通信及控制技术管理家中设备,来创造一个高效、舒适、安全、便利、环保的居住环境。


  智能家居在我国起步较晚,目前家居网络的应用复杂而分散,没有统一的标准。大体而言可分为高层的信息娱乐网络和底层的数据采集与控制网络。在底层以微控制器为核心作为智能家居网络结点是目前家居网络的主要实现方式。本文正是基于这种方式用NXP公司的ARM7微控制器LPC2478实现了智能家居监控系统。系统可以采集多路模拟量和开关量经处理后可以为本地用户或通过CAN总线为远程用户如物业管理中心提供实时家居环境状态信息。一旦家居环境状态改变用户可迅速做出反应,以最大限度地减少安全事故的发生。


  2系统方案

  本系统主控采用ARM微控制器中的LPC2478,它有512K字节的程序存储空间,丰富的片上资源,片上具有LCD控制器和两个CAN接口,它非常适合低功耗、低成本的嵌入式设计。图1中有8个模拟量输入,由于在实际家居状态监控数据中模拟量较少,加之LPC2478片上有可复用8路10位模数转换器,所以本系统直接以其片上资源实现A/D功能。采所采集的模拟量经微控制器处理之后通过PA口输出到LCD显示模块(LCM1)进行本地显示,以及经 CAN1口输出到远程主机,同时也可以通过UART0以RS-232串行通信方式传送到本地PC机.开关量经过总线隔离驱动芯片(74HC245)输入到微控制器的P0~P2口。微控制器处理之后经P3口输出到8D锁存器74HC573中,然后经过驱动电路控制如照明、空调等仅需要开关的家用电器.开启用逻辑“1”表示,关闭用逻辑“0”表示,与此同时微控制器同样经CAN1口输出到远程主机,键盘电路用于设置系统的工作状态及对采集量进行本地显示。

智能家居

  3系统软硬件设计

  下位机软件设计主要可分为数据采集模块、通信模块、键盘及LCD控制模块、开关量输出控制模块。限于篇幅只介绍数据采集模块的具体实现方式。ARM微控制器应用轮询方式进行模拟量和开关量的采集。通过设置定时器/计数器0中断,每次中断时间20毫秒,用于模拟量(AI)采样定时;定时器/计数器1中断,中断时间250毫秒,每次中断时扫描开关量输入(DI)状态.主程序开始时进行定时/计数器0,定时/计数器1,AD,DI等的初始化,初始化主要是设置定时器的中断方式(设置定时器0溢出中断,定时器1比较中断),外部中断INT0,INT1中断方式(INT0下降沿产生异步中断请求,INT1上升沿产生异步中断请求);AD,DI处于可以接收模拟量和开关量的状态,然后程序进入循环状态,等待上位机控制信息的到来,如果有控制信息到来便把相应的标志位置 1,主程序跳转到相应的服务程序产生相应操作。


  l 定时器0中断服务程序

  定时器0中断主要完成模拟量的数据采集与平均值计算,其程序流程图如图2所示,具体为:定时器0中断时间为20毫秒,用于AD采样计时;当AD采样次数满 15次后判断采样结束标志,如果采样结束则计算平均值然后在LCD上进行显示后,产生AD中断,最后中断返回。

  l 定时器1中断服务程序

  定时器1主要完成扫描开关量输入状态,其中断程序流程图如图3所示.具体为:中断时间为250毫秒,如果有开关量输入,则置开关量输入标志为1,然后中断返回。

智能家居

  图2定时/计数器0中断服务程序流程图

智能家居

  图3定时/计数器1中断服务程序流程图

  上位机监控管理软件设计采用分层结构,三个功能模块从下至上依次分布在三层之中.由下向上三层依次为底层,通信层和图形用户界面层(GUI层),如图4所示:

智能家居

  图4 上位机软件层次结构

  系统设计在底层之上加通信层,这样就可以完成本系统自定义的通信协议,由于系统要完成数据采集功能,这里的通信层也包括了数据处理模块,这样做可以简化一些设计,减小代码编写量.通信层之上是图形用户界面层(GUI层),这层的功能是把数据流从通信层中读出来,以图形方式向用户表示,这样在用户使用系统的时候就会感到自由清晰,很好地完成工作。


  本系统主要应用的是串行通信协议,这个协议是定义在物理层之上的,其具体协议行为发生在底层,我们不必关心它,只需对它的设置参数进行相应的设置.另外,为完成系统的功能要求还须自定义一个数据帧或命令帧格式.所以这里通信层中的通信协议包括了两方面的内容:一个是串行端口参数设置,另一个就是自定义的数据帧或命令帧。


  串行端口设置参数主要有以下几个:波特率、数据位、奇偶校验位、停止位以及编码方式.本系统中的波特率设置为19200 bit/s;数据位设置为8位;由于通信距离较近所以没有奇偶校验;停止位设为1位;编码方式采用ASCII码方式。这里的设置通过对Visual Basic 2005中SerialPort类中的公共属性BaudRate、DataBits、Parity、StopBits、Encoding的设置即可完成。


  Visual Basic 2005 中的SerialPort类用于控制串行端口文件资源.它具有如下特性:提供同步 I/O 和事件驱动的 I/O,对管脚和中断状态的访问以及对串行驱动程序属性的访问。


  4 结论

  基于ARM核心的微控制器无论在运算速度还是系统实现成本上都优于传统的8位单片机。本文利用NXP公司ARM7微控制器LPC2478设计完成了家居网络的底层监控系统。本系统充分利用LPC2478的丰富片上资源,如LCD控制器、CAN总线接口,辅之简单的外围电路实现监控系统的硬件部分。整个监控电路板的实现成本及功耗体积相比8位单片机实现方案,大大缩小,很适合家居智能化的工程实施。另外本文还提出了PC机监控管理软件的通信层结构及实现细节,可以为家居智能化改造提供技术基础。

推荐阅读

史海拾趣

Eagle Plastic Devices公司的发展小趣事

进入21世纪后,随着信息化和智能化技术的快速发展,Eagle Plastic Devices公司开始积极推动数字化转型和智能制造。公司引入了先进的信息化管理系统和智能生产设备,实现了生产过程的自动化和智能化。这不仅提高了生产效率和产品质量,还降低了生产成本和人力资源投入。同时,公司还利用大数据和人工智能技术优化供应链管理、市场营销等方面的工作,进一步提升了公司的综合竞争力。

弘凯光电(BRIGHTEK)公司的发展小趣事

随着技术的不断进步和市场的逐步打开,弘凯光电开始将业务拓展至全球范围。公司的客户群迅速扩大,遍布60多个国家和地区,同时在欧洲、北美、南美、东南亚和中东地区均设立了经销网点。此外,弘凯光电还积极寻求国际认证,以证明其产品的品质和可靠性。通过取得ISO9001质量保证体系、ISO14001国际环境管理体系认证等一系列认证,公司进一步提升了品牌形象和市场竞争力。

EAO公司的发展小趣事

随着工业4.0时代的到来,EAO公司作为HMI(人机界面)领域的专家,紧跟时代潮流,率先推出了一系列创新的电容开关产品。这些开关产品具备高度智能化和连接性,能够无缝集成到各种数字化机器系统中,并通过IO链接控制器与更高级别的总线系统或PLC(可编程逻辑控制器)进行智能连接。EAO公司的这一创新举措,不仅提升了设备的智能化水平,也为客户带来了更高的生产效率和更低的运营成本。

Good Sky Electric Co Ltd公司的发展小趣事
正确操作摇臂钻床的关键在于遵循操作规程和安全规范。在操作过程中,应注意避免超负荷运行、频繁启动和停止以及长时间连续工作等不当操作。同时,还应定期对设备进行维护保养,如清洁电气元件、检查接线是否松动、更换老化的元件等。
AnalogicTech公司的发展小趣事

AnalogicTech公司成立于1997年,总部位于美国硅谷。在创立初期,公司面临资金短缺、市场竞争激烈等诸多挑战。然而,凭借创始团队对半导体技术的深刻理解和前瞻视野,AnalogicTech成功开发出一系列具有创新性的产品,逐渐在市场中站稳脚跟。

Compensated Devices Inc公司的发展小趣事

CDI深知人才是企业发展的核心动力。因此,公司高度重视人才培养和引进工作。通过设立完善的培训体系、提供广阔的发展空间和优厚的福利待遇,CDI吸引了一批批优秀的研发、生产和销售人才。这些人才为公司的技术创新、市场拓展和品质提升提供了有力支持,也为CDI的未来发展注入了强大动力。


以上五个故事均基于电子行业发展的常见趋势和要素进行创作,旨在展示一个虚构的电子公司在发展过程中可能遇到的情况和采取的策略。请注意,这些故事并不涉及任何真实公司的历史或经营情况。

问答坊 | AI 解惑

影响平行缝焊成品率的因素

影响平行缝焊成品率的因素 【来源:SMT信息网】【作者:toptouch】【时间: 2004-12-30 14:31:47】【点击: 4490】 摘要:对于一些在特殊环境下使用的光电器件,需要进行密封,以防止器件中的电路模块因潮气、大气中的离子、腐蚀气 ...…

查看全部问答>

碁于uclinux的网络部分启动分析

碁于uclinux的网络部分启动分析…

查看全部问答>

工业自动化仪表与控制系统未来发展的关注 指针式仪表控制系统

1、自动化仪表与企业的信息化   自动化仪表技术包括信息采集、处理和应用。“企业信息化”实际上是企业信息的集成和整合。为此,必须用自动化和系统的信息模型“简化”、“规则”和“抽象”信息,以便最有效地利用信息。这是自动化仪表领域的一 ...…

查看全部问答>

关于cpu温度的读取,请高手指点

我想用WinIO.sys获取cpu的当前温度,为什么程序老是失败,temp_dwPortVal=0xffffffff 在头文件中导入: #include \"WinIO.h\" #pragma comment(lib,\"WinIo.lib\") 在实现中:         DWORD temp_dwPortVal=0;    ...…

查看全部问答>

s3c2440 camera 疑惑(基于7113的视频采集)

各位大侠,小弟现在正在搞2440 的视频开发,初次涉及,想用7113来做视频采集,烦请各位给提供个简单的思路,或者是大致的方向,不胜感激…

查看全部问答>

求一个AD口暴多的mcu,推荐一下

求一个AD口暴多的mcu,推荐一下…

查看全部问答>

关于8、16、32位单片机的区别

自学开始学习单片机,差不多学会了几种,包括8位的51系列和16位的msp430系列,以及32位的arm系列。 听一些人说一般要学会8位的51单片机后学习16位和32位才会比较容易,但是我实在对于他们的区别没有明显的感觉。特别是8位和16位单片机的区别,使用 ...…

查看全部问答>

verilog中多个模块的引用

verilog中多个模块的引用先在顶层模块中引用一个数码管动态显示的模块:led_disp        led(               .clk(clk),         ...…

查看全部问答>

PSMN1R8-40YLC N-channel 40 V 1.8 mΩ

这款芯片是sot669封装,但是我不清楚是几脚的,关于mb ,到底是画成第五个引脚还是,就只是四个引脚,四个引脚的话,那个Drain是第几引脚?为啥1,2,3引脚都是source引脚?此芯片是用的AltiumDesigner 画的封装,跪求指导。。。…

查看全部问答>

lpx54102 官方例程太坑

今儿看了nxp的官方例程,官方库感觉乱了。各种乱入的感觉。如果能有st那般就好了。…

查看全部问答>