地址总线

I2C总线概述及时序总结

。_饼干妹妹 提交于 2020-02-22 18:12:47
I2C 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee" , 它是一种两线接口。 I2C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。 SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发) SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成"线与"关系。 二.输出级 I2C总线概述及时序 每一个I2C总线器件内部的SDA、SCL引脚电路结构都是一样的,引脚的输出驱动与输入缓冲连在一起。其中输出为漏极开路的场效应管,输入缓冲为一只高输入阻抗的同相器,这种电路具有两个特点: 1)由于SDA、SCL为漏极开路结构(OD),因此它们必须接有上拉电阻,阻值的大小常为 1k8, 4k7 and 10k ,但1k8 时性能最好;当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线"与"关系。 2)引脚在输出信号的同时还将引脚上的电平进行检测,检测是否与刚才输出一致,为"时钟同步"和"总线仲裁"提供了硬件基础。 三. 主设备与从设备 系统中的所有外围器件都具有一个7位的"从器件专用地址码",其中高4位为器件类型

C语言内存小结

人盡茶涼 提交于 2020-02-20 13:05:12
学习C语言是了解内存布局的最简单、最直接、最有效的途径, 它比任何一门高级编程语言都贴近内存。以前学习C语言内存也有一段时间,却也是零零散散,于是打算写一篇博客,整理一下关于内存的内容。 内存优化小结: 计算机内存是以字节(Byte)为单位划分的,理论上CPU可以访问任意编号的字节,但是由于内存对齐(编译器的优化),情况就有所不同; CPU 通过地址总线来访问内存,一次能处理几个字节的数据,就命令地址总线读取几个字节的数据。32 位的 CPU 一次可以处理4个字节的数据,那么每次就从内存读取4个字节的数据,这就是意味着CPU读取的内存单元的标号一定是4的倍数;对于程序来说,一个变量最好位于一个寻址步长的范围内,这样一次就可以读取到变量的值;如果跨步长存储,就需要读取两次,然后再拼接数据,效率显然降低了。 例如一个 int 类型的数据,如果地址为 8,那么很好办,对编号为 8 的内存寻址一次就可以。如果编号为 10,就比较麻烦,CPU需要先对编号为 8 的内存寻址,读取4个字节,得到该数据的前半部分,然后再对编号为 12 的内存寻址,读取4个字节,得到该数据的后半部分,再将这两部分拼接起来,才能取得数据的值。 64位的处理器也是这个道理,同样的分析。 虚拟地址小结: 虚拟地址在寄存器层面是段地址+偏移地址,这两个地址通过内部总线传输到CPU的内部结构—

Linux Device Driver 3rd 下

做~自己de王妃 提交于 2020-02-16 09:34:54
第十一章 内核的数据类型 坚持使用严格的数据类型,并且使用-Wall -Wstrict-prototypes选项编译可以防止大多数的代码缺陷 内核使用的数据类型主要分为三大类: ① 标准C语言类型,类似int ② 类似u32这样有确定大小的类型 ③ 类似pid_t这样用于特定内核对象的类型 使用标准C语言类型 在不同的体系架构上,普通C语言的数据类型所占空间的大小并不相同。 Linux系统中,指针和long整型的大小总是相同的。 为数据项分配确定的空间大小 有时内核代码需要特定大小的数据项,多半是用来匹配预定义的二进制结构或者和用户口空间进行通讯或者通过在结构体中插入"填白 padding"字段 来对齐数据。 当需要知道自己的数据大小时,内核提供了下列数据类型,定义在<asm/types.h>中 ① u8; 无符号字节8位 ② u16; 无符号字 16位 ③ u32; 无符号32位 ④ u64; 无符号64位 相应的有符号类型也存在,只需将名字中的u用s替换就可以了。 接口特定的类型 内核中最常用的数据类型由typedef声明,这样可以防止出现任何移植性问题。 当需要打印一些接口特定的数据类型时,最行之有效的方法就是将其强制转换成可能的最大类型(通常是long或者unsigned long),然后用相应格式。 因为格式和类型相匹配,而且也不会丢失数据位

IIC

≡放荡痞女 提交于 2020-02-12 02:05:58
IIC 是什么: IIC(Inter-Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线 SDA 和时钟 SCL 构成的串行总线,可发送和接收数据。在 CPU 与被控 IC 之间、IC 与 IC 之间进行双向传送。在信息传输过程中IIC总线上并联的每一个器件既是被控器(或主控器),又是发送器,这取决于他所要完成的功能。CPU发出的控制信号分为地址码和数据码两部分:地址码用来选址,即接通需要控制的电路;数据码是通信的内容,这样各IC控制电路虽然挂在同一条总线上,但却彼此独立。 I2C 总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。 开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据。 结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。CPU 向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU 接收到应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,由判断为受控单元出现故障。 注意: 使用IIC总线时必须要有起始信号,结束信号和应答信号可以不要。IIC总线进行数据传送时

试着制造一台计算机

。_饼干妹妹 提交于 2020-02-11 14:25:11
来源:《计算机是怎样跑起来的》 2.1 制作微型计算机所需的元件 制作微型计算机所需的基础元件只有 3 个: CPU, 负责解释、执行程序,这里使用 Z80 CPU 内存, 负责存储程序和数据, TC5517 I/O, 负责将计算机和外部设备(周边设备)连接在一起, Z80 PIO Z80 是一款古老的CPU, TC5517 是可以存储 2K 的 8比特数据的内存。 PIO ( Parallel I/O) 可以在微型计算机和外部设备之间并行地(一排一排地)输入输入8 比特的数据。 辅助元件: 时钟发生器 : 为了驱动 CPU运转, 称为 “ 时钟信号” 的电信号必不可少, 这种电信号就好像自身带有一个时钟, 每隔一定时间就变换一次电压的高低, 输出时钟信号的元件叫做 “时钟发生器” 。 时钟发生器中带有晶振, 根据其自身的频率(振动的次数) 产生时钟信号, 时钟信号的频率可以衡量 CPU的运转速度, 这里使用的是 2.5MHZ 的时钟发生器 (每隔 1 s 发出 1 次时钟信号就是 1 Hz) 指拨开关 : 用于 输入程序 的装置也是必不可少的, 在这里我们通过拨动指拨开关来输入程序, 指拨开关是由 8 个 开关并排连在一起构成的元件, 输出程序 执行结果的装置是 8 个 LED(发光二极管)。 剩下一些细碎的元件, 电阻是用于阻碍电流流动、降低电压值的元件。 为了省去布线的麻烦,

PCIe基础知识与例程分析----PIO_demo

左心房为你撑大大i 提交于 2020-02-10 15:05:02
PCIe基础知识与例程分析 一、 基础知识 1.1 关于接口 PCIe2x接口,对比其他系列,该接口包含2对发送与接收接口, 数据部分包含双向八个接口: PETp0与PETn0:发送器差动线对,通道0 PETp1与PETn1:发送器差动线对,通道1 PERp0与PERn0:接收器差动线对,通道0 PERp1与PERn1:接收器差动线对,通道1 故链路宽度为2,有几对链路差分对链路宽度即为多大。 1.2 TLP包 1.2.1 AXI-Stream总线上的数据 在赛灵思7系列FPGA中,使用AXIStream总线进行通信,PCIe的TLP包使用AXI总线传输,在AXI总线上数据大端对齐,即高位数据在地址的高位,在传输时AXIS总线上的数据形式: 图1.1 3DW_TLP包 图1.2 4DW_TLP包 What’s more,TLP是Transaction Layer Packet事务层包的检测,关于其详细内容可查看PICe的物理结构,主要是事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer)。 事务(处理)层 :高层事务源事务源与传送设备的设备核心,结束于接收设备的设备核心,处理层是组装出站处理层数据包的起点,也是接收层拆解入站TLP的终点。在发送数据时,处理层根据设备核心的请求构建TLP头

关于IIC总线

二次信任 提交于 2020-02-08 12:51:45
关于IIC总线 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。可随时监控内存、硬盘、网络、系统温度等多个参数,增加了系统的安全性,方便了管理。 1 I2C总线特点 I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。 I2C总线的另一个优点是,它支持多主控(multimastering), 其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 2 I2C总线工作原理 2.1 总线的构成及信号类型 I2C总线是由 数据线SDA 和 时钟SCL 构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,最高传送速率100kbps。 各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作

计算机网络---数据链路层

假装没事ソ 提交于 2020-01-26 04:49:03
数据链路层 一、链路和数据链路  1、 链路: 一个结点与相邻结点之间的一段物理线路(计算机网络由结点和链路组成)  2、 数据链路: 上述物理链路 + 必要的通信协议 二、 帧: 帧是数据链路层的协议数据单元。数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层(网络层协议数据单元是IP数据报,或称分组,包),过程大致如下:  1、结点A的数据链路层把网络层交下来的ip数据报添加 首部和尾部 封装成帧  2、结点A把封装好的帧发送给结点B的数据链路层  3、若结点B收到无差错的帧,则取出其中的数据报交给上面的网络层,否则丢弃这个帧  (说明:在步骤2中,结点A先把封装好的帧传给本结点的物理层,物理层通过传输媒体传输比特流,结点B的物理层接收,并转换成相应的帧给数据链路层) 三、数据链路层的三个基本问题  1、 封装成帧: 在一段数据(IP数据报)的前后分别添加首部和尾部,构成一个帧。IP数据报是帧的数据部分,首部和尾部是控制部分。   ~ 每个数据链路层协议都规定了所能传送的帧的 数据部分长度上限---最大传送单元MTU ,IP数据报的大小必须小于该MTU值    ~为了接收方准确的接收帧的起止,需要给帧的首部和尾部使用特殊的帧定界符(SOH和EOT)  2、 透明传输: 透明,表示 某一个实际存在的事物看起来却好像不存在一样

Linux中IIC总线驱动分析

断了今生、忘了曾经 提交于 2020-01-21 07:26:01
虽然I2C硬件体系结构比较简单,但是I2C体系结构在Linux中的实现却相当复杂.通过阐述Linux系统中I2C总线体系结构,在此基础上完成嵌入式Linux系统中I2C总线驱动的开发. 1. 嵌入式Linux中I2C驱动程序分析 I2C(Inter2IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.嵌入式系统中,微控制器通过I2C总线可随时可对各个系统中的组件进行设置和查询,以管理系统的配置或掌握组件的功能状态来控制外围设备.I2C总线因为协议成熟,引脚简单,传输速率高,支持的芯片多,并且有利于实现电路的标准化和模块化,得到了包括Linux在内的很多操作系统的支持,受到开发者的青睐.在Linux环境下使用I2C总线协议,需要理解Linux的I2C总线驱动的体系结构,在此基础上来进行嵌入式驱动程序和应用程序的开发. 1.1 Linux的I2C驱动框架 Linux内核的I2C总线驱动程序框架如图1所示: Linux的I2C体系结构分为3个组成部分: I2C核心:I2C核心提供了I2C总线驱动和设备驱动的注册,注销方法,I2C通信方法(即"al2gorithm")上层的,与具体适配器无关的代码以及探测设备,检测设备地址的上层代码等.这部分是与平台无关的

计算机组成原理(期末篇)

蹲街弑〆低调 提交于 2020-01-08 22:25:51
1、计算机系统的组成 计算机系统由硬件和软件两部分组成 硬件,是指计算机的实体部分,由看得见摸得着的各种电子元器件组成,如主机、外设 软件,是指具有各类特殊功能的程序,通常放在计算机的主存或辅存中 软件分为系统软件和操作软件 系统软件(程序软件),用来管理整个计算机系统,监听服务,调度系统资源,包括:标准程序库、语言处理程序、操作系统、服务程序、数据库管理系统、网路软件等 应用软件(应用程序),用户根据任务需要所编制的各种程序 2、冯诺依曼机器的主要特点? 1)计算机由运算器、存储器、控制器、输入设备和输出设备五大部分组成; 2)指令和数据存储在存储器中,并可以按地址访问; 3)指令和数据均以二进制表示; 4)指令由操作码和地址码构成,操作码指明操作的性质,地址码表示操作数在存储器中的位置; 5)指令在存储器内按顺序存放,通常按自动的顺序取出执行; 6)机器以运算器为中心,I/O设备与存储器交换数据也要通过运算器。(后来以存储器为中心) 3、区分存储单元、存储字、存储字长、存储体、机器字长、存储字长 存储单元:存储一个存储字并具有特定存储地址的存储单位; 存储字:一个存储单元中存放的所有的二进制数据,按照某个地址访问某个存储单元获取的二进制数据。 存储字长:存储字中二进制数据的位数,即按照某个地址访问某个存储单元获取的二进制数据的位数; 存储体:由多个存储单元构成的存储器件。