CANopen学习——协议栈】的更多相关文章

协议,是双方都提前商量好的通讯约定. 例如:发送1代表灯亮,发送0代表灯灭. 但由于只是单bit的0和1在通信时,抗干扰太弱,且多种控制时不能区分,此时扩展一下协议. 例如:  头      地址     功能    数据    校验 0x33   0x01   0x0A   0x01   0xxx 这样一条比较完整的协议就构建成功. 协议栈:按照各层(数据链路层.应用层)之间的协议,把数据经过各种加工处理(添加各种包头.包尾),形象的反应出数据的处理.传输的过程. 协议是定的标准,协议栈是各层…
对于初学者,相对于其他总线的资料来说,在国内CANOpen的资料并不多.而且并不是所有资料都适合初学者看的.这里给出一些建议,对CANOpen感兴趣的,可以参考一下学习的顺序. 前提:需要对CAN总线有所了解,可以看CAN2.0总线的资料.当然,对计算机系统.单片机以及编程也需要有一定的基础. 第一步:CANOpen Standard 301,这个是一切的基础,最然并不一定马上就要对所有的细节了如指掌,但至少对CANOpen总线以及各种传输控制方式以及其作用需要有一定的了解(比如:NMT.SDO…
在发送和接收之间必须相互协调和同步,为此,CANopen引入同步的概念. 同步报文:包含一个数据字节或者不含数据字节的CAN报文.数据字节中包含一个从1开始递增计数的同步计数器.溢出值可在参数(索引1019h)来设置,同步报文的发送和接收方都必须使用同步计数器(可避免双方计数有差,达不到同步目的) 标识符:标识符是每条报文(帧)的优先级标志,标准为11位,扩展为29位.同步报文的标识符为80h,该值保存在对象字典Sync-COB-ID(索引1005h),可配置. 同步窗口和同步周期:两个参数用户…
查找资料时,发现一个很好的博客,博主剖析的通俗易懂 http://www.cnblogs.com/winshton/p/4897556.html   PDO定义: 过程数据对象,用来传输实时数据.因为CAN报文是8Byte数据位,所以最多传输64bite的数据. PDO的内容: PDO消息的内容是预定义的,或者在网络启动时配置的. 通信参数: 通信参数描述PDO的特性. PDO的的传输方式: 事件触发: 当数据变化时,立刻发送出去,不需要等待主机轮训才发送,所以实时性好,而且避免重复数据占用大量…
看不懂的知识硬着头皮也要看.读了当时虽然不理解,但脑子里对其相关名词.概念有印象,继续看下去,多读几遍,一定会在某个地方顿悟.  CAN总线只是定义了物理层和数据链路层,并没有定义应用层.这么优秀的总线,在各个厂家推广使用的时候,会出现总线上各家的通信协议不能够相互兼容.交流.为了解决这通信格式统一,Cia像秦朝统一度量衡一样推出CANopen协议. CANopen,是一种通信协议,不仅定义了通信数据帧的定义,包括头.功能码.数据.CRC.结束等,还把各种设备强制定义成"类".例如,I…
CanOpen协议实现了物理层和数据链路层,OSI模型是完整的7层. OSI模型网络七层包括物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 物理层:提供信息传输的物理连接通道,包括使用的光线.无线.双绞线等等.为上层提供一条物理传输通道服务.此层传输的数据单位:bit. 数据链路层:提供信息传输的抽象化的链路,包括数据链路的建立.拆除.数据的解析.校验.纠错.重发.为上层提供可靠.无差错的的数据传输服务.此层传输的数据:帧. 网络层:当设备之间是一对多.多对多的传输时,物理层不唯一…
[资料] http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp http://www.kerneltravel.net/ [代码] https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.14.tar.xz [管理] phabricator [计划] (1)用phabricator管理学习计划 (2)先学习协议栈,理由是和当前数通相关…
一.前言 经过上次的学习,相信大家已经初步学会使用zigbee协议进行发送和接受数据了.今天,我们要进行的实验是按键的实验,学会如何在协议栈里实现按键中断. 二.实验功能 在协议栈上实现按键中断,BUT1 按下,LED1 闪烁两次. 三.代码讲解 大家还记得,前面做过的按键实验是怎么配置的吗,其实基于zigbee的协议栈原理是差不多的,我们要对按键的接口和状态是差不多,TI已经为我们建立了专用的按键配置的代码文件,我们只要在此基础上修改就行了.先打开hel_key.c进行修改,下面是代码 #de…
一.前言 这次实验我们来学习基于zigbee的串口通信实验,揭开zigbee神秘的面纱,让大家可以用zigbee协议编制属于自己的程序,这次实验只是串口发送数据,并没有进行无线的数据传输,为的是使大家熟悉zigbee协议栈工作的流程,复杂的实验以后会进行,循序渐进嘛. 二.代码讲解 大家还记得裸机实验里怎么使用串口功能的吗?我们裸机使用串口功能的步骤是: (1) 串口初始化:    (2) 执行任务(发送/接收). 其实,跟裸机实验里的串口实验一样,本实验也是按照同样的步骤来进行的,第(1)步不…
一直很喜欢内核,但是新手,非常的痛苦啊.现在看一本linux内核协议栈源码解析一书,将自己学习的经历以及 理解记录下来,以备将来回头查漏补缺,同时校正自己的理解错误,自勉…