摘要:
SYS.3 | 系统架构设计 系统架构设计过程的目的是建立一个系统体系结构设计,并确定哪些系统需求分配给系统的哪些元素,并根据确定的标准评估系统架构。 系统结构设计需要做一下工作: 开发系统架构设计。根据功能和非功能的系统需求,开发并记录系统架构设计,确定系统的要素。 分配系统需求。将系统需求分配给 阅读全文
摘要:
简介 一直一以来都是站在实现某个模块功能的角度去做软件开发,没有尝试过站在系统的层面去做开发。最近正好不忙,觉得是时候以系统工程师的视角,去开发一个完整的系统。接下来的几篇文章,我会记录一个USB转CAN总线系统(简称CAN盒子)的开发过程。 这个过程偏向于软件层面,从需求分析,系统架构设计,软件架 阅读全文
摘要:
前面的两篇文章介绍和分析了USB的一些基本知识,结合前面的介绍,今天用实例介绍USB的枚举过程。 1 | 概况 硬件基于EK-TMC123GXL开发板,软件是TI提供的USB批量传输的简单例子,在PC端用命令行通过USB发送字符串,开发板通过USB返回应对的字符串(发送的是大写字母,返回小写字母,反 阅读全文
摘要:
在上一篇文章全速USB波形数据分析(一)介绍了全速USB的数据包(Packet)的组成,数据的类型等基本知识。这篇文章介绍USB的几种传输方式 事务(Transaction) USB协议定义了三种不同的事务(Transation),即SETUP事务, IN事务和OUT事务 SETUP 事务 一次成功 阅读全文
摘要:
在之前的文章一次CAN波形分析之旅里,根据示波器采集的波形数据,详细地分析了CAN通信。今天来分析USB数据,还是同样的流程,但是这次使用matplotlib来协助分析。 USB基本波形 USB通过一对差分信号进行数据传输,这对差分信号叫D+和D-,用示波器抓取一段D+和D-的信号,保存成CSV格式 阅读全文
摘要:
Prepare CAN通信协议使用了有一段时间了,但都是基于软件层面的使用,对于其波形不是很了解,正好这段时间比较闲,是时候补补硬知识。 开始之前,先介绍一下设备: 咸鱼淘来的古董级别示波器GDS-2202。200MHz,数据记录长度是12500个点(每个点40ns,总记录长度是500us) EK- 阅读全文
摘要:
NVIDIA®JetsonNano™开发套件是适用于制造商,学习者和开发人员的小型AI计算机。相比Jetson其他系列的开发板,官方报价只要99美金,可谓是相当有性价比。本文如何是一个快速入门的教程,主要介绍如何安装Ubuntu系统到Jetson Nano开发板。 需要准备的材料 TF卡 (最少16 阅读全文
摘要:
常见的编码方式有以下几种, 1、NRZ(Not Return to Zero)不归零编码, 这是一种比较简单的编码方式,二进制数据“0”和“1”分别用高电平和低电平来表示,当1位数据传输完以后,信号电平 不返回零所以称为不归零编码。 2、BiPhase编码, 相比NRZ编码方式,这种编... 阅读全文
摘要:
硬件:STM32F103C8T6 平台: ARM-MDk V5.11 前面一篇文章讲过如何利用定时器测量信号的频率(见[STM32F10x] 利用定时器测量频率),使用的是定时器的捕获/比较单元(Capture/compare),它也可以测量输入信号的脉冲宽度。 利用定时器测量脉冲宽度有两... 阅读全文
摘要:
硬件:STM32F103C8T6 平台:ARM-MDK V5.11 STM32F系列提供的标准库都是通过结构体来初始化的。比如,以下是GPIO初始化的一个示例代码: GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPI... 阅读全文