当前位置:文档之家› 同步串行通信设计

同步串行通信设计

同步串行通信设计
同步串行通信设计

单片机系统,就是应用单片机作为核心,为围增设一些辅助电路,能够完成一定功能的系统。人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。单片机之间的串行通信,当传输距离小于1.5m时主要采用TTL电平传输;当传输距离在1.5-15m之间时,可以采用RS-232通信协议进行数据传输;当传输距离大于15m而小于1.5km 时,可以采用RS-485通信协议进行数据传输。软件用 Keil 8051编译器,它提供了集成开发环境,包括C编译器、宏汇编、连接器、库管理和仿真调试器。利用Keil C uVision编写的程序可直接调用编译器编译,连接后可直接运行。从而完成51单片机与单片机的串口通信。

关键词:单片机串行通信数据传输

前言 (1)

第一章 :基本原理 (2)

第二章系统分析 (3)

2.1 单片机 (3)

2.2 AT89C51单片机 (3)

2.3 MAX 232 单片机 (4)

2.4 串口通信 (5)

2.5 单片机间接口硬件连接 (7)

第三章系统设计及调试 (9)

3.1 Keil uVision4软件介绍 (9)

3.2 Proteus简介 (10)

3.3 51单片机中断 (10)

3.3.1 中断的概念 (10)

3.4 51单片机定时/计数器0,1 (11)

3.6 硬件设计 (11)

3.7 软件设计 (12)

3.8 调试电路图 (14)

设计总结 (16)

前言

随着网络技术的研究开发,网络技术已经成为计算机应用和社会信息化程度的一个重要标志,而这一切必须具备的前提条件则是数据传输接口.计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。 RS-232-C接口(又称 EIA RS-232-C)是目前最常用的一种串行通讯接口。随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。单片机则具有快速及灵活的控制特点,通过单片机的RS-232串行接口与外部设备进行通信。因此如何实现单片机之间的通讯具有非常重要的现实意义。

MCS单片机具有串行口,利用串行口实现数据通信。根据单片机端口内部的结构特点,这些端口的端口线可以直接相连,从而使两个单片机之间并行通信不用另外的硬件电路设备。设计时,也可以根据不同的使用要求采用不同的并行连接方法。由于计算机与计算机之间的距离可能是近程的(几米之内),也可能是远程的(几百米甚至上千米),那么信息交换的方式可能采用并行通信,也可能采用串行通信;而一般的远程通信需采用串行通信方式。现在单片机与单片机在结构、性能和经济上为实现远程串行通信特别是多机系统提供了很好的条件。本次设计主要是单片机与单片机之间串行通行。

第一章:基本原理

串口通讯,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。单片机有一个全双工的串行通讯口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在传行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口。进行串行通讯时要满足一定的条件,比如计算机的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。

本文在研究传统的单片机通信系统的基础上,设计了一种基于MCS-51系列单片机AT89S51的多机通信系统。初始时,1号单片机为主机。主机通过串口向从单片机发送指定格式的数据,从单片机收数据并作出响应,主机通过液晶屏显示通信信息,从机通过LED显示通信状态。主机通信结束即转为从机,其他单片机可置为主机,获得总线控制权。1号单片机通过矩阵键盘控制通信过程与显示,2号单片机通过独立按键控制通信状态与主从机切换。

在此通信系统中,各个单片机具有平等的权限。仅在初始时,1号单片机被默认置为主机,若不需使2号单片机变成主机,则此通信系统可以作为主从式通信系统。任何时刻,系统只有一片单片机作为主机,其他均为从机。主机发送的信息可以传送到指定从机,各从机之间也不能直接通信。主机发起通信,从机接收到自己的单片机号后,开始与主机通信。

第二章系统分析

2.1 单片机

2.1.1 单片机定义

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。

2.1.2 单片机的特点

单片机主要有如下特点:

1.有优异的性能价格比。

2.集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。

3.制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。

4.低功耗、低电压,便于生产便携式产品。

5.外部总线增加了I2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。

6.单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。

2.2 AT89C51单片机

AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

2.3 MAX 232 单片机

2.3.1 MAX232定义

MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片, 由于标准规定, RS232 的电平采用±12V,与89C51单片机串行口的TTL电平不一致。因此,采用集成电平转换芯片MAX232进行电平转换成+5v单电源供电,方能实现电压一致性驱动电路。

该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。

2.3.2主要特点:

1、符合所有的RS-232技术标准

2、只需要单一 +5V电源供电

3、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V-

4、功耗低,典型供电电流5mA

5、内部集成2个RS-232驱动器

6、内部集成两个RS-232接收器

2.3.3 RS232串口标准:

串行通信接口标准经过使用和发展,目前已经有多种;但都是在RS232标准的基础上经过改进而形成的。RS-232标准最初是由美国EIA和BELL公司一起开发并于1969年公布的通信进议,而至1997年,远程工业协会(TIA)又发布了最新的一个版本,命名为TIA/EIA-232-F。而ITF(国际电信联盟)和CCITT(国际电话与电报顾问委员会)发布了一个类似的标准——V.28。这些标准都对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通信设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用,不仅被内置于每一台计算机,同时也被内置于从微控制器到主机的多种类型的计算机及其相连接的设备;也就是常说的RS232端口。

PC机的RS232端口与一般单片机上的UART接口从数据收发的时序上看,是一样的协议,不同的是两者用以表达逻辑“1”和“0”的规定是不一样的,即电平是不兼容的。RS232端口用正负电压来表示逻辑状态,与TTL(单片机的UART接口电平)以高低电平表示逻辑状态的规定是不同的。因此,为了能够同计算机接口和终端的TTL器件连接,必需进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。MAX232芯片就是目前应用较为广泛的电平转换器件,它可以实现TTL到EIA双向电平转换;该芯片支持两路串行异步通讯,RIN1为第一路输入,ROUT1为第一路输出;RIN2为第二路输入管脚,ROUT2为第二路输出。

2.4 串口通信

2.4.1 单片机的串行接口的数据传输方式

1、与外界的信息交换称为通讯。基本的通讯方式有并行通讯和串行通讯两种。

并行通信:一条信息的各位数据被同时传送的通讯方式称为并行通信。并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。

串行通信:一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据按位顺序传送,最少仅需一根传输线即可完成,成本低但传送速度慢。串行通讯的距离可以从几米到几千米。

2、根据信息的传送方向,串行通信可以进一步分为单工、半双工和全双工三种。

单工通信:信息只能单向传送为单工;

半双工通信:信息能双向传送但不能同时双向传送称为半双工;

全双工通信:信息能够同时双向传送则称为全双工。

3、串行通信又分为异步通信和同步通信两种方式。在单片机中,主要使用异步通信方式。

异步通信:在异步通信中,数据是一帧一帧(包含一个字符代码或一字节数据)传送的,即异步串行通信一次传送一个完整字符.它用一个起始位表示字符的开始,用停止位表示字符的结束。

1)字符帧:字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等4部分组成。

起始位:对应逻辑0(space)状态。发送器通过发送起始位开始一帧字符的传送。

数据位:起始位之后传送数据位。数据位中低位在前,高位在后。数据位可以是5、6、7、8位。

奇偶校验位:奇偶校验位实际上是传送的附加位,若该位用于用于奇偶校验,可校检串行传送的正确性。奇偶校验位的设置与否及校验方式(奇校验还是偶校验)由用户需要确定。

停止位:用逻辑1(mark)表示。停止位标志一个字符传送的结束。停止位可以是1、1.5或2位。

2)波特率:串行通信中用每秒传送二进制数据位的数量表示传送速率,称为波特率。

1波特=1bps(位/秒) (2-1) 例如数据传送速率是240帧/秒,每帧由一位起始位、八位数据位和一位停止位组成,则传送速率为: 10×240=2400位/ 秒=2400波特 (2-2) 数据异步传输的特点:数据在线路上的传输不连续,传送时,字符间隔不固定,各个字符可以是连续传送,也可以是间断传送,这完全取决于通信协议或双方的约定。间断传送时,在停止位后,线路上自动保持为“1”,表示通信总线“空闲”。

在使用数据异步传输时,数据传输的效率并不是很高,当采用一位起始位,8位数据位,1位奇偶位和1位停止位时,有效数据只占到了一次一个字符的73%,如果数据位减少,则传输的效率更低。但这种方式也有优点:硬件电路简单,方便实现各种通信标准的变换。

在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。这要根据系统的运作特点,确定通信的频率范围。然后考虑通信时钟误差。使用同一晶振频率在选择不同的通信速率时通信时钟误差会有很大差别。为了通信的稳定,我们应该尽量选择时钟误差最小的频率进行通信。

同步通信:是指通信双方同时使用两条通信线,其中一条用于产生时钟,并且要求发送和接收的双方必须保持完全的同步(通常情况下,时钟信号由发送的一端提供),另一条用于传送数据,如果需要同时双向数据传输,则需要再添加两条数据线。

数据格式:同步传输时,数据是以数据块的形式进行传输的,每个数据块包括同步字符、数据和校验字符。

在同步通信中,在数据开始传送前用同步字符来指示(常约定1~2个),并由时钟来实现发送端和接收端同步,即检测到规定的同步字符后,下面就连续按顺序传送数据,直到通信告一段落。同步传送时,字符与字符之间没有间隙,也没有起始位和停止位,仅在数据块开始时用同步字符SYNC来指示.在同步传送时,要求用时钟来实现发送端与接收端之间的同步.为了保证接收正确无误,发送方除了传送数据外,还要把时钟信号同时传送.同步传送的优点

是可以提高传送速率(达56kb/s或更高),但硬件比较复杂。

2.4.2 通信协议的使用

通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。假定我们需要在PC机与单片机之间进行通信,在双方程式设计过程中,有如下约定:

0xA1:单片机读取P0端口数据,并将读取数据返回PC机;

0xA2:单片机从PC机接收一段控制数据;

0xA3:单片机操作成功信息。

在系统工作过程中,单片机接收到PC机数据信息后,便查找协议,完成相应的操作。当单片机接收到0xA1时,读取P0端口数据,并将读取数据返回PC机;当单片机接收到0xA2时,单片机等待从PC机接收一段控制数据;当PC机接收到0xA3时,就表明单片机操作已经成功。

2.4.3 串行通信工作方式

8051单片机的串行通信共有四种工作方式:

1.串行工作方式0

串行口为同步移位寄存器方式,波特率固定为f

/12。该方式主要用于I/O口扩展等,

晶振

方式0传送数据时,串行数据由RXD(P3.0)端输入或输出,而TXD(P3.1)此时仅作为同步移位脉冲发生器发出移位脉冲。

串行数据的发送和接收以8位为一帧,不设起始位和停止位。

2.串行工作方式1

(1)方式1传送的数据格式

方式1传送一帧为10位的串行数据,包括1位起始位,8位数据位和1位停止位。

(2)方式1数据的发送和接收

方式1的数据发送由一条写入单片机发送寄存器SBUF指令启动。8位数据在串行口由硬件自动加入起始位和停止位组成完整的帧格式。在内部移位脉冲作用下,由TXD端串行输出。发送完一帧数据后,使TXD输出端维持”1”状态并置使TI标志位置1以通知CPU发送下一个字符。

接收数据由接收单片机SCON中的REN置1开始,随后串行口不断采样RXD端电平,当采样到RXD端电平从1向0跳变时,就认定是接收信号并开始接收从RXD端输入的数据,并送入内部接收寄存器SBUF中,直到停止位到来之后,并使RI位置1,通知CPU从SBUF中取走接收到的一帧字符。

方式1传送数据时发送前应先清TI,接收前应先清RI。

3.串行工作方式2

方式2是11位为一帧的串行通信方式,即1位始位,9位数据位和1位停止位。其中第9位数据既可作奇偶校验位,也可作控制位使用。

附加第9位(D8)由软件置1或清零。方式2发送时单片机自动将SBUF中8位数据加上SCON中TB8作为第9位数据进行发送。接收时,单片机将接收到的前8位数据送入SBUF,而在SCON中RB8位中存放第9位数据。

4.串行工作方式3

方式3通信过程与方式2完全相同。区别仅在于方式3的波特率可通过设置定时的工作方式和初值来设定(与串行工作方式1波特率设定方法相同)。

顺便指出,由于方式1和方式3的波特率设置较为灵活,在单片机串行通信中得到广泛应用。

2.5 单片机间接口硬件连接

51单片机有一个全双工的串行通讯口,所以单片机和单片机之间可以方便地进行串口通讯。单片机之间的串行通信,当传输距离小于1.5m时主要采用TTL电平传输;当传输距离在

1.5-15m之间时,可以采用RS-232通信协议进行数据传输;当传输距离大于15m而小于1.5km 时,可以采用RS-485通信协议进行数据传输。

由于RS-485与TTL电平传输只是硬件电路不同,基于RS-232电器特性的限制,只能实现一点对一点通信(即单机通信),而TTL电平传输既可以实现单机通信,又可以实现一点对多点通信(多级通信)。

假设两个单片机系统为A、B,其中A系统每隔1s向B系统发送一次数据,数据长度为10个字节,其中第一个字节每隔1s增加一个数值,B系统在接收到10个字节的数据后,将第一个字节的数据送到8个发光二极管进行显示。

现从MAX232芯片中两路发送接收中任选一路作为接口,应注意发送、接收的引脚要对应。

第三章系统设计及调试

3.1 Keil uVision4软件介绍

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。Keil 的网站虽然没有中文版本,但是Keil 软件却被中国80%的硬件工程师使用,但凡与电子相关的专业,都会开始从单片机和计算机编程开始学习,而学习单片机自然会用到Keil 软件。国内由米尔科技、亿道电子、英倍特提供Keil 的销售和技术支持服务,他们是ARM公司合作伙伴,也是国内领先的嵌入式解决方案提供商

3.1.1 系统概述

Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil的优势。下面详细介绍Keil C51开发系统各部分功能和使用。

3.1.2 Keil C51单片机软件开发系统的整体结构

C51工具包的整体结构,μVision与Ishell分别是C51 for Windows 和for Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.obj)。目标文件可由LIB51 创建生成库文件,也可以与库文件一起经L51 连接定位生成绝对目标文件(.abs)。abs文件由OH51 转换成标准的hex 文件,以供调试器dScope51 或tScope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

3.1.3 使用独立的Keil仿真器时,注意事项

*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。

*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。

* 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。

3.2 Proteus简介

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

3.3 51单片机中断

3.3.1 中断的概念

(1)中断发生:当系统正在处理A事件的时候,突然发生了比较紧急的B事件,要求系统迅速做出处理。

(2)中断响应和处理:系统暂停当前A事件的处理(保存状态),转去处理B事件。

(3)中断返回:事件B处理完毕,系统返回被事件B打断的地方继续处理A事件。

以上三个完整的过程称为中断。

3.3.2 单片机中断有关的寄存器

(1)IE(Interrupt Enable Register)寄存器

(2)IP(Interrupt Priority Register)寄存器

80C51单片机有两个中断优先级,可实现中断2级嵌套。

80C52单片机有4个中断优先级,可实现中断4级嵌套。

(3)TCON(Timer/Counter0,1 Control)

(4)SCON(Serial Port Control)

3.3.3 Keil中C语言中断服务函数的形式:

Void fun(void)interrupt n [using n]

{

中断处理程序……

}

3.3.4 单片机外部中断

STC89C51单片机包括2个外部中断源:INTO(与P3.2端口复用)和INT1(与P3.3端

口复用)。当有外部事件变化时(低电平或下降沿)触发相应的中断。

3.4 51单片机定时/计数器0,1

在实际的测控系统中,常常需要定时控制或者对外部事件进行计数,定时/计数器可以完成这样的功能。

51单片机内部一般存在2-3个定时/计数器,每个定时/计数器都是16位的可编程定时/计数器。可编程定时/计数器的工作方式、定时时长、量程、启动方式等都是由相应指令控制的。

3.4.1 定时/计数器0,1的工作原理

51单片机的定时/计数器实际上是加1计数器。

由单片机外部时钟信号进行的加1操作称为计数器。计数器的作用是对外部脉冲的个数进行计数,外部脉冲的下降沿触发计数器进行计数。应当注意的是,外部脉冲的持续时间应该要大于一个机器周期的时长,否则计数器将不能精确记录外部脉冲的个数。

由于51单片机的外部晶振频率精确固定,其内部机器周期也是精确固定的,由51单片机内部时钟进行的加1操作称为定时器。定时器的作用是对某个操作过程进行定时或者计时。一般说来,定时器的加1频率等于单片机一个机器周期的频率,即在每个机器周期单片机定时器自动加1。

3.4.2 定时/计数器的设定及使用

51单片机定时器的设定及使用流程为:

(1)设定定时/计数器的工作模式(M0,M1的设定)

(2)计数初值的初始化(THx,TLx的设定)。

(3)中断模式则开中断。

(4)启动定时/计数器,TRx=1。

3.6 硬件设计

最终设计电路如下图3所示,发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,通过P1口在数码管上显示接收的信息。

图3.1整体电路图

3.7 软件设计

通过通信协议进行发送接收,甲机先送CDH给乙机,当乙机接收到CDH后,向甲机回答DCH。甲机收到DCH后就把数码表TAB[16]中的10个数据送给乙机,并发送检验和。乙机收到16个数据并计算接收到数据的检验和,与甲机发送来的检验和进行比较,若检验和相同则发送00H给甲机;否则发送FFH给甲机,重新接受。甲机收到16个正确数据后送到一个数码管显示。

3.7.1串行通信软件实现

(1)串行口工作于方式3;用定时器1产生4800bit/s的波特率,晶振频率为 11.0592MHZ。(2)功能:将本机ROM中数码表TAB[16]中的16个数发送到从机,并保存在从机内部ROM中,从机收到这16个数据后送到一个数码管循环显示。

(3)通信协议:主机首先发送连络信号(CDH),从机接收到之后返回一个连络信号(DCH)表示从机已准备好接收。

(4)通信过程使用第九位发送奇偶校验位。

(5)从机接收到一个数据后,立即进行奇偶校验,若数据没有错误,则返回00H,否则返回FFH。

(6)主机发送一个数据后,等待从机返回数据;若为00H,则继续发送下一个数据,若为FFH,则重新发送数据。

3.7.2程序流程图

(1)甲机程序流程图

图3.2 甲机程序流程图(2)乙机程序流程图

图3.3 已机程序流程图

3.8 调试电路图

在protues上进行仿真实验。首先使用KeilC将编写完成的程序编译生成HEX文件,将HEX文件烧录到两片单片机中,进行仿真实验,结果如下图所示,可以看到,接收端已将接受到的数据完整的显示了出来。

通过通信协议进行发送接收,甲机先送CDH给乙机,当乙机接收到CDH后,向甲机回答DCH。甲机收到DCH后就把数码表TAB[16]中的10个数据送给乙机,并发送检验和。乙机收到16个数据并计算接收到数据的检验和,与甲机发送来的检验和进行比较,若检验和相同则发送00H给甲机;否则发送FFH给甲机,重新接受。甲机收到16个正确数据后送到一个数码管显示。

参考文献

[1] 李朝青.单片机与PC机网络通信技术.北京:北京航空航天大学出版社,2007

[2]官波、容玉平. AT89C51的扩展串口与PC机间的通讯. 2001, (3) : 61~63

[3]马宏忠. 多台单片机与IBM - PC机间的快速通讯.电气自动化, (4) : 36~38

[4]朱明宇,武峰. 8031单片机主从式数据采集系统设计, 1997, (4) : 9~12

[5]李华. MCS51系列单片机实用接口技术[M]. 北京:北京航空航天大学出版社, 1993

[6]张毅坤. 单片微型计算机原理及应用,西安电子科技大学出版社 1998

[7]余锡存曹国华.单片机原理及接口技术[M].陕西:西安电子科技大学出版社,2000.7

[8]雷丽文等.微机原理与接口技术[M].北京:电子工业出版社,1997.2

设计总结

为期两周的课设结束了,通过这次设计,进一步加深了对单片机的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及定时器的设定,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。在调试仿真时,也遇到了一点困难,想要的结果总是不能正确的显示,后来,在多次的调试之后,才发现是因为输入的定时器时间太长了。经过屡次调试,终于找到了比较合适的输入数值,仿真成功了。其次,在连接各个模块编译程序的时候一定要注意各个变量的定义和功能,因为每个定义和功能不一样的,会影响实验结果,再者就是程序需规范化,语法不能出错,编译才能通过,试验才能成功。

通过本次课程设计的综合训练,加深了我对所学过的各种理论知识的认识和理解,并在一定程度上掌握并会运用。我还学会了把学到的知识用于解决实际问题,培养、加强锻炼了我的动手实践能力。更为难得的是,在这次训练过程中,屡屡碰见一些问题,在解决这些问题的过程中,不断加强了我对单片机的理解。对于一些自己不清楚,不明白但平时又很难发现的知识点有了一次全面的巩固与复习。

串行通信技术-模拟信号转换接口

微机原理与应用实验报告6 实验9 串行通信技术 实验10A 模拟信号转换接口 实验报告

实验九串行通信技术 一、实验目的 1. 了解异步串行通信原理; 2. 掌握MSP430异步串行通信模块及其编程方法; 二、实验任务 1. 了解MSP430G2553实验板USB转串口的通信功能,掌握串口助手的使用 (1)利用PC机的串口助手程序控制串口,实现串口的自发自收功能 为实现PC串口的自发自收功能,须现将实验板上的扩展板去下,并将单片机板上的BRXD和BTXD用杜邦线进行短接,连接图如下所示: 由此可以实现PC串口的自收自发功能。 (2)思考题:异步串行通信接口的收/发双方是怎么建立起通信的 首先在异步通信中,要求接收方和发送方具有相同的通信参数,即起始位、停止位、波特率等等。在满足上面条件的情况下,发送方对于每一帧数据按照起始位数据位停止位的顺序进行发送,而接收方则一直处于接受状态,当检测到起始位低电平时,看是采集接下来发送方发送过来的数据,这样一帧数据(即一个字符)传送完毕,然后进行下一帧数据的接受。这样两者之间就建立起了通信。 2. 查询方式控制单片机通过板载USB转串口与PC机实现串行通信 (1)硬件连接图

(2)C语言程序 采用SMCLK=1.0MHz时,程序如下:

其中SMCLK=1MHz,波特率采用的是9600,采用低频波特方式,则N=1000000/9600=104.1666…,故UCA0BR1=0,UCA0BR0=104,UCBRS=1; 当采用外部晶振时,时钟采用默认设置即可,程序如下:

也是采用了低频波特率方式,所以关于波特率设置的相关计算和上面是一样的。 (3)思考:如果在两个单片机之间进行串行通信,应该如何设计连线和编程? 由于在上面的连线中将单片机上的P1.2和BRXD相连,P1.1和BTXD相连,所以若要在两个单片机之间进行通信,首先应该将两个单片机的P1.2和P1.1交叉相连,并根据上面的程序进行相同的关于端口和波特率相关的设置即可实现两个单片机之间的通信。 3. (提高)利用PC机RS232通信接口与单片机之间完成串行通信 (1)硬件连接图 在实验时,采用了将PC机的串口com1直接连接至MSP430F149的孔型D9连接器上,G2553单片机的输出引脚P1.1和P1.2分别与F149单片机上的URXD1和UTXD1相连接,连接图如下所示:

单片机双机之间的串行通信设计

专业方向课程设计报告 题目:单片机双机之间的串行通信设计

单片机双机之间的串行通信设计 一.设计要求: 两片单片机利用串行口进行串行通信:串行通信的波特率可从键盘进行设定,可选的波特率为1200、2400、4800和9600bit/s。 二、方案论证: 方案一:以两片51单片机作为通信部件,以4*4矩阵键盘作为数据输入接口,通过16个不同键值输入不同的信息,按照51单片机的方式3进行串口通信,从机采用中断

方式接收信息并按照通信协议改变波特率或者用I/O口输出、CD4511译码、数码管显示相关数据,整个系统的软件部分采用C语言编写。 方案二:整个系统的硬件设计与方案一样,但是通信方式采用方式一进行通信,主从机之间的访问采用查询方式,数据输出直接由单片机的译码程序输出译码数据,同时软件编写采用汇编语言。 两种方式从设计上来说各有特色,而且两种方式都应该是可行的。方案一中按照方式三通信可以输出九位数据而方式一只能输出八位数据,但就本题的要求来说方式一就可以了。主从机之间的交流采用中断方式是一种高效且保护单片机的选择,但是相比之下本人对查询方式的理解更好一些。数码管的显示若采用CD4511译码则直接输出数据就可以了,但是这样会增加硬件陈本,而且单片机的资源大部分都还闲置着,所以直接编写一段译码程序是比较好的做法。另外在软件编写上,采用C语言在后续设计中对硬件的考虑稍少一些,换言之采用汇编可以使自己对整个通信过程及单片机的部分结构有更清晰地认识所以综合考虑采用方案二。 三、理论设计: 采用AltiumDesigner绘制的原理图(整图)

本系统主要包括五个基本模块:单片机最小系统(包括晶振电路、电源、复位电路及相关设置电路)、4*4矩阵键盘、功能控制电路、数据显示电路、波特率更改指示电路。 本设计的基本思路是通过控制口选择将要实现的功能,然后矩阵键盘输入数据,单片机对数据进行处理(加校验码、设置功能标志位),然后与从机握手,一切就绪之后后就开始发送数据,然后从机对接收数据校验,回发校验结果,主机根据校验结果进行下一步动作,或者重发,或者进入下一 数据的发送过程,然后按照此过程不段循环,直到结束。 晶振电路提供脉冲,加上复位电路,将 EA接入高电电平选择片内程序存储器。 这是一个单片机能够工作的最低设置。

UART串口通信设计实例

2.5 UART串口通信设计实例(1) 接下来用刚才采用的方法设计一个典型实例。在一般的嵌入式开发和FPGA设计中,串口UART是使用非常频繁的一种调试手段。下面我们将使用Verilog RTL编程设计一个串口收发模块。这个实例虽然简单,但是在后续的调试开发中,串口使用的次数比较多,这里阐明它的设计方案,不仅仅是为了讲解RTL编程,而且为了后续使用兼容ARM9内核实现嵌入式开发。 串口在一般的台式机上都会有。随着笔记本电脑的使用,一般会采用USB转串口的方案虚拟一个串口供笔记本使用。图2-7为UART串口的结构图。串口具有9个引脚,但是真正连接入FPGA开发板的一般只有两个引脚。这两个引脚是:发送引脚TxD和接收引脚RxD。由于是串行发送数据,因此如果开发板发送数据的话,则要通过TxD线1 bit接着1 bit 发送。在接收时,同样通过RxD引脚1 bit接着1 bit接收。 再看看串口发送/接收的数据格式(见图2-8)。在TxD或RxD这样的单线上,是从一个周期的低电平开始,以一个周期的高电平结束的。它中间包含8个周期的数据位和一个周期针对8位数据的奇偶校验位。每次传送一字节数据,它包含的8位是由低位开始传送,最后一位传送的是第7位。

这个设计有两个目的:一是从串口中接收数据,发送到输出端口。接收的时候是串行的,也就是一个接一个的;但是发送到输出端口时,我们希望是8位放在一起,成为并行状态(见图2-10)。我们知道,串口中出现信号,是没有先兆的。如果出现了串行数据,则如何通知到输出端口呢?我们引入“接收有效”端口。“接收有效”端口在一般情况下都是低电平,一旦有数据到来时,它就变成高电平。下一个模块在得知“接收有效”信号为高电平时,它就明白:新到了一个字节的数据,放在“接收字节”端口里面。

微机原理课程设计报告-双机串行通信

河北科技大学 课程设计报告 学生姓名:学号: 专业班级: 课程名称:微型计算机原理及应用技术学年学期:2 0 1 2 —2 0 1 3 学年第一学期 指导教师: 2 0 1 3 年1 月

课程设计成绩评定表

目录 一、设计题目 (1) 二、设计目的 (1) 三、设计原理及方案 (1) 1、8251A的基本性能 (1) 2、8251A的内部结构 (1) 3、8251外部引脚图 (2) 4、8251A的编程 (2) 5、8251A的初始化 (3) 四、实现方法 (5) 1、程序流程图如下: (5) 2、连线图 (5) 3、8251A操作过程流程图 (7) 4、试验程序(见附录) (7) 五、实施结果 (7) 六、改进意见及建议 (7) 七、个人所做贡献 (8) 八、设计体会 (8) 九、同组成员名单 (8) 十、附录 (9)

一、设计题目 双机通过两台试验箱串行通讯 二、设计目的 1、掌握8088/86实验串行口通信的方法。 2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。 3、学习串行口通讯程序编写方法。 三、设计原理及方案 1、8251A的基本性能 8251A是可编程的串行通信接口芯片,基本性能有: (1).两种工作方式:同步方式,异步方式。同步方式下,波特率为064K,异步方式下,波特率为0~19.2K。 (2).同步方式下的格式 每个字符可以用5、6、7或8位来表示,并且内部能自动检测同步字符,从而实现同步。除此之外,8251A也允许同步方式下增加奇/偶校验位进行校验。 (3).异步方式下的格式 每个字符也可以用5、6、7或8位来表示,时钟频率为传输波特率的1、16或64倍,用1位作为奇/偶校验。1个启动位。并能根据编程为每个数据增加1个、1.5个或2个停止位。可以检查假启动位,自动检测和处理终止字符。 (4).全双工的工作方式 (5).提供出错检测 2、8251A的内部结构 发送器由发送缓冲器和发送 控制电路两部分组成。接收器由接 收缓冲器和接收控制电路两部分 组成。数据总线缓冲器,读/写控 制电路,调制解调控制电路。 8251A 内部结构图

串行同步通信

串行接口同步通信协议 [摘要]:接口在微型计算机系统的设计和应用中占有极为重要的地位。在微型计算机系统中,CPU要与存储器和输入/输出设备之间交换信息,这些信息的交换要借助接口来实现。接口是沟通微处理机和外部设备之间的桥梁,它减轻了CPU的负担,使CPU能够充分的发挥任务管理和逻辑判断作用,使CPU和外部设备能更加协调的完成输入/输出工作,从而提高整机的工作效率和系统功能。串行接口是使用串行方式进行数据传输的输入/输出接口,根据在串行通信中数据的定时的不同,串行通信可分为同步通信和异步通信。同步通信中为保证通信的正确,发送装置和接收装置事先必须有一个双方共同遵守的协议,这就是串行接口同步通信协议。 [关键词]:输入/输出接口,串行接口,同步通信,协议,SDLC/HDLC 规程 一、串行接口 在计算机领域内,有两种数据传送方式:串行传送和并行传送。并行数据传送中,数据在多条并行1比特宽的传输线上同时由源传送到目的,这种传送方式也称为比特并行或字节串行。串行数据传送中,数据在单条1比特宽的传输线上,1比特1比特

的按顺序分时传送。 串行通信一般使用在计算机与计算机之间、计算机和远程终端之间、终端与终端之间的通信中,传输距离通常从几米到数千公里。与典型设备相关的串行接口,数据传输的速率每秒在0~2百万比特的范围内。串行传输的速率和距离成反比,数据传输速率和距离的关系如图所示。 串行通信接口的信号电平常采用RS-232-C信号电平或20mA 电流环路操作方法。 串行数据的发送由发送时钟控制。数据发送过程:把并行的数据序列送入移位寄存器,然后通过移位寄存器由发送时钟触发进行移位输出,数据位的时间间隔可由发送时钟周期来划分。发送时钟、待发送的二进制数据和出现在传输线上的信号波形三者的关系如图所示。

双机串行通信的设计与实现

双机串行通信的设计与实现 一、设计要求 1.单机自发自收串行通信。接收键入字符,从8251A的发送端发送,与同一个8251A的接收端接收,然后在屏幕上显示出来。 2.双机串行通信,在一台PC机键入字符,从8251A的发送端发送给另一台PC机,另一台PC机的8251A的接收端接收,然后在屏幕上显示出来。 二、所用设备 IBM-PC机两台(串行通信接口8251A两片,串行发送器MC1488和串行接收器MC1489各两片,定时器/计数器8253,终端控制器8259等),串口线一根 串行直连电缆用于两台台电脑通过串行口直接相连,电缆两 端的插头都是9 针的母插头: 三、硬件方案 1.设计思想 计算机传输数据有并行和串行两种模式。在并行数据传输方式中,使用8条或更多的导线来传送数据,虽然并行传送方式的速度很快,但由于信号的衰减或失真等原因,并行传输的距离不能太长,在串行通信方式中,通信接口每次由CPU得到8位的数据,然后串行的通过一条线路,每次发送一位将该数据放送出去。 串行通信采用两种方式:同步方式和异步方式。同步传输数据时,一次传送一个字节,而异步传输数据是一次传送一个数据块。 串口是计算机上一种非常通用设备串行通信的协议。大多数计算机包含两个基于RS232的串口。串口按位(bit)发送和接收字节。尽管比按字节(byte)

的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,RS-232只限于PC串口和设备间点对点的通信。 IBM PC及其兼容机提供了一种有较强的硬件依赖性,但却比较灵活的串行口I/O的方法,即通过INT 14调用ROM BIOS串行通信口的例行程序。该例行程序。该例行程序包括将串行口初始化为指定的字节结构和传输速率,检查控制器的状态,读写字符等功能。 14号中断的功能总结如下: 串行口服务(Serial Port Service——INT 14H) 00H —初始化通信口03H —读取通信口状态 01H —向通信口输出字符04H —扩充初始化通信口 02H —从通信口读入字符 (1)、功能00H:初始化通信口 入口参数:AH=00H DX=初始化通信口号(0=COM1,1=COM2,……) AL=初始化参数,参数的说明如下:波特率奇偶位停止位字的位数76543210

串口通讯设计之Verilog实现

串口通讯设计之 V e r i l o g实现 Revised as of 23 November 2020

串口通讯设计之V e r i l o g实现 FPGA串口模块是将由RS-485发送过来的数据进行处理,提取出8位有效数据,并按异步串口通讯的格式要求输出到MAX3223的12脚。FPGA选用Xilinx公司的SpartanII系列xc2s50。此部分为该设计的主体。如上所述,输入数据的传输速率为700k波特率。为了使FPGA能够正确地对输入数据进行采样,提高分辨率能力和抗干扰能力,采样时钟必须选用比波特率更高的时钟,理论上至少是波特率时钟的2倍。 1 串口通信基本特点随着多微机系统的应用和微机网络的发展,通信功能越来越显得重要。串行通信是在一根传输线上一位一位地传送信息.这根线既作数据线又作联络线。串行通信作为一种主要的通信方式,由于所用的传输线少,并且可以借助现存的电话网进行信息传送,因此特别适合于远距离传送。在串行传输中,通信双方都按通信协议进行,所谓通信协议是指通信双方的一种约定。约定对数据格式、同步方式、传送速度、传送步骤、纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。异步起止式的祯信息格式为:每祯信息由四部分组成: 位起始位。 ~8位数据位。传送顺序是低位在前,高位在后.依次传送。c.一位校验位,也可以没有。d.最后是1位或是2位停止位。 FPGA(Field Pmgrammable Gate Array)现场可编程门阵列在数字电路的设计中已经被广泛使用。这种设计方式可以将以前需要多块集成芯片的电路设计到一块大模块可编程逻辑器件中,大大减少了电路板的尺寸,增强了系统的可靠性和设计的灵活性。本文详细介绍了已在实际项目中应用的基于FPGA的串口通讯设计。 本设计分为硬件电路设计和软件设计两部分,最后用仿真验证了程序设计的正确性。 2 系统的硬件设计 本方案的异步串行通信的硬件接口电路图如图1所示,主要由四部分组成:RS-485数据发送模块、FPGA 串口模块、MAX3223和DB9。各部分功能简述如下: RS-485数据发送模块是将前续电路的数据发送到FPGA,供本电路处理,亦即本电路的输入。RS485是符合RS-485和RS-4225串口标准的低功耗半双工收发器件,有和5V两种,在本设计中选用了的器件SP3485。 在本设计中。485的7脚和8脚与前端信号相连接,用于接收输入的数据。数据格式是这样的:一帧数据有25位,报头是16个高电平和1个低电平,接下来是 8位有效的数据。传输速率为700k波特率。2脚是使能端,与FPGA的I/O口相连,由FPGA提供逻辑控制信号。1脚和4脚也与FPGA相连,由 FPGA对输入数据进行处理。 FPGA串口模块是将由RS-485发送过来的数据进行处理,提取出8位有效数据,并按异步串口通讯的格式要求输出到MAX3223的12脚。FPGA选用Xilinx公司的Spartan II系列xc2s50。此部分为该设计的主体。如上所述,输入数据的传输速率为700k波特率。为了使FPGA能够正确地对输入数据进行采样,提高分辨率能力和抗干扰能力,采样时钟必须选用比波特率更高的时钟,理论上至少是波特率时钟的2倍。在本设计中选用4倍于波特率的时钟,利用这种4倍于波特率的接收时钟对串行数据流进行检测和定位采样,接收器能在一个位周期内采样4次。如果没有这种倍频关系,定位采样频率和传送波特率相同,则在一个位周期中,只能采样一次,分辨率会差。比如,为了检测起始位下降沿的出现,在起始位的前夕采样一次之后,下次采样要到起始位结束前夕才进行。而假若在

OLED同步串行通信

1. OLED只能写入,不能读出。4线串行模式:D0——串行时钟线CLK,D1——串行数据线DA TA,P/S——模式选择、高为并行、低为串行。 并行模式需要使用全部数据及控制脚,串行模式只需要CLK、DA TA、RES、DC、CS共5个控制脚(WR、RD不用了)。 2.最常用配置方式: 3.同步串行通讯:时钟线、数据线,通过时钟保持数据同步。异步串行通讯:只有一根数据线,通过波特率保证数据同步。无线通信一般均为异步串行通信(一根天线)。 4.串行总线分三类:单总线(1—Wire)、SPI总线、I2C总线。单总线:用一根线数据收发和时钟信号,可以提供电源。SPI总线3根或4根线组成,数据收发,器件选择,时钟信号。I2C总线,两根线,数据收发,时钟信号。单总线特点:一、单总线芯片通过一根信号线传递控制信号、地址信号、数据信号。二、每个单总线芯片都有全球唯一序列号,当多个单总线芯片挂在一根总线上,根据不同序列号选择访问。三、单总线芯片在总线上可以获得电源。SPI:同步串行外设接口。SPI总线一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线(MISO)、主机输出/从机输入数据线(MOSI)、低电平有效的从机选择线SS。系统主机与从设备串行方式,高位在前,低位在后。SPI从设备MISO与系统主机MOSI相连,SPI从设备MOSI与系统主机MISO相连。SPI从设备用独立的片选信号控制信号使能端。片选无效时输出高阻态以不影响其他SPI设备工作。 1.OLED串行通信SPI 4—wire:CS低电平,同步时钟上升沿有效,传送8位数据。SPI 3 —wire:CS低电平,同步时钟上升沿有效,传送D/C共9位数据。 2.OLED4线串行SPI方式。一、使用的信号线有:CS(OLED片选信号)、RET(硬件复 位OLED)、DC(命令/数据标志(0:读写命令,1:读写数据))、SCLK(串行时钟线,D0信号线作为串行时钟线)、SDIN(串行数据线,D1信号线作为串行数据线)。二、模块的D2需要悬空,其他引脚可以接到GND。三、在此模式下,只能往模块写数据而不能读数据。四、在此模式下,每个数据长度均为8位,在SCLK的上升沿,数据从SDIN 移入到SSD1306,并且高位在前。DC线还是用作命令或数据的标志线。写操作时序:

双机间的串口双向通信2.0

单片机应用课程设计任务书

单片机应用课程设计说明书 学院名称:计算机与信息工程学院 班级名称:网工124 学生姓名:卞可虎 学号:2012211369 题目:双机间的串口双向通信设计指导教师:于红利 起止日期:2014.12.29至2015.1.4

目录 一、绪论 (1) 二、相关知识 (6) 2.1 双机通信介绍 (6) 2.2单片机AT89C51介绍 (6) 2.3 串行通信简介 (8) 2.3.1串行通信的特点 (8) 2.3.2串行通信技术标准 (9) 三、总体设计 (10) 3.1 设计需求 (10) 四、硬件设计 (10) 4.1 系统硬件电路设计 (10) 4.1.1整体电路设计 (10) 4.1.2 控制电路设计 (11) 4.1.3 复位电路 (11) 4.1.4 显示电路 (12) 五、软件设计 (12) 5.1发送端程序流程 (12) 5.2接收端程序流程 (13) 5.3按键程序 (14) 5.4串口通信程序 (15) 5.5数码管显示程序 (16)

六、Proteus软件仿真 (16) 七、结束语 (19) 参考文献 (20) 指导教师评语 (21) 成绩评定 (21) 附录:源程序 (22) 一、绪论 电子技术的飞速发展,单片机也步如一个新的时代,越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。单片机之间的通信可以分为两大类:并行通信和串行通信。串行通信传输线少,长距离传输时成本低,且可以利用数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。所以本系统采用串行通信来实现单片机之间可靠的,有效的数据交换。 对于一些类似复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路,单片机技术作为计算机技术的一个重要分支,由于单片机体积小,系统运行可靠,数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。但在一些相对复杂的单片机应用系统中,仅仅一个单片机资源是不够的,往往需要两个或多个单片机系统协同工作。这就对单片机通

双机通信课程设计

西安邮电大学 单片机课程设计报告书题目:双机通信系统

、系统整体设计 1. 系统设计思路 双机通信的实质就是解决两单片机串行通信问题。针对于89C52单片机全双工异步 串行通信口,我们采用单片机直接交叉互连的串行通信方式。 考虑到设计应用于短距离传输、两单片机具有相同的数据格式及电平且为使设计简 单,我们最终决定采用方式二单片机直接交叉连接的串行通信方式, 上位机发送的数据 由串行口 TXD 端输出,直接由下位机的串行口数据接收端 RXD 接攵。需要注意的是一定 要保证主从机相同的数据传输速率,即要求设置相同的波特率。电路分为数码管显示模 块,以及单片机工作的基本复位、晶振模块。 2. 系统设计原理 (1)串行通信 一个是数据传送,另一个是数据转换。所谓数 所谓数据转换就是指单片机在接收数据时,如 单片机在发送 数据时,如何把并行数据转换为 串行数据进行发送。单片机的串行通信使用的是异步串 行通信, 所谓异步就是指发送端 和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单位组成字 符帧传送。字符帧由发送端一帧一帧地传送, 接收端通过传输线一帧一帧地接收。 而对 于两个单片机之间的串行通信,由于具有相同的数据格式及电平且是短距离通信则不必 要使用一些电平转化芯片(如 max232等)便可直接实现串行通讯,需要注意的是两单 片机硬件要共地,软件中需要设置相同波特率 STC89C5单片机有一个全双工的异步串行通信口,串行结构如下: ①数据缓冲器(SBUF 接受或发送的数据都要先送到 SBUF 缓存。有两个,一个缓存,另一个接受,用同 一直接地址99H,发送时用指令将数据送到 SBUF 即可启动发送;接收时用指令将 SBUF 中接收到的数据取出。 ②串行控制寄存器(SCON SCO 用于串行通信方式的选择,收发控制及状态指示,各位含义如下: SM0,SM1串行接口工作方式选择位,这两位组合成 00, 01,10,11对应于工作方 式0、1、2、3。串行接口工作方式特点见下表1. 表1串行口工作方式表 串行数据通信要解决两个关键问题, 据传送就是指数据以什么形式进行传送。 何把接收到的串行数据转化为并行数据,

基于单片机的串口通信模块设计

1 绪论 1.1 研究背景 通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据从一端传送到另一端,实现数据的交换。在现代工业控制中,通常采用计算机作为上位机与下层的实时控制与监测设备进行通讯。现场数据必须通过一个数据收集器传给上位机,同样上位机向现场设备发命令也必须通过数据收集器。串行通信因其结构简单、执行速度快、抗干扰能力强等优点,已被广泛应用于数据采集和过程控制等领域。 计算机与外界的信息交换称为通信。基本的通信方式有并行通信和串行通信两种。串行通信是指一条信息额各位数据被逐位按顺序传送的通信方式。串行通信的特点是:数据位传送,按位顺序进行,最少只需要一根传输线即可完成,成本低但传送速度快,串行通信的距离可以从几米到几千米。 随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行监测和控制。PC机具有强大的监控和管理能力,而单片机则具有快速及灵和的控制特点,通过PC 机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。而随着USB接口技术的成熟和使用的普及,由于USB 接口有着 RS-232(DB-9)串口无法比拟的优点,RS-232(DB-9)串口正在逐步地为USB 接口所替代。而在现在的大多数笔记本电脑中,出于节省物理空间和用处不大等原因,RS-232(DB-9)串口已不再设置,这就约束了基于RS-232(DB-9)串口与PC 机联络的单片机设备的使用围。当前USB接口逐步取代RS-232(DB-9)串口已是大势所趋,单片机同计算机的USB通信在实际工作中的应用围也将越来越广。本文所介

串行通信的同步传输与异步传输

------分隔线---------------------------- 这里所讲的同步传输和异步传输不同于VC 串口编程时的同步和异步,这里只讲串口硬件层传输的两种模式,有关VC 串口编程的同步模式和异步模式我将另外写一篇文章。 这里所讲的同步和异步是从硬件层级来讲的。首先要知道什么串行传输,串行传输是指数据的二进制代码在一条物理信道上以位为单位按时间顺序逐位传输的方式。串行传输时,发送端逐位发送,接收端逐位接受,同时,还要对所接受的字符进行确认,所以收发双方要采取同步措施(即判断什么时候有数据,数据是什么,什么时候结束传输)。 同步措施有两种,一种在传输的每个(帧)数据前(数据可能是5~8位)加一个起始位,后面加一位校验位及一位或两位的停止位组成一帧数据,这各方式称为异步传输;另一种是在一次传输(可能是多个字节)前加同步字节,可能不止一个字节,最后加校验字节或代表结束标志的字节,这种方式称为同步传输方式。 异步传输 异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它

们会在什么时候到达。一个常见的例子是计算机键盘与主机的通信。按下一个字母键、数字键或特殊字符键,就发送一个8比特位的ASCII 代码。键盘可以在任何时刻发送代码,这取决于用户的输入速度,内部的硬件必须能够在任何时刻接收一个键入的字符。 异步传输存在一个潜在的问题,即接收方并不知道数据会在什么时候到达。在它检测到数据并做出响应之前,第一个比特已经过去了。这就像有人出乎意料地从后面走上来跟你说话,而你没来得及反应过来,漏掉了最前面的几个词。因此,每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息的终止。按照惯例,空闲(没有传送数据)的线路实际携带着一个代表二进制1的信号,异步传输的开始位使信号变成0,其他的比特位使信号随传输的数据信息而变化。最后,停止位使信号重新变回1,该信号一直保持到下一个开始位到达。例如在键盘上数字“1”,按照8比特位的扩展ASCII编码,将发送“00110001”,同时需要在8比特位的前面加一个起始位,后面一个停止位。 异步传输的实现比较容易,由于每个信息都加上了“同步”信息,因此计时的漂移不会产生大的积累,但却产生了较多的开销。在上面的例子,每8个比特要多传送两个比特,总的传输负载就增加25%。对于数据传输量很小的低速设备来说问题不大,但对于那些数据传输量很大的高速设备来说,25%的负载增值就相当严重了。因此,异步传输常用于低速设备。

SPI同步串行总线原理

三、SPI是英文Serial Peripheral Interface的缩写,中文意思是串行外围设备接口,SPI是Motorola公司推出的一种同步串行通讯方式,是一种三线同步总线,因其硬件功能很强,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。 SPI概述 SPI:高速同步串行口。3~4线接口,收发独立、可同步进行. SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,比如AT91RM9200. SPI总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI 和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。 SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。 (1)SDO –主设备数据输出,从设备数据输入 (2)SDI –主设备数据输入,从设备数据输出 (3)SCLK –时钟信号,由主设备产生 (4)CS –从设备使能信号,由主设备控制 其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效。这就允许在同一总线上连接多个SPI设备成为可能。 接下来就负责通讯的3根线了。通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过SDO 线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。 要注意的是,SCK信号线只由主设备控制,从设备不能控制信号线。同样,在一个基于SPI的设备中,至少有一个主控设备。这样传输的特点:这样的传输方式有一个优点,与普通的串行通讯不同,普通的串行通讯一次连续传送至少8位数据,而SPI允许数据一位一位的传送,甚至允许暂停,因为SCK时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据。也就是说,主设备通过对SCK时钟线的控制可以完成对通讯的控制。SPI还是一个数据交换协议:因为SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出。不同的SPI设备的实现方式不尽相同,主要是数据改变和采集的时间不同,在时钟信号上沿或下沿采集有不同定义,具体请参考相关器件的文档。 在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。 最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。 AT91RM9200的SPI接口主要由4个引脚构成:SPICLK、MOSI、MISO及/SS,其中SPICLK是整个SPI总线的公用时钟,MOSI、MISO作为主机,从机的输入输出的标志,MOSI是主机的输出,从机的输入,MISO 是主机的输入,从机的输出。/SS是从机的标志管脚,在互相通信的两个SPI总线的器件,/SS管脚的电平低的是从机,相反/SS管脚的电平高的是主机。在一个SPI通信系统中,必须有主机。SPI总线可以配置成单主单从,单主多从,互为主从。 SPI的片选可以扩充选择16个外设,这时PCS输出=NPCS,说NPCS0~3接4-16译码器,这个译码器是需要外接4-16译码器,译码器的输入为NPCS0~3,输出用于16个外设的选择。 [编辑本段] SPI协议举例

双机通信课程设计

成绩: 课程设计报告书 所属课程名称单片机原理与接口技术 题目双机串行通信 分院机电学院 专业、班级机械设计制造及其自动化B0902学号0612090218 学生姓名史强 指导教师周春明 2012年7月13日

目录 1课程设计任务书 (1) 2总体设计 (2) 3硬件系统设计 (3) 4程序设计 (6) 5程序调试及结果分析 (11) 6总结 (13) 7参考文献 (14)

辽东学院 一课程设计任务书 课程设计题目:双机串行通信 课程设计时间:自2012 年7月2日起至2012 年7月13日。课程设计要求: 1.通过本次课题设计,应用《单片机原理及其接口技术》等所学相关知识及查阅资料,完成简易双机串行通信设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。 2.两片单片机之间进行串行通信,发送端将0~f循环发送到接收端,并在接 收端显示。接收完成后,led灯亮。 学生签名:史强 2012 年7月13日 课程设计评阅意见 评阅教师: 2012年月日

二总体设计 2.1 设计目的 通过本次课题设计,应用《单片机原理及其接口技术》等所学相关知识及查阅资料,完成简易双机串行通信设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。 通过本次设计的训练,可以使我在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。 2.2 设计任务 两片单片机之间进行串行通信,发送端将0~f循环发送到接收端,完成后在接收端的led 灯亮。 2.3 设计方法 本次设计,对于两片89C51,采用RS232进行双机通信。发送方的数据由串行口TXD段输出。接受方接收后,灯亮。为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。 软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB[16]中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH 给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。

基于labview的串口通讯设计

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊ 摘要 虚拟仪器是现代计算机技术同仪器技术深层次结合的全新概念仪器,实质是利用计算机显示器的显示功能模拟传统仪器的控制面板,以多种形式表达输出测量结果,利用计算机强大的软件功能实现信号数据的运算、分析和处理,完成各种测试功能的一种计算机仪器系统。 本文介绍了利用LabVIEW语言来实现上、下位机之间通信的方法,并从软、硬件两个方面阐述了设计思想。从实现PC机PC机之间的串口通信出发,先实现双PC机之间的数据发送、返还和接收,进而设计了以PC机作为上位机,以飞思卡尔8位单片机作为下位机的基于labview软件的串口通信系统。经过实验调试,系统达到了预期的通信目标。 应用先进的虚拟仪器软件LABVIEW,大大降低了串口通讯复杂程度,减小了软件设计的工作量,能够大大降低投资成本。在实际应用中有巨大的使用价值。 关键词:虚拟仪器;Labview ;串口通信;单片机

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊ Design of the serial communication system Based on LabVIEW Abstract Virtual instrument is the modern computer technology combined with the instrumentation of the new concept of deep-level instruments,in real terms is the use of analog computer monitors display control panel,traditional instruments,in various forms to express the output measurements,using computer software features to achieve a strong signal Operation data, analysis and processing,to complete a variety of testing capabilities of a computer instrument system This article describes the use of LabVIEW to implement the language, the next method of communication between the crew and from the software and hardware are two aspects of the design. PC-PC, from the implementation of serial communication between the departure, the first to achieve double the data between the PC, send and return, receive, and then designed a PC, as the host computer to Freescale 8-bit microcontroller based on a lower machine LabVIEW software serial communication system. After experimental debugging, the system achieved the desired communication goals. The application of advanced virtual instrument software LabVIEW, greatly reduces the complexity of serial communication, reduce the workload of the software design can greatly reduce the investment cost. In practice, there is tremendous value in use. Keywords: virtual instrument; Labview; serial communication; microcontroller

串行接口及串行通信技术

第9章串行接口及串行通信技术 U 难点 ?串行通信的四种工作方式 @要求 掌握: ?串行通信的控制寄存器 ?串行通信的工作方式0和方式1 了解: ?串行通信的基础知识 ?串行通信的工作方式2和方式3 9.1 串行通信的基础知识 9.2 MCS-51单片机串行通信的控制寄存器 9.3 MCS-51单片机串行通信工作方式 9.1 串行通信的基础知识 串行数据通信要解决两个关键技术问题,一个是数据传送,另一个是数据转换。所谓数据传送就是指数据以什么形式进行传送。所谓数据转换就是指单片机在接受数据时,如何把接收到的串行数据转化为并行数据,单片机在发送数据时,如何把并行数据转换为串行数据进行发送。 9.1.1 数据传送 单片机的串行通信使用的是异步串行通信,所谓异步就是指发送端和接收端使用的不是同一个时钟。异步串行通信通常以字符(或者字节)为单位组成字符帧传送。字符帧由发送端一帧一帧地传送,接收端通过传输线一帧一帧地接收。 1. 字符帧的帧格式 字符帧由四部分组成,分别是起始位、数据位、奇偶校验位、停止位。如图9.1所示: 1)起始位:位于字符帧的开头,只占一位,始终位逻辑低电平,表示发送端开始发送一帧数据。 2)数据位:紧跟起始位后,可取5、6、7、8位,低位在前,高位在后。 3)奇偶校验位:占一位,用于对字符传送作正确性检查,因此奇偶校验位是可选择的,共有三种可能,即奇偶校验、偶校验和无校验,由用户根据需要选定。 4)停止位:末尾,为逻辑“1”高电平,可取1、1.5、2位,表示一帧字符传送完毕。 图9.1 字符帧格式 异步串行通信的字符帧可以是连续的,也可以是断续的。连续的异步串行通信,是在一个字符格式的停止位之后立即发送下一个字符的起始位,开始一个新的字符的传送,即帧与帧之间是连续的。而断续的异步串行通信,则是在一帧结

RS485串行通信电路设计

RS485串行通信接口电路的总体设计 在电参数仪的设计中,数据采集由单片机AT89C52负责,上位PC机主要负责通信(包括与单片机之间的串行通信和数据的远程通信),以及数据处理等工作。在工作中,单片机需要定时向上位PC机传送大批量的采样数据。通常,主控PC机和由单片机构成的现场数据采集系统相距较远,近则几十米,远则上百米,并且数据传输通道环境比较恶劣,经常有大容量的电器(如电动机,电焊机等)启动或切断。为了保证下位机的数据能高速及时、安全地传送至上位PC机,单片机和PC机之间采用RS485协议的串行通信方式较为合理。 实际应用中,由于大多数普通PC机只有常用的RS232串行通信口,而不具备RS485通信接口。因此,为了实现RS485协议的串行通信,必须在PC机侧配置RS485/RS232转换器,或者购买适合PC机的RS485卡。这些附加设备的价格一般较贵,尤其是一些RS485卡具有自己独特的驱动程序,上位PC机的通信一般不能直接采用WINDOW95/98环境下有关串口的WIN32通信API函数,程序员还必须熟悉RS485卡的应用函数。为了避开采用RS485通信协议的上述问题,我们决定自制RS485/RS232转换器来实现单片机和PC机之间的通信。 单片机和PC机之间的RS485通信硬件接口电路的框图,如下图1所示。 从图1可看出,单片机的通信信号首先通过光隔,然后经过RS485接口芯片,将电平信号转换成电流环信号。经过长距离传输后,再通过另一个RS485接口芯片,将电流环信号转换成电平信号。 图1单片机与PC机之间的RS485通信硬件接口电路的框图(略) 该电平信号再经过光电隔离,最后由SR232接口芯片,将该电平信号转换成与PC机RS232端口相兼容的RS232电平。由于整个传输通道的两端均有光电隔离,故无论是PC机还是单片机都不会因数据传输线上可能遭受到的高压静电等的干扰而出现“死机”现象。 2接口电路的具体设计 2-1单片机侧RS485接口电路的设计 单片机侧RS485接口电路如图2所示。 AT89C52单片机的串行通信口P3 0(RXD)和P3 1(TXD)的电平符合TTL/CMOS标准(逻辑“0”的电平范围为0V~0.8V,逻辑“1”的电平为2 4V~VCC),它们首先通过光电隔离器件6N137隔离,以保护单片机不受传输通道的干扰影响,其中T01和?T02是为了增加光隔输入端的驱动能力。光隔6N137的左侧电源与单片机相同,右侧必须采用另一组独立的+5V电源,且两组电源不能供电。 图2单片机侧RS485接口电路

相关主题
文本预览
相关文档 最新文档