Skip to content

Latest commit

 

History

History
177 lines (163 loc) · 6.33 KB

电子信息系统.md

File metadata and controls

177 lines (163 loc) · 6.33 KB

电子信息系统分析设计

电子信息系统的组成

  • 硬件层面
    • 处理单元:嵌入式处理器、DSP处理器、嵌入式GPU、FPGA
    • 前向通道 :传感器、信号调理电路、A/D
    • 后向通道:D/A、控制
    • 人机接口:键盘、显示、BCI(脑机接口)
    • 通信通道:UART、网口、WiFi
    • 多个电子信息系统,通过网络相连,同时云处理中心也与之相连
      • 边缘计算(时延要求高)
      • 云计算
  • 软件层面
    • 操作系统、应用软件
    • 图像处理、深度学习

嵌入式系统概论

同通用计算机对比,嵌入式系统具备计算机的功能,但都嵌入在产品的内部发挥计算机的功能。从该定义角度,嵌入式系统包括:单片机、嵌入式处理器、DSP处理器等为核心的所有系统。

嵌入式处理器核

  • ARM:ARM9
    • 授权
  • MIPS
    • 授权
  • PowerPC:MPC860
    • 摩托罗拉(飞思卡尔)、IBM
    • 面向通讯
  • 嵌入式CPU、DSP、GPU的特点
    • CPU
      • 重控制、轻计算,更多晶体管资源用于缓存,通用性好,编程简便,灵活性高,调度管理能力强。
      • 芯片大部分用在控制单元上,基本计算单元是ALU,不适合进行计算,适合进行控制
    • DSP
      • 哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的指令,可以用来快速地实现各种数字信号处理算法。数据处理能力强和运行速度快,适合进行信号处理。
    • GPU
      • 有数量众多的计算单元和超长的流水线,适合并行处理大量的类型统一的数据。
      • 重计算、轻控制,更多晶体管资源用于计算
    • FPGA
      • 硬件可编程,依靠硬件来实现所有的功能,延时低,适合大规模并行计算。设计灵活性差,开发周期较长。

嵌入式操作系统

  • RTOS(实时操作系统)
    • VxWorks(不开源,商用)
    • pSOS(后来被并购)
  • 非RTOS
    • Embedded Linux
    • Android
  • 特点
    • RTOS
      • 实时性、可靠性
      • 微内核结构(最小结构<8KB)
      • 微秒中断处理
      • 高效的任务管理
      • 多任务,具有256优先级优先抢占和轮转调度
      • 快速,确定的上下文转换
      • 灵活的任务间通信
      • 满足TCP/IP网络标准
      • 灵活的从ROM、磁盘或网络的引导能力
      • 快速、灵活的IO系统
    • Embedded Linux
      • 代码小,速度快,可靠性高,内核代码完全开放,用户可根据需求对内核进行改造,低成本地设计和开发出满足自己需要的嵌入式系统
      • 开源、模块化设计
      • 网络功能强大
      • 跨平台,支持绝大多数众多的处理器
      • 软件资源丰富
      • 选择多样,商业的Linux和自由团体维护的Linux

电子信息系统分析设计

市场部、研发部、生产部、售前售后、财务部、法务部

  1. 需求分析(市场部、系统部)
    1. 了解行业发展现状(当前产品,行业今后发展)
    2. 结合用户需求(不同领域需求不同,明确市场群体)
    3. 相关技术发展现状
  2. 系统方案分析(市场部、系统部)
    1. 系统硬件
      1. 处理器
      2. 外围器件
      3. PCB结构
    2. 软件设计方案
      1. 操作系统选择
      2. 支持的通信协议
      3. 基本软件
    3. 算法
      1. 视频压缩算法
      2. 音频编解码算法
      3. 视频分析算法
  3. 指定时间计划
    1. 以周为单位,指定研发的时间计划
  4. 研发设计(研发部)
    1. 硬件设计
      1. PCB
      2. FPGA
      3. EDA工具,注意设计流程和规范
    2. 软件设计
      1. OS移植
      2. 通信软件
      3. 应用软件
      4. Code Review,注意编码规范
    3. 算法
    4. 联合调试
      1. PCB、FPGA、嵌入式OS
      2. 应用软件和算法的联合调试
  5. 系统测试
    1. 系统测试方案
    2. 多轮迭代
      1. 进行测试
      2. Bug List
      3. 研发部进行修改
  6. 小批量试产
    1. 进一步测试并修复Bug
    2. 研发到生产的硬件/软件文件转换
  7. 大批量生产
    1. 保证芯片的参数、工艺一致

敏捷开发(极限编程)

  1. 聚焦客户价值,消除浪费
    • 标识和消除软件开发中的浪费
    • 交付刚刚好的系统
    • 随时构建,不容忍缺陷
    • 消除技术债务,快速响应
    • 实践证明:45%的软件特性客户未使用。
    • 浪费的定义:部分完成、未应用特性、再次学习、移交、任务切换、缺陷、腐烂的架构、复杂度高的代码、低的测试自动化率、静态告警.……
  2. 激发团队潜能,加强协作
    • 认清团队能力
      • 激励:自管理
      • 绩效:不打扰、自我解决
      • 构建:和大于个体
    • 管理者转变:由控制变为辅导
    • 团队成员转变:由听从变为参与者
    • 50人的团队,30%的时间用于编码,70%用于交流,交流的时间成本高。
      • 沟通效果:白板>电话>邮件>文档
  3. 管理实践
    • 迭代计划会议
      • 团队讨论
      • 输入产品BACKLOG
      • 输出迭代
    • 每日站立会议
      • 昨天做了什么
      • 今天计划做什么
      • 需要什么帮助
    • 可视化管理
      • Story墙:TODO,DOING,DONE
      • 缺陷走势图
    • 迭代验收
      • 展示真实产品
      • 收集反馈
    • 迭代回顾会议
      • 总结
      • 头脑风暴
  4. 技术实践
    • STORY:用户做事,初始需求一>初次分解一>再次分解
    • 结对编程:一个输入,一个检视,随时交流;效率低15%,缺陷少15%。
    • TDD(测试驱动开发)
    • 持续集成
    • 产品Backlog
      • 需求对用户价值
      • 动态管理
      • 迭代需求分析
    • 迭代Backlog:任务清单
    • DOD(Definition of Done):标准
    • Anatomy系统解制:系统功能依赖关系
  5. 效果
    • 开发效率提升30%
    • 开发成本下降30%
    • 错误减少30%
    • 构建速度提升100%
    • 配置效率提升40%发布效率提升40%
    • 团队成员每天都看到自己的工作的软件成果,信心提升
    • 避免产品最终集成爆发大量问题
  6. 具体可以了解相关书籍