|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Taio 于 2019-7-22 13:58 编辑
, \# E* C/ Q, n9 d7 _" N8 V7 M9 D, X0 E
IrDA红外通信在导航仪中的应用
9 X2 K/ |! {5 K3 Y9 A摘要:IrDA红外通信是一种低价的、适应性广的短距离无线通信技术。介绍IrDA的有关协议及实现方式,并给出了IrDA红外通信在导航仪中的应用设计实例。
: \% K: [4 B5 m# j) ~0 S1 F6 { 关键词:红外数据协会(IrDA) 红外通信 高速红外 4PPM调制 高速串行/并行接口
; I, u% r% E+ i7 m. f% a 导航仪是车载或手持的路径引导装置。要准确、快速、成功地实现路径引导,必须有大量的、并能不断更新的地理信息数据支持,这就要求它具有与其他设备通信并交换数据的功能。作为嵌入式设备的一员,可以选用的通信方案有:PCI总线,IrDA,USB,Ethernet,PC卡及一些传统的I/O。其中可以实现无线通信的只有IrDA。IrDA1.0支持较高115.2Kbps的通信速率,而IrDA1.1可以支持到4Mbps。
+ D3 V) Q% j2 U( J 无线通信的好处是可以去除设备对线缆和连接器的依赖,只要通信双方都支持IrDA协议,就能很快地建立通信链路,实现数据交换。; b6 `% P6 l- Z H' ~$ A" Q J
现在市场上60%的笔记本电脑都支持红外传输,红外接口也成为几乎所有的掌上电脑的必配标准件。而现在生产的PC机主板上也大都预留了红外接口,只要选配合适的红外收发模块就能实现红外无线数据通信。可见,红外技术的迅速普及,使我们能够最终突破数字终端之间连线的限制。
2 o. b2 d" X) K+ ?: B6 k5 x1 h, G1 IrDA及其通信协议简介, W6 }+ F+ g1 a& ^" P# w
红外数据协会(IrDA)是1993年6月成立的一个独立组织,它为短距离红外无线数据通信制定了一系列开放的标准。IrDA的目标是制定能以合理且较小的代价实现的标准和协议,以推进红外通信的发展。! y) N9 I; P2 K& g3 |) @
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的所有速率。; B- I" \2 r" l- Y( u% y# t e
在IrDA中,物理层、链路接入协议(IrLAP)和链路管理协议(IrLMP)是必需的三个协议层。除此之外,还有一些适用于特殊的应用模式的可选层。
# t9 ~2 @6 s) K 在基本的IrDA应用模式中,设备分为主设备和从设备。主设备探测它的可视范围,寻找从设备。然后从那些响应它的设备中选择一个,试图建立连接。在建立连接的过程中,两个设备彼此协调,按照它们共同的较高通信能力确定较后的通信速率。以上的“寻找”和“协调”过程都是在9.6Kb/s的波特率下进行的。. ~4 U& L! A' \! m( X, q. w- K
IrDA数据通信工作在半双工模式,因为发射时,接收器会被它自己的发射器的光芒所屏蔽。通信的两个设备通过快速转向链路来模拟全双工通信,由主设备负责控制链路的时序。* k c. b: F2 X3 I
IrDA协议按层安排,应用程序的数据逐层下传,最终以光脉冲的形式发出。如图1所示,
! g8 H. h" N* s# \1 I+ k' ]![]()
x& ^+ k9 B7 i3 N& z
/ q, J5 ?( t+ `2 E! eIrLAP和IrLMP是协议中物理层之外所需的两个软件层。在物理层上的一层是链路接入协议IrLAP ,它是HDLC(高级数据链路控制)协议的改编,以适应红外传输的要求。IrLAP层的功能是进行链路初始化、设备地址寻找和解决冲突、启动连接、数据交换、断开连接和链路关闭。IrLAP指定红外数据包的帧和字节结构,以及红外通信的错误检测方法。IrLAP之上的一层是链路管理协议,即IrLMP,它管理IrLAP所提供的链路连接中的链路功能和应用程序。它评估设备上的服务,并管理如数据速率、BOF的数量(帧的开始)、及连接换向时间等参数的协调,以及数据的纠错传输。
* v ]" X4 m/ y; d IrDA物理层协议提出了对工作距离、工作角度(视角)光功率、数据速率和不同品牌设备互联时抗干扰能力的建议。
0 \0 Q9 n3 |7 T5 H/ L& h. S2 导航仪中IrDA红外通信的设计与实现
8 Y. p2 H) j! t2.1 物理层协议的实现( i' P4 w- `5 G' |8 ^
这一协议的设计保证了0~1m,0°~15°的轴线偏离角的无错通信。其中包括了调制、视角、光功率、数据速率和噪声去除的规范,以保证不同品牌和类型的设备之间的物理互连性。协议也考虑了周围的光照或其他IR噪声源的存在,以及参与IR通信的设备间的干扰。
& |: u- X: R' @' u, ]; T 协议要求合理选择发射器的光强度和接收器的灵敏度,以保证链路能在0~1m的距离内工作。数据速率小于4 Mb/s时使用RZI(归零反转)调制,较大脉冲宽度是位周期的3/16;而4 Mb/s的数据速率使用4PPM(脉冲位置)调制。图1给出了IrDA物理层的方框图。5 b' O! u, N2 A: J2 Z
IrDA要求的RZI(反相归零)调制的编码效果如图2的IR帧数据所示。这一方案需要的编码/解码器可以集成在I/O芯片中,也可作为一个独立元件。
p8 ?/ \0 X0 Y. X
3 d! d+ y! d/ B$ @/ U- z 9 A6 q# N. W, Z* E# _( f; [
/ i3 ^4 b; O. f( R( V) ?
4PPM调制如图3所示,两个数据位组合在一起,组成一个500ns的“数据码元组”。将这一码元组分为四个125ns的时隙,根据码元组的状态,在不同的时隙放置单脉冲。解调器在对输入位流的相位锁定后,就能根据脉冲在500ns周期中的位置来解出数据。' d8 o- }9 z9 P& j! p# n
2.2 硬件电路的设计
" E; B" r' D8 J! C' F x 导航仪的核心MCU选用Intel公司的SA1110,它的串口2是特别为IrDA红外通信设计的,内部集成了支持SIR和FIR的两个独立编码/解码模块,能够与市场上IrDA兼容的LED收发器直接相连。/ b d) z* {' w% {* ^! V& M( h
红外收发器选用HP公司的HSDL-3600,它支持9.6kb/s~4Mb/s的数据传输速率,其典型链路传输距离可大于1.5m。通过管脚FIR_SEL能选择可以接收的数据速率。FIR_SEL设为低时,较高速率可达115.2kb/s;设为高时,较高速率可达4Mb/s。同时,它还有两个管脚MD0和MD1,用来选择发光功率。用户可以根据自己的需要设定,达到在短距离通信情况下省电的目的。从表1所示的收发器控制真值表中,可以清楚地看到功能选择的组合。7 W3 t$ P0 j# z. X! }0 M' K' I( X
2 K/ f. q5 [. c) x: X9 a
表1 收发器控制真值表2 w9 f5 ^0 y. c
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距离 | ; t: {7 ?6 \, X4 u2 R8 ^9 o/ k
图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的工作模式。6 b' d- U+ \& p
1 D# b/ F! Y! A/ W8 h h/ r6 L % M: `) H0 R/ j. U& A( c) O
7 e/ b% h- Q K# }( x$ Q$ m; Q
2.3 IrDA红外通信的数据流4 d# c, [! [1 |
SA1110的红外通信端口(ICP)既支持SIR,也支持FIR。/ Y0 `4 c' ^( A
在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位数据、停止位组成,无奇偶校验。5 L7 a7 T: t( F: \! c
而在FIR模式下,通信过程就复杂得多。所有在TXD2/RXD2管脚和ICP的HSSP(高速串行/并行)接口之间传送的串行数据,都是根据4PPM IrDA标准来调制/解制。编码时,把一个字节分为四个单独的码元组(2位一对),最低的码元组首先传送,但每个码元组不重新排序。这样,一个字节由四个“片”(每片500ns)组成,每个“片”分为四个时隙(每个时隙125ns)。
+ I9 y( r8 ]* P" L6 H ICP中用高速串行/并行(HSSP)接口来实现特殊的4Mb/s协议。4Mb/s的串行帧格式如表2所示。$ \1 ]7 a1 P* k0 c3 y
% P6 G$ X' o, j5 J
表2 用于IrDA传送(4Mbps)的高速串行帧格式1 ?) q+ Z$ |' p0 H
引导标志 起始标志 | 地址 | 控制(可选) | 数据 | CRC-32 | 停止标志 | | 引导标志 ㄧ1000ㄧ0000ㄧ1010ㄧ0000ㄧ---重复16次- { ~- w$ h( |' F
起始标志 ㄧ0000ㄧ1100ㄧ0000ㄧ1100ㄧ0110ㄧ0000ㄧ0110ㄧ0000ㄧ# _' f9 m2 y4 n+ T- i8 V
停止标志 ㄧ0000ㄧ1100ㄧ0000ㄧ1100ㄧ0000ㄧ0110ㄧ0000ㄧ0110ㄧ | 7 B* @: f/ D n1 |- V
引导标志用于接收同步,接收开始时,使用一个串行移位寄存器从RXD2管脚接收四个4PPM片,一次锁存并解码这些片。如果这些片不能解码为正确的引导标志,时隙计数延迟1,并重复以上过程,直到辨认出引导标志,则标志时隙计数器同步。引导标志最少重复16次,在空闲时(无发送数据)不断重复。所以在16个引导标志传送完后的任何时候,都可能接收到起始标志。3 Y8 t6 L* V7 X# T# ]& ?& `# v8 q
接收到8片长的起始标志后,将它与标准编码比较。如果起始标志的任一部分和标准编码不一样,则告知一个帧错误,并且再一次开始寻找帧引导标志。一旦正确的起始标志被验证,接下来的每组4片就被解码为一个数据字节,并放入5字节的临时FIFO寄存器中。当临时FIFO被填满后,数据值便被一个接一个地推入接收FIFO。# A) Z+ `2 N6 r2 q
* l7 P/ B) e+ n& ^
X" F4 s W2 b0 A- p/ F" d
l8 s3 f1 ]" d' p" u( x
一帧的一个数据字节是8位的地址区,它是在一对多通信时用来指定接收器的。最多允许255个独立地址(00000000~11111110)。11111111为通用地址,用于对所有站广播信息。接收地址匹配可以激活或禁止。如果接收地址匹配激活,收到的地址将和地址匹配值比较,如果两个值相等或输入地址是通用地址,所有的数据字节,包括地址字节,都将存储在接收FIFO中。如果值不相符,则不把任何数据存储到接收FIFO,并忽略帧的余下部分,开始寻找下一个引导标志。
9 X5 C9 T5 C& x2 g2 T6 { 一帧的第二个数据字节可能包括一个可选的由用户定义的8位控制区,它必须由软件解码,因为在HSSP中它被视为普通的数据。
" }* T" i9 d5 N. D9 \ 一帧可以包含不大于2047字节的任何数量的多个8位数据(包括地址和控制字节)。HSSP不限制一帧的大小,但选择数据长度时,应考虑到CRC校验的能力。一般数据长度不超过CRC校验能检测到传输中所有错误时的较大数据量。1 D7 i5 C2 n0 J: Z
HSSP使用已确定的32位循环冗余校验(CRC)来检测传送中发生的位错误。CRC数值的计算使用地址、控制和数据区,其生成多项式为:
( h" c1 X* c, x8 { f# \8 e CRC(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1 J* K3 e# i9 U/ _- l0 s& `
CRC数值不放在接收FIFO中,而是放入5字节的临时FIFO中,并与接收时计算出的CRC数值进行比较。
4 K0 |8 j/ `3 g* Q* X' e3 L+ j3 j5 R 如果数据区中接收到两个不含脉冲(是0000)的片,则开始寻找停止标志。一旦停止标志被确认,放入接收FIFO的较后一个字节被标志为帧的较后字节。
4 k7 W( k0 Q9 M1 w7 Z2 p: J3 前景与展望 p) E- T% c% x+ b- {3 b
随着红外通信技术的发展,其通信速率也将不断提高,在2001年IrDA将推出16Mbps的甚高速红外(VFIR)标准。IrDA红外通信的作用距离也从1m扩展到几十m,但距离的扩展是以功耗的增加为代价的。9 V) [" j# t2 O
对于象导航仪这样的小型设备,IrDA红外通信不失为一种方便、快捷的与主机交换数据的实现方案。随着IrDA协议在PC机、打印机、扫描仪、数字相机、局域网(LAN)接入设备、寻呼机、蜂窝电话、医疗设施等设备上的实现,无处不在的数字化连接即将成为现实。5 R# a& k. C% X. d5 e
' t8 f, y8 J( e4 l# {. V8 o
+ P2 ^2 y" I$ N' h% _$ k! B& R, V
|
|