您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 第8章物联网应用设计基础
2020/7/13物联网应用技术与实践2016.82020/7/13第8章物联网应用设计基础8.1实践是最好的学习8.1.1推荐的学习模式一般情况下,在开始学习物联网设计技术时,硬件设备一般比较短缺。所以,可以从软件方面和嵌入式系统开发模式上下功夫。由于物联网设计技术内容很多,所以建议从嵌入式系统开发设计开始,一定要对嵌入式系统开发用到的知识与开发工具要有一个较全面的了解,然后,一步一步努力把基础打扎实。2020/7/13最容易上手的是linux下的C语言编程,无论对于初学者还是自以为是高手的人来说,编程水平(这可不受硬件条件限制)绝对是没有止境的,有了较高的编程水平(嵌入式主要是C语言,C++、,java也是发展趋势),等到有机会的时候及时的补充硬件知识,会很快的成为嵌入式系统开发的高手,然后,在嵌入式系统的基础上学习联网技术(主要是无线联网技术)构造小型物联网原型项目。2020/7/13在硬件学习方面,熟悉各种嵌入式芯片、存储器等电路器件,Protel99或其他PCB设计工具来进行电路设计,电路板制作。建议从51系列开始,因为电路的设计内容较多,51有比较经典的电路与代码供我们学习模仿。在此基础上积累各个芯片详细资料和使用经验,学习软件工程知识和项目管理知识。2020/7/13在理论方面,最好钻研一下下面领域的内容进行修炼。例如,分析一种RTOS的源代码,建议分析UCOS源代码,它5000多行源代码,容易入门。分析一种通讯协议栈的实现方式,例如,TCP/IP,它最常用;彻底搞懂一种单片机的开发集成环境,例如,keilC、ADS1.2或IAR,因为它们在今后的学习与研究过程中,也是最常用。2020/7/13在此基础上,掌握一种DSP的开发集成环境,例如,TICCS2.1,精华在其内带的RTOS;精通一种MCU的开发集成环境,例如,,因为它们最流行;熟练掌握一种系统建模语言和工具,例如,TelelogicTAUSDL/UMLsuit。熟练掌握一种算法仿真工具,例如,Matlabsimulink最便宜。2020/7/13最后熟练掌握一种实用PCB设计工具,例如,Protel(或它的升级版AD软件),orcad,cadence,pads等,练熟一个就可以了剩下是编程。总之,在大学学习阶段,尤其是理工科的学生不能仅仅只注重知识的学习,还需要实践,实践才能提升能力。知识是学出来的,能力是练出来的。2020/7/138.1.2能力的培养1、能力篇1)流程意识,做任何事情,都要有流程意识,例如在进行一个嵌入式软件项目开发时,主要流程是,第一个阶段是项目架构设计(需求分析、架构设计、特色列表),这部分工作主要由架构部门和项目主管去完成;第二阶段是各模块的设计(需求分析、接口设计、详细设计、模块测试),这部分工作主要由研发人员去完成;2020/7/13第三阶段是集成测试(集成、测试、调试安装),这部分工作主要由测试人员进行,同时研发人员负责调试安装。每个阶段结束都会进行EAR(EndApproveReview),由项目委员会投票决定该阶段是否顺利结束。在项目的初始阶段,研发人员还必须参与FMEA(FailureModeandEffectsAnalysis)、列项目计划等工作。2020/7/132)质量意识,主要包括文档质量和代码质量。每一篇文档编写完毕,必须进行审查,才能正式发表。代码也必须进行审查和代码检测工具的检查,才能算通过。3)设计能力,这是最难修炼的一个能力,一般需要很多的项目实际经验加以提炼才能设计出好的模块。不过常见的模块都有一些共同的东西,比如缓存控制、状态控制、出错控制,一般代码的划分主要依据是对上对下的接口、自己的内部实现,或者按此模块的功能来划分。2020/7/134)代码编写能力,一般而言,设计作好了,代码编写并不难。但实际编写过程中,也有一些注意事项,诸如代码编写规范,一些不能犯的错误,一些小的技巧等,都需要实际经验的积累和总结。2020/7/135)调试能力,该工作主要需要极强的逻辑思维和问题分析、解决能力。不过在集成阶段发现的问题一般比较隐蔽,很难查。这个时候,需要使用各种调试工具(如Trace,Trace32,ETM等),来对问题进行分析和定位。不过就驱动软件问题而言,一般也有其思路。先查硬件、各个管脚信号(供电、复位、中断),再根据现象,分析出具体是软件哪个模块出了问题(比如替代法:有的模块用旧的,有的模块用新的,确定问题出现的范围)。一般新手先做这个,也有一些国外公司的技术支持主要做这方面的工作。2020/7/132、经验篇就是指做过的实际项目经验。就手机驱动软件来讲,主要可以分为以下几类。1)多媒体技术,主要包括音频与视频。这是手机目前最主要的模块之一。视频方面的工作主要是LCD、传感器的移植,视频编解码的驱动编写,因为一般编解码由硬件实现,固需要对其编写驱动以便上层应用程序调用。需要对MPEG4、H.263、H.264等编码方式有一定的了解。2020/7/132)接口,包括UART、USB、BlueTooth这些新的东西。一般而言,手机的USB、蓝牙等协议栈的东西都由第三方提供,手机公司主要一起做集成和接口编写。这也是公司专业化的体现,做自己擅长的。3)存储,主要包括nandflash、norflash、SDRAM等驱动的移植。还有基于其之上的文件系统,不过一般而言,专业的文件系统一般也由第三方提供。这是手机驱动里面的基础,只有这些工作做好了,剩下的工作才能进行。2020/7/134)电源管理,主要包括充电、省电以及给各模块供电等。随着手机功能越来越复杂,再没有更高能量的电池出现之前,省电(powersaving)也显得越来越重要。省电的原理也很简单:谁不工作的时候就不给谁供电。但做起来很复杂。5)ARM相关的知识,还有一些共有的经验,就是对嵌入式CPU的熟悉和了解,如ARM,PPC,MIPS等。也有一些共性的东西,比如GPIO的配置、EXTINT的配置、memory的配置等。还有ARM与别的芯片的连接接口,常见的有UART、IIC、SPI、EBI等。不同的接口有不同的协议特性。这些都需要熟悉和了解。2020/7/133、其他一些非技术能力1)领导力,如何带领和激励团队,如何制定目标和严格执行,如何人尽其材,让团队中的每个人都发挥他应有的作用,如何在团队中确立权威和声望,如何和每一个人和谐相处等等。2)团队协作,有很多工作需要几个人一起完成。这时候需要与别人的合作。比如跟驱动工程师常打交道的包括上层软件开发人员、硬件、DSP、ASIC等。只有跟大家关系搞好了,才能把工作做好。3)自我激励,严格按照计划进行工作,每天要填项目管理,记录当天工作的主要内容,是提前完成还是要迟后?工作时专心致志,积极思考。2020/7/138.2物联网开发流程8.2.1物联网开发概述物联网产品,与普通电子产品一样,开发过程都需要遵循一些基本的流程,都是一个从需求分析到总体设计,详细设计到最后产品完成的过程。但是,与普通电子产品相比,它的开发流程又有其特殊之处。它包含了硬件和软件两大部分,针对物联网软件的开发,在普通的电子产品开发过程中,是不需要涉及的。2020/7/13物联网产品的研发流程主要是,首先研究需求、然后将自己的思路与设计想法转换为图纸、快速搭建软硬件系统(这时候的硬件系统可能是利用成熟的通用嵌入式开发板),样品试制成功后,再修改嵌入式平台,完成原始产品向物联网云端的迁移,最后是产品测试与市场销售。2020/7/138.2.2物联网产品需求分析在这一个阶段,我们需要弄清楚的是产品的需求从何而来,一个成功的产品,我们需要满足哪些需求。只有需求明确了,我们的产品开发目标才能明确。在产品需求分析阶段,我们可以通过以下这些途径获取产品需求。2020/7/131)市场分析与调研,主要是看市场有什么需求,站在做一款产品的角度审视该产品前沿的技术是什么;2)客户调研和用户定位,从广大客户那获取最准确的产品需求,重点分析产品市场,还有考虑产品生命周期以及升级是否方便等因素;2020/7/133)研究产品的利润,搞清楚成本预算,成本不能只考虑元器件硬件成本,还有产品的软件开发成本、人力资源成本、生产成本,搞清楚商品定价与销售价的关系;4)如果是外包项目,则需要客户提供产品的需求,直接从客户那获取,让客户签协议。2020/7/138.2.3物联网产品规格说明产品规格说明主要从以下方面进行考虑。1)考虑该产品需要哪些硬件接口;2)产品用在哪些环境下,要做多大,耗电量如何。如果是消费类产品,还跟设计美观,产品是否便于携带,以确定板子大小的需求,是否防水等;3)产品成本要求;4)产品性能参数的说明,产品性能参数的不同,就会影响到我们设计考虑的不同,那么产品的规格自然就不同了;5)需要适应和符合的国家标准,国际标准,或行业标准。2020/7/138.2.4物联网产品总体设计在完成了产品规格说明以后,还需要针对这一产品,了解当前有哪些可行的方案,通过几个方案进行对比,包括从成本、性能、开发周期、开发难度等多方面进行考虑,最终选择一个最适合自己的产品总体设计方案。2020/7/13在这一阶段,除了确定具体实现的方案外,还需要综合考虑,产品开发周期,投入多少人与工作量,需要哪些资源或者外部协助,以及开发过程中可能遇到的风险及应对措施,形成整个项目的项目计划,指导项目的整个开发过程。完成了总体设计后,再进行产品概要设计,产品概要设计主要是在总体设计方案的基础上进一步的细化,具体从硬件和软件两方面进行。2020/7/13硬件模块概要设计,主要从硬件的角度出发,确认整个系统的架构,并按功能来划分各个模块,确定各个模块的的大概实现。首先要依据产品到底要哪些外围功能以及产品要完成的工作,来进行CPU选型,注意CPU一旦确定,那么产品的周围硬件电路,就要参考该CPU厂家提供的方案电路来设计;然后再根据产品的功能需求选芯片,比如是外接AD还是用片内AD,采用什么样的通讯方式,有什么外部接口,还有最重要的是要考虑电磁兼容。2020/7/13一般一款CPU的生存周期是5-8年,在考虑选型的时候要注意,不要选用快停产的CPU,以免出现这样的结局,产品辛辛苦苦开发了1到2年,刚开发出来,还没赚钱,CPU又停产了,又得要重新开发。很多公司就死在这个上面。软件模块概要设计主要是依据系统的要求,将整个系统按功能进行模块划分,定义好各个功能模块之间的接口,以及模块内主要的数据结构等。2020/7/138.2.5物联网产品详细设计在完成了总体与概要设计后,再进行产品详细设计。首先是硬件模块详细设计,主要是具体的电路图设计和一些具体要求制定,包括PCB和外壳相互设计,尺寸这些参数。接下来,就需要依据硬件模块详细设计文档的指导,完成整个硬件的设计。包括原理图、PCB的绘制。2020/7/13原理设计和PCB设计是设计人员最主要的两个工作之一,在原理设计过程中,需要规划硬件内部资源,如系统存储空间,以及各个外围电路模块、通信模块的实现。另外,对系统主要的外围电路,如电源、复位等也需要仔细的考虑,在一些高速设计或特殊应用场合,还需要考虑EMC/EMI等。2020/7/13其次是软件模块详细设计,软件模块详细设计包括功能函数接口定义,该函数功能接口完成功能,数据结构,全局变量,完成任务时各个功能函数接口调用流程、通信通信协议与模块设计。在完成了软件模块详细设计以后,就进入具体的编码阶段,在软件模块详细设计的指导下,完成整个系统的软件编码。2020/7/138.2.6物联网产品产品调试与验证在拿到加工厂打样会的PCB空板以后,需要检查PCB空板是否和自己设计预期一样,是否存在明显的短路或断痕,检查通过后,则需要将前期采购的元器件和PCB空板交由生产厂家进行焊接,如果PCB电路不复杂,也可以直接手工焊接元器件。2020/7/13在硬件调试过程中,需要经常使用到的调试工具有万用表和示波器,逻辑分析仪等,用于测试和观察板内信号电压和信号质量,信号时序是否满足要求。当硬件产品调试通过
本文标题:第8章物联网应用设计基础
链接地址:https://www.777doc.com/doc-6469802 .html