文档库 最新最全的文档下载
当前位置:文档库 › UART协议

UART协议

UART

UART(Universal Asynchronous Receiver/Transmitter)即通用异步收发传输器,工作于数据链路层(协议层之一)。包含了RS-232、RS-422、RS-485串口通信和红外(IrDA)等等。UART协议作为一种低速通信协议,广泛应用于通信领域等各种场合。UART基本可分为并口通信及串口通信两种。

异步串口通信协议,工作原理是将传输数据的每个字符以串行方式一位接一位的传输。图1给出了其工作模式:

图1UART工作原理

其中每一位(bit)的意义如下:

起始位:先发出一个逻辑“0”的信号,表示传输字符的开始。

数据位:紧跟起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟来定位。

奇偶校验位:数据位加上这一位后(跟在数据位尾部),使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。

停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平(逻辑“1”)。

空闲位:处于逻辑“1”状态,表示当前线路上没有数据的传送。

波特率:是衡量数据传输速率的指针。表示为每秒钟传送的二进制位数(bit数)。例如资料传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200字符/秒=1200波特。

软件UART控制:在嵌入式系统或者计算机中,并非直接对串口直接进行操作,而是通过SCI(串行通讯接口)模块对其进行控制。(注:“SCI”首先由Motorola微串口微控制器而得名,SCI另一种说法是“UART控制器”)常用的许多芯片中都包含了SCI,例如ARM 的S3C2410X芯片内嵌了3个串行接口控制器,而Nios等软核芯片则可以用选用UART(RS232)的IP对UART进行控制。PC机则常用16650UART、16750UART等控制串口。

如果实现软件操作UART时,在UART检查端口管脚的串行活动时,需要占用大量时间,让应用程序停滞,这会使得软件UART 没有意义。但情况并非如此,来看一下标准的10位异步串行协议(包含一个起始位,一个停止位和8个数据位)收发一个字符时的情况(如图2所示)。

图2标准10bitUART收发字符时序图

在启动一次发送或接收操作之后,串行UART(不论是软件还是

硬件形式的UART)并不需要连续监控I/O线。在发送一个字符时,每个位周期,UART只需驱动一次发送信号线的状态,从起始位到8个数据位直到结束位依次设置每个位的电平。在接收一个字符时,UART在第一个下降沿时开始工作,之后只需在每个位时隙的中央对接收线上的信号状态进行一次采样。

数字系统方面,我们可以用一对状态机来表征软件UART的行为,一个状态机用于发送字符,另一个用于接收字符。对一个全双工的UART而言,这两个状态机是并行运行的,需要两个独立的定时器中断。这两个状态机都有主动和被动两种模式。发送状态机在收到一个需发送的字符时跳出空闲状态,在结束位发送之后回到空闲状态。接收状态机在检测到接收线上的一个下降沿时跳出空闲状态。在检测到这个初始的低电平状态之后(该状态指示起始位已经开始),开始对位时隙进行递减计数,同时按要求采样信号线上的每个信号位,包括停止位。

为了避免不必要地占用主应用过多的时间,UART状态机应该由一些周期性的基于定时器的中断来激活。接收线上初始下降沿的检测需要利用一个边沿触发的外部中断单独处理。如果一个状态机的定时器被设置为每个bit周期发出一个中断请求,那么该状态机在每次中断被触发时能够执行任何需要的操作(而且如果需要,还能进入到下一个状态)。用于实现状态机的代码应尽可能优化,因为只要软件UART处于活动状态,这些代码就会在后台连续运行。

通信协议(ASCII)

组态王与单片机协议 1.通讯口设置: 通讯方式:RS-232,RS-485,RS-422均可。 波特率:由单片机决定(2400,4800,9600and19200bps)。 注意:在组态王中设置的通讯参数如波特率,数据位,停止位,奇偶校验必须与单片机编程中的通讯参数一致 2.在组态王中定义设备地址的格式 格式:##.# 前面的两个字符是设备地址,范围为0-255,此地址为单片机的地址,由单片机中的程序决定; 后面的一个字符是用户设定是否打包,“0”为不打包、“1”为打包,用户一旦在定义设备时确定了打包,组态王将处理读下位机变量时数据打包的工作。 注意:在组态王中定义变量时,一个X寄存器根据所选数据类型(BYTE,UINT,FLOAT)的不同分别占用一个、两个,四个字节,定义不同的数据类型要注意寄存器后面的地址,同一数据区内不可交叉定义不同数据类型的变量。为提高通讯速度建议用户使用连续的数据区。 例如, 1、在单片机中定义从地址0开始的数据类型为BYTE型的变量: 则在组态王中定义相应的变量的寄存器为X0、X1、X2、X3、X4。。。。。。。。,数据类型为BYTE,每个变量占一个字节 2、在单片机中定义从地址100开始的数据类型为UINT型的变量: 则在组态王中定义相应的变量的寄存器为X100、X102、X104、X106、X108。。。。。。。。,数据类型UINT,每个变量占两个字节 3、在单片机中定义从地址200开始的数据类型为FLOAT型的变量: 则在组态王中定义相应的变量的寄存器为X200、X204、X208、X212。。。。。。。,数据类型FLOAT,每个变量占四个字节 3.组态王与单片机通讯的命令格式:

常用无线通信协议

常用无线通信协议 目前使用较广泛的近距无线通信技术有蓝牙(Bluetooth),无线局域网802.11(Wi-Fi)和红外线数据传输(IrDA).此外,还有一些具有发展潜力的近距无线技术标准,分别是ZigBee,超宽频,短距通信,WiMedia,GPS,DECT,无线1394和专用无线系统等。 蓝牙(Bluetooth)技术 蓝牙是一种支持设备短距离通信的无线电技术。它是一种无线数据与语音通信的开放性全球规范,它以低成本的短距离无线连接为基础,可为固定的或移动的终端设备提供廉价的接入服务。蓝牙技术的实质内容是为固定设备或移动设备之间的通信环境建立通用的近距无线接口,将通信技术与计算机技术进一步结合起来,使各种设备在没有电线或电缆相互连接的情况下,能在近距离范围内实现相互通信或操作。其传输频段为全球公众通用的2.4GHzISM频段,提供1Mbps的传输速率和10m 的传输距离。 优势:⑴全性高。蓝牙设备在通信时,工作的频率是不停地同步变化的,也就是跳频通信。双方的信息很难被抓获,防止被破解或恶意插入欺骗信息。⑵于使用。蓝牙技术是一项即时技术,不要求固定的基础设施,且易于安装和设置。 不足:⑴通信速度不高。蓝牙设备的通信速度较慢,有很多的应用需求不能得到满足。⑵传输距离短。蓝牙规范最初为近距离通信而设计,所以他的通信距离比较短,一般不超过10m。 Wi-Fi(无线高保真)技术 无线宽带是Wi-Fi的俗称。所谓Wi-Fi就是IEEE 802.11b的别称,它是一种短程无线传输技术,能够在数百英尺范围内支持互联网接入的无线电信号。Wi-Fi速率最高可达11Mb/s,电波的覆盖范围可达200m左右。 优势:⑴覆盖广。其无线电波的覆盖范围广,穿透力强。可以方便地为整栋大楼提供无线的宽带互联网的接入。⑵速度高。Wi-Fi技术的传输速度非常快,通信速度可达300Mb/s,能满足用户接入互联网,浏览和下载各类信息的要求。 不足:安全性不好。由于Wi-Fi设备在通信中没有使用跳频等技术,虽然使用了加密协议,但还是存在被破解的隐患。 IrDA(红外线数据协会)技术 IrDA是一种利用红外线进行点对点通信的技术,是第一个实现无线个人局域网(PAN)的技术。 IrDA 的主要优点是无需申请频率的使用权,因而红外通信成本低廉。并且还具有移动通信所需的体积小、功耗低、连接方便、简单易用的特点。此外,红外线发射角度较小,传输上安全性高。IrDA的不足在于它是一种视距传输,两个相互通信的设备之间必须对准,中间不能被其它物体阻隔,因而该技术只能用于 2 台(非多台)设备之间的连接。 优势:⑴无需申请频率的使用权,因此红外线通信成本低廉。⑵移动通信所需的体积小、功耗低、连接方便、简单易用。⑶外线发射角度较小,传输上安全性高。 不足:IrDA是一种视距传输,两个相互通信的设备之间必须对准,中间不能被其它物体阻隔,因而只用于两台设备之间连接。ZigBee(紫蜂)技术 ZigBee使用2.4 GHz 波段,采用跳频技术。它的基本速率是250kb/s,当降低到28kb/s 时,传输范围可扩大到134m,并获得更高的可靠性。另外,它可与254个节点联网。 优势:⑴功耗低。在低耗电待机模式下,两节普通5号干电池可使用6个月以上。⑵成本低。因ZigBee数据传输速率低,协议简单,所以成本很低。⑶网络容量大。每个ZigBee网络最多可支持255个设备。⑷作频段灵活。使用的频段分别为2.4GHz、868MHz(欧)及915MHz(美),均为免执照频段。 不足:⑴数据传输速率低。只有10kb/s~250kb/s,专注于低传输应用。⑵有效范围小。有效覆盖范围为10~75m之间,具体依据实际发射功率的大小和各种不同的应用模式而定,基本上能够覆盖普通的家庭或办公室环境。 UWB(超宽带)技术 UWB(Ultra Wideband)是一种无线载波通信技术,利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。UWB 有可能在10 m 范围内,支持高达110 Mb/s的数据传输率,不需要压缩数据,可以快速、简单、经济地完成视频数据处理。 特点:⑴系统复杂度低,发射信号功率谱密度低,对信道衰落不敏感,载货能力低。⑵定位精度高,相容性好,速度高。⑶成本低,功耗低,可穿透障碍物。近距离无线传输 NFC(近距离无线传输)技术 NFC采用了双向的识别和连接。在20cm 距离内工作于13.56MHz 频率范围。NFC现已发展成无线连接技术。它能快速自动地建立无线网络,为蜂窝设备、蓝牙设备、Wi-Fi 设备提供一个“虚拟连接”,使电子设备可以在短距离范围进行通讯。 特点:NFC的短距离交互大大简化了整个认证识别过程,使电子设备间互相访问更直接、更安全和更清楚,不用再听到各种电子杂音。NFC 通过在单一设备上组合所有的身份识别应用和服务,帮助解决记忆多个密码的麻烦,同时也保证了数据的安全保护。此外NFC 还可以将其它类型无线通讯(如Wi-Fi 和蓝牙)“加速”,实现更快和更远距离的数据传输。

水文通信协议规范

湖南省山洪灾害监测预警系统水文通信协议规范

目录 1 总则 (1) 2 术语、符号和代号 (3) 3 数据报文传输规约 (5) 3.1帧结构 (5) 3.1.1本标准采用异步式传输帧格式。 (5) 3.1.2传输规则应按以下规定执行 (5) 3.1.3链路层应符合以下规定: (6) 3.1.4报文传输 (7) 3.2链路传输 (8) 3.3物理层规约 (9) 4 数据传输报文及数据结构 (10) 4.1应用层数据编码规定 (10) 4.1.1链路用户数据编码格式 (10) 4.1.2站点水情信息编报 (11) 4.1.3水情信息编码分类码 (11) 4.1.4水情站码 (12) 4.1.5测报时间码 (12) 4.1.6要素标识符 (13) 4.1.7数据编码 (14) 4.2水文信息编码 (14) 4.2.1降雨量编码 (14) 4.2.2蒸发量编码 (16) 4.2.3河道水情编码 (17) 4.2.4水库(湖泊)水情编码 (19) 4.2.5闸坝水情编码 (20) 4.2.6泵站水情编码 (22) 4.2.7潮汐水情编码 (23) 4.2.8土壤墒情编码 (25) 4.3数据传输报文结构 (27) 4.3.1 链路测试(AFN=02H) (27) 4.3.2 参数设置(AFN=04H) (28) 4.3.3 参数查询(AFN=0AH) (31) 4.3.4 控制命令(AFN=0CH) (32) 5 通信方式和误码率 (34) 5.1通信方式 (34) 5.2误码率 (36) 6 仪表设备数据传输规约 (37) 6.1仪表数据通信规约 (37)

7 数据传输的考核 (38) 7.1考核内容和指标 (38) 7.2考核方法 (38) 附录A 事件记录表 (39) 附录B 编码要素及标识符汇总表 (40) 附录C本标准用词说明 (47)

UART异步串口

MSP430程序库<二>UART异步串口 串行通信接口是处理器与其他设备进行数据通信最常用的方式之一。我的这个程序库是针对MSP430f14系列和MSP430f16系列的,我常用的单片机是这两款:msp430f149,ms p430f169。这两款单片机中均有两个增强型串行通信接口,都可以进行同步或是异步通信,甚至169的模块USART0还能进行进行I2C协议通信。在这里,我们只讨论异步串行通信。 硬件介绍: MSP单片机的USART模块可以配置成SPI(同步通信)模式或UART(异步通信)模式,这里只讨论UART方式。UART数据传输格式如下: 起始位,数据位由高到低7/8位,地址位0/1位,奇偶校验位奇偶或无,停止位1/2位。数据位位数、地址位、奇偶校验位、停止位均可由单片机内部寄存器控制;这两款单片机都有两个USART模块,有两套独立的寄存器组;以下寄存器命中出现x代表0或是1,0代表对应0模块的寄存器,1代表对应1模块的寄存器;其中,与串口模式设置相关的控制位都位于UxCTL寄存器,与接收相关的控制位都位于UxRCTL寄存器,与发送相关的控制位都位于UxTCTL寄存器;波特率设置用UxBR0、UxBR1、UxMCT L三个寄存器;接收与发送有独立的缓存UxRXBUF、UxTXBUF,并具有独立的移位寄存器和独立的中断;中断允许控制位位于IE1/2寄存器,中断标志位位于IFG1/2寄存器。 波特率设置:430的波特率设置用三个寄存器实现, UxBR0:波特率发生器分频系数低8位。 UxBR1:波特率发生器分频系数高8位。 UxMCTL:波特率发生器分频系数的小数部分实现。 设置波特率时,首先要选择合适的时钟源:USART模块可以设置的时钟源有UCLK引脚、ACLK、SMCLK;对于较低的波特率(9600以下),可选ACLK作为时钟源,这样,在LPM3(低功耗3)模式下,串口仍能正常发送接收数据;另外,由于串口接收过程有一个三取二判决逻辑,这至少需要三个时钟周期,因此分频系数必须大于3;波特率高于9600时,将不能使用ACLK作为时钟源,要调为频率较高的SMCLK作为时钟源;另外还可以外部输入UCLK时钟。分频系数计算公式如下:

模块通讯协议

电脑通讯协议 数据格式说明: 0XAF,0XAF:同步头 0X00,0X00:ID码(一般是0X00,0X00) 0XAF:头 0X80,0X00:命令码(上位机发码是0X80,YY,单片几发码给电脑0X00,YY)LEN:数据长度是从LEN开始到CS的数据个数,不包括LEN和CS CS:是验证码,CS前面所有数据之和%0XFF 结束码:0X0D 0X0A 举例: 设置空中参数为9600代码为: AF AF 00 00 AF 80 03 02 04 00 96 0D 0A 读取空中参数代码为: AF AF 00 00 AF 80 04 02 00 00 93 0D 0A //*************************************************************** **** 02发码设置串口 AF AF 00 00 AF 80 01 LEN XX YY CS 0D 0A XX:01-1200 02-2400 03-4800 04-9600 05-19200 06-38400 07-56700 08-115200 YY:00-无验证 01-偶验证 02-奇验证 答应回码 AF AF 00 00 AF 00 01 LEN XX YY CS 0D 0A XX:01-1200 02-2400 03-4800

05-19200 06-38400 07-56700 08-115200 YY:00-无验证 01-验证 02-奇验证 //*************************************************************** **** 03读串口参数 //读串口参数 //AF AF 00 00 AF 80 02 LEN 00 00 CS 0D 0A //答应参数 //AF AF 00 00 AF 00 02 LEN XX YY CS 0D 0A XX:01-1200 02-2400 03-4800 04-9600 05-19200 06-38400 07-56700 08-115200 YY:00-无验证 01-偶验证 02-奇验证 //*************************************************************** **** 04设空中参数// //AF AF 00 00 AF 80 03 LEN XX YY CS 0D 0A //XX 01-1200 02-2400 03-4800 04-9600 05-19200 06-38400 07-56700 08-115200 YY=0 //答应参数 //AF AF 00 00 AF 00 03 LEN XX YY CS 0D 0A //XX 01-1200 02-2400 03-4800

常用网络通信协议简介

常用网络通信协议简介 常用网络通信协议 物理层: DTE(Data Terminal Equipment):数据终端设备 DCE(Data Communications Equipment):数据电路端接设备 #窄宽接入: PSTN ( Public Switched Telephone Network )公共交换电话网络 ISDN(Integrated Services Digital Network)ISDN综合业务数字网 ISDN有6种信道: A信道 4khz模拟信道 B信道 64kbps用于语音数据、调整数据、数字传真 C信道 8kbps/16kbps的数字信道,用于传输低速数据 D信道 16kbps数字信道,用于传输用户接入信令 E信道 64kbps数字信道,用于传输内部信令 H信道 384kbps高速数据传输数字信道,用于图像、视频会议、快速传真等. B代表承载, D代表Delta. ISDN有3种标准化接入速率: 基本速率接口(BRI)由2个B信道,每个带宽64kbps和一个带宽16kbps的D信道组成。三个信道设计成2B+D。 主速率接口(PRI) - 由很多的B信道和一个带宽64Kbps的D信道组成,B信道的数量取决于不同的国家: 北美和日本: 23B+1D, 总位速率1.544 Mbit/s (T1) 欧洲,澳大利亚:30B+2D,总位速率2.048 Mbit/s (E1) FR(Frame Relay)帧中继

X.25 X.25网络是第一个面向连接的网络,也是第一个公共数据网络. #宽带接入: ADSL:(Asymmetric Digital Subscriber Line)非对称数字用户环路 HFC(Hybrid Fiber,Coaxial)光纤和同轴电缆相结合的混合网络 PLC:电力线通信技术 #传输网: SDH:(Synchronous Digital Hierarchy)同步数字体系 DWDM:密集型光波复用(DWDM:Dense Wavelength Division Multiplexing)是能组合一组光波长用一根光纤进行传送。这是一项用来在现有的光纤骨干网上提高带宽的激光技术。更确切地说,该技术是在一根指定的光纤中,多路复用单个光纤载波的紧密光谱间距,以便利用可以达到的传输性能(例如,达到最小程度的色散或者衰减)。 #无线/卫星: LMDS:(Local Multipoint Distribution Services)作区域多点传输服务。这是一种微波的宽带业务,工作在28GHz附近频段,在较近的距离双向传输话音、数据和图像等信息。 GPRS:(General Packet Radio Service)通用分组无线服务技术。 3G:(3rd-generation,3G)第三代移动通信技术 DBS:(Direct Broadcasting Satellite Service)直播卫星业务 VAST: 协议:RS-232、RS-449、X.21、V.35、ISDN、FDDI、IEEE802.3、IEEE802.4、IEEE802.5等。 RS-232:是个人计算机上的通讯接口之一,由电子工业协会(Electronic Industries

多机通信协议规范

通信协议 来自中国工控网 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、 检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。 目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向 字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。 串行通讯简单认识 串行通讯的基本概念:与外界的信息交换称为通讯。基本的通讯方式有并行通讯和串行通讯两种。 一条信息的各位数据被同时传送的通讯方式称为并行通讯。并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距 数米)的通讯。 一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据位传送,传按位顺序进行,最少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几 千米。 根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。信息只能单向传送为 单工;信息能双向传送但不能同时双向传送称为半双工;信息能够同时双向传送则称为全双工。 串行通讯又分为异步通讯和同步通讯两种方式。在单片机中,主要使用异步通讯方式。 MCS_51单片机有一个全双工串行口。全双工的串行通讯只需要一根输出线和一根输入线。数据的输 出又称发送数据(TXD),数据的输入又称接收数据(RXD)。串行通讯中主要有两个技术问题,一个是数 据传送、另一个是数据转换。数据传送主要解决传送中的标准、格式及工作方式等问题。数据转换是指 数据的串并行转换。具体说,在发送端,要把并行数据转换为串行数据;而在接收端,却要把接收到的 串行数据转换为并行数据。 单工、半双工和全双工的定义 如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。 如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。 电话线就是二线全双工信道。由于采用了回波抵消技术,双向的传输信号不致混淆不清。双工信道有时也发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。 --------> <--------> --------> A---------B A----------B A---------B <-------- 单工半双工全双工

通讯协议大全

T C P/I P TCP/IP是网络中使用的基本的通信协议。 TCP/IP协议包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP协议。 IPX/SPX(多用于局域网) 是基于施乐的XEROX’S Network System(XNS)协议,而SPX是基于施乐的XEROX’S SPP (Sequenced Packet Protocol:顺序包协议)协议 NetBEUI 即NetBios Enhanced User Interface,或NetBios增强用户接口。 网络通信协议: RS-232-C、RS-449、V.35、X.21、HDLC 简单网络管理协议: 简单网络管理协议SNMP、点到点协议PPP 3G标准: WCDMA(欧洲版)、CDMA2000(美国版)和TD-SCDMA(中国版) Modbus协议 Modbus就是工业控制器的网络协议中的一种 包括ASCII、RTU和TCP

现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 网络协议大全 1、ARP(address resolution protocol)地址解析协议 2、SNMP(simple network management P)网络管理协议,是TCP/IP的一部分 3、AppleShare protocol(AppleShare 协议) 4、AppleTalk 协议 5?、BOOTP协议(Bootstrap?Protocol)?应用一个基于TCP/IP协议的协议,该协议主要用于有无盘工作站的局域网 6、CMIP(Common Management Information Protocol)通用管理信息协议,它是建立在开放系统互连通信模式上的网络管理协议。相关的通用管理信息服务(CMIS)定义了访问和控制网络对象,设备和从对象设备接收状态信息的方法。 7、 DHCP协议、Dynamic?Host?Configuration?Protocol(动态主机配置协议),应用:在Windows中要启用DHCP协议,只要将IP地址设置为“自动获得IP地址”即可 9、Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议 10 、Discard Protocol抛弃协议它的作用就是接收到什么抛弃什么,它对调试网络状态

通讯方式和通讯协议介绍

目录 一、RS232的串口通讯 (2) 应用 (2) 工作方式 (2) 接口标准 (2) 电路组成 (3) 概述 (3) 简介 (3) 二、RS485串行通讯 (3) 简介 (3) 接口 (4) 电缆 (4) 布网 (5) 区别 (5) 三、串行通信 (6) 概念 (6) 分类 (7) 同步通信 (7) 异步通信 (7) 特点 (7) 形式和标准 (7) 调幅方式 (7) 调频方式 (8) 数字编码方式 (8) 数据传输率 (8) 发送时钟和接收时钟 (9) 异步通信协议 (9) 通信协议 (10) 普遍协议 (10) USB (11) IEEE 1394 (11) 相关应用 (12) 四、通讯协议 (12) 简介 (12) 详细介绍 (13) TCP/IP (13) IPX/SPX (13) NetBEUI (14) 通信协议 (14) RS-232-C (14) RS-449 (14) V.35 (15) X.21 (15) HDLC (15) 管理协议 (15) SNMP (15) PPP (16)

一、RS232的串口通讯 应用 随着计算机系统的应用和微机网络的发展,通信功能越来越显得重要.这里所说的通信是指计算机与外界的信息交换.因此,通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换.由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输.对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍.在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU 之间的通信一般都是串行方式.所以串行接口是微机应用系统常用的接口。许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,CPU 与接口之间仍按并行方式工作. 工作方式 由于CPU 与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有" 接收移位寄存器" (串→并)和" 发送移位寄存器" (并→串). 在数据输入过程中,数据1 位1 位地从外设进入接口的" 接收移位寄存器",当" 接收移位寄存器" 中已接收完1 个字符的各位后,数据就从" 接收移位寄存器" 进入" 数据输入寄存器" . CPU 从" 数据输入寄存器" 中读取接收到的字符.(并行读取,即D7~D0 同时被读至累加器中). " 接收移位寄存器" 的移位速度由" 接收时钟" 确定. 在数据输出过程中,CPU 把要输出的字符(并行地)送入" 数据输出寄存器"," 数据输出寄存器" 的内容传输到" 发送移位寄存器",然后由" 发送移位寄存器" 移位,把数据1 位 1 位地送到外设. " 发送移位寄存器" 的移位速度由" 发送时钟" 确定. 接口中的" 控制寄存器" 用来容纳CPU 送给此接口的各种控制信息,这些控制信息决定接口的工作方式. " 状态寄存器" 的各位称为" 状态位",每一个状态位都可以用来指示数据传输过程中的状态或某种错误.例如,用状态寄存器的D5 位为"1" 表示" 数据输出寄存器" 空,用D0 位表示" 数据输入寄存器满",用D2 位表示" 奇偶检验错" 等. 能够完成上述" 串<- -> 并" 转换功能的电路,通常称为" 通用异步收发器" (UART :Universal Asynchronous Receiver and Transmitter),典型的芯片有:Intel 8250/8251,16550 接口标准 ⑴实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。

通讯协议标准

编号: 密级:内部 页数:__________基于RS485接口的DGL通信协议(修改) 编写:____________________ 校对:____________________ 审核:____________________ 批准:____________________ 北京华美特科贸有限公司 二○○二年十二月六日

1.前言 在常见的数字式磁致伸缩液位计中,多采用RS485通信方式。但RS485标准仅对物理层接口进行了明确定义,并没有制定通信协议标准。因此,在RS485的基础上,派生出很多不同的协议,不同公司均可根据自身需要设计符合实际情况的通信协议。并且,RS485允许单总线多机通信,如果通信协议设计不好,就会造成相互干扰和总线闭锁等现象。如果在一条总线上挂接不同类型的产品,由于协议不一样,很容易造成误触发,造成总线阻塞,使得不同产品对总线的兼容性很差。 随着RS485的发展,Modicon公司提出的MODBUS协议逐步得到广泛认可,已在工业领域得到广泛应用。而MODBUS的协议规范比较烦琐,并且每字节数据仅用低4位(范围:0~15),在信息量相同时,对总线占用时间较长。 DGL协议是根据以上问题提出的一种通信协议。在制定该协议时已充分考虑以下几点要求: a.兼容于MODBUS 。也就是说,符合该协议的从机均可挂接到同一总线上。 b.要适应大数据量的通信。如:满足产品在线程序更新的需要(未来功能)。 c.数据传输需稳定可靠。对不确定因素应加入必要的冗错措施。 d.降低总线的占用率,保证数据传输的通畅。 2.协议描述 为了兼容其它协议,现做以下定义: 通信数据均用1字节的16进制数表示。从机的地址范围为:0x80~0xFD,即:MSB=1; 命令和数据的数值范围均应控制在0~0x7F之间。即:MSB=0,以区别地址和其它数据。 液位计的编码地址为:0x82~0x9F。其初始地址(出厂默认值)为:0x81。 罐旁表的编织地址为:0xA2~0xBF。其初始地址(出厂默认值)为:0xA1。 其它地址用于连接其它类型的设备,也可用于液位计、罐区表地址不够时的扩充。 液位计的命令范围为:0x01~0x2F,共47条,将分别用于参数设定、实时测量、诊断测试、在线编程等。 通信的基本参数为:4800波特率,1个起始位,1个结束位。字节校验为奇校验。 本协议的数据包是参照MODBUS RTU 通信格式编写,并对其进行了部分修改,以提高数据传输的速度。另外,还部分参照了HART协议。其具体格式如下: 表中,数据的最大字节数为16个。也就是说,整个数据包最长为20个字节。 “校验和”是其前面所有数据异或得到的数值,然后将该数值MSB位清零,使其满足0~7F 的要求。在验证接收数据包的“校验和”是否正确时,可将所有接收数据(包括“校验和”)进行异或操作,得到的数据应=0x80。这是因为,只有“地址”的MSB=1,所以异或结果的MSB也必然等于1。 本协议不支持MODBUS中所规定的广播模式。 3.时序安排 在上电后,液位计将先延迟10秒,等待电源稳定。然后,用5秒的时间进行自检和测试数据。

各种通信协议

分层及通信协议 协议软件是计算机通信网中各部分之间所必须遵守的规则的集合,它定义了通信各部分交换信息时的顺序、格式和词汇。协议软件是计算机通信网软件中最重要的部分。网络的体系结构往往都是和协议对应的,而且,网络管理软件、交换与路由软件以及应用软件等都要通过协议软件才能发生作用。 一、通信协议 1、什么是通信协议 通信协议(简称协议Protoco l),是指相互通信的双方(或多方)对如何进行信息交换所一致同意的一整套规则。一个网络有一系列的协议,每一个协议都规定了一个特定任务的完成。协议的作用是完成计算机之间有序的信息交换。 通信网络是由处在不同位置上的各节点用通信链路连接而组成的一个群体。通信网必须在节点之间以及不同节点上的用户之间提供有效的通信,即提供有效的接入通路。在计算机通信网中,将这种接入通路称为连接(connection)。建立一次连接必需要遵守的一些规则,这些规则也就是通信网设计时所要考虑的主要问题。 (l)为了能在两个硬件设备之间建立起连接,应保证在源、宿点之间存在物理的传输媒介,在该通路的各条链路上要执行某种协议。 如果传输线路使用电话线,则要通过调制解调器将信号从数字转换成模拟的,并在接收端进行反变换。 如果用的是数字传输线路,则在数据处理设备和通信设备之间,必须有一个数字适配器,以便将数字信号的格式转换成两种设备各自所期望的形式。 为了在两个端设备之间互换数据,需要协调和同步,调制解调器和数字适配器必须执行它们自己的协议。 无论是模拟的还是数字的通信设备,调制解调器和数字适配器的状态必须由接到节点上的设备来控制,这里必定有一个物理的或电气的接口来执行这种功能,执行某种适当的协议来达到这一控制目的。 (2)在计算机通信网中,许多信息源都是突发性的(bursty),问题是要利用信息的这种突发性质来降低消耗在线路上的费用,由此开发了许多共享通信资源的技术。所谓共享,是指允许多个用户使用同一通信资源,这就产生了多用户的接入问题。多路接入

Modbus标准通讯协议格式

Modbus通讯协议 Modbus协议 Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus 协议发送给询问方。 Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave 端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。 Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。 下面我来简单的给大家介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。所以在这里我仅介绍一下

Verilog程序6、UART(串口通信)

这个程序没有仿真、没有测试。。 1 UART功能设计 1.1 UART的工作原理 异步通信时,UART发送/接收数据的传输格式如图1所示,一个字符单位由开始位、数据位、停止位组成。 异步通信的一帧传输经历以下步骤: (1)无传输。发送方连续发送信号,处于信息“1”状态。 (2)起始传输。发送方在任何时刻将传号变成空号,即“1”跳变到“O”,并持续1位时间表明发送方开始传输数据。而同时,接收方收到空号后,开始与发送方同步,并期望收到随后的数据。 (3)奇偶传输。数据传输之后是可供选择的奇偶位发送或接收。 (4)停止传输。最后是发送或接收的停止位,其状态恒为“1”。 其程序的结构框图如下: 该程序的效果是串口接受到从计算机发送过来的数据后,又把数据发回给计算机,串口通信是串行的。 其uart.v为顶层文件,包含其他模块,speed_select.v文件的作用为为uart_rx.v和uart_tx.v 设置波特率。

uart.v(顶层文件) `timescale 1ns / 1ps ///////////////////////////////////////////////////////////////////// ///////////// // Company: // Engineer: // // Create Date: 16:08:27 11/12/2010 // Design Name: // Module Name: uart // Project Name: // Target Devices: // Tool versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ///////////////////////////////////////////////////////////////////// ///////////// module uart(clk,rst_n,rs232_rx,rs232_tx); input clk,rst_n,rs232_rx; output rs232_tx; wire bps_start1,bps_start2,clk_bps1,clk_bps2,rx_int; wire [7:0] rx_data; //发送模块的时钟 speed_select speed_tx ( .clk(clk), .rst_n(rst_n), .bps_start(bps_start2), .clk_bps(clk_bps1) ); //接受模块的时钟 speed_select speed_rx ( .clk(clk), .rst_n(rst_n), .bps_start(bps_start2), .clk_bps(clk_bps2)

三种常见的局域网通信协议

三种常见的局域网通信协议 各种网络协议都有所依赖的操作系统和工作环境,同样的通信协议在不同网络上运行的效果不一定相同。所以,组建网络时通信协议的选择尤为重要。无论是Windows 95/98对等网,还是规模较大的Windows NT、Novell或Unix/Xenix局域网,组建者都遇到过如何选择和配置网络通信协议的问题。我们在选择通信协议时应遵循3个原则:所选协议要与网络结构和功能相一致;尽量只选择一种通信协议;注意协议不同的版本具有不尽相同的功能。 局域网中常用的3种通信协议 NetBEUI协议:这是一种体积小、效率高、速度快的通信协议。在微软公司的主流产品中,如Windows 95/98和Windows NT,NetBEUI已成为固有的缺省协议。NetBEUI是专门为几台到百余台电脑所组成的单网段小型局域网而设计的,不具有跨网段工作的功能,即NetBEUI不具备路由功能。如果一个服务器上安装多块网卡,或采用路由器等设备进行两个局域网的互联时,不能使用NetBEUI协议。否则,在不同网卡(每一块网卡连接一个网段)相连的设备之间,以及不同的局域网之间将无法进行通信。虽然NetBEUI存在许多不尽人意的地方,但它也具有其他协议所不具备的优点。在3种常用的通信协议中,NetBEUI占用内存最少,在网络中基本不需要任何配置。 NetBEUI中包含一个网络接口标准NetBIOS,是IBM公司在1983年开发的一套用于实现电脑间相互通信的标准。其后,IBM公司发现NetBIOS存在着许多缺陷,于1985年对其进行了改进,推出了NetBEUI通信协议。随即,微软公司将NetBEUI作为其客户机/服务器网络系统的基本通信协议,并进一步进行了扩充和完善。最有代表性的是在NetBEUI中增加了叫做SMB(服务器消息块)的组成部分。因此,NetBEUI协议也被人们称为SMB协议。 IPX/SPX及其兼容协议:这是Novell公司的通信协议集。与NetBEUI的明显区别是:IPX/SPX比较庞大,在复杂环境下有很强的适应性。因为IPX/SPX在开始就考虑了多网段的问题,具有强大的路由功能,适合大型网络使用。当用户端接入NetWare服务器时,IPX/SPX 及其兼容协议是最好的选择。但在非Novell网络环境中,一般不使用IPX/SPX。尤其在Windows NT网络和由Windows 95/98组成的对等网中,无法使用IPX/SPX协议。 IPX/SPX及其兼容协议不需要任何配置,它可通过网络地址来识别自己的身份。Novell 网络中的网络地址由两部分组成:标明物理网段的网络ID和标明特殊设备的节点ID。其中网络ID集中在NetWare服务器或路由器中,节点ID即为每个网卡的ID号(网卡卡号)。所有的网络ID和节点ID都是一个独一无二的内部IPX地址,正是由于网络地址的惟一性,才使IPX/SPX具有较强的路由功能。 在IPX/SPX协议中,IPX是NetWare最底层的协议,它只负责数据在网络中的移动,并不保证数据是否传输成功,也不提供纠错服务。IPX在负责数据传送时,如果接收节点在同一网段内,就直接按该节点的ID将数据传给它;如果接收节点是远程的,数据将交给NetWare服务器或路由器中的网络ID,继续数据的下一步传输。SPX在整个协议中负责对所传输的数据进行无差错处理,所以IPX/SPX也叫做Novell的协议集。 Windows NT中提供了两个IPX/SPX的兼容协议,NWLink SPX/SPX兼容协议和NWLink NetBIOS,两者统称为NWLink通信协议。NWLink协议是Novell公司IPX/SPX协议在微软公司网络中的实现,它在继承IPX/SPX协议优点的同时,更加适应微软公司的操作系统和

DLT645通信协议详情

1应用范围 本规范规定了电能表进行点对点的或一终端对多台电能表进行一主多从的本地通讯接口进行数据交换的技术要求,规定了本地系统硬件和协议规范。规定了物理连接、通讯链路及应用技术规范(数据的基本格式、校验方式、编码传输规则等)。 本规范主要参考了部颁DL/T 645-1997多功能电能表通信规约,根据我公司的DSSD331-3、DTSD341-3电能表的特色做了相应的扩展。本规范中未给出的一些例子和示意图请参见部颁规约。 2引用标准 下列标准所包含的条文,通过在本标准中的引用而构成为本标准的条文。本标准出版时,所示版本均为有效,所有标准都会被修订,使用本标准的各方应探讨使用下列标准最新版本的可能性。 DL/T 645-1997 多功能电能表通信规约 DL/T 614-1997 多功能电能表 3术语 3.1费率装置tariff device 固定的数据采集与处理单元,通常与电能表连接或与电能表组装在一起。 3.2手持单元(HHU)hand-heldunit 能与费率装置或电能表进行数据交换的便携式设备。 3.3数据终端设备data terminal equipment 由数据源、数据宿或两者组成的设备。

3.4直接本地数据交换direct local data exchange 一组费率装置与数据终端设备通过总线连接进行数据交换。 3.5本地总线数据交换local bus data exchange 一组费率装置与数据终端设备通过总线连接进行数据交换。 3.6远程数据交换remote data exchange 通过数据网络,数据采集中心与一台或一组费率装置之间的数据交换。 3.7主站master station 具有选择从站并与从站进行信息交换功能的设备。本标准中指手持单元或其它数据终端设备。 3.8从站slave station 预期从主站接收信息并与主站进行信息交换的设备。本标准中指费率装置。 3.9总线bus 连接主站与多个从站并允许主站每次只与一个从站通信的系统连接方式(广播命令除外)。 3.10半双工half-duplex 在双向通道中,双向交替进行、一次只在一个方向(而不是同时在两个方向)传输信息的一种通信方式。 3.11物理层physical layer 规定了数据终端设备或手持单元与费率装置之间的物理接口、接口的物理和电气特性,负责物理媒体上信息的接收和发送。 3.12数据链链路层data-link layer 负责数据终端设备与费率装置之间通信链路的建立并以帧为单位舆信息,保证信息的顺序传送,具有传输差错检测功能。 3.13应用层application layer

UART实验程序解析

//UART实验程序解析 //头文件 #include #include #include "inc/hw_ints.h" #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "driverlib/debug.h" #include "driverlib/fpu.h" #include "driverlib/gpio.h" #include "driverlib/interrupt.h" #include "driverlib/sysctl.h" #include "driverlib/uart.h" #include "driverlib/rom.h" #include "driverlib/pin_map.h" //串口接收中断服务程序 void UARTIntHandler(void) { ui32 ulStatus; //获取中断状态 ulStatus = ROM_UARTIntStatus(UART0_BASE, true); //清除中断标志 ROM_UARTIntClear(UART0_BASE, ulStatus); //直到串口FIFO中没有数据时才退出循环 while(ROM_UARTCharsAvail(UART0_BASE)) { //读串口接收的字符并回发 ROM_UARTCharPutNonBlocking(UART0_BASE,

ROM_UARTCharGetNonBlocking(UART0_BASE)); } } //串口发送函数 void UARTSend(const ui8 *pucBuffer, ui32 ulCount) { while(ulCount--) { //将要发送的字符写进UART ROM_UARTCharPutNonBlocking(UART0_BASE, *pucBuffer++); } } int main(void) { //使能FPU FPUEnable(); FPULazyStackingEnable(); //设置时钟直接使用外部晶振 ROM_SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ); //使能用到的外设 ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0); //配置PA0和PA1为串口0引脚 ROM_GPIOPinTypeUART(GPIO_PORTA_BASE, GPIO_PIN_0 | GPIO_PIN_1);

相关文档