485:
介绍:
485通讯协议是串行通讯的标准。定义了电压、阻抗等,但不对软件协议给予定义。
特点:
RS-485的最大数据传输速率为10Mbps。
强大的RS-485接口,即良好的抗噪性。
RS-485接口的标准最大传输距离为4000英尺,实际可以达到3000米
使用方法:
RS485采用差分信号负逻辑,+2V~+6V表示“0”,- 6V~- 2V表示“1”。RS485有两线制和四线制两种接线,
四线制是全双工通讯方式,两线制是半双工通讯方式。
RS485接口组成的半双工网络,一般是两线制(以前有四线制接法,只能实现点对点的通信方式,现很少采用),
多采用屏蔽双绞线传输。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。
很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。RS485接口连接器采用DB-9的9芯插头座,
与智能终端RS485接口采用DB-9(孔),与键盘连接的键盘接口RS485采用DB-9(针)。
协议
RS485 仅仅规定了接受端和发送端的电气特性,它没有规定或推荐任何数据协议
CAN:
介绍:
CAN是控制器域网 (Controller Area Network, CAN) 的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。
近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。
特点:
CAN属于总线式串行通信网络。 由于采用了许多新技术和独特的设计思想 ,与同类产品相比 , CAN 总线在数据通信方面具有可靠、实时和灵活的优点。 为使设计透明和执行灵活 ,遵循 ISO /OSI标准模型 , CAN 总线结构划分为两层: 物理层和数据链路层 (包括逻辑链路控制子层 LLC和媒体访问控制子层 M AC)。
使用方法:
1. 信号传输技术数据
(1)CAN bus最高传播速度:1 Mbps
(2)ISO 分类:
低速型 低于10 kbps (用于后视镜调整、电动窗、灯光照明、雨刷器等,称作LIN总线)
低速型 10 -125 kbps (用于舒适系统、仪表显示等)
高速型 125 kbps -1Mbps (用于发动机控制、ABS、传动控制等)
(3)最多接入控制单元数:32个
(4)通用版本:Bosch CAN 2.0
2. 干扰问题
(1)两条数据线相互缠绕,防止电磁波干扰和向外辐射,规定绞距20mm。
3. CAN收发器接口
(1)常用三种接口器件
M12小型连接器、OPEN5连接端子、DB9插座
4. 显性电平和隐性电平
总线上的电平有显性电平和隐性电平两种。
总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。“显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比隐性电平更强)
协议:
CAN 协议经 ISO 标准化后有 ISO11898 标准和 ISO11519-2 标准两种。 ISO11898 和 ISO11519-2 标准对于数据 链路层的定义相同,但物理层不同。
(1) 关于 ISO11898
ISO11898 是通信速度为 125kbps-1Mbps 的 CAN 高速通信标准。 目前,ISO11898 追加新规约后,成为 ISO11898-1 新标准。
(2) 关于 ISO11519
ISO11519 是通信速度为 125kbps 以下的 CAN 低速通信标准。ISO11519-2 是 ISO11519-1 追加新规约后的版本。
单总线:
介绍;
它采用单条信号线,既可以传输时钟又可以传输数据,而且数据传输是双向的,
特点:
线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点
适用于单主机系统,能控制一个或多个从机设备
协议:
1.单总线命令序列包括
(1)第一步:初始化
1)初始化包括主机发送复位脉冲和从机发送应答脉冲两部分组成;
2)主机 发送复位脉冲时拉低总线至少480us;
3)从机响应应答脉冲时,检测到总线被释放,并由5k上拉电阻拉高,从机检测到上升沿15-60us,拉低60-240us产生响应脉冲;
(2)第二步:ROM命令(跟随需要交换的数据)
(3)第三步:功能命令(跟随需要交换的数据)
2.主机每次访问单总线设备,严格按照此命令序列,当执行搜索ROM命令()和报警搜索命令时,第三步不能再执行,需要回到第一步。
3.单总线写数据包括向单总线器件写‘0’和写‘1’;
(1)写‘0’,主机在拉低总线后,保持低电平至少60us即可;
(2)写’1’,主机在拉低总线后,在15us内释放总线,由上拉电阻拉高电平;
4.单总线读数据
(1)主机发送读数据命令后,发送读请求(拉低总线至少1us,然后释放),总线被上拉电阻拉高,从机此时发送1,则保持总线为高电平,若发送0,则拉低总线;
(2)注意:读取的每一个0 或者1,都是在主机发送读请求(拉低总线至少1us,然后释放)之后,上拉电阻拉高总线,15us内,从机改变总线状态,拉低为0,拉高为1,自主机发送读请求开始计时15us内从机把0或者1放到总线上,15us后释放总线。每读一个0或者1,至少需要60us;
SPI:
介绍;
是一种高速,高效率的串行接口技术;
特点:
可以同时发出和接收串行数据;
可以当作主机或从机工作;
提供频率可编程时钟;
发送结束中断标志;
写冲突保护;
总线竞争保护等。
使用方法:
主动方式
SPI有主从两种工作方式。在主模式下,SPI为其他节点的SPICLK引脚提供串行时钟,数据从SPISIMO引脚输出,从SPISOMI引脚输入。
主控制器写人数据到寄存器SPITXBUF便启动发送,数据从SPITXBUF传送到SPIDAT中再通过SPISIMO引脚发送出去,先发送最高位;
同时,主控制器接收到的数据通过SPISOMI引脚移入寄存器SPIDAT的最低位。当选定数量的位数发送完时,整个数据发送完毕,
紧接着接收完毕(通过SPISIMO引脚发送的SPIDAT的数据最高位每移出一位后就会从SPISOMI引脚移人一位到SPIDAT最低位)。
首先将接收到的数据传送到寄存器SPIRXBUF,并进行右对齐,供CPU读取。
从动方式
在从动方式下,数据从SPISOMI引脚移出并由SPISIMO引脚移入。SPICLK引脚作为串行移位时钟的输入。
协议:
协议:
1.起始信号和终止信号
起始信号:CS片选信号高电平变为低电平,当从机检测到自己的片选拉低后,开始与主机进行通信。
终止信号:CS信号由低电平变为高电平,结束和主机之间的通讯,本次数据交互结束。
2.数据的有效性
数据借助MOSI和MISO进行传输,通过SCK时钟线进行数据的同步传输,数据在每一个SCK时钟周期传输一位数据。数据的输入和输出是同时进行的,发送一个数据也就会接受一个数据。在进行双向通信的时候,一边采用的是“MSB先行”。
3.时钟的相位和极性
SPI_CR寄存器的时钟和极性,出现了四种组合形式。
时钟极性【CPOL】:控制的是设备在空闲状态下的电平状态
CPOL为1:空闲状态为高电平 CPOL为0:空闲状态为低电平
时钟相位【CPHA】:控制采样信号的边沿
CPHA = 1:在SCK时钟的第二个边沿进行采样,同时数据要保持稳定,与此同时,则在第一个边沿进行数据的转换,准备下一次的数据传输。
CPHA = 0:在SCK时钟的第一个边沿进行采样,同时数据要保持稳定,与此同时,则在第二个边沿进行数据的转换,准备下一次的数据传输。
12C:
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。
特点:
(1)在硬件上,二线制的 I2C 串行总线使得各 IC 只需最简单的连接,而且总线接口都集成在 IC 中,不需另加总线接口电路。电路的简化省去了电路板上的大量走线,减少了电路板的
面积,提高了可靠性,降低了成本。在 I2C 总线上,各 IC 除了个别中断引线外,相互之间没有其他连线,用户常用的 IC 基本上与系统电路无关,故极易形成用户自己的标准化、模块化设计。
(2)I2C 总线还支持多主控( multi-mastering ),如果两个或更多主机同时初始化数据传输,可以通过冲突检测和仲裁防止数据被破坏。其中任何能够进行发送和接收的设备都可以成为
主机。一个主机能够控制信号的传输和时钟频率。当然在任何时间点上只能有一个主机。
( 3)串行的 8 位双向数据传输位速率在标准模式下可达 100kbps ( S08AW系列的 I2C 模块只
支持标准模式) ,快速模式下可达 400kbps ,高速模式下可达 3.4Mbps。
( 4)连接到相同总线的 IC 数量只受到总线最大电容( 400pf )的限制。但如果在总线中加上
82B715 总线远程驱动器可以把总线电容限制扩展十倍,传输距离可增加到 15m。
使用方法:
对于I2C总线的操作,主要有以下几个命令:
开始命令:
I2C总线开始的操作过程是通过SCL为高的时候SDA有个下降沿的过程;
停止命令:
I2C停止的的操作过程是通过SCL为高的时候SDA有个上升沿的过程;
读写数据
I2C读写每一位数据都是在SCL为高的时候完成的,读写每一位数据的时候SCL都有一个高脉冲的过程,也就是说,在SCL为高的时候我们读写SDA的值,这意味着在SCL拉高之前,SDA必须为一稳定的值,不然读写就不准确;
写完从器件之后等待从器件的应答:
在主器件完成对从器件的写操作时候(每次会有一个字节的数据),主器件会等待从器件发送指示信号,这个指示信号是说从器件已经接受到了主器件的数据,这个回应ACK是个低电平脉冲。并且这是由从器件的硬件来完成的,不需要主器件来软件操作,只需要等待;
主器件读完数据后向从器件发送应答信号:
这其实包括两种情况,一种是主器件读完后还要继续读就要发送一个继续读的信号(其实就是发送0),另一种就是不再继续读了,就要发送停止读信号(其实就是发送1)。
通信方式:
1. 485:半双工,多点通信
2. CAN:CAN总线为一种多主总线,即总线上的每一个节点设备均可充当为主机,而且每一个节点设备之间也都可以互相进行通信。
3. 单总线:采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的
4. SPI:全双工,同步的通信总线
5. I2C:全双工,需要两根线即可在连接于总线上的器件之间传送信息。