zigbeeandroid开发,要学哪些电路知识?
从技术的角度定义:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、重量、功耗严格要求的专用计算机系统。简而言之,是含有处理器的专用软硬件系统,具有自主的信息处理能力( 信息装备)。
从系统的角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使 其紧密耦合在一起的计算机系统。术语嵌入式反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。嵌入的系统中可以共存多个嵌入式系统。
英国电机工程师协会的定义– Devices used to control, monitor, or assist theoperation of equipment, machinery or plants(用于控制、监视或者辅助操作机器和设备的装置)。
微机学会的定义– 嵌入式系统是以嵌入式应用为目的的计算机系统,可分为系统级、 模块级、 芯片级。
系统级:各种类型的工控机 以标准总线互联(背板结构)的工控机: CPCI、 PCI-ISA、 VME 等。
模块级:各种类型的带CPU的模块,嵌入式CPU模块: PC104模块、 Biscuit板。
芯片级:各种以微控制器、 DSP、嵌入式微处理器为核心的产品。
嵌入式系统有那些特点?主要有以下几个特点:
嵌入专用:嵌入式处理器只嵌入在针对特定应用设计的系统中;
综合性强:嵌入式系统是将计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物;
设计高效:嵌入式系统的硬件和软件都必须高效率的设计,量体裁衣、取出冗余;
程序固化:软件一般都固化在存储器芯片或处理器本身中,提高了系统的执行速度和可靠性;
需要独立的开发系统:嵌入式系统本身不具备开发能力,必须有一套开发工具和环境才能进行开发;
生命周期长:嵌入式系统和具体应用结合在一起,其升级换代一般与具体产品同步进行,因此具有较长的生命周期
其他如可靠性高、成本低、功耗低等。
嵌入式系统有哪些应用?应用十分广泛,例如坦克、导弹、飞机、军舰、雷达、DVD机、电视机、微波炉、洗衣机、电冰箱、热水器、手机、 MP3播放器、数码相机、数码摄像机、机顶盒、键盘、鼠标、闪存盘、 CD-ROM、交换机、路由器,几乎我们生活中用到的方方面面都有嵌入式系统的“嵌入”。
如何学习嵌入式系统?嵌入式系统看似可以简单分为硬件与软件,然而其中却包含着异常庞大的知识量,也因此令许多新手望而却步,学习嵌入式系统大致分为三个阶段:基础篇、进阶篇、大咖篇。
基础篇:此阶段主要是前期的入门过程,一定要打好基础,主要学习一下几个方面
(1)电路知识
首先要学习电路、模电、数电,认识电阻、电容、电感等基础器件,放大电路、集成运放、时序电路基本电路能看懂,不然看电路图一定是云里雾里,也就无法进行后续的工作。硬件产品的设计实现,包括器件选型、原理图和PCB设计、电路调试,都需要过硬的电路基础。
(2)C语言
C语言嵌入式开发中最重要的编程语言,掌握本的数据类型、数组、指针、结构体,链表、文件操作等都要会,掌握基本语法和语句,保证自己会写程序的同时也能看懂别人写的程序。
(3)单片机
单片机入门相对简单,通过单片机的学习可以熟悉单片机的硬件结构,包括I/O口、AD转换、通信(串口、并口、I2C、CAN、USB、以太网、ZigBee技术等)、显示(LED、LCD等)、控制(PWM等控制技术)、数据处理(图形、图像、语音、视频等的处理或识别)等,学好单片机可以为采用嵌入式系统奠定良好的基础。
(4)Linux基础
Linux的源码和架构都是开放的,在嵌入式系统中应用尤为广泛,学习Linux对于系统的开发会有很大的帮助。详细了解Linux下的目录结构、基本命令、编辑器VI、编译器GCC、调试器GDB和 Make 项目管理工具,Shell Makefile脚本编写等知识,以及嵌入式开发环境的搭建。
进阶篇经过第一个阶段的学习,你已经可以进行嵌入式开发工作了,但是要进阶依旧还有很多知识要学,而这个阶段也将是第一个分水岭,使得优秀的嵌入式工程师得以脱颖而出。此阶段虽然只有三项,但涉及的知识非常广,要想学好需要花费大量的精力。
1.Linux编程
系统编程可以直接跟内核及核心系统程序库对话,深入了解Linux内核。掌握Linux系统编程主要提升对Linux应用开发的理解和代码调试的能力。由于网络应用开发越来越广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,可以全面了解Linux网络应用程序开发。
2数据结构与算法
数据结构及算法在嵌入式底层驱动、通信协议及各种引擎开发中得到了广泛的应用,语言编译要使用栈、散列表以及语法树;操作系统中用队列、存储管理表及目录树等;数据库系统运用线型表、多链表及索引表进行数据管理等等,对其掌握的好坏直接影响程序的效率、简洁及健壮性。
3.QT、DSP、FPGA
Linux没有自己界面,学习QT编程可以创建艺术级的图形用户界面所需的所有功能,从而更好的实现人机交互控制。而如今用户对于图形图像的要求也越来越高,这就需要DSP、FPGA技术来设计开发更好的嵌入式视觉系统。
大咖篇学习了前两个阶段的知识,你已经可以胜任大部分嵌入式工作了,但是距离大咖仍有一定的差距,其实已经到了第二个分水岭。这部分更多涉及系统层面,没有全方位的知识将会很难下手。
1操作系统平台开发
除了Linux外,嵌入式操作系统还有ARM、WINCE、uC/OS II、Vxworks、uClinux等,不同的系统有着不同的使用环境,你需要学习掌握系统的各个模块,为底层平台搭建做好准备。熟悉各个操作系统的特点以及系统的内核移植,确保操作系统能在某个微处理器或微控制器上运行。随着手机智能硬件的快速兴起,Android操作系统开发也越来越重要。
2驱动开发
驱动程序设计是嵌入式Linux开发工作中非常重要的一部分。不仅要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。还要具备ARM硬件接口的基础知识,熟悉ARM Cortex处理器各资源、掌握Linux设备驱动原理框架,以及工程中常见Linux高级字符设备、块设备、网络设备、USB设备的驱动开发。
当你学完以上所有的时候,那么恭喜你,可以说你已经是一个嵌入式系统的大咖了。
YuOS无线物联网管理系统特性?
1、系统的先进性 目前在国内外,大面积区域的设备管理,大多是使用总线型的方案,造价相当高昂,并且完成后,升级换代的硬件改造代价非常大,相应的后台开发的工作量也巨大,费用高,并且影响运营。而现有的无线通讯协议,还不能做到大面积的区域内的3000个设备以上进行集中管理。已有的ZigBee,蓝牙,Wi-Fi,Lora都有各自的局限性,在同时管理的设备数量上都很难突破300个,YuOS不论在距离上,数量上,还是时效性上都有更好的性能。 2、系统的稳定性 采用自适应的逐级及越级复合传达方式,有效解决了数据量易堵塞易延迟的现象,并且可协调分配使用多达88个信道,智能跳频解决了同频干扰的问题。 3、系统的安全性 物联网专用通讯通道,稳定不受其他网络干扰。 云端采用服务器集群部署,数据实时备份,本地记忆功能支持断电来电后设备所有数据的恢复,正常使用。
AES 高强度加密算法结合独创实时数据包动态加密相结合的算法,使得数据安全固若金汤。 4、系统的便利性 安装便利:设备通电扫码即上线,自动入网,无需反复繁杂操作。 使用便利:充分从用户体验角度出发,用户界面简洁友好。语音控制、移动app控制、定制化空间模型图所见即所得 维护便利:系统设备自检体系,可快速找到故障点实时反馈、维护方便、支持远程升级。 操作软件:YuOS (Android/ios) 硬件设备: 网关类:商用网关,家用网关 照明管理类类:回路控制盒,四键情景面板,智能筒灯,智能射灯,智能条形灯等。 空调管理类:VRV控制器,VRV控制面板,中央空调智能控制面板,新风控制面板,红外控制器。 门窗控制类:开合帘电机,卷帘电机,电机控制盒,门磁,窗磁,刷脸门锁。 感应类:雷达波感应器,温湿度感应器。 能耗管理类:智能配电箱-入户箱;智能配电箱-标准箱;智能配电箱-外挂箱,智能电表。
如何学习单片机?
森山,10多年的硬件开发经验,做过的板卡数不清有多少块,做过量产的产品也涉及到各个行业,也做过不少失败的项目。他用自己的经验告诉大家,如何系统的学习单片机。
01.需要一块开发板——让单片机动起来
买一块开发板,按照配套的demo程序,自己改改,让外设动起来,比如OLED显示内容,电机启停、调速,温湿度采集等等。这一步是为了让你体会到,单片机如何通过编程实现对硬件的操作。
这样的开发板太多了,建议从STM32入手,原因有二:一是资料最全,开发环境比较友好,而且今后在产品中使用也比较多;二是开发板都不贵,而且最好选外设多的,带显示,带通信接口的开发板。
即使一开始不懂,开发板配套的学习包,足够你学一阵子了,STM32官方也有现成的Cubemx工具来帮你生成基础代码。
02.自己设计一个小demo——掌握基本外设
我建议有硬件设计能力的,可以自己设计制作一款开发板,尽量多的加入不同类型的外设,因为以后你研发产品,就是基于这些外设的应用逻辑组合。然后一个个移植外设驱动,当然更建议自己写驱动,驱动写得好能最大程度发挥硬件的性能。
受限于单片机的性能都比较一般,基础的外设的连接方式大致有这些:IO、I2C、SPI、AD\DA、UART、CAN、RGB888……等这些低速接口,有的也带USB。
等你玩转了这些,以后升级到更强的平台,那么高速接口学习起来也只是工作量的问题,大同小异。
在移植和写驱动的过程中,要学会看datasheet,spec。虽然一个简单的芯片规格书就是几十上百页,但并不是你都要去看懂的,只要知道提取自己有用的信息,比如I2C设备,它的总线最高频率,你在做时序控制时不能超过它的上限。
在调试过程中,你一定会遇到非常细节的问题,这时候,借助一定的工具和手段,可以让你变得更加高效,比如学会用示波器去看数据波形,学会看时序,分析通信协议,用万用表去检测基本的故障。
下面视频是用STM32通过对步进电机和电磁铁的控制,来实现纺织机机头的功能。尽管我也做了多年开发,在遇到新的外设时,调试还是花了不少精力。参数是调出来的,有时候就差几十us的延时,性能就相差很多,所以在研发的过程中一定要耐心:
03.学着做一个完整的小产品——产品思维
前2步的基础,新手的你已经大致有信心了。接来下可以做一些设备的联动,实现一个产品的基础功能,一个简单的单机设备。举个例子,通过温湿度监测,来控制继电器,继电器外加电热丝或加热装置,并且实时显示该温度值,这就是一个温度控制的产品了。
这些设计不难的,难的是在这一步里你要有一定的产品思维了。要列出你这个产品的需求,解决了什么痛点,根据明确的需求去选择相应的单片机方案,你要知道实现这样的功能,需要选择什么样的技术方案,综合还要考虑成本。
这里面的信息量和变数其实非常大,比如你要设计一款带有线网络的产品,那么你是选择自带RMII接口的单片机,还是通过增加一个串口转网络的模组来实现?这可能涉及到你需要通信的网络速度,也要考虑综合成本,以及开发的难易程度。
有时候,这需要权衡产品本身的硬件成本,和你的开发周期,并不是一味追求硬件成本最优,如果出货量不大的产品或项目,应该更倾向于选择自己熟悉的单片机平台,这样开发周期最短,人力消耗最低,避免捡了芝麻,丢了西瓜的情况发生,因为很多项目,时间要求是很紧迫的。
做产品,实现功能很简单,但整体的可靠性、稳定性、兼容性是很难的,这个问题主要讨论单片机,所以产品其他延伸的话题就不展开了。
04.让你的单片机连接到全世界——尝试通信
现在很多产品都物联网化了,进一步的,你可以去研究基于单片机的有线、无线通信方式,最简单的通过串口连接WIFI、GPRS模组,学习MQTT等物联网通信协议实现单片机与互联网的连接。
MQTT协议基于json,即使完全不懂的人,学半天也就会了,上手比较容易,PC端有很多客户端可以直接用,适合信息量不大、实时性要求不高的数据采集、远程控制。
通信模组和方式就很多了,WIFI、Zigbee、BT、Lora、GPRS、Lora、NB、4G/5G、433等各种小无线,以后可以专门写一篇来介绍这些通信方式的不同应用场景。
之所以把通信这块单独拎出来,因为通信让万物互联,有了更多可玩性和可能性,让冰冷的单片机成为有想象力的产品。
最后的总结:做了越多的产品就越觉得,没有一个产品是简单的,容易的,希望大家耐心一点,打好基础,后面的路子就会很宽。
除了以上4点,后面遇到更复杂的项目,可以上RTOS、MBED等轻量化,适合单片机的操作系统。大家不要一味想着去搞linux,单片机一直在迭代,现在性能强的单片机还是很多的,而实际工业上有很多需求,单片机绰绰有余,性价比极高,开发周期短,稳定,这些都是很好的。
关于如何系列的学习,还推荐阅读:
硬件工程师技能树
电子专业新生指南
嵌入式学习路线+资料放送
学长,我们电子专业的毕业后究竟是做啥的?
嵌入式 Arm Linux 入门必读书籍推荐硬件学习选择开发板指南
本文转载来自森山的知乎文章,达尔闻经作者同意发布。
什么是嵌入式教育活动实施策略?
嵌入式教学就是嵌入式系统相关技术的教学。嵌入式学习即嵌入式Linux系统、Android系统开发学习,主要讲述嵌入式学习的方法,嵌入式学习路线、和兴趣学习嵌入式的必要性。
嵌入式培养是近年来国家提出来的。面对庞大的市场人才需求。使得这专业越来越火,嵌入式教学的难点是,以MCU 和嵌入式处理器为代表的嵌入式技术发展很快,而教师、课件、实验环境很难同步跟进。随着物联网概念的进入,ZigBee、WiFi和蓝牙等无线技术和MEMS传感器技术,这些原本自成一体的嵌入式系统变成了智能联网系统,因此传统的8051单片机教学和“ARM+Linux”的嵌入式教学亟需改革。
同时,随着嵌入式教学内容的不断扩充,教学和实验课时也显得捉襟见肘。尽管口袋实验室可以帮助学生利用课余时间完成作业,各类嵌入式和物联网大赛能够提升部分学生的素质,但是如何提高一批学生的整体能力依然是个难题。因此如今嵌入式培养已延伸到社会职业教育培训机构了。
智能插座有什么妙用?
1总论
智能插座作用主要是实现通断电的功能,相对于普通插座,其控制方式主要有定时通断电、远程通断电、联动通断电、感知通断电。
2详细说明2.1定时通断电
定时通断电有手动设定和APP设定两种,主要实现方式如下:
2.1.1手动设定:插座本身带有定时器设定按钮,通过在插座上进行手动设定时间,和手机上设定闹钟是一个原理。
2.1.2APP设定:通过安装在手机或智能设备内的控制程序控制页面进行定时设定,这种插座为联网插座,常用联网形式有蓝牙、Zigbee、WIFI。
2.2远程通断电
远程APP控制,通过安装在手机或智能设备内的控制程序控制页面进行插座的通断电指令控制。手机中的控制信号通过4G信号(后期可能更新的5G)传输到家庭网关,再通过家庭网关传输到插座信号接收器进行插座通断电控制。
2.3联动通断电
下图为联动控制模型,通过在APP中设定的不同模式(回家、离家、安防、影音模式等)当具备某种条件时,控制中心发出控制信号自动触发智能插座的通断电。例如当我们回家的时候,在打开门锁的同时,门锁发出信号启动回家模式,此时根据设定的回家模式程序,控制中心对智能插座发出控制信号,可启动控制窗帘、空调、灯光的插座通电,离家模式可控制断电。
2.4感知通断电
通过智能插座上自带的感知传感器,可感知周围的信号,当达到条件时进行通断电的自动控制,常用的有声音感知、人体红外感知、燃气感知等。例如当人走近插座的时候插座控制灯亮,人离开的时候控制灯灭。
以上为我对智能插座的理解,希望能对您带来帮忙,同时对于不对之处欢迎批评指正!