51单片机双机串行通信设计要点
****************** 实践教学实践教学 ******************* XXXXXXXXXX 大学大学 计算机与通信学院 2013 年秋季学期 通信系统综合训练 课程设计 题题目:目: 51 单片机双机串行通信设计 专业班级:专业班级: 通信工程 x 班 姓姓名:名: xx 学学号:号: xx 指导教师:指导教师: xx 成成绩:绩: 摘要摘要 双机通信的实质就是解决两单片机串行通信问题。针对于 89C51 单片机全双工异步串行 通信口,我们采用单片机直接交叉互连的串行通信方式。考虑到本设计应用于短距离传输、 两单片机具有相同的数据格式及电平且为使设计简单,我们最终决定本系统采用方式一单片 机直接交叉连接的串行通信方式,上位机发送的数据由串行口 TXD 端输出,直接由下位机的 串行口数据接收端 RXD 接收。本设计的硬件电路分为数码管显示模块、单片机工作的基本复 位电路以及晶振模块。编程采用 C 语言加以实现。通信的结果使用数码管进行显示,数码管 采用查表方式显示,两个单片机之间采用 RS-232 进行双向通信。 关键字关键字:51 单片机串行通信 RS-232 接口标准 目录 前言.1 1 基本原理.2 1.1串行通信概述 2 1.2串行通信的分类 2 1.3串行通信技术标准 2 1.4 串行通信协议 3 1.5 串行通信与并行通信区别 4 1.6 MCS-51 串行接口的基本特点5 1.7 波特率选择 7 1.8 通信协议的使用 7 1.9 51 单片机的结构和作用7 1.10 双机通信 8 2 系统分析.9 2.1 汇编语言和 C 语言的特点及选择 9 2.2 并行通信与串行通信的比较 9 2.3 串行通信程序设计的比较 9 2.4 同步通信与异步通信的区别 9 3 系统设计11 3.1 设计要求 .11 3.2 设计方案 .11 3.3 硬件设计 .11 3.4 软件设计 .14 4 系统调试20 总结21 参考文献22 致谢26 前言前言 随着电子技术的飞速发展,单片机也步如一个新的时代,越来越多的功能各异的单片机 为我们的设计提供了许多新的方法与思路。 对于一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗 大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组 合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种 新的思路,单片机技术作为计算机技术的一个重要分支 ,由于单片机体积小,系统运行可靠, 数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。但在一些相对复杂 的单片机应用系统中,仅仅一个单片机资源是不够的,往往需要两个或多个单片机系统协同工 作。这就对单片机通信提出了更高要求。 单片机之间的通信可以分为两大类:并行通信和串行通信。串行通信传输线少,长距离 传输时成本低,且可以利用数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重 要的作用。所以本系统采用串行通信来实现单片机之间可靠的,有效的数据交换。 1 1 1 基本原理基本原理 1.1 串行通信概述 1.1.1串行通信的特点 在远程通信和计算机科学中,串行通信是指在计算机总线或其他数据通道上,每次传输 一个位元数据,并连续进行以上单次过程的通信方式。与之对应的是并行通信,它在串行端 口上通过一次同时传输若干位元数据的方式进行通信。一位接一位地顺序传送。这样一个字 节的数据要分 8 次由低位到高位按顺序一位位地传送。由此可见,串行通信的特点如下:1、 节省传输线,这是显而易见的。尤其是在远程通信时,此特点尤为重要。这也是串行通信的 主要优点;2、数据传送效率低。与并行通信比,这也这是显而易见的。这也是串行通信的主 要缺点。 串行通信被用于长距离通信以及大多数计算机网络,在这些应用场合里,电缆和同步化 使并行通信实际应用面临困难。凭借着其改善的信号完整性和传播速度,串行通信总线正在 变得越来越普遍,甚至在短程距离的应用中,其优越性已经开始超越并行总线不需要串行化 元件等缺点。 1.2 串行通信的分类 1.2.1 异步通信 所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与 位之间的传送基本上是同步的.异步串行通信的特点可以概括为:①以字符为单位传送信息; ②相邻两字符间的间隔是任意长;③接收时钟和发送时钟只要相近就可以。异步方式特 点简单的说就是:字符间异步,字符内部各位同步。 1.2.2 同步通信 所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符 内部的位与位之间都同步.同步串行通信的特点可以概括为:①以数据块为单位传送信息;② 在一个数据块(信息帧)内,字符与字符间无间隔;③接收时钟与发送进钟严格同步。 1.3 串行通信技术标准 1.3.1 数据传输率 (1)比特率和波特率:比特率是指每秒传输的二进制位数,用 bps(bit/s)表示。波特率 是指每秒传输的符号数,若每个符号所含的信息量为 1 比特,则波特率等于比特率。在计算 机中,一个符号的含义为高低电平,它们分别代表逻辑“1”和逻辑“0” ,所以每个符号所含 的信息量刚好为 1 比特,因此在计算机通信中,常将比特率称为波特率,即:1 波特(B)=1 比特(bit)=1 位/秒(1bps)例如:电传打字机最快传输率为每秒 10 个字符/秒,每个字符 2 包含 11 个二进制位,则数据传输率为:11 位/字符×10 个字符/秒=110 位/秒=110 波特 (Baud) 计算机中常用的波特率是:110、300、600、1200、2400、4800、9600、19200、28800、33600, 目前最高可达 56Kbps. (2)位时间 Td:位时间是指传送一个二进制位所需时间,用Td表示。Td=1/波特 率=1/B (3)发送时钟和接收时钟 在串行通信中,二进制数据以数字信号的信号形式出现,不论是发送还是接收,都必须有 时钟信号对传送的数据进行定位。在 TTL 标准表示的二进制数中,传输线上高电平表示二进 制 1,低电平表示二进制 0,且每一位持续时间是固定的,由发送时钟和接收时钟的频率决 定。 1)发送时钟 发送数据时,先将要发送的数据送入移位寄存器,然后在发送时钟的控制下,将该并行 数据逐位移位输出。通常是在发送时钟的下降沿将移位寄存器中的数据串行输出,每个数据 位的时间间隔由发送时钟的周期来划分。 2)接收时钟 在接收串行数据时,接收时钟的上升沿对接收数据采样,进行数据位检测,并将其移入 接收器的移位寄存器中,最后组成并行数据输出。 1.3.2 波特率因子 接收时钟和发送时钟与波特率有如下关系:F=n×B 这里 F 是发送时钟或接收时钟的频 率;B 是数据传输的波特率;n 称为波特率因子。设发送或接收时钟的周期为 Tc,频率为 F 的 位传输时间为 Td,则:Tc=1/F,Td=1/B得到:Tc=T/n 在实际串行通信中,波特率因子可 以设定。在异步传送时,n=1,16,64 实际常采 n=16,即发送或接收时钟的频率要比数 据传送的波特率高 n 倍。在同步通信中波特率因子必等于 1