嵌入式系统中信息表示

上传人:一*** 文档编号:243697236 上传时间:2024-09-29 格式:PPT 页数:33 大小:207.50KB
返回 下载 相关 举报
嵌入式系统中信息表示_第1页
第1页 / 共33页
嵌入式系统中信息表示_第2页
第2页 / 共33页
嵌入式系统中信息表示_第3页
第3页 / 共33页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,*,嵌入式系统中信息表示,需要了解的基本知识,进位计数制与转换,二进制、十进制、十六进制以及相互转换,计算机中数的表示,原码、反码、补码,定点数:纯小数、纯整数,浮点数:尾数、阶数以及,IEEE,相关标准,需要了解的知识(2),非数值数据编码,字符和字符串的表示,(ASCII,码,字符串的存放,),汉字的表示方法,输入方法,统一代码,(,unicode,),需要了解的知识,(3),语音编码,音调、音强和音色,波形采样量化,采样量化的技术参数,采样频率,测量精度,声道数,差错控制编码,在通信过程中,经常会产生错误。产生错误的原因包括:,信道的电气特性引起信号的幅度、频率、相位的畸变;,信号反射;,串扰;,闪电、大功率电机的开关等。,线路传输差错是不可避免的,但要尽量减小其影响。通信双方可采取的对策是:接收方进行差错检测,并向发送方应答,告知是否正确接收。,奇偶校验(,Parity Checking,),在原始数据字节的最高位增加一个附加比特位,使结果中,1,的个数为奇数(奇校验)或偶数(偶校验)。增加的位称为奇偶校验位。,例如,原始数据,=1100010,,采用偶校验,则增加校验位后的数据为,11100010,。若接收方收到的字节奇偶结果不正确,就可以知道传输中发生了错误。,汉明码(海明码,),奇偶校验码只有一位监督位,只能指明有、无差错两种情况,故只能检错。为了纠错,必须增加监督位。汉明码是一种能纠正单比特差错的线性分组码。为了纠错,不仅要指明有奇偶差错,还要能确定差错的位置。,汉明码是,1950,年由美国贝尔实验室提出来的,是一种多重奇偶检错系统。,设线性分组码(,n,,,k,),有,k,个信息位,,r=n-k,个监督位。为了能确定,n,种位置上的差错及线性无差错,要求,r,的值为:,2,r,n+1=k+r+1,,即,2,r,-r,k+1,例如,,k=7,(,7,位,ASCII,字符),则,r=4,,汉明码长,n=7+4=11,。,如果,k=15,呢?,在汉明码字中,比特位从最左边位(位号为,1,)开始依次编号。位号为,2,的幂的位(,1,,,2,,,4,,,8,)是,r,个监督位(也称为汉明比特),其余位(,3,,,5,,,6,,,7,,,9,)是,k,个信息位。,例如,,7,个信息位为,D,1,D,2,D,3,D,4,D,5,D,6,D,7,,则汉明码表示为:,码位号,1,2,3,4,5,6,7,8,9,10,11,码位,P,1,P,2,D,1,P,3,D,2,D,3,D,4,P,4,D,5,D,6,D,7,校验子错码位置的对应关系,错码位号,汉明码位,S4,S3,S2,S1,1,P,1,0,0,0,1,2,P,2,0,0,1,0,3,D,1,0,0,1,1,4,P,3,0,1,0,0,5,D,2,0,1,0,1,6,D,3,0,1,1,0,7,D,4,0,1,1,1,8,P,4,1,0,0,0,9,D,5,1,0,0,1,10,D,6,1,0,1,0,11,D,7,1,0,1,1,无错码,写出校验子的表达式:,S,1,=P,1, D,1, D,2, D,4, D,5, D,7,S,2,=P,2, D,1, D,3, D,4, D,5, D,7,S,3,=P,3, D,2, D,3, D,4,S,4,=P,4, D,5, D,6, D,7,可以得出监督位的表达式:,P,1,=D,1, D,2, D,4, D,5, D,7,P,2,=D,1, D,3, D,4, D,5, D,7,P,3,=D,2, D,3, D,4,P,4,=D,5, D,6, D,7,以某一字符的,ASCII,码,1100011,为例,加以说明。先填入表中,如下图:,将码位中为,1,的码位号表示为二进制码,再按模,2,加求和,和为,0111,,即监督位。,将收到的汉明码中为,1,的各位码位号表示为二进制码,再按模,2,求和,无误码则为,0,。,若收到的汉明码为,11110000011,,结果如何?,码位号,1,2,3,4,5,6,7,8,9,10,11,码位,P,1,P,2,1,P,3,1,0,0,P,4,0,1,1,码位号,1,2,3,4,5,6,7,8,9,10,11,码位,1,1,1,1,1,0,0,0,0,1,1,循环冗余校验,(CRC),基本原理:在,k,位信息码后再拼接,r,位的校验码,整个编码长度,n,位。对于给定的,(n, k),码,可以证明存在一个最高次幂为,n-k=r,的多项式,g(x),,根据,g(x),可以生成,k,位信息的校验码,而,g(x),叫做这个,CRC,码的生成多项式。,几个基本概念,多项式与二进制数码,A(x)=x,5,+x,4,+x,2,+1,可以转换为二进制码组,110101,。,生成多项式:生成多项式,g(x),是接收端和发送端的一个约定。应满足以下几个条件:,生成多项式的最高位和最低位必须为,1,当被传送信息,(CRC,码,),任何一位发生错误时,被生成多项式做模,2,除后应该使余数不为,0,。,不同位发生错误时,应该使余数不同。,对余数继续做模,2,除,应使余数循环。,模,2,除,FCS,帧检验序列,将信息位后面添加的,r,位校验码,称为信息的,FCS,帧校验序列,(Frame Check Sequence),。,求得,FCS,的方法:假设发送的信息用多项式,C(x),表示,将,C(x),左移,r,位,则可表示成,C(x)*2,r,这样,C(x),右边就会空出,r,位,这就是校验码的位置。 通过,C(x)*2,r,除以生成多项式,g(x),得到的余数就是校验码。,例子:信息码为,11100110,,生成多项式为,11001,,采用,CRC,进行差错检测,求,FCS,的产生过程。,CRC,码的编码方法,将,x,的最高幂次为,r,的生成多项式,g(x),转换成对应的,r+1,位二进制数。,将信息码左移,r,位,相当于对应的多项式,C(x)*2,r,。,用生成多项式对信息码模,2,除,得到,r,位的余数,FCS,帧校验序列。,将余数拼到信息码左移后空出的位置,得到完整的,CRC,码。,CRC,码的出错模式,(,G(x,)=1011),收到的,CRC,码字,余数,出错位,码位,A7,A6,A5,A4,A3,A2,A1,正确,1,0,1,0,0,1,1,000,无,错误,1,0,1,0,0,1,0,001,1,1,0,1,0,0,0,1,010,2,1,0,1,0,1,1,1,100,3,1,0,1,1,0,1,1,011,4,1,0,0,0,0,1,1,110,5,1,1,1,0,0,1,1,111,6,0,0,1,0,0,1,1,101,7,若收到的码字为,1010,1,11,结果如何?如何纠错?,ARM,处理器中的信息表示,首先说明的问题:,51,单片机是,8,位的处理器,即指令代码为,8,位,以及可进行,8,位的数据处理(,ALU,)。,对于,32,位的,ARM,处理器来说,情况就复杂一些。它既可以运行,32,位的,ARM,指令系统,也可以运行,16,位的,Thumb,(拇指)指令系统。另一方面,它既可以处理,32,位数据,也可以处理,16,位数据和,8,位数据。,由于我们习惯于用,8,位作为一个单位(字节)来存储数据,每个存储单元分配一个存储地址,这样,8,位的,51,系统对指令的读取和数据的访问都只针对一个地址值。而在,32,位的,ARM,处理器中,,32,位指令要使用,4,个地址单元,,16,位指令要使用两个地址单元。,这样引出了一个问题:所存储的数据的排列问题。,先来看一段,51,单片机的代码,回顾一下,51,系统中的指令存放情况,:,00FBH,C3,CLR,C,00FCH,EF,MOV,A,R7,00FDH,33,RLC,A,00FEH,FF,MOV,R7,A,00FFH,EE,MOV,A,R6,0100H,33,RLC,A,0101H,FE,MOV,R6,A,0102H,E9,MOV,A,R1,0103H,33,RLC,A,0104H,F9,MOV,R1,A,0105H,E8,MOV,A,R0,0106H,33,RLC,A,对于,ARM,这样的结构,每个数据(或指令代码)要占,4,个存储单元(,32,位)或,2,个存储单元(,16,位),,ARM,规定有两种存储格式:,一种为大端(,big-ending,)格式,另一种称为(,little-ending,)格式,小端存储格式,位, 24,23 16,15 8,7 0,字节,A+3,字节,A+2,字节,A+1,字节,A,半字,A+2,的高字节,半字,A+2,的低字节,半字,A,的,高字节,半字,A,的,低字节,存储地址,0x0003,0x0002,0x0001,0x0000,注:这个例子中存储一个字(两个半字),一个称为半字,A,,另一个称为半字,A+2,。,以小端格式存储作答,存储值,2A,36,47,8B,63,74,AC,9E,00,8F,23,66,C3,A8,地址,0x00,0D,0C,0B,0A,09,08,07,06,05,04,03,02,01,00,半字,半字,7,半字,6,半字,5,半字,4,半字,3,半字,2,半字,1,字,字,3,字,2,字,1,半字,1,的地址是多少?值是多少?,半字,6,的地址是多少?值是多少?,字,2,的地址是多少?值是多少?,大端存储格式,位, 24,23 16,15 8,7 0,字节,A,字节,A+1,字节,A+2,字节,A+3,半字,A,的低字节,半字,A,的高字节,半字,A+2,的,低字节,半字,A+2,的,高字节,存储地址,0x0003,0x0002,0x0001,0x0000,注:这个例子中存储一个字(两个半字),一个称为半字,A,,另一个称为半字,A+2,。,以大端格式存储作答,存储值,2A,36,47,8B,63,74,AC,9E,00,8F,23,66,C3,A8,地址,0x00,0D,0C,0B,0A,09,08,07,06,05,04,03,02,01,00,半字,半字,8,半字,5,半字,6,半字,3,半字,4,半字,1,半字,2,字,字,3,字,2,字,1,半字,1,的地址是多少?值是多少?,半字,6,的地址是多少?值是多少?,字,2,的地址是多少?值是多少?,两种格式的说明和比较,对于字的存储来说,两种存储中字的存储地址没有差异,都是从低地址向高地址排列,但数据不一样。,半字的存储位置发生了变化。,字节的存储也发生了变化。,ARM,处理器虽然有两种存储的结构,但不一定有两种格式的选择。在硬件逻辑中有一个输入逻辑(,BRGEND,),存储格式是由外围模块控制这个输入逻辑决定的。,在很多处理器中,存储格式是固定的。如,X86,构架用大端存储,而,PPC,用小端存储。,思考题,存储器内的内容为:,如果是小端存储,,3,个字从高到低分别是?,如果是大端存储,,3,个字从高到低分别是?,如果是小端存储,,6,个半字从高到低分别是?,data,20,4A,50,CC,89,21,73,20,C0,2F,FF,3A,addr,0B,0A,09,08,07,06,05,04,03,02,01,00,再来看一段,51,单片机的代码,说明地址有效性的问题,:,0800H,00,NOP,0801H,7404,MOV,A,#04H,0803H,7D2F,MOV,R5,#2FH,0805H,2D,ADD,A,R5,0806H,0D,INC,R5,0807H,2D,ADD,A,R5,0808H,7590FF,MOV,P1,#0FFH,如果从,0802H,开始读取指令,指令代码为,04,(,INC A,),这是一个错误的操作。这种错误常常发生在程序跳转的时候。,地址对准,在,ARM,中,通常把正确的地址入口称为地址对准(,alignment,)。它包括字对准、半字对准。即,32,位时地址后两位为,0,,,16,位半字时地址最后一位为,0,。,不但对于指令要注意地址对准问题,对于数据的操作也要注意地址对准问题。,非对准情况下可能出现的结果,结果无法预测。,忽略非对准的地址地位。,在对存储器访问时,由存储器做如下处理:字访问忽略地址最后两位,半字访问忽略地址最后一位。,究竟产生哪一种结果取决于处理器所执行的指令,而不是哪款处理器有统一的处理结果。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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