已阅读5页,还剩64页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章串行通信及其接口 10 2串行通信基础10 2MCS 51串行通信10 3MCS 51串行通信工作方式 10 1串行通信基础 一 串行通信的基本概念串行通信 是将数据的各位一位一位地依次传送 传送距离较远 适合于计算机之间 计算机与外部设备之间的远距离通信 并行通信 指数据各位同时传送 速度快 效率高 距离短 串行通信有同步通信和异步通信两种方式 返回本章首页 图9 5同步通信数据格式 返回本节 同步通信 每个数据块开始时 发送一个或两个同步字符 使发送和接收双方取得同步 数据块各字符间取消了起始位和发送位 如发送的数据之间有间隔时 用发送同步字符填充 较少使用 同步字符由用户规定 如 01111110同步传送时 收 发双方要求时钟和频率一致 较少使用 图9 4异步串行通信数据帧格式 异步通信 数据在线路上是以一个字 或字符 为单位来传送的 不需严格的同步时钟控制 也不需数据流的连续性 在串行通信中常用 数据帧 包含起始位 0 电平 数据位 从低位到高位逐位数据传送 奇偶校验位 停止位 用 1 表示 线路不传送数据时 应保持为 1 保证起始处有一个下跳沿 单片机的串行通信使用的是异步串行通信 所谓异步就是指发送端和接收端使用的不是同一个时钟 异步串行通信通常以字符 或者字节 为单位组成字符帧传送 字符帧由发送端一帧一帧地传送 接收端通过传输线一帧一帧地接收 在异步通信中 收 发两方必须事先规定两件事 1 字符帧的帧格式字符帧由四部分组成 分别是起始位 数据位 奇偶校验位 停止位 如图所示 1 起始位 位于字符帧的开头 只占一位 始终位逻辑低电平 表示发送端开始发送一帧数据 2 数据位 紧跟起始位后 可取5 6 7 8位 低位在前 高位在后 3 奇偶校验位 占一位 用于对字符传送作正确性检查 因此奇偶校验位是可选择的 共有三种可能 即奇偶校验 偶校验和无校验 由用户根据需要选定 4 停止位 末尾 为逻辑 1 高电平 可取1 1 5 2位 表示一帧字符传送完毕 如 ASCII码帧 字符 为10位 其中 数据7位起始位 校验位 停止位各一位 字符帧格式 2 传送的速率串行通信的速率用波特率来表示 所谓波特率就是指一秒钟传送数据位的个数 每秒钟传送一个数据位就是1波特 即 1波特 1bps 位 秒 在串行通信中 数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制 时钟频率高 则波特率高 通信速度就快 反之 时钟频率低 波特率就低 通信速度就慢 如120个字符 帧 秒 每帧数据有10位 则传输速率为1200波特率 1200bit s 图9 1单工方式 发送器 1 单向数据传送 数据只向一个方向传送 二 串行通信数据传送方向 接收器 接收器 发送器 发送器 数据流 图9 2半双工方式 2 半双向数据传送 用一根传送线既作输入又作输出 但通信双方不能同时收 发数据 要改变数据传送方向 必须进行通信双方的收 发设备的开关切换 发送器 接收器 数据流 接收器 发送器 图9 3全双工方式 3 全双向数据传送 由两根传送线来发送和接收数据 双方可同时进行发送和接收 串行数据通信要解决两个关键技术问题 一个是数据传送 另一个是数据转换 所谓数据传送就是指数据以什么形式进行传送 所谓数据转换就是指单片机在接受数据时 如何把接收到的串行数据转化为并行数据 单片机在发送数据时 如何把并行数据转换为串行数据进行发送 所有串行接口电路都是以并行数据形式和CPU接口 以串行数据形式和外部通信接口 通用异步接收发送器UART 接收器 发送器 控制部件 串行输入 时钟 复位 并行输入 时钟 控制信号 并行输出 数据总线 串行输出 对外 状态信息控制信息 UART基本组成框图 UART主要功能 1 数据的串化 反串化数据的串化 将并行数据变为串行数据 发送器 数据的反串化 将串行数据变为并行数据 接收器 2 格式信息的插入和删除格式信息 异步通信中的起始位 校验位 停止位等 串化过程 将格式信息插入和数据一起构成一个完整的数据帧 反串化过程 滤出格式信息 保留数据位 3 错误检验检验数据通信过程是否正确 10 2MCS 51串行通信MCS 51单片机将一个 全双工串行通信接口电路 集成在单片机内 数据转换串行接口电路为用户提供了两个串行口缓冲寄存器 SBUF 一个称为发送缓存器 它的用途是接收片内总线送来的数据 即发送缓冲器只能写不能读 发送缓冲器中的数据通过TXD引脚向外传送 另一个称为接收缓冲器 它的用途是向片内总线发送数据 即接收缓冲器只能读不能写 接收缓冲器通过RXD引脚接收数据 因为这两个缓冲器一个只能写 一个只能读 所以共用一个地址99H 串行接口电路如图所示 MCS 51串行口寄存器结构 串行接收的双缓冲结构移位寄存器数据缓冲器SBUF一帧数据 8位 接收完 由移位寄存器装入SBUF 立即接收下一帧 要求主机应立即将SBUF中数据取走 否则前一帧数据将丢失 发送是由CPU操纵的 不会发生帧重叠错误 将数据写入SBUF 自动 通过移位脉冲一位一位地发送出去 二级 10 2 1MCS 51单片机串行通信的控制寄存器与串行通信有关的寄存器有三个1 串行口控制寄存器 SCON SCON是MCS 51单片机的一个可位寻址的专用寄存器 用于串行数据通信的控制 单元地址为98H 位地址为98H 9FH 寄存器的内容及位地址表示如下 各位的说明如下 1 SM0 SM1 串行口工作方式选择位 2 SM2 允许方式2 3的多机通信控制位在方式2和3中 若SM2 1且接收到的第九位数据 RB8 为1 才将接收到的前8位数据送入接收SBUF中 并置位RI产生中断请求 否则丢弃前8位数据 若SM2 0 则不论第九位数据 RB8 为1还是为0 都将前8位送入接收SBUF中 并产生中断请求 方式0时 SM2必须置0 多机通信的机制 地址帧数据帧地址帧被确认的从机 复位SM2 0 接收RB8 0的数据 RR8 1地址帧RR8 0数据帧 SM2 1多机方式SM2 0直通方式 3 REN 允许接收位 通过软件值位 复位 REN 0禁止接收数据REN 1允许接收数据4 TB8 发送数据位8在方式2 3时 TB8的内容是要发送的第9位数据 格式信息 在多机通信中 通过TB8状态来表示主机发送的是地址帧 1 还是数据帧 0 其值由用户通过软件来设置 5 RB8 接收数据位8 和TB8对应 在方式2 3时 RB8是存放接收的第9位数据 可判断是地址帧 1 还是数据帧 0 在方式1时 RB8是接收的停止位 在方式0时 不使用RB8 A B 单机方式 主机 从机2 从机1 从机n 多机方式 6 TI 发送中断标志位在方式0时 发送完第8位数据后 该位由硬件置位 在其它方式下 于发送停止位开始时 由硬件置位 因此 TI 1表示帧发送结束 其状态既可供软件查询使用 也可请求中断 TI必须由软件清 0 7 RI 接收中断标志位在方式0时 接收完第8位数据后 该位由硬件置位 在其它方式下 于接收到停止位中间时 该位由硬件置位 因此 RI 1表示帧接收结束 其状态既可供软件查询使用 也可请求中断 RI由必须软件清 0 2 电源控制寄存器 PCON PCON不可位寻址 字节地址为87H 它主要是为CHMOS型单片机80C51的电源控制而设置的专用寄存器 其内容如下 与串行通信有关的只有D7位 SMOD 该位为波特率倍增位 当SMOD 1时 串行口波特率增加一倍 当SMOD 0时 串行口波特率为设定值 当系统复位时 SMOD 0 3 中断允许控制寄存器 IE 进行字节操作时 寄存器地址为0A8H 按位操作时 各位的地 址为0A8H 0AFH 寄存器的内容及位地址表示如下 ES 串口中断允许位ES 0 禁止串口中断ES 1 允许串口中断 8 3MCS 51串行通信工作方式串行口的工作方式由SM0和SM1确定 编码和功能如表所示 方式0和方式2的波特率是固定的 而方式1和方式3的波特率是可变的 由T1的溢出率决定 方式0发送时序 10 3 1串行工作方式0 移位方式 1 数据输出 发送 并口扩展P147当数据写入SBUF后 数据从RXD P3 0 端在移位脉冲TXD P3 1fosc 12 的控制下 逐位移入74LS164 74LS164能完成数据的串并转换 当8位数据全部移出后 TI由硬件置位 发生中断请求 若CPU响应中断 则从0023H单元开始执行串行口中断服务程序 数据由74LS164并行输出 其接口逻辑如图所示 图为接口逻辑 移位数据 一帧8位 低位在前 高位在后 没有起始位 停止位 图为方式0接收时序 2 数据输入 接收 要实现接收数据 必须首先把SCON中的允许接收位REN设置为1 当REN设置为1时 数据就在移位脉冲的控制下 从RXD端输入 当接收到8位数据时 置位接收中断标志位RI 发生中断请求 其接口逻辑如图所示 由逻辑图可知 通过外接74LS165 串行口能够实现数据的并行输入 并串转换 图为外接移位寄存器输入 数据输出 发送 当8位数据全部移出后 TI被自动置位 数据输入 接收 当REN 1 允许接收 接收到8位数据时 RI被自动置1 例 使用74LS164的并行输出端接8支发光二极管 利用它的串入并出功能 把发光二极管从左到右依次点亮 并反复循环 假定发光二极管为共阴极接法 图为电路设计 解 电路如图 软件部分如下 ORG0000HLJMPMAINORG1000HMAIN MOVSCON 00H 串行口工作在方式0CLRES 禁止串行中断MOVA 80H 发光二极管从左边亮起DELR CLRP1 0 关闭并行输出MOVSBUF A 串行输出WAINT JNBTI WAIT 状态查询SETBP1 0 开启并行输出ACALLDELAY 调用延时子程序CLRTI 清发送中断标志RRA 发光右移AJMPDELR 继续EDN 10 3 2串行工作方式1方式1为10位一帧的异步串行通信方式 其帧格式为1个起始位 8个数据位和1个停止位 如图所示 图为方式1的帧格式 1 数据输出 发送 数据写入SBUF后 开始发送 此时由硬件自动加入起始位和停止位 构成一帧数据 由TXD串行输出 输出一帧数据后 TXD保持在高电平状态下 停止位1 并将TI置位 通知CPU可以进行下一个字符的发送 图为方式1发送时序 图为方式1接收时序 2 数据输入 接收 被动状态当REN 1且接收到起始位后 1到0 在移位脉冲的控制下 把接收到的数据移入接收缓冲寄存器 SBUF 中 直到停止位到来后 把停止位送入RB8 1 中 并置位RI 通知CPU接收到一个字符 3 波特率的设定工作在方式1时 其波特率是可变的 波特率的计算公式为 其中 SMOD为PCON寄存器最高位的值 其值为1或0 波特率 2 SMOD 定时器1的溢出率 32 当定时器1作波特率发生器使用时 选用定时工作方式2 即自动加载定时初值方式 选择定时工作方式2可以避免通过程序反复装入定时初值所引起的定时误差 使波特率更加稳定 假定计数初值为X 则计数溢出周期为 溢出率为溢出周期的倒数 则波特率的计算公式为 实际使用中 波特率是已知的 因此需要根据波特率的计算公式求定时初值X 用户只需要把定时初值设置到定时器1 就能得到所要求的波特率 图为两台8031直接通信 应用举例 用方式1实现双机串行通信 1 通信双方的硬件连接作为应用系统首先要研究通信双方如何连接 一种办法是把两片8051的串行口直接相连 一片8051的TXD与另一片的RXD相连 RXD与另一片的TXD相连 地与地连通 由于8051串行口的输出是TTL电平 两片相连所允许的距离极短 2 通信双方的软件约定为实现双机通信 我们规定如下 假定A机为发送机 B机为接收机 当A机发送时 先送一个 AA 信号 B机收到后回答一个 BB 信号 表示同意接收 当A机接收到 BB 后 开始发送数据 每发送一次求一次 检查和 假定数据块长16个字节 起始地址为30H 一个数据块发送完后再发出 检查和 B机接收数据并转存到数据区 起始地址也为30H 同时每接收一次也计算一次 检查和 当一个数据块收齐后 再接收A机发来的 检查和 并将它与B机的 检查和 进行比较 若两者相等 说明接收正确 B机回答一个00 若两者不相等 说明接收不正确 B机回答一个FF 请求重发 A机收到00的答复后 结束发送 若收到的答复非0 则重新将数据发送一次 双方均以1200波特的速率传送 假设晶振频率为6MHz 计算定时器1的计数初值 为使波特率不倍增 设定PCON寄存器的SMOD 0 则PCON 00H 3 基本的通信程序设计程序框图如图所示 图为双机通信程序结构图 根据结构图设计出下述通信程序 A机通信程序 ASTART MOVTMOD 20H 设定定时器1工作方式2MOVTL1 0F3H 设定计数初值MOVTH1 0F3H 计数重装值MOVPCON 00H 波特率不倍增SETBTR1 启动T1MOVSCON 50H 设置串行口方式1ATT1 MOVSBUF 0AAH 发送 AA AWAIT1 JBCTI ARR1 等待一帧发送完SJMPAWAIT1ARR1 JBCRI ARR2 等待应答信号SJMPARR1 ARR2 MOVA SBUFXRLA 0BBHJNZATT1 判断是否是应答信号 00 ATT2 MOVR0 30HMOVR7 10MOVR6 00HATT3 MOVSBUF R0MOVA R6ADDA R0MOVR6 AINCR0AWAIT2 JBCTI ATT4SJMPAWAIT2 发送有效数据ATT4 DJNZR7 ATT3 判断是否传送完毕MOVSBUF R6 AWAIT3 JBCTI ARR3SJMPAWAIT3 等待ARR3 JBCRI ARR4SJMPARR3 等待ARR4 MOVA SBUFJNZATT2AEND RETB机通信程序 BST ART MOVTMOD 20H 设定定时器1工作方式2MOVTH1 0F2H 设定计数初值MOVTL1 0F2H 计数重装值MOVPCON 00H 波特率不倍增SETBTR1MOVSCON 50H BRR1 JBCRI BRR2SJMPBRR1 等待BRR2 MOVA SBUF 把接收到的数据送入AXRLA 0AAH 判断接收到数据是否是 AA JNZBRR1 如果不是继续等待BTT11 MOVSBUF 0BBH 发送应答信号BWAIT1 JBCTI BRR3 等待SJMPBWAIT1BRR3 MOVR0 30H 接收有效数据MOVR7 10MOVR6 00HBRR4 JBCRI BRR5SJMPBRR4 BRR6 MOVA SBUFXRLA R6JZBENDMOVSBUF 0FFHBWAIT3 JBCTI BRR3SJMPBWAIT3BEND MOVSBUF 00HRET 串行工作方式2 3 当SM0SM1 10 11时 串行口工作在方式2 3 方式2波特率为 1 64 fosc或 1 32 fosc 方式3波特率 2SMOD 32 定时器T1的溢出率 为波特率可变的9位异步通信方式 除了波特率外 方式3和方式2相同 字符帧11位 起始位 0 1位 数据位8位 可程控第9位数据 停止位 1 1位 发送时 第9位数据由SCON中TB8位提供 软件设置 SETBTB8 CLRTB8 多机通信时 接收时 串行口把接收到的前8个数据位送入SBUF 而把第9位数据装入SCON中RB8位 系统自动装入 返回本节 图为方式2发送时序 图为方式2的接收时序 波特率的计算 波特率计算公式 表7 3常用的波特率及计算器初值 返回本节 对于可变波特率 方式1 3 其计算公式 波特率 2SMOD 32 定时器T1的溢出率定时器溢出率 单位时间定时器溢出的次数 溢出率为溢出周期的倒数 溢出周期 定时器溢出一次所需时间 定时时间 当定时器T1作波特率发生器时 通常选用定时方式2 8位自动加载 可以避免通过程序反复装入定时初值所引起的定时误差 使波特率更加稳定 假定计数初值为X 则计数溢出周期为 则波特率的计算公式为 实际使用中 首先确定波特率 双方已相互约定 再根据波特率的计算公式求定时1初值X 然后进行定时器1的初始化 就能得到所要求的波特率 SMOD值可通过MOVPCON 00H或MOVPCON 80H设定 例 设fosc 6MHZ 波特率为1200bit s 计算定时器1的计数初值 串行口为工作方式1 写出相应的初始化程序 解 设SMOD 0 T1为工作方式2 初始化程序 MOVTMOD 20H 设置T1工作方式2MOVTL1 0F3H 计数初值MOVTH1 0F3H SETBEA 中断允许MOVPCON 00H 波特率不倍增MOVSCON 50H 串行方式1 REN 1SETBTR1 启动T1工作 多机通信接口 1 多机通信原理串行口控制寄存器SCON中的SM2为多机通信接口控制位 串行口以方式2或3接收时 若SM2为1 则仅当接收到的第9位数据RB8为1时 数据才装入SBUF 置位RI 请求CPU对数据进行处理 当SM2为0时 则接收到一个数据后 不管第9位数据RB8是0还是1 都将数据装入接收缓冲器SBUF并置位中断标志RI 请求CPU处理 图为MCS 51单片机主从式多机通信 8051TXDRXD 多机通信 一台主机和多台从机之间的通信 多机通信机制 主机发送信息 可以传送到各个从机或指定从机 各从机发送的信息只能被主机接收 主机发送 地址帧数据帧地址帧 通过第9位数据确定 TB8 1 地址帧TB8 0 数据帧从机接收 串口工作在方式2 3下 多机通信标志SM2 SCON 5 1时 当RB8 1 地址帧 将数据装入SBUF 置RI 发出接收中断请求 RB8 0 数据帧 在SM2 1 RB8 0时 接收数据丢弃 SM2 0 直通方式 不论RB8是0还是1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级语文上学期期末家校共育研讨会
- 奇峰碧水探地韵-高中地理必修(人教版2019)“喀斯特地貌”教学设计
- “智创传情·劳动赋能”教案-小学六年级劳动(苏科版)
- 高三备考参考·2026届:科学规划启新程素养立意赢未来
- 急救护理与危重症监护
- 联邦学习数据中心项目可行性研究报告
- 高二物理「力学电学模块」期中复盘与学情诊断主题班会设计方案
- 【初中德育·主题班会课】习惯有道赋能成长-七年级习惯养成主题活动设计方案
- 2026届高三地理复习专项讲义·大单元融合真题训练
- 2026分析法国艺术品拍卖行业市场现状供需分析及投资评估规划分析研究报告
- 2026年四川成都市中考地理试卷含答案
- 2025-2026 学年人音版初中音乐八年级下册全册知识点梳理
- 2026年自贡市自流井区社区工作者招聘笔试参考试题及答案解析
- 2026年版闲鱼卖货实战手册(选品+定价+爆款打造完整攻略)
- 雨课堂学堂在线学堂云审计法律研究与案例(西南政法大学)单元测试考核答案
- “十五五”规划纲要应知应会100题及答案
- 2026安徽合肥市发展和改革委员会上半年招聘事业单位工作人员20人考试备考试题及答案解析
- 限额以下小型工程常见安全隐患指导手册(2026版)
- 年龄相关性黄斑变性课件
- 小水电生态流量监测项目招标文件
- 银行AI算力云平台建设-第1篇
评论
0/150
提交评论