单片机与PC机串口通讯设计文档格式.docx
- 文档编号:18124000
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:16
- 大小:28.19KB
单片机与PC机串口通讯设计文档格式.docx
《单片机与PC机串口通讯设计文档格式.docx》由会员分享,可在线阅读,更多相关《单片机与PC机串口通讯设计文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
USART的波特率产生部分主要包括时钟的选择,波特率的产生以及波特率的调整部分组成,它通过设置波特率寄存器和波特率调整寄存器来获得需要的波特率。
USART包含一个控制模块,通过控制模块可以选择相应的工作模式,同时设置相应的管脚,比如对异步和同步工作方式的选择,对奇偶校验位和停止位个数等所有设置都是通过操作该模块的寄存器来实现的。
对于不同系列的MSP单片机其USART模块可能有一个也可能有两个,而MSP430F149有两个,分别是USART0和USART1。
图1-2USART模块组成
的控制寄存器和工作模式USART、2.
USART的控制寄存器是其八个寄存器之中的一个,表1-1是其位的格式,
表1-1控制寄存器
PENVPEVSPCHARLISTENSYNCMMSWRST
USART的控制寄存器有8个有效控制位,通过对这些控制位的设置可以对工作模式,通信协议,校验位等进行选择。
用户对USART的所有操作都是通过[6]。
下面是各个位的简单功能描述,知道这些操作该寄存器的控制位来完成的控制位的功能,有助于我们在后面进行硬件连接和软件设计.
PENV:
校验使能位。
该位为0不允许校验;
为1时,允许校验,且在发送时产生校验位,在接收时希望接收到校验位。
在地址位多机模式中地址位包括在校验计算中。
PEV:
奇偶校验位。
为0时,奇校验,为1时进行偶校验。
SP:
停止位。
接收时停止位只有一个。
发送时,该位为0,只有一个停止位;
该位为1时,有两个停止位。
CHAR:
字符长度位。
该位为0表示发送的数据为7位,该位为1时表示
发送的数据为8位。
LISTEN:
监听使能位。
该位为0没有反馈;
该位为1,有反馈,发送的数据送到接收器,可以进行自环测试。
USART,1)模式;
该位为UART为异步通信(USART时,0:
该位为SYNC.
为同步通信(SPI)模式。
MM:
多机模式选择。
当该位为0时,多机模式选择线路空闲多机协议;
该位为1时,多机模式选择地址位多机协议。
SWRST:
软件复位使能位。
也叫控制位。
该位影响着其他控制位和状态位的状态,在串行口的使用过程中,这一位比较重要。
一次正确的USART模块初始化应该是这样的顺序:
先在SWRST=1的情况下设置串口;
然后设置SWRST=0;
最后如果使用中断,则设置相应的中断使能。
该位为0时:
USART模块被允许。
该位为1时:
如果该位置位,则USART状态机和操作运行标志位都被初使化成复位状态(URXIFG=URXIE=UTXIE=0,UTXIFG=1);
同时所受影响的逻辑位保持在复位状态,直到SWRST位复位。
这意味着,当系统复位后,只有对SWRST位复位,USART的功能才能被重新允许;
但是接收和发送标志URXE和UTXE不受SWRST控制位的影响。
二、通讯方式
1、异步模式(UART)的选择
MSP430F149单片机支持两种不同的串行协议,异步通信(UART)协议和同步通信(SPI)协议。
这两种协议的选择是通过控制寄存器中的SYNC位来[7]。
决定的模式原理实现单片机与)UART(的异步通信MSP430本设计中主要是利用.
PC机之间的串口通信的。
MSP430控制寄存器内的信息决定了USART的基本操作,选择异步模式(UART)需要通过设置SYNC=0来实现;
本设计中对于其他控制位的设置还有:
设置CHAR=1,选择字符长度为8位;
设置SP=0,选择停止位1位;
设置PEV=0,选择奇校验;
设置MM=1,选择地址位多机模式协议。
控制位的选择基本上决定了系统的通信方式和通信格式。
2、UART模块的特点
由于MSP430单片机具有两个片内的UART:
串口0和串口1,实现两个串口通信相当容易,只需要设置适当的寄存器就可以使串口工作起来,两个串口都采用中断方式,当接收有数据时,设置一个标志通知主程序有数据到来,当主程序有数局要发送时,设置一个中断标志进入中断发送数据。
本设计选用串口1与上位机进行通信。
在异步模式下,接收部分自身实现帧的同步,通信双方只要使用相同的波特率即可。
异步模式的帧格式有1位起始位、7位或8位数据位,校验位,1位地址位,1或2位停止位构成。
在异步模式下,MSP430支持两种多机模式:
线路空闲多机模式和地址位多机模式。
线路空闲模式下,数据块被一段空闲的时间分割。
在字符的第一个停止位之后收到10个以上的1,表示检测到线路空闲;
如果采用两个停止位,则第二个停止位被认为是空闲周期的第
一个信号。
在使用地址位多机模式时,字符包含一个附加的位作为地址标识,数据快的第一个字符带有一个置位的地址位,用以表明该字符是一个地址。
由于已经设置了控制寄存器中的MM=1,故在本设计中选择了地址位多机模式。
下面是UART通信的一些特点:
(1)、异步通讯模式,包括线路空闲/地址位通信协议。
(2)、有两个单独的移位寄存器,输入/输出移位寄存器。
(3)、传输7位或8位数据,可采用奇偶或无校验。
(4)、可编程实现波特率调整。
(5)、分别发,收单独中断。
(6)、有效地检测到起始位实现从低功耗唤醒。
(7)、状态标志检测错误或者地址位。
三、基本通信协议:
在PC机和多台单片机的通讯中,确定一个明确而合理的通讯协议是关键,包括对数据格式、通讯方式、传送速度、传送步骤、检纠错方式以及控[6]。
由于已经选择了UART的多机通信模式制字符定义等问题做出统一规定.为了区别不同的分机,必须为每个分机分配一个唯一的地址,此地址唯一区别各单片机。
数据格式采用数据包的形式,一次传输一组数据。
数据包格式
如表1-2所示:
表1-2数据包格式
起使标志位下位机地址操作命令数据长度数据内容和校验结束标志
起始标志位:
1个字节
分机地址:
1个字节
命令/数据:
数据长度:
数据内容:
n个字节
和检验:
2个字节
结束标志位:
数据格式中的地址位表示与PC机通讯的单片机地址。
操作命令则表示此次通讯要完成的操作。
在单片机发送上位机接收的时候,协议规定命令FFH为上报数据,此时数据包中的数据长度、数据内容、和检验三个域便填充实际机的PC则表示单片机给F0H-F3H发送数据的个数、数据及和校验;
命令.
反馈信息,此时数据包中的数据长度、数据内容和检验三个域为空,其中当命令为F0H表示接收成功,F1H表示接收失败并要求重发,F2H表示单片机有数据上报要求,F3H表示单片机无数据上报要求。
操作命令域在PC机发送单片机接收的时候也有相似的协议规定。
第二章硬件电路设计
接口电平电路设计
2.1.1RS-232接口电路设计
一、RS-232电气标准
1、RS-232基本电气要求
由于MSP430最大工作电压为,所以在与PC机进行串口通信的时候需要进行EIA-RS-232逻辑电平转换。
EIA-RS-232是美国电子工业协会(EIA)制定的串口通信协议,“C”表示标准修第几次修改,其信号电平采用负逻辑,逻辑“1”的电平是-5V-15V,逻辑“0”的电平为+5V+15V,因为其有2V~~的噪声容限,故最终限制接收器能识别低至+3V的信号作为逻辑“0”,高到-3V[8]之15)V~(3。
因此,实际工作时,应保证电平在±
”1作为逻辑“的信号.
间。
S-232-C最高传输速率为20kb/s,最大直接连接长度为15m。
2、RS-232常用接口
RS-232-C标准接口有25条线:
4条数据线、11条控制线、3条定时线、7条备用和未定义线。
其中常用的只有9根,它们是:
(1)6条联络控制信号线:
数据装置准备好(Datasetready-DSR)——有效时(ON)状态,表明MODEM处于可以使用的状态。
数据终端准备好(Datasetready-DTR)——有效时(ON)状态,表明数据终端可以使用。
请求发送(Requesttosend-RTS)——用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态)。
允许发送(Cleartosend-CTS)——用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。
该信号有效时,则通知终端开始沿发送数据线TxD发送数据。
接收线信号检出(ReceivedLinedetection-RLSD)——用来表示DCE已接通通信链路,告知DTE准备接收数据。
此线也叫做数据载波检出(Data
Carrierdectection-DCD)线。
状态)表示通知终端,已被ON——该信号有效((Ringing-RI)振铃指示
呼叫。
上述控制信号线何时有效,何时无效的顺序表示了接口信号的传送过程。
例如,只有当DSR和DTR都处于有效(ON)状态时,才能在DTE和DCE之间进行传送操作。
若DTE要发送数据,则预先将DTR线置成有效(ON)状态,等CTS线上收到有效(ON)状态的回答后,才能在TxD线上发送串行数据。
这种顺序的规定对半双工的通信线路特别有用,因为半双工的通信才能确定DCE已由接收方向改为发送方向,这时线路才能开始发送
(2)2条数据发送与接收线:
发送数据(Transmitteddata-TxD)——通过TxD终端将串行数据发送已经发送。
接收数据(Receiveddata-RxD)——通过RxD线终端接收从PC发来的串行数据,(DCE→DTE)。
(3)一条地线
信号地——SG,无方向。
二、接口电路设计
RS-232接口电路连接方式根据需要有三线、六线、八线、两线多种。
当所示。
2-2通讯速率较低时可以采用三线对接法,按图
电缆连接图2-1RS-232图
在本设计中采用一块MAX3221芯片把从MSP430中USART过来的信号进行电平转换后输出到PC,把从PC发过来的信号发送给USART,设计中的RS-232接口电路如图2-2所示:
图2-2RS-232接口电路图
图2-2中DB9为即为我们选用的RS-232连接器——9针串行口,其插针[9]。
2-1所示分别对应RS-232-C标准接口9根常用线。
其对应关系如表表2-19针串行口插针对应关系表
DB管脚插针功能说标
接收线信号检DC
RD2接收数据TD发送数据3DTR4数据终端就绪
SG5信号地
DSR6数据传输设备就绪RTS7请求发送
CTS8允许发送
RI振铃指示9.
由图2-2以及表2-1可以知道,接收使能EN接地,时钟有效;
掉电模式控制脚FORCEOFF始终拉高,即MAX3221始终处在工作状态。
USART(本设计中选择UART1)的TXD脚与MAX3221的11脚(DIN)相连,USART的RXD脚与MAX3221的9脚(ROUT)相连;
输入DIN的信号转换为RS-232电平后,经MAX3221的13脚(DOUT)输出到J5(DB9)的2脚(DB9的2脚为串口的RXD脚),接口J5(DB9)的3脚(串口的TXD脚)与MAX3221的8脚(RIN)相连,这样的连接方式已将USART的输出脚TXD(本设计中UART1的管脚)和输入脚RXD(本设计中UART1的管脚)连接对调,可以直接通过延长线与PC机相连。
单片机电路设计
2.2.1单片机电路设计图
单片机电路比较简单,在与接口电路连接的的基础上,分别采用单片机的一般I/O接口实现与其他电路的连接。
由于是多路通信,所以每一路的硬件设计基本相同,下面为单片机部分电路图。
图2-3单片机部分电路图
由图2-3可以看出,在单片机的时钟设计上与其他的单片机有一定区8MHZ一个,的时钟信号32KHZ一个,单片机采用两个时钟输入,MSP430F149别
的时钟信号,该系统的时钟信号都是采用晶体振荡器实现的.考虑到电源的输入波纹对单片机的影响,在电源的管脚增加一个μF的电容来实现滤波,以减小输入端受到的干扰。
另外单片机还有模拟电源的输入端,所以这里需要考虑干扰问题,在该系统中的干扰比较小,因此模拟地和数字地共地,模拟电源输[10]。
入端增加一个滤波电容以减小干扰
第三章软件设计
功能描述
3.1.1上位机和下位机实现的功能
一、功能描述:
1、上位机功能
(1)向下位机进行呼叫,接着发送字符串,最后发送结束标志
(2)按照一定的时间间隔对串口进行读操作,如果有数据需要接收,则进行数据接收.
2、下位机功能
(1)接收功能:
识别上位机发送的地址,如果地址匹配则接收数据,直到结束标志到来,则停止接收。
(2)发送功能:
下位机有数据需要发送时,首先向上位机发送本机地址,然后发送数据,最后发送结束标志。
程序设计
3.2.1下位机程序设计
一、下位机通讯协议
分布式控制系统中的下位机的每台单片机均有唯一的地址。
通信开始时,先由PC机呼叫被叫单片机的地址,单片机在接收到PC机的呼叫后,首先判断是不是自己的地址,如果不是就不予理睬。
如果是,则发送呼叫应答信号,并根据上位机的命令进行相应的接收或发送。
根据以上要求以及UART通信协议基本内容,可以将下位机通信协议设置如下表:
表3-1下位机通讯协议格式
地单片机号按Edit1IDC_TXDATAM_TxDataCstring
Edit2IDC_RXDATAM_RxDataCstring
址钮
单片机号IDC_TRSMITT
数据命令码
命令码发送按钮
结束停止标志
地址:
取值1—8,即上位机可以呼叫的8个下位机之一,发送时地址位有效。
数据:
取值9—127,为ASCⅡ可显示字符。
结束:
0。
二、下位机程序流程图
下位机(单片机)程序设计包括初始化设计、串口中断服务设计和主处理程序设计。
本例虽然有多个下位机,但他们除了本机地址的设置不同外,其他硬件电路都是相同的,所以各下位机的软件设计也是相同的。
按照通信.
协议的要求可以设计出如图3-1的下位机程序流程。
图3-1下位机(单片机)主程序流程图
三、初始化设置
初始化设置包括时钟初始化,端口初始化和串口初始化。
1、时钟初始化程序及说明:
#include<
>
#include\
voidInit_CLK(void)
{
unsignedinti;
BCSCTL1=0X00;
4A1”1”面程序中“ProcessCMD(UART1_RX_Temp,nRX1_Len)”主要处理接收到的数据并返回相应的代码以使主程序处理。
该函数的具体代码为:
intProcessCMD(charpBuf[],intnLen)
intnTemp=-1;
inti;
if(nLen<
=2)return-1;
if(nLen==5)
{
if((pBuf[0]=='
A'
)&
&
(pBuf[1]=='
T'
)
&
(pBuf[2]=='
E'
(pBuf[3]=='
0'
))
nTemp=1;
if((pBuf[0]=='
1'
nTemp=2;
}
returnnTemp;
上位机(PC机)程序设计3.2.2
一、上位机串口通讯编程方法的选择操作随着在国内的普及,越来越多的微机用户转向了WindowsWindows语言对串口通信的编程方式已经系统,所以在DOS环境下利用汇编语言和C++开发平台对串口通信上位机不再被看好。
操作系统下利用Windows在VC软件界面非常方便友好,编程工作量相对较小,只需进行主要应用编程,其.
[12]。
功能的编程和少量界面控制的编程
在Windows环境下,利用PC机串口进行通信的常用方法有以下几种:
一是利用WindowsAPI通信函数;
二是利用VC的标准通信函数_inp、_inpw、_inpd、_outp、_outpw、_outpd等直接对串口进行操作;
三是使用Microsoft
[13]。
本设;
四是利用第三方编写的通信类的通信控件(MSComm)VisualC++计将介绍用PComm开发PC机与单片机的通信程序的解决方案。
二、Pcomm主要命令码
PComm(ProfessionalCommToolforPC)串口通信软件包专门运用WindowsNT/2000/XP。
如今WindowsNT/2000/XP已被广泛应用,而它提供的Win32CommAPI却复杂难用,而且没有提供如Zmodem等高阶应用函数,这增加了通信软件工程师的负担。
针对这种状况,MOXA开发了一套简单易用的程式函数库及功能强大的辅助工具—PComm。
PCommPro支持多种编程语言,如VisualBasic、VC++、Delphi等,并且适用于任何在WindowsNT/2000/XP[14]。
为基础的驱动程式的其他品牌的多串口卡Win32COMMAPI下以[15]:
的主要命令码有以下几种PComm
(1)sioopen(port);
用于设置并打开串口,其中port的1、2、3、4分别代表COM、COM2、。
当返回值为0时,表示串口已经打开,否则为串口打开出错。
COM4、COM3.
(2)sioclose(port);
关闭串口,当返回值为0时,表示串口已经关闭,否则为串口关闭出错。
(3)sioioctl(portbaudmode);
用于设置串口波特率、校验位、数据位、停止位等参数。
(4)siogetch();
从串口输入缓冲区读出一个字符,返回值为0表示已收到数据。
(5)sio-read(portbuflen);
用于从串口输入缓冲区读出一串字符,buf代表字符串数组len代表数组长度,返回值为0表示未收到字符,大于0代表收到字符的个数。
(6)sio-SetReadTimeoutsportTotalTimeouts(Inter-valTimeouts);
在设定的等待时间内连续读串口输入缓冲区,TotalTimeouts代表设定的等待时间,Inter-valTimeouts代表每次读出的间隔时间。
(7)sio-flush(portfunc);
用于清空缓冲区。
当func为0时清空输入缓冲区,为1时清空输出缓冲区,为2时清空输入输出缓冲区。
(8)sio-putch(portterm);
用于向串口缓冲区发送一个字符,返回值为0时表示发送正确,否则表示发送错误。
.
(9)sio-write(portbuflen);
用于从串口缓冲区发送一串字符,buf代表字符串数组,len代表数组长度。
三、上位机(PC机)通信协议
分布式控制系统中的每台下位机均有唯一的地址。
PC机发送数据时先发送被叫单片机地址,被叫单片机对地址进行判断,地址错误就不予理睬,[16]。
PC地址正确则向上位机发送呼叫应答信号机在接收到呼叫应答信号之后,将向单片机发出通信命令字符串。
以下是上位机(PC机)的通讯协议格式。
表3-2上位机通讯协议格式
其中,单片机号代表现场第几台单片机,占用1个字节,发送两次的目的是为了防止干扰;
命令码则代表上位机向下位机发布的工作命令,它也占用1个字节,发送两次的目的也是为了防止干扰。
而停止标志则表明上位机一次命令发送完毕,使用时可依据该标志判断上位机的命令是否发送完毕。
四、上位机串口通讯实现过程
在用PComm处理PC机的串口通信时,其实现过程如下:
同时增加静态文本、。
TxRx新建一个基于对话框的应用程序,VC++启动、1.
[17]。
如图3-3所示。
编辑框和按钮等控件
图3-3基于对话框的接收发送数据程序
根据实际需要还可以添加更多控件,诸如串口的打开和关闭按钮,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 PC 串口 通讯 设计