地址总线

单片机常用名词解释与常用逻辑电路

↘锁芯ラ 提交于 2020-04-06 16:52:45
MCS-51系列单片机 MCS-51系列单片机分为两大系列,即51子系列与52子系列。 51子系列:基本型,根据片内ROM的配置,对应的芯片为8031、8051、8751、8951 52子系列:增强型,根据片内ROM的配置,对应的芯片为8032、8052、8752、8952 这两大系列单片机的主要硬件特性如下表: 从上表中可以看到,8031、8031、8032、80C32片内是没有ROM的,对应着上表看,我们可以发现,51系列的单片机的RAM大小为128B,52系列的RAM大小为256B,51系列的计数器为两个16位的,52系列的计数器为三个16位计数器。51系列的中断源为5个,52系列的中断源为6个。 8051与80C51的区别: 80C51单片机是在8051的基础上发展起来的,也就是说在单片机的发展过程中是先有8051,然后才有80C51的。 8051单片机与80C51单片机从外形看是完全一样的,其指令系统、引脚信号、总线等完全一致(完全兼容),也就是说在8051下开发的软件完全可以在80C51上应用,反过来,在89C51下开发的软件也可以在8051上应用。这两种单片机是完全可移植的。 既然这两种单片机外形及内部结构都一样,那它们之间的主要差别在哪里呢? 8051与80C51单片机的主要差别就在于芯片的制造工艺上。80C51的制造工艺是在8051基础上进行了改进。

Verilog -- IIC总线协议

纵饮孤独 提交于 2020-04-04 15:06:47
Verilog -- IIC总线协议 @ 目录 Verilog -- IIC总线协议 简介 读写时序 写时序 读时序 verilog代码设计 IIC发送模块的接口定义与整体设计 SCL标志位创建逻辑 发送逻辑 读逻辑 IIC设备多字节连续读写操作 参考自 https://www.cnblogs.com/liujinggang/p/9656358.html 上面的博文写的很好,下面只是摘录一些重要知识点以及自己的理解。 简介 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。IIC数据传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 Mbps),另外一些变种实现了低速模式(10 kbps)和快速+模式(1 Mbps)。 需要注意的是IIC总线的数据采集是scl高电平期间,再0电平期间允许sda数据变化。因此是电平敏感的,不是边沿触发类型 。  

OSI体系结构——数据链路层详解

强颜欢笑 提交于 2020-04-02 18:31:08
前言 数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一无差错的线路。为达到这一目的,数据链路必须具备一系列相应的功能。本文就数据链路层具有的功能进行相关介绍。 一、 数据链路的概念以及相关基础知识 上图为两台主机通过互联网进行通信时数据链路层所处的地位。 本文只关心在协议栈中水平防线的各数据链路层。当H1向H2发送数据时,我们可以想象数据就是在数据链路层从左向右水平传送的。于是在数据链路层的层面上,有如下链路:H1链路层→R1链路层→R2链路层→R3链路层→H2链路层 由此,我们引出了一些基本概念: 链路(link):一条无源的物理线路段,中间没有其他的交换结点。一条链路只是一条通路的一个组成部分。 数据链路(date link):除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。 现如今,最常用的方法就是使用网络适配器(网卡)来实现这些要求,一般网卡包含了数据链路层和物理层两层的功能。 数据在信道中传输,其在数据链路层中的数据单元叫做帧。 数据链路层把网络层交下来的数据封装成帧发送到链路上,并将收到的帧中的数据取出

OSI体系结构——数据链路层详解

六眼飞鱼酱① 提交于 2020-03-28 16:19:00
前言 数据链路层是OSI参考模型中的第二层,介乎于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务,数据链路层是对物理层传输原始比特流的功能的加强,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路,使之对网络层表现为一无差错的线路。为达到这一目的,数据链路必须具备一系列相应的功能。本文就数据链路层具有的功能进行相关介绍。 一、 数据链路的概念以及相关基础知识 上图为两台主机通过互联网进行通信时数据链路层所处的地位。 本文只关心在协议栈中水平防线的各数据链路层。当H1向H2发送数据时,我们可以想象数据就是在数据链路层从左向右水平传送的。于是在数据链路层的层面上,有如下链路:H1链路层→R1链路层→R2链路层→R3链路层→H2链路层 由此,我们引出了一些基本概念: 链路(link):一条无源的物理线路段,中间没有其他的交换结点。一条链路只是一条通路的一个组成部分。 数据链路(date link):除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。 现如今,最常用的方法就是使用网络适配器(网卡)来实现这些要求,一般网卡包含了数据链路层和物理层两层的功能。 数据在信道中传输,其在数据链路层中的数据单元叫做帧。 数据链路层把网络层交下来的数据封装成帧发送到链路上,并将收到的帧中的数据取出

Linux-DTS基础

孤街浪徒 提交于 2020-03-24 14:29:51
copy from : https://blog.csdn.net/qq_33003441/article/details/84257342 设备树使用手册 Device Tree是一种描述硬件的数据结构,由一系列被命名的结点(node)和属性(property)组成,而结点本身可包含子结点。所谓属性,其实就是成对出现的name和value。在Device Tree中,可描述的信息包括(原先这些信息大多被hard code到kernel中):CPU的数量和类别,内存基地址和大小,总线和桥,外设连接,中断控制器和中断使用情况,GPIO控制器和GPIO使用情况,Clock控制器和Clock使用情况。 通常由.dts文件以文本方式对系统设备树进行描述,经过Device Tree Compiler(dtc)将dts文件转换成二进制文件binary device tree blob(dtb),.dtb文件可由Linux内核解析,有了device tree就可以在不改动Linux内核的情况下,对不同的平台实现无差异的支持,只需更换相应的dts文件,即可满足,当然这样会增加内核的体积。 设备树的存储格式: 简单的说,设备树是一种描述硬件配置的树形数据结构, 有且仅有一个根节点[4]。它包含了有关CPU、物理内存、总线、串口、PHY以及其他外围设备信息等。该树继承了Open Firmware

[转帖]有问有答:寻址能力与CPU的位宽有关系吗?

江枫思渺然 提交于 2020-03-23 07:31:17
有问有答:寻址能力与CPU的位宽有关系吗? https://www.expreview.com/60286.html thesea 发布于 2019-6-6 17:16 本文约 900 字,需 2 分钟阅读 (切换至 标准版 ) 答案是没有关系。这个问题以讹传讹了很多人,传了很久,确实有必要说说。 CPU的寻址能力与它的地址总线位宽有关 ,而我们通常说的CPU位宽指的是数据总线位宽,它和地址总线位宽半毛钱关系也没有,自然也与寻址能力无关。 简单的说,CPU位宽指的是一个时钟周期内CPU能处理的二进制位数,如8086 CPU是16位的,可以一次处理2个字节(16个bit),80386 CPU是32位,能一次处理4个字节,目前的CPU基本上64位的了,一次能处理8个字节。 我们的Windows操作系统也分为32位和64位,主要是针对上面CPU的位宽做了些优化,比如32位的CPU就不能用64位的Windows(因为CPU一次只能处理32bit,而操作系统给你的指令是要处理64bit),但64位的CPU就可以运行32位的Windows,也能运行64位Windows。 那CPU的地址总线位宽到底是个什么鬼? Intel的解释是Physical Address Extensions (PAE) is a feature that allows 32-bit processors to

嵌入式开发常用通信协议(总结)

痞子三分冷 提交于 2020-03-17 07:54:01
在嵌入式系统中,板上通信接口是指用于将各种集成电路与其他外围设备交互连接的通信通路或总线。 以下内容为常用板上通信接口:包括I2C、SPI、UART、1-Wire 1. I2C总线(Inter Integrated Circuit) I2C总线是一种同步、双向、半双工的两线式串行接口总线。这里,半双工的含义 是指在任意给定的时刻,只有一个方向上是可以通信的 。I2C总线最早由Philips半导体公司于20世纪80年代研发面市。I2C最初的设计目标是为微处理器/微控制器系统与电视机外围芯片之间的连接提供简单的方法。 I2C总线由两条总线组成:串行时钟线SCL和串行数据线SDA。 SCL线——负责产生同步时钟脉冲。 SDA线——负责在设备间传输串行数据。 I2C总线是共享的总线系统,因此可以将多个I2C设备连接到该系统上。连接到I2C总线上的设备既可以用作主设备,也可以用作从设备。主设备负责控制通信,通过对数据传输进行初始化/终止化,来发送数据并产生所需的同步时钟脉冲。从设备则是等待来自主设备的命令,并响应命令接收。主设备和从设备都可以作为发送设备或接收设备。无论主设备是作为发送设备还是接收设备,同步时钟信号都只能由主设备产生。在相同的总线上,I2C支持多个主设备的同时存在。图1-1显示了I2C总线上主设备和从设备的连接关系。 图1-1                   图1-2

I2C协议

﹥>﹥吖頭↗ 提交于 2020-03-17 07:53:27
什么是I2C协议? I2C协议是单片机与其它芯片常用的通讯协议,由于只需要两根线,所以很好使用。 1. I2C总线的特点 (1)只要求两条总线线路 一条串行数据线SDA 一条串行时钟线SCL (2) 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址;主机可以作为主发送器或主机接收器 (3)它是一个真正的多主机总线,如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁防止数据被破坏 (4)串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s 快速模式下可达 400kbit/s 高速模式下可达.4Mbit/s (5)片上的滤波器可以滤去总线数据线上的毛刺波保证数据完整 (6) 连接到相同总线的IC数量只受到总线的最大电容400pF 限制 I2C协议总线信号时序分析 1 .数据的有效性: SDA线上的数据必须在时钟的高电平周期保持稳定数据线的高或低电平状态只有在 SCL线的时钟信号是低电平时才能改变。 2 .起始和停止条件 当SCL线是高电平时,SDA线从高电平向低电平切换,这个情况表示起始条件。 当SCL线是高电平时,SDA线由低电平向高电平切换表示停止条件。如图3.2 I2C起始和停止条件所示。 3. 总线空闲状态 SDA和SCL两条信号线都处于高电平,即总线上所有的器件都释放总线,两条信号线各自的上拉电阻把电平拉高; 4

计算机网络

送分小仙女□ 提交于 2020-03-17 01:23:17
某厂面试归来,发现自己落伍了!>>> 数据链路层概述 基本概念 数据发送模型: 数据链路层的信道类型: 点对点信道:这种信道使用一对一的点对点通信方式。 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。 链路和数据链路: 链路(link):是一条点到点的物理线路段,中间没有任何其他的点, 一条链路只是一条通路的一个组成部分 。 数据链路(data link):除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。 现最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和 软件。 一般的适配器都包括了数据链路层和物理层这两层的功能。 帧: 数据链路层传送的是帧 数据链路层就像一个数字管道 常常在两个对等的数据链路层之间画出一个数字管道,而在这条数字管道上传输的数据单位是帧。 要解决的三个基本问题 封装成帧 封装成帧就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧,用以确定帧的界限。 首部和尾部的一个重要作用就是进行帧定界。 如果发送端发送时出现故障,接收端没收到完整的头和尾,就会将帧丢掉 透明传输 若传输的数据是ASCI I码中“可打印字符(共95个)”集时,一切正常。 若传输的数据不是仅由“可打印字符”组成时

X86汇编1.汇编语言基础

我与影子孤独终老i 提交于 2020-02-26 02:32:25
最近学习了X86汇编,其实无论是古老的8086还是现在i3/5/7/9,Xeon3/5,在最基本原理上,都是相通的,只是CPU位数,寻址空间,寄存器个数,指令集的扩充等方面有所不同,对于学习,8086永不过时。 1.比特、字节、字、双字 在计算机中: 1比特:1位 1字节:8位 1字:16位 ,15-8(高字节)---> 7-0(低字节) 1双字:31-16(高字)---> 15-0(低字) 2.指令和指令集 机器指令就是一列二进制数字,计算机将之转变为一列高低电平,以使计算机的电子器件受到驱动,进行运算。 机器语言就是机器指令的集合。 指令一般由操作码和操作数构成,也有些指令只有操作码,没有操作数。 小端序:或叫低端字节序,内存高字节存放在高地址,内存的低字节保存在低地址 大端序:与小端序相反 指令和数据为什么要分开存放: 因为指令和数据都是二进制数,是一模一样的,即:都是一些由高低电平组和,而处理器是自动按顺序提取指令并加以执行的,在指令中混杂数据会导致处理器不能正常工作,因此,指令和数据要分开存放。存放代码的区域叫代码区,存放数据的区叫数据区,联想一下:一个二进制程序的代码段和数据段也是分开存放的。 3.汇编语言 处理器都是依靠机器指令来工作的,但是机器指令是一些没有规律的数字,编写机器指令的程序,难以书写,难以阅读,难以理解,这样就发明了汇编语言。