1.为何收发双方的时钟频率相差5%以上就无法通讯?
答:异步串行通讯会积累误差,传输一个字节,在包含起始位和停止位的情况下,最少也要10bits,一旦1bits的误差在5%上,传输一个字节,就会累积产生50%以上的误差,该字节的电平就会直接变反,就无法继续通讯了。
即循环冗余校验码(cyclic redundancy check):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。crc校验可以简单地描述为:
例如我们要发送一些数据(信息字段),为了避免一些干扰以及在接收端的对读取的数据进行判断是否接受的是真实的数据,这时我们就要加上校验数据(即crc校验码),来判断接收的数据是否正确。在发送端,根据要传送的k位二进制码序列,以一定的规则(crc校验有不同的规则。这个规则,在差错控制理论中称为“生成多项式”。
)产生一个校验用的r位校验码(crc码),附在原始信息后边,构成一个新的二进制码序列数共k+r位,然后发送出去。在接收端,根据信息码和crc码之间所遵循的规则(即与发送时生成crc校验码相同的规则)进行检验,校验采用计算机的模二除法,即除数和被除数(即生成多项式)做异或运算,进行异或运算时除数和被除数最高位对齐,进行按位异或运算,若最终的数据能被除尽,则传输正确;否则,传输错误。例如:
信息字段**为:0000000100000010———对应m(x)=x8+x生成多项式为:g(x)=x8+x5+x4+1—对应g(x)的二进制**为:
100110001现在我们将要对2字节数据0x0102生成crc8校验码,并最终将生成的1字节crc校验码跟在0x0102的后面,即0x01 02 ####即8为crc码),最终生成的3字节数据就是经crc8校验生成的数据。以crc16-ccitt为例进行说明,crc校验码为16位,生成多项式17位。假如数据流为4字节:
byte[3]、byte[2]、byte[1]、byte[0];数据流左移16位,相当于扩大256×256倍,再除以生成多项式0x11021,做不借位的除法运算(相当于按位异或),所得的余数就是crc校验码。送时的数据流为6字节:byte[3]、byte[2]、byte[1]、byte[0]、crc[1]、crc[0]crc32的算法大致相同,但是在数据的安全上更强。
数据流同样要左移或右移32位。然后在通过生成项得到校验码。
for(i=0;i<256;i++)
crc32tbl[i]=crc;}
生成表之后,就可以进行运算了。我们的算法如下:1、将寄存器向右边移动一个字节。
2、将刚移出的那个字节与我们的字符串中的新字节进行xor运算,得出一个指向值表table[0..255]的索引。
3、将索引所指的表值与寄存器做xor运算。4、如果数据没有全部处理完,则跳到步骤1。算法的c语言描述。
temp=(oldcrc^abyte)&0x000000ff;
crc=((oldcrc>>8)&0x00ffffff)^crc32tbl[temp];returncrc;3.简述spi总线主从机配置方法与连接以及数据传输的过程。
答:spi总线可以配置成单主单从,单主多从,互为主从。在外部spi系统中,所有spsck引脚简单地彼此连接。
所有mosi引脚连在一起,所有mosi引脚连在一起。在传输数据期间,主机会发送数据给从机,同时从机获得数据。数据移位器可以高效的传输数据,数据存放在两个spi系统的spi移位寄存器。
spsck信号是主机时钟的输出,是从机的输入。spi的核。
心要素是spi移位寄存器,数据被写入到双缓冲的发射器和被转移到spi移位寄存器,然后数据传送开始。在接受8位的数据时,该数据被转移到双缓冲的接收器,在那里数据可以从spix_d读取。
嵌入式作业
电力设备测控系统中的总线通讯协议实现。程俊 200910302013 一 程序实现的功能 嵌入式系统作为测控系统主机,依次每隔30秒获取设备数据,发送给各个传感器。1 程序实现是通个定义的一个数组,然后数组中分别放入 起始标记aa 设备类型 设备编号 数据发送请求55 校验位这里采用求和校验,而将第...
嵌入式作业
专业 电子信息工程班级 电信10 1 任课教师 姓名 学号成绩。题目 查阅相关资料,你认为选用哪一种硬件 芯片 和软件比较适合本专业的要求?为什么?答 个人觉得选用三星的6410芯片更适合本专业的要求,6410对比与2440不会更容易被淘汰,而且现在6410有很多开发板可以供我们自学,比如飞凌的ok...
嵌入式作业
include 基本系统数据类型。include 提供socket函数及数据结构。include 标准输入输出。include 标准库。include 提供错误号errno的定义,用于错误处理。include 字符串函数定义。include read函数 write函数和getpid函数等头文件。i...