精华内容
下载资源
问答
  • 华为-硬件开发流程和规范 ,华为内部资料 华为-硬件开发流程和规范 ,华为内部资料
  • 华为内部硬件开发设计流程(全),华为出品必须精品。
  • 华为硬件开发

    千次阅读 多人点赞 2018-12-28 18:24:35
    华为硬件开发小结“华为是怎样开发硬件的”——之一1、文档、评审、设计2、华为的流程“华为是怎样开发硬件的”——之二1、归一化“华为是怎样开发硬件的”——之三1、华为电路设计“华为是怎样开发硬件的”——之四...

    出处

    微信公众号–电子工程专辑–漫谈华为硬件开发结

    “华为是怎样开发硬件的”,作者朱晓明。博主将其中自己认为的重点做了摘录,供自己和大家做参考,想做深究请到文末下载资料!

    “华为是怎样开发硬件的”——之一

    1、文档、评审、设计

    (1)将工作拆散,大部分员工就成为螺丝钉,能减少因员工离职对项目进度产生的风险。
    (2)文档化进一步整理思路,讨论、评审进一步增加项目可行性。
    (3)该模式下,缺点明显,即沟通成本高,工作效率低。

    2、华为的流程

    (1)IPD(Integrated Product Development)流程来自IBM,并在使用中加入了华为特色。
    (2)华为的硬件开发流程:
    需求分析->总体设计->专题分析->详细设计->逻辑详设->原理图->PCB->检视->粘合逻辑->投板->生产试制->回板调试->单元测试->专业实验->系统联调->小批量调试->硬件稳定->维护
    (3)支撑IPD流程的系统是PDM(又名爬的慢)
    PDM(Product DataManagement 产品数据管理)。PDM是一门用来管理所有与产品相关信息(包括零件信息、配置、文档、CAD文件、结构、权限信息等)和所有与产品相关过程(包括过程定义和管理)的技术。华为所有的器件资料、产品部件、工具、文档、原理图、PCB、逻辑代码等都存在这个系统上。(系统过于庞杂,较为难用)

    “华为是怎样开发硬件的”——之二

    1、归一化

    (1)器件归一化

    • 在一个板子上面,尽可能选择成本更低的器件,选择更少种类的器件,便于集中采购,同时便于加工。
    • 影响因素是器件直接成本收益、器件发货数量、编码成本、加工成本,如去除5%精度的电阻,归一化到1%的。

    (2)单板归一化

    • 单板即各个功能模块的电路板
    • 好处:电路种类的减少,硬件生产和维护成本降低,软件的开发和维护成本降低。
    • 单板归一化首先需要处理器归一化,其次需要模块归一化(能复用),最后需要结构归一化。
    • 处理器归一化,避免X86、MIPS、ARM、PPC都用一遍,减少各操作系统(Linux、BIOS、Vxworks)下需要配备的各种软件人员。
    • 模块的归一化,如核心板能复用,能极大缩短功能类似电路板的设计周期。
    • 结构的归一化,结构件做到兼容能极大减少维护成本。

    “华为是怎样开发硬件的”——之三

    1、华为电路设计

    (1)硬件工程师的价值所在

    • 一般硬件工程师的误区是,认为自己的核心竞争力是熟练使用软件(AD、Protel),画原理图,画PCB,其实不然。
    • 重点在于懂硬件原理,电路分析,模电数电原理,电磁场理论,辅助是用熟画图软件。

    (2)电路设计流程

    • 例行的,每个电路一般都会做几个必选的专题:电源、时钟、小系统;确定各个管脚的用法、连接方式、电平是否符合要求,并归档化。
      电源专题,需要分析电源需求,每种电源的电压范围,电流需求,动态响应,上电时序;时钟专题,针对每个时钟的输入的电平标准,频率,
      抖动等参数,时钟时序,并按照各种时钟解决方案进行优化;
    • 电路设计中遇到新问题,如果较为重要,需要做该问题点的专门分析,然后画原理图。
    • 开发硬件时,Demo只是作为参考,设计依据来源于datasheet,同时需要查看数据手册的勘误表errata,必要时需要关注checklist。
    • 交付周期的限制,让每个问题点都做透彻分析成为不可能,这个时候《问题跟踪表》的使用能有效降低项目风险。

    (3)简而言之

    • 华为用1 ~ 2个月做电路分析,用1 ~ 2周画原理图,取代了,画图,调试,改版,再调试,再改版的流程。

    “华为是怎样开发硬件的”——之四 (器件选型)

    1、器件选型规范

    • 规范是大量理论分析+经验积累+实践数据的精华。
    • 规范不能根据实际需求和技术变动来调整,会限制项目做的更好,这就需要硬件工程师跳出”参考电路“、跳出”规范“,
      从原理角度出发思考问题、做设计。

    2、器件选型需要考虑的因素

    • 华为的PDM系统上,器件有对应的优先等级,”优选“、”非优选“、”禁选“、”终端专用“

    (1)可供应性

    • 华为会慎选生命周期处于衰落的器件,禁止选用停产的器件。
    • 关键器件,需要至少有两个品牌的型号互相替代(甚至方案级替代),如是独家供货,需层层汇报,决策,风险评估。

    (2)可靠性

    • 散热:功率器件优先选用Rja热阻小、Tj结温更大的封装型号;处理器选型,在性能满足情况下,尽量选择功耗小的器件。
      像Intel这样垄断的器件,只能忍受,加散热器,加风扇。
    • ESD:所选元器件抗静电能力至少达到250V。特殊器件如射频器件抗ESD能力至少100V,并设计防静电措施。华为禁止裸手拿板,排除静电损坏器件。
    • 安全:使用的材料要求满足抗静电、阻燃、防锈蚀、抗氧化以及安规等要求。
    • 失效率:避免失效高的器件。
    • 失效模式:需要考虑一些器件的失效模式是开路还是断路,评估后果。

    (3)可生产性

    • 不选用封装尺寸小于0402的器件。尽力选择表贴器件,只做一次回流焊,就完成焊接,不需要进行波峰焊。不可避免的话,要考虑能否采用
      通孔回流焊的工艺完成焊接。减少焊接的工序和成本。

    (4)环保

    • 华为产品发往欧洲的,需要注重环保,满足无铅化要求。

    (5)考虑归一化

    • 某产品大量出货时,即使前期选型不合适,也可以通过走量来获得成本优势。该情况下,优先选择成熟期的器件,慎选导入期和衰落期的。

    (6)行业管理

    • 某一大类(如电源、时钟、处理器、内存、Flash)都是专人做整个公司使用的规划和协调,提前进行市场调研,分析,编写规范。

    (7)器件部门

    • 专门有器件部门的同事分析器件的失效原因,可靠性分析,拍摄器件的X光,评估器件寿命等工作。

    (8)成本

    • 如果上述因素都不致命情况下,上述的因素都是浮云,成本才是核心!

    “华为是怎样开发硬件的”——之五 (白板讲解)

    1、好处

    • 深刻理解细节,多人谈论能把问题谈论更透彻,发挥团队最优水平,确保设计正确。
    • 讲解累积成培训,然后累积为教材,能促进技术积累。
    • 形成技术比试的氛围,激发好胜心,能快速提升个人技术,同时便于伯乐寻马。
    • 有效改善团队氛围,增进成员间技术认可度。

    “华为是怎样开发硬件的”——之六 (问题公关)

    1、产品事故

    • 一般会造成安全事故(产品造成的机房火灾)、客户损失(业务中断)、客户投诉(影响公司的品牌形象)

    2、产品问题

    • 通过一些”可维护性“、”可测试性“的软硬件设计尽力定位问题,或者通过寄存器、日志查看设备异常的记录。

    3、单板返还

    • 华为的”单板返还率“是非常重要的KPI。

    4、试验(如EMC、环境)与测试问题

    • 凡是”实验室“问题,若不解决定会在产品使用中出现
    • 凡是出现过的问题,定能被复现。
    • 凡是不能复现的问题,定是没有找到复现的规律。

    5、公关形式

    • 攻关组
      成立”某某问题“攻关组,组织相关人员和有经验的人员,一起讨论,拓展思路,丰富经验。避免钻牛角尖或无头苍蝇。
    • 例会
      重大问题公关,一定每天例会,对工作及时汇总跟进,记录结论,清晰下一步工作。
    • 日报
      进度跟进并及时反馈到领导处,提高调配资源和人力的权限。
    • 总结
      问题解决后,整理成案例、培训,与大家分享,提升团队。

    “华为是怎样开发硬件的”——之七 (开会)

    1、华为会议特点

    • 大公司通病是会多,华为便是。会多自然会造成扯皮事情。
    • 主要负责人人选清晰,权限足够,能协调资源,推动事情进步。
    • 问题都会记录、跟踪、完成,这也是前期产品质量有问题时,客户依然愿意使用。
    • 林大鸟杂。华为通过强大而明确的绩效评价体系,去引导员工主动承担任务,而不是先扯皮。
    • 产品定义会议需要发散,解决问题需要聚焦。不能阶段的会议,华为会有人控制会议走

    2、罗伯特议事法则实践

    (1)开会易出现的问题

    • 跑题:各讲各的,对牛弹琴。
    • 一言堂:领导能发挥,”我先简单说三点…再补充两点…最后再强调一点…“,然后会议就差不多了。
    • 野蛮争论:精力过多关注阴暗面,有甩锅冲动
    • 打断:有表达冲动,易打断别人的言论

    (2)法则

    • 主持人来解决以上问题
    • 但是国情中,领导身上出现问题时,领导若是强势或者主持人是马屁精,问题就没法解决,华为解决方案如下。
    • A、大基调为“以客户为中心”,客户需求一律允诺,一律搞定,这样的基调下,大家不会出现大的分歧。
    • B、绩效导向,一切按照结果去评价绩效。故某些问题上,领导提出某个方案存在重大隐患时,下属有责任和动力去提醒和反对的。
    • C、教育主管。主管培训时,华为会注重教育主管控制倾听、交流、沟通的节奏和分寸。

    3、减少无效会议

    • 领导一言堂后,团队成员待领导走后再商量怎么应付领导,这样的会议,明显无效。
    • 保证会议有效的措施如下:

    (1)例行会议,有议题

    • 每周例会明确议题和对应的时间,避免跑题。

    (2)会议有纪要

    • 每次开会的会议主持人,会议纪要人要明确。纪要人能简洁记录关键要点。
    • 纪要要明确会议结论,遗留问题,对应责任人,完成时间点。
    • 纪要要有模板,符合SMART原则。

    (3)及时跟踪,要闭环

    • 每次会议回顾之前遗留的问题。进行关闭和挂起。

    (4)所有会议要有理有据,避免拍脑袋。

    • 因为事前拍脑袋,事后会拍大腿,最后有人拍屁股走人。

    “华为是怎样开发硬件的”——之八(兄弟文化)

    任正非认为”自己做的最自我认可的一件事,就是把钱分好了,分的公平了。“

    1、团队作战、人尽其用

    • 目前国情决定,毕业生大学初入社会,成为工程师,在技术能力上整体弱于美国的,但是贵在人多。这种情况下,一个项目可以多分配工程师。
      这个时候项目管理显得尤为重要。但是分配和管理永远不可能完美,这就需要兄弟文化的补充。

    2、管理二字,基于理去管,方才生效。

    • ”宰相必起于州府,猛将必发于卒伍“,这也是有些外企到了中国,仍然玩职业经理人这套,往往行不通的原因。
    • 作为好的主管首先要具备帮助下属达成所分配目标的能力。无信服,管理寸步难行。
    • 兄弟文化,不只是吃喝,而是切实工作上的帮助和关怀。

    3、做刘邦,不做项羽

    • 个人再强,也需要团队。
    • 君子性非异也,善假于物也。

    “华为是怎样开发硬件的”——之九(测试 )

    1、人员比例

    华为研发人员中,1/3是测试人员

    2、发展阶段

    (1)青铜段位:手工作坊式测试

    • 1996年研发测试团队成立
    • 手工作坊方式的研发过程和测试

    (2)白银段位:IPD和CMM阶段

    • 1998年华为与IBM合作,开始引进IPD流程
    • 1999年左右引入CMM理念
    • 产生IPD-CMM流程

    (3)黄金段位:PTM阶段

    • 2004年在IPD基础上开发PTM流程,自动化测试规模开展
    • 2006年~2007年左右PTM趋于完善

    (4)铂金段位:IPD-RD-I&V阶段

    • 2008年左右开始推广敏捷,研发组织演变为PDU方式
    • 引进迭代开发模式,形成IPD-RD-I&V流程
    • 系统集成与验证流程:IPD-RD-I&V (I&V:Integration and Verification,照搬自Ericsson公司)

    (5)钻石段位:”后敏捷“阶段

    • 推广One Track Anatomy模式、试点持续交付、产品线工程、社区化编程
    • 在经历了一些规范化的测试流程如PTM之后, 现在华为的测试流程更加的敏捷,当然这只能是对于软件,硬件测试则不能太敏捷,在软件和硬件进行集成之前,让软件开发与测试敏捷起来似乎是未来的一种趋势。

    “华为是怎样开发硬件的”——之十

    Sourcing
    1、定位

    • Purchasing即是采购,负责订单处理,Sourcing是负责确定供货商的。
    • 小公司Sourcing和Purchasing两者是一起的,建制完全的大公司趋向于分开。
      2、作者总结的Sourcing四模型
      (1)基本型,行管和采购主导;
      (2)通用型,行管和采购主导,硬件研发影星;
      (3)专用型,硬件研发主导,行管和采购统筹;
      (4)垄断型,厂家很叼,研发、行管、采购抱团寻找方案级替代,培育潜在第二梯队。
      在这里插入图片描述

    个人感悟

    1、白板讲解

    • 华为的白板文化,本质是将所学复述出来。自己高中学校就是这么做的,测试卷子中的难题安排学生自己去讲,能极大促进进步,自己几年下来深有体会。自己小学阶段学的好多东西都会向母亲复述出来,小时候这种锻炼确实对人生影响很大。

    资料

    假如想要更深入的了解,请见于分享的资料链接资源备份精简PDF

    展开全文
  • Android智能硬件开发心得总结(一)

    千次阅读 多人点赞 2019-12-23 00:17:33
    前言:转向Android智能硬件开发近一年了,一路过来也经历过几个大大小小的项目,从对Android智能硬件一无所知到现在算是略有小成,期间踩了很多坑,也接触到了许多非Android方面的知识,现用文章的方式将之记录下来,...

    前言:转向Android智能硬件开发近一年了,一路过来也经历过几个大大小小的项目,从对Android智能硬件一无所知到现在算是略有小成,期间踩了很多坑,也接触到了许多非Android方面的知识,现用文章的方式将之记录下来,与大家分享。

    1.Android智能硬件的定义与应用领域

    关于智能硬件的定义,以我理解的角度来看,首先这是一个不同于移动手机的硬件,它本质还是一个可触碰的实质物体;其次关于智能,只要是基于Android系统开发的硬件就可称之为智能,因为智能硬件最关键的特性就是与外部连接通信,也称之为物联网,而Android系统自带优秀的外部连接通信体系。

    我们最常听到与见到的智能硬件有手环、智能音箱、智能家居这些比较成熟的消费级商品,这些智能硬件大部分都是没有界面的,与我从事的领域有所不同。没有界面的智能硬件大部分都不是Andriod系统,而有触屏界面的智能硬件我敢说80%以上都是Android系统,因为Android的交互体系绝对是最好的。

    市面上成熟的Android智能硬件有:手持POS机、自动售货机、政务自助机、人脸识别门禁、收银机、汽车多媒体、电子班牌、快递柜、影院取票机、广告视频机等等。

    2.一款智能硬件产品开发的全流程

    1. 导入需求,分析确定需求细节,讨论方案的技术可行性。
    2. 确定项目负责人、产品经理、硬件工程师、软件工程师、结构工程师、UI设计师。
    3. 由需求确定使用哪些外设,对外设进行选型,需充分考虑性能、质量、结构设计、价格、供应商支持度等各方面的因素。
    4. 优先确认使用什么Android主板,确认主板与外设选型后告知结构工程师进行结构外形设计。
    5. 硬件工程师负责外接设备的控制板开发并提供接入协议,硬件工程师还须将外设接入Android主板的线材适配好。
    6. UI设计师提供界面给软件工程师(Android),开始进入进行软件开发阶段。
    7. 产品样品建模制作出外壳,打磨、喷漆后进行所有元件的组装。
    8. 样品烧入程序,开始交予测试。
    9. 程序bug修改,稳定性测试。
    10. 所有测试通过后,撰写用户文档与操作手册。
    11. 一款智能硬件样品全部制作完毕。

    3.智能硬件开发所涉及的技术体系概述

    • Android UI
      • 列表(RecycleView)
      • 弹窗(Dialog)
      • 动画(Animation)
      • 文字与按钮(TextView)
      • 手势(Gesture)
    • 外部通信
      • 串口通信(UART)
      • 以太网
      • Wifi、热点
      • 4G
      • 蓝牙
      • USB
      • NFC
      • I2C
      • GPIO
    • 存储
      • TF卡
      • U盘
      • FTP
    • Linux系统
      • 脚本
      • 点亮屏幕
      • 固件升级
    • NDK
      • 音视频播放
      • 设备通讯协议加密
      • 接入已有的C库
      • 语音识别
      • 人脸识别
    • 外接设备
      • 二维码
      • 摄像头
      • 红外感应器
      • 喇叭、麦克风
      • 触摸屏
      • LCD液晶屏
      • 打印机
      • NFC模块
      • IC类读卡器

    4.关于主板选型

    Android主板的选型一定要放在首位,因为这是整个产品的控制中心,核心元件,如果不能自己定制主板,那就只能依赖于供应商提供方案。现行市面上非常多做安卓工业主板的,不愁找不到主板,但想要很特殊的定制可能会比较麻烦,除非你的量很大,否则只能用人家的标准板。依赖供应商还有一个特别麻烦的事情,就是系统功能定制的沟通,这是一个特别漫长而痛苦的过程。

    4.1 Anroid系统在智能硬件中所必要的功能

    结合多个项目的经验,总结出智能硬件在安卓系统中所基本必要的功能。

    序号功能说明
    1开机自启智能硬件一般只运行一个应用,且开机就要自动打开
    2保证应用永远在前台运行让用户永远不会看到除了应用之外的其它安卓界面
    3有接口设置系统时间有些局域网场景无法连接外网,需要同步局域网服务器时间
    4定时开关机(带RTC电池)为了让系统更好运行,可能需要每隔几天重启一次
    5静默安装应用,完成后直接拉起应用更新安装应用过程必须是无感的
    6系统固件更新接口将新的系统固件放入系统后能用有方法更新
    7支持U盘、TF卡且有路径检测对于非联网管理的产品必须要能检测到外部存储插入
    8设置静态以太网IP接口对于某些依赖于IP地址进行管理的产品必须要能设置IP
    9开启/关闭背光电源接口有些场景可能要求节能环保,关背光很必要
    10读写IO口接口IO口是控制外设开关的关键功能
    11设置屏幕显示方向横竖屏根据项目会有不同要求

    4.2 主板CPU芯片的选择

    CPU芯片是一块主板最核心的元件,对于智能硬件而言CPU价格是不能太高的,不然会导致产品成本过高竞争力下降,但CPU性能又不能太差以让产品毫无竞争力可言。从我观察的情况来看,现在市面上的智能硬件基本是三家芯片厂商占据了绝大部分市场,它们分别是:

    瑞芯微是我接触比较多的,在百度搜安卓主板出来的广告厂商基本都是采用瑞芯微方案的,总体来说瑞芯微方案是最成熟的。

    全志的安卓主板给我的感觉就是很便宜但系统都是4.2或4.4,说实话有点落后时代,不是5.0系统以上的主板我都不想碰,界面太丑系统还有点卡。

    最后关于飞思卡尔,这是一个国外厂商,我手上还没接触过这个芯片的板子,很少见搭载这个芯片的安卓主板,也许在某些特定应用场景才会考虑这个芯片吧。

    下面重点介绍下瑞芯微(下面简称RK芯片)系列4款常见的芯片。

    芯片定位特性
    RK3188低端四核Cortex-A9(32位),频率最高1.6GHz,四核Mali-400MP4 GPU,支持OpenGL ES1.1/2.0,1080P视频编解码 (H.264)
    RK3288中端四核Cortex-A17(32位),主频最高达1.8GHz,Mali-T764 GPU,支持OpenGL ES 1.1/2.0/3.1, OpenCL, DirectX9.3,1080P视频编解码 (H.264/265)
    RK3368中低端八核64位Cortex-A53,主频最高达1.5GHz,PowerVR G6110 GPU,支持 OpenGL ES 1.1/2.0/3.1,OpenCL,DirectX9.3,1080P视频编解码 (H.264/265)
    RK3399高端双Cortex-A72+四Cortex-A53大小核CPU结构,主频最高达1.8GHz,Mali-T864 GPU,支持OpenGL ES1.1/2.0/3.0/3.1,OpenVG1.1,OpenCL,DX11,1080P视频编解码

    目前RK3288工业主板的价格大概在350~500 之间,RK3399价格在500~700之间,RK3188比3288便宜,RK3368介于3288与3399之间。

    对于绝大多数应用场景而言,RK3288绝对能满足需求,价格也比较适中,系统一般是Android5.1不用进行运行时权限适配。RK3399主要用于对于运算能力要求比较高的场景,比如人脸识别,3399还有一大优势就是板子面积相对而言比较小。我目前基本都是采用3288进行开发的,对于智能硬件而言成本还是首要考虑因素,毕竟制造业利润低,苦笑~

    下图是一块3288的主板示意图及规格说明
    在这里插入图片描述
    在这里插入图片描述

    5.关于串口通信

    串口通信是Android智能硬件开发所必须具备的能力,市面上类型众多的外设基本都是通过串口进行数据传输的,所以说不会串口通信根本就做不了智能硬件开发。
    首先来看一张RK3288的架构图,在ConnectActivity那一个模块可以发现UART*5的字样,这就表示3288有5个串口可用,其中串口2一般是调试口不开放使用。
    在这里插入图片描述

    5.1 UART定义

    通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种串行异步收发协议。

    UART串口有三种工作方式:单工、半双工、全双工。硬件连接比较简单,仅需要3条线,注意连接时两个设备UART电平,如电平范围不一致请做电平转换后再连接,可参考此文章

    我们常见的串口通讯设置的界面如下所示,
    在这里插入图片描述
    主要有下列几个参数;

    • Speed(baud) 波特率
    • Data bits 数据位
    • Stop bits 停止位
    • Parity 奇偶校验位
    • Flow Control 流控

    我们的设置基本都是8位数据位,1位停止位,无校验无流控,就如上图所示。对于程序开发而言,主要关注的参数就是波特率。

    上述的那篇参考文章博主关于波特率是有点误解的,他将比特率理解成波特率,其实两者是有区别的。

    波特率表示每秒钟传送的码元符号的个数,是衡量数据传送速率的指标,它用单位时间内载波调制状态改变的次数来表示。在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。

    1波特即指每秒传输1个码元符号(通过不同的调制方式,可以在一个码元符号上负载多个bit位信息),1比特每秒是指每秒传输1比特(bit)。单位“波特”本身就已经是代表每秒的调制数,以“波特每秒”(Baud per second)为单位是一种常见的错误。

    按照上述的基本设置,其实一个码元总共传输了10个比特,1个起始位+1个停止位+8个数据位,如波特率为9600,那每秒一共传输了9600*10 = 96000个比特,换算成字节为12000 byte,约合11.72kb。

    需要注意的是这12000byte指的是串口实际一共传输的数据位,但对于我们程序而言,真正能处理的数据就是除去起始位与停止位的数据位,对于传输8位数据位的设置而言,波特率是多少则传输的字节就是多少。如9600的波特率表示每秒传输9600个字节,每毫秒9.6字节。

    安卓主板中一个串口端子的定义如下图所示
    在这里插入图片描述

    几乎所有安卓主板上的串口都是这种4pin的形式,这里有一个特别重要的点,就是对外设接线时,RX要对上外设的TX口,TX则对应RX口,否则是接收不到数据传输的。

    在我所接触的众多外设中,安卓的常用串口有三种标准接口。

    • RS232
    • RS485
    • TTL

    UART所指的是硬件接口,是硬件层次的描述。而TTL与RS232、485则指的是数据传输的电平标准,计算机的存储单位是二进制位(bit),也就是0和1,而0和1怎么用电压来表示呢?不同的表示方法于是对应了不同的标准,这就是TTL、RS232这些电平标准之间的区别。

    所有CPU芯片的UART数据传输的电平都是采用TTL标准的,我们所看到的安卓主板上RS232或485的接口都是要再需要经过一次电平转换才能与CPU进行通信的。可以这样说,安卓主板CPU直接引出来的串口管脚都是TTL标准的,如需要其它的接口则要中间再增加一个电平转换芯片以满足要求。

    参考文章:
    https://www.jianshu.com/p/f1bfc7f6059b
    https://blog.csdn.net/zhuyongxin_6688/article/details/78001767

    5.2 三种UART接口介绍

    TTL

    TTL(Transistor-Transistor Logic,晶体管-晶体管逻辑),TTL电路的工作电压是5V,它的输出可以是高电平(3.6V)或者低电平(0.3V)。为了用这种模拟量的电压来表示数字量的逻辑1和逻辑0,TTL电平规定:

    • 对于输出电路:电压大于等于(≥)2.4V为逻辑1;电压小于等于(≤)0.4V为逻辑0;
    • 对于输入电路:电压大于等于(≥)2.0V为逻辑1;电压小于等于(≤)0.8V为逻辑0;

    参考:https://blog.csdn.net/wofreeo/article/details/82389002

    RS232

    它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”,该标准规定采用一个25个脚的DB-25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。

    后来IBM的PC机将RS232简化成了DB-9连接器,从而成为事实标准。而工业控制的RS-232口一般只使用RXD、TXD、GND三条线。如下图所示。
    在这里插入图片描述

    采用负逻辑,规定逻辑“1”的电平为-5V~-15 V,逻辑“0”的电平为+5 V~+15 V。选用该电气标准的目的在于提高抗干扰能力,增大通信距离。RS -232的噪声容限为2V,接收器将能识别低至+3V的信号作为逻辑“0”,将高到-3 V的信号作为逻辑“1”。

    全双工通信,传输距离较短,其通讯距离小于15 m,传输速率小于20 kb/s。

    RS485

    RS-485总线标准规定了总线接口的电气特性标准即对于2个逻辑状态的定义:正电平在+2V~+6V之间,表示一个逻辑状态;负电平在-2V~-6V之间,则表示另一个逻辑状态;

    数字信号采用差分传输方式,即是A-B两者的电压差用以表示逻辑状态,能够有效减少噪声信号的干扰。

    RS-485工业总线标准能够有效支持多个分节点和通信距离远,总共可接收32个设备,且对于信息的接收灵敏度较高,均采用屏蔽双绞线传输。采用半双工(两线制)最大传输距离约1219米,传输速度最高达10Mbps。
    在这里插入图片描述

    展开全文
  • 近些天许多学嵌入式的小伙伴前来咨询,问:嵌入式软件开发好,还是硬件开发好?在小编看来,想要成为一名优秀的嵌入式开发师,还是软硬兼修为好,我们来看看这是为啥。 软硬兼修,后顾无忧 据网友光华居士表示...

    近些天许多学嵌入式的小伙伴前来咨询,问:嵌入式软件开发好,还是硬件开发好?在小编看来,想要成为一名优秀的嵌入式开发师,还是软硬兼修为好,我们来看看这是为啥。

    软硬兼修,后顾无忧

    据网友光华居士表示“嵌入式软件工程师,两手都要硬!”嵌入式软件编程显然不同于PC软件开发,它和硬件密切相关。想写好嵌入式软件代码,就必须了解清楚所使用MCU的硬件特性、各个外围电路和接口电路的原理。不仅要深挖细究MCU内核架构的知识,是否支持浮点处理器/DSP,是否支持协处理器、指令数据缓存。

    还要了解MCU的编程模型、各种存储器的地址空间分配及其访问效率如何,在MCU之外,还必须了解各种电路知识,什么地方需要上下拉,什么地方需要加滤波电路,什么地方必须隔离,哪里必须加抑制器件,等等不一而足。

    软硬结合,可以更好地实现用户需求

    比如输入捕捉,如果是通过上升沿或者下降沿捕捉,加了不合适的滤波电容会造成对沿的破坏,不加滤波电容就会受困于各种空间干扰产生的杂波。

    倘若硬件工程师搬来的是加了不合适电容的电路,搞得沿之间位宽失真,便会出现数据不正常的偶发故障,倘若硬件工程师搬来的是不加电容的电路,搞得软件工程师必须进行软件滤波,把代码搞得又复杂又难解,你说这怨谁来着?

    方便定位Bug

    钻研硬件电路可以帮助软件工程师提出更多解决问题的思路,发现导致Bug的更多可能性。一般来说,当遇到Bug时,对硬件一知半解的软件工程师只在代码层面上打转转,基本不会在硬件方面提出问题,最终为了迎合蹩脚的硬件设计出别扭无比的代码,却不曾想,只要稍稍改变一下硬件设计,就可以轻松且优雅地完成代码设计。

    技多不压身

    当我们对硬件电路设计起了怀疑,倘若自己悄没声地拿起烙铁飞个线、换个元件,验证了自己的思路,这时直起腰版、拿着板子理直气壮地去找硬件工程师,岂不是顺顺利利,又送顺水人情?

    倘若直接拿着板子,心底发虚面上露怯地去找硬件工程师理论,一场唇枪舌战在所难免,腥风血雨不说,到头来硬件工程师硬着头皮给你调调电路,真是解决了问题还好说,若是自己思路错了,那不是自找苦吃?上个班,挣点钱养家糊口而已,当个老好人,和同事其乐融融多好,吵来吵去,搞得那么辛苦,何必来着?

    但是实际中嵌入式开发需要的知识体系和技能,80%其实跟硬件平台无没有无关系的。比如计算机系统原理、编程技能、程序的编译链接、你对Linux内核的理解、设备模型、驱动架构、项目管理等等。

    结语:嵌入式学习偏软还是偏硬?就找工作而言,主要看大家是编程能力强,还是硬件操作能力强,但就个人提升而言,软硬兼修,一定会让你走向更广阔的的舞台!

    相关免费资料分享(点击即可免费观看~)

    物联网开发-零基础,你也能像高手一样精通Zigbee!
    http://www.makeru.com.cn/live/4034_2052.html?s=96806
    私有的网络协议,厉害的工程师都这样设计!
    http://www.makeru.com.cn/live/4034_2045.html?s=96806
    嵌入式数据库框架其实不难,你也能搭建!
    http://www.makeru.com.cn/live/5413_2066.html?s=96806

    765573562 学习资料交流群,想要和志同道合的朋友一起学习,大家互相分享自己的学习资料和作品,欢迎感兴趣的朋友共同学习,共同进步,每天还会有免费的公开课程!!

    展开全文
  • 试议软件开发与硬件开发的异同。

    千次阅读 2020-08-01 12:23:40
    谈起计算机的软件开发和硬件开发,哪怕是不懂计算机的人,不是计算机专业的科班生,或者是一个小学生,都知道软件开发和硬件开发是不一样的。今日,信息时代,数字经济大行其道,不懂计算机或者没有接触过计算机的人...

    谈起计算机的软件开发和硬件开发,哪怕是不懂计算机的人,不是计算机专业的科班生,或者是一个小学生,都知道软件开发和硬件开发是不一样的。今日,信息时代,数字经济大行其道,不懂计算机或者没有接触过计算机的人是少之又少了。即便没用过PC,笔记本,也玩过苹果iPhone,可以说iPhone也是一台随身小电脑。

    那么,软件开发和硬件开发,它们的差别到底在哪里?它们又有什么相同之处呢?首先,我们就必须理清这两个名词的概念了。

    软件开发,并不是在于它的“软”字,其实,这个名词和“柔软”没有任何关系。说其义,就是,软件开发是看不见摸不着的东西,即便开发完成交付后,其所谓成果,解决方案,也只存在在硬盘和显示器里边。软件开发,除了要用到硬盘,键盘鼠标,显示器之外,没有别的痕迹会留在电脑里,虽然也要用到内存和CPU,但是重启或关机后,这两者的工作使命也就完成了,或者说告一段落。

    硬件开发,也不是在于其名词中的“硬”字。而是,它是直接对电路板编程。电路板相信熟悉电子技术的人应该不陌生,我也就不作过多解释了。而电路板是一块实实在在的板子,其上遍布一条条的电路细线,按照一定的接驳规律,让电路板上的电路发挥作用,实现电子电路设计后的效果,也就完成了所谓硬件设计。当然,电路板的硬件开发只是小规模或中规模的电路设计,真正的大规模或超大规模集成电路设计用的是芯片,那里边的电路更微小,更不可见,小到可以达到几微米,或纳米级别。这里也不多说了。

    硬件开发相对于软件开发,其可见性相对大一些,因为,开发成果可以是一块电路板或一块芯片,而软件开发的成果就是一个U盘或一个硬盘就可以装载下了。如果这个U盘或硬盘还有空余的空间,就还可以装别的文件或数据。

    软件开发和硬件开发,虽然是两种不同的开发方式和模式,所存在的职位也分别是软件工程师和硬件工程师,而这个硬件工程师还可以更专业的称为电子工程师。但是它们作为都和电脑,智能机器,人工智能以及数字技术相关的技术,是不可以完全将这两者分开的,在某种程度上,它们密不可分。试想一下,软件开发需要硬件的支撑,而硬件开发又需要软件开发技术和软件开发工具,这里举两个例子,软件开发需要可以运行的CPU,完好的内存条,机械或固态硬盘存储数据,而硬件开发又需要Protel软件或MATLAB软件,用其开发的硬件可以做任何想要实现的功能。所以,硬件和软件作为计算机技术的两大分支,可以说不同,又可以说联系紧密,缺一不可。

    这里我先聊两句,作为抛砖引玉的一篇文章,希望得到大家的更深入的研讨。。。

    展开全文
  • 也许所有的电子元器件我们都学过,我们也学习了一大把的理论知识,但是却不能让这些元器件根据我们的需要随心所欲地构成我们想要的各种电路。为什么呢?因为我们缺少的不是知识而是设计电路的思路,缺少的是实战经验...
  • 智能硬件(1)--- 智能硬件开发流程

    万次阅读 多人点赞 2018-03-24 12:46:09
    1、智能硬件选择首先,没钱,就别去做智能硬件产品了。买成品就好了。我们现在去京东、淘宝上买个手环也就是几十块钱,做多一两百块钱就搞定了而如果你要自己做呢?投二三十万进去,开一套模出来,找别人定制一套...
  • 硬件开发过程简介(一)

    千次阅读 2016-07-07 08:15:32
    硬件开发的基本过程 产品硬件项目的开发,首先是要明确硬件总体需求情况,如 CPU 处理能力、 存储容量及速度,I/O 端口的分配、接口要求、电平要求、特殊电路(厚膜等) 要求等等。其次,根据需求分析制定硬件总体...
  • 【Baidu Apollo】硬件开发平台介绍

    千次阅读 2018-08-23 06:37:18
    7月4号,百度开发者大会也推出了硬件开发平台,新增了15种硬件传感器,发布了Apollo传感器单元,添加了底层硬件抽象层。 硬件开发平台的 传感器单元 ,就是前面介绍的Sensor Box,将所有的传感器数据都统一到...
  • 三年的硬件开发转软件开发:

    千次阅读 2018-12-22 21:37:08
    硬件工程师转软件工程师: ~~~00年代到10年代是HW的天下; ~~~今后是SW的天下。... 第二份工作在博世(也是一家五百强),从事的依然是硬件开发的工作,做的是安全性更高的产品,但是因为技术垄断的...
  • 关注、星标公众号,不错过精彩内容来源:嵌入式资讯精选硬件测试工程师这个职位,相对纯技术开发而言,要求不是那么高,但又需要一定技术含量。对于初入职场,想从事技术开发,而技术...
  •   2020年9月10日,华为Harmony...  小编为大家精心准备并汇总了如下HarmonyOS智能硬件开发的一手资料,赶快戳下方链接,加入HarmonyOS 生态,与我们一起构建万物互联的新时代吧~ 【HarmonyOS】智能硬件开发1-Harmon
  • 电子产品硬件开发流程

    千次阅读 2019-09-27 22:09:22
    作为电子产品开发的从业者,了解电子产品开发的流程,各部分的具体职能和作业方式,以正确给自己定位,把握自己的工作内容和工作方式,可以更好的为完成开发工作。本文结合从业经验就开发流程简单概述,简要记述笔者...
  • 什么是智能硬件开发

    千次阅读 2018-05-25 09:12:52
    2015年4月28日,2015全球移动互联网大会(GMIC)推出“TOS+”智能硬件开放平台战略,并正式发布TencentOS系统。同时,腾讯也展示了与多家合作伙伴共同推出基于该系统的智能手表、微游戏机、虚拟现实产品以及手机四大...
  • 手把手教你智能硬件开发(一) 我选Arduino

    万次阅读 多人点赞 2016-09-02 22:03:31
    智能硬件怎么入门?有没有适合软件开发者使用的硬件平台呢?本文将向您展示Arduino智能硬件开发,带你入门。
  • 基于V模型的硬件开发流程

    千次阅读 2019-11-18 09:50:56
    本人从事硬件开发多年,总结了一套很有用的硬件开发流程。 在码云上也新建了一个仓库用于实例。大家可以用git来管理设计文件。 https://gitee.com/yueleilei/Hardware_PCBA_Design_Precess 欢迎广大硬件工程师...
  • 硬件开发学习需要掌握的基础知识

    千次阅读 2018-04-30 16:05:38
    硬件工程师需要学习的知识 1) 基本设计规范 2) CPU基本知识、架构、性能及选型指导 3) MOTOROLA公司的PowerPC系列基本知识、性能详解及选型指导 4) 网络处理器(INTEL、MOTOROLA、IBM)的基本知识、架构、性能...
  • 电子设计之硬件开发流程和前辈的指导

    万次阅读 多人点赞 2015-03-03 13:39:26
    硬件开发流程:    图1:硬件开发流程    
  • 软硬结合——写给硬件开发工程师的全栈入门实战

    万次阅读 多人点赞 2018-05-06 17:10:41
    软硬结合——写给硬件开发工程师的全栈入门实战作者水平读者水平要求整个项目简单介绍教程特点为什么使用nodejs开始提问提问之前提问规范教程目录 与 安排Part1Part2Part3Part4Part5Part6题外话声明正式开始软硬结合...
  • 华为硬件开发是怎么做的?

    千次阅读 2016-04-08 08:54:37
    在国内提到硬件开发,华为无疑是最优秀的公司。所以,硬件创业者从华为出来的也非常多。这篇文章非常详细的介绍了华为硬件开发的流程,非常值得其他硬件开发者借鉴。
  • 跨平台:Arduino IDE可以在Windows、Mac OS X、Linux三大主流操作系统上运行进行开发,而其他的大多数硬件平台的控制器只能在Windows上开发。 简单清晰:Arduino IDE基于processing IDE开发。对于刚进入到这一...
  • 华为 单板硬件开发 2016校招

    万次阅读 2015-10-28 16:15:15
    第一面:硬件开发技术面 先自我介绍,都会有。直接拿着板子上,开始各种问板子,主要问了是否看过信号完整性分析的书,具体做过哪些信号完整鑫分析,然后问了建立时间、保持时间。9种电源上电顺序,通过什么办法来...
  • 硬件开发的整个全部流程持续时间比较长,但实际项目中可能有一些可借鉴的硬件产品,对硬件需求进行相应升级。硬件开发的整个流程主要包括有硬件需求分析、硬件总体设计方案、硬件开发与质量控制、系统测试、文件归档...
  • 红外体温计方案软硬件开发

    千次阅读 2020-02-22 15:42:42
    红外体温计方案软硬件开发    红外线额温枪方案采用红外线传感器 senser 收集物体发射的红外线转变为微弱的 uV~mV 级电压 信号,再经过近百倍的电压放大,进入本公司的 MCU,通过高精度高分辨率 AD 转 换器,得出...
  • AM335x硬件开发使用指南(一)

    千次阅读 2018-05-30 19:54:04
    基本硬件开发的所有335X的接口资源都在上图中显示出来了。 下面来详细分析下Functional Block Diagram里面的一些资源 一、串口类 1、UART: 拥有6路的UART All UARTs Support IrDA and CIR Modes • All ...
  • 手把手教你智能硬件开发(四) 蓝牙传输

    万次阅读 多人点赞 2016-09-07 09:46:09
    开发的 AnddleChat 来连接设备、发送数据、显示接收的内容。 大家可以, 下载该部分对应的 源码 ,编译后获取可执行的程序; 也可以使用编译好的 APK文件 ,直接安装测试。 安装完成后,启动应用,...
  • 第一章 新型敏捷硬件开发语言——Chisel和Scala

    万次阅读 多人点赞 2019-02-01 00:32:15
    用SystemC直接开发硬件并不多见,因为目前EDA工具支持的不够好,相比Verilog,开发出来的电路优化得很差。 那么主张Java的那些人呢?似乎我们现在才看到基于Java平台的HDL语言——Chisel出现,尽管Scala不是Java...
  • 华为硬件开发流程 硬件开发的规范化很重要,涵盖《硬件开发流程》《硬件开发文档管理》,《PCB投版流程》
  • 跟我学Arduino开发 提供的按钮开关,就是这样的三引脚开关。 5.1 硬件连接 三引脚按钮开关的引脚对应如下, 含义 引脚位置 连接 开发板引脚 控制 S <–> D10 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 764,903
精华内容 305,961
关键字:

硬件开发