当前位置:首页 > 电源 > 数字电源
[导读]  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/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)当接收设备需要知道发送数据的来源时,也可以约定发送设备的识别码(由于每台设备既可以是发送设备也可以是接收设备,因此可以约定一个固定的识别码),在发送数据中插入该识别码(插入位置必须事先约定),即可获知数据的来源设备。[!--empirenews.page--]

  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串行通信的优势,可以保证稳定、快速、远距离地传输数据。设计的系统已经在某型实时测控装置研制中得到成功应用,经实验验证,数据传输正常可靠,达到设计要求。

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

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

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 信息技术
关闭
关闭