收藏 分销(赏)

基于RS485多机通信的软件编程与系统调试.docx

上传人:xrp****65 文档编号:5868938 上传时间:2024-11-22 格式:DOCX 页数:52 大小:708.52KB
下载 相关 举报
基于RS485多机通信的软件编程与系统调试.docx_第1页
第1页 / 共52页
基于RS485多机通信的软件编程与系统调试.docx_第2页
第2页 / 共52页
基于RS485多机通信的软件编程与系统调试.docx_第3页
第3页 / 共52页
基于RS485多机通信的软件编程与系统调试.docx_第4页
第4页 / 共52页
基于RS485多机通信的软件编程与系统调试.docx_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、摘 要小局域网多机通信在如食堂刷卡收费管理系统、汽车加油刷卡系统、电能运输秒表管理系统等领域应用广泛。因此,开展本领域的研究有较好的应用前景。本文主要采用一种以 PC机作为上位机,多台80C51单片机作为下位机,来进行上位机与下位机以及下位机与下位机的通信的研究。主要包括:系统总体方案设计;在PC机端,通过专用的RS232/485标准转换芯片S2-485将RS-232电平转换成RS-485电平,在80C51单片机端,通过MAX485转换芯片将TTL电平转换成RS-485电平,来实现上位机与下位机以及下位机与下位机的通信;在系统硬件设计的基础上,制定了通信协议。为了达到使传输数据的准确性,开展了

2、数据传输的错误检查与纠正,以及系统可靠性方面的研究;进行了PC机与下位机,以及下位机与下位机的软件编程、程序调试,实现了系统多机通信的数据传输。关键词:PC机;单片机;RS-485;数据传输;多机通信AbstractMulti-machine communications have a wide range of applications in small local network, such as management system in the canteen for charges of credit card ,in the gas station for refueling, in

3、 the transport of energy for stopwatch timing. Therefore,there are good prospects to carry out research in this area . This article uses pc machine as a host computer and multiple 80C51 single-chips as slave microcomputers to carry out the study of communications between PC and lower machine, as wel

4、l as lower machines. The article includes an overall designing plan. In the port of the PC, using a S2-485,dedicated RS232/485 converter chip , converts the RS-232 level into the RS-485 level. In the port of 80C51 single-chip, MAX485 will be used to convert TTL level into RS-485 level. In this way ,

5、communications can be achieved between PC and lower machine, as well as lower machines. In the basis of hardware design, the communicational protocol is carried out.In order to achieve the accuracy of the data transmission, the error checking and correction is implemented,as well as the study of rel

6、iability . After software programming and program debugging, the system can achieve data transmission between PC machine and single-chip,as well as single-chips.Keywords:PC Machine; Single-chip; RS-485; Data Transmission; Multi-machine Communication目 录摘 要IABSTRACTII第一章 绪论11.1 引言11.2 研究的背景及意义11.3 论文的

7、主要内容2第二章 多机通信基础32.1 数据通信基础32.2 异步串行通信接口标准52.3 通信芯片的介绍9第三章 系统方案设计123.1 系统总体设计123.2 系统主要构成部分123.3 系统主从通信的基本条件14第四章 系统软件设计与调试154.1 PC机与多个80C51通信原理154.2 通信状态的设置154.3 PC机与多个80C51通信的控制174.4 通信协议184.5 多机发送时的分时说、听204.6 差错控制224.7 系统程序设计224.8 程序调试29第五章 系统可靠性分析335.1 串行通信可靠性评测指标335.2 程序跳飞而造成总线冲突335.3 失效保护345.4

8、通信协议提高通信可靠性355.5 程序抗干扰措施37第六章 总结39致谢40参考文献41附录1 PC机通信程序42附录2 单片机通信程序47附录3 多机通信原理图49第一章 绪论1.1 引言 计算机技术、自动化技术和通信技术是现代信息科学技术的重要组成部分,是现代科学技术中的核心先导技术。计算机控制是计算机技术与自动控制理论、自动化技术紧密结合并应用于实际的结果,它的应用领域非常广泛。 随着高性能计算机、网络技术及单片机技术的不断发展,不仅使计算机应用向网络化、综合化、集成化、智能化发展,而且使单片机的应用也从独立的单机控制向多机联网的方向发展,这就需要将各单机进行组网以进行相互通信,从简单的

9、集中式控制逐渐向复杂的分布式形式发展,于是出现了以通信网络技术为基础的新的控制形式。串行通信作为一种简单、廉价的通信方式在控制工程中得到了广泛的应用,其中RS-485总线型控制系统得到了推广和发展。由PC机和多台单片机构成的多级网络通信系统已成为单片机技术发展的一个方向1。1.2 研究的背景及意义单片机和计算机的不断发展使得单片机的应用也从独立的单机向网络发展,由计算机和单片机构成的多机网络系统已成为单片机技术发展的一个方向。二者的结合,充分发挥了单片机在实时数据采集和数据管理上的优点。单片机由于其具有体积小、功能强、价格低廉、开发应用方便、设计灵活和性能价格比高的特点,在计算机的网络通讯与数

10、据传输、工业自动化过程的实时控制和数据处理等都有广泛地应用,已渗透到我们生活的各个领域。然而,单片机对网络数据的处理方式不同于通用计算机系统,尤其有的单片机只提供8位的数据收发接口,在一定程度上阻碍了单片机在网络方面的应用。因此,采用单片机技术与计算机网络技术相结合的办法 ,对单片机多机通信系统进行研究,在设计单片机网络的通信协议的基础上,系统网络拓扑结构采用总线型,网络接口电路采用端口转发的形式,实现了8位单片机多机通信,且PC机能弥补单片机数据处理能力弱和软硬件资源贫乏的缺陷。因此,PC机(上位机)与各单片机(下位机)之间的通信就显得尤其重要。在工业领域,主从式的设备监控管理模式应用越来越

11、广泛。一台上位机同时监控多台下位机(1:N),相比一台上位机监控一台下位机(1:1)的模式,更具有经济性、方便性和时效性。在一对多的通信模式中,由于下位机与上位机、下位机与下位机之间的物理位置相距较远,运行环境复杂、干扰大,由于RS-232采用共模传输方式,只能实现十余米的短距离通信,且抗干扰能力不理想,因此使用RS-232串口通讯协议完全不能达到要求,易出现错码。而通讯距离远(最长1200m),抗干扰能力强的RS-485总线通信模式由于具有简洁灵活、结构简单、价格低廉、软件易实现、性价比较高、传输距离较远、误码率较低、抗干扰能力强等优点而被广泛应用。但RS-485总线存在自适应、自保护功能脆

12、弱等缺点,如不注意一些细节的处理,常出现通信失败甚至系统瘫痪等故障,因此提高RS-485总线的运行可靠性至关重要1。1.3 论文的主要内容本论文主要研究的内容是设计以PC机为主机,多个单片机为从机所构成的主从式结构网络。为了方便读者快速地了解本论文的主要内容,在这里简要介绍一下论文的章节安排及内容。 第一章绪论。主要介绍本论文研究的背景、意义。 第二章多机通信的基础。主要介绍通信的一些基本概念以及方式,也对各种串行接口标准、MAX232和MAX485两种转换芯片作了一些讲解。 第三章系统方案设计。主要介绍了一下通信的大致过程以及各个结构部分,并画出了原理框图。 第四章系统软件设计与调试。首先介

13、绍了通信原理,以及如何能实现它,并制定了通信协议,以及实行的差错控制。接下来对上、下位机进行软件编程,并调试了程序。 第五章系统可靠性分析。首先描述了可靠性的测评指标,然后在防止总线冲突,通信协议以及程序方面作了一些提高可靠性的讨论。 第六章总结。第二章 多机通信基础2.1 数据通信基础2.1.1 数据通信的概念随着多微机系统的应用和微机网络的发展,通信功能越来越显得重要。通信是指计算机与外界的信息交换,它既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换,所有这些信息交换都可称为数据通信。数据通信方式有两种,即并行数据通信和串行数据通信。通常根据信息传送的距离决定采用哪种通信方式

14、。并行数据通信是指数据的各位同时进行传送的通信方式,其优点是传送速率快;缺点是数据有多少位,就需要多少根传送线。串行数据通信指数据是一位一位顺序传送的通信方式,外设和计算机间使用一根数据信号线,和按字节传输的并行通信相比,串行通信使用的传输线少,适用于长距离传输而速度要求不高的场合。因此在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息2。2.1.2 串行通信的传送方式 在串行通信中,数据通常是在二个站(点对点)之间进行传送,按照数据流的方向可分成三种传送模式:全双工、半双工、单工。下面就简单介绍这三种传送模式2。(1)全双工(Full Duplex)数据线发送/

15、接收端接收/发送端地线全双工制式图2-1全双工通信数据的发送和接收分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作。如图2-1所示。 (2)半双工(Half Duplex)使用同一根传输线,通信双方既可发送数据又可接收数据,但不能同时收发数据,如图2-2所示。本文设计的RS-485通信接口芯片就是采用半双工的传送方式。数据线发送/接收端接收/发送端地线半双工制式图2-2半双工通信(3)单工(Simplex)甲乙双方通信时只能单向传送数据,发送方和接收方固定。如图2-3所示。数据线发送端接收端地线单工制式 图2-3 单工通信2.1.3 异步收

16、发器(1) UART(异步收发器)的组成UART由三个部分组成:接收器、发送器、控制器。接收器将接收到的串行码转换成并行码,并对其进行错误检测。发送器将并行码转换为一定数据格式的串行码。控制器用以接收CPU的控制信号、执行CPU所要求的操作,并输出状态信息和控制信息。(2)异步串行通信中设立的出错标志。奇偶错误;帧错误(数据格式错);溢出错误(丢失错误、数据重叠)3。2.1.4 通信波特率的设置波特率,即数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是位/秒(b/s)。波特率对于CPU与外界的通信是很重要的,它是衡量传输通道频宽的指标,它和传送数据的速率并不一致。异步通信的传送速度在5

17、019200b/s之间。常用于计算机到终端机和打印机之间的通信、无线电通信的数据发送等。80C51单片机系统时钟绝大多数情况下都采用6MHz的石英晶体振荡器,其串行口的波特率是由其内部定时器TH1(8位)决定的,具体计算公式为3:2.2 异步串行通信接口标准2.2.1 RS-232C串行接口标准 RS-232C接口标准是在1969年由美国电气工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通信的标准,所以RS-232C是PC机与通信工业中使用最早的一种串行接口标准。在短距离、较低波特率串行通信中得到了广泛的应用。RS-232C接口标准最初是为了远程通信连接数

18、据终端设备DTE和数据通信设备DCE进行通行而设计的。 RS-232C中定义了20根信号线,使用25芯D型连接器(DB25)实现,其中除了用于全双工串行通信的两根信号线外,标准还定义了若干“握手线”。实际应用中,这些“握手线”的连接不是必须的。为了简化接口的线路连接,出现了简化的9芯D型连接器(DB9)。图2-4为DB-9型连接器的引脚图,下面简要介绍一下9个引脚的功能。 (1) DCD数据载波检出(Receive Line Signal Detector)。当本地DCE设备收到对方的DCE设备送来的载波信号时,该引脚有效,用于通知DTE准备接收,此时DCE将接收到的载波信号解调为数字信号后,

19、经RXD线传送至DTE。 (2) RXD接收数据(Receive Data)。DTE通过该引脚接收DCE发送过来的串行数据。 (3) TXD发送数据(Transmitted Data)。串行数据通过该引脚从DTE发送至DCE。 (4) DTR数据终端准备好(DTE Ready)。该引脚有效时,表明数据终端处于可用状态,通常将其直接接至电源端,上电有效。 (5) GND信号地线。该引脚为所有的电路提供参考电位。 (6) DSR数据装置就绪(DCE Ready)。该引脚有效时,表明MODEM处于可用状态,通常将其直接接至电源端,上电有效。 (7) RTS请求发送(Request to Send)。

20、用来表示DTE请求DCE发送数据,即当终端要发送数据时,该信号有效,向MODEM提出发送请求,此时MODEM进入发送状态。 (8) CTS允许发送(Clear to Send)。用来表示DCE已准备好接收DTE发来的数据,是对请求发送信号RTS的相应信号。当MODEM已准备好接收终端传来的数据时,该信号有效,通知终端开始发送数据。 (9) RI振铃提示(Ring Indicator)。当MODEM收到交换台送来的振铃呼叫信号时,该信号有效,用于通知终端已被呼叫。图2-4 DB9引脚图 与TTL, MOS逻辑电平完全不同,RS-232C其逻辑电平对地是对称的。逻辑0电平规定为+5V+15V之间,

21、逻辑1电平为-5-15V之间,因此为了使RS-232C能够和TTL器件相连接,就必须在RS-232C和TTL电路之间进行电平和逻辑关系的变换。用RS-232C总线连接系统时,有近程通信方式和远程通信方式之分。近程通信是指传输距离小于15米的通信,这时可以用RS-232C电缆直接连接,最少只需连接3根信号线即可。 由于RS-232C接口标准出现的较早难免有不足之处,主要有以下四点: (1) 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容,使用电平转换电路才能与TTL电路连接。 (2) 传输速率较低,在异步传输时,波特率最高为20Kbps。 (3) 接口使用一根信号线和一根信

22、号返回线而构成共地的传输形式,这种共地传输容易形成共模干扰,所以抗噪声干扰性弱。(4) 传输距离有限,最大传输距离也只能在15米左右1。2.2.2 RS-422串行接口标准RS-422是在RS-232C以后发展起来的、平衡传送的电气标准,比起RS-232C非平衡的传送方式在电气指标上有了大幅度的提高。RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。典型的RS-422是四线接口(实际上还有一根信号地线,共5根线)。由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master)

23、其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。 RS-422的最大传输距离为1200米,最大传输速率为10Mb/s。其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。 RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗,终接电阻接在传

24、输电缆的最远端;一般在300米以下不需终接电阻1。2.2.3 RS-485串行接口标准 RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。该规范满足所有RS-422要求,而且比RS-422稳定性更强。现从五个方面简单介绍如下: (1) 采用平衡发送和差分接收方式,即在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号变成TTL电平,能有效的抑制共模干扰,提高信号传输的准确率。 (2) 电气特性:对于发送端,逻辑1以两线间的电压差为+(26) V表示;逻辑0以两线间的电压差为-(26) V表示。对+接收端,A比B高200mV以

25、上即认为是逻辑l, A比B低200mV以上即是逻辑0。接口信号电平比RS-232降低了,不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。 (3) 共模输出电压在-7V+12V之间,而RS-422在-7V+7V之间。RS-485接收器最小输入阻抗为12k, RS-422是4k,RS-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。但RS-422驱动器并不完全适用于RS-485网络。 (4) 最大传输速率为l0Mbps。当波特率为1200bps时,最大传输距离理论上可达15千米。平衡双绞线的长度与传输速率成反比,在100kbps速

26、率以下,才可能使用规定最长的电缆长度。RS-485需要2个终接电阻,接在传输总线的两端,其阻值要求等于传输电缆的特性阻抗,为120。在短距离传输时可不终接电阻,即一般在300米以下不终接电阻。 (5) 采用二线与四线方式,二线制可实现真正的多点双向通信。而采用四线连接时,只能有一个主(Master)设备,其余为从设备,它比RS-422有改进,无论四线还是二线连接方式总线上可连接多达32个设备。RS-485总线挂接多台设备用于组网时,能实现点到多点及多点到多点的通信(多点到多点是指总线上所接的所有设备及上位机任意两台之间均能通信)。连接在RS-485总线上的设备也要求具有相同的通信协议,且地址不

27、能相同。在不通信时,所有的设备处于接收状态,当需要发送数据时,串口才翻转为发送状态,以避免冲突。 在过去20年时间里,RS-485标准作为一种多点差分数据传输的电气规范,被应用在许多不同的领域,作为数据传输链路。目前,在我国应用的现场网络中,RS-485半双工异步通信总线也是被各个研发机构广泛使用的数据通信总线。但是基于在RS-485总线上任一时刻只能存在一个主机的特点,它往往应用在集中控制枢纽与分散控制单元之间2。2.2.4 RS-232, RS-422, RS-485通讯方式的区别RS-232, RS-422, RS-485通讯方式的最主要的区别是RS-422和RS-485都采用平衡驱动和

28、差分输入的方式,有效的消除了共模干扰,并且RS-485有更宽的共模输入范围(-7v+12v);能实现一点对多点的通信;传输距离远;传输速率快。如表2-1所示2。表2-1 RS-232, RS-422, RS-185的区别标准RS-232RS-422RS-485工作方式单端差分差分节点数1收1发1发10收1发32收最大传输电缆长度50英尺4000英尺4000英尺最大传输速率20kbps10Mbps10Mbps最大驱动输出电压+/-25V-0.25V+6V-7V+12V发送器输出信号电平(负载最小值)负载+/-5V+/-15V2.0V1.5V发送器输出信号电平(空载最大值)空载+/-25V6V6V

29、发送器负载阻抗()3k7k10054摆率(最大值)30V/SN/AN/A接收器输入电压范围15V-10V+10V-7V+12V接收器输入门限3V200mV200mV接收器输入电阻()3k7k4k(最小)=12k发送器共模电压-3V+3V-1V+3V接收器共模电压-7V+7V-7V+12V2.3 通信芯片的介绍2.3.1 RS-232通信芯片PC机串口是RS232电平的,以正负电压来表示逻辑状态,而单片机的串口是TTL电平的,以高低电平表示逻辑状态。因此,为了能够使计算机接口和终端的TTL器件连接,必须在RS232C与TTL电路之间进行电平和逻辑关系变换。使用MAX232芯片可以将PC机串行口的

30、RS-232C电平转换为TTL标准电平。MAX232芯片内部有一个电源电压变换器,可以把输入的+5V电源电压变换成为RS-232C输出电平所需的士l0V电压。所以,采用此芯片接口的串行通信系统只需单一的+5V电源就可以了。MAX232芯片的引脚结构如图2-5所示: 图2-5 MAX232引脚功能图实际应用中,T1IN, T2IN可直接接TTL/CMOS电平的MCS-51单片机的串行发送端TxD; RIOUT, R2OUT可直接接TTL/CMOS电平的MCS-51单片机的串行接收端RxD; TIOUT, T2OUT可直接接PC机的RS-232串口的接收端RxD; R1IN, R2IN可直接PC机

31、的RS-232串口的发送端TxD1。2.3.2 RS-485通信芯片RS-485芯片作为一种常用的通讯接口器件,可以在许多半导体公司的“标准接口器件”栏目中“收发器”类元件中找到对应的型号。所以在进行RS-485通讯芯片设计之前,有必要选择一款成功在市场上应用的相关芯片进行分析研究,以确保设计的成功性。本设计选择的是MAXIM公司的MAX485,其内部结构如图2-6所示。该芯片具有低功耗,单电源供电等优点,主要应用于低功耗RS-485收发器、低功耗RS-422收发器、RS232-485电平转换器和工业控制局域网等4。图2-6 MAX485芯片内部结构其内部逻辑关系如表2-2所示:表2-2 MA

32、X485逻辑关系发送/REDEDIABHHHLHLLHLZZ接收A-B/REDERO+0.2VLLH-0.2VLLLHLZMAX485芯片采用单一电源+5 V工作,额定电流为300A,采用半双工通讯方式。它完成将TTL电平转换为RS-485电平的功能,将输入的TTL电平转换成差分电平输出。其结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;RE和DE端分别为接收和发送的使能端,当RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用

33、单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可2。第三章 系统方案设计3.1 系统总体设计 本系统是由一台PC机为上位机,多台80C51单片机构成主从式结构网络作为下位机,以此来实现上位机与下位机,下位机与下位机之间信息的传输。 本系统通信过程如下:上位PC机作为主机经过一定的程序后,先向下位机发出地址信号,各个下位机收到信息后,开中断去执行程序,与上位机发过来的地址相比较。地址相同的那台单片机向主机发送

34、自己的地址,然后准备接收上位机发送过来的命令,看是接收还是发送数据;上位机收到发过来的地址并进行判断看是否与自己发送的地址相符,相符后则发送命令。通过此过程来达到上位机与下位机之间数据的传输,并将接收到的数据用显示器进行显示。3.2 系统主要构成部分本系统中作为主机的PC机的串行接口为RS 232或USB总线,采用专用的RS 232/ 485标准转换芯片S2- 485来实现。其实质是先用MAX232转换芯片将RS232电平转换为TTL电平,再用 MAX485芯片将TTL电平转换为RS485电平,然后采用RS485总线进行长距离、高速的串行异步通信。各下位单片机由于已经是TTL电平,则只需用MA

35、X485芯片将TTL电平转换为RS485电平来进行通信就可以了。其系统的原理框图如图3-1所示:图3-1 多机通信原理框图在总线末端接一个匹配电阻,吸收总线上的反射信号,使得正常传输信号无毛刺。匹配电阻的取值应该与总线的特性阻抗相当。在总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响。将总线上的差分信号的门端A+和负端B-之间接一个10 k 的电阻;负端B-和地间接一个1 0 k 的电阻,形成一个电阻网路。当总线上没有信号传输时,门端A+的电平大约为3.2V,负端B-的电平大约为1.6V。即使有干扰信号,也很难产生串行通信的起始信号0,从而增加了总线抗干扰的能力5。从结构上系统可以

36、分为:上位PC机部分、RS232接口电路部分、RS232/485转换电路、RS-485通信网络部分、RS485接口电路部分和下位单片机部分。(1)上位PC机上位机作为主机一般采用PC机,它主要是向下位机发送地址信息、命令,接收下位机做出的反应和发送数据。(2)RS232接口电路 串行通信中,只有通信双方采用相同的接口标准,才能进行正常的通信,由于上位PC机的串行通信口采用的RS-232电平和下位单片机的TTL逻辑电平不一致,所以我们必须进行电平转换;为实现逻辑电平的转换使用MAX232转换芯片。(3) RS232/485转换电路RS232/485转换电路其实质就是包含MAX232和MAX485

37、两个芯片,来实现电平之间的转换。(4) RS-485通信网络由MAX485收发器组成的差分平衡系统,其通信采用平衡发送和差分接收的方式,使得传输距离长、抗干扰能力强,因而适用于远距离通信。(5) RS485接口电路部分 由于要实现RS485通信,而单片机端口的电平为TTL电平,则必须进行转换,本系统采用MAX485转换芯片 。 (6)下位单片机部分每个下位机是由8051单片机为核心,再配上必要的时钟电路,复位电路以及键盘和显示器等而构成的一个单片机系统。该部分的具体功能: .对上位机发出的信号做出回答;完成与上位PC机之间的数据传输,包括发送和接收数据。3.3 系统主从通信的基本条件为了确保主

38、从机能够实现安全的通信,在通信过程中必须满足三个基本条件:(1)系统中每个下位机都有一个唯一的地址码。(2)在系统中,主机可直接与下位机进行通信,各下位机之间不能进行直接通信,必须通过主机作为中间点才能实现通信;各下位机在不进行通信时处于监听状态。(3)在通信时,只允许主机和一台下位机进行通信,而不允许多个下位机和一台主机同时进行通信。第四章 系统软件设计与调试4.1 PC机与多个80C51通信原理利用PC机的串行通信适配器,其核心为可编程通用异步收发器UART8250芯片,8250有10个可寻址寄存器供CPU读/写,实现与外界的数据通信,制订通信协议和提供通信状态信息。80C51单片机的串行

39、通道是一个全双工的串行通信口,既可以实现双机通信,也可以实现多机通信。下位机主机80C51单片机对串口的控制通过SCON控制寄存器实现,SCON各位定义如下:SM0SM1SM2RENTB8RB8TIRI 其中,SM0,SM1为串口工作方式选择位,SM2为多机通信控制位,REN为允许串行通信选择位。 TB8为方式2、3中要发送数据第9位,RB8为方式2、3中接收数据第9位,TI为发送中断标志位,RI为接收中断标志位。当串行口工作在方式2或方式3时,若特殊功能寄存器SCON的SM2由软件置为1,则为多机方式;若SM2为0,则为9位异步通信方式6。在多机通信时,8051发送的帧格式是11位,其中第9

40、位是SCON中的TB8,它是多机通信时发送地址(TB8=1)或发送数据(TB8=0)的标志。串行发送时自动装入串行的帧格式的相应位。在接收端,一帧数据的第9位信息被装入SCON的RB8中,接收机根据RB8及SM2的状态确定是否产生串行中断标志,从而可以响应或不响应串行中断,这样就实现了多机通信。PC机的串行通信由接口芯片8250完成。它并不具备多机通信功能,也不能产生TB8或者RB8,但可以灵活使用8250,用软件完成上述功能3。4.2 通信状态的设置在使用串行通讯函数作数据传送前,应安排好IBM PC机串行通讯接口的状态,也就是要对IBM PC的可编程异步串行通讯芯片UART中内部寄存器作相

41、应的编程设置。表4-1是UART中10个内部寄存器的名称,端口地址及操作特点与使用条件。表4-1 UART中的内部寄存器端口地址指令条件寄存器名称及应用3F8H(2F8H)OUTDLAB=0写入发送器保持寄存器3F8H(2F8H)INDLAB=0读出接收器数据寄存器3F8H(2F8H)OUTDLAB=1写入波特率因子LSB3F9H(2F9H)OUTDLAB=1写入波特率因子MSB3F9H(2F9H)OUTDLAB=0写入中断允许寄存器3FAH(2FAH)IN-读出中断标识寄存器3FBH(2FBH)OUT-写入线路控制寄存器3FCH(2FCH)OUT-写入MODEM控制寄存器3FDH(2FDH)

42、IN-读出线路状态寄存器3FEH(2FEH)IN-读出MODEM状态寄存器*DLAB指线路控制寄存器D7位;* *括号前指COM1,括号内指COM2。线路控制寄存器:用来设置串行通讯的数据格式和校验方式,各位含义如图4-1所示。D7D6D5D4D3D2D1D0 数据位控制位005位0-线路检 016位测信号 107位1-波特率设置, 118位即DLAB=1校验位000-无奇偶001奇校验 停止位011偶校验 01位101奇偶位保持1 12位111奇偶位保持0图4-1 线路控制寄存器波特率寄存器:把波特率因子设入波特率寄存器就可设定好串行传输的速率,设置的前提是必须使DLAB=“1”,也就是使线

43、路控制寄存器的D7=“1”。波特率因子与波特率的关系示于表4-2中5。表4-2 波特率因子与波特率的关系表波特率(位/秒)波特率因子波特率波特率因子MSBLSBMSBLSB5009H00H180000H40H7506H00H200000H3AH11004H17H240000H30H134.503H59H360000H20H15003H00H480000H18H30001H80H720000H10H60000HC0H960000H0CH120000H60H1920000H06H4.3 PC机与多个80C51通信的控制PC机要和下位机的单片机通信,则PC机串口信息帧格式必须和80C51的信息帧格式

44、相同。80C51多机通信信息帧的格式如下图所示:起始位D0D1D2D3D4D5D6D7TB8停止位其中第9位为下位机SCON中的TB8,是多机通信时下位机发送地址/数据的标志。而PC机的串行通信接口芯片为异步通信适配器INS8250UART,其可接收和发送11位数据,格式如下:起始位D0D1D2D3D4D5D6D7奇偶位停止位主机送出地址信息,同时控制奇偶位为1(对应8051的TB8)以引起从机的中断,之后控制奇偶位为0,发送数据或指令。对PC机来说,奇偶位通常是自动产生的,它根据8位数据的奇偶情况而定;因而大多数设计者均采用人为控制8位数据的奇偶;将8位数据的某一位(一般是第D7位)作为奇偶控制位,以达到间接控制奇偶位的目的。这种方法实现起来,不但有软件开销,还会使通信速

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服