您的位置 首页 电子

C8051F020单片机的RS485串行通讯规划

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

  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/%&&&&&%.这些串行总线都用硬件完结,都能够向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串行通讯的优势,能够确保安稳、快

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/247095.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部