精品基于串口通信的步进电机调速系统设计-定 - 图文

内蒙古科技大学毕业设计说明书(毕业论文)

7脚:信号地;

8脚:数据载波检测DCD; 20脚:数据终端就绪DTR。 ②电气特性:

数据传输速率最大可到20K bps,最大距离仅15m.

注:关于串行通讯设备速率的设置,最大可支持到RS_256000,即256Kbps。一般主机和单片机的串口通讯大多都在9600 bps,可以满足通讯需求。

③接口的典型应用:

大多数计算机应用系统与智能单元之间只需使用3到5根信号线即可工作。这时,除了TXD、RXD以外,还需使用RTS、CTS、DCD、DTR、DSR等信号线。

121计算机终端 图5.1 最简单的RS232-C信号线接法

以上接法,在设计程序时,直接进行数据的接收和发送就可以了,不需要对信号线的状态进行判断或设置。 (1)串行通信的两种通信形式 A. 异步通信

在这种通信方式中,接收器和发射器有各自的时钟,他们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,紧接着是若干个数据位。 B.同步通信

同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步传输中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送的数据量较大的。

串行口定义为方式1时传送1帧数据为10位,其中1位起始地址、8位数据位(先低位后高位)、1位停止位方式1的波特率可变,波特率=2SMOD/32?(T1的溢出率) (2)串行口和控制寄存器

32

内蒙古科技大学毕业设计说明书(毕业论文)

MCS-51单片机串行口专用寄存器结构如表5.1所示。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发射器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。MCS-51的串行数据传输很简单,只要向缓冲器写入数据就可发送数据。而从接收缓冲器读出数据既可接收数据。

此外,接收缓冲器前还加上一级输入移位寄存器,MCS-51这种结构的目的在于接收数据时避免发生重叠现象,文献称这种结构为双缓冲结构。而发送数据就不需要这样设计,因为发送时,CPU是主动的,不可能出现这种情况。 A:串行通信寄存器

在上一节我们已经分析了SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据通信的控制,单元地址是98H,其结构格式如下:

表4.1 SCON寄存器结构

寄存器SCON结构 SCON D7 D6 D5 D4 D3 D2 RB8 9AH D1 TI 99H D0 RI 98H SM0 SM1 位地址 9FH 9EH SM2 REN TB8 8DH 9CH 9BH 下面我们对个控制位功能介绍如下: (1)SM0、SM1:串行口工作方式控制位

SMO SM1 工作方式 功能说明

0 0 方式0 移位寄存器方式(用于I/O扩展) 0 1 方式1 8位UART,波特率可变(T1溢出率/ n) 1 0 方式2 9 位UART,波特率为fosc/64或fosc/32

1 1 方式3 9位UART,波特率可变(T1溢出率/ n) (2)SM2:多机通信控制位

多机通信是工作方式2和方式3,SM2位主要用于方式2和方式3。接收 状态,当串行口工作方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收的前8位数据送入SBUF,且置位RI发出中断申请,否则会将收到的数据放弃。当SM2=0时,只有在接收到有效停止位时才启动RI,若没接收到有效停止位,则RI清“0”。在方式0中SM2应该为“0”。

REN:允许接收控制位。由软件置“1”时,允许接收;软件置“0”时,不许接收。

33

内蒙古科技大学毕业设计说明书(毕业论文)

TB8:在方式3和方式3中要发送的第9位数据,需要时用软件置位和清零。 TB8:在方式2和方式3中是接收到的第9位数据。在方式1时,如SM2=0,RB8接收到的停止位。在方式0中,不使用RB8。

TI:发送中断标志。由硬件在方式0发送完第8位时置“1”,或在其它方式中串行发送停止位的开始时置“1”。必须由软件清“0”。

RI:接收中断标志。由硬件在方式0串行发射第8位结束时置“1” B:特殊功能寄存器PCON

PCON:主要是是CHMOS型单片机的电源控制而设置的专用寄存器,单元地址为87H其机构格式如下表:

表4.2 特殊功能寄存器PCON

PCON 位符号 D7 SMOD D6 D5 D4 D3 GF1 D2 GF0 D1 PD D0 IDL 在CHMOS型单片机中,除SMOD位外其它位均为虚设的,SMOD是串行波特率倍增位,当SMOD=1时串行口波特率加倍,系统复位默认为SMOD=0。 C:中断允许寄存器IE

中断允许寄存器这里重述一下对串行口有影响的位ES。ES为串行中断允许控制位,ES=1允许串行中断,ES=0,禁止串行中断 4.2.1串口接收数据

在本设计中,单片机接收上位机传来的数据,将接收到的数据放在一个接收缓冲器中,然后进行对接收到得数据进行判断,从而对通过单片机控制设置相应的步进电机的工作方式、起停状态、加减速及定位。在判断接收到的数据之前,需要先规定好一定得协议,即接收数据缓冲器中的每一位值为什么,代表控制什么。

34

内蒙古科技大学毕业设计说明书(毕业论文)

接收数据入口RI=0;Point=0N收到的是“:”?YPoint++Receive_buffer计算校验和point>0&&point<10?正确?NY发送成功标志返回

图4.2 串口接收数据流程图

如图4.2 当串口有数据传输进来时,串口中断就打开,然后就进入了串口接收数据过程,进入中断以后,首先,先将中断标志清除,以免程序进入死循环。判断接收到的第一位是不是“:”,如果是,则继续接受数据,不是就跳出。判断数据接收完,没有接收完继续接受,接收完成调用计算校验和程序,通过校验和判断接收的数据是否正确,不正确就请求上位机重新发送,正确就送成功标志。

35

联系客服:779662525#qq.com(#替换为@)