当前位置:文档之家› 双机间的串口双向通信(DOC)

双机间的串口双向通信(DOC)

单片机原理与应用课程设计任务书单片机原理与应用学年设计说明书学院名称:计算机与信息工程学院班级名称:学生姓名:学号:2012211369 题目:双机间的串口双向通信指导教师姓名:起止日期:2014.12.29至2015.1.4一、绪论随着电子技术的飞速发展,单片机也步如一个新的时代,越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。

对于一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。

如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路,单片机技术作为计算机技术的一个重要分支,由于单片机体积小,系统运行可靠,数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。

但在一些相对复杂的单片机应用系统中,仅仅一个单片机资源是不够的,往往需要两个或多个单片机系统协同工作。

这就对单片机通信提出了更高要求。

单片机之间的通信可以分为两大类:并行通信和串行通信。

串行通信传输线少,长距离传输时成本低,且可以利用数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。

所以本系统采用串行通信来实现单片机之间可靠的,有效的数据交换。

二、相关知识2.1 双机通信介绍两台机器的通信方式可分为单工通信、半双工通信、双工通信,他们的通信原理及通信方式为:单工通信:是指消息只能单方向传输的工作方式。

单工通信信道是单向信道,发送端和接收端的身份是固定的,发送端只能发送信息,不能接收信息;接收端只能接收信息,不能发送信息,数据信号仅从一端传送到另一端,即信息流是单方向的。

通信双方采用单工通信属于点到点的通信。

根据收发频率的异同,单工通信可分为同频通信和异频通信。

半双工通信:这种通信方式可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。

也就是说,通信信道的每一段都可以是发送端,也可以是接端。

但同一时刻里,信息只能有一个传输方向。

如日常生活中的例子有步话机通信等。

双工通信:双工通信是指在同一时刻信息可以进行双向传输,和打电话一样,说的同时也能听,边说边听。

这种发射机和接收机分别在两个不同的频率上能同时进行工作的双工机也称为异频双工机。

双工机的特点是使用方便,但线路设计较复杂,价格也较高。

2.2单片机AT89C51介绍AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准 MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89C51具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

另外,AT89C51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

AT89C51芯片DIP双列直插式封装引脚如图1.1所示。

图1.1 AT89C51引脚排列P0 口:P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0具有内部上拉电阻。

P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4 个 TTL 逻辑电平。

对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

引脚口第二功能如下:P1.0/T2(定时器/计数器T2的外部计数输入),时钟输出P1.1/T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5/MOSI(在系统编程用)P1.6/MISO(在系统编程用)P1.7/SCK(在系统编程用)P2 口:P2口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL逻辑电平。

对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。

在这种应用中,P2 口使用很强的内部上拉发送1。

在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL逻辑电平。

对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P3口亦作为AT89C51特殊功能(第二功能)使用。

引脚口第二功能如下:P3.0/RXD(串行输入口)P3.1/TXD(串行输出口)P3.2/INTO(外中断0)P3.3/INT1(外中断1)P3.4/TO(定时/计数器0)P3.5/T1(定时/计数器1)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

RST——复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。

ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。

需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。

2.3 串行通信简介2.3.1串行通信的特点在远程通信和计算机科学中,串行通信是指在计算机总线或其他数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式。

与之对应的是并行通信,它在串行端口上通过一次同时传输若干位元数据的方式进行通信。

一位接一位地顺序传送。

这样一个字节的数据要分8次由低位到高位按顺序一位位地传送。

由此可见,串行通信的特点如下:1、节省传输线,这是显而易见的。

尤其是在远程通信时,此特点尤为重要。

这也是串行通信的主要优点;2、数据传送效率低。

与并行通信比,这也这是显而易见的。

这也是串行通信的主要缺点。

串行通信被用于长距离通信以及大多数计算机网络,在这些应用场合里,电缆和同步化使并行通信实际应用面临困难。

凭借着其改善的信号完整性和传播速度,串行通信总线正在变得越来越普遍,甚至在短程距离的应用中,其优越性已经开始超越并行总线不需要串行化元件等缺点。

2.3.2串行通信技术标准a数据传输率(1)比特率和波特率:比特率是指每秒传输的二进制位数,用bps(bit/s)表示。

波特率是指每秒传输的符号数,若每个符号所含的信息量为1比特,则波特率等于比特率。

在计算机中,一个符号的含义为高低电平,它们分别代表逻辑“1”和逻辑“0”,所以每个符号所含的信息量刚好为1比特,因此在计算机通信中,常将比特率称为波特率,即:1波特(B)=1比特(bit)=1位/秒(1bps)例如:电传打字机最快传输率为每秒10个字符/秒,每个字符包含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)接收时钟在接收串行数据时,接收时钟的上升沿对接收数据采样,进行数据位检测,并将其移入接收器的移位寄存器中,最后组成并行数据输出。

b波特率因子接收时钟和发送时钟与波特率有如下关系: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。

三、硬件设计3.1 系统元器件需求在桌面上双击图标打开ISIS 7 Professional窗口。

在器件选择按钮中单击“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示的元件。

相关主题