当前位置:首页 > 单片机 > 单片机
[导读]   51单片机和IBM - PC机是目前我国应用最广的两种微型计算机。作为单片机,51单片机不但功能强,体积小,价格低,而且使用方便,特别市场上提供的多种51单片机开发系统,为开发应用51单片机提供了非常

  51单片机和IBM - PC机是目前我国应用最广的两种微型计算机。作为单片机,51单片机不但功能强,体积小,价格低,而且使用方便,特别市场上提供的多种51单片机开发系统,为开发应用51单片机提供了非常方便的手段。因此,51单片机在许多领域,特别是工业控制和智能仪器领域已得到广泛的应用。事实已证明,51单片机已成为8位微机之首。作为系统机,IBM - PC的优点已众所周知,可以说,IBM - PC微机的出现为微机领域带来了一场革命。在我国,由于汉字操作系统(CCDOS)的引入,使得IBM - PC在各个领域得到迅速的推广使用。
  
  串行通信是计算机进行数据通信的主要方式之一。由于其连线少,成本低,再加上有调制/解调功能,因而特别适合于距离较远,且通信点较多的场合,如各种计算机网络和分布式系统等。RS - 232C是最常用的一种串行通信标准。在IBM - PC微机中,一般都有1~2个标准RS - 232C串行口,简称COM1和COM2。利用这两个串行口,IBM - PC可以与其他数字设备(计算机)进行一般的数据传送,或构成局部网络、多用户系统和分布式控制系统等。
  
  51单片机片内即含有一个全双工的串行口,并具有多机通信功能,可以方便地构成多机控制系统。但是,由于51单片机的串行口并非标准的RS -232C,加上其波特率是采用系统时钟由内部通用定时器产生的,误差大;而其数据处理速度也比系统机低得多。因此当其与IBM - PC微机进行串行数据通信,特别是构成分布式多机控制系统时,将会遇到许多意想不到的技术问题,诸如硬件连接、波特率选择、数据同步以及多机通信控制等。我们根据多年的实践经验,对这些问题提出了一些具体解决办法,供广大同行参考。
  
  一、硬件连接
  
  RS - 232C采用负逻辑。其电平范围通常为:逻辑1=-3~-15 V;逻辑0=+3~+15 V。由于51单片机的串行口是TTL电平,故必须进行电平转换,一般都采用MC1488(输出)和MC1489(输入)来完成。其连接方法如图1- 32所示。图中,MC1488采用土12 V电源,MC1489采用+5 V电源。IBM - PC串行口中的第4脚RTS(请求发送,输出)与第5脚CTS(清除发送,输入),以及第6脚DSR(数据装置准备好,输入)与第20脚DTR(数据终端准备好,输出)分别连接在一起,主要是因为PC机BIOS中的INT14H(串行通信程序)在接收和发送数据时,均要判别CTS和DSR是否有效。如果用户自己编制通信程序,采用判断收/发缓冲区是否满/空的办法来完成数据输入/输出,则可不必短接。


  
  顺便指出,IBM - PC及其兼容机串行口中的电平转换器通常有两种:老式原装机和长城0520机,采用7515075154。而一般的兼容机均用75188( MC1488)/75189 (MC1489)。1489中的每个接收门均有一个阈值电平控制端。当该脚开路或接一电容C至地时,其阈值电平VT =1. 1~1. 25 V,即当Vi≤1.1 V时,V。=1;V1≥1. 25 V时,V0=0。不难看出,这种电平与TTL电平具有兼容性。因此,图1- 32中1488和1489均可用普通TTL反相器代换,从而省去了土12 V电源。但要注意的是,替换1488的反相器最好用OC门,以便扩大电平范围和增加驱动电流;而替换1489的反相器输入端应加双向二极管电平箝位。此外,这种接法传送距离不宜太长,一般应在3m以内(标准RS - 232C电平传送距离可达15 m以上),距离过长,因两端地电位不一致以及噪声干扰会导致电平范围出错。
  
  上述做法虽然省去了士12 V电源,但只适合于使用MC1488/1489的PC机,且传送距离近。为了与标准RS - 232C电平兼容,又不用±12 V电源,可采用图1- 33所示的准RS -232C电平转换电路。图中虚线框内电路产生-7.0~-9.0 V的负电压。其工作原理是,由CMOS反相器F1和F2构成的多谐振荡器产生f=0.7 MHz的方波,经F3和F4双门驱动后,高电平时对Cl充电,低电平时,Cl反过来又对C2充电,从而在C2上产生一定的负电压。这里采用CMOS反相器,主要是为了降低其自身的功耗以及提高高电平电压。值得一提的是,如果8031的ALE脚负载不重,亦可直接利用它作为时钟源(1 MHz),这时由Fi和F2构成的多谐振荡器就可省去了;不过C1和C2要适当加大些。

  产生负电源还有一种既简单,又实用的方法,如图1- 34所示。如果将RTS引出,亦可产生正电压而代替图1- 33中的+5 V,这样可进一步扩大电平范
围。但要注意的是,图1- 34中正负电压是从信号中提取的,其驱动能力差,因此不宜带过重的负载。
  
  从图1- 33中可以看出,这种电平转换电路省去了±12 V电源,而且仅用2只廉价的三极管取代了较贵的1488/1489,因而大大降低了接口电路的成本,是一种非常实用的方法,特别是对于像前端控制机、单片机开发系统等提供土12 V电源有困难的系统。

二、波特率的选择
  
  波特率是串行通信中的一个关键参数。通信双方波特率的一致性直接影响数据传输的正确性。当误差太大时,甚至无法进行正常的传输。通常对于11位的串行帧(1位起始位+8位数据位+1位标志位+1位停止位),所允许的最大波特率误差应不超过4.5%。
  
  RS - 232C通信标准中,标称波特率有:50,110,150,300,600,1 200,2 400,4 800,9 600及19 200等。其中以1 200~9 600最为常用。IBM - PC的串行通信控制器采用的是In-te18250.其波特率是采用1.843 2 MHz专用时钟,由16位的除法器产生的,可以精确地定出各种标称波特率。而51单片机的波特率是采用系统时钟由定时器T,产生的。由于系统时钟一般为6.0 MHz或12.O MHz,有效位数少,而T.又是用的8位自动装入定时方式,因此,很难精确地定出各种标称波特率。当两台51单片机进行串行通信时,只要两机的系统时钟和定  时常数一致,就能保证数据正确传输。这时的波特率只是反映传送的快慢,而不是非要达到多少精度。因为两机的波特率即使有误差,也只是系统时钟(晶体)上的误差。这种误差通常是很小的,可忽略不计;但当51单片机与IBM - PC进行串行通信时,这种误差就大了。以4800波特为例:
  
  对于PC机,除法器控制常数为:


  
无误差。式中,B为波特率。
  
  对于51单片机,当系统时钟fosc=6 MHz时,定时常数为:


  
  因n必须为整数,四舍五入后n=253(FDH);反过来,因取整得出的实际波特率为:
  
  波特率误差:


  
  比所允许的误差大,当然数据也就无法正确传输了。同理,不难证明,在1200-9600的标称波特率范围内,只有1 200是唯一可用的,其n=243(F3H),x-96(0060H)。显然,对于那些想用高波特率传送数据的用户来说,这无形之中提出了一个难题。那么是否有办法解决这一难题呢?办法是有的,只是不能局限于几个标称波特率上。其算法如下:
  
  ①假定51单片机上的一个定时常数n,一般n取值为F4H~FEH(波特率为1200~9600);


  
  大n值重复上述①~④步求出下一个可用波特率。
  
  根据上述算法,不难求出1 200~9 600的所有可用波特率(假定fosc=6.0 MHz),如表1- 16所列。注意,如果使用表1- 16中的非标称波特率来进行通信,那么PC机程序就不能调用INT14H的功能0来初始化串行口波特率了,而只能采用下述子程序(以COMi为例),即直接往除法器送控制常数。

三、数据同步
  
  串行通信分同步和异步两种方式。尽管51单片机的串行口既可进行同步通信(方式0),又可进行异步通信(方式1~3),但IBM - PC机的串行口只有异步方式。在异步串行通信中,波特率的一致性是数据位同步的保证,而帧同步只能靠DSR/DTR和RTS/CTS等异步通信控制信号了。遗憾的是,51单片机串行口没有这些控制信号。因此,当51单片机与IBM - PC进行串行通信时,虽然波特率选择一致,能保证单个字节传输正确,但无法保证大块数据传输正确。例如,当PC机往单片机每次单独传送一字节时,51单片机都能正确接收,但连续传送一批数据时,由于单片机比PC机的指令处理速度低,PC机发送一字节后,单片机可能还没取走,PC机就发出下一字节了。这样就会导致大量数据被丢失。由此可见,在PC机与51单片机的串行通信中,数据帧(1帧-10或11位)同步也是一关键问题,下面介绍两种同步方法。
  
  1.硬件方法
  
  在图1- 32的基础上,借助于8031 P。口的其他位来模拟各异步通信控制信号。其连接方法如图1- 35所示。这样利用RTS/CTS和DSR/DTR就可方便地完成异步双向串行数据传输了。如果PC机程序不是通过调用INT14H,而是通过自己设计的一个子程序来完成收/发数据的,那么只要使用两组信号中任意一组,即可完成异步传输,这样又可省去两根连线。
  
  通过8031外部扩展一个异步通信控制器8251,也是一种行之有效的方法,只是那样做以后,硬件成本提高,软件控制也变得复杂了。

  2.软件方法
  
  一种很容易想到的软件方法就是“延时法”。例如,当PC机要往单片机发送一批数据时,每发一个字节,就延时一段时间,以便单片机能及时将刚收到的字节取走并处理完。这种做法的困难在于延时常数不好确定。一种改进方法就是,一方面发送方采取一定的延时,另一方面在发送一组(可以是一字节,也以可是若干字节)数据后,接收方应回答一个数据信号(不是控制信号!)。该信号既可表示接收到的数据正确与否,又可起同步作用。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭