异步串行传输一帧包含多少有效数据位,在异步串行传输时设一帧信息由1个起始位8个数据位1个扩展
来源:整理 编辑:亚灵电子网 2022-11-26 22:49:14
1,在异步串行传输时设一帧信息由1个起始位8个数据位1个扩展
一帧共11位,传输了一个字符。56kbps,就是每秒传送56000位。56000 / 11 = 帧数,即字符数
2,在异步串行传送系统中字符格式为1个起始位8个数据位1个校
一帧包含:1+8+1+2=12位 故波特率为:(1+8+1+2)*120=1440bps 比特率为:8*120=960bps一帧包含:1+8+1+2=12位,波特率:120×12=1440bps,比特率:120×(8÷12)=1080bps
3,51单片机的串口接收一帧数据有几位
发送的位数跟工作方式有关。51单片机的发送和接受,只有10位和11位两种。
先说单片机串口的工作方式:
单片机串口的工作方式共4种,方式0--方式3.
方式0:用移位脉冲。RXD做输入/输出,TXD进行移位。收发的数据为八位。
方式1:传送一帧信息为10位,即1位起始位(0),8位数据位(低位在先)和1位停止位(1)。数据位由TXD发送,由RXD接收
方式1:一帧信息也是10位;即 1位起始位,8位数据位(先低位),1位停止位。在起始位到达移位寄存器的最左位时,它使控制电路进行最后一次移位。
方式2和方式3:发送(通过TXD)和接收(通过RXD)一帧信息都是 11位: 1位起始位(0), 8位数据位(低位在先),1位可编程位(即第9位数据)和1位停止位(1)。
可见:不论单片机串口接收还是发送一帧数据是多少位,实际有效位数据位都是8位,其余位是为了奇偶校验、做起始位或终止位用的。
以前所述有误,特修正。
4,异步串行通信字符格式中数据位长度为多少
异步串行通信所谓异步串行通信是指具有不规则数据段传送特性的串行数据传输。异步通信中典型的帧格式是:1位起始位,7位(或8位)数据位,1位奇偶校验位,2位停止位。[1]数据位的个数可以是5,6,7或8位的数据。在字符数据传送过程中,数据位从最低位开始传输。[2]参考:[1]http://baike.baidu.com/link?url=ukvvcyvXROEA7w6PJMv1qRhLLvdsfxVHj2fcNH35D18aKNf8WYhYaliMm-t1RpOMntG_-g-HkkM24YVj6PvuZq[2]http://baike.baidu.com/link?url=MEy63WNfd_s6AvdaYvhEHVRhfIwv8Nj0DF6eUTui4-3LxoOLSCWaTgqqy4d_RH3XZfWsucPIMdgAZE5mRqzteq
5,单片机串行通信里面的数据帧是怎么理解一帧数据的位数可以改变吗
感觉你的概念不太清晰。上面所说的“1+8bit+1+1”应该是串行通讯一个字节的格式,属于串行通讯中的最小数据格式单位的一种:1个起始位+8个数据位+1个校验位+1个停止位(也有1+8+0+1等等),也就是说如果需要收发N个字节,就有N x (1+8bit+1+1)个这样的组合出现在TXD或RXD线路上,而不是1+nbit+1+1或者1+nx8bit+1+1。这些位中: 1、起始位和停止位:用于同步 2、校验位:用来保证通讯信息的正确性 3、8个数据位:设备需要的真正数据。 起始位和停止位都是收发双方UART适配器自身的硬件完成的,校验位需要程序处理及判断以便知道信息是否正确。一般而言,在初始化设置完成后,软件编程者只需要关注8个数据位及校验位就可以了。 下面说一下帧。 串行通信中,帧信息一般是根据需要自己约定而确定的。其内容一般是由多个8位单字节数据组成,比如你所说的传感器,需要采集电压值,电流值等信息,假设这些信息需要10个字节,那么你的一帧信息最少需要10个字节,也就是收发两方都需要计数,计数到10时才能说明通讯完成。这是最简单的,但大多数应用中规范的做法一帧信息都会包含帧头标识符、帧长度、信息内容及校验信息。给你个链接,这是我以前的回答,其中简单的叙述了帧协议,理解后你可以规定自己的帧格式。http://zhidao.baidu.com/question/273360213.html 对于多个传感器,应给每一个分配一个唯一的地址,只有地址相符的传感器才对主端的信息做应答。地址信息可以包含到通讯协议中,比如: 帧头 + 帧长度 + 中断地址 + 信息内容 + 校验和 如果使用的是51单片机,也可以用串行通讯方式3方式完成,你可以查阅一下资料,我记不住了。兄弟呀,你干吗要那么着急的想一侦数据就要发完呢?你需要的采集的频率很大吗?我来给你理下思路吧:首先,你得知道并且设置你传感器的采集位数,即采集的精度。其次,你需要多少个采集通道,比如有5个采集通道,那么,你在传数据的时候,就的将每个通道的数据附一个标记,比如一通到为0X01,二通道为0X02等等。再次,你得将每个通道采集的数据放在单片机里的BUFFER里面,建议开一个缓存区来存放你一次采集的多个通道的数据,当然,每个通道采集的数据分开来放,然后,将这个缓存区的数据,一个个的读到串口通信的TX(BUFFER),发送采用中断的方式来做,读数据采用循环指针来读。最后,你得弄清楚一侦数据里每个数据的意思,通信,都是有通信协议的,有同步通信与异步通信之分,主机与单片机之间,最好用相同的通信方式,你所说的串行通信,你可以在8BIT的数据里用一个字节来标识是哪一通道的数据、、、51单片机串口通信里所说的一帧数据,不同的工作模式帧的格式有可能不一样,比如工作模式3的帧格式为:1位起始位+8位数据位+1位可编程位+1位停止位。一次只能发送8比特的数据,像你说的1+n+1+1,这里的n只能是8,不能是其它数,意思是一帧数据最多只能包含一个字节的数据,如果想要发送N字节,那你必需发送N帧。明白?最简单的控制(不想用数字电路的话)可以使用4位单片机(没见过吧?),一般复杂控制(比如空调、冰箱、热水器、微波炉等这类家电产品的控制都可以用8位单片机,你可以以这个为标准,凡是功能在这些以下的都可以用8位单片机。一些基础仪器,比如中低档的万用表、示波器、频率计、信号发生器都可以用8位单片机)比较复杂的控制(一些工业专用设备,比如汽车发动机信息采集,数据量比较大,但又较图形图像低的)可以用16位机。32位机一般是arm了,可以用来处理图形、图像、视频等多媒体信息,搭载windows ce操作系统(包括使用office 软件),可以有网络功能(tcp/ip),初初一看像台小电脑似的。我没有见过,一般都是起止位、8个数据位、奇偶校验位。你的意思是你的单片机tx,rx口上接了两个或者两个以上的传感器采集设备,这个方法不适合,容易造成采集到的数据穿插混乱,采集时序有可能这样:甲设备发送完一个字节,然后乙设备发送一个字节,甲设备发送一个字节、甲发送一个字节、乙发送一个字节……单片机没法去区分这些字节信息。而你想要的结果是甲发送的时候,乙不能发送,只有甲发送完了乙才能发,或者乙发完了甲才能发。建议你找一个支持多串口的MCU吧,或者设置主从机来解决这个问题,因为当前我没有发现一次串行通信可以发n个字节的情况,都是1个字节
文章TAG:
异步串行传输一帧包含多少有效数据位