| 用ZHX1010实现单片机之间的红外通信 |
| 类别:单片机/DSP |
|                   摘要:ZHX1010是ZiLOG公司的红外收发芯片,该芯片在1米范围内的最高速度可达115.2kbps,2.4V~5.5V的宽电源范围可使其与各种电压的CPU进行方便的接口。文中介绍了ZHX1010的特点、结构和使用方法,并给出了它与AT89C51的接口应用。     关键词:红外通信 单片机 ZHX1010     引言     目前的单片机应用系统之间一般都使用UART进行通信,通过电平转换口将信号变成RS232或RS485信号来进行直接通信。这种有线通信的好处是通信误码率比较低,受干扰的机率相对较少,但对于要经常插拔通信 线的系统来说,有线通信反而容易出现故障。笔者在开发织机控制系统时,要用一个手持式编程器来修改控制系统的工作参数。在实际使用过程中,由于工作人员要经常插拔通信线,因此会经常出现接触不良、绕毁通信芯片的情况。笔者利用ZiLOG公司生产的IrDA芯片ZHX1010设计了一个红外无线通信电路。     1 ZHX1010介绍     ZHX1010是一个符号IrDA SIR(Serial Infrared,串行红外协议)的收发模块,该模块在1米范围内的最高速度可达115.2kbps。而且它的供电范围较宽(2.4~5.5V),可方便地与各种电压的CPU进行接口。     ZHX1010在3V供电时,其典型电流只有90μA,非常适用于电池供电产品。此外,ZHX1010体积小,仅有9.9mm×3.7mm,且其外围元件少(只需一个电阻和一个电容)。     ZHX1010有6个引脚,依次是LEDA、TXD、RXD、SD、Vcc和GND。LEDA内部与IRED红外发光二极管相连,外部接一限流电阻到Vcc,以给红外管提供工作电流。但应注意提供的最大电流不能超过500mA(20%的占空比)。TXD是数据发送引脚,该脚内部带有下拉电阻,可以直接接到MCU的数据发送端,当器件进入省电模式时,该下拉电阻开路。RXD是接收到红外数据后的输出脚,它是一个三态输出引脚,摆率控制的CMOS输出驱动器可驱动标准CMOS或LSTTL负载。该引脚无需外接电阻。SD是省电模式控制脚,该引脚输入高电平时,ZHX1010进入省电模式,此时的最大电流只有1μA。     2 ZHX1010与AT89C51的接口电路     AT89C51的工作电压为5V,而ZHX1010的工作电压范围较宽,从2.4V到5.5V,因此可以直接相连。此外,AT89C51有一个UART,非常适合于传输串行数据,当使用22.1184MHz的晶振时,其最高波特率可以达到115.2kbps。     图1给出了ZHX1010与AT89C51的具体接口连接方式。                    3 程序设计     使用ZHX1010的目的是在两个单片机系统之间进行无线数据通信,因此,AT89C51的UART应工作于方式2,而且应使其波特率可调,以适用于不同通信距离的应用场合。其工作方式初始化程序如下:     InitComm:     MOV TMOD,#21H     MOV TH1,#250 ;22.1184M晶振     MOV TL1,#250 ;9600bps     SETB TR1     MOV SCON,#50H     MOV 87H,#0H     CLR RI     SETB REN     SETB ES ;允许接收中断     RET     为了避免数据丢失,接收红外数据采用中断方式,接收到的数据可保存在cReceBuffer中,中断部分的具体程序如下:     cReceBuffer EQU 40H ;数据接收缓冲区     cReceLen EQU 50H ;数据接收长度     CommIntProc:     PUSH ACC     PUSH R0     MOV A,#cReceBuffer ;计算要保存数据的当前地址     ADD A,cReceLen     MOV R0,A     MOV A,SBUF     MOV @R0,A ;保存收到的数据     INC cReceLen ;收到的数据长度加1     POP R0     POP ACC     RETI     数据收到后,便可根据不同的命令来完成不同的功能:     MOV A,cReceBuffer ;首字节是命令号     CJNE A,#1,Command1     ;读取设定的数据     …     Command1:     CJNE A,#2,Command2    修改设定的数据     …     Command2:    其他命令     RET     4 总结     在使用ZHX1010时,要注意现场的环境情况。在笔者实际使用过程中,常常会出现收发误码率较高的情况,经检查发现是ZHX1010的红外发送、接收头比较脏,其原因是织造厂的环境比较恶劣,空气比较潮湿,很容易在发送、接收端聚集灰尘,从而影响通信。另外,一个系统完成从发送到接收的状态转换时,要经过至少2ms的延时才能保证接收比较可靠。           |
- pic16单片机应..
- 2008-1-9
- 基于单片机的某车型..
- 2008-1-7
- 基于ARM的FPG..
- 2008-1-7
- 基于单片机的电热水..
- 2007-11-15
- 一种基于单片机的汽..
- 2007-11-15
- 基于单片机的电子导..
- 2007-11-8
- 51单片机边沿触发..
- 2007-11-8
- 如何选择细纱机主电..
- 2007-11-5
- 单片机编程技巧
- 2007-9-14
- 空压机变频改造技术..
- 2007-9-3
- 运用定点DSP实现..
- 2007-8-7
- 基于TMS320C..
- 2007-8-9
- 一种用于图像认证的..
- 2007-7-29
- TMS320F20..
- 2007-8-9
- 多DSP系统互连方..
- 2007-8-9
- C5402 DSP..
- 2007-8-9
- 具有高可靠性的高速..
- 2007-8-9
- 基于DSP的实时M..
- 2007-8-7
- 带ARM核的双CP..
- 2007-8-9
- 基于TMS320V..
- 2007-8-9




