电子技术综合设计第9章_第1页
电子技术综合设计第9章_第2页
电子技术综合设计第9章_第3页
电子技术综合设计第9章_第4页
电子技术综合设计第9章_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、9.1 单片机系统中的红外通信接口9.1.1 红外通信的基本原理 在许多基于单片机的应用系统中,系统需要实现遥控功能,而红外通信则是被采用较多的一种方法。一般市场上的摇控器协议简单、保密性不强、抗干扰能力较弱。这里介绍一种基于字节传输的红外遥控系统,可以适合于各种复杂的应用场合。 红外通信的基本原理是发送端将基带二进制信号调制为一系列的脉冲串信号,通过红外发射管发射红外信号。常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。 19.1 单片机系统中的红外通信接口 本系统采用的为永时市制方法。数据比特的传送仿照不带奇侧校验

2、的RS-232通信,首先产生一个同步头,然后接着8位数据比特,如图9-1所示。图9-1 数据发送波形图29.1 单片机系统中的红外通信接口9.1.2 硬件电路设计 电能表系统通常可以分为手持遥控器和电能表两部分。手持遥控器为发射部分,其基本电路如图9-2所示。采用塑封的SE303ANC发射二极管,波长为940nm。CPU按照协议规定导通或截止发射二极管,从而产生特定频率的发射信号,这里选用的频率为38.9kHz。电能表红外接收部分的基本电路如图9-3所示。接收管采用日本光电子公司的PIC-12034,其接收频率为37.9kHz,它直接将37.9kHz的调制信号解调为基带信号。该芯片接收灵敏度高

3、,性能稳定。其基本工作过程为:当接收至37.9kHz信号时,输出低电平,否则输出为高电平。电能表部分采用的是51系列单片机,以中断方式检测接收信号。这里的非门对收信号起整形作用。39.1 单片机系统中的红外通信接口图9-2 手持遥控器的红外发射部分图9-3 电能表红外接收部分49.1 单片机系统中的红外通信接口9.1.3 软件设计 发射部分的程序相对来说非常简单,主要是生产不同时间间隔的37.9kHz脉冲串信号控制发射管的通断。在发射端,CPU不断扫描键盘,一旦发现有键按下,即启动发射子程序将相应的数值发送出去。在该设计中,采用的是44的小键盘,正如和0F编码对应,为了提高可靠性,采用最简单的

4、纠错编码将每位数重复发送一次,即和键盘数字对应的编码为00FF。这样,一个键值要发送8bit。接收端接收满8比特信号后,再进行纠错处理,不正确的编码认为无效。收足规定的号码后,即调用号码分析程序进行处理。当每收至一个脉冲串信号后即启动一个定时器。下次中断发生时,通过定时器的计数值判断是0还是1。如果定时器溢出,则清除本次接收的号码,恢复到接收初始状态。接收部分的基本程序流程如图9-4所示。59.1 单片机系统中的红外通信接口图9-4 红外接收流程图69.2 RS-485接口芯片介绍及应用中的有关问题9.2.1 引言 RS-485接口芯片已广泛应用于工业控制、仪器、仪表、多媒体网络、机电一体化产

5、品等诸多领域。可用于RS-485接口的芯片种类也越来越多。如何在种类繁多的接口芯片中找到最合适的芯片,是摆在每一个使用者面前的一个问题。RS-485接口在不同的使用场合,对芯片的要求和使用方法也有所不同。使用者在芯片的选型和电路的设计上应考虑哪些因素,由于某些芯片的固有特性,通信中有些故障甚至还需要在软件上作相应调整,如此等等。 79.2 RS-485接口芯片介绍及应用中的有关问题9.2.2 RS-485接口标准1)传输方式:差分。2)传输介质:双绞线。3)标准节点数:32。4)最远通信距离:1200m。5)共模电压最大、最小值:+12V、-7V。6)差分输入范围:-7V+12V。7)接收器输

6、入灵敏度:200mV。8)接收器输入阻抗: 12k。89.2 RS-485接口芯片介绍及应用中的有关问题9.2.3 节点数及半双工和全双工通信1节点数 所谓节点数,即每个RS-485接口芯片的驱动器能驱动多少个标准RS-485负载。根据规定,标准RS-485接口的输入阻抗为12k,相应的标准驱动节点数为32。为适应更多节点的通信场合,有些芯片的输入阻抗设计成1/2负载(24k)、1/4负载(48k)甚至1/8负载(96k),相应的节点数可增加到64、128和256。表9-1为一些常见芯片的节点数。99.2 RS-485接口芯片介绍及应用中的有关问题表9-1 一些常见芯片的节点数2. 半双工和全

7、双工 RS-485接口可连接成半双工和全双工两种通信方式,如图9-5所示。半双工通信的芯片有SN75176、SN75276、SN75LBC184、MAX485、MAX 1487、MAX3082、MAX1483等;全双工通信的芯片有SN75179、SN75180、MAX488MAX491、MAX1482等。109.2 RS-485接口芯片介绍及应用中的有关问题图9-5a 半双工通信图9-5b 全双工通信119.2 RS-485接口芯片介绍及应用中的有关问题9.2.4 应用中的常见问题1抗雷击和抗静电冲击 RS-485接口芯片在使用、焊接或设备的运输途中都有可能受到静电的冲击而损坏。在传输线架设于

8、户外的使用场合,接口芯片乃至整个系统还有可能遭致雷电的袭击。选用抗静电或抗雷击的芯片可有效避免此类损失,常见的芯片有MAX485E、MAX487E、MAX1487E等。特别值得一提的是SN75LBC184,它不但能抗雷电的冲击而且能承受高达8kV的静电放电冲击,是目前市场上不可多得的一款产品。129.2 RS-485接口芯片介绍及应用中的有关问题2限斜率驱动 由于信号在传输过程中会产生电磁干扰和终端反射,使有效信号和无效信号在传输线上相互迭加,严重时会使通信无法正常进行。为解决这一问题,某些芯片的驱动器设计成限斜率方式,使输出信号边沿不要过陡,以不致于在传输线上产生过多的高频分量,从而有效地扼

9、制干扰的产生。如MAX487、SN75LBC184等都具有此功能。3故障保护 什么是故障保护,为什么要有故障保护,如果没有故障保护会产生什么后果?139.2 RS-485接口芯片介绍及应用中的有关问题 众所周知,RS-485接口采用的是一种差分传输方式,各节点之间的通信都是通过一对(半双工)或两对(全双工)双绞线作为传输介质。根据RS-485的标准规定,接收器的接收灵敏度为200mV,即接收端的差分电压大于、等于+200 mV时,接收器输出为高电平;小于、等于-200mV时,接收器输出为低电平;介于200mV之间时,接收器输出为不确定状态。在总线空闲即传输线上所有节点都为接收状态以及在传输线开

10、路或短路故障时,若不采取特殊措施,则接收器可能输出高电平也可能输出低电平。一旦某个节点的接收器产生低电平就会使串行接收器(UART)找不到起始位,从而引起通信异常。149.2 RS-485接口芯片介绍及应用中的有关问题 解决此类问题的方法有两种:1)使用带故障保护的芯片,它会在总线开路、短路和空闲情况下,使接收器的输出为高电平。确保总线空闲、短路时接收器输出高电平是由改变接收器输入门限来实现的。例如:MAX3080MAX 308 2)若使用不带故障保护的芯片,如SN75176、MAX1487等时,可在软件上作一些处理,从而避免通信异常。即在进入正常的数据通信之前,由主机预先将总线驱动为大于+2

11、00mV,并保持一段时间,使所有节点的接收器产生高电平输出。这样,在发出有效数据时,所有接收器能够正确地接收到起始位,进而接收到完整的数据。 159.2 RS-485接口芯片介绍及应用中的有关问题4光电隔离 通过DC-DC将系统电源和RS-485收发器的电源隔离;通过光耦将信号隔离,彻底消除共模电压的影响。实现此方案的途径可分为:1)用光耦、带隔离的DC-DC、RS-485芯片构筑电路。2)使用二次集成芯片,如PS1480、MAX1480等。169.3 PC和多单片机通信的一种方法9.3.1 概述 单片机应用简单灵活,使用非常广泛,但存在无法实时保存大量的数据、实时更新数据等缺点,因此经常需要

12、把单片机和PC的优势相结合组成系统。本节以我们开发的卡式电话管理系统为例,从硬件和软件两方面分析PC和单片机之间的通信方法和注意事项,并给出相关系统的结构框图。179.3 PC和多单片机通信的一种方法9.3.2 硬件设计 卡式电话系统的硬件系统框图如图9-6所示。此系统共需要4根信号线,即收、发、地和中断线,收、发和地可以从串口中找到相应的线,而中断线采用串口中的RTS信号,可以直接编程。图9-6 卡式电话系统的硬件系统框图189.3 PC和多单片机通信的一种方法9.3.3 软件设计 软件工作流程是:PC先发送一个中断信号,使所有的单片机转入中断程序,然后发送一个地址码,各单片机读此地址码以后

13、和自己的实际地址相比较,若相同,则转入相应的动作,比如读取单价或上报本机信息等,否则从中断程序中跳出。 软件需要解决的是设定PC串口的工作方式,包括串口的通信速率、奇偶校验位、停止位等。经测试,此系统可以在288Kbit/s速率下稳定工作,比较理想。在此工作速率下,一台PC可以带64台单片机。通信程序流程图如图9-7所示。199.3 PC和多单片机通信的一种方法图9-7 通信程序流程图209.4 PC与单片机MCS-51的通信9.4.1 概述 大多数的电脑设备都具有RS-232C接口,尽管它的性能指标并非很好。在广泛的市场支持下依然常胜不衰。就使用而言,RS-232也确实有其优势:仅需3根线便

14、可在两个数字设备之间全双工的传送数据。不过,RS-232C的控制要比使用并行通信的打印机接口更难于控制。RS-232C使用了远较并行口更多的寄存器。这些寄存器用来实现串行数据的传送及RS-232C设备之间的握手与流量控制。下面将分别讨论PC及单片机的串行通信的原理及具体的软件设计。 219.4 PC与单片机MCS-51的通信9.4.2 PC的串行通信硬件环境 PC一般使用8250或16550作为串行通信的控制器,使用9针或25针的接插件将串行口的信号送出,如图9-8所示,该插座的信号定义如表9-2所示。图9-8 9针或25针的接插件串行通信口信号连接229.3 PC和多单片机通信的一种方法表9

15、-2 插座的各个信号定义239.3 PC和多单片机通信的一种方法 PC一般使用8250或16550的作为串行通信控制器,8250及16550的引脚排列如图9-9所示。图9-9 8250及16550的引脚排列249.3 PC和多单片机通信的一种方法8250(16550)的寄存器如表9-3所示。259.4 PC与单片机MCS-51的通信9.4.3 使用查询方法的串行通信程序设计polling.c#include #include #include #define PortBase 0 x2F8void com_putch(unsigned char);int com_chkch(void);mai

16、n()int c;unsigned char ch;269.3 PC和多单片机通信的一种方法outportb(PortBase + 1 , 0); /* Turn off interrupts - Port1 */* Set COM1: 9600,8,N,1*/outportb(PortBase + 3 , 0 x80);outportb(PortBase + 0 , 0 x0C);outportb(PortBase + 1 , 0 x00);outportb(PortBase + 3 , 0 x03);clrscr();while(1) c = com_chkch(); if(c!=-1)

17、c &= 0 xff; putch(c);279.3 PC和多单片机通信的一种方法if(c=n) putch(r); if(kbhit() ch = getch(); com_putch(ch); void com_putch(unsigned char ch) unsigned char status;while(1) status = inportb(PortBase+5); if(status&0 x01) inportb(PortBase+0); else break;289.3 PC和多单片机通信的一种方法outportb(PortBase,ch);int com_chkch(voi

18、d) unsigned char status;status = inportb(PortBase+5);status &= 0 x01;if(status) return(int)inportb(PortBase+0); else return(-1);使用查询方式的通信程序适合9600bps以下的应用。299.4 PC与单片机MCS-51的通信9.4.4 使用中断的串行通信程序设计 该程序由两部分组成,serial.c及sercom.c,sercom.c为通信的底层驱动,使用中断的串行通信程序可以工作到115.2Kbps.9.4.5 MCS-51串行通信 MCS-51的串行口使用起来非常简单,因为MCS-51单片机的串行口没有与MODEM控制相关的信号。这使得51的通信口非常易于使用。使用查询方式时,仅需初始化有关的寄存器即可。309.4 PC与单片机MCS-51

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论