|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Taio 于 2019-7-22 13:58 编辑 4 q% e2 |0 Z: H3 l
' B0 b0 E) A& O, @1 h
IrDA红外通信在导航仪中的应用
# t3 F, o: V6 }1 y2 f摘要:IrDA红外通信是一种低价的、适应性广的短距离无线通信技术。介绍IrDA的有关协议及实现方式,并给出了IrDA红外通信在导航仪中的应用设计实例。# R/ o. P8 z* V5 e6 K6 x8 \; T! o: b
关键词:红外数据协会(IrDA) 红外通信 高速红外 4PPM调制 高速串行/并行接口
6 v+ ?' W$ L2 a" |7 @ 导航仪是车载或手持的路径引导装置。要准确、快速、成功地实现路径引导,必须有大量的、并能不断更新的地理信息数据支持,这就要求它具有与其他设备通信并交换数据的功能。作为嵌入式设备的一员,可以选用的通信方案有:PCI总线,IrDA,USB,Ethernet,PC卡及一些传统的I/O。其中可以实现无线通信的只有IrDA。IrDA1.0支持较高115.2Kbps的通信速率,而IrDA1.1可以支持到4Mbps。! k! y9 g# H: i5 |- ^6 M) L+ i/ z" z
无线通信的好处是可以去除设备对线缆和连接器的依赖,只要通信双方都支持IrDA协议,就能很快地建立通信链路,实现数据交换。
2 l6 S4 ?0 A1 b9 L 现在市场上60%的笔记本电脑都支持红外传输,红外接口也成为几乎所有的掌上电脑的必配标准件。而现在生产的PC机主板上也大都预留了红外接口,只要选配合适的红外收发模块就能实现红外无线数据通信。可见,红外技术的迅速普及,使我们能够最终突破数字终端之间连线的限制。7 P/ ?( u' e& u5 k0 P
1 IrDA及其通信协议简介
1 e- h. b& X. {# W 红外数据协会(IrDA)是1993年6月成立的一个独立组织,它为短距离红外无线数据通信制定了一系列开放的标准。IrDA的目标是制定能以合理且较小的代价实现的标准和协议,以推进红外通信的发展。
9 w& }/ l+ g. o7 `- s IrDA数据通信按发送速率分为三大类:SIR,MIR和FIR。串行红外(SIR)速率覆盖了RS-232端口通常所支持的速率(9600 b/s19.2 Kb/s38.4 Kb/s57.6 Kb/s115.2 Kb/s)。MIR指0.576 Mb/s和1.152 Mb/s的速率。高速红外(FIR)通常用于指4 Mb/s的速率,有时也用于指高于SIR的所有速率。' z; f; P8 }; s1 R% p
在IrDA中,物理层、链路接入协议(IrLAP)和链路管理协议(IrLMP)是必需的三个协议层。除此之外,还有一些适用于特殊的应用模式的可选层。* ~' a* F+ d2 I3 _
在基本的IrDA应用模式中,设备分为主设备和从设备。主设备探测它的可视范围,寻找从设备。然后从那些响应它的设备中选择一个,试图建立连接。在建立连接的过程中,两个设备彼此协调,按照它们共同的较高通信能力确定较后的通信速率。以上的“寻找”和“协调”过程都是在9.6Kb/s的波特率下进行的。8 k2 z- m2 x- \/ v2 {5 n& o
IrDA数据通信工作在半双工模式,因为发射时,接收器会被它自己的发射器的光芒所屏蔽。通信的两个设备通过快速转向链路来模拟全双工通信,由主设备负责控制链路的时序。
) E# p5 H+ V7 s; } IrDA协议按层安排,应用程序的数据逐层下传,最终以光脉冲的形式发出。如图1所示,) y# ?/ f5 a6 D2 p! q0 Y A
![]()
0 H/ D1 d; q. O+ x; z
0 P# M% j) ~' G! O0 A6 ZIrLAP和IrLMP是协议中物理层之外所需的两个软件层。在物理层上的一层是链路接入协议IrLAP ,它是HDLC(高级数据链路控制)协议的改编,以适应红外传输的要求。IrLAP层的功能是进行链路初始化、设备地址寻找和解决冲突、启动连接、数据交换、断开连接和链路关闭。IrLAP指定红外数据包的帧和字节结构,以及红外通信的错误检测方法。IrLAP之上的一层是链路管理协议,即IrLMP,它管理IrLAP所提供的链路连接中的链路功能和应用程序。它评估设备上的服务,并管理如数据速率、BOF的数量(帧的开始)、及连接换向时间等参数的协调,以及数据的纠错传输。
0 d9 R g3 @6 ?. l2 e. k6 x9 l IrDA物理层协议提出了对工作距离、工作角度(视角)光功率、数据速率和不同品牌设备互联时抗干扰能力的建议。# x0 _4 W% a4 p+ Y% m! ?6 A4 v
2 导航仪中IrDA红外通信的设计与实现
' S! H6 N! V4 B% r2.1 物理层协议的实现
1 v; c0 S1 @) a# t7 `2 A 这一协议的设计保证了0~1m,0°~15°的轴线偏离角的无错通信。其中包括了调制、视角、光功率、数据速率和噪声去除的规范,以保证不同品牌和类型的设备之间的物理互连性。协议也考虑了周围的光照或其他IR噪声源的存在,以及参与IR通信的设备间的干扰。
; K% D- J+ J; e; f% F( ~. @1 j 协议要求合理选择发射器的光强度和接收器的灵敏度,以保证链路能在0~1m的距离内工作。数据速率小于4 Mb/s时使用RZI(归零反转)调制,较大脉冲宽度是位周期的3/16;而4 Mb/s的数据速率使用4PPM(脉冲位置)调制。图1给出了IrDA物理层的方框图。
4 f/ d* O! Q5 Q! ] IrDA要求的RZI(反相归零)调制的编码效果如图2的IR帧数据所示。这一方案需要的编码/解码器可以集成在I/O芯片中,也可作为一个独立元件。- s1 }/ I; V7 M' @' Q3 ^. K
+ _; V2 K! p/ f. ?: N
![]()
5 k ~; T, M7 I5 v+ _! l( w/ D, G/ E: {$ E7 I
4PPM调制如图3所示,两个数据位组合在一起,组成一个500ns的“数据码元组”。将这一码元组分为四个125ns的时隙,根据码元组的状态,在不同的时隙放置单脉冲。解调器在对输入位流的相位锁定后,就能根据脉冲在500ns周期中的位置来解出数据。/ X: {) l) {8 A# E* k) Z; F8 J% L
2.2 硬件电路的设计7 T3 J4 g& n" b4 S- I; i
导航仪的核心MCU选用Intel公司的SA1110,它的串口2是特别为IrDA红外通信设计的,内部集成了支持SIR和FIR的两个独立编码/解码模块,能够与市场上IrDA兼容的LED收发器直接相连。; V U+ M; w, \% r0 X% b
红外收发器选用HP公司的HSDL-3600,它支持9.6kb/s~4Mb/s的数据传输速率,其典型链路传输距离可大于1.5m。通过管脚FIR_SEL能选择可以接收的数据速率。FIR_SEL设为低时,较高速率可达115.2kb/s;设为高时,较高速率可达4Mb/s。同时,它还有两个管脚MD0和MD1,用来选择发光功率。用户可以根据自己的需要设定,达到在短距离通信情况下省电的目的。从表1所示的收发器控制真值表中,可以清楚地看到功能选择的组合。! g' `0 W8 Z l( r$ @* N
/ a3 g& w9 E) T5 ~% K表1 收发器控制真值表" y$ B$ g- @- i, M" @7 v7 t) k; H
MD0 | MD1 | FIR_SEL | 接收功能 | 发射功能 | 1 | 0 | X | 关闭 | 关闭 | 0 | 0 | 0 | SIR | 全距离 | 0 | 1 | 0 | SIR | 2/3距离 | 1 | 1 | 0 | SIR | 1/3距离 | 0 | 0 | 1 | FIR | 全距离 | 0 | 1 | 1 | FIR | 2/3距离 | 1 | 1 | 1 | FIR | 1/3距离 | - _1 h' V3 p. z* `
图4是HSDL-3600的功能方框图,它给出了HSDL-3600的管脚说明及典型外围电路。其中CX1取0.47μF,CX2取6.8μF,R1取2.5Ω。在应用时,管脚TXD和RXD与SA1110的TXD2、RXD2分别直接相连。而SA1110的32位数据线中的三根通过锁存器接到MD0,MD1和FIR_SEL上,这样就能通过软件控制HSDL-3600的工作模式。
: \- U* d/ R0 v8 X! n2 Y/ m
5 R: f# i2 B3 |* O$ k* ?2 w2 @4 g![]()
. |, g" C* `- f
$ f% O% ~6 B3 U" T/ Y2.3 IrDA红外通信的数据流, U1 T5 k' I7 O6 H
SA1110的红外通信端口(ICP)既支持SIR,也支持FIR。8 ?4 J7 f0 X0 O( E, X. z
在SIR模式下,所有在TXD2/RXD2管脚和ICP的UART之间传送的串行数据都根据SIR IrDA标准调制/解调。逻辑0由一个3/16位宽或1.6μs宽的光脉冲代表(1.6μs是较高位速率115.2 Kbps的位宽的3/16)。0位的开始对应脉冲的上升沿。逻辑1由无光脉冲代表。字节首先从LSB开始发送。每帧由起始位、8位数据、停止位组成,无奇偶校验。' B& c; T& z& F4 Q* ?6 X2 v: p5 M
而在FIR模式下,通信过程就复杂得多。所有在TXD2/RXD2管脚和ICP的HSSP(高速串行/并行)接口之间传送的串行数据,都是根据4PPM IrDA标准来调制/解制。编码时,把一个字节分为四个单独的码元组(2位一对),最低的码元组首先传送,但每个码元组不重新排序。这样,一个字节由四个“片”(每片500ns)组成,每个“片”分为四个时隙(每个时隙125ns)。
$ k% L+ `% l% b9 S- {1 { ICP中用高速串行/并行(HSSP)接口来实现特殊的4Mb/s协议。4Mb/s的串行帧格式如表2所示。
! B/ x- }' b& H" \7 K5 H7 ~+ @
2 ~6 q2 L ?7 h( q9 M表2 用于IrDA传送(4Mbps)的高速串行帧格式) c; q( `1 G( Z$ L9 B1 M
引导标志 起始标志 | 地址 | 控制(可选) | 数据 | CRC-32 | 停止标志 | | 引导标志 ㄧ1000ㄧ0000ㄧ1010ㄧ0000ㄧ---重复16次
1 B% G, m, |" p0 ?" e. z起始标志 ㄧ0000ㄧ1100ㄧ0000ㄧ1100ㄧ0110ㄧ0000ㄧ0110ㄧ0000ㄧ
. u3 q( @/ d" Q0 R停止标志 ㄧ0000ㄧ1100ㄧ0000ㄧ1100ㄧ0000ㄧ0110ㄧ0000ㄧ0110ㄧ | # j x8 o2 h2 j2 m. _$ K
引导标志用于接收同步,接收开始时,使用一个串行移位寄存器从RXD2管脚接收四个4PPM片,一次锁存并解码这些片。如果这些片不能解码为正确的引导标志,时隙计数延迟1,并重复以上过程,直到辨认出引导标志,则标志时隙计数器同步。引导标志最少重复16次,在空闲时(无发送数据)不断重复。所以在16个引导标志传送完后的任何时候,都可能接收到起始标志。0 G& Q: Q+ L: N/ R3 \7 e
接收到8片长的起始标志后,将它与标准编码比较。如果起始标志的任一部分和标准编码不一样,则告知一个帧错误,并且再一次开始寻找帧引导标志。一旦正确的起始标志被验证,接下来的每组4片就被解码为一个数据字节,并放入5字节的临时FIFO寄存器中。当临时FIFO被填满后,数据值便被一个接一个地推入接收FIFO。
D3 t: e ~4 G5 Z+ J1 o8 Y, w' ]+ n. {
![]()
: H7 Y* u; S; d$ C# z$ |3 J r( |
- P! g: h: q+ L' w+ F 一帧的一个数据字节是8位的地址区,它是在一对多通信时用来指定接收器的。最多允许255个独立地址(00000000~11111110)。11111111为通用地址,用于对所有站广播信息。接收地址匹配可以激活或禁止。如果接收地址匹配激活,收到的地址将和地址匹配值比较,如果两个值相等或输入地址是通用地址,所有的数据字节,包括地址字节,都将存储在接收FIFO中。如果值不相符,则不把任何数据存储到接收FIFO,并忽略帧的余下部分,开始寻找下一个引导标志。
" ~7 s% R, Q2 c" ?" X" C9 @0 w 一帧的第二个数据字节可能包括一个可选的由用户定义的8位控制区,它必须由软件解码,因为在HSSP中它被视为普通的数据。
8 a' c) g5 a0 g9 W) s 一帧可以包含不大于2047字节的任何数量的多个8位数据(包括地址和控制字节)。HSSP不限制一帧的大小,但选择数据长度时,应考虑到CRC校验的能力。一般数据长度不超过CRC校验能检测到传输中所有错误时的较大数据量。) T! A, N0 U0 |) f$ |
HSSP使用已确定的32位循环冗余校验(CRC)来检测传送中发生的位错误。CRC数值的计算使用地址、控制和数据区,其生成多项式为:
, r+ `" O: L4 T CRC(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1; P# \' }- l3 W' ?
CRC数值不放在接收FIFO中,而是放入5字节的临时FIFO中,并与接收时计算出的CRC数值进行比较。1 o8 ~, h) n, r6 W
如果数据区中接收到两个不含脉冲(是0000)的片,则开始寻找停止标志。一旦停止标志被确认,放入接收FIFO的较后一个字节被标志为帧的较后字节。
& M/ a! D1 Z$ T: z J' q3 前景与展望
0 T1 h0 r; s# h j 随着红外通信技术的发展,其通信速率也将不断提高,在2001年IrDA将推出16Mbps的甚高速红外(VFIR)标准。IrDA红外通信的作用距离也从1m扩展到几十m,但距离的扩展是以功耗的增加为代价的。) l4 @1 u5 i- L
对于象导航仪这样的小型设备,IrDA红外通信不失为一种方便、快捷的与主机交换数据的实现方案。随着IrDA协议在PC机、打印机、扫描仪、数字相机、局域网(LAN)接入设备、寻呼机、蜂窝电话、医疗设施等设备上的实现,无处不在的数字化连接即将成为现实。
) B- W( n) S. L* A# q# @
3 W$ J1 {( N4 {8 ?8 a) q; E, Z
4 T$ H! z" a3 x5 h# t |
|