ImageVerifierCode 换一换
格式:DOC , 页数:4 ,大小:74.50KB ,
资源ID:3021736      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3021736.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(通用异步串行通讯接口一般应用方法.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

通用异步串行通讯接口一般应用方法.doc

1、通用异步串行通讯接口一般应用方法通用异步串行通讯(UART,以下简称:串口通讯),是一般嵌入式工程控制系统中使用非常普遍的一种通讯方式,又主要是以 TTL 电平、RS232、RS485 或 RS422 总线方式为最多。所以,一般从事工控行业的 IT 工程师,需撑握串口通讯的一般应用方法,包括接口总线的硬件及通讯协议的软件。但还是有不少的工程师对此不了解,因此该技术文章对串口通讯应用相关的硬件及软件进行一些描述。串口设备在一般的 PC 机、单片机、ARM 处理器等常用的 CPU 都有,且有些芯片多达好几个串口。串口通讯是按“字节”进行数据传输,每一个字节的传输由这几个位元素组成:起始位、数据位、

2、校验位、停止位。其中,数据位由应用程序填装,校验位是通过应用程序设置相应的控制寄存器设置,为可选位。设置好校验并填装好要发送的数据后,串口控制器会自动生成数据通讯的波形。因此在通讯波形中就会根据校验设置,增加或不增加校验波形时钟。串口通讯的时序如下所示: 空闲:通讯线上没有任何数据在通讯,这时通讯电平为高电平(均以 TTL 进行说明) 起始位:通讯电平由高电平变为低电平,表示开始 数据位:开始位以后,接就是数据位,且低位在前,高位在后。(根据不同的控制器,通讯位可设置为 7 位、 8 位、9 位,具体的要视应用而确定) 校验位:根据数据位的高电平个数及校验设置要求,在该位出现一个高电平或低电平

3、 停止位:通讯电平由低电平变为高电平后且通讯位数据位已达到指定个数,则表示停止通讯。串口通讯的各通讯电平距离说明:TTL:最长安全通讯距离视控制器而定,一般不要超过 30cmRS232:最长安全通讯距离不要超过 2MRS485/RS422:最长安全通讯距离不能超过 1KM如果两个通讯设备在同一个 PCB 基板或很近的两个板卡之间,可以使用TTL 电平进行通讯,如同一机箱内的两个单片机微控制系统。如果两个通讯设备相距很近,但没有在同一系统中,可以使用 RS232 进行通讯,如控制系统与 PC 机之间。如两个通讯设备之间距离非常远,则必须使用 RS485 或 RS422 方式进行通讯,如室外环境控

4、制与检测设备与控制室的服务器或管理器之间的通讯。串口通讯的基本硬件连接方式:TTL 连接:RS232 连接:RS485 连接:RS422 连接:电路连接说明:使用 TTL 或 RS232 进行串口通讯时,需要共地处理,即两个系统的地线需要连接在一起,且最好想办法尽可能减小信号线受到外界的干扰,以保证通讯的可靠。由于 RS482 和 RS422 使用的是差分信号进行通讯,所以不需要也没必要共地。但是,由于 RS485 和 RS422 的通讯距离比较长,因此受到外界环境的共模干扰信号也比较严重,特别是冲击波类型的信号,因此,在 RS485 和RS422 的通讯线一定要使用双绞线,且连接线的最端口位

5、置,需要增加 TVS、放电管等对冲击脉冲信号及弱小雷电信号的过滤,对 RS485 和 RS422 驱动芯片进行保护。由于使用这种通讯方式的特殊性,因此有必要将通讯驱动部份与系统部份隔离,典型的隔离方法就是使用光电隔离。串口通讯应用软件:无论使用 TTL、RS232、RS485 、RS422,都需要应用软件对通讯数据进行打包、发送、数据接收、组装、解析,都需要针对自己的应用,编排有利于自己的数据包格式及协议。通常情况下,会相对地设置通讯主机及从机。如远程数据采集系统的应用中,数据服务器是主机,数据采集终端为从机。通讯主机主动发出数据请求,从机等待并接收到有效数据或指令后进行相应处理或回应。因此数

6、据发送过程及数据接收过程则成了串口通讯编程中的重要工作。对于大多数应用中,可以按如下的编程思路:数据发送:准备工作:需要一个全局的数据发送 BUFF 及发送数据的计数变量,且需要将串口初始化为可使用数据发送状态,关闭串口发送中断。1、 组装要发送的数据,并装入数据发送 BUFF 中,同时统计好数据发送的字节数,放入发送数据的计数变量中。2、 设置并打开串口的发送中断。3、 串口中断服务代码中,检查是否为发送中断。如果是,则检查是否为发送 FIFO 为空,确认后,向串口发送的 FIFO 中放入一定的数据量(该数据量是根据相应的发送 FIFO 数量而定,如 STM32F103,一次只能放一个字节。

7、),同时重新统计要发送的数据个数。如这时发送的数据个数变为 0,表示要发送的数据已发送完毕,则关闭串口的发送中断。数据接收:准备工作:同样,需要一个全局的数据接收 BUFF 及接收到数据总字节数的计数变量,并初始化串口为可接收数据状态,同时打开串口接收中断(如是类似于 WinCE系统,它有一个数据接收线程,即类似于数据接收中断)。1、 当中断产生时,检查是否为数据接收中断状态,如果是,则从控制器的数据接收 BUFF 中读取数据并存入全局的数据接收 BUFF,同时统计接收个数。2、 对当前所接收到的数据或接收到的数据个数进行判断,根据通讯协议的约定,判断本次的数据包是否接收完毕(有些简单的通讯协

8、议,是根据一个特定的字符来进行判断,较为完整点的通讯协议,每一个通讯包可能都有不同的数据长度,这时可以解读数据包中的标识符来判断所接收的数据长度)。如果没有接收完毕,最好是启动一个超时检查定时器(时间一般为 3-5 个字节通讯所花的时间)或重新装载定时器的值,退出中断代码。如接收完毕,则向特定的数据 BUFF 或功能函数发消息,并关闭超时检查定时器。同时清理全局的数据接收 BUFF 及计数变量,为下一个数据包做准备。3、 如果超时检查定时器产生中断,则说明通讯数据出了错,这时需要清理全局的数据接收 BUFF 及计数变量,为下一个数据包做准备,并关闭定时器。用这种方式进行数据发送的好处就是简单可靠。主要的应用程序中,需要数据发送时,只需要组装好数据并打开发送中断即可,然后数据发送的整个过程,均由中断服务代码完全。在实际代码编写中,数据的接收及处理,要比数据的发送复杂得多!因为在接收数据时,要拼装数据、判断数据是否接收完成、校验数据、解析数据。为了数据的可靠,一般在通讯数据中,都会加入CRC16 校验码。如我们所设计的步进电机控制系统,在通讯数据中包含如下元素:起始数据、指令数据、设备地址、有效数据长度、数据、CRC16 校验码。到此,串口通讯的基本使用方法(硬件、软件)已介绍完,如说得不对或不好,请指正,谢谢。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。