打印
[牛人杂谈]

irda和uart

[复制链接]
2299|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
什么是 UART
UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用来与PC进行通信,包括与监控调试器和其它器件,如EEPROM通信。

UART通信

UART首先将接收到的并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是7个或8个数据位,一个可用的奇偶位和一个或几个高位停止位。接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。如果选择了奇偶,UART就在数据位后面加上奇偶位。奇偶位可用来帮助错误校验。

在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行。UART也产生额外的信号来指示发送和接收的状态。例如,如果产生一个奇偶错误,UART就置位奇偶标志。

数据方向和通信速度

数据传输可以首先从最低有效位(LSB)开始。然而,有些UART允许灵活选择先发送最低有效位或最高有效位(MSB)。

微控制器中的UART传送数据的速度范围为每秒几百位到1.5Mb。例如,嵌入在ElanSC520微控制器中的高速UART通信的速度可以高达1.1152Mbps。UART波特率还受发送和接收线对距离(线长度)的影响。

目前,市场上有只支持异步通信和同时支持异步与同步通信的两种硬件可用于UART。前者就是UART名字本身的含义,在摩托罗拉微控制器中被称为串行通信接口(SCI);Microchip微控制器中的通用同步异步收发器(USART)和在富士通微控制器中的UART是后者的两个典型例子。

计算机中的UART

UART是计算机中串行通信端口的关键部分。在计算机中,UART相连于产生兼容RS232规范信号的电路。RS232标准定义逻辑“1”信号相对于地为 3到25伏,而逻辑“0”相对于地为-3到-25伏。所以,当一个微控制器中的UART相连于PC时,它需要一个RS232驱动器来转换电平。
IrDA是国际红外数据协会的英文缩写,IrDA相继制定了很多红外通信协议,有侧重于传输速率方面的,有侧重于低功耗方面的,也有二者兼顾的。


沙发
huangcunxiake|  楼主 | 2016-8-6 11:28 | 只看该作者
1 IrDA及其通信协议
IrDA即红外数据协会,全称The Infrared DataAssociation,是1993年6月成立的一个国际性组织,专司制订和推进能共同使用的低成本红外数据互连标准,支持点对点的工作模式。由于标准的统一和应用的广泛,更多的公司开始开发和生产IrDA模块,技术的进步也使得IrDA模块的集成越来越高,体积也越来越小。IrDA1.0可支持最高115.2kbps的通信速率,而IrDA1.1可以支持的通信速率达到4Mbps。
IrDA(红外数据协会)的宗旨是制订以合理的代价实现的标准和协议,以推动红外通信技术的发展。
IrDA数据通信按发送速率分为三大类:SIR、MIR和FIR。串行红外(SIR)的速率覆盖了RS-232端口通常支持的速率(9600b/s~115.2kb/s)。MIR可支持0.576Mb/s和1.152Mb/s的速率;高速红外(FIR)通常用于4Mb/s的速率,有时也可用于高于S1R的所有速率。
在IrDA中,物理层、链路接入协议(Irlan)和链路管理协议(IrLMP)是必需的三个协议层。除此之外,还有一些适用于特殊应用模式的可选层。
在基本的IrDA应用模式中,设备分为主设备和从设备。主设备用于探测它的可视范围,寻找从设备,然后从那响应它的设备中选择一个并试图建立连接。在建立连接的过程中,两个设备彼引协调,按照它们共同的最高通信能力确定最后的通信速率。以上的“寻找”和“协调”过程都是在9.6kb/s的波特下进行的。
IrDA数据通信工作在半双工模式,因为在发射时,接收器会被发射的光芒所屏蔽。这样,通信的两个设备将通过快速转和链路来模拟全双工通信,并由主设备负责控制链路的时序。
IrDA协议按层安排,应用程序的数据逐层下传,最终以光脉冲的形式发出。IrLAJ和lrLMP是协议中牧师层之外所需的两个软件层。在物理层上的第一层是链路接入协议(IrLAP),它是HDLC(高级数据链路控制)协议的改编,以适应红外传输的要求。IrLAP层的工进行链路初始化、设备地址寻找和解决冲突、启动连接、数据交换、断开连接和链路关闭等。IrLAP用于指定红外数据包的帧和字节结构,以及红外通信的错误检测方法。IrLAP之上的一层是链路管理协议,即IrLMP,主要用于管理IrLAP所提供的链路连接中的链路功能和应用程序以及评估设备上的服务,并管理如数据速率、BOF的数量(帧的开始)及连接换向时间等参数的协调,以及数据的纠错传输等。
IrDA物理层协议提出了对工作距离、工作角度(视角)、光功率、数据速率不同品牌设备互联时抗干扰能力的建议。当前红外通讯距离最长为3米,接收角度为30度。

使用特权

评论回复
板凳
huangcunxiake|  楼主 | 2016-8-6 11:29 | 只看该作者
2 空调检测线IrDA设计与实现
2.1 物理层协议的实现
IrDA物理层协议的设计保证了0~1米范围内0°~15°的轴线偏离角的无错通信。其中包括了调制、视角、光功率、数据速率和噪声去除的规范,以保证检测线上随行数据采集装置和固定数据管理计算机的设备之间的物理互连性。协议也考虑了周围的光照或其他噪声源的存在以及参与IR通信的一些检测设备间的干扰。协议要求合理选择发射器的光强度和接收器的灵敏度,以保证链路能在0~1米的距离内工作。

图1给出了IrDA物理层的方框图。数据速率小于4Mb/s时,使用RZI(归零反转)调制,最大脉冲宽度是位周期的3/16;而在4Mb/s的数据速率时,使用4PPM(脉冲位置)调制。IrDA要求的RZI(反相归零)调制的编码效果如图2中的IR帧数据所示。4PPM调制如图3所示。两个数据位组合在一起可组成一个500ns的“数据码元组”。这一码元组可分为四个125ns的时隙。并可根据码元组的状态在不同的时隙放置单脉冲。解调器在将输入位流的相位锁定后,即可根据脉冲在500ns周期中的位置来解出数据。这一方案需要的编码/解码器可以集成在1/0芯片中,也可作为一个独立元件。空调器检测线采用安捷伦红外通信器件,此产品在耗电、体积、和价格方面都有很大优势,在小型移动电话、传呼机,笔记本电脑、台式PC机、视窗CE掌上产品、个人数字助理(PDA)和数字影象产品中广泛采用。
2.2 硬件电路的设计
空调器检测线随行数据采集装置的核心MCU可选用ATMEL公司的RISC单片机90S2313,它的串口能够支持与IrDA兼容的LED收发器,并且可以直接与之相连。
红外收发器选用AGILENT公司的HDSL-3201和HDSL-3600。2.5毫米高的HDSL-3201的代电电压范围为2.7V到3.6V,但LED驱动电流应从内部补偿恒定32mA,以保证符合IrDAr DATA1.2(低功耗)物理层协议指标的要求。该产品的传输距离一般为30厘米,可支持9.6kb/s~115.2kb/s的数据传输速率。4毫米高的HDSL-3600的典型链路传输距离可大于1.5米,通过管脚FIP-SEL能选择可以接收的数据速率。当FIR-SEL设为低电平时,最高速率为115.2kb/s;设为高电平时,最高速率可达4Mb/s。同时,还有两个管脚MDO和MD1用来选择发光功率。用户可以根据自己的需要来设定,以达到在短距离通信情况下省电的目的。图4给出了HSDL-3600的管脚说明及典型外围电路。


使用特权

评论回复
地板
huangcunxiake|  楼主 | 2016-8-6 11:30 | 只看该作者
2.3 IrDA红外通信的数据流
空调器检测装置工作在SIR模式下,所有在TXD/RXD管脚和90S2313的UART之间传送的串行数据都是根据SIRIrDA标准来调制/解调。逻辑0由一个3/16位宽或1.6μs宽的光脉冲代表(1.6μs是最高位速率115.2kbps的位宽的3/16)。0位的开始对应脉冲的上升沿。逻辑1由无光脉冲代表。字节首先从LSB开始发送。每帧由起始位、8位数据、停止位组成,无奇偶校验。
由于空调器检测装置的通信数据量不大,因此,采用SIR模式即可满足要求。而在FIR模式下,通信过程就复杂多了,所有在TXD/RXD管脚和微处理器的HSSP(高速串行/并行)接口之间传送的串行数据都是根据4PPM IrDA标准来调制/解制的。编码时,把一个字节分为四个单独的码元组(2位一对),最低的码元组首先传送,但每个码元组不重新排序。这样,一个字节就被分成了四个“片”(每片500ns),每个“片”分为四个时隙(每个时隙125ns)。
可用微处理器中的高速串行/并行(HSSP)接口来实现特殊的4Mb/s协议。其串行帧格式为:
  
引导标志
  
  
起始标志
  
  
地址
  
  
控制(选)
  
  
数据
  
  
CRC-32
  
  
停止位
  
引导标志用来接收同步。接收开始时,使用串行移位寄存器从RxD2管脚接收四个4PPM片,然后一次锁存并解码这些片。如果这些片不能解码为正确的引导标志,则时隙计数将延迟1,并重复以上过程,直到辨认出引志标志并使标志时隙计数器同步为止。引导标志最少重复16次。由于空闲时(无发送数据)的不断重复,因此在16个引导标志传送完成后的任何时候都可能收到起始标志。
当接收到8片长的起始标志后,系统将它与标准编码进行比较。如果起始标志的任一部分和标准编码不一样,则告知一个帧错误,并且再一次开始寻找帧引导标志。一旦正确的起始标志被验证,接下来的每组4片就被解码为一个数据字节,并放入5字节的临时FIFO寄存器中。当临时FIFO被填满后,数据值便被一个接一个地推入到接收FIFO。
一帧数据的第一个字节是8位的地址区,它是在一对多通信时用来指定接收器的。地址区最多能容纳255个独立地址(00000000~11111110)。11111111为通用地址,用于对所有站广播信息。接收地址匹配可以激活或禁止。如果接收地址匹配激活,收到的地址将和地址匹配值比较,如果两个值相等或输入地址是通用地址,所有的数据字节(包括地址字节)都将存储在接收F1FO中。如果不相符,任何数据都不能存储到51接收FIFO,这样,系统将忽略帧的余下部分,并开始寻找下一个引导标志。
一祯的第二个数据字节可能包括一个由用户定义的8位可选控制区,它必须由软件解码,因为在HSSP中它被视为普通的数据。一祯可以包含不大于2047字节的任何多个8位数据(包括地址数据字节的能力)。其数据长度不超过CRC校验能检测传输中所有错误时的最大数据量。

使用特权

评论回复
5
huangcunxiake|  楼主 | 2016-8-6 11:31 | 只看该作者
3 前景与展望
随着红外通信技术的发展,其通信速率也将不断提高,今年IrDA将推出16Mbps的甚高速红外(VFIR)标准。IrDA红外通信的作用距离也将从1米扩展到几十米。近两年兴起的蓝牙无线通信技术具有距离离远、无角度限制等优点,但数据速率较低且成本高,误码率和保密性也不如红外通信,因此蓝芽无线通信技术还未达到完全替代红外通信的程度。
对于空调器随行检测数据采集这样的小型设备,IrDA红外通信确为一种可靠、方便、快捷的与主计算机交换数据的低成本方案。

使用特权

评论回复
6
huangcunxiake|  楼主 | 2016-8-6 11:32 | 只看该作者
随着智能手机的兴起,好多手机开始找回了从前的红外接口,这样你的手机可以变身为万能遥控器,遥控电视空调等。

使用特权

评论回复
7
gejigeji521| | 2016-8-6 13:12 | 只看该作者
在计算机中,UART相连于产生兼容RS232规范信号的电路。RS232标准定义逻辑“1”信号相对于地为 3到25伏,而逻辑“0”相对于地为-3到-25伏。所以,当一个微控制器中的UART相连于PC时,它需要一个RS232驱动器来转换电平。

使用特权

评论回复
8
zhuomuniao110| | 2016-8-6 20:37 | 只看该作者
在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行

使用特权

评论回复
9
稳稳の幸福| | 2016-8-6 23:46 | 只看该作者
嵌入在ElanSC520微控制器中的高速UART通信的速度可以高达1.1152Mbps。UART波特率还受发送和接收线对距离(线长度)的影响。

使用特权

评论回复
10
天灵灵地灵灵| | 2016-8-7 09:22 | 只看该作者
UART是计算机中串行通信端口的关键部分。在计算机中,UART相连于产生兼容RS232规范信号的电路。RS232标准定义逻辑“1”信号相对于地为 3到25伏,而逻辑“0”相对于地为-3到-25伏。所以,当一个微控制器中的UART相连于PC时,它需要一个RS232驱动器来转换电平。

使用特权

评论回复
11
天灵灵地灵灵| | 2016-8-7 09:48 | 只看该作者
一祯的第二个数据字节可能包括一个由用户定义的8位可选控制区,它必须由软件解码,因为在HSSP中它被视为普通的数据。

使用特权

评论回复
12
捉虫天师| | 2016-8-7 11:53 | 只看该作者
【IrDA】是InfraredDataAssociation的英文缩写,即红外线数据标准协会。成立于1993年。是个致力于建立无线传播连接的国际标准非营利性组织。

使用特权

评论回复
13
yiyigirl2014| | 2016-8-7 13:39 | 只看该作者
接收器发现开始位时它就知道数据准备发送,并尝试与发送器时钟频率同步。

使用特权

评论回复
14
734774645| | 2016-8-7 18:37 | 只看该作者
如果产生一个奇偶错误,UART就置位奇偶标志

使用特权

评论回复
15
598330983| | 2016-8-7 21:59 | 只看该作者
在基本的IrDA应用模式中,设备分为主设备和从设备。

使用特权

评论回复
16
598330983| | 2016-8-7 22:07 | 只看该作者
接收地址匹配可以激活或禁止。如果接收地址匹配激活,收到的地址将和地址匹配值比较,如果两个值相等或输入地址是通用地址,所有的数据字节(包括地址字节)都将存储在接收F1FO中。如果不相符,任何数据都不能存储到51接收FIFO,这样,系统将忽略帧的余下部分,并开始寻找下一个引导标志。

使用特权

评论回复
17
heisexingqisi| | 2016-8-7 23:12 | 只看该作者
UART首先将接收到的并行数据转换成串行数据来传输。

使用特权

评论回复
18
wahahaheihei| | 2016-8-8 21:38 | 只看该作者
在接收过程中,UART从消息帧中去掉起始位和结束位,对进来的字节进行奇偶校验,并将数据字节从串行转换成并行

使用特权

评论回复
19
gejigeji521| | 2016-8-8 22:38 | 只看该作者
微控制器中的UART传送数据的速度范围为每秒几百位到1.5Mb

使用特权

评论回复
20
Thethree| | 2016-8-9 10:49 | 只看该作者
irda属于红外发送接收的协议吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

204

主题

3476

帖子

10

粉丝