tag 标签: 串行通讯

相关博文
  • 热度 17
    2016-2-12 22:24
    969 次阅读|
    1 个评论
    首先比较一下串行通讯和并行 通讯 的特点。 并行 通讯 的特点:接线较多,速度快,控制简单。 串行 通讯 的特点:接线少,速度慢,控制复杂。 一、串口通讯的传输方向: ( 1 )单工:数据传输仅能沿一个方向。不能事项反向传输。 ( 2 )半双工:数据传输可以沿两个方向,但需要分时进行。 ( 3 )全双工:数据可以同时进行双向传输。 半双工的通讯实例( RS485 通讯电路): 一个数据通道,是差分信号,由 A 线和 B 线共同构成。 接收管脚 1 ,发送管脚 4 ,方向控制管脚 2 、 3 ,当方向控制管脚拉低时,允许 485 总线上的数据传到单片机(左边);当方向控制管脚拉高,允许单片机向 485 总线上发送数据。 倘若有很多设备挂在 485 总线上,这些设备在同一时刻只有一个设备处在发送状态,其他设备都处于接收状态。如果在同一时刻有两个或两个以上设备处于发送状态会导致 485 总线错误,通讯失败。因此设计电路和编写程序都要注意。在每次单片机发送数据完毕后要把发送管脚的电平拉低,不允许 485 总线上其他设备发送数据。 二、串行通信的类型: (1)同步通信: 指发送方在同步时钟的控制下,将数据逐位发出去,接收方在同步时钟控制下逐位接收,如 SPI,IIC 等。 (2)异步通信: 指双方要线约定好通讯格式,如:波特率,数据格式(位数,有无起始位、 停止位个数、有无校验位)如 UART, 单总线通讯 (DS18B20) 三、Stm32f4 串口通讯程序编程: 1.     新建串口通讯模块文件: SCI.C 和 SCI.H 2.     编写 SCI.C 和 SCI.H 文件 (1)     开启 USART1 时钟 : RCC_APB2PeriphClockCmd (2)     开启 GPIOA 时钟: RCC_AHB1PeriphClockCmd (3)     配置 GPIOA Pin9 和 Pin10 为串口功能: GPIO_Init 和 GPIO_PinAFConfig (4)     初始化串口参数: USART_Init (5)     串口中断配置: USART_ITConfig (6)     中断优先配置: NVIC_PriorityGroupConfig 和 NVIC_Init (7)     使能串口: USART_Cmd (8)     串口中断函数编写 (9)     在 main 函数中调用串口初始化 下面是一丝不苟的截图: 四、串口通讯的优化: 1.     文件优化:增加 NVIC 模块 2.     中断函数优化:中断函数内做的事情越少越好也就是说中断函数的运行时间越短越好 3.     变量优化 Volatile 的使用: volatile 提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候都会直接从变量地址中读取数据。如果没有 volatile 关键字,则编译器可能有货读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。   一般来说寄存器的暂时值和这个变量直接地址上存放的值是相等的,但是对于如果在中断中改变的变量那么这个值的暂存值和直接地址上存放的值可能不相等。 一下是一本正经的截图: 将中断从USART_Init中拿出来作为一个中断函数的模块。 NVIC.C文件:   定义两个全局变量: 用以: 这样,主函数整洁就如下图所示:
  • 热度 18
    2012-10-13 14:45
    1141 次阅读|
    0 个评论
    当今许多实时监测系统与通信设备领域中,经常需要进行远距离的数据传送。为此,如何实现高速、可靠及低成本的数据传输是作为前级机或发送级的8051单片机迫切需要解决的新技术。据此,我们采用由Dallas Semiconductor公司的芯片DSl075--Econ oscillator(高效型振荡器)为8051系列的DS87C520高速型单片机提供时钟的配置设计方案,实现单片机串行通信的高速波特率。 Econ oscillator(高效型振荡器)含有一个内部振荡器,用以产生一个基本频率;还内置了一个分频链,可以将基本频率降低到需要的速度。Econ oscillator 的每种型号提供四种基本频率(60MHz、66.67MHz、80MHz、100MHz),可调节的分频系数最高可达2052。Econ oscillator能根据系统需要配置为任何类型的钟控逻辑,包括单片机(微处理器)、FPGA、CPLD电路等。 8051单片机以及RS-232串行通信 选用时钟时,应认真考虑两个因素,即时钟频率和工作期限内的时钟精度。在8051单片机系统中,时钟频率取决于所采用的串行通信RS-232。例如,考虑一个采用12MHz时钟(早期8051的最高时钟频率)的异步模式1串行通信。表l列出了建立标准波特率所需的定时器1自动重新装载值。 表l中实际波特率是按照以下计算公式得出的:波特率所需的定时器I自动重新装载值。 其中:BaudRate为波特率;SMOD为波特率倍增位;fosc为振荡频率;THl为定时器l自动重新装载值。 表1中数值基于以下定时器 1状态: ·每12个时钟周期定时器增l(单片机DS87C520的定时器可以每4个或12个时钟周期增1)。 ·自动重装载模式。 ·禁止波特率倍增(SMOD=0)。 表l为早期的单片机采用晶体时的波特率和波特率误差。 一般情况下的RS-232串行通信.一旦波特率误差超出3%,尽管数据传送中有起始位或停止位进行同步,就有可能造成通信错误。3%的容许误差使12MHz晶振时的最高通信速率限制在2400波特,这在90年代初还不算坏,但对今天的标准来讲是一个不能忽略的大问题丁。 而现在适应于8051单片机串行通信的晶体:11.059MHz或22.118MHz,已开发出。单片机采用这种晶体后波特率有很大改善,见表2所示。数据传送率可达57.6kps(使DS87C520单片机波特率倍增,当SMOD=1后可达115.2kps),这样高的通信速率—波特率对于当前大多数单片机(或微处理器)系统已是很可观了。随着晶体11.059MHz或22.118MHz产品逐步市场化,使单片机应用糸统大为拓宽。 定时器1自动重装载值 Fosc=11.059MHz时的波特率 Fosc=22.118MHz时的波特率 255 28,799.5 57598.9 254 14399.7 28799.5 253 9599.8 19199.6 250 4799.91 9599.83 244 2399.95 4799.91 232 1199.98 2399.95 208 599.98 119.98 160 299.99 599.99 64 149.99 299.99 注:波特率与规定速率的偏差3%对于时钟精度提出了要求,即便采用专为RS-232串行通信优选的时钟频率,如果时钟频率变化超出3%,仍然会影响到通信的稳定.  
相关资源
  • 所需E币: 5
    时间: 2024-2-7 13:16
    大小: 1.43MB
    上传者: 丙丁先生
    用Visual+C实现PC与PLC之间的串行通讯.pdf
  • 所需E币: 1
    时间: 2023-4-15 13:43
    大小: 186.18KB
    上传者: 张红川
    计算机与单片机的串行通讯.pdf
  • 所需E币: 1
    时间: 2023-4-6 14:03
    大小: 232.28KB
    上传者: 张红川
    PC机与单片机间串行通讯的研究与实现.pdf
  • 所需E币: 1
    时间: 2023-4-6 13:54
    大小: 232.28KB
    上传者: 张红川
    PC机与单片机间串行通讯的研究与实现.pdf
  • 所需E币: 2
    时间: 2023-3-20 18:42
    大小: 228.16KB
    上传者: 张红川
    tms320f240+dsp与c51单片机串行通讯的实现.pdf
  • 所需E币: 1
    时间: 2021-4-25 15:29
    大小: 261.77KB
    上传者: box520
    串行通讯在基于DSP控制的变频调速中的应用
  • 所需E币: 1
    时间: 2021-3-30 22:58
    大小: 53KB
    上传者: Argent
    串口是常用的通讯接口,不管是硬件连接还是软件编程,相较其它的接口通信都容易,许多调试工具都采用USB转串口通信方式,就串口硬件话题,收集了部分资料,欢迎下载参阅。
  • 所需E币: 0
    时间: 2021-3-16 20:43
    大小: 60.53KB
    上传者: Goodluck2020
    利用异步通信芯片16C552实现PC机与DSP的串行通讯
  • 所需E币: 1
    时间: 2021-3-16 09:56
    大小: 103.43KB
    上传者: ZHUANG
    基于DSP串行通讯的操作面板
  • 所需E币: 0
    时间: 2021-3-14 10:33
    大小: 185.57KB
    上传者: czd886
    软件实现单片机串行通讯波特率的自动解调
  • 所需E币: 0
    时间: 2021-3-14 11:38
    大小: 67.06KB
    上传者: czd886
    利用异步通信芯片16C552实现PC机与DSP的串行通讯
  • 所需E币: 1
    时间: 2021-3-9 15:40
    大小: 78.2KB
    上传者: czd886
    主从分布式系统主单片机串行通讯管理的新方法
  • 所需E币: 1
    时间: 2021-3-12 16:25
    大小: 262.99KB
    上传者: ZHUANG
    基于DSP的异步串行通讯系统设计
  • 所需E币: 1
    时间: 2020-12-27 17:09
    大小: 1.54MB
    上传者: czd886
    基于DSP和LABVIEW的串行通讯研究
  • 所需E币: 3
    时间: 2019-12-25 21:12
    大小: 10KB
    上传者: quw431979_163.com
    典型的串行通讯标准是RS232和RS485,它们定义了电压,阻抗等,但不对软件协议给予定义,区别于RS232,RS485的特性包括如下几点.……
  • 所需E币: 5
    时间: 2019-12-25 21:02
    大小: 79.06KB
    上传者: 二不过三
    设有甲、乙两台单片机,以工作方式2,全双工串行通讯,每桢为11位,可程控的第9位数据为奇偶效验用的补偶位,本次课程设计要研究的是如何编写出能实现如下功能的单片机应用程序:甲机:每发送一桢信息,乙机对接收的数据进行奇偶效验。若补偶正确,则乙机向甲机发出“数据发送正确”的信息(现取00H)作为回答信号),甲机接收到乙机的此信息后再发送下一个字节。若奇偶效验错,则乙机发出“数据发送不正确”的信息(现取FFH作为回答信号)给甲机,要求甲机再次发送原数据,直至数据发送正确。甲机发送128个字节后才停止发送。乙机:接收甲机发送的数据,并进行奇偶效验,并发出相应的回答信息(即00H或FFH)给甲机,直到接收完128个字节为止。……
  • 所需E币: 4
    时间: 2019-12-25 21:01
    大小: 231.2KB
    上传者: 16245458_qq.com
    自动检测80C51串行通讯中的波特率……
  • 所需E币: 3
    时间: 2019-12-25 15:34
    大小: 315.63KB
    上传者: quw431979_163.com
    以单片机为核心设计并实现了小型自控飞艇的舵机控制系统,对系统的硬件设计进行了说明,对软件设计中的关键问题--串行通讯及帧识别、多单片机通讯及PWM波的软件产生方法进行了详细阐述.基于单片机的小型自控飞艇舵控系统设计曹毅1,姜戎2,王宏力1(1.第二炮兵工程学院,陕西西安710025;2.湖南航天局浮空器研发中心,湖南长沙410205)摘要:以单片机为核心设计并实现了小型自控飞艇的舵机控制系统,对系统的硬件设计进行了说明,对软件设计中的关键问题――串行通讯及帧识别、‘多单片机通讯及PWM波的软件产生方法进行了详细阐述。关键词:自控飞艇舵机控制串行通讯PWM波平流层飞艇是一种利用轻于空气的气体(如氦气等)产生浮力作为升力的飞行于平流层区域的飞行器。它依靠飞艇内部装载的轻于空气的气体产生的静升力,通过控制飞艇上的舵面和动力装置,以较小的能耗实现在平流层的飞行。倪备集成化组合导航和自主飞行控制系统的飞艇,可以实现在平流层空间准静止和常驻空自主飞行。它具有高空定点工作时间长、对地观测范围广、维修使用方便以及成本低等特点,因此可以根据任务需要在飞艇上安装相应的载荷,构成对地、对空任务平台。小型自控飞艇是为了验证平流层飞艇飞行特性和控制性能的小型软式试验飞艇,对其控制系统的研究是平流层飞艇研制中一个重要的过渡阶段,具有极其重要的意义。1小型自控飞艇舵控系统简介图1舵控系统设计总体框图舵机是小型自控飞艇执行机构中最主要的执行部件,能否快速、准确地完成对舵机的控制直接关系到飞……
  • 所需E币: 5
    时间: 2020-1-2 09:45
    大小: 175.44KB
    上传者: 二不过三
    自动检测80C51串行通讯中的波特率……
  • 所需E币: 5
    时间: 2019-12-25 04:03
    大小: 132.87KB
    上传者: 二不过三
    PLC和计算机间串行通讯方式及程序设计!""!年&月控制工程657!""!第’卷第;期)*+,-*./+01+22-1+0*3)41+58*.9’,:*9;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!文章编号:#""&!!""!)";""=>!"#和计算机间串行通讯方式及程序设计李琰#,郭宗仁#,王志凯#,李鹏!(#9福州大学电气系,福建福州;&"……