《嵌入式项目开发与管理》课件-8.同步异步通讯_第1页
《嵌入式项目开发与管理》课件-8.同步异步通讯_第2页
《嵌入式项目开发与管理》课件-8.同步异步通讯_第3页
《嵌入式项目开发与管理》课件-8.同步异步通讯_第4页
《嵌入式项目开发与管理》课件-8.同步异步通讯_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

移动应用开发初探同步异步通讯初探同步异步通讯初探同步异步通讯课程导入UART(UniversalAsynchronousReceiver/Transmitter),通用异步收发传输器,它是一种广泛应用的异步串行通信协议。初探同步异步通讯同步、异步的概念UART硬件结构UART两种电平标准调试UART所需的技术准备初探同步异步通讯通用异步收发器串口通讯UniversalAsynchronousReceiver/TransmitterUART什么是异步通信?什么是同步通信?初探同步异步通讯同步信号通信数据同步通信双方在同一个时钟信号的控制下,进行数据的接收和发送数据发送方数据接收方初探同步异步通讯同步信号通信数据同步通信双方在同一个时钟信号的控制下,进行数据的接收和发送数据发送方数据接收方1011初探同步异步通讯异步通信:一个数据起止起止起一个数据数据之间不可预测的时间间隔无同步信号,收发双方有各自时钟。信息以帧为单位,数据之间没有固定的间隔。初探同步异步通讯异步通信的特点:发送和接收设备的时钟需要一致。异步通讯需要设置开始和结束标志。每个数据携带校验信息。初探同步异步通讯MCUTXRXGND初探同步异步通讯MCUTXRXGNDMCUTXRXGND初探同步异步通讯初探同步异步通讯TTL以UART为核心的通信形式也是多样初探同步异步通讯111100005U0UTTLRS232 +15V-15V00011110初探同步异步通讯初探同步异步通讯初探同步异步通讯初探同步异步通讯初探同步异步通讯111100005U0UTTLRS232 +15V-15V00011110初探同步异步通讯初探同步异步通讯解决方案:将两种电平信号经过处理转化为usb外设可以识别的内容需芯片转化CH34x系列CP210x系列初探同步异步通讯初探同步异步通讯串口与USB转换模块 初探同步异步通讯串口测试软件功能要求:查询与选中计算机装备的串口。可以通过字符或十六进制数进行输出。提供输入内容展示的界面。自发自收测试步骤:短接发送端和接收端引脚。软件发送信息。查看软件,看是否有相同的反馈信息。剖析ADC配置剖析ADC配置任务1:准备串口测试软件、USB转换模块、开发板等。剖析ADC配置剖析ADC配置任务2:完成本课课后练习。移动应用开发掌握同步异步通讯配置掌握同步异步通讯配置掌握同步异步通讯配置通用异步收发器掌握同步异步通讯配置掌握同步异步通讯配置课程导入课程目标:关注32微控制器F407系列UART(USART)的配置。掌握同步异步通讯配置芯片的UART外设概述寄存器功能概述波特率设置掌握同步异步通讯配置掌握同步异步通讯配置全双工异步通信小数波特率发生器系统,提供精确的波特率可配置的16倍过采样或8倍过采样可编程的数据字长度(8位或者9位)可配置的停止位(支持1或者2位停止位)可配置的使用DMA多缓冲器通信单独的发送器和接收器使能位提供多项检测标志多个带标志的中断源,触发中断其他:校验控制,四个错误检测标志掌握同步异步通讯配置状态寄存器掌握同步异步通讯配置数据寄存器允许微控制器(MCU)与外部设备之间通过串行方式进行高效的数据交换数据操作核心寄存器支持可编程的数据字长、灵活停止位配置以及错误检测功能通过DR寄存器的读写操作,MCU可以发送数据到外部设备,并从外部设备接收数据,实现数据的双向传输。掌握同步异步通讯配置数据寄存器注意:接收数据操作或发送数据,具体取决于所执行的操作是“读取”操作还是“写入”操作。数据操作核心寄存器掌握同步异步通讯配置控制寄存器1“通用功能”参数设置掌握同步异步通讯配置控制寄存器2“附加功能”参数设置掌握同步异步通讯配置控制寄存器3“增强”参数设置掌握同步异步通讯配置保护与预分频寄存器掌握同步异步通讯配置波特率寄存器掌握同步异步通讯配置波特率设置:分频系数总线时钟过采样倍数掌握同步异步通讯配置掌握同步异步通讯配置状态寄存器SR数据寄存器DR控制寄存器CR1\CR2\CR43保护与预分频寄存器GTPR波特率寄存器BRR32微控制器的UART关键配置掌握同步异步通讯配置掌握同步异步通讯配置小测1:总线时钟为84M,要生成一个115200的波特率,其UART分频系数为多少?任务2:完成本课课后练习。掌握同步异步通讯配置掌握同步异步通讯配置移动应用开发实践UART基本收发(上)实践UART基本收发(上)实践UART基本收发(上)课程目标实现一个最简单的UART收发程序。内容介绍三个步骤完成实践明确目标设置引脚完成初始化实践目标驱动UART1使用PA9PA10作为TX和RX破特率设置为9600使用非中断方式收发实践UART基本收发(上)84MHz实践UART基本收发(上)实践UART基本收发(上)波特率:115200总线时钟:84Mhz过采样倍数:0分频系数为:45.57291666666667整数:45小数:0.57291实践UART基本收发(上)实践UART基本收发(上)实践UART基本收发(上)A族引脚使能u32tmp=1<<0;RCC->AHB1ENR|=tmp;PA910复用功能tmp=0xf<<18;GPIOA->MODER&=~tmp;tmp=0xA<<18;GPIOA->MODER|=tmp;PA910复用代码7tmp=0xFF<<4;GPIOA->AFR[1]&=~tmp;tmp=0x77<<4;GPIOA->AFR[1]|=tmp;实践UART基本收发(上)实践UART基本收发(上)实践UART基本收发(上)实践UART基本收发(上)分频系数:45.57291整数:45小数:0.57291小数部分:int(0.57291*16)DIV_Fraction=9思考题区小数部分,为什么是乘以16后取整?实践UART基本收发(上)总结任务1:完成初始化程序,使用老师提供的发送函数,尝试验证串口是否正常。实践UART基本收发(上)实践UART基本收发(上)任务2:完成本课课后练习。课程目标实现一个最简单的UART收发程序。实践UART基本收发(下)实践UART基本收发(下)内容介绍按照进度完成三项内容发送、接收函数的设计。搭建串口调试环境。设计测试逻辑完成测试。学习目标发送字符函数

voiduart1_send_char(char)接收字符函数intuart1_rec(char*)实践UART基本收发(下)USART_DR写操作数据发送实践UART基本收发(下)发送字符函数参考代码:voiduart1_send_char(chard){while((USART1->SR&0X40)==0){}USART1->DR=d;}发送目标字符判断发送缓存是否为空写数据寄存器实践UART基本收发(下)USART_DR读操作数据存入实践UART基本收发(下)发送字符函数参考代码:intuart1_rec(char*pc){ if(USART1->SR&(1<<5)){ *pc=USART1->DR; return0; }elsereturn1;}保存结果字符判断发送缓存是否为空读数据寄存器有新数据,返回0没有新数据,返回1实践UART基本收发(下)CH34X驱动实践UART基本收发(下)CH34X驱动main(){ ... USART1_Initial(); uart1_send_char(‘Y’); uart1_send_char(‘E’); uart1_send_char(‘S’);}主函数测试逻辑1:UART1初始化UART1发送字符YES实践UART基本收发(下)main(){ ... charn;intre; USART1_Initial(); while(1){ re=uart1_rec(&n) if(re==0){ uart1_send_char(n) }}主函数测试逻辑2:UART1初始化UART1发送字符总结任务1:独立完成UART收发实验。任务2:完成本课课后练习。实践UART基本收发(下)实践UART基本收发(下)思考题循环监听接收数据有什么缺点?移动应用开发发送指令与指令分析发送指令与指令分析发送指令与指令分析课程导入发送指令与指令分析发送指令与指令分析课程导入通信协议(CommunicationProtocol)是指在通信过程中,双方或多方必须遵循的一组规则或约定,以确保信息能够准确无误地在它们之间传输和接收。发送指令与指令分析发送指令与指令分析基础载体信道协议规范与包装设备信息控制指令环境数据准确无误地通行在不同设备之间发送指令与指令分析发送指令与指令分析课程导入了解作为通信的硬、软件基础,嵌入式是如何通过串口来实现协议的。内容介绍概述协议收发的问题。分析状态机编程解决协议分析问题。引入状态机概念。内容介绍通信协议:设备间信息交换所遵循的规则与标准,它定义了数据如何组织、如何传输、如何接收、如何解释等关键过程。内容介绍通信协议:设备间信息交换所遵循的规则与标准,它定义了数据如何组织、如何传输、如何接收、如何解释等关键过程。确保了数据在复杂网络环境中能够准确、高效、安全地传递。发送指令与指令分析发送指令与指令分析1.实现一个指令的设计与发送。协议内容:yes目标2.接收uart数据后分析、识别指令。协议内容:abcvoidOrder_yes(){uart1_send_char('y’)uart1_send_char('e’)uart1_send_char('s')}收发指令与状态机编程1.实现一个指令的设计与发送。协议内容:yes目标收发指令与状态机编程2.接收uart数据后分析、识别指令。协议内容:abc目标协议指令什么时候发生?如何分析接受到的内容?问题例如:字符串“xaabcyz”中是否包含“abc”?收发指令与状态机编程xaabcyzabc收发指令与状态机编程xaabcyz状态状态处理状态编程给予对象定义不同的状态,例如:寻找A时,称为A状态;寻找B时,称为B状态等等。状态切换对象在处于某状态时需要做的事情,例如:A状态是,我们搜索字符串寻找字符a。对象的状态发生改变。例如:A状态下,如果在处理过程中发现a字符,那它就需要寻找下一个字符b,对象变为B状态。发送指令与指令分析发送指令与指令分析回到程序需求本身例如UART接收很多数据,但我现在需要一个叫“abc”的执行,应该怎么通过状态编程来处理呢?收发指令与状态机编程xaabcyz定义状态例如,我们需要找三个连续字符,则至少定义三个状态,分别为abc。建立结构编写每个状态需要的处理过程。全面考虑有哪些情况需要改变状态例如,b状态中,如果遇到下一个字符不是b而是s,那就应该返回到起初状态a了。注意,每个状态都应该全局可见,否则他会被轻易错误修改。课程小测根据本课方案,同学们尝试独立完成缓冲区的编写。发送指令与指令分析发送指令与指令分析思考题如何分析接受的串口数据,如何分析一个命令?移动应用开发接收队列与中断监听导入实践UART基本收发这种查询式监听数据的方式有哪些不妥之处?导入main(){ ... charn;intre; USART1_Initial(); while(1){ re=uart1_rec(&n) if(re==0){ uart1_send_char(n) }进入阻塞导入main(){ ... charn;intre; USART1_Initial(); while(1){ re=uart1_rec(&n) if(re==0){ uart1_send_char(n) }

new_task(); }}进入阻塞可能导致数据丢失接收队列与中断监听接收队列与中断监听内容介绍接收队列与中断监听接收队列与中断监听中断的作用以及在此需求下的应用逻辑。32微控制的UART中断配置过程。软件缓冲区设计理念。接收队列与中断监听中断特点事件打断程序。解决策略UART信息引发中断,停止当前任务。回调函数中处理UART信息,还原。接收队列与中断监听接收队列与中断监听中断使能ISQR[1]接收队列与中断监听UART1中所有中断接收数据中断发送数据中断idle中断传输完成中断接收队列与中断监听接收队列与中断监听charva=0;intre_flag=0;voidUSART1_IRQHandler(){ if(USART1->SR&(1<<5)){

re_flag=1; u8va=USART1->DR; }}UART数据记录中断标志接收队列与中断监听charva=0;intre_flag=0;voidUSART1_IRQHandler(){ if(USART1->SR&(1<<5)){

re_flag=1; u8va=USART1->DR; }}UAR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论