常有这种情况,需要在没有直接电缆连接的情况下,将一些位或字节的数据送给一个微控制器。实现这一目标的一种简单方式是使用到处可见的红外接收器,如Vishay公司的TSOP17xx或类似接收器,它们一般用于红外遥控设备,如电视和录像机。这些装置很容易实现,因为它们不需要外接元件。这些接收器通常使用一个38kHz的脉冲载波,并带有一个放大器、自动增益控制和解调器。
简单应用的主要问题是建立发射机,它需要一个38kHz的起始-停止振荡器、附加电源,以及毫秒与亚毫秒范围内的调制脉冲。用PC *** 作系统难以控制这些要素。另一方面,PC串行端口的标准传输速率为38400bps,用一个简单的倍频器和两只红外LED就可以生成精确的38.4kHz的脉冲数据(图1)。当用另一种O/I模式(HEX55)传输字节时,每个HEX55字节都生成一串18个脉冲,再加上起始位与停止位以及连续字节,就可以生成较长的脉冲。
接收器需要的脉冲串范围从10个~70个脉冲,之间有大致相当的间歇;用这种设置可以很容易满足这些要求。可以发送HEX0字节生成短间歇,不过每个字节会传送两个脉冲,因为起始位与停止位的关系。但是,接收器会忽略掉这些脉冲。停止一次传输可以生成较长的间歇。必须根据使用的接收器情况,偶尔插入较长的间歇。用长、短脉冲串和适当的协议就可以实现数据传输。
图1中的电路与串行端口输出阻抗和电容一起构成了一个高通滤波器。正脉冲驱动一只红外LED;负脉冲驱动另一只。两只都应指向接收器。PC端口一般提供5mA~20mA的最大电流,以及±15V电压,因此输出电阻在数千欧姆范围内。一般不需要限流电阻。多数情况下,电容容量为1nF~10nF就可以了。接收器有宽容度。如果是非PC端口,则需要调整电容值,例如微控制器,因为它的阻抗较低。在实际应用中,如果LED对准接收器,用低至5mA的LED峰值电流就可以实现2米~4米的传输距离。可提供对PC的实例程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)