当前位置:文档之家› 串行总线解码及协议分析概述

串行总线解码及协议分析概述

串行总线解码及协议分析概述

简介

串行通信总线在现代电子设计中被广泛应用。相比并行总线通信,串行总线具备显着的成本优势,并在一些性能上有所改进。首先,在电路板上有较少的信号传输,所以PCB的成本较低。其次,较少的I/O引脚在每个设备上都是必要的,进而简化组件封装,从而降低器件成本。最后,一些串行总线使用差分信号,提高抗噪声能力。

串行通信标准很多,每种标准具有不同的特点,包括具体操作条件、设计复杂度、传输速率、功耗、容错,当然,还有成本的不同。虽然串行总线有很多优点,但是当排除故障和调试系统时,它们也存在缺点,因为数据传输的数据包或帧需要根据使用的编码标准进行译码。手动译码(或“位计数”)的二进制数据流是错误,并且很耗时。

PicoScope包含流行的标准串行编码的译码和分析,帮助工程师发现他们设计中的问题。比如,确定程序设计和时序误差、检查信号完整

性等其他问题。时序分析工具有助于显示每个设计元素的性能,使工程师能够确定这些需要改进的设计,以优化整个系统性能。

译码

PicoScope具有串行译码功能。译码后的数据可以以您选择的格式显示:在图中、在表中、或两种显示格式一起。

在图中

在表中

在图形格式中以总线形式显示译码数据,在一个共同的时序轴中与模拟波形对齐,错误帧用红色标记。图形可以放大,以便找到与以捕获的模拟通道相对应的时序误差或其他信号完整性问题。

在表格格式中以列表形式显示译码数据,包括所有标志和标识符。您可以通过设置筛选条件来只显示您感兴趣的帧,搜索具有特定属性的帧,或当程序应该列出数据时定义一个开始模式。

PicoScope可以对1-Wire、ARINC 429、CAN、DCC、DMX512、 Ethernet 10Base-T 和100Base-TX、FlexRay、I2C、I2S、LIN、 PS/2、SENT、SPI、UART(RS-232/RS-422/RS-485)和USB协议数据进行译码,更多协议译码支持正在开发中,在未来可以通过免费更新软件使用。

数据可以以十六进制、二进制、ASCII或十进制格式显示。为了使译码数据读取方便简单,PicoScope支持使用链接文件。比如,十六进制地址03DF可以显示为“油温"或可读形式的任何参数。

分析

PicoScope深度缓存示波器可以捕捉成百上千的串行数据帧,因此搜索和分析所捕获的的数据帧是很重要的,这里有很多种方法实现这种功能。

搜索功能是用来突出特定的数据帧,满足用户定义的搜索标准。

筛选功能只显示匹配用户自定义条件的数据帧。

统计功能显示每一个数据帧上详细的时序和电压信息,这有助于确定安全边界、抗噪声能力和延长工作周期后的设计可靠性。

链接文件功能通过将十六进制字段值更改为可读的形式(Description)来加快分析速度。所以,例如,不是显示“地址:7E”在表格视图中,而是相应的文本“设定电机速度”,或任何适当的显示形式。链接文件模板的所有字段标题可以直接从串行表工具栏创建,并且可以作为一个电子表格进行手动编辑,应用交叉参考值。

导出功能,图表视图数据可以保存在电子表格格式文件中进行离线查看和分析。统计和交叉引用信息保存在电子表格文件中。

请点击这里获取原文网址,如需更多帮助请通过点击这里联系我们

SPIICUARTUSB串行总线协议的区别

S P I、I2C、U A R T、U S B串行总线协议的区别 SPI、I2C、UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART(Universal Asynchronous Receiver Transmitter:通用 异步收发器) 第二,区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出( SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互 相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Mast er),其他设备为SPI从机或从设备(Slave)。主从设备间可以 实现全双工通信,当有多个从设备时,还可以增加一条从设备 选择线。 如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),

一 个输入口(SDI),另一个口则视实现的设备类型而定,如果 要 实现主从设备,则需输入输出口,若只实现主设备,则需输出 口即可,若只实现从设备,则只需输入口即可。 I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-mas ter)接口标准,具有总线仲裁机制,非常适合在器件之间 进 行近距离、非经常性的数据通信。在它的协议体系中,传输数 据时都会带上目的设备的设备地址,因此可以实现设备组网。如果用通用IO口模拟I2C总线,并实现双向传输,则需一 个输 入输出口(SDA),另外还需一个输出口(SCL)。(注:I2C资料了解得比较少,这里的描述可能很不完备) UART总线是异步串口,因此一般比前两种同步串口的结构要复 杂很多,一般由波特率产生器(产生的波特率等于传输波特 率 的16倍)、UART接收器、UART发送器组成,硬件上由两根线,

NMEA协议详解

NMEA协议详解 2017/9/11 NMEA协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术 委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associations)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串 口传送到PC机、PDA等设备。 NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议, 大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。 不过,也有少数厂商的设备使用自行约定的协议比如GARMIN的GPS设备(部分GARMIN设备也 可以输出兼容NMEA-0183协议的数据)。软件方面,我们熟知的Google Earth目前也不支持 NMEA-0183协议,但Google Earth已经声明会尽快实现对NMEA-0183协议的兼容。呵呵,除非 你确实强壮到可以和工业标准分庭抗礼,否则你就得服从工业标准。 NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。下面给出这些常用NMEA-0183语句 的字段定义解释。 $GPGGA 例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F 字段0:$GPGGA,语句ID,表明该语句为Global Positioning System Fix Data(GGA)GPS 定位信息 字段1:UTC 时间,hhmmss.sss,时分秒格式 字段2:纬度ddmm.mmmm,度分格式(前导位数不足则补0) 字段3:纬度N(北纬)或S(南纬) 字段4:经度dddmm.mmmm,度分格式(前导位数不足则补0) 字段5:经度E(东经)或W(西经) 字段6:GPS状态,0=未定位,1=非差分定位,2=差分定位,3=无效PPS,6=正在估算 字段7:正在使用的卫星数量(00 - 12)(前导位数不足则补0) 字段8:HDOP水平精度因子(0.5 - 99.9) 字段9:海拔高度(-9999.9 - 99999.9) 字段10:地球椭球面相对大地水准面的高度 字段11:差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)

SPII2CUART三种串行总线的原理区别及应用

简单描述: SPI 与I2C这两种通信方式都就是短距离的,芯片与芯片之间或者其她元器件如传感器与芯片之间的通信。SPI与IIC就是板上通信,IIC有时也会做板间通信,不过距离甚短,不过超过一米,例如一些触摸屏,手机液晶屏那些很薄膜排线很多用IIC,I2C能用于替代标准的并行总线,能连接的各种集成电路与功能模块。I2C就是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存这两种线属于低速传输; 而UART就是应用于两个设备之间的通信,如用单片机做好的设备与计算机的通信。这样的通信可以做长距离的。UART与,UART就就是我们指的串口,速度比上面三者快,最高达100K左右,用与计算机与设备或者计算机与计算之间通信,但有效范围不会很长,约10米左右,UART优点就是支持面广,程序设计结构很简单,随着USB的发展,UART也逐渐走向下坡; SmBus有点类似于USB设备跟计算机那样的短距离通信。 简单的狭义的说SPI与I2C就是做在电路板上的。而UART与SMBUS就是在机器外面连接两个机器的。 详细描述: 1、UART(TX,RX)就就是两线,一根发送一根接收,可以全双工通信,线数也比较少。数据就是异步传输的,对双方的时序要求比较严格,通信速度也不就是很快。在多机通信上面用的最多。 2、SPI(CLK,I/O,O,CS)接口与上面UART相比,多了一条同步时钟线,上面UART 的缺点也就就是它的优点了,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。 3、I2C(SCL,SDA)接口也就是两线接口,它就是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复杂。一般单片机系统里主要用来与24C02等小容易存储器连接。 SPI:高速同步串行口。3~4线接口,收发独立、可同步进行 UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢 SPI:一种串行传输方式,三线制,网上可找到其通信协议与用法的 3根线实现数据双向传输 串行外围接口 Serial peripheral interface UART:通用异步收发器 UART就是用于控制计算机与串行设备的芯片。有一点要注意的就是,它提供了

几大通信协议区别

I2C和SPI,UART的区别 2009-12-07 21:55 SPI--Serial Peripheral Interface,(Serial Peripheral Interface:串行外设接口)串行外围设备接口,是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。 I2C--INTER-IC(INTER IC BUS:意为IC之间总线)串行总线的缩写,是PHILIPS 公司推出的芯片间串行传输总线。它以1根串行数据线(SDA)和1根串行时钟线(SCL)实现了双工的同步数据传输。具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。 能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存。 最主要的优点是其简单性和有效性。它支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。 UART(Universal Asynchronous Receiver Transmitter:通用异步收发器):单端,远距离传输。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。----------------------------------------------------------------------------------------------------------------------------------- 区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。 如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。

GPS数据协议NMEA0183

GPS 数据协议 NMEA-0183
NMEA 0183 是美国国家海洋电子协会(National Marine Electronics Association )为海用电子设备制定的标准格式。目前业已成了 GPS 导航设备统一的 RTCM(Radio Technical Commission for Maritime services)标准协议。
序号 1 2 3 4 5 6 7
命令 $GPGGA $GPGSA $GPGSV $GPRMC $GPVTG $GPGLL $GPZDA
说明 全球定位数据 卫星 PRN 数据 卫星状态信息 运输定位数据 地面速度信息 大地坐标信息 UTC 时间和日期
最大帧长 72 65 210 70 34
注:发送次序$PZDA、$GPGGA、$GPGLL、$GPVTG、$GPGSA、$GPGSV*3、 $GPRMC 协议帧总说明: 该协议采用 ASCII 码, 其串行通信默认参数为: 波特率=4800bps, 数据位=8bit, 开始位=1bit,停止位=1bit,无奇偶校验。 帧格式形如:$aaccc,ddd,ddd,…,ddd*hh 1、“$”——帧命令起始位 2、aaccc——地址域,前两位为识别符,后三位为语句名 3、ddd…ddd——数据 4、“*”——校验和前缀 5、hh——校验和(check sum),$与*之间所有字符 ASCII 码的校验和(各字 节做异或运算,得到校验和后,再转换 16 进制格式的 ASCII 字符。) 6、——CR(Carriage Return) + LF(Line Feed)帧结束,回车和 换行 GPGGA GPS 固定数据输出语句, 这是一帧 GPS 定位的主要数据, 也是使用最广的数据。
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>*<1 5> <1> UTC 时间,格式为 hhmmss.sss。 <2> 纬度,格式为 ddmm.mmmm(前导位数不足则补 0)。 <3> 纬度半球,N 或 S(北纬或南纬)。 <4> 经度,格式为 dddmm.mmmm(前导位数不足则补 0)。

SPI、I2C、UART三种串行总线的区别

SPI、I2C、UART三种串行总线的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS:意为IC之间总线) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI 设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。 如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。 I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。 如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。(注:I2C资料了解得比较少,这里的描述可能很不完备) UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。 显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。 第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行; 第四,看看牛人们的意见吧! wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且I2C使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI 则无所谓,因为它是有时钟的协议。 quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。

GNSS输出NEMA协议解析

GNSS 导航芯片输出 NEMA 协议解析 1. NEMA 协议的由来 NMEA 协议是为了在不同的 GPS (全球定位系统)导航设备中建立统一的 BTCM (海事无线电技术委员会)标准,由美国国家海洋电子协会( NMEA-The National Marine Electronics Associa-tion )制定的一套通讯协议。GPS接收机根据NMEA-0183 协议的标准规范,将位置、速度等信息通过串口传送到 PC 机、PDA 等设备。 NMEA-0183 协议是 GPS 接收机应当遵守的标准协议,也是目前 GPS 接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。 NMEA-0183 协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA $GPGSA 、 $GPGSV 、 $GPRMC 、 $GPVTG 、 $GPGLL 等。下面给出这些常用 NMEA-0183 语句的字段定义解释。$GPGGA 例: $GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F 字段 0: $GPGGA ,语句 ID,表明该语句为 Global Positioning System Fix Data (GGA )GPS 定位信息 字段 1 : UTC 时间, hhmmss.sss ,时分秒格式 字段 2:纬度 ddmm.mmmm ,度分格式(前导位数不足则补 0) 字段3:纬度N (北纬)或S (南纬) 字段 4 :经度 dddmm.mmmm ,度分格式(前导位数不足则补 0 ) 字段 5: 经度 E(东经)或 W(西经) 字段 6: GPS 状态, 0=未定位, 1=非差分定位, 2=差分定位, 3=无效 PPS , 6=正在估算 字段 7: 正在使用的卫星数量( 00 - 12 )(前导位数不足则补 0) 字段 8 : HDOP 水平精度因子( 0.5 - 99.9 ) 字段 9: 海拔高度( -9999.9 - 99999.9 ) 字段 10: 地球椭球面相对大地水准面的高度 字段 11 : 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空) 字段 12: 差分站 ID 号 0000 - 1023 (前导位数不足则补 0,如果不是差分定位将为空) 字段 13: 校验值

SPI、I2C、UART三种串行总线协议的区别

第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输 入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以 实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。如果用通用IO 口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现 的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输 出口即可,若只实现从设备,则只需输入口即可。 I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。 在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现 设备组网。如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入 输出口(SDA),另外还需一个输出口(SCL)。(注:I2C资料了解得比较少,这 里的描述可能很不完备) UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般 由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、 UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。显然, 如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。 第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行; 第四,看看牛人们的意见吧! 1、I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单 一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无 所谓,因为它是有时钟的协议。 2、I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。

Gps协议解析

GPS卫星定位接收器的NMEA协议解析 GPS接收机只要处于工作状态就会源源不断地把接收并计算出的GPS导航定位信息通过串口传送到计算机中。前面的代码只负责从串口接收数据并将其放置于缓存,在没有进一步处理之前缓存中是一长串字节流,这些信息在没有经过分类提取之前是无法加以利用的。因此,必须通过程序将各个字段的信息从缓存字节流中提取出来,将其转化成有实际意义的,可供高层决策使用的定位信息数据。同其他通讯协议类似,对GPS进行信息提取必须首先明确其帧结构,然后才能根据其结构完成对各定位信息的提取。对于本文所使用的GARMIN GPS 天线板,其发送到计算机的数据主要由帧头、帧尾和帧内数据组成,根据数据帧的不同,帧头也不相同,主要有"$GPGGA"、"$GPGSA"、"$ GPGSV"以及"$GPRMC"等。这些帧头标识了后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾标识一帧的结束。对于通常的情况,我们所关心的定位数据如经纬度、速度、时间等均可以从"$GPRMC"帧中获取得到,该帧的结构及各字段释义如下: $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>*hh <1> 当前位置的格林尼治时间,格式为hhmmss <2> 状态, A 为有效位置, V为非有效接收警告,即当前天线视野上方的卫星个数少于3颗。 <3> 纬度, 格式为ddmm.mmmm <4> 标明南北半球, N 为北半球、S为南半球 <5> 径度,格式为dddmm.mmmm <6> 标明东西半球,E为东半球、W为西半球 <7> 地面上的速度,范围为0.0到999.9 <8> 方位角,范围为000.0到359.9 度 <9> 日期, 格式为ddmmyy <10> 地磁变化,从000.0到180.0 度 <11> 地磁变化方向,为E 或W 至于其他几种帧格式,除了特殊用途外,平时并不常用,虽然接收机也在源源不断地向主机发送各种数据帧,但在处理时一般先通过对帧头的判断而只对"$GPRMC"帧进行数据的提取处理。如果情况特殊,需要从其他帧获取数据,处理方法与之也是完全类似的。由于帧内各数据段由逗号分割,因此在处理缓存数据时一般是通过搜寻ASCII码"$"来判断是否是帧头,在对帧头的类别进行识别后再通过对所经历逗号个数的计数来判断出当前正在处理的是哪一种定位导航参数,并作出相应的处理。 附:NMEA0183常用协议格式 说明:NMEA0183格式以“$”开始,主要语句有GPGGA,GPVTG,GPRMC等

IIC总线协议最佳理解

IIC总线协议 1)IIC总线的概念 IIC总线是一种串行总线,用于连接微控制器及其外围设备,具有以下特点: ①两条总线线路:一条串行数据线(SDA),一条串行时钟线(SCL) ②每个连接到总线的器件都可以使用软件更具它的唯一的地址来识别 ③传输数据的设备间是简单的主从关系 ④主机可以用作主机发送器或主机接收器 ⑤它是一个多主机总线,两个或多个主机同时发起数据传输时,可以通过冲突检测和仲裁来方式数据被破坏 ⑥串行的8位双向数据传输,位速率在标准模式下可达100kbit/s,在快速模式下可达400kbit/s,在高速模式下可达3.4Mbit/s ⑦片上的滤波器可以增加干扰功能,保证数据的完整 ⑧连接到同一总线上的IC数量受到总线最大电容的限制 发送器:发送数据到总线的器件 接收器:从总线接收数据的器件 主机:发起/停止数据传输、提供时钟信号的器件 从机:被主机寻址的器件 多主机:可以有多个主机试图去控制总线,但是不会破坏数据 仲裁:当多个主机试图去控制总线时,通过仲裁可以使得只有一个主机获得总线控制权,并且它传输的信息不会被破坏 同步:多个器件同步时钟信号的过程

I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL 都是线“与”关系。 每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器。由总线上接收数据的器件则为接收器。 在多主机系统中,可能同时有几个主机企图启动总线传送数据。为了避免混乱, I2C总线要通过总线仲裁,以决定由哪一台主机控制总线。 在80C51单片机应用系统的串行总线扩展中,我们经常遇到的是以80C51单片机为主机,其它接口器件为从机的单主机情况。 数据位的有效性规定: I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态

NMEA0183协议说明(中文)

NMEA-0183协议说明 V2.20 2004年1月 注:因本人水平有限,难免出现错,敬请修改。

1、NMEA输出报文 A. GGA –全球定位系统固定数据 $GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M,,,,0000*18

B. GLL –地理信息——纬度/经度 $GPGLL, 3723.2475,N,12158.3416,W,161229.487,A*2C C. GSA –GNSS DOP(定位点)活动卫星 $GPGSA, A,3,07,02,26,27,09,04,15,,,,,,1.8,1.0,1.5*33

和表1.7应互换) D. GSV –GNSS DOP(定位点)活动卫星 $GPGSV,2,2,07,07,79,048,42,02,51,062,43,26,36,256,42,27,27,138,42*71

E. RMC –推荐的最小具体定位数据 $GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,*10

$GPVTG,309.62,T,,M,0.13,N,0,2,K*6E NMEA 输入报文提供了允许通过NMEA协议控制GPS的方法。 传输格式: 1.起始符包含3个字节,从MID100开始(Message identifier consisting of three numeric characters. Input messages begin at MID 100.)。?????? 2.具体数据,特定的数据序列。 3.NMEA定义的校验是2个HEX的字符,适用于所有输入报文。

I2C总线原理及应用实例

I2C总线 原理及应 用实例 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。各种 被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工 作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并 接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决 于它所要完成的功能。CPU发出的控制信号分为地址码和控制量两部分,地址码 用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别 (如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线 上,却彼此独立,互不相关。 I2C总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。 开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 结束信号:SCL为低电平时,SDA由低电平向高电平跳变,结束传送数据。 应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单 元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递 信号的判断。若未收到应答信号,由判断为受控单元出现故障。 目前有很多半导体集成电路上都集成了I2C接口。带有I2C接口的单片机有:CYGNAL的 C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX 系列等。很多外围器件如存储器、监控芯片等也提供I2C接口。 3 总线基本操作 I2C规程运用主/从双向通讯。器件发送数据到总线上,则定义为发送器,器件接收数据则定义为接收器。主器件和从器件都可以工作于接收和发送状态。总

汽车总线系统通信协议分析与比较

河南机电高等专科学校 《汽车单片机与局域网技术》 大作业 专业班级:汽电112 姓名:史帅峰 学号:111606240 成绩: 指导老师:袁霞 2013年4月16日 汽车总线系统通信协议分析与比较 摘要:本文主要针对汽车总线系统通讯协议,探讨汽车总线通讯协议的种类、发展趋势以及技术特点。在对诸多组织和汽车制造商研发的各类汽车总线进行比较和探讨的基础上,对其现状进行了分析;并综合汽车工业的特点对这两大类汽车总线协议的发展前景作了分析。关键词:汽车总线技术通讯协议车载网络 引言:汽车电子技术是汽车技术和电子技术结合发展的产物。从20世纪60年代开始,随着电子技术的飞速发展,汽车的电子化已经成为公认的汽车技术发展方向。在汽车的发展过程中,为了提高汽车的性能而增加汽车电器,电器的增加导致线缆的增加,而线束的增加又使整车质量增加、布线更加复杂、可维护性变差,从而又影响了汽车经济性能的提高。因此,一种新的技术就被研发出来,那就是汽车总线技术。总线技术在汽车中的成功应用,标志着汽车电子逐步迈向网络化。 一、车载网络的发展历程 20世纪80年代初,各大汽车公司开始研制使用汽车内部信息交互的通信方式。博世公司与英特尔公司推出的CAN总线具有突出的可靠性、实时性和灵活性,因而得到了业界的广泛认同,并在1993年正式成为国际标准和行业标准。TTCAN对CAN协议进行了扩展,提供时间触发机制以提高通讯实时性。TTCAN的研究始于2000年,现已成为CAN标准的第4部分ISO11898-4,该标准目前处于CD(委员会草案)阶段。 1994年美国汽车工业协会提出了1850通信协议规范。从1998年开始,由宝马、奥迪等七家公司和IC公司共同开发能满足车身电子要求的低成本串行总线技术,该技术在2000年2月2日完成开发,它就是LIN。 FlexRay联盟推进了FlexRay的标准化,使之成为新一代汽车内部网络通信协议。FlexRay车载网络标准已经成为同类产品的基准,将在未来很多年内,引导整个汽车电子产品控制结构的发展方向。FlexRay是继CAN和LIN之后的最新研发成果。 车载网络的分类及其网络协议 从20世纪80年代以来不断有新的网络产生,为了方便研究和应用,美国汽车工业协会(SAE)的车辆委员会将汽车数据传输网络划分为A、B、C三类。 A类网络 A类网络是面向传感器/执行器控制的低速网络,数据传输速度通常小于10kb/s,主要用于后视镜调整、电动车窗、灯光照明等控制。 A类网络大都采用通用异步收发器(UART,Universal Asynchronous Receiver/Trsmitter)标准,使用起来既简单又经济。但随着技术水平的发展,将会逐步被其他标准所代替。 A类网络目前首选的标准是LIN总线,是一种基于UART数据格式、主从结构的单线12V总线通信系统,主要用于智能传感器和执行器的串行通信。

SPI、I2C、UART三种串行总线的原理、区别及应用

简单描述: SPI 和I2C这两种通信方式都是短距离的,芯片和芯片之间或者其他元器件如传感器和芯片之间的通信。SPI和IIC是板上通信,IIC有时也会做板间通信,不过距离甚短,不过超过一米,例如一些触摸屏,手机液晶屏那些很薄膜排线很多用IIC,I2C能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C 是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存这两种线属于低速传输; 而UART是应用于两个设备之间的通信,如用单片机做好的设备和计算机的通信。这样的通信可以做长距离的。UART和,UART就是我们指的串口,速度比上面三者快,最高达100K左右,用与计算机与设备或者计算机和计算之间通信,但有效范围不会很长,约10米左右,UART优点是支持面广,程序设计结构很简单,随着USB的发展,UART也逐渐走向下坡; SmBus有点类似于USB设备跟计算机那样的短距离通信。 简单的狭义的说SPI和I2C是做在电路板上的。而UART和SMBUS是在机器外面连接两个机器的。 详细描述: 1、UART(TX,RX)就是两线,一根发送一根接收,可以全双工通信,线数也比较少。数据是异步传输的,对双方的时序要求比较严格,通信速度也不是很快。在多机通信上面用的最多。 2、SPI(CLK,I/O,O,CS)接口和上面UART相比,多了一条同步时钟线,上面UART 的缺点也就是它的优点了,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。 3、I2C(SCL,SDA)接口也是两线接口,它是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复杂。一般单片机系统里主要用来和24C02等小容易存储器连接。 SPI:高速同步串行口。3~4线接口,收发独立、可同步进行 UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢 SPI:一种串行传输方式,三线制,网上可找到其通信协议和用法的 3根线实现数据双向传输 串行外围接口 Serial peripheral interface UART:通用异步收发器 UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了

SPI、I2C、UART三种串行总线协议的区别

SPI、I2C、UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS:意为IC之间总线) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。 如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。 I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。 如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。(注:I2C资料了解得比较少,这里的描述可能很不完备) UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART 发送器组成,硬件上由两根线,一根用于发送,一根用于接收。 显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。 第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;

NMEA通讯协议详解

NMEA通讯协议详解 说起NMEA协议,只要接触过GPS设备的人,或者说是要用到GPS设备研发的人都知道,这是一个很常用的GPS通讯协议,而且也有很多人遇到关于NEMA协议的一些问题,我忽然有一个想法,就是按照自己对这个协议的一些理解,写一点这方面的东西,看是不是能帮刚刚入门的人解答一些疑问,由于笔者水平有限,这个东西也只能算是一个简单介绍,就算是知识普及吧,希望能引高手出来大家一起讨论。好了,言归正传,我们开始吧! GPS(全球定位系统)接收机与手持机之间的数据交换格式一般都由生产厂商缺省定制,其定义内容普通用户很难知晓,且不同品牌、不同型号的GPS接收机所配置的控制应用程序也因生产厂家的不同而不同。所以,对于通用GPS应用软件,需要一个统一格式的数据标准,以解决与任意一台GPS的接口问题。NMEA-0183数据标准就是解决这类问题的方案之一。NMEA协议是为了在不同的GPS导航设备中建立统一的RTCM(海事无线电技术委员会)标准,它最初是由美国国家海洋电子协会(NMEA—The NationalMarine Electronics Association)制定的。NMEA协议有0180、0182和0183这3种,0183可以认为是前两种的升级,也是目前使用最为广泛的一种 NMEA通讯协议硬件接口 符合NMEAO183标准的GPS接收机的硬件接口能够兼容计算机的RS-232C协议串口,然而,严格来说NMEA标准不是RS-232C,规范推荐依照EIA422(也称为RS-422)。是一个与RS-232C不同的系统。标准RS-232C采用负逻辑,即逻辑“1”表示-5V~-15v,逻辑“0”表示+5V~+15V,利用传输信号线和信号地之间的电压差进行传输。而EIA-422是利用导线之间的信号电压差来传输信号的,其每个通道要用两条信号线,一条是逻辑“1”,~条是逻辑“0”,通过传输线驱动器和传输线接收器实现逻辑电平和电位差之间的转换,一般允许驱动器输出为±2V~±6V 。 虽然存在区别,但在实际使用中,如果只是接收GPS的输出.则只需两根信号线GPS数据输出线和信号地线,可以直接将EIA-422输出通道两条信号线的中一条同计算机的Rs232C 输入线相连(这个方法我并没有试验过,是从别的地方听来的,有兴趣有条件的兄弟可以动手实验一下,不过后果自负哦!呵呵)。 NMEA通讯协议所定义的标准通讯接口参数为: 波特率:4800bit/s; 数据位:8位; 停止位:1位; 奇偶校验:无; NMEA-OI83语句解析 NMEA通讯协议所规定的通讯语句都已是以ASCII码为基础的,NMEA-0183协议语句的数据格式如下:“$”为语句起始标志;“,”为域分隔符;“ *”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符的按位异或值(不包括这两个字符);“/”为终止符,所有的语句必须以来结束,也就是ASCII 字符的“回车”(十六进制的0D)和“换行”(十六进制的0A)。 典型的NMEA0183语句如下面的GPGGA语句。

485与can协议的区别

485与can协议的区别 1.引言 1986年2月,Robert Bosch公司在SAE 汽车工程协会大会上介绍了一种新型的串行总线CAN控制器局域网,那是CAN 诞生的时刻。今天在欧洲几乎每一辆新客车均装配有CAN 局域网,同样CAN也用于其他类型的交通工具从火车到轮船或者用于工业控制。CAN 已经成为全球范围内最重要的总线之一,甚至领导着串行总线,在1999年接近6 千万个CAN 控制器投入应用,2000年市场销售超过1 亿个CAN 器件。但在国内,基于历史或者其他的原因,大多数的厂商工程师在设计产品工程立项时,第一想到的是应用RS-485总线系统。但是,随着社会的发展,对计算机控制要求越来越高,现场应用的条件越来越复杂,所以,CAN网络总线替代RS-485网络总线将成为历史的必然趋势。 2.RS-485和CAN网络总线性能比较 RS-485是一种半双工、全双工异步通信总线,是为弥补RS-232 通信距离短、速率低等缺点而产生的。RS-485只规定了平衡驱动器和接收器的电气特性,而没有规定接插件、传输电缆和应用层通信协议,因而在当时看来是一种相对经济、具有相当高噪声抑制、相对高的传输速率、传输距离远和宽共模范围的平台。RS-485总线上只能有一个主机,往往应用在集中控制枢纽与分散控制单元之间。但是,CAN-bus 是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率、高抗电磁干扰性而且能够检测出产生的任何错误。CAN- bus总线在通信能力可靠性、实时性、灵活性、易用性、传输距离远、成本低等方面有着明显的优势,成为业界最有前途的现场总线之一。RS-485与CAN总线性能比较见表1: 通过表1比较可知:RS-485 网络除了硬件成本开发难度比CAN-bus 网络稍具优势外,其他性能方面都没有可比性。在产品更新速度特别快的今天,如果将产品的上市时间产品的后期维护、软件开发难度等计算在一起,RS-485 的硬件成本优势也变得不十分明显,因而用CAN 总线取代R S-485 总线是一种比较彻底的方案。 特性RS-485 CAN-bus 成本低廉稍高,多20-30元/节点 总线利用率低高 网络特性单主节点多主节点 数据传输率低高

UART以及其他接口协议

UART以及其他接口协议 2007-06-26 16:42 由于在消费类电子产品、计算机 外设、汽车和工业应用中增加了 嵌入式功能,对低成本、高速和 高可靠通信介质的要求也不断增 长以满足这些应用,其结果是越 来越多的处理器和控制器用不同 类型的总线集成在一起,实现与 PC软件、开发系统(如仿真器)或网 络中的其它设备进行通信。目前 流行的通信一般采用串行或并行 模式,而串行模式应用更广泛。 微处理器中常用的集成串行总线 是通用异步接收器传输总线、串 行通信接口、同步外设接口(SPI)、 内部集成电路(I2C)和通用串行总 线,以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)。这些总线在速度、物理接口要求和通信方法学上都有所不同。本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些要求提供一个总体介绍,为选择最优总线提供指导并给出一个比较图表(表1)。为了说明方便起见,本文的阐述是基于微处理器的设计。 串行与并行相比 串行相比于并行的主要优点是要求的线数较少。例如,用在汽车工业中的LIN串行总线只需要一根线来与从属器件进行通信,Dallas公司的1-Wire总线只使用一根线来输送信号和电源。较少的线意味着所需要的控制器引脚较少。集成在一个微控制器中的并行总线一般需要8条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要8个引脚来与外部器件接口,这增加了芯片的总体尺寸。相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。 另外,在PCB板设计中并行总线需要更多的线来与其它外设接口,使PCB板面积更大、更复杂,从而增加了硬件成本。此外,工程师还可以很容易地将一个新器件加到一个串行网络中去,而且不会影响网络中的其它器件。例如,可以很容易地去掉总线上旧器件并用新的来替代。 。 串行总线的故障自诊断和调试也非常简单,可以很容易地跟踪网络中一个有故障的器件并用新器件替换而不会干扰网络。但另一方面,并行总线比串行速度快。例如,Rambus公司的“Redwood”总线速度可高达,而最高的串行速度不会超过几个兆赫。 在工业和汽车应用中常用的串行协议

相关主题
文本预览
相关文档 最新文档