基于AT89S52型单片机的红外无线PPM发射机设计
扫描二维码
随时随地手机看文章
1 引言
在工业和生活环境中,便携式信息终端设备的出现加速了无线数字通信线路和局域网的引进,然而,由于无线电的局限性,使它在无线高速数据链路应用方面受阻。在此情况下红外(IR)无线光通信得到人们的重视[1]。作为一种室内短距离通信的传输介质,IR具有胜过无线电的显著优点:IR有巨大的带宽且不需许可证,可以进行高速数据传输;IR不穿透墙壁,因而消除了在不同房间进行通信时可能带来的干扰,而且通信时不容易被侦听,提高了通信的安全性;IR探测器的尺寸比IR无的波长大得多,避免了多径衰落;IR可强度调制,IR通信设备比无线电通信设备要便宜简单得多。
对室内无线电局域网,要求红外数据链路的峰值-平均光功率比高,高峰值功率可提高系统的灵敏度,低平均功率可满足人眼安全和低功耗的要求,脉冲位置调制(PPM)通信方式就符合这些要求,目前,PPM已被IEEE无列入无线局域网IEEE802.11标准。用纯硬件设计实现PPM光发射机是比较复杂和困难的,笔者利用功能强大的AT89S52型单片机和编程软件VC++设计了一种基于计算机串口和的红外无线PPM发射机。AT89S52通过串口从计算机获取数据,编码得到脉冲宽度调制(PWM)信号后通过输出端口输出,输出的PWM信号经过波形转换电路得到PPM电脉冲信号,再通过光源驱动电路转换为PPM光脉冲信号,从而完成红外无线PPM发射机的设计。
2 PPM信号格式
PPM采用断续的周期性光脉冲作为载波,调制信号受到信源二进制符号地控制,脉冲的时间位置随之发生变化而传递信息,PPM信号结构如图1所示,在数字PPM通信中,同步是至关重要的。为了实现帧同步,应在传送信息帧之前发送一次帧同步头,为接收端提供同步信息,同时在信息帧的前面和后面分别安排2个标志帧以表示信息的开始和结束,这样接收机捕获到同步信号和起始标志符后,开始解调随后的脉冲信号,直到接收到结束标志,表明数据接收完毕。
每一个信息帧又分为信息段和保护段(由光源和信道的特性决定),共M个时隙,每个时隙的宽度为Ts,其中前Q个时隙为信息段TQ=(QTs),后D个时隙为保护段TD=(DTs)。对Q元PPM,平均光功率为Pa,光脉冲峰值功率为QPa,又一帧表示log2Q位的二进制信息,因此数据传输速率R为
R=log2Q/T=log2Q/MTs=Log2Q/(Q+D)Tsbit/s (1)
其中,T为一帧的时间长度。
在T不变的条件下,PPM的传信率和峰值功率随时隙数Q增大,但是Q值过大,也就是一帧分成的时隙数过多,会给信号的传输和解调带来困难,信息和Q值成对数关系,例如,当Q=256时,一个脉冲表示8比特信息,而Q=512表示9比特信息,由此可见,Q较大时,脉冲携带的信息量随Q值的增大并没有明显增加,综合考虑以上情况和实际设计需要,笔者采用Q=16的PPM调制方式,时隙宽度Ts设为15μs。
3 AT89S52的特点
AT89S52是一种低功耗、高性能CMOS 8位单片机,片内含8KB ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器、该器件采用Atmel公司的高密度、非易失性存储技术制造、兼容标准MCS-51指令系统及80C51引脚结构。片内集成了通用的8位CPU和ISP Flash为存储单元,可为众多嵌入式控制应用系统提供高灵活、高性价比的解决方案。
TA89S52具有如下特点:40个引脚,8KB Flash片内程序存储器,256 Bytes的随机存储数据存储器(RAM),32个外部双向输入/输出(I/O)口,1个6向量2级中断结构;3个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路和片内时钟振荡器。
此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置的省电模式。在空闲模式下,CPU暂停工作,而RAM、定时计数器、串行口、外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,禁止电路的其他功能直至外中断激活或硬件复位。同时该电路还具有PDIP、TQFP和PLCC等封装形式,以适应不同产品的设计要求。
4 硬件设计
红外线PPM发射机由AT89S52型单片机与计算机的串行通信电路,PWM到PPM波形转换电路和光源驱动电路构成,其系统结构框图如图2所示。
4.1 串行通信电路
为了能使单片机和计算机通信,必须使其遵循相同的通信协议,AT89C51的串行口输入/输出为TTL逻辑电平,抗干扰性较差,而计算机的串行接口是符合EIA RS-232C规范的外部总线标准接口,具有较强的抗干扰性,为了解决电平不一致的矛盾,该系统设计选用了Maxim公司的MAX232型电平转换器实现电平转换,MAX232属于通用串行接收/发送驱动器,其外围电路非常简单,只需外接4个0.1μF的电容器。
AT89S52具有串行通信接口(SCI),SCI是能与计算机等外设通信的全双工异步系统,AT89S52与计算机采用RS-232C接口方式,这种方式下,SCI采用标准的不归零(NRZ)格式,开始是1位起始位,以逻辑“0”表示,接着是8位数据位,最后是1位停止位,以逻辑“1”表示故一次传送据长度为10比特,计算机发送数据,AT89S52接收数据,AT89S52将接收到的数据进行PWM编码,得到帧周期固定,而脉冲宽度随外部信号不断变化的PWM信号,然后通过P1.0端口输出。
4.2 波形转换电路
经过单片机编码输出的PWM信号经过一个下降沿触发器即可得到PPM脉冲信号,波形转换如图3所示[7]。当P1.0端口输出的信号由高电平变为低电平时,触发器的输出端产生所需的PPM脉冲信号,其脉冲宽度由外部定时电路决定。
4.3 驱动电路
对于无线红外通信系统来说,半导体发光二极管(LED)是可以选用的最佳光源,笔者采用带有温度补偿特性的射极耦合LED驱动电路[8],该电路看上去像一个线性差分放大器,实际上是一个电流开关电路,PPM信号加在驱动电路的输入端,当PPM信号的电位低于设定的参考电位时,LED无脉冲电流通过,LED不发光;反之,脉冲电流通过LED而使LED发光。如图4所示,注入电流IF相等的条件下,LED的输出光功率P随着温度的上升而下降,所以设计中采用温度补偿电路进行温度补偿,当温度升高时,LED的注入电流也随之增加,从而补偿LED的功率变化。
5 软件设计
5.1 计算机软件编程
计算机的主要作用是通过串口传送源数据给单片机。
利用Visual C++编制串行通信程序一般有3种方法:调用Microsoft Win32应用程序接口(API)提供的串行通信函数,利用VC++的MFC类库函数实现;用Active X通信控件(MSComm)开发串口通信程序,笔者利用VC++提供的MSComm控件来实现计算机与单片机之间的串行通信,利用VC++的通信控件MSComm进行软件设计只需对串口进行简单的设置即可。程序实现非常简单,结构清晰,在Windows环境下,串口是系统资源的一部分,应用程序要使用串口进行通信,必须在使用之前向系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。
5.2 单片机软件编程
单片机的主要作用是从发送端(计算机)接收数据,并对接收到的数据进行PWM编码,然后通过输出端口输出,单片机部分的编程主要由串口初始化子函数,接收数据子函数和PWM信号发送子函数组成。
5.2.1 串口初始化子函数
使用串口之前,应动其进行初始化,初始化程序如下:
5.2.2 接收数据子函数
接收数据流程如图5所示,程序如下:
5.2.3 PWM发送信号子函数
PWM信号发送包括发送PWM编码后的同步头、起始标志符、接收的数据和结束标志符、下面重点讨论对接收的数据进行编码及发送,其流程如图6所示,程序如下:
6 结束语
红外通信为构建高速宽带室内无线局域网提供了新的选择。PPM的脉冲峰值功率与平均功率之比很高,可以有效减小平均辐射功率和提高接收灵敏度,笔者设计的红外无线PPM发射机利用单片机实现PPM调制,具有电路结构简单、调试容易、可靠性高、精度高、成本低和功耗低的优点,由于设计中只采用了单只红外LED作为光源,输出功率不大,而且受辐射角的限制,通信具有方向性,可以考虑采用多只红外LED构成发射阵列来增加发射功率和辐射范围。