如何在Linux使用红外进行手机通讯

如何在Linux使用红外进行手机通讯,第1张

1、准备软件

irda-utils和gnokii红旗5.0已经包含。

2、配置irda

不同的irda有不同的配置方法。这里仅据一例,使用USB转串口的力特Z-TEK ZK-ID5红外适配器(芯片为MA600),到中关村转了一圈,市面上流行的多数红外适配器都是可以支持的,比如力特(除ZK-ID7之外,使用Moschip 7703),水木行等。建议使用ma600/mcs7780/esi/tekram/actisys/girbil/ep7211等芯片的红外适配器。

力特ZK-ID6配置命令如下(可以将这些命令写入一个脚本):

modprobe uhci_hcd modprobe pl2303 modprobe irda echo 9600 >/proc/sys/net/irda/max_baud_rate modprobe irtty-sir modprobe ma600-sir modprobe ircomm-tty irattach /dev/usb/ttyUSB0 -d ma600 -s

运行后,使用ifconfig查看,可以看到一个irda0的接口。

3、测试红外连接

我使用nokia 8250手机,只要支持红外的手机都可以。打开手机的红外连接,对准红外适配器(距离在1米以内,角度为30度以内)。然后运行irdadump命令。可以看到:

06:28:15.560217 xid:rsp 721dfac0 <d91a0000 S=6 s=5 Nokia 8250 hint=b125 [ PnP Modem Fax Telephony IrCOMM IrOBEX ] (27)

这时候连接就已经完成了。

4、配置gnokii

vi /etc/gnokiirc

写入:

[global] port=/dev/usb/ttyUSB0 model = 8250 initlength = default connection = irda serial_baudrate = 9600

5、运行xgnokii

从命令行,启动xgnokii。这时候你会看到一个图形界面。上面有contacts, sms等。点击相应的按钮,就可以下载或者上传通讯录。或者使用软件发送和接受短信了。

注:由于手机都有节电的功能,一段时间不活动会自动关闭红外接口,所以,请确认运行xgnokii的时候,手机的红外接受功能是打开的,一般手机屏幕上都会有显示。

NB5026作为编码器有11个地址编码线,其编码信号由输出使能控制端(——TE)控制,11根具有4种状态的地址编码线(1脚为第四态端子4TH),每次的编码序列均被连续的发送两次以提高可靠性。NB5027解码器用来接收编码序列并对其进行译码,地址码由七位具有四种状态的地址线产生,总共可有16384种编码组合(1脚为第四态端子4TH),如果使用三态编码,7个地址线共有2187种编码方式,如用二态编码方式共有128种编码,另有四个连续的二进制数据输出端,可用于控制;当接收的码流序列有两次与芯片本地的地址编码相同,并且每次收到的数据位也相同时,数据被输出到数据管脚,同时VT端子输出一高电平脉冲

nb5026在无线电遥控中的应用,多用于无线遥控,类似于电视机的遥控

随着电子技术的飞速发展,新型大规模遥控集成电路的不断出现,使遥控技术有了日新月异的发展。遥控装置的中心控制部件已从早期的分立元件、集成电路逐步发展到现在的单片微型计算机,智能化程度大大提高。近年来,遥控技术在工业生产、家用电器、安全保卫以及人们的日常生活中使用越来越广泛。

红外遥控就是把红外线作为载体的遥控方式。由于红外线的波长远小于无线电波的波长,因此在采用 红外遥控方式时,不会干扰其他电器的正常工作,也不会影响临近的无线电设备。同时,由于采用红外线遥控器件时,工作电压低,功耗小,外围电路简单,因此它在日常工作生活中的应用越来越广泛。

常用的红外遥控系统一般分发射和接收两个部分。发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管;由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量的使用的红外发光二极管发出的红外线波长为940mm左右,外形与普通φ5发光二极管相同,只是颜色不同。红外发光二极管一般有黑色、深蓝、透明三种颜色。判断红外发光二极管好坏的办法与判断普通二极管一样;用万用表电阻挡量一下红外发光二极管的正、反向电阻即可。红外发光二极管的发光效率要用专门的仪器才能精确测定,而业余条件下只能用拉锯法来粗略判判定。

接收部分的红外接收管是一种光敏二极管。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外发光二极管一般有圆形和方形两种。

由于红外发光二极管的发射功率一般都较小(100mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。前些年常用Μpc1373H、CX20106A等红外接收专用放大集成电路。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正(VDD)、电源负(GND)和数据输出(VO或OUT)。红外接收头的引脚排列因型号不同而不尽相同,可参考厂家的使用说明。成品红外接收头的优点是不需要复杂的调试和外壳屏蔽,使用起来如同一只三极管,非常方便。但在使用时注意成品红外接收头的载波频率。红外遥控常用的载波频率为38kHz这是由发射端所使用的455kHz晶振来决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9kHz≈38kHz。也有一些遥控系统采用36 kHz、40 kHz、56 kHz等,一般由发射端晶振的振荡频率来决定。

针对便携产品应用的红外数据通信模块(图)

作者:解放军理工大学刘荣何敏 日期:2005-6-1

摘要:红外通信有着成本低廉、连接方便、简单易用和结构紧凑的特点,因此在小型的移动设备中获得了广泛的应用。目前大多数作为采样数据的终端希望通过串口或红外接口与移动设备(如掌上电脑等)进行通信。和传统的遥控器中采用的红外相比较,红外数据传输的实现方式是不同的。在笔记本电脑,手机,PDA和数码相机上的红外传输均采用红外数据传输。本文介绍了红外数据通信实现的原理,标准和方法。以实现和PDA(奥克码—桑夏PPC2188型)的红外数据通信为例介绍了该模块的实现原理和方法。关键词:IrDA;红外通信;PDA

---传统的红外通信设备主要是指红外遥控器和早期的PDA中采用的38kHz红外调制和解调方式。这种方式实现简单,但是误码率较高,不适合进行数据传输,特别是数据量大的时候。为此,IrDA组织(InfraredDataAssociation)规定了红外数据传输的标准IrDA,它规定了通过红外设备进行无线传输的方法。1994年,第一个IrDA的红外数据通信标准发布,即IrDA1.0。IrDA规范包含两个设备之间通信的标准以及与其他设备进行通信的协议。IrDA标准包含设备之间通信数据的格式以及与其他设备进行通信的协议。目前符合IrDA的设备有:笔记本电脑,手机,掌上电脑,数码相机等。Linux *** 作系统支持IrDA。目前,很多公司根据该标准生产了各种用于红外数据传输的芯片,如HP公司生产的HSDL-1000、HSDL-4230、HSDL-4220和HSDL-7000,Zilog生产的ZHX1010、ZHX1210、ZHX1810、ZHX1820。在桑夏公司的奥克码—桑夏PPC2188型PDA上采用的就是ZHX1810芯片。下面分别介绍传统的红外通信和红外数据通信的实现原理和方法。

1传统的红外通信---1.1原理---传统的红外设备传输数据时,可以采用38kHz的载波进行调制和解调。采用调幅的方式对数据进行调制,通过发光二极管将数据发送出去;采用专门的解调芯片接受红外发送来的数据。---1.2实现方法---在终端上实现数据的红外通信中,采用了图1中的电路图。

其中IFR_CLK输出频率为38kHz的方波,TXD为待发送的数据,两个信号通过有MC9013组成的电路进行调制,通过TSAL6200调制过的信号发送出去;---SFH5110—38为载波为38kHz的解调芯片,接受外部来的信号,将解调后的数据送到RXD;---在终端中,采用了以上的电路和单片机进行连接,就可以实现传统的载波(38kHz)调制解调的红外通信。其中TXD和RXD分别接在单片机的串口的发送端和接受端,IFR_CLK接在一般的IO口上。---在单片机的软件实现中,最主要的是在需要发送数据的时候用定时器在IFR_CLK口线上产生38kHz的方波。在这里,串口的速率一般较低。

---1.3缺点---(1)采用调幅进行传输,抗干扰能力差;---(2)在发送数据时,输出的功率一定时,用于信号传输的功率小,接收到的数据的信噪比小,容易误判数据;---(3)受到输出功率的影响,数据传输的距离短,速度慢;---(4)受到传输速率的影响,传输的数据量不能太大;---(5)由于没有相应的协议支持,将接收到的所有数据(包括正常的数据和干扰引起的非正常数据)送到RXD。

2红外数据通信---2.1红外数据通信的速率和物理层的数据帧格式---在红外数据传输中,对串口发送的数据采用脉冲进行调制的方式。在IrDA标准1.0中,脉冲的宽度为3/16的BIT占空比或者为固定的1.63μs的脉冲宽度。IrDA1.0简称为SIR,以系统的异步通信收发器(UART)为依托,由于受到UART通信速率的限制,SIR的最高通信速率只有115.2Kbps,也就是大家熟知的电脑串行端口的最高速率。在图2中给出了脉冲调制前的异步串口UART的数据帧格式和进行脉冲调制后的红外IR帧格式,其中,红外脉冲调制中的没有脉冲代表UART中的“1”,红外脉冲调制中有脉冲代表UART中的“0”;在没有串口数据传送时,红外数据帧中没有脉冲。

---1996年,颁布了IrDA标准1.1,即快速红外通信,简称为FIR。与SIR相比,由于FIR不再依托UART,其最高通信速率有了质的飞跃,可达到4Mbps的水平。FIR采用了全新的4PPM调制解调(PulsePositionModulation),即通过分析脉冲的相位来辨别所传输的数据信息,其通信原理与SIR是截然不同的,但由于FIR在115.2Kbps以下的速率依旧采用SIR的那种编码解码过程,所以它仍可以与支持SIR的低速设备进行通信,只有在通信对方也支持FIR时,才将通信速率提升到更高水平。对4Mbps的速率,需要使用1/4的脉冲的相位进行调制(即所谓的4PPM调制),利用脉冲四个不同的相位(位置)的一个脉冲对两个BIT进行编码。因此,前面利用脉冲有无进行调制,这里利用脉冲及脉冲的位置确定调制和解调的信号。例如,两个BIT00调制为1000(一个BIT,其中第一个1/4BIT时间有脉冲,其他3/4时间无脉冲),两个BIT01调制为0100(一个BIT,其中第二个1/4BIT时间有脉冲,其他3/4时间无脉冲)。这样,用4个脉冲就可以传输一个字节的数据量。

在和终端进行通信的设备中,数据的传输通常以系统的异步通信收发器(UART)为依托,我们只需要采用符合IrDA标准1.0的红外器件。目前,红外数据传输芯片包括两种,一种以HP公司HSDL-1000芯片为代表,HSDL-1000的一端输入为符合IrDA1.0标准的红外数据,一端为异步通信(UART)数据,可以直接用在终端中作为UART和红外数据的转换器。另外一种以Zilog生产的ZHX1810为代表,只是将红外信号转换为电信号,或将电信号转换为红外信号的红外收发器件,这种芯片在终端设备中需要应用时,需要将脉冲转换为异步通信的数据,或将异步通信的数据转换为脉冲信号方可使用。---2.2采用脉冲进行调制的原因---红外接收器需要一种方式来区分周围的干扰,噪声和信号。为了这个目的,通常利用尽可能高的输出功率:高的功率表示在接收器中的大电流,有好的信噪比。然而,IR-LED(红外灯)不可能在全部的时间连续的以高功率进行数据的发送。因此,使用每个BIT只有3/16或1/4脉冲宽度的信号进行传输。这样,输出的功率可以达到IR-LED(红外灯)连续闪烁的最大功率的4~5倍。另外,传输的途径不会携带直流成分(由于接收器连续的适应周围的环境,只检测环境变化),这样必须利用脉冲调制。---2.3红外数据通信的协议---在红外数据通信中,很容易受到外界的干扰,只有符合一定格式的数据才是正确的数据。为此,IrDA标准指定三个基本的规范和协议,包括:物理层规范(PhysicalLayerLinkSpecification),连接建立协议(LinkAccessProtocol:IrLAP)和连接管理协议(LinkManagementProtocol:IrLMP)。物理层规范制定了红外通信硬件设计上的目标和要求,IrLAP和IrLMP为两个软件层,负责对连接进行设置、管理和维护。在IrLAP和IrLMP基础上,针对一些特定的红外通信应用领域,IrDA还陆续发布了一些更高级别的红外协议,如TinyTP、IrOBEX、IrCOMM、IrLAN、IrTran-P等。它们之间的关系如图3所示。

---奥克码—桑夏PPC2188型PDA的 *** 作系统为桑夏2000 *** 作系统,该 *** 作系统为嵌入式的中文 *** 作系统,其中有支持红外通信的IrDA红外通信协议栈。终端需要和PDA进行红外通信的时候,也需要有支持红外通信的IrDA红外通信协议栈。有了支持红外通信的IrDA红外通信协议栈,终端不仅可以和PDA进行通信,也可以同带有红外通信口的笔记本电脑、手机、掌上电脑、数码相机等进行红外通信。

3实现终端与PDA的红外通信---在终端设备中,要实现和PDA的红外通信,除了要实现将红外数据转换为UART数据,还需要编制IrLAP和IrLMP层的协议。为了降低成本,我们直接采用了红外收发器件ZiLOG生产的红外收发器作为物理层的部分器件,而将脉冲和UART之间的数据转换用软件来实现。目前,实现了以下的硬件和软件的研制和测试,这种终端与PDA的红外通信是可靠的。---3.1ZHX1810

---ZiLOG为OEM客户和最终用户提供了完整的红外数据收发方案。ZiLOG的红外收发器被广泛的应用于各种PDA产品,移动电话以及相关领域中。---最新公布的几款红外收发器ZHX1403,ZHX3403,以及ZHX1203,他们都具有极小巧的外型尺寸,ZiLOG称之为Ultraslim结构。此外ZHX1403和ZHX3403还具有AlwaysOn技术,使得长时间的红外功能开启成为了可能,这无疑为红外设备的应用增加了更多的可能性。---在本系统的设计中,采用了ZiLOG的ZHX1810。由于红外收发器也可以接收到自己发出的数据,实现的红外数据通信是半双工的。---在图4中给出了ZHX1810的内部结构。---LEDA:通过一个外接的电阻接到电源上,给LED提供电流。---TXD:用来传输串行数据。通过一个电阻接到地上,当关闭模式时处于开路状态。---RXD:用来接收串行数据(在关闭模式时处于三态),不需要外接电阻。---SD:用来将内部的电路控制在关闭模式。---在Vcc和GND之间接一个0.33μF的电容。---3.2硬件组成---为了使终端的功能和红外通信之间相对独立,我们利用了单独的单片机AT89C2051实现红外协议栈中的相关协议。AT89C2051接收到TXD发来的数据,进行处理之后将UART数据转换为对应的脉冲数据,通过ZHX1810发送出去;AT89C2051接收到ZHX1810发送来的脉冲数据,根据IrDA的相关协议栈进行解释后,将数据通过RXD以UART数据形式发送出去。从而实现红外通信。---图5中的硬件电路是实现红外通信的最低硬件配置。如果需要适应不同的波特率,需要在硬件图中加跳线来识别。如果需要实现完整的IrDA协议栈,需要在电路中加上IIC总线的存储单元;或者采用带有数据总线和地址总线的单片机,加上RAM(如HM6116)来实现。---在这里,由于桑夏公司的奥克码—桑夏PPC2188型PDA可以跳过IrDA协议栈中的连接建立协议层和连接管理协议层,只需要实现物理层的部分功能,终端采用如下的电路图就可以实现和奥克码—桑夏系列的PDA之间的红外通信。

---3.3软件实现的功能和流程---软件实现的功能如下。---软件的编写是终端和PDA进行红外通信的重点,考虑到软件的可移植性和程序执行的速度,采用了C语言进行编写,主要需要实现的功能如下:---(1)根据跳线识别不同的波特率,支持的波特率的传输范围为1200bps~57600bps;---(2)由于设置红外默认的状态为接收状态;---(3)物理层判断红外口有无接收到脉冲数据,将接收到的脉冲进行解释后送到红外数据接收缓存区;---(4)实现连接建立协议层IrLAP,和PDA建立连接;注意,这种建立的连接是单工的,只有在该次通信完成时才建立下次的连接;---(5)实现连接管理协议层IrLMP的功能;---(6)将从红外接收的数据通过RXD送到终端的异步串口接收端;---(7)从终端的异步串口发送端接收数据,根据IrDA协议栈,和PDA建立连接后,将从终端接收到的数据通过红外发送到PDA;---在软件的实现中,对终端的数据传输而言,数据是进行半双工的透明的传输。---软件的流程如图6所示。

4总结---为了便于将这样的模块应用于各种带有红外的移动终端设备的红外数据通信,我们采用了单独的MCU来实现串口数据和红外数据之间的转换。由于波特率的传输范围为1200~57600bps,我们只实现了目前广泛使用的SIR标准通信。该模块已经应用在和PDA红外通信的电路中,性能稳定。

参考文献1何立民.MCS-51系列单片机应用系统设计.北京航空航天大学出版社,19982InfraredDataAssociationSerialInfraredPhysicalLayerSpecification3ZHX1810SlimLine(tm)SIRTransceiver


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8664960.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存