总线时序基本信息

中文名称 总线时序 实质 即CPU通过总线进行操作
内容 各信号时间顺序上的配合关 操作 系统复位和启动操作

总线时序

所谓总线时序,即CPU通过总线进行操作(读/写、释放总线、中断响应)时,总线上各信号之间在时间顺序上的配合关系,它是同CPU的操作功能有关的。微处理器所完成的操作可分为如下几种:

1.系统复位和启动操作

2.最小方式下的总线读时序

3.最小方式下的总线写时序

4.最小方式下的总线保持

5. 外部中断响应时序

6.最大方式下的总线读时序

7.最大方式下的总线写时序

8.最大方式下的总线请求/允许时序

总线时序造价信息

市场价 信息价 询价
材料名称 规格/型号 市场价
(除税)
工程建议价
(除税)
行情 品牌 单位 税率 供应商 报价日期
CAN总线线 TX6625 查看价格 查看价格

13% 深圳市泰和安科技有限公司
总线联动操作卡 查看价格 查看价格

13% 无锡蓝天电子股份有限公司(湖州市厂商期刊)
CAN转总线网关 TX3253 查看价格 查看价格

13% 深圳市泰和安科技有限公司
总线联动操作卡 查看价格 查看价格

13% 无锡蓝天电子股份有限公司(湖州市厂商期刊)
总线模块 HJ-7051 查看价格 查看价格

13% 上海鸿真电子有限公司(湖州市厂商期刊)
总线 ZN-RVS-2×1.5 查看价格 查看价格

m 13% 深圳凌宇线缆有限公司
总线式无线网关 TX3625 查看价格 查看价格

13% 深圳市泰和安科技有限公司
总线分离器 品种:总线分离器;型号:DS7400xi-Chi系统附件;系列:DS7425;产品说明:总线分离器(与DS7430/DS7436同时使用,总 查看价格 查看价格

博世

13% 上海文桢电子科技有限公司
材料名称 规格/型号 除税
信息价
含税
信息价
行情 品牌 单位 税率 地区/时间
总线隔离模块 查看价格 查看价格

湛江市2021年3季度信息价
总线隔离模块 查看价格 查看价格

湛江市2021年2季度信息价
总线隔离模块 查看价格 查看价格

湛江市2020年2季度信息价
总线隔离模块 查看价格 查看价格

湛江市2019年4季度信息价
总线隔离模块 查看价格 查看价格

湛江市2019年3季度信息价
总线隔离模块 查看价格 查看价格

湛江市2019年2季度信息价
总线隔离模块 查看价格 查看价格

湛江市2018年3季度信息价
总线隔离模块 查看价格 查看价格

湛江市2018年2季度信息价
材料名称 规格/需求量 报价数 最新报价
(元)
供应商 报价地区 最新报价时间
总线 CAN总线|1m 3 查看价格 深圳市福克网络有限公司 广东   2022-08-04
总线 CAN总线|1m 3 查看价格 山东正瑞电子有限公司 全国   2019-11-11
总线 RS232/485总线|1m 3 查看价格 山东正瑞电子有限公司 全国   2019-11-11
总线 RS232/485总线|1m 3 查看价格 广州英博通讯设备有限公司 广东   2022-08-04
CANBUS总线 CANBUS总线|1m 2 查看价格 特变电工(德阳)电缆股份有限公司 全国   2019-04-10
KNX总线 KNX总线|3500m 1 查看价格 广州英博通讯设备有限公司 全国   2020-03-25
CANBUS总线 CANBUS总线|1m 2 查看价格 特变电工(德阳)电缆股份有限公司 全国   2019-04-10
CANBUS总线 CANBUS总线|1m 1 查看价格 远东电缆有限公司 广东  肇庆市 2019-03-07

总线时序常见问题

总线时序文献

现场总线简介及总线电缆的设计 现场总线简介及总线电缆的设计

格式:pdf

大小:1.0MB

页数: 6页

评分: 4.7

本文主要介绍了目前工业自动化控制系统中广泛使用的几种现场总线及其总线电缆的特点,并以基金会现场总线FF-H1(低速)和Profibus PA总线电缆为例,探讨了现场总线电缆的设计。

立即下载
基于PXI总线的MIC总线通讯模块设计 基于PXI总线的MIC总线通讯模块设计

格式:pdf

大小:1.0MB

页数: 4页

评分: 4.3

MIC总线是专门为了解决现代军事及工业领域中极其复杂和恶劣的工作环境下电力/数据的分配和管理而开发的一种具有结构简单及高可靠性的现场总线;在详细分析MIC总线的体系结构和通信协议之后,提出了基于PXI总线体系结构的MIC总线通讯模块的软硬件设计方案;系统可通过PXI总线灵活配置MIC的各种通讯模式参数,具有即插即用、高可靠性和小型化易集成等特点;实验证明,主模块PIM工作模式与远程从模块间数据通讯稳定且可靠,对国内MIC总线的研究与应用有重要意义。

立即下载

在做 通信过程中,我们很少会用到这样方法,一般在我们选择MCU的时候都会带有你所需要的通信接口。但是,对于一些简单的通信应该用的场合,一 般在一些 的数据通信过程中,传感器厂商会将通信协议做一些改变,这些通信协议也没有一个标准的协议规定。以至于传感器的兼容性很差,甚至有时候找不 到能够与其通信的MCU,这个时候有一种方法就是用 / 来模拟通信总线(由于I/O速度的限制一般只适用于低速的通信总线)的 。之前,用I2C通信做一个温湿度测量的工程,本篇文章就以一个例子来看看如何用I/O口对总线时序进行模拟。

我们平时计算机常用的RS232/工作在异步工作状态时是有严格的数据时钟限制,也就是我们所说的波特率,通信的两个设备有相同的波特率才能正确的通信。对于同步通信一般没有严格的时间限制,总线通过高低电平来分辨数据是"0"还是"1",有两个关键的时刻:上升沿,下降沿。它 是用过上升沿和下降沿的时刻来读写数据的,也就是说这样的话通信频率不是固定的,因为通信的设备"数"的是上升沿和下降沿的数目,然后读写数据线上的数 据。笔者做过实验,将I2C通信的频率降到了10Hz左右,这样用能够很好的捕捉到每一个时钟,通信的结果也是正确的。

好了,直接来看案例吧。

通常我们的I2C的通信时序应该如下图所示,在时钟线拉高的情况下,将数据线拉低就会产生一个启动信号。但是传感器SHT的启动信号却是一个数据线拉低后,时钟线产生一个脉冲,而后再将数据线拉高,这样做的好处是在一定程度上确保了总线正确的启动,但是几乎与之匹配的MCU。这个时候就需要通过I/O模拟的方式来与SHT11完成通信。

#define IIC_SCL RC0 //I2C时钟线

#define IIC_SDA RC1 //I2C数据线

#define IIC_SCL_DIR TRISC0 //I2C时钟线传输方向

#define IIC_SDA_DIR TRISC1 //I2C数据线传输方向

#define PORT_INPUT 1

#define PORT_OUTPUT 0

#define IIC_SCL_HIGH() IIC_SCL_DIR = PORT_INPUT //时钟线拉高

#define IIC_SCL_LOW() IIC_SCL_DIR = PORT_OUTPUT;IIC_SCL=0//时钟线拉低

#define IIC_SDA_HIGH() IIC_SDA_DIR = PORT_INPUT //数据线拉高

#define IIC_SDA_LOW() IIC_SDA_DIR = PORT_OUTPUT;IIC_SDA=0//数据线拉低

/***************

*SHT11启动时序

***************/

void SHT_START(void)

{

IIC_SCL_HIGH();

IIC_SDA_HIGH();

delay_us(5);

IIC_SDA_LOW();

delay_us(5);

IIC_SCL_LOW();

delay_us(5);

IIC_SCL_HIGH();

delay_us(5);

IIC_SDA_HIGH();

delay_us(5);

IIC_SCL_LOW();

}

/***************

*SHT11发送数据时序

***************/

void SHT_SEND(uchar data)

{uchar i,data1;

for(i=0;i<8;i++)

{

data1=data<<i;

if(!(data1&0x80))

IIC_SDA_LOW();

if(data1&0x80)

IIC_SDA_HIGH();

IIC_SCL_LOW(); //写完1位数据将时钟线拉低,等待发送

delay_us(5);

IIC_SCL_HIGH(); //时钟线上升沿,发送1位数据

delay_us(5); //等待1位数据发送完成

}

IIC_SCL_LOW();

IIC_SDA_HIGH(); //8位数据发送完成,数据线拉高,等待SLAVE器件响应

delay_us(5);

IIC_SCL_HIGH(); //时钟线拉高,产生上升沿读取数据线是否SLAVE器件有响应

//while(IIC_SDA==1);

delay_us(5);

IIC_SCL_LOW();

IIC_SDA_HIGH(); //数据线拉高,时钟线拉低,等待转换完成

}

/***************

*SHT11接收数据时序

***************/

uint SHT_REC(void)

{

uint i;

uint REC1=0,REC0=0,REC=0;

for(i=0;i<8;i++)

{

IIC_SCL_HIGH(); //转换完成,SLAVE器件将数据线拉低,时钟线产生上升沿读取高8位数据

REC1=(REC1<<1)+IIC_SDA;

delay_us(5);

IIC_SCL_LOW(); //将时钟线拉低,等待下一个上升沿的到来

delay_us(5);

}

SHT_ASK(); //高8位数据接收完毕,发送应答信号

for(i=0;i<8;i++)

{

IIC_SCL_HIGH(); //转换完成,SLAVE器件将数据线拉低,时钟线产生上升沿读取低8位数据

REC0=(REC0<<1)+IIC_SDA;

delay_us(5);

IIC_SCL_LOW();

delay_us(5);

}

SHT_STOP(); //低8位数据接收完毕,结束

REC=(REC1<<8)+REC0;

return REC;

}

/***************

*SHT11应答时序

***************/

void SHT_ASK(void)

{

IIC_SCL_LOW();

IIC_SDA_LOW(); //数据线拉低

delay_us(5);

IIC_SCL_HIGH(); //时钟线拉高才生应答信号

delay_us(5);

IIC_SDA_HIGH();

IIC_SCL_LOW();

delay_us(5);

}

/***************

*SHT11停止时序

***************/

void SHT_STOP(void)

{

IIC_SDA_HIGH();

IIC_SCL_LOW();

delay_us(5);

IIC_SCL_HIGH();

delay_us(5);

IIC_SDA_HIGH();

IIC_SCL_LOW();

}

原文链接:

总线时序相关推荐
  • 相关百科
  • 相关知识
  • 相关专栏