1,can总线的帧格式很复杂包括起始位仲裁域控制域数据域

仲裁域,控制域,数据域 就可以了。
期待看到有用的回答!

can总线的帧格式很复杂包括起始位仲裁域控制域数据域

2,关于单片机读取汽车CAN数据的问题明白人进

期待看到有用的回答!
是的,通过CAN、SPI、IIC、UART等得到的基础数据都是Byte,最终为何种数据类型,需要根据双机之间通讯协议来组合。

关于单片机读取汽车CAN数据的问题明白人进

3,各位老师关于CAN总线的问题

差不多是这样的,我学校学过这的了,很久没有弄过了。参考资料链接那里有个文档,你可以看看。 从OSI网络模型的角度来看同,现场总线网络一般只实现了第1层(物理层)、第2层(数据链路层)、第7层(应用层)。因为现场总线通常只包括一个网段,因此不需要第3层(传输层)和第4层(网络层),也不需要第5层(会话层)第6层(描述层)的作用。 CAN(Controller Area Network)现场总线仅仅定义了第1层、第2层(见ISO11898标准);实际设计中,这两层完全由硬件实现,设计人员无需再为此开发相关软件(Software)或固件(Firmware)。 同时,CAN只定义物理层和数据链路层,没有规定应用层,本身并不完整,需要一个高层协议来定义CAN报文中的11/29位标识符、8字节数据的使用。而且,基于CAN总线的工业自动化应用中,越来越需要一个开放的、标准化的高层协议:这个协议支持各种CAN厂商设备的互用性、互换性,能够实现在CAN网络中提供标准的、统一的系统通讯模式,提供设备功能描述方式,执行网络管理功能。

各位老师关于CAN总线的问题

4,新手请问CAN总线问题

CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达1MBPS。CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。CAN主要是底层协议,而上面可以有多种应用层,包括CANOpen,DeviceNet等。目前的CAN规范版本为2.0,包括A和B两部分。CAN协议可以在本站下载。 查看全文(约240字)
CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达1MBPS。CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。CAN主要是底层协议,而上面可以有多种应用层,包括CANOpen,DeviceNet等。目前的CAN规范版本为2.0,包括A和B两部分。CAN协议可以在本站下载。 查看全文(约240字)

5,关于CAN总线的一些问题

1.标准格式数据帧包括:1位帧起始位,11位ID位+1IRQ位,8个控制位,8字节的数据位,2字节的CRC校验位,7个终止位(记得不一定全面)同时有码流控制功能,即位填充功能。当出现4个相同电平的位时,会在中间插入1个不同的位。码流填充区域包括从起始位一直到数据位结束。具体细节可以参见《现场总线CAN原理与应用》一书,北京航空航天大学出版社。2.11位标识符与屏蔽寄存器和代码寄存器组成了CAN总线的滤波模式。3.初始化总线定时寄存器,控制寄存器,输出寄存器,中断寄存器。4.屏蔽寄存器全部为0xFF,使滤波位“无关”5. 高8位为9,即为0000_1001,CODE0= 0000_1001 MASK0 = 1111_0110 (二进制表示)6. 这个我以前算过,《现场总线CAN原理与应用》一书中有详细介绍,现在书没有在手边,印象里是 BTR0 = 0x43;BTR1 = 0x1c;
can的总线协议和其他协议一样是分层协议,常用的有物理层、传输层、协议层,应用层、网络管理层;can控制器实现协议层,can驱动器和双绞线可以看做物理层和传输层,控制单元之间传输的信号是应用层的,网络管理层是基于应用和协议层实现的。所有ecu都是由处理器+can控制器+can驱动器构成(就can总线而言)只要满足物理层协议要求和应用层要求的设备都可以挂在can总线上,向笔记本,plc,手持设备等

6,汽车CAN通讯原理

1can是两根线,2can线上有两个状态,a隐性状态,两线电压2.5V,表示位为1。b显性状态,两线电压:低1.5V,高3.5V,压差2V;表示位为0;3以上2里的电压叫差分线路,为的是增加抗干扰性能,同时在高与低两根线上并入120欧姆电阻,防止信号震荡。4以上只是电路的硬件解释,下面以长城上的烽火台举个例子。5第一个台子,冒烟了,在131个时间单位里(一个报文131个位,也就是一个数据帧131个位),其他的台子,就会记录44个时间单位里,有没有冒烟结果是131个0与1组成的数字:100110010101100101100101(这里一共是131个哈,我没具体计数)。6如果有两个台子在冒烟,先冒烟a的不要停,接着冒烟。后冒烟的b停下来,接收a发出的信号。7两个台子同时冒烟,在前11个冒烟记数里,谁不冒烟(状态为0,显性电平,压差2V)发送的多,谁的优先级就高,就不会停,而其它的1-N个就会停下来 改为接收。8在一个131时间里,一个发出,其它的所有台子都会收到并记录这一串数字,然后根据领导的指示(或是军部的密码本)进行信息处理,如果能找到匹配密码的信息就把8个字节(一个131的帧有8*8位的数据内容,其它的131-64=67个位不是数据的)存下来,装进箱子里,A级文件装进第一个密码箱,B级文件装在第二个密码箱,每个箱子有三个格子,只能收三个文件。9在131个时间里收到的数据串,前11个是ID,就是编号。12位是扩展位,可以在扩展28个位。10一个131(叫报文,叫帧),有这样几个段,仲裁段(就是ID段,前面5678里提到的密码本就是在这一段做比对),数据段(8字节*8位),应答段,结束段。11仲裁里数据叫标识符,用来匹配密码本(叫筛选器,叫识别器,叫过滤器)。12每个can硬件有多个识别器,每个烽火台有多个密码本。两本是一个组。13每组密码本的方式,a一本指定检测位的,一本指定位的状态。比如第一本指定只看第3与5位,第二本指定3位与5位为0。那么只有这一种信息才能存后面的8个字(64位)b一本指定密码A,一本指定密码B。c与d记不清了。14密码本有11位,使用的时候用不了那么多个(11位为0-7ff,0-2046)所以可以前三个位是烽火台的编号,最后两位是功能码(比如信息紧急程度,或数据类型:int char bit),也就是说,仲裁段可以对密码,与可以当数据段来使用。15应答段只有两位,具体的忘了。16结束段有7位隐性电平,好像是这样的。
1. CAN通讯需要遵循CAN协议的电平、频率规定,和以太网协议不一致的,需要在电脑和单片机之间增加CAN控制器。单片机首先采样电机转速数据,通过CAN控制器转换成符合CAN协议的通讯数据,发送出去,在接收端也要通过CAN控制器把通讯数据转换成可读取的数据。2. 要设计电路的,如果要实现自动控制要编写控制程序的。
汽车上485通讯可以转换成can通讯。可以用硬件完成两种电平之间的转换,方法如下:1.两线制通信,半双工;2.独有的串口保护电路,具有抗静电、抗雷击、突波抑制功能,可带电热插拔;3.内有电源隔离模块,隔离电压3000 vdc;4.canbus数据线上瞬态干扰抑制,抗静电、防雷击;5.内置智能模块,自动识别canbus信号流向,无延时透明传输。

7,单片机串行通信里面的数据帧是怎么理解一帧数据的位数可以改变吗

最简单的控制(不想用数字电路的话)可以使用4位单片机(没见过吧?),一般复杂控制(比如空调、冰箱、热水器、微波炉等这类家电产品的控制都可以用8位单片机,你可以以这个为标准,凡是功能在这些以下的都可以用8位单片机。一些基础仪器,比如中低档的万用表、示波器、频率计、信号发生器都可以用8位单片机)比较复杂的控制(一些工业专用设备,比如汽车发动机信息采集,数据量比较大,但又较图形图像低的)可以用16位机。32位机一般是arm了,可以用来处理图形、图像、视频等多媒体信息,搭载windows ce操作系统(包括使用office 软件),可以有网络功能(tcp/ip),初初一看像台小电脑似的。
我没有见过,一般都是起止位、8个数据位、奇偶校验位。你的意思是你的单片机tx,rx口上接了两个或者两个以上的传感器采集设备,这个方法不适合,容易造成采集到的数据穿插混乱,采集时序有可能这样:甲设备发送完一个字节,然后乙设备发送一个字节,甲设备发送一个字节、甲发送一个字节、乙发送一个字节……单片机没法去区分这些字节信息。而你想要的结果是甲发送的时候,乙不能发送,只有甲发送完了乙才能发,或者乙发完了甲才能发。建议你找一个支持多串口的MCU吧,或者设置主从机来解决这个问题,因为当前我没有发现一次串行通信可以发n个字节的情况,都是1个字节
感觉你的概念不太清晰。上面所说的“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帧。明白?

文章TAG:can数据帧总共多少个位数据  数据帧  总共  
下一篇