1、RS232简单串口主从系统设计及Proteus的仿真1毕业设计说明书(论文)RS-232简单串口主从系统设计及Proteus的仿真毕业设计说明书(论文)中文摘要随着计算机技术的飞速发展,计算机已经运用于人们日常生产的方方面面。串行通信作为一种简单、廉价的通信方式,已经广泛的运用于各种终端的接口通信当中。本文通过一种简单的PC机单片机的主从式系统,介绍了PC机与单片机的串口通信。其中使用了Keil对单片机进行编程,使用了VC+对串口通信软件进行编程。上位机与下位机的串口通信的仿真是通过Proteus仿真软件和虚拟串口软件实现的。不仅直观的了解了串口通信的过程,而且为单片机串口通信的教学仿真提供了
2、一种思路。关键词 串口 Proteus 单片机毕业设计说明书(论文)外文摘要Title Study on Computer Interface and Its Application System AbstractWith the fast development of computer technology, computers have been widely used in all aspects of peoples daily life. Serial communication, as a simple and inexpensive method of communication
3、, has been widely used in interface communication among all kinds of terminals.In this paper, it explains the mechanism of serial communication between PC and MCU with the help of a simple PC-MCU master-slave system. Using a MCU programmer written in Keil and a serial communication programmer writte
4、n in VC+, the serial communication emulation between upper computer and lower computer is achieved through Proteus and Virtual Serial Port Driver. This enables us to understand the process of serial communication in a direct manner, meanwhile, it also provides us with a complete new prospect of emul
5、ation in MCU serial communication.Keywords Serial ports Proteus MCU1 绪论 11.1 引言 11.2 研究背景及意义 21.3 论文主要工作 42 计算机接口介绍 52.1 并行口与串行口的介绍 52.2 单片机串行接口 72.2.1 单片机的串口结构 72.2.2 串口的工作方式 82.2.3 波特率的计算 122.3 RS-232C串行接口标准7 132.4 小节 143 单片机硬件电路设计 153.1 单片机最小系统 153.2 LED显示电路 163.3 串口输入电路 173.4 小节 174 本文的软件设计与调试 1
6、84.1 设计要求 184.2 上位机程序设计 184.2.1 Windows环境下的串口通信程序设计 184.2.2 上位机软件的实现 194.3 下位机的程序设计 194.4 虚拟串口 204.5 系统调试 214.6 小结 24结束语 25致 谢 26参 考 文 献 271 绪论1.1 引言计算机技术、自动化技术和通信技术是现代信息科学技术的重要组成部分,是现代学技术中的核心先导技术。计算机控制是计算机技术与自动控制理论、自动化技术紧密合并应用于实际的结果,它的应用领域非常广泛。随着高性能计算机、网络技术及单片机技术的不断发展,不仅使计算机应用向网络化、综合化、集成化、智能化发展,而且使
7、单片机的应用也从独立的单机控制向多机联网的方向发展,这就需要将各单机进行组网并进行相互通信。单一的PC机已经无法满足需要,PC机与各单片机构成的多机系统、计算机网络和利用计算机实时监控已经被越来越多的用于工业企业当中。从简单的集中式控制逐渐向复杂分分布形式发展,出现了以通信网络技术为基础的新的控制形式。从最早的25针D头的并口,到后来9针的RS-232C串口,再到现在随处可见的USB接口,计算机接口技术已经深入我们生活的每个角落。如今计算机成本的急剧下降,计算机早就步入寻常百姓家,渗透于人们日常生产,生活,办公的方方面面1。不久的将来,坐在家里,办公室里甚至是汽车里,通过计算机就可以控制家里的
8、各种电器设备将不是梦想。然而这一切都要基于计算机接口和网络通信技术。1.2 研究背景及意义在工业应用中,PC机由于其优越的性能价格比和丰富的软件资源,已成为计算机应用的主要机种。单片机可以根据预先设置的指令获取现场数据并完成规定的控制功能,因此被广泛的应用于工业自动化检测与自动化控制系统中。主从式PC机单片机网络是一种较为常见的控制方式。每台独立的单片机不仅要按预先设计的程序工作,更多时候需要根据来自上位机的控制指令适时调整工作程序。因此,各单片机之间、上位机与各单片机之间需要信息的相互传递,这样就形成了一个以单片机为用户的网络。与单个独立单片机系统不同的是:网络中单片机的工作程序可以按照上位
9、机的指令随时加以改变1。这种以PC机为中心控制机和以单片机为现场测控机的分布式控制系统可以广泛的应用于工业测控系统中,而且具有很好的应用前景。图1.1为一个现场总线接口的例图。图1.1 现场总线接口例图串行通信作为一种简单、廉价的通信方式在PC机单片机网络中得到了广泛的应用。单片机和PC机之间的串口通信在进行数据交换时经常被使用。在串行通信时,要求通信双方都采用一个标准接口,RS-232C接口是单片机和PC机进行通信最常用的一种接口2。单片机与PC机进行串口通信最简单的三线制法,即接收数据针脚(RXD)与发送数据针脚(TXD)相连,彼此交叉,信号地(GND)对应相接。图1.2为一个智能仪器的应
10、用例图。图1.2 智能仪器的应用例图由PC机和多台单片机构成的多级网络测控系统已成为单片机技术发展的一个方向。在一个应用系统中,通常由PC机对数据进行分析并处理,单片机则完成数据的采集和上传等工作,复杂的还要建立数据库。在这样的系统中,单片机系统一般称之为下位机。由PC机、网络设备、数据库组成的应用部分则通称为上位机2。二者结合,充分发挥了单片机在实时数据采集和PC机对图形处理、显示以及数据库管理上的优点,使得单片机的应用己不仅仅局限于传统意义上的自动监测或控制,而且形成了以网络为核心的分布式多点系统。这种发展的结果就使得上位机与各下位机之间的通信变的尤为重要。1.3 论文主要工作论文主要研究
11、的内容是:设计在Windows环境下,以PC机为主机、单片机为从机的主从系统的通信,通过该系统的设计,简单了解计算机接口及其应用系统。其工作过程如下:PC主机采集时间系统时间,通过RS-232C将时间数据发送给单片机,单片机接收数据并通过数码管显示出系统时间。整体设计框图如图1.3所示。图1.3 整体设计框图图中“去A/D,D/A,其他IO”由于涉及其他具体设备,又由于毕业设计时间有限,其硬件和相关软件设计中没有考虑。论文的主要工作可以归纳为以下几点:(1) 了解PC机、单片机串口通信接口引脚及电气原理。(2) 对主从系统进行总体方案定制和设计。(3) 对PC机与单片机之间的接口电路以及外围电
12、路进行设计。(4) 开发上位机PC机与下位机单片机软件。论文的章节安排及内容:第一章 绪论。主要介绍本论文研究的背景、意义以及主要工作。第二章 计算机接口介绍。 并行口与串行口、51单片机串行接口和RS-232接口标准进行了简要的介绍。第三章 单片机硬件电路的设计。介绍单片机系统的基本设计。第四章 本文的软件设计与调试。详细介绍了上位机、下位机软件的设计并通过虚拟串口对上位机与下位机软件进行联机测试仿真。2 计算机接口介绍2.1 并行口与串行口的介绍数据通信方式有两种,并行数据通信和串行数据通信3。并行数据通信是指数据的各位同时进行传送的通信方式。其优点是传送速率快;缺点是通信距离短,增加了成
13、本和故障的可能性。串行数据通信是指数据一位一位顺序传送的通信方式,其突出优点是只需一对传送线,大大降低了传送成本,特别适合于远距离通信。在Windows XP中并口的读写需要WinIO函数库,因为在WinNT/2000/XP下屏蔽了对I/O端口的直接操作,WinIO程序库允许在32位的Windows应用程序中直接对I/O端口和物理内存进行存取操作。通过使用一种内核模式的设备驱动器和其它几种底层编程技巧,它绕过了Windows系统的保护机制4。该方法需要编写、调用并口驱动,给并口通信编程带来一定难度。为了解并口输出数据的工作方式,使用了并口调试助手,如图2.1所示,利用它可以直接设置并口各引脚的
14、电位。图2.1 并口调试工具为了检测并口输出数据时每个引脚的电位情况,设计了一个8位的检测电路,以代替电压表手工测量。图2.2为并口测试电路。配合并口调试助手,理解并口输出的过程。图2.2 并口378口测试电路图2.3为自制的实验板,正在测试并口输出的电平,图中为378口输出F0。图2.3 测试并口输出的实验板串口在Windows XP中是以文件的形式被打开的和访问的。VC+中提供了2种串行通信的方法,MSComm串口通信控件和Win API函数,可以方便的进行串口通信程序的开发。本次设计的下位机为MCS-51单片机,在单片机的开发过程中首先要进行仿真,完成仿真后再进行制版。由于现在的笔记本上
15、没有并口和串口,而且仿真软件Proteus中没有并口元器件,只有串口元器件,这给并口通信的设计带来不便。另外并口局限于传输距离的限制,在现在的工业生产应用中,已经逐渐被串行口所取代,故本次毕业设计中采用串口通信方式。2.2 单片机串行接口由于本次设计中要进行单片机的串口通信,所以我们先来简单了解下MCS-51单片机串行接口。2.2.1 单片机的串口结构MCS-51单片机内部的串口是一个标准的全双工串口,支持4种工作方式。对于波特率的设定,可由软件设置。MCS-51单片机还为串口保留了一个中断源,因此对串口的接收和发送可选择中断方式或查询方式。对单片机串口的访问和设置是通过访问其相关的特殊寄存器
16、进行的,与MCS-51单片机串口相关的特殊寄存器共有3个:SCON、PCON和SBUF。(1) 串口控制寄存器SCON串口控制寄存器SCON主要用于设置串口的工作模式和串口中断的查询5。其定义见表2.1。表2.1 SCON定义位76543210字节地址:98HSM0SM1SM2RENTB8RB8TIRISCON下面介绍各个位的功能:(a) SM0、SM1:为了适应不同的通信环境和接口的需要,单片机的串口提供了4种不同的工作方式;SCON寄存器的SM0和SM1位就是用于设置串口的工作方式。(b) SM2:串口多机通信控制位。当串口工作方式被设为方式2或方式3时如SM2=1,接收到的第9位数据(R
17、B8)为1,才将接收到的前8位数据送到SBUF,并置位RI申请中断;否则,将所接收的前8位数据丢弃,且不置位RI。而当SM2=0时,则不论第9位数据为0还是为1,都将接收到的前8位数据送到SBUF并置位RI申请中断。串口使用工作方式1时,若SM2=1,在收到有效停止位后置位RI。方式0中,SM2应置为0。(c) REN:允许串行接收控制。将其置为1时允许接收。(d) TB8:用于设置串口工作在方式2和方式3情况下要发送的第9位数据,由软件置位或复位。(e) RB8:用于保存串口工作在方式2和方式3情况下要接收的第9位数据。方式0下,该位无效。(f) TI:串口中断发送标志。当串行口数据发送完毕
18、时置位TI,同时向CPU发送串口中断请求,需要软件清0。(g) RI:串口中断接收标志。当串行口数据接收到一个数据时置位TI,同时向CPU发送串口中断请求,需要软件清0。(2) 特殊功能寄存器PCON特殊功能寄存器PCON仅有最高位与串口有关5,其结构见表2.2。表2.2 PCON定义位76543210字节地址:87HSMODPCONPCON是8位特殊功能寄存器,地址为87H,不可位寻址。它的低七位全都都用于单片机的电源控制。只有PCON的最高位SMOD为波特率倍增位,用于波特率的计算。在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=
19、0。(3) 发送/接收缓冲器SBUF串口中的发送/接收缓冲器SBUF实际上共有两个,分别为发送缓冲器和接收缓冲器,他们在物理上是完全独立的,因此可以同时进行发送和接收。两个缓冲器共用一个内存地址99H。2.2.2 串口的工作方式MCS-51内部串口的工作方式有4种,由特殊寄存器SCON的SM0和SM1位设定5。其具体设置见表2.3。表2.3 串行口的工作方式SM0SM1方式说 明波特率000移位寄存器fosc/1201110位异步收发器(8位数据)可变10211位异步收发器(9位数据)fosc/64或fosc/3211311位异步收发器(9位数据)可变(1) 方式0将SM0、SM1位设置为0、
20、0,则串行接口工作方式0,多用于I/O口的扩展,其波特率是固定的,为fosc/12。此时串行口是一个同步移位寄存器。RXD引脚输入或输出数据,TXD引脚输出同步移位脉冲,接收和发送都是以8位数据为一帧,发送时低位在前,高位在后。(a) 方式0发送,如图2.4所示。图2.4 方式0发送发送数据时,RXD为数据发送端,TXD以振荡频率的1/12输出同步移位脉冲,SBUF中的8位数据从低位起依次发送。发送完毕后,硬件自动将中断标志TI置1。再次发送数据前,需要软件将TI清0。(b) 方式0接收,如图2.5所示。当REN=1和RI=0时,单片机允许接收数据,此时RXD为数据接收端,TXD以振荡频率1/
21、12输出同步移位脉冲,接收数据被保存至SBUF接收缓冲器中。接收完毕后,硬件自动将中断标志RI置1。再次接收数据前,需要软件将RI清0.在方式0下工作,必须将SCON的SM2位置为0。方式0发送或接收完数据后由硬件置位TI或RI,CPU在响应中断后要用软件清除TI或RI标志位。图2.5 方式0接收 (2) 方式1方式1传送数据的格式,如图2.6所示。图2.6 方式1传送一帧数据的格式将SM0、SM1位设置为0、1,则串口工作在工作方式1,此时串行口是一个10位异步串行接口(UART)。这里传送的一帧长度为10位,包括1位起始位、8位数据位和1位停止位,不包括奇偶校验位。(a) 方式1发送,如图
22、2.7所示。图2.7 方式1发送串行口处于方式1发送时,数据位由TXD端输出。CPU通过执行写入发送缓冲器SUBF的指令启动发送。当数据发送完毕,置位中断标志位TI。(b) 方式1接收,如图2.8所示。图2.8 方式1接收当软件置REN=1时,接收器以所选择波特率的16倍速率采样RXD引脚电平,检测到RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的停止位为1)时,将接收到的9位数据的前8位数据装入接收S
23、BUF,第9位(停止位)进入RB8,并置RI=1,向CPU请求中断。串行口中断标志位TI、RI由硬件置位,需要用指令清零。(3) 方式2方式2传送数据的格式,如图2.9所示。图2.9 方式2传送一帧数据的格式将SM0、SM1位设置为1、0,则串口工作在工作方式2,此时串口为一个11位异步串行接口(UART)。这里传送的一帧长度为11位,包括1位起始位、8位数据位、1位自定义位和1位停止位。(a) 方式2发送,如图2.10所示。图2.10 方式2发送发送开始时,先把起始位0输出到TXD引脚,然后发送移位寄存器的输出位(D0)到TXD引脚。每一个移位脉冲都使输出移位寄存器的各位右移一位,并由TXD
24、引脚输出。第一次移位时,停止位“1”移入输出移位寄存器的第9位上,以后每次移位,左边都移入0。当停止位移至输出位时,左边其余位全为0,检测电路检测到这一条件时,使控制电路进行最后一次移位,并置TI=1,向CPU请求中断。 (b) 方式2接收,如图2.11所示。图2.11 方式2接收接收时,数据从右边移入输入移位寄存器,在起始位0移到最左边时,控制电路进行最后一次移位。当RI=0,且SM2=0(或接收到的第9位数据为1)时,接收到的数据装入接收缓冲器SBUF和RB8(接收数据的第9位),置RI=1,向CPU请求中断。如果条件不满足,则数据丢失,且不置位RI,继续搜索RXD引脚的负跳变。在这一工作
25、方式下,数据位的第9位完全由软件控制,因此既可以将其作为数的奇偶校验位,也可以将其作为多机通信中的地址数据标志位。(4) 工作方式3将SM0、SM1位设置为1、l,则串口工作在工作方式3,此时串行口是一个11位异步串行接口(UART),但不同于工作方式2,工作方式3的波特率是可变的,由定时器Tl的溢出率决定。在数据帧的接收和发送上,工作方式3与工作方式2完全相同,但工作方式3的波特率可以通过软件设定,因此更为灵活。工作方式3的波特率设置和计算方法与工作方式1是相同的。2.2.3 波特率的计算在串行通信中,收发双方对发送或接收数据的速率要有约定5。通过软件可对单片机串行口编程为四种工作方式,其中
26、方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以各种方式的波特率计算公式也不相同。方式0的波特率 = fosc/12方式2的波特率 = (2SMOD/64) fosc 方式1的波特率 = (2SMOD/32) (T1溢出率)方式3的波特率 = (2SMOD/32) (T1溢出率)当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值。T1 溢出率 = 在单片机的应用中,常用
27、的晶振频率为:12MHz和11.0592MHz。所以,选用的波特率也相对固定。常用的串行口波特率以及各参数的关系6,如表2.4所示。串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下:(1) 确定T1的工作方式(编程TMOD寄存器)。(2) 计算T1的初值,装载TH1、TL1。(3) 启动T1(编程TCON中的TR1位)。(4) 确定串行口控制(编程SCON寄存器)。(5) 串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。表2.4 常用波特率与定时器的参数关系波特率foscSMOD定时器C/方式重装载值方式01MHz12MHz方
28、式2357k12MHz1方式1、362.5k12MHz102FFH19.2k11.0592 MHz102FDH960011.0592 MHz002FDH480011.0592 MHz002FAH240011.0592 MHz002F4H120011.0592 MHz002E8H2.3 RS-232C串行接口标准7所谓标准接口,就是明确定义若干信号线,使接口电路标准化、通用化,借助串行通信总线标准接口,不同类型的数据通信设备可以很容易实现它们之间的串行通信连接。采用标准接口后,可以方便的把各种计算机、外设、测量仪器等有机的连接起来,进行串行通信。为了保证可靠性高的通信要求,在选择接口标准时,须注
29、意通信速度、通信距离和抗干扰能力。异步串行通信总线标准接口有很多,如RS-232C、USB、SPI及I2C总线等。目前RS-232C是PC机、单片机中最常用的串口,其电路简单,兼容性好,在微机通信接口中广泛采用。所以本次设计我们也采用RS-232C接口标准,下面我们来简单了解下RS-232C接口标准。RS-232C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。RS(Recommended Standard)是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232C总线标准设有25条信号线,包括一个主通道和一个辅助通道。它适合于数据传输速率在
30、020000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-232C制式兼容的通信设备。在多数情况下主要使用主通道,对于一般双工通信,采用三线制就可实现,即一条发送线、一条接收线及一条地线。RS-232C标准规定的数据传输速率为每秒150、300、600、1200、2400、4800、9600、19200波特。电气特性EIA-RS-232C对电气特性、逻辑电平和各种信号线功能都作了规定。在TXD和RXD上:逻辑1(MARK) = -3V-15V。逻辑0(SPACE) = +3V+15V。在RTS、CTS、DSR、DTR和DCD等控制线上:信号有效(接通,ON状态,正电压) +3V+15V。信号无效(断开,OFF状态,负电压) -3V-15V。RS-232C与TTL转换:RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1