用ZHX1010实现单片机之间的红外通信
发布时间:2008/6/3 0:00:00 访问次数:743
    
    摘要: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
    
    
    摘要: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
    
上一篇:单片计算机电源设计技术
上一篇:24C04在2051系统中的使用