单片机串行通信里面的数据帧是怎么理解?一帧数据的位数可以改变吗?比如1+8bit+1+1,这样的就是一帧——

——那么一帧数据中间的8位可以是任意多位的吗?比如我有好多个传感器的数据等待发送到主机上,这样能不能一帧发完呢?就是1+nbit+1+1的模式可不可以呀?nbit是不是一... ——那么一帧数据中间的8位可以是任意多位的吗?比如我有好多个传感器的数据等待发送到主机上,这样能不能一帧发完呢?就是1+nbit+1+1的模式可不可以呀?nbit是不是一定是8位数据的整数倍呢?甚是不解,希望高手教小弟一把~谢谢了,分不多。 展开
 我来答
lylxy1965
推荐于2017-11-24 · TA获得超过2413个赞
知道小有建树答主
回答量:436
采纳率:100%
帮助的人:220万
展开全部
感觉你的概念不太清晰。上面所说的“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方式完成,你可以查阅一下资料,我记不住了。
追问
谢谢你,逐步建立概念了,谢谢~
发送最小单元——字节(比如:1+8+1+1),因为buffer最多就8位
帧的概念是N字节,对吧。这个N的字节的内容(包括信息头、数据、校验)是自己定义的,
帧=n个自己定义好协议的数据字节,这样理论上就可以连续发送任意多个字节并通过校验字节校验前面发送的N-1个字节了。而单个字节传送是最基本的传送单元,帧就像是放大版本的字节串行通信。我的理解对吗?
追答
正确。
曹远星
2011-07-07 · TA获得超过151个赞
知道答主
回答量:187
采纳率:100%
帮助的人:86.5万
展开全部
兄弟呀,你干吗要那么着急的想一侦数据就要发完呢?你需要的采集的频率很大吗?我来给你理下思路吧:首先,你得知道并且设置你传感器的采集位数,即采集的精度。其次,你需要多少个采集通道,比如有5个采集通道,那么,你在传数据的时候,就的将每个通道的数据附一个标记,比衡唤中如一通到为0X01,二通道为0X02等等。再次,你得将每个通链或道采集的数据放在单片机里的BUFFER里面,建议开一个缓存区来存放你一次采集的多个通道的数据,当然,每个通道采集的数据分开来放,然后,将这个缓存区的数据,一个个的读到串口咐山通信的TX(BUFFER),发送采用中断的方式来做,读数据采用循环指针来读。最后,你得弄清楚一侦数据里每个数据的意思,通信,都是有通信协议的,有同步通信与异步通信之分,主机与单片机之间,最好用相同的通信方式,你所说的串行通信,你可以在8BIT的数据里用一个字节来标识是哪一通道的数据、、、
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xjh22700
2011-07-07 · 超过29用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:57.8万
展开全部
51单片机串口世拿通信里所说的一帧数据,不同的工作模式帧的格式有可能不一样,比如工作模式3的帧格式为:1位起始位+8位数据位+1位可编程位+1位停止位。一次只能发送8比特的数据,像你说的1+n+1+1,这里的n只能是8,不能是其它数,意思是一帧数据最多只能包含一个搜晌搭字节的数据,如果想要发送N字节,那谨橡你必需发送N帧。明白?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Pula360
2018-09-20
知道答主
回答量:6
采纳率:0%
帮助的人:2877
展开全部
帧:本义,幅,用于字画;延伸,一个含段哗完备的结构整体;
串口帧:完燃塌整的数据整体单元,具体指:串口每次通讯所执行的数据集合,起始位、数据位、校验位、停止位;
通用的谈行串口数据表征:UART,N、8、1、9600;解释如下:异步串口,N个帧、8位数据、1停止位,9600bps波特率,即要求串口发送N个数据帧:N*(1(起始位,串口中至今永恒不变者)+8+1)=N*10=10N。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tdfzq
2011-07-07 · TA获得超过839个赞
知道小有建树答主
回答量:771
采纳率:75%
帮助的人:199万
展开全部
一般都是起始位、数据位、校验位,停止位。
你可以规定不同的通讯协议,传送你的数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式