单片机红外串行通信解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机的红外串行通信
我们知道,在红外通信中(例如电视机、电风扇、DVD 等家电的遥控器,其载波频率通常为 38KHZ 。也有一些系统使用 32KHZ ,36KHz,40KHz,56KHz 等载波频率,但是比较少见。我们可以用 T0或 T1脚产生 38KHZ 的波特率,然后把串口 TXD 送出的信号也叠加到上面(调制,这样就形成线外信号的载波传输,调制后再通过红外发光二极管发送出去。接收则使用 3端红外接收模块。红外接收模块的载波频率固定为 38KHZ ,集成了红外线的接收、放大、解调等功能, 解调后的数据直接输入 UART 的 RXD 引脚。通信的波特率设置为 2400bps (38KHZ 的载波频率不适于更高的波特率。为了避免发射时造成对本机的干扰,我们采用了半双工的通信方式。所谓半双工通信,指的是主机与从机可以进行双向通信,但是不能同时进行,在同一时间内,要么是主机发射, 从机接收;要么是从机发射,主机接收。事实上,一般红外线接收模块的接收载波中心频率虽然是 38KHZ ,但其接收频率实际上是非常宽的,从 30KHz 到 60KHz 它都可以正确接收和解调。所以主机和从机使用不同的载波
频率以实现全双工通信也是比较困难的,除非使用选频特性比较好的红外线接收电路。在红外线传输过程中采用的是负逻辑,即有红外线表示逻辑 0,无红外线表示逻辑 1。而红外接收模块平时为高电平,接收到红外信号就变为低电平。
如何增加传送距离呢?有两个方法:其中一个方法是采用高灵敏度的红外接收电路,但是其成本比较高, 且比较容易受到干扰。另一个方法是提高发射功率(指峰值功率,不一定需要提高平均功率,这可以通过减小连接到发射器的电阻 R 来实现,通常可以减小到10Ω。但是需要注意的是,在这种情况下,为了降低功耗和对其他红外设备的干扰,红外线载波的占空比需要降低。一般选择 30%左右的占空比,,也就是DATCLK 的高电平时间应为 18uS 左右,而低电平时间应为 8uS 左右(38KHZ 载波频率
广告插播信息
广告插播信息
维库最新热卖芯片: AD890JP PEB3265HV1.5VNQ830IS61LV12816L-10T EPM5130QC-1A2918SW MC33274AP B58775NMP4370831SM5872BS
二. PC红外接收原理
1. RS232标准简介
现在的 PC 中,一般已经集成了红外通信端口,但由于其通信协议比较复杂,与单片机接口不便。为简便起见,我们采用在 PC 的 COM 口(RS232端口上扩展一个红外接收电路来实现。在此,首先对 RS232标准作一个简单介绍。
RS232是 EIA(电子工业联合会制定的一个串行通信推荐标准,用于 DTE 与DCE 的连接(典型的 DTE 是 PC, 典型的 DCE 是调制解调器,有效传输距离 15米,如果采用 4~20mA的电流环则可达到 1公里以上的通信距离。 RS232中,共规定了 25条信号线(包括数据线、控制线、状态线等,但是在实际应用中不一定要用到全部的信号线。在早期的 PC 中,通常配置有一个 25针的串行口和一个 9针的串行口;而现在生产的 PC 中,两个串行口一律采用 9针的 DB9插座。9针串行口的信号线定义如表 1所示:
2. 红外接收扩展电路
这里我们认为 DTE 是 PC,那么就可以从表 1中看到,PC 的输出脚有 3
个:TXD、DRT 和 RTS。TXD 是串行数据发送端口,波特率从 110bps 到
115200bps(需硬件支持。DTE 用 DTR 以告诉 DCE 已经准备好接收数据,并用 RTS 向 DCE 请求发送数据,这两个信号主要用于硬件流量控制。在红外接收扩展电路中,不需要进行流量控制,而是利用 DTR 和 RTS 为接收电路提供电源。我们知道,标准的 RS232电平是负逻辑:+3V~+15V表示逻辑 0;-3V~-15V 表示逻辑 1。这样,只要使能 DTR 和 RTS,这两个引脚就可以输出+15V左右的电平,从而给红外接收电路供电。根据这样的设计思路,红外接收扩展电路如图 1:
上图中,D1、D2和 D4起隔离作用,R1主要用来保护 PC 串口,C1和 C2用来滤波,U1是三端稳压器,为红外接收模块提供+5V工作电源。U2是三端集成红外接收模块,一般接收中心频率为 38KHZ ,可以完成从红外接收、滤波到解调的全部过程。LED 作为指示灯,当接收到红外信号时,LED 会闪亮。此电路的关键之处在于DTR、 RTS 和 TXD 三个引脚的接法:DTR和 RTS 为电源供应脚,可提供+15V左右的电源,前提是需要在 PC 监控程序中使能。TXD 引脚为接收提供负电源。TXD 脚是数据发送脚,为什么可以提供负电源呢?这正是本电路的巧妙之所在。我们知道, RS232协议标准中,当不发送数据时,TXD 脚输出低电平,即-15V 左右。在红外接收扩展电路中,只具有红外接收功能,而无发送功能,因此正好可以利用 TXD 脚为接收
提供低电平。当没有接收到红外信号时,红外接收模块的1脚输出高电平,三极管Q1截止,TXD 通过 D4把 RXD 脚下拉到低电平;而当接收到红外信号时,红外接收模块输出低电平,三极管 Q1导通,这时 RXD 脚变为高电平。