串行数据传输方式-KC07010301-a04_第1页
串行数据传输方式-KC07010301-a04_第2页
串行数据传输方式-KC07010301-a04_第3页
串行数据传输方式-KC07010301-a04_第4页
全文预览已结束

下载本文档

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

文档简介

1、物联网应用技术专业教学资源库文档文档来源院校开发文档编号KC07010101-a22串行数据传输方式(微课脚本)无锡职业技术学院星期日, 一月 23, 2022串行数据传输方式序号台词1同学们,大家好。今天我们开始学习“学习模块一 基于WSN的环境监控系统设备编程与实施”,本堂课的内容是“串行数据传输方式”。2在前面“RS232串行数据传输及读写原理”的视频中我们对串口的基本通信过程做了一个初步的介绍,并以串行通信双方传输字符大写字母A为例演示了串行数据传输的过程,在例中明确了串行通信双方采用ASCII码作为统一的字符编码;串行通信在实际应用除了传输字符外,还可传输数字,例如电表的电量计数数据

2、,当上位机通过串口读取电表的计数了,就是从串口输出的过程,下面就来认识一下字符、数字如何在串行通信中进行传输表示,有哪些方式?3今天我们的介绍主要包括以下四个方面:数据类型、数据表示、传输过程、方式特点。4先来看一下串行通信的数据类型5串行通信的数据类型主要有字符和数字两种,字符和数字信息都可用于标识、控制和描述通信双方的状态;以PC通过串行线路采集温湿度节点信息为例,假设当前温湿度传输器采集的温度值为28,温湿度节点把温度信息通过串口传给PC时,可把28作为字符“28”传给PC,也可把28作为十进制数字28传给PC,两者的区别在于计算机对字符“28”和数字28的表示不一样,字符“28”的AS

3、CII或UTF-8编码为0x32 0x38,数字28的原始二进制为0x1c,可以看到不同的数据表示形式其二进制是不相同的,所以通信双方需要在通信前协商好通信规范,节点的串口通信规范在后面进行介绍,通过通信规范来约定双方传输的数据格式及具体数据位的作用。那为何字符“28”和数字28在计算机中如何表示的呢,二者的二进制形态为何差异如此之大?6接下来介绍串行通信数据表示,即计算机对数据的编码7计算机对字符进行表示时采用国际统一的字符编码,如表示英文字符、标点8位的ASCII码,表示简体中文的16位GB2312-80编码,兼容ASCII、GB2312-80的国际统一编码UTF-8,不同编码得到的二进制

4、位数不一样,UTF-8为不定长编码,例如字符”A”的ASCII码输出为8位的二进制,十六进制表示为0x41;GB2312-80编码输出为16位的二进制,十六进制表示为0x00,0x41;UTF-8编码输出为8位的二进制,十六进制表示为0x41。8计算机对数字的表示可采用两种形式:字符形式以及和硬件、数据类型相关的二进制编码,例如前面提及的数字28,可采用字符“28”或数字28两种进行表示,采用数字对应的某种数据类型二进制编码时须注意不同的硬件平台下,相同数据类型的大小(即二进制输出)有可能不一样,例如16位硬件平台下C语言的数字int类型大小为16位,而32位硬件平台下int类型大小为32位;

5、此处以上例中提及的数字28为例说明其在32位硬件平台下相应的数据类型二进制转换,计算机结果以十六进制显示,首先把数字28作为十进制数通过除2操作计算其对应的二进制位为00011010,十六进制为0x1c,把数字28作为int类型在计算机中存储时,其对应的十六进制为0x00 0x00 0x00 0x1c,占32位;把数字28作为short类型在计算机中存储时,其对应的十六进制为0x00 0x1c,占16位,那把数字28作为long类型在计算机中存储时,其对应的十六进制为什么,占多少位呢,请同学自行思考。9接下来结合示例介绍不同类型数据的串行传输过程10通过前面对串行数据类型、表示的介绍,相信大家

6、对字符、数字数据有了一定的了解,下面还是以PC通过串行线路采集温湿度节点信息为例,复盘下数字28的字符、数字传输过程;传输数据时串行通信双方须先约定好数据格式、串口属性等通信规范,并约定采用字符传输还是数字传输,现以字符“28”传输为例说明传输全过程,首先串行通信双方约定串口数据位为8位、1位停止位、无校验位,波特率为9600bps,同时协商好以字符、UTF-8方式对字符“28”进行编码,得到二进制输出为,端接收到后采用对其进行解码得到字符。11数字28传输与字符“”传输过程不同在于双方约定的编码形式及传输的二进制不一样,首先串行通信双方也需约定串口属性:数据位为8位、1位停止位、无校验位,波

7、特率为9600bps,同时协商好数字数据类型为int,得到数字28的int数据类型编码十六进制输入为0x00 0x00 0x00 0x1c,端接收到0x00 0x00 0x00 0x1c后采用数据类型转换方式,把二进制转换为其对应的int数值。12最后对串行传输的方式进行特点介绍13串行数据的传输归根结底都是转换为二进制形式进行传输,按照二进制形态划分可分为数据类型编码、字符编码两种形式,数据类型编码方式的只适用于数字传输,只需转换为二进制即可传输,转换步骤少,但是不同语言、不同硬件平台相同数据类型的二进制编码有可能不一样,如位硬件上C语言的类型占位,而位设备上占位,不同硬件平台间直接以数字数据类型二进制编码传输时存在数据无法解析问题;字符编码适用于字符、数字传输,相互数据类型间转换步骤较多,但同时采用统一字符编码对数据进行编码保障了数据位的统一,便于不同间的

温馨提示

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

最新文档

评论

0/150

提交评论