一. 485
1.介绍
485(一般称作RS485/EIA-485)。
它是隶属于OSI模型物理层电气特性规定为2线半双工多点通信标准,它的电气特性和 RS-232 大不一样,用缆线两端的电压差值来表示传递信号。
2.特性
(1)接口电平低,不易损坏芯片
RS485 的电气特性:逻辑“1”以两线间的电压差为+(2~ 6)V表示;逻辑“0”以两线间的电压差为-(2~6)V 表示。接口信号电平比 RS232 降低了,不易损坏接口电路的芯片,且该电平与 TTL 电平兼容,可方便与 TTL 电路连接。
(2)传输速率高
10 米时,RS485 的数据最高传输速率可达 35Mbps,在 1200m 时,传输速度可达 100Kbps。
(3)抗干扰能力强
RS485 接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。
(4)传输距离远,支持节点多
RS485 总线最长可以传输 1200m 以上(速率≤100Kbps)一般最大支持 32 个节点,如果使用特制的 485 芯片,可以达到 128 个或者 256 个节点,最大的可以支持到 400 个节点。
3.协议
RS485 仅仅规定了接受端和发送端的电气特性,它没有规定或推荐任何数据协议。
4.使用方法
RS485 推荐使用在点对点网络中,线型,总线型,不能是星型,环型网络。
理想情况下 RS485需要 2 个匹配电阻,其阻值要求等于传输电缆的特性阻抗(一般 120Ω)。
没有特性阻抗的话,当所有的设备都静止或者没有能量的时候就会产生噪声,而且线移需要双端的电压差。
没有终接电阻的话,会使得较快速的发送端产生多个数据信号的边缘,导致数据传输出错。
二.CAN
1. CAN 是控制器局域网络 (Controller Area Network) 的简称
它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。
2.特性
(1)多主控制(I2C有主从机之分,CAN无所谓主机从机)
在总线空闲时,所有的单元都可开始发送消息(多主控制)。
“最先”访问总线的单元可获得发送权(不管后面消息的优先级是否比自身的高)。
多个单元“同时”开始发送时,发送高优先级 ID 消息的单元可获得发送权(只在同时发送时起作用)。
(2)消息的发送(对比I2C是根据地址进行访问,这里ID非地址,而是一种表征优先级的标识符)
在 CAN 协议中,所有的消息都以固定的格式发送。当两个以上的单元同时开始发送消息时,根据ID (标识符) 决定优先级,对各消息 ID 的每个位进行逐个仲裁比较。仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作,此处这里ID非地址,而是一种表征优先级的标识符。
(3)系统的柔软性(对比I2C总线上的每个单元都有一个独立的地址)
与总线相连的单元没有类似于“地址”的信息。因此在总线上增加单元时,连接在总线上的其它单元的都不需要改变。
(4)通信速度(波特率)
由CAN的物理层就可以看出,CAN是一种异步通信方式,所以通信前必须统一好同一网络上每个单元的波特率,即使有一个单元的通信速度与其它的不一样,此单元也会输出错误信号,妨碍整个网络的通信。不同网络间则可以有不同的通信速度。
(5)远程数据请求
可通过发送“遥控帧” 请求其他单元发送数据。
(6)错误检测功能·错误通知功能·错误恢复功能
所有的单元都可以检测错误(错误检测功能)。
检测出错误的单元会立即同时通知其他所有单元(错误通知功能)。
正在发送消息的单元一旦检测出错误,会强制结束当前的发送。强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。
(7) 故障封闭
CAN 可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。
(8)连接
CAN 总线可连接的单元总数理论上是没有限制的。但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。
3.协议
CAN协议经过ISO标准化后有两个标准ISO11898标准和IS011519-2标准。其中ISO11898是针对通信速率为125Kbps~1Mbps的高速通信标准(闭环),而IS011519-2是针对通信速率为125Kbps以下的低速通信标准(开环)。
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”。“显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比隐性电平更强)。
三.单总线
1.定义
总线系统是指微型计算机各部件之间传送信息的通道。简单地说就是在总线控制器的作用下,通过总线设备接口控制、管理连接在总线上的设备使用总线。
2.特性
单总线技术具有节省I/O资源,结构简单、成本低廉、便于总线扩展维护等优点。将地址线、数据线、控制线合为一根信号线。单总线系统使用自身的网络接口的传感器和其它器件。该接口的数据通信和供电仅需通过一根数据线再加一根地线,这意味着微控制器仅需一个端口即可与单总线传感器通信。
单总线系统网络工作于一主多从模式(多点网络)。时序非常灵活,允许从机以高达16kbps的速率与主机通信。每个单总线器件都有一个全球唯一的64位ROM ID,允许单总线系统主机精确选择位于网络任何位置的一个从机进行通信。1单总线系统采用漏极开路模式工作,主机(或需要输出数据的从机)将数据线拉低到地表示数据0,将数据线释放为高表示数据1。这通常通过在数据线和VCC之间连一个分立电阻实现。
3.协议
1.定义:主机和从机用一根总线进行通信,是一种半双工的通信方式,单线=时钟线+数据线+控制线。理想状况下一条总线上的从器件数量几乎不受数量限制。
2.特点:这是由达拉斯半导体公司推出的一项通信技术。它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的。
4.使用方法
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
1.定义
SPI总线技术是Motorola公司推出的一种高速、同步、全双工的通信总线。它只需要四条线就可以完成MCU与各种外围器件的通讯,正是出于这种简单易用的特性,如今越来越多的芯片集成了这种通信协议。
2. 特点
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线:SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。SCK信号线只由主设备控制,从设备不能控制信号线。SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。
3.协议
①、 CS/SS, Slave Select/Chip Select,这个是片选信号线,用于选择需要进行通信的从设备。I2C 主机是通过发送从机设备地址来选择需要进行通信的从机设备的, SPI 主机不需要发送从机设备,直接将相应的从机设备片选信号拉低即可。
②、 SCK, Serial Clock,串行时钟,和 I2C 的 SCL 一样,为 SPI 通信提供时钟。
③、 MOSI/SDO, Master Out Slave In/Serial Data Output,简称主出从入信号线,这根数据线只能用于主机向从机发送数据,也就是主机输出,从机输入。
④、 MISO/SDI, Master In Slave Out/Serial Data Input,简称主入从出信号线,这根数据线只能用户从机向主机发送数据,也就是主机输入,从机输出。
4.使用方法
SPI 总线四种工作方式 SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串
行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。如果
CPOL=0,串行同步时钟的空闲状态为低电平;如果 CPOL=1,串行同步时钟的空闲状态为高电
平。时钟相位(CPHA)能够配置用于选择两种不同的传输协议之一进行数据传输。如果
CPHA=0,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果 CPHA=1,在串
行同步时钟的第二个跳变沿(上升或下降)数据被采样。SPI 主模块和与之通信的外设备时钟
相位和极性应该一致。
五.I2C
1.定义
在我么所知的计算体系结构中, 总线是计算机内部组件之间或计算机之间传送信息的公共通信干线,它是由导线组成的一种电路,是cpu、RAM、ROM、输入、输出等设备传递信息的公用通道,可以理解为高速公路,数据通过总线在计算机内部传输。
2. 特点
1、只需要两条总线——串行数据线(SDA)和串行时钟线(SCL)
2、每个设备都可通过唯一地址进行软件寻址
3、串行、8位单向数据传输
4、电流消耗低,抗扰度高,电源电压范围大
3.协议
主设备和从设备进行数据传输时遵循以下协议格式。数据通过一条SDA数据线在主设备和从设备之间传输0和1的串行数据。串行数据序列的结构可以分为,开始条件,地址位,读写位,应答位,数据位,停止条件.
4.使用方法
1.主机模式
(1)创建 I2C(软件模拟或硬件) 对象
(2)扫描从机, 返回所有从机地址
(3)对从机读写数据
2.从机模式
(1)创建从机回调函数
(2)创建 I2C 对象