串行异步通信程序设计
- 格式:doc
- 大小:295.50 KB
- 文档页数:32
单片机单片机课程设计-双机串行通信单片机课程设计双机串行通信在当今的电子信息领域,单片机的应用无处不在。
而双机串行通信作为单片机系统中的一个重要环节,为实现设备之间的数据交换和协同工作提供了关键的技术支持。
一、双机串行通信的基本原理双机串行通信是指两个单片机之间通过串行接口进行数据传输的过程。
串行通信相较于并行通信,具有线路简单、成本低、抗干扰能力强等优点。
在串行通信中,数据是一位一位地按顺序传输的。
常见的串行通信协议有 UART(通用异步收发器)、SPI(串行外设接口)和 I2C(内部集成电路)等。
在本次课程设计中,我们主要采用 UART 协议来实现双机串行通信。
UART 协议包括起始位、数据位、奇偶校验位和停止位。
起始位用于标识数据传输的开始,通常为逻辑 0;数据位可以是 5 位、6 位、7 位或 8 位,具体取决于通信双方的约定;奇偶校验位用于检验数据传输的正确性,可选择奇校验、偶校验或无校验;停止位用于标识数据传输的结束,通常为逻辑 1。
二、硬件设计为了实现双机串行通信,我们需要搭建相应的硬件电路。
首先,每个单片机都需要有一个串行通信接口,通常可以使用单片机自带的UART 模块。
在硬件连接方面,我们将两个单片机的发送端(TXD)和接收端(RXD)交叉连接。
即单片机 A 的 TXD 连接到单片机 B 的 RXD,单片机 B 的 TXD 连接到单片机 A 的 RXD。
同时,还需要共地以保证信号的参考电平一致。
此外,为了提高通信的稳定性和可靠性,我们可以在通信线路上添加一些滤波电容和上拉电阻。
三、软件设计软件设计是实现双机串行通信的核心部分。
在本次课程设计中,我们使用 C 语言来编写单片机的程序。
对于发送方单片机,首先需要对 UART 模块进行初始化,设置波特率、数据位、奇偶校验位和停止位等参数。
然后,将要发送的数据放入发送缓冲区,并通过 UART 发送函数将数据一位一位地发送出去。
对于接收方单片机,同样需要对 UART 模块进行初始化。
单片机双机串行实验报告实验目的:通过单片机实现双机串行通信功能,掌握串行通信的原理、方法和程序设计技巧。
实验原理:双机串行通信是指通过串行口将两台单片机连接起来,实现数据的传输和互动。
常用的串行通信方式有同步串行通信和异步串行通信。
异步串行通信是指通过发送和接收数据时的起始位、停止位和校验位进行数据的传输。
而同步串行通信是指通过外部时钟信号进行数据的同步传输。
实验器材:1.两台单片机开发板(MCU7516)2.两个串口线3.两台计算机实验步骤:1.将两台单片机开发板连接起来,通过串口线连接它们的串行口。
2.在两台计算机上分别打开串口调试助手软件,将波特率设置为相同的数值(例如9600)。
3.在编程软件中,编写两个程序分别用于发送数据和接收数据。
4.在发送数据的程序中,首先要设置串口的波特率、数据位、停止位和校验位,并将数据存储在缓冲区中。
然后利用串口发送数据的指令将数据发送出去。
5.在接收数据的程序中,同样要设置串口的参数。
然后使用串口接收数据的指令将接收到的数据存储在缓冲区中,并将其打印出来。
实验结果与分析:经过实验,我们成功地实现了单片机之间的双机串行通信。
发送数据的单片机将数据发送出去后,接收数据的单片机能够正确地接收到数据,并将其打印出来。
实验中需要注意的是,串口的波特率、数据位、停止位和校验位必须设置为相同的数值。
否则,发送数据的单片机和接收数据的单片机无法正常进行通信。
同时,在实验之前,需要了解单片机开发板支持的串口通信相关的指令和函数。
实验总结:通过本次实验,我们深入了解了单片机之间的双机串行通信原理和方法。
掌握了串口的设置和使用方法,以及相关的指令和函数。
在实验中,我们学会了如何通过串行口实现数据的传输和互动,为今后的单片机应用和开发打下了基础。
同时,我们还发现,双机串行通信在实际应用中有着广泛的用途。
例如,可以通过串行通信实现两台计算机之间的数据传输,或者实现单片机与计算机之间的数据收发。
一、实验目的1. 理解串行通讯的基本原理和通信方式。
2. 掌握串行通讯的硬件设备和软件实现方法。
3. 学会使用串行通讯进行数据传输。
4. 通过实验,提高动手能力和分析问题、解决问题的能力。
二、实验原理串行通讯是指用一条数据传输线将数据一位一位地按顺序传送的通信方式。
与并行通讯相比,串行通讯具有线路简单、成本低等优点。
串行通讯的基本原理如下:1. 异步串行通讯:每个字符独立发送,字符间有时间间隔,不需要同步信号。
每个字符由起始位、数据位、奇偶校验位和停止位组成。
2. 同步串行通讯:数据块作为一个整体发送,需要同步信号。
同步串行通讯分为两种方式:面向字符方式和面向比特方式。
三、实验设备1. 计算机:一台2. 串行通讯设备:串行数据线、串行接口卡、串口调试助手等3. 单片机实验平台:一台4. 数码管显示模块:一个四、实验内容1. 异步串行通讯实验(1)硬件连接:将计算机的串口与单片机实验平台的串行接口连接。
(2)软件设计:编写程序,实现单片机向计算机发送数据,计算机接收数据并显示在屏幕上。
(3)实验步骤:a. 设置串行通信参数:波特率、数据位、停止位、奇偶校验位等。
b. 编写发送程序,实现单片机向计算机发送数据。
c. 编写接收程序,实现计算机接收数据并显示在屏幕上。
2. 同步串行通讯实验(1)硬件连接:与异步串行通讯实验相同。
(2)软件设计:编写程序,实现单片机向计算机发送数据块,计算机接收数据块并显示在屏幕上。
(3)实验步骤:a. 设置串行通信参数:波特率、数据位、停止位、奇偶校验位等。
b. 编写发送程序,实现单片机向计算机发送数据块。
c. 编写接收程序,实现计算机接收数据块并显示在屏幕上。
3. 双机通讯实验(1)硬件连接:将两台单片机实验平台通过串行数据线连接。
(2)软件设计:编写程序,实现两台单片机之间相互发送和接收数据。
(3)实验步骤:a. 设置串行通信参数:波特率、数据位、停止位、奇偶校验位等。
UART控制器设计UART(通用异步收发传输)控制器是一种常见的串行通信接口,它被广泛应用于微控制器、传感器、通信模块等电子设备中。
UART控制器通过将并行数据转换为串行数据进行传输,实现了设备之间的串行通信。
本文将对UART控制器的设计进行详细介绍,包括其工作原理、主要功能、硬件设计和软件设计。
一、工作原理:1.发送数据时,UART控制器将要发送的数据按照指定格式进行编码,包括起始位、数据位、校验位和停止位等。
2.编码后的数据通过串口线发送至接收设备。
3.接收设备接收到数据后,解码数据,恢复为原始的并行数据。
二、主要功能:1.数据发送:用户通过将待发送的数据写入发送缓冲区,UART控制器将缓冲区中的数据按照指定格式进行编码,并通过串口线发送至接收设备。
2.数据接收:UART控制器从接收缓冲区中获取接收到的数据,并将其解码,恢复为原始的并行数据,供用户使用。
三、硬件设计:1.时钟控制:UART控制器需要一个时钟源,用来同步发送和接收数据。
时钟源可以是外部晶体振荡器或者其他可靠的时钟信号。
2.发送电路:发送电路包括发送缓冲区、发送数据编码器和串口线驱动电路。
发送缓冲区用来存储待发送的数据,发送数据编码器将待发送的数据按照指定格式进行编码,串口线驱动电路将编码后的数据通过串口线发送至接收设备。
3.接收电路:接收电路包括接收缓冲区、接收数据解码器和串口线接收电路。
接收缓冲区用来存储接收到的数据,接收数据解码器将接收到的数据解码,并恢复为原始的并行数据,供用户使用。
串口线接收电路用来接收串口线上的数据,并将其输入到接收缓冲区。
四、软件设计:1.数据的发送和接收:用户可以通过写入发送缓冲区实现数据的发送,也可以通过读取接收缓冲区实现数据的接收。
发送数据编码器和接收数据解码器的设置需要在软件中进行。
2.中断处理:UART控制器可以使用中断机制进行数据的发送和接收。
在发送和接收缓冲区有数据时,可以产生相应的中断请求,软件在中断服务程序中进行数据的发送和接收。
一、实验目的1. 理解串行通信的基本原理和概念;2. 掌握串行通信的常用接口和协议;3. 学会使用串行通信进行数据传输;4. 熟悉串行通信在嵌入式系统中的应用。
二、实验原理串行通信是一种数据传输方式,通过一根或多根数据线,将数据一位一位地按顺序传送。
与并行通信相比,串行通信在传输速度和成本上具有优势,广泛应用于嵌入式系统、工业控制、远程通信等领域。
串行通信的基本原理如下:1. 数据格式:串行通信中,数据以字节为单位进行传输,每个字节由起始位、数据位、校验位和停止位组成。
2. 通信方式:串行通信主要有同步通信和异步通信两种方式。
a. 同步通信:通信双方使用统一的时钟信号进行数据传输,数据在传输过程中保持同步。
b. 异步通信:通信双方使用不同的时钟信号进行数据传输,数据在传输过程中不保持同步。
3. 串行通信接口:常用的串行通信接口有RS-232、RS-485、USB等。
三、实验设备1. 单片机开发板:STC89C52;2. 串口通信模块:MAX232;3. 串口通信线;4. 电脑;5. 串口调试助手。
四、实验步骤1. 连接电路:将单片机开发板、串口通信模块和电脑通过串口通信线连接起来。
2. 初始化单片机串口:设置单片机串口的工作方式、波特率、校验位和停止位等参数。
3. 编写串口发送程序:在单片机上编写程序,实现数据的串行发送。
4. 编写串口接收程序:在单片机上编写程序,实现数据的串行接收。
5. 使用串口调试助手进行测试:在电脑上打开串口调试助手,设置相应的通信参数,发送和接收数据。
五、实验结果与分析1. 实验结果:通过串口调试助手,成功实现了单片机与电脑之间的数据传输。
2. 分析:a. 在初始化单片机串口时,设置了正确的波特率、校验位和停止位等参数,保证了数据的正确传输。
b. 在编写串口发送程序时,正确地实现了数据的串行发送。
c. 在编写串口接收程序时,正确地实现了数据的串行接收。
六、实验总结1. 通过本次实验,掌握了串行通信的基本原理和概念;2. 学会了使用串行通信进行数据传输;3. 熟悉了串行通信在嵌入式系统中的应用。
*******************实践教学*******************兰州理工大学计算机与通信学院2014年秋季学期《通信系统综合训练》课程设计题目:串行异步通信程序设计专业班级:通信工程(1)班姓名:李银环学号: 11250134指导教师:王惠琴成绩:摘要在Windows环境下实现通信的方法主要有利用MSComm控件和直接用Windows API编程,软件采用Microsoft Visual C++ 6.0,利用MSComm控件编程相对来说更简单一些,而直接使用Windows API编程更灵活一些。
本次课程设计分析了串行异步通信的基本原理,在VC++6.0的环境下利用MSComm控件实现了两个PC机的COM口间的数据发送和接收。
本文通过对COM1口进行初始化编程,以及对建立的工程中的每个对话框和按钮分别进行编程和设置,成功的实现了利用PC机的两个COM口进行异步通信,并能根据设置调整异步传行通信参数。
关键词:VC++6.0;MSComm控件;串行异步通信目录前言随着现代信息技术的发展以及计算机网络的广泛应用,计算机通信技术已经日趋成熟,串口通信作为一种灵活、方便、可靠的通信方式,被广泛应用于工业控制中。
同时串行通信还应用于交通控制、分布数据采集系统、通信距离扩展、电力系统数据采集与控制系统、高速公路收费系统、远程控制、保密通信系统和教学实验等等。
在数据通信、计算机网络以及工业上的分布式控制系统中,经常需要采用串行通信来达到远程信息交换的目的。
当控制计算机与各数控机床相距较远时,一般采用串行通信方式而不采用并行通信方式。
这是因为并行通信系统的造价较高、众多的连线不仅容易引入干扰,也容易发生线路故障。
串行通信由于接线少、成本低,在数据采集和控制系统中得到了广泛的应用,控制系统中常用的串行通信一般采用RS-232串行总线标准,RS-232是PC机与通信工业中应用最广泛的一种串行接口。
WINDOWS下双机点到点的串行通信系统是一个典型的通信系统,它是我们为了实现计算机底层的工作,以及为了用户更好地和系统能够直接相连而提出来的。
经过分析我使用了RS-232C为接口线路以及Microsoft公司的Visual C++ 6.0作为开发工具,利用其提供的各种面向对象的开发工具来开发的系统。
论述了采用自顶向下的设计方法,模块化设计思路,以及总体设计编码和调试,其开发主要包括数据的发送与接收等方面。
在本次课程设计中,讨论了使用VC++的开发环境实现两台PC机间的串口通信。
就是通过一个MSComm控件,用一个RS-232串口线将两台机子间的串口连接起来,从而进行数据收发。
而使用WinAPI进行串口通信不像使用MSComm控件那么容易,需要设置多个参数。
第1章串行异步通信基本原理1.1 串行通信协议串行传输可采用以下两种方法:异步传输和同步传输。
1.1.1 异步传输协议在异步传输方式中,数据传输单位是字符。
在通信的数据流中,字符间异步,字符内部各位间同步。
异步通信方式的“异步”主要体现在字符与字符之间通信没有严格的定时要求。
异步传输中,字符可以是连续地、一个个地发送,也可以是不连续地、随机地进行单独发送。
在一个字符格式的停止位之后,立即发送下一个字符的起始位,开始一个新的字符的传输,这叫做连续的串行数据发送,即帧与帧之间是连续的。
断续的串行数据传送是指在一帧结束之后维持数据线的“空闲”状态,新的起始位可在任何时刻开始。
一旦传送开始,组成这个字符的各个数据位将被连续发送,并且每个数据位持续的时间是相等的。
接收端根据这个特点与数据发送端保持同步,从而正确地恢复数据。
收/发双方则以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。
起止式异步协议的特点是一个字符一个字符传输,并且传送一个字符总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。
每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身有5~7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位,或意味半,或二位停止位,停止位后面是不定长度的空闲位。
停止位和空闲位都规定为高电平(逻辑值),这样就保证起始位开始处一定有一个下跳沿。
异步串行通信的可靠性高,但由于要在每个字符的前后加上起始位和停止位这样一些附加位,使得传输效率变低了,只有约80%。
因此,起止协议一般用在数据速率较慢的场合(小于19.2kbit/s)。
在高速传送时,一般要采用同步协议。
1.1.2 同步传输协议在同步传输方式中,以帧为数据传输单位,每个帧中含有多个字符代码,而且字符代码与字符代码之间没有间隙以及起始位和停止位。
和异步传输相比,数据传输单位的加长容易引起时钟漂移。
为了保证接收端能够正确地区分数据流中的每个数据位,收发双方必须通过某种方法建立起同步的时钟。
可以在发送器和接收器之间提供一条独立的时钟线路,由线路的一端(发送器或者接收器)定期地在每个比特时间中向线路发送一个短脉冲信号,另一端则将这些有规律的脉冲作为时钟。
这种技术在短距离传输时表现良好,但在长距离传输中,定时脉冲可能会和信息信号一样受到破坏,从而出现定时误差。
另一种方法是通过采用嵌有时钟信息的数据编码位向接收端提供同步信息。
(1)面向字符的同步协议这种协议的特点是一次传送由若干个字符组成的数据块,而不是只传送一个字符,并规定了10个字符作为这个数据块的开头与结束标志以及整个传输过程的控制信息,它们也叫做通信控制字。
由于被传送的数据块是由字符组成,故被称作面向字符的协议。
(2)面向比特的同步协议该协议的特点是所传输的一帧数据可以是任意位,而且它是靠约定的位组合模式,而不是靠特定字符来标志帧的开始和结束,故称“面向比特”的协议。
1.2 串口通信的基本概念1.2.1 串行通信串行通信数据传送的特点是:数据传送按位顺序进行,最少只需要一根传输线即可完成,节省传输线。
与并行通信相比,串行通信还有较为显著的优点:传输距离长,可以从几米到几千米;在长距离内串行数据传送速率会比并行数据传送速率快;串行通信的通信时钟频率容易提高;串行通信的抗干扰能力十分强,其信号间的互相干扰完全可以忽略。
但是串行通信传送速度比并行通信慢得多,并行通信时间为T,则串行时间为NT。
1.2.2 串行通信的工作模式串行数据通信的基础是单线传输信息,数据通常是在两个站(点对点)之间进行传送,按照数据流的方向可分成3种传送模式:单工形式、半双工形式和全双工形式。
(1)单工形式:在单工形式中数据传送是单向的。
通信双方中,一方固定为发送端,另一方则固定为接收端。
信息只能沿一个方向传送,使用一根传输线,例如,计算机与打印机之间的通信是单工形式,因为只有计算机向打印机传送数据,而没有相反的数据传送。
还有在某些通信信道中,如单工无线发送等。
(2)半双工形式:半双工通信使用同一根传输线,既可发送数据又可接收数据,但不能同时发送和接收。
在任何时刻只能由其中的一方发送数据,另一方接收数据。
因此半双工形式既可以使用一条数据线,也可以使用两条数据线。
半双工通信中每端需有一个收/发切换电子开关,通过切换来决定数据向哪个方向传输。
因为有切换,所以会产生时间延迟。
但是对于像打印机这样单方向传输的外围设备,用半双工方式就能满足要求了,不必采用全双工方式,可节省一根传输线。
(3)全双工形式:全双工数据通信分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作,在全双工方式中,每一端都有发送器和接收器,有两条传送线,可在交互式应用和远程监控系统中使用,信息传输效率较高。
1.3 RS-232简介在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯.本次课程设计采用RS-232接口。
RS-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通讯接口. ("RS-232-C"中的"-C"只不过表示RS-232的版本,所以与"RS-232"简称是一样的)它是在1970年由美国电子工业协会(EIA)联合贝尔系统,调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准.它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定采用一个25个脚的DB-25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定.后来IBM的PC机将RS232简化成了DB-9连接器,从而成为事实标准.而工业控制的RS-232口一般只使用RXD,TXD,GND三条线.它适合于数据传输速率在0~20000b/s范围内的通信。
这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。
在TxD和RxD上:逻辑1(MARK)=-3V~-15V,逻辑0(SPACE)=+3~+15V,在RTS、CTS、DSR、DTR和DCD等控制线上:信号有效(接通,ON状态,正电压)=+3V~+15V信号无效(断开,OFF状态,负电压)=-3V~-15RS232的逻辑电平与TTL以高低电平表示逻辑状态的规定不同。
因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。
实现这种变换的方法可用分立元件,也可用集成电路芯片。
目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。
MAX232芯片可完成TTL←→EIA双向电平转换。
第2章 VC++软件简介2.1 VC++6.0简介VC++6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C++语言的要求编写,并且加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。
MFC中封装了大部分Windows API函数和Windows控件,它包含的功能涉及到整个Windows操作系统。
MFC不仅给用户提供了Windows图形环境下应用程序的框架,而且还提供了创建应用程序的组件,这样,开发人员不必从头设计创建和管理一个标准Windows应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。
另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。
因此,使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单。
VC++部分说明如下:(1)LRESULT表示函数返回值为长整数,由系统使用。