微机原理及应用.docx

上传人:lao****ou 文档编号:626574 上传时间:2024-03-08 格式:DOCX 页数:3 大小:19.88KB
下载 相关 举报
微机原理及应用.docx_第1页
第1页 / 共3页
微机原理及应用.docx_第2页
第2页 / 共3页
微机原理及应用.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《微机原理及应用.docx》由会员分享,可在线阅读,更多相关《微机原理及应用.docx(3页珍藏版)》请在第一文库网上搜索。

1、姓名:XXX班级:机电1605(日期:名18.10.8)“微机原理及应用”2018秋季第13讲作业1 .异步串行通讯接口和同步串行通讯接口的硬件方面有什么区别?同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同步,发送端发送完一个字节后,可经过任意长的时间间隔再发送下一个字节。异步的二者的晶振需要相同,否则时间不同会产生差错。2 .异步串行通讯协议包含哪些内容?异步串行通信是指通信双方以一个字符(包括特定附加位)作为数据传输单位且发送方传送字符的间隔时间不一定,具有不规则数据段传送特性的串行数据传输。异步串行通信的数据格式异步通信数

2、据帧的第一位是开始位,在通信线上没有数据传送时处于逻辑1状态。当发送设备要发送一个字符数据时,首先发出一个逻辑“0”信号,这个逻辑低电平就是起始位0起始位通过通信线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此,起始位所起的作用就是表示字符传送开始。接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5,6,7或8位的数据。在字符数据传送过程中,数据位从最低位开始传输。数据发送完之后,可以发送奇偶校验位。奇偶校验位用于有限差错检测,通信双方在通信时需约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质,这种性质用于检错,虽

3、有限但很容易实现。在奇偶位或数据位之后发送的是停止位,可以是1位、15位或2位,停止位一直为逻辑T状态。停止位是一个字符数据的结束标志。在异步通信中,字符数据以图所示的格式一个一个地传送。在发送间隙,即空闲时,通信线路总是处于逻辑“I”状态,每个字符数据的传送均以逻辑“0”开始。3 .UTF-8、UTFT6和UniCOde三种编码格式之间是什么关系?Unicode详细介绍1 .容易产生后歧义的两字节unicode的第一个版本是用两个字节(16bit)来表示所有字符.实际上这么说容易让人产生歧义,我们总觉得两个字节就代表保存在计算机中时是两个字节.于是任何字符如果用UniCode表示的话保存下来

4、都占两个字节.其实这种说法是错误的.其实Unicode涉及到两个步骤,首先是定义一个规范,给所有的字符指定一个唯一对应的数字,这完全是数学问题,可以跟计算机没半毛钱关系.第二步才是怎么把字符对应的数字保存在计算机中,这才涉及到实际在计算机中占多少字节空间.所以我们也可以这样理解,Unicode是用0至65535之间的数字来表示所有字符.其中0至127这128个数字表示的字符仍然跟ASCII完全一样.65536是2的16次方.这是第一步.第二步就是怎么把0至65535这些数字转化成O1串保存到计算机中.这肯定就有不同的保存方式了.于是出现了UTF(unicodetransformationfor

5、mat),有UTF-8,UTFT6.2 .UTF-8与UTF-16的区别UTF-16比较好理解,就是任何字符对应的数字都用两个字节来保存.我们通常对Unicode的误解就是把UniCOde与UTF-16等同了.但是很显然如果都是英文字母这做有点浪费.明明用一个字节能表示一个字符为啥整两个啊.于是又有个UTF-8,这里的8非常容易误导人,8不是指一个字节,难道一个字节表示一个字符?实际上不是.当用UTF-8时表示一个字符是可变的,有可能是用一个字节表示一个字符,也可能是两个,三个.当然最多不能超过3个字节了.反正是根据字符对应的数字大小来确定.于是UTF-8和UTF-16的优劣很容易就看出来了.

6、如果全部英文或英文与其他文字混合,但英文占绝大部分,用UTF-8就比UTF-16节省了很多空间.而如果全部是中文这样类似的字符或者混合字符中中文占绝大多数.UTF-16就占优势了,可以节省很多空间.另外还有个容错问题,等会再讲看的有点晕了吧,举个例子.假如中文字汉对应的unicode是6C49(这是用十六进制表示,用十进制表示是27721为啥不用十进制表示呢?很明显用十六进制表示要短点.其实都是等价的没啥不一样.就跟你说60分钟和1小时一样.).你可能会问当用程序打开一个文件时我们怎么知道那是用的UTF-8还是UTF-16啊.自然会有点啥标志,在文件的开头几个字节就是标志.EFBBBF表示UT

7、F-8FEFF表示UTF-16.用UTF-16表示汉假如用UTFT6表示的话就是OIIO11oOO1Oo1ooI(共16bit,两个字节).程序解析的时候知道是UTF-16就把两个字节当成一个单元来解析.这个很简单.用UTF-8表示汉用UTF-8就有复杂点.因为此时程序是把一个字节一个字节的来读取,然后再根据字节中开头的bit标志来识别是该把1个还是两个或三个字节做为一个单元来处理.Oxxxxxxx,如果是这样的01串,也就是以0开头后面是啥就不用管了XX代表任意bit.就表示把一个字节做为一个单元.就跟ASCII完全一样.I IOxxxxx10xxxxxx.如果是这样的格式,则把两个字节当一

8、个单元II IOxxxx10xxxxxx1Oxxxxxx如果是这种格式则是三个字节当一个单元.这是约定的规则.你用UTF-8来表示时必须遵守这样的规则.我们知道UTF-16不需要用啥字符来做标志,所以两字节也就是2的16次能表示65536个字符.而UTF-8由于里面有额外的标志信息,所有一个字节只能表示2的7次方128个字符,两个字节只能表示2的11次方2048个字符.而三个字节能表示2的16次方,65536个字符.由于“汉的编码27721大于2048了所有两个字节还不够,只能用三个字节来表示.所有要用11IOxxxx10xxxxxx10xxxxxx这种格式.把27721对应的二进制从左到右填

9、充XXX符号(实际上不一定从左到右,也可以从右到左,这是涉及到另外一个问题.等会说.刚说到填充方式可以不一样,于是就出现了Big-Endian,1itt1e-Endian的术语.Big-Endian就是从左到右,1itt1e-Endian是从右到左.由上面我们可以看出UTF-8需要判断每个字节中的开头标志信息,所以如果一当某个字节在传送过程中出错了,就会导致后面的字节也会解析出错.而UTF-16不会判断开头标志,即使错也只会错一个字符,所以容错能力强.Unicode版本2前面说的都是unicode的第一个版本.但65536显然不算太多的数字,用它来表示常用的字符是没一点问题.足够了,但如果加上

10、很多特殊的就也不够了.于是从1996年开始又来了第二个版本.用四个字节表示所有字符.这样就出现了UTF-8,UTFI6,UTF-32.原理和之前肯定是完全一样的,UTF-32就是把所有的字符都用32bit也就是4个字节来表示.然后UTF-8,UTF-16就视情况而定了.UTF-8可以选择1至8个字节中的任一个来表示.而UTF-16只能是选两字节或四字节.由于unicode版本2的原理完全是一样的,就不多说了.前面说了要知道具体是哪种编码方式,需要判断文本开头的标志,下面是所有编码对应的开头标志EFBBBFUTF-8FEFFUTF-16UCS-2,1itt1eendianFFFEUTF-16UCS-2,bigendianFFFE0000UTF-32UCS-4,1itt1eendian.0000FEFFUTF-32UCS-4,big-endian.其中的UCS就是前面说的ISO制定的标准,和Unicode是完全一样的,只不过名字不一样.ucs-2对应utf-16,ucs-4对应UTF-32.UTF-8是没有对应的UCS

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服