终端_边缘端-设备和硬件-指令集-芯片-操作系统

核心概念

工作模式  传输时序

硬件

感知芯片-Perception chip  SoC称为系统级芯片,也有称片上系统System-on-a-Chip
微控制单元(Microcontroller Unit;MCU)
ECU(Electronic Control Unit)电子控制单元
线控: 线控- drive-by-wire  
  线控执行主要包括线控制动、转向和油门
  ECU(电控单元)

硬件连接关系

硬件设计方案
  SPI(Serial Peripheral Interface,串行外设接口)是一种高速、全双工、同步通信总线,
  允许嵌入式处理器与各种外围设备以串行方式进行通信、数据交换
  连接方案
    只有一个maser、一个slave时,将master与slave上名字相同的4对接口两两互联,即可完成了接口的互联

引脚

  通信使用3根线完成:(1)地线,(2)发送数据线,(3)接收数据线。
      RS-232通信方式允许简单连接三线:Tx、Rx和地线
      串口通信最重要的参数是波特率、数据位、停止位和奇偶校验
  SPI它只需4条线:
	 -SCLK (Serial Clock,也叫SCK、CLK) 接口时钟,master输出至slave的通讯时钟。
	    串行时钟线
     - MOSI(Master Output Slave Input,也叫SIMO、MTSR、DI、DIN、SI)自master输出至slave的数据线。
	    主机输入/从机输出数据线(MISO)
     - MISO(Master Input Slave Output,也叫SOMI、MRST、DO、DOUT、SO)自slave输出至master的数据线。
	   主机输出/从机输人数据线(MOSI)
     - SS  (Slave select,也叫 NSS、CS、CSB、CSN、EN、STE、SYNC)master对slave的片选信号,自master输出至slave,低有效  
	     低电平有效的从机选择线(NSS) 	

传输协议

    SPI 是串行外设接口(Serial Peripheral Interface)
      (RS-232、RS-422与RS-485的标准与应用)
      (RS-232、RS-422与RS-485的标准与应用)
    USB(Universal Serial Bus)
      COM接口就是遵循RS232标准的物理口。
	  COM口指串口的物理实现,而RS232是一种串口接口标准
	GPIO G英文全称为 General-Purpose IO ports,也就是通用IO口 
 串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,
    但是串口可以在使用一根线发送数据的同时用另一根线接收数据

基本过程

   通信由主设备发起,主设备通过 CS 选择要通信的从设备,
   然后通过 SCLK 给从设备提供时钟信号,
   主设备的数据通过 MOSI 输出给从设备,
   同时主设备通过MISO 接收从设备发送的数据

优缺点

  SPI的缺点:没有指定的流控制,没有应答机制确认是否接收到数据
  SPI 的优点:可以同时发出和接收串行数据;

SPI控制器的结构

	 主要波特率发生器、主控逻辑、收发缓冲、控制部分等几大部分组成

SPI调试

SPI 通信的调试有多种方法,可以通过逻辑分析仪、示波器和变量观察法

分层

  SPI 物理层-硬件实现
  SPI 驱动层-通信协议层
  SPI 链路传输层--通信协议管理,应用数据分片等
  SPI 应用层
     周期性报文--结构化输出输出
	 数据格式-- Header+ content
	   Header
	        MessageID  MeasageName  MessageDirection   MessageDescription

开发代码集成

 操作系统调用
 驱动

指令集

CPU 有不同的指令集,根据他们的繁简程度可以分为两种:
   复杂指令集CISC 和精简指令集 RISC
CPU主要有两大指令集:
    复杂指令集(Complex Intruction Set Computer,CISC)架构——x86
    精简指令集(Reduced Intruction Set Computer,RISC)架构——ARM、MIPS和RISC-V
CISC:
   IP掌握在英特尔和AMD手中	
RISC	
   ARM公司在经典处理器ARM11以后的产品改用 Cortex命名,并分成A、R和M三类
    "A"系列面向尖端的基于虚拟内存的操作系统和用户应用;
    "R"系列针对实时系统;
    "M"系列对微控制器。
   华为的麒麟和鲲鹏芯片都使用的是ARM指令集
       备胎“灵犀指令集”	
  对应 
    高通、苹果、三星、联发科等ARM公司	

其他芯片

DSP(数字信号处理器)与CPU、GPU和FPGA同属于四大主流处理器系列

    DSP(digital singnal processor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件
    DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间	
    嵌入式操作系统技术虽然已经比较成熟,但在DSP处理器上应用相对较少

     DSP/BIOS是德州仪器(Texas Instruments)开发的一款面向DSP平台的实时操作系统
DSP主要两大生产商德州仪器(TI)、ADI(模拟器件公司) TMS32010,由于 TMS320 系列 DSP 芯片

芯片级-板级

 芯片到模组,模组到开发板
   微控制单元,英文为Microcontroller Unit,简称MCU,又称单片微型计算机(Single Chip Microcomputer )或单片机
     英飞凌的前身是西门子集团的半导体部门
      恩智浦、瑞萨电子、英飞凌、意法半导体和Microchip可	
 华为智能驾驶计算平台 MDC

芯片

 华为海思CPU
 华为麒麟芯片
 鲲鹏处理器和容器虚拟化技术
 华为昇腾处理器GPU
 
开源软件: 开放原子开源基金会(OpenAtom Foundation)捐赠了EulerOS

操作系统

LiteOS
    Huawei LiteOS − 轻量级物联网操作系统
        fs目录文件系统模块-Nuttx开源项目
	    网络模块-lwip开源项目
		     lwip开源项目wip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈
	  LiteOS的内核其实也并非只有一个,它被分成Liteos-m和Liteos-a两种,
	  Liteos-a和Liteos-m的主要区别就是分别为了支持Cortex-A和Cortex-M设备而设计
harmony 鸿蒙
    OpenHarmony
 
Euler欧拉
  EulerOS(服务器操作系统) CentOS
    EulerOS是华为基于CentOS源代码,面向企业应用环境开发的一个商用Linux发行版。

小米

   HyperOS = Android深度优化 + Vela物联网软件平台
  Vela系统:是这次的核心,也就是说HyperOS的主要特征在设备互联的更新。
  安全子系统:多设备互联最重要的是安全和隐私,底层基于TEE和硬件加密引擎

开源以及商业

 Nuttx 是一个实时嵌入式操作系统(Embedded RTOS)	  
   NuttX 主要遵循 Posix 和 ANSI 标准,对于在这些标准下不支持的功能,或者不适用于深度嵌入环境的功能(如 fork()),
   采用来自 Unix 和常见 RTOS (如 VxWorks)的额外的标准 API
 第一个版本由 Gregory Nutt 于 2007 年在宽松的 BSD 许可证下发布,2019年正式进入Apache基金会,NuttX被正式更名为Apache NuttX。
    NuttX集成了文件系统、网络协议栈、图形库和驱动框架
嵌入式操作系统(RTOS)操作系统,
  11种主流的RTOS,分别为 RTX、Vxworks、QNX、NuttX、μClinux、FreeRTOS,
  而国产的嵌入式操作系统包括都 江堰操作系统(djyos)、IntewellOS、Alios Things、Huawei LiteOS、SylixOS 
     RT-thread	  
   面向 IoT 领域的、高可伸缩的物联网操作系统
   
TCP/IP 开源协议栈
      Linux 内核自带了一个 TCP/IP 协议栈
      lwIP(lightweight IP):lwIP 是一个小型的 TCP/IP 协议栈,适用于嵌入式系统和低功耗设备
      uIP:uIP 是另一个小型的 TCP/IP 协议栈,主要适用于嵌入式系统和低功耗设备			

CAN信号的数据形式

 汽车电子范畴常用到的两种数据库:dbc,CDD(还有一种用于标定的数据库A2L)。
   DBC解析属于收发报文之后的事情

dbc;

dbc(data base CAN)文件描述单一CAN网络中各逻辑节点信息,
      依据该文件可以用来监视何分析CAN网络中所有逻辑节点的运行状态信息。习惯叫它通信数据库
     比如现在以车载娱乐系统为例,作为与车载其他节点数据交互频繁的节点,
	 车载娱乐系统需要实时反馈其他节点状态。最典型的莫过于与倒车雷达和车身空调控制器的交互。
     OEM在研发款新车时,会先确定整车网络拓扑(谁是网管,谁是其中网络节点)。
     对于CAN网络,会定义网络通信内容。确定网络中有那些节点(Nodes)、用到那些CAN通信报文(Messages)、报文中包含那些信号(Signals)。
     这些内容一般存在方式是Excel或者PDF文件。这时将其内容编辑成数据库形式:

    1、 数据库为dbc;
    2、 编辑工具为CANdb++ Editor
 二
   CDD是业界常用的诊断数据库,通过CANdelaStudio工具编辑生成

Vector软件 CANdb++

 Vector品牌下的CANdb++软件产品编辑器提供了可视化的选项中包含的数据容易DBC数据库和修改数据。 
 为此它包含专业、面向应用的数据视图
 DBC数据库中描述的属性可以网络,ecu连接到总线,消息和信号。 
     CANdb + +编辑器提供了可视化的选项中包含的数据容易DBC数据库和修改数据。 为此它包含专业、面向应用的数据视图。 
     CANdb + +编辑器支持开发人员在开发过程的不同阶段:
     DBC文件的创建
     向现有DBC添加消息和信号数据库
     发射和接受关系的定义
     仿真的定义环境变量
     添加特殊消息用于测试目的
     添加消息校准ecu

初始化阶段

 demo车,通常软件模块使用ROS作为middleware进行开发,
   在ROS系统上运行 peception model, localization model, path planning model 等,
   control model的ROS节点发出制动油门转向信号,通过CAN网络控制车辆的加减速和转向
CAN硬件连接:
    01.计算机通过Kvaser Leaf hardware硬件连接CAN上某一节点,
    使用kvaser canking发送模拟CAN信号--CAN总线分析仪- Kvaser 模拟CAN节点
    02.启动另外一台计算机,在ubuntu系统下导入socket_can模块
     启动ROS程序,初始化ROS package:'socket_can',编译‘listener.cpp’,'talker.cpp'和‘socket_can.cpp’代码,
       代码使用socket_can包实现ROS和CAN通信功能
    启动 talker和listener两个nodes,观察CAN与ROS通信结果
感知硬件连接:
     Camera: camera --视频采集卡(Video Capture card)  将视频信号采集到电脑中,以数据文件的形式保存在硬盘上
     lidar
     Radar
涉及
  ROS, socket-can, CAN卡的驱动
 说明
 Socket CAN涉及到CAN总线协议、套接字、Linux网络设备驱动等。
 (1)CAN总线协议;
 (2)Socket原理;
 (3)Linux网络设备驱动
 
 CAN是ControllerArea Network(控制器局域网)
 	    CAN被细分为三个层次:
                    (1)CAN对象层(the object layer);
                    (2)CAN传输层(the transfer layer);
                    (3)CAN物理层(the phyical layer)
 Socket采用C/S模型进行设计的,即Client/Server,面向客户端—服务器模型
      数据报套接字(SOCK_DGRAM)
 	 字节流套接字(SOCK_STREAM)
 	 原始套接字(SOCK_ROW)

芯片-嵌入式开发

###固件
  固件其实就是放在存储介质上的数据,当嵌入式板子启动时,
     能够从特定的位置找到这些文件,使得板子能够跑起来,这些文件就是固件
    嵌入式板子上电后,会去特定的位置寻找uboot,uboot初始化内存,初始化串口,设置linux启动参数以后,
   会将内核从flash中加载到内存。然后内核会去挂载根文件系统并启动init
  固件是指设备内部保存的设备“驱动程序”,通过固件,
    操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件
###上位机  
 通讯
  芯片--芯片与芯片之间数据交互通信,芯片与上位机数据交互通信
   通信协议:
        各通信层
   	 各通信层的数据格式-Message Formats
   芯片的硬件
      芯片的连接方式--硬件的连接关系
      SPI总线
      通信层--物理层 驱动层 数据链路层 传输层 应用层
	开发上位机软件 和使用上位机软件
		开发平台:Qt 使用C++
           WinForm 使用C#
        通信链路: 网线和串行线
        基本操作: 读和写
                  读: 读取网口给的数据,读取结果
        		  写: 启动仪器,修改仪器参数
###下位机--设备 
            名称- 传输方式-通信协议-数据
###目标处理器
    目标处理器或者 仿真器(emulator)和模拟器(simulator) 
        仿真器(emulator)的目的是作为目标系统的替代品,可以完全替代目标系统,完成其对外的功能,
		即仿真器系统只需要保证呈现给外部的行为跟目标系统一致	  
  -- linux下面的开发大多是使用通用的网络协议
###烧录:
   ####开发阶段:
      预留下载接口进行固件下载,
	  芯片烧录系统
   ####流片阶段
      在电子设备smt焊接之前通过芯片适配座和特定的烧录器对mcu进行烧录和初始化变量

星载计算机操作系统

WinCE 一般指Windows CE
Blackberry的 QNX操作系统,QNX采用微内核结构 
     QUNIX(Quick UNIX),QNX是一种商用的遵从POSIX规范的类Unix实时操作系
	 QNX主要开发汽车 网络通信也成为了QNX第二大应用领域
VxWorks操作系统
    VxWorks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统
Linux
SpaceOS2  -- 天卓操作系统
    多种资源的管理和任务调度
	任务间的通信和动态内存管理
	 双机冷备份到三机热备份 --三机容错
智能驾驶汽车中,包含四个核心子系统:传感器、计算平台、执行器与应用算法
  华为MDC(Mobile Data Center: 移动数据中心)定位为智能驾驶的计算平台	

 三大鸿蒙OS分别是——
    鸿蒙座舱操作系统 HOS  HOS 偏向于车载娱乐
	智能驾驶操作系统 AOS  AOS 是一个实时操作系统,支持ADAS的硬件和应用的管理
	智能车控操作系统 VOS  VOS 偏向于车辆控制,估计包括仪表之类的会由这个操作系统支持,
	而 Vehicle Stack 则相当于 AUTOSAR 
	 车载操作系统(Automotive Operating System,简称AOS)

GPU开发详情--版本

 Linux
   版本 apt  yum 
 
 GPU硬件版本
   lspci |grep VGA
 GPU驱动版本 nvidia-smi
         NVIDIA-SMI 460.32.03
         Driver Version: 460.32.03 
 	    nvidia-smi命令查看显卡类型以及对应的CUDA版本外
 Cuda版本
      CUDA Version: 11.2	
 	 Cuda compilation tools, release 10.2, V10.2.89
 	 nvcc: NVIDIA (R) Cuda compiler driver
 	-- -- 适配CUDA 11.2的cuDNN   CUDA Version 10.0.130
 	 cat  /usr/local/cuda/version.txt
 cudnn 版本
      cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 
 	 cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2  
   或者
    ls /usr/lib/x86_64-linux-gnu | grep cudnn

 框架版本
    Pytorch

容器里使用 GPU

本质上就是要在容器里能看到并且使用宿主机上的显卡
 01.宿主机上必先安装 Nvidia 驱动
     Nvidia 官网下载脚本安装,安装和卸载都比较方便并且适用于任何 Linux 发行版,
     命令验证是否安装成功 nvidia-smi
 02.CUDA(Compute Unified Device Architecture)是显卡厂商 NVIDIA 推出的运算平台
   NVIDIA 推出的通用并行计算架构
   
 03.cudnn库
   cuDNN 是GPU加速的用于深度神经网络的原语库
   docker19 以前都需要单独下载nvidia-docker1或nvidia-docker2来启动容器,
   自从升级了docker19后跑需要 gpu的docker只需要加个参数  --gpus all 即可 

终端概念

   GMSL( Gigabit Multimedia Serial Links (GMSL)是Maxim公司推出的一种高速串行接口,
        适用于视频、音频和控制信号的传输,
    MIPI简介 MIPI (Mobile Industry Processor Interface) 是2003年由ARM, Nokia, ST ,TI等公司成立的一个联盟,
	   目的是把手机内部的接口如摄像头、显示屏接口、射频/基		
        如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风 /喇叭接口SLIMbu
       如摄像头接口CSI、显示接口DSI、射频接口DigRF、麦克风 /喇叭接口SLIMbu			
    nvJPEG :: CUDA Toolkit Documentation
	CANFD  CAN FD报文结构
	CAN	 
	PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准
    硬盘
	    PCIe总线使用的通信协议一般都是NVMe  SATA总线使用的通信协议是AHCI或ATA

嵌入式开发

	   (XILINX(赛灵思)) XCZU7EV-3FBVB900E    其中 XCZU7
	    Vivado 设计套件,是FPGA厂商赛灵思公司2012年发布的集成设计环境
		XILINX 新一代ARM+FPGA处理器-处理器型号 :XCZU3EG/XCZU4EV/XCZU5EV
	多处理器片上系统( MPSoC ) mp
	    Zynq 针对控制、图像和网络应用推出了差异化的产品系 异构SoC,大名叫 ZynqUltraScale+。相比它的前辈Zynq-7000
		
	PetaLinux 工具提供在 Xilinx 处理系统上定制、构建和调配嵌入式 Linux 解决方案所需的所有组件

   操作系统  Petalinux
   软件开发  Vivado
   硬件开发
   全系统仿真器  (QEMU) 
   芯片	     Zynq UltraScale+ MPSoC、 Zynq-7000
        一个启动设备中获取 FSBL(first stage boot loader)-- fsbl_bsp 是fsbl工程的板级支持包
		SSBL(second stage boot loader,u-boot)

移动通信网络

计算机系统结构、互联网体系结构、移动通信系统架构是共同构成数字世界的三大基础性架构
  电子信息类和计算机类
5G: SBA是服务化架构(SBA,Service Based Architecture)
  5G 频谱和频率  波束成形。
网络能力架构
   移动性管理  路由管理 策略控制
 5G 核心网利用虚拟化和云原生软件设计。
 01.RESTful API是利用HTTP请求访问或使用数据的应用程序接口(API)的体系结构样式
      HATEOAS(Hypermedia as the engine of application state)是 REST一种约束,HATEOAS可以降低客户端和服务器之间的耦合
	    使用 HATEOAS 的 REST 服务中,客户端可以通过服务器提供的资源的表达来智能地发现可以执行的操作。
		当服务器发生了变化时,客户端并不需要做出修改,因为资源的 URI 和其他信息都是动态发现的。
   HTTP/2协议作为5G网络的信令协议
   网络存储库功能”(NRF:Network Repository Function):
   生产者(Producer)与消费者(Consumer)之间的消息交互
 基于服务的NF都接入SBI(Service Based Interface)消息总线,SBI消息总线基于HTTP/2,采用RESTful API设计原则
 02.5G的一个关键概念——「切片」 NS(Network Slice )
   网元功能实体 (NF)  网络功能服务
   网络功能虚拟化 (NFV)
   CUPS(Control and User Plane Separation):控制与用户面分离
     5G核心网的控制面采用服务化架构设计
 
 03.编码解码、调制解调、加密解密
   无线电接入网(Radio Access Network,简称:RAN)
        RNC: Radio Network Controller,也称为基站控制器
        BaseStation 基站- 固定基站和移动基站
   骨干网 Core Network,简称:CN
   User Equipment (UE)
 用“拆、组、连”来诠释5G网络架构变革
     能力原子化、基础设施云化
     组织起来,使之能够进行全生命周期的管理
     通过API接口实现能力的自由调度和封装服务
 组网
     SA 是 Standaloner的缩写,是一种5G组网模式,意为“独立组网”即一个核心网配一种基站	 
	 NSA是 Non-Standalone 5G组网模式之一,也叫做“非独立组网” NSA是一对多的组网模式,即一个核心网带两种基站
5G模式的三大类应用场景,
   即增强移动宽带(eMBB)、
   超高可靠低时延通信(uRLLC)
   和海量机器类通信(mMTC)
	 
 6G:
   五面(控制面、用户面、数据面、智能面、安全面) 增强传统控制面/用户面,按需增加独立数据、智能和安全面

参考

 SPI接口扫盲 SPI定义/SPI时序(CPHA CPOL)  https://blog.csdn.net/douqingl/article/details/50452355
 Linux下若没有SPI控制器,GPIO火速来救主!https://my.oschina.net/u/4280959/blog/4776730
 SPI通信协议介绍及调试方法
 CAN报文DBC解析的编程方法说明 https://www.vecll.com/news/10.html
 自动驾驶系统:CAN与ROS通信  https://zhuanlan.zhihu.com/p/48632100
 IT人的5G网络架构视点:从网络架构演进的前世今生详解5G各NF网络功能体 https://blog.csdn.net/LaoYuanPython/article/details/105496551	 
posted @ 2021-09-15 11:45  辰令  阅读(707)  评论(0编辑  收藏  举报