C8051F020单片机的RS485串行通信设计

最新更新时间:2014-12-06来源: 互联网关键字:C8051F020  单片机 手机看文章 扫描二维码
随时随地手机看文章

  l 引言

  随着计算机技术和测控技术的不断发展,在以单片机为核心的数据采集系统中,需要实现单片机和计算机之间的数据交换,并以此来发挥单片机和计算机各自的长处,提升整个系统的性能价格比。

  在计算机网络和工业控制系统中,经常需要采用串行通信来实现远程数据传输。目前,有多种接口标准可用于串行通信,包括RS232、RS422、RS485等。RS232是最早的串行接口标准,在短距离、较低波特率串行通信中得到了广泛应用。但是,RS232通信存在着传输速度慢、传输距离短、信号容易受到干扰等不足,其应用局限性已日益突出。而RS485通信采用差分方式来消除噪声,即信号在发送前会分解为正负2条线路,当到达接收端时将信号相减,使噪声相互抵消,还原成原来的信号,这种方式对共模干扰抑制能力较强,已广泛应用于工业控制等领域。

  要实现单片机与计算机之间的RS485通信,一般可以采用2种方法:一种方法是在单片机与计算机两端分别采用RS232与RS485电平转换装置;另一种方法是采用RS485通信卡,并将其插在计算机主板上。采用前一种方法的优点是硬件装置安装简便,软件编程相对简单;缺点是通信速率被限制在20 kb/s以内。第二种方法的优点是通信距离较远,速率较高,可达10 Mb/s;缺点是需要安装通讯卡和驱动程序,并进行必要的设置。本文采用第二种方法。

  2 总体架构

  在某型电子设备研制中,选用美国Cygnal公司生产的一种soc型8位单片机C8051F020,对测控系统进行数据采集。该单片机是C8051F系列的F02X子系列,其性价比在工业控制领域具有较强的竞争力。它是完全集成的混合信号系统级芯片,具有与8051指令集完全兼容的CIP一51内核,对于熟悉51单片机的技术人员来说,在硬件设计及软件编程上大大提高了开发效率。

  测控计算机采用研华的IPC-610工控机,并选用PCL一846B通信卡进行RS485串行数据通信,该通信卡包含4通道,每个通道可以对32个节点进行通信。

  为了实现单片机与工控机之间的RS485串行通信,必须对单片机的UART输出电平进行转换,以满足RS485串行通信需求。选用MAX485接口芯片,它是Maxim公司的一种RS485接口芯片,该芯片的结构和引脚都比较简单。

  该设计理论上可以实现1台工控机(安装1块RS485通信卡)对128台单片机进行Rs485串行通信,其总体设计框图如图1所示。

  

 

  图1 总体结构

  3 系统硬件设计

  3.1 硬件简介

  1)C8051F020单片机

  C8051F020内部有2个增强型全双工UART、SPI总线和SMBus/IC.这些串行总线都用硬件实现,都能够向CIP-51内核产生中断,只需要很少的CPU干预;这些串行总线不“共享”定时器、中断或I/O端口等资源,因此可以使用任何一个或者全部同时使用。

  2)MAX485芯片

  MAX485芯片采用+5V电源工作,其额定电流为300“A,它能将UART输出电平转换为RS485电平。该芯片有8个引脚,其内部含有1个接收器和1个驱动器,R0为接收器的输出端,接单片机的TXD引脚;DI为驱动器的输入端,接单片机的RXD引脚。/RE是接收使能端,当/RE=0时,MAX485芯片处于接收状态;DE是发送使能端,当DE=1时,MAX485芯片处于发送状态。

  MAX485芯片的A端与B端分别为接收与发送的差分信号端。当VA小于VB时,表示发送信号为”0“;当VA大于VB时,表示发送信号为”1“。MAX485芯片工作时,A、B两端之间应当加上匹配电阻尺,一般选用120 Ω;当通信距离较远时,可以选用300 Ω。

  3)RS485通信卡

  Rs485通信卡具有较强的抗干扰能力、较高的通信速率以及较低的价格,在工业控制等领域具有较强的竞争力和实用性。选用研华的PCL-846B通信卡,该卡支持RS422和RS485 2种串行通信接口标准,需要通过跳线进行设置。另外,在该通信卡的4个通道上均预留有焊接终端匹配电阻的焊孔。

  3.2 电路设计

  采用UART串行总线进行通信,因为UART是一种广泛应用于远距离、低速率、低成本通信的串行传输接口,由于其具有数据线少的特点,在数字系统设计中得到了大量应用。基本的UART通信只需要两根数据线(RXD、TXD)即可完成数据的相互通信,接收和发送都是全双工形式,其中RXD是接收端,TXD是发送端。

  C8051F020单片机有2个UART(UART0和UARTl),以UART0为例,它的TxD和RXD分别与数字I/0引脚PO.O和PO.1复用,通过交叉开关配置寄存器进行选择。由于MAX485工作在半双工状态,它与单片机连接时的接线比较简单,只需要用单片机某一个引脚(如PO.2)来控制RE和DE这2个引脚。PCL-846B通信卡有4个通道,选择通道1与单片机进行通信,另外将通道2和通道4进行连接,以自发自收的方式实现通信卡的自检。单片机与外部电路的连接关系如图2所示。

  

 

  图2 硬件电路原理

  在使用RS485通信卡进行通信时,当信号传递到通信线路两端时,如果阻抗不匹配,可能会产生信号反射问题。信号反射会造成信号的失真和变形,从而导致通信错误。其解决方法就是在通信线路的两端各连接一个终端匹配电阻,保证阻抗匹配。当通信距离较短,一般在小于300 m时,可不使用终端电阻。当通信距离大于300 m时,应当使用终端电阻,其阻值必须与通信线路的线性阻抗相同。电阻值一般选取120 Ω左右,当通信距离较长时,可以选用300 Ω。

  4 软件设计

  4.1 通信方式

  C8051F020单片机的UARTo提供4种工作方式(1种同步方式和3种异步方式),以方式1为例:方式1提供标准的异步、全双工通信,每个数据字节共包含10位:1个起始位、8个数据位和1个停止位。数据从TX引脚发送,在RX引脚接收。2在多机通信中,通常选择方式2和方式3,通过使用第9数据位和内置UARTo地址识别硬件支持一个主处理器与多个从处理器之问的多机通信。

  为了简化UART0的使用和软件编程,选择方式1进行多机通信,通过编写串口中断程序对通信双方进行约定。具体做法是:

  1)约定发送数据的格式,本文约定以”#……*“作为合法的数据格式,即以”#“开始和”*“结束作为判断数据有效性的依据。

  2)在”#“和”*“之间的数据是需要的,本文约定以第2个字符(当设备较多时,可以2个字符)作为接收设备的识别码,由接收设备(单片机或上位机)对该字符进行判断,确定是否需要接收该数据。

  3)当接收设备需要知道发送数据的来源时,也可以约定发送设备的识别码(由于每台设备既可以是发送设备也可以是接收设备,因此可以约定一个固定的识别码),在发送数据中插入该识别码(插入位置必须事先约定),即可获知数据的来源设备。

  4.2 串口波特率

  C8051F020单片机有5个16位通用计数器/定时器(T0~T4)和一个片内可编程计数器/定时器阵列(PCA)。方式1的波特率是定时器溢出时间的函数,UART0可以使用定时器1工作在8位自动重装载方式或者定时器2工作在波特率发生器方式产生波特率。以定时器2为例,其波特率的计算公式是:

  

 

  式中:SySCLK是单片机的系统时钟,RCAP2H和RCAP2L分别为定时器2的重装载寄存器的高8位和低8位。

  波特率根据数据传输速率的实际需要确定,波特率确定后即可计算出定时器2的重装载寄存器的初始值T2。

  

 

  采用22.1184 MHz晶体振荡器作为系统时钟,波特率为9600 b/s,计算得到T2=FFB8H(十六进制)。

  4.3 软件流程

  C8051F020单片机内部具有JTAG和调试电路,可以通过JTAG接口对MCU进行非侵入式、全速、在系统调试。根据系统功能需求,对软件进行模块化设计,并利用Silicon Labs IDE集成开发环境对单片机进行编程与调试。利用C8051F020单片机的中断系统,直接采用C语言对UART中断服务程序进行编写。

  单片机的串口通信程序可由数据发送和接收2个模块构成。数据发送模块首先需要设置UART为发送状态,清除发送标志后向sBF中写入数据,开始逐个发送字符,数据发送完成后,恢复UART为接收状态。数据接收模块清除接收标志后读SBF中的数据,开始接收字符,首先判断接收数据是否有效,然后分析处理数据,接收完数据后,退出接收程序。UART串口发送和接收模块的程序流程如图3所示。

  

 

  图3 串口通信程序流程

  5 实验分析

  设计的系统已经应用于某型实时测控装置研制中,该测控装置含有2个单片机,其主控上位机安装有l块RS485通信卡。具体验证过程是:将1个测控装置与1台上位机距离50 m进行串行通信,通信正常可靠。将2个测控装置与2台上位机(均安装有RS485通信卡)分别相距50 m,通信线路采用并联,4个通信节点之间RS485通信正常可靠。依次类推,在多个测控装置与多台上位机进行远距离通信时,RS485通信均正常可靠。

  在上位机上通过串口调试助手可以简便地对串口进行调试。该调试工具可以实时发送和接收串行数据,数据格式和传输速率可调,可以动态观察各通信节点的数据收发情况。串口调试界面如图4所示。

  

 

  图4 串口调试界面

  该设计方法成功实现了单片机与上位机之间的RS485串行通信,在单片机与上位机距离50 m以内可以实现115.2 k/ps的高速通信,数据传输误码率低,完全满足系统设计指标。

  6 结论

  通过在单片机与工控机之间建立RS485串行通信网络,利用RS485串行通信的优势,可以保证稳定、快速、远距离地传输数据。设计的系统已经在某型实时测控装置研制中得到成功应用,经实验验证,数据传输正常可靠,达到设计要求。

  由于设计方法开发成本低、软件设计简单、使用维护方便,其通信设计方法还可以稍加修改移植到其他测控系统中,在计算机通信和工业控制等领域将会得到越来越多的应用。

关键字:C8051F020  单片机 编辑:探路者 引用地址:C8051F020单片机的RS485串行通信设计

上一篇:基于FPGA与GSM的医院排号系统完整硬件设计与源代码
下一篇:基于Atmega16单片机的新型智能空调遥控器

推荐阅读最新更新时间:2023-10-12 22:50

单片机的就业方向是什么?搞单片机是青春饭吗?
这段时间,很多刚入门的小伙伴找到我,问的最多的问题应该就是单片机的前景和就业方向了。 还有一个顾虑是搞单片机是青春饭吗?20多岁学晚不晚? 我们首先来回答第一个问题。 一、 单片机的就业方向 人对未知的东西都充满了恐惧,这是人类本能的自我保护,我也一样。 刚开始我是自学的单片机,而且是跨行,对我的挑战不小。 入门以后出去找工作,被10几家公司无情打击,心态崩了。 内心总是有一种不自信的声音嘲笑自己:这辈子,可能都没这个行业的公司要我了。 往往是这种最绝望的时候,你更要坚持,在努力。 就像那句话说的:当你最倒霉的时候,也即将是你转运的时候。 这有点玄学的意思,但是回忆我人生的上半场,基本做成功的事情都经历了这个过程。 Ok,扯
[单片机]
ARM不只有MCU,GPU Mali的底层架构分析
ARM作为移动计算领域实际上的掌控厂商,对移动计算产品未来的发展方向有着决定性的能力。在GPU的发展上,从一开始Mali系列的弱势到现在Mali已经成为诸多厂商的首选,ARM在Mali GPU架构的发展上倾入了诸多心血。最近,ARM又披露了下一代移动GPU架构的详细信息。这个被称为Midgard的架构,又将带来哪些新的技术和惊喜呢? 今年是SoC产品应该铭记的一年。从市场角度来看,移动计算的硬件设备有着充裕的性能增长空间,尤其值得注意的是,移动GPU无论是性能还是特性都有了充足进步。凭借更先进的架构和工艺,移动GPU在特性上逐渐和桌面GPU靠拢,正在变得足够优秀并令人满意。而在移动SoC GPU的发展中,ARM的Mali是一
[单片机]
ARM不只有<font color='red'>MCU</font>,GPU Mali的底层架构分析
单片机笔记】二分法查找降序最接近的数
最近用到的ntc热敏电阻比较多,测温度精度还可以,最主要的是还很廉价,原理是不同温度环境下热敏电阻的阻值不同,利用这个搭建一个电路用ADC测出来再转换得到热敏的电阻值就可以用查表就可以得到温度了。一般的温度阻值表多是降序的,而且非线性,这样的话就需要查找一个最接近的值去粗略的得到温度,也还是能精确到1度的。至于如何制把厂家给的pdf或者excel制作成程里面的数组,之前的笔记也有专门提到: 代码中非线性表快速转换成数组的实用方法 最后贴上查找代码: static u8 Find_Num(const unsigned int code *tab,u16 SIZE, u16 num) { u8 left = 0,right
[单片机]
用51内核网络单片机构成的远程监控系统
引 言 在工业控制、信息家电等应用领域,存在大量的嵌入式设备,而这些设备很多只有串口、CAN总线等简单的网络接口,通信能力有限,有的甚至处于孤立运行状态。如何让这些以单片机为核心的嵌入式系统接入以太网,并通过网络对它们进行远程监控,是当前电子世界中的研究热点。TCP/IP在Intemet和大多数局域网中的成功应用,已经证明了其强大的功能。如果实现TCP/IP协议和嵌入式系统的结合,嵌入式系统联网问题就能得到有效解决。目前,嵌入式系统联网主要有如下几种方案:①EMIT,以PC或其它高档计算机为网关,将CAN、RS-232等设备接入重量级网络;②采用32位MCU+实时操作系统,高档MCU功能强大,可以实现复杂操作,但需要有RTOS
[应用]
利用纯软件实现单片机远程通信的设计
  GMS972051是韩国LG公司生产的MW内部带2K E2PROM的与MCS-51兼容的单片机。GMS97C2051省去了MCS-51的P0和P3口,但是多了一个内部硬件比较器。由于单片机的通信信号为TTL电平,如果不采取其它的措施,其在通信速率为9600bps时通信距离不超过5米。一般为了延长单片机的通信距离,采用RS-232/RS-485转换器、RS-232/RS-422转换器或光隔远程收发器。   要用纯软件方法实现GMS97C2051单片机之间的远程通信,首先必须将单片机的TTL电平的软件方法转换为差分电平,其次要用普通I/O口线来构成软件串行口,并且在软件上进行正确的配合。   TTL电平转换成差分电平的纯
[单片机]
利用纯软件实现<font color='red'>单片机</font>远程通信的设计
PC机与多MCS-51单片机间的串行通信设计
【摘 要】 主要讲解了IBM-PC机与MCS-51单片机多机系统的通信原理,给出了其硬件接口框图,并详细地分析了系统的多机通信软件设计。   关键词:单片机,分布式系统,串行通信 1 引 言   在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。它们大多由IBM-PC微机和MCS-51单片机组成。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给P
[工业控制]
PC机与多MCS-51<font color='red'>单片机</font>间的串行通信设计
基于MSP430单片机的多路数据采集系统的设计
1 引 言 数据采集是从一个或多个信号获取对象信息的过程。随着微型计算机技术的飞速发展和普及,数据采集监测已成为日益重要的检测技术,广泛应用于工农业等需要同时监控温度、湿度和压力等场合。数据采集是工业控制等系统中的重要环节,通常采用一些功能相对独立的单片机系统来实现,作为测控系统不可缺少的部分,数据采集的性能特点直接影响到整个系统。本文设计的多路数据采集系统采用MSP430系列单片机作为MCU板的核心控制元件。MSP430系列单片机是由TI公司开发的16位单片机,其突出特点是强调超低功耗,非常适合于各种功率要求低的场合。该系统采样电路采用MSP430单片机内部12位的A/D,使系统具有硬件电路得以简单化,功耗低的特点。由于该系列
[应用]
51单片机模拟串口的三种方法解析
随着单片机的使用日益频繁,用其作前置机进行采集和通信也常见于各种应用,一般是利用前置机采集各种终端数据后进行处理、存储,再主动或被动上报给管理站。这种情况下下,采**需要一个串口,上报又需要另一个串口,这就要求单片机具有双串口的功能,或者做点阵驱动时,又需上机位串口。但我们知道一般的51系列只提供一个串口,那么另一个串口只能靠程序模拟。 本文所说的模拟串口, 就是利用51的两个输入输出引脚如P1.0和P1.1,置1或0分别代表高低电平,也就是串口通信中所说的位,如起始位用低电平,则将其置0,停止位为高电平,则将其置1,各种数据位和校验位则根据情况置1或置0。至于串口通信的波特率,说到底只是每位电平持续的时间,波特率越高,持续的
[单片机]
51<font color='red'>单片机</font>模拟串口的三种方法解析
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved