这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机与PC机串行通信的实现方法

共1条 1/1 1 跳转至

单片机与PC机串行通信的实现方法

高工
2008-07-22 17:40:54     打赏

  随着单片机和微机技术的不断发展,特别是网络技术在测控领域的广泛应用,由PC机和多台单片机构成的多机网络测控系统已成为单片机技术发展的一个方向。它结合了单片机在实时数据采集和微机对图形处理、显示的优点。同时,windows环境下后台微机在数据库管理上具有明显的优势。二者结合,使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而形成了向以网络为核心的分布式多点系统发展的趋势。本文主要介绍PC机与 51系列单片机实现通信的一般方法和步骤。

硬件结构和单片机的通1S程序设计

  单片机和PC机的串行通信一般采用RS-232、RS-422或B3-485总线标准接口,也有采用非标准的20nnJL电流环的。为保证通信的可靠,在选择接口时必须注意:(1)通信的速率;(2)通信距离:(3)抗干扰能力;(4)组网方式。本文主要介绍采用RS-232接口与单片机通信的方法。

1、 RS-232电平转换和PC机的接口电路

  RS-232是早期为公用电话网络数据通信而制定的标准,其逻辑电平与ITL\CMOS电乎完全不同。逻辑"0"规定为+5- +15V之间,逻辑"1,,规定为-5~-15V之间。由于RS-232发送和接收之间有公共地,传输采用非平衡模式,因此共模噪声会耦合到信号系统中,其标准建议的最大通信距离为15米.但实际应用中我们在300bi:/s的速率下可以达到300米。

  RS-232规定的电平和一般微处理器的逻辑电平不一致,必须进行电平转换,实现逻辑电平转换可以采用以下三种方式。

  采用MCl488和MCl489芯片的转换接口

       MCl488和MCl489芯片为早期的RS-232至TTL逻辑电平的转换芯片,图1为实际电路。该电路的不便之处是需要±12V电压,并且功耗较大,不适合用于低功耗的系统。图中TXD、RXD分别接单片机的发送和接收端。

  采用 MAX232芯片的转换接口

       MAX232是MAXIM公司生产的,包含两路驱动器和接收器的RS-232转换芯片。图2为实际电路。芯片内部有一个电压转换器,可以把输入的+5v电压转换为RS-232接口所需的±10V电压,尤其适用于没有±12V的单电源系统。与此原理相同的芯片还有MAX202、AD公司的ADDtl01以及INl2只SIL公司的ICL232芯片。

  采用分立元件实现的转换接口图3为采用分立元件实现的RS-232-TTL电平的转换接口电路,其特点是利用PC机的BS-232接口的③脚信号出(也可用④、⑦脚)来供给负电源,FC机的③、④、⑦脚在非发送逻辑"0"电平时均为1电平(-10V左右),其驱动能力为20mA,利用这个特性,用一个二极管和电解电容,即在电解电容上获取了RS-232通信所需的负电源。该电路简单、功耗小,在没有专用芯片时不失为一种替代方法。

       上述介绍的RS。232至TTL电平转换的方法可以适用于大多数通信系统,在一些特殊应用场合需要诸如静电保护、多收发器(如与MODEM连接)时可采用MAX238(4驱动、4接收)或MAX3221t t15Kv静电保护)等芯片。

2、单片机通信程康设计


       单片机串工作方式

       目前广泛应用的51系列单片机的串行通信可工作于同步或异步方式,多数与8031兼容的51系列单片机都有一个或多个UART异步串行接口,这就为用户设计通信程序提供了很好的便利条件。当应用系统中需要多个串行通信接口时,可采用以下几种方法:(1)采用多串口的单片机,如华邦的WW77E58就有2个串行接口;(2)采用通用异步串口扩展芯片,如TLl6c552(2路)、?LCl6C554(4路);(3)采用普通I/O模拟实现通信。这是最简单经济的方法,并且可以实现高速串通信,实现方法详见《电子世界)杂志以前刊登的有关文章。本文仅讨论采用一个异步串行通信的设计方法,单片机串口的控制方式MCS-51系列单片机对串口的控制是通过对串行口控制寄存器SCON和功率控制寄存器PCON的设置来实现的。SCON是一个可位寻址的特殊功能寄存器,通过设置SGON的SM0和SMI,可以使单片机有四种不同的工作方式。SCON的格式可参见有关手册说明。在用于和PC机实现串行通信时,一般设置为方式1或方式3,主要区别是方式1的数据格式为8位,方式3的数据格式为9位,其中第9位SM2为多机通信位,'可实现单片机的多点通信。功率控制寄存器PCON的SMOD为串行口波特串倍率控制位,当单片机的品振为整数时(如6M),设置5MOD为1通常可获得更高的通信速串,但SMOD不能位寻址,这点务必请读者注意。

       单片机串口的速率设置

       单片机和PC机通信时,其通信速率由定时器T1或定时器T2产生(52系列),在T1工作在方式2时的通信速率的计算公式为:波特串=(SMOD×Fosc)/(32×12×[256-TH1])。其中Fosc晶振频率,为获得准确的通信速率,Fosc通常为11.0592MH2。采用T1定时器通信的系统,速率不可能过高,一般情况下最高为19200bit/s。如为了获得更高的通信速率可利用52系列单片机的定时器T2,最高速率可达115200bjt/s。实际应用中我们曾经在6MH2晶振的单片机系统中实现了38400bit/s的高速通信。

  单片机串口通信程序的实现方法

       实际应用中,单片机通信程序一般采用中断方式与微机通信,微机做为主控方。当单片机收到微机发送的地址信号时,便转入中断服务程序,向微机发送数据。其中断服务于程序流程见图4,该中断服务于程序也适用于多机通信的系统。详细的程序清单请参见本刊网站COMMON.ASM,单片机的晶振为11.0592MHz,通信速率为9600bit/s,帧格式为N.8.1。




关键词: 单片机     串行     通信     实现     方法     采用     RS-232    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]