can通讯简介

can通讯简介
can通讯简介

CAN全称为Controller Area Network,即控制器局域网,由德国Bosch公司最先提出,是国际上应用最广泛的现场总线之一。最初CAN 被设计作为汽车环境中的通讯,在汽车电子控制装置之间交换信息形成汽车电子控制网络。由于其卓越的性能、极高的可靠性和低廉的价格现已广泛应用于工业现场控制、医疗仪器等众多领域。

CAN协议是建立在OSI 7层开放互连参考模型基础之上的。但CAN协议只定义了模型的最下面两层:数据链路层和物理层,仅保证了节点间无差错的数据传输。CAN的应用层协议必须由CAN 用户自行定义,或采用一些国际组织制订的标准协议。应用最为广泛的是DeviceNet和CANopen,分别广泛应用于过程控制和机电控制领域。但此类协议一般结构比较复杂,更适合复杂大型系统的应用。笔者在研制一种基于CAN总线的分布式高频开关电源充电机系统的过程中设计了一种适合于小型控制系统的CAN总线高层通信协议。

2 CAN的特点

CAN 是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率、抗电磁干扰性,而且要能够检测出总线的任何错误。当信号传输距离达10km时,CAN仍可提供高达50kbps 的数据传输速率。

CAN具有十分优越的特点:

(1) 较低的成本与极高的总线利用率;

(2) 数据传输距离可长达10km,传输速率可高达1Mbps[7];

(3) 可靠的错误处理和检错机制,发送的信息遭到破坏后可自动重发;

(4) 节点在错误严重的情况下具有自动退出总线的功能;

(5) 报文不包含源地址或目标地址,仅用标志符来指示功能信息和优先级信息。

3 CAN的技术规范

(1) 帧类型

在CAN总线中,有四种不同的帧类型[4][5]:

·数据帧(Data Frame) 数据帧带有应用数据;

·远程帧(Remote Frame) 通过发送远程帧可以向网络请求数据,启动其他资源节点传送他们各自的数据,远程帧包含6个不同的位域:帧起始、仲裁域、控制域、CRC域、应答域、帧结尾。仲裁域中的RTR位的隐极性表示为远程帧;

·错误帧(Error Frame)错误帧能够报告每个节点的出错,由两个不同的域组成,第一个域是不同站提供的错误标志的叠加,第二个域是错误界定符;

·过载帧(Overload Frame)如果节点的接收尚未准备好就会传送过载帧,由两个不同的域组成,第一个域是过载标志,第二个域是过载界定符。

(2) 数据帧结构

数据帧由以下7个不同的位域(Bit Field)组成:帧起始、仲裁域、控制域、数据域、CRC域、应答域、帧结尾。

[4]

·帧起始:标志帧的开始,它由单个显性位构成,在总线空闲时发送,在总线上产生同步作用。·仲裁域:由11位标识符(ID10-ID0)和远程发送请求位(RTR)组成,RTR位为显性表示该帧为数据帧,隐性表示该帧为远程帧;标识符由高至低按次序发送,且前7位(ID10-ID4)不能全为显性位。标识符ID用来描述数据的含义而不用于通信寻址,CAN总线的帧是没有寻址功能的。标识符还用于决定报文的优先权,ID值越低优先权越高,在竞争总线时,优先权高

的报文优先发送,优先权低报文退出总线竞争。CAN总线竞争的算法效率很高,是一种非破坏性竞争。

·控制域:为数据长度码(DLC3-DLC0),表示数据域中数据的字节数,不得超过8。

·数据域:由被发送数据组成,数目与控制域中设定的字节数相等,第一个字节的最高位首先被发送。其长度在标准帧中不超过8个字节。

·CRC域:包括CRC(循环冗余码校验)序列(15位)和CRC界定符(1个隐性位),用于帧校验。l应答域:由应答间隙和应答界定符组成,共两位;发送站发送两个隐性位,接收站在应答间隙中发送显性位。应答界定符必须是隐性位。

·帧结束:由7位隐性位组成。

4 自订CAN高层协议

CAN的高层协议也可理解为应用层协议,是一种在现有的底层协议(物理层和数据链路层)之上实现的协议。由于充电机系统的结构比较简单,网络规模也比较小。因此我们自行制订了一种简单而有效的高层通信协议。

技术规范CAN2.0A规定标准的数据帧有11位标识符,用户可以自行规定其含义,将所需要的信息包含在内。在充电机系统中,每一个节点都有一个唯一的地址,地址码和模块一一对应,通过拨码开关设定,总线上数据的传送也是根据地址进行的。由于本系统规模较小,节点数少于32个,因此为每个模块分配一个5位的地址码,同一系统中地址码不得重复,系统初始化时由外部引脚读入。将标识符ID9-ID5定义为源地址,ID4-ID0定义为目的地址,本协议中从模块的目的地址全填0,表示数据是广播数据,所有节点都可接收,主模块中目的地址根据要进行通信目的模块的地址确定。

理论上源地址和目的地址的范围都是0~31,但由于CAN协议中规定标识符前7位不能全为显性位,所以源地址不能为31,这时实际节点只有31个(0~30)。因此每个系统所含的模块不超过31个。所以源地址和目的地址的范围缩减到0~30。同时上位监控机也要占用一个地址,因此系统中的电源模块不超过30个,设计时根据节点的优先权高低从小到大分配节点地址。ID10位定义为主模块识别码,该位主模块为隐性位,从模块为显性位,以保证主模块通信优先。模块的地址码决定发送数据的优先级。主模块向总线发送的数据有两种:一种是目的地址全部填0的广播数据;另一种是包含特定目的地址的非广播数据。

协议中一帧数据最多能传送8个字节,对于充电机控制系统来说已经足够用了,本系统只用到其中的前5个字节,其余3个节字可用于以后的扩展使用,因此未定义多帧传输方式。

从模块以广播形式向总线发送数据,同时回收自己发送的数据,若检测到所发送与所收到的数据不符,则立即重新发送上一帧数据。从模块发送信息的顺序由主模块的发出的指令决定,以免在总线通信繁忙时优先级较低的模块始终得不到总线通信权。指令的发送顺序按照各从模块的地址顺序进行,即地址较低的从模块首先获得指令,得以发送自己的地址码和电流、温度采样值。如发生冲突,则由CAN控制器自动根据模块的优先级调整发送顺序,在CAN 的底层协议中有完善的优先级仲裁算法,因此应用层协议不必考虑此类问题。

对于每个模块,上电1s后若未收到任何通信信息,则按计算延时发送自身的地址码和温度电流采样值。延时时间的计算为[6]:

tdelay=T×ADD

其中:tdelay-为延时发送时间;

T-为单位延时时间常数,该值根据通信速率定义;可以取1个位周期,在波特率为100kHz时为10μs;

ADD-为模块地址编码。

主模块是ID10=0的模块,因此具有最高的优先级。上电后主模块首先向总线广播发送自身的地址码和温度电流采样值,然后即按顺序向从机发送指令,等待从机的回答。主机1秒钟后若未收到任何通信信息则认为该模块出错,发出报警。同样从机1s后若未收到主机任何通信信息则认为主机出错,按照源地址优先级由其余模块中地址最低的模块充当主模块,并将其ID10由1改为0,以获得最高通信优先权。

各模块检测到自身故障时,将切断输出,退出通信,并向上位机报警,同时发出声光报警。

5 结束语

本文中所介绍的CAN高层通信协议,结构简单、使用灵活、可靠性极高,实现也比较容易。很适合在节点数不多、通信可靠性要求高、控制结构较简单的小型控制系统中应用,具有一定的实用价值

CAN总线通信接口及程序设计毕业设计

机电工程学院 毕业设计说明书设计题目: CAN总线通信接口及程序设计 2012 年 5 月21 日

目次

1 CAN总线介绍 1.1 CAN总线的发展背景 随着汽车产业的发展,需要一种更利于信息数据传输交换的通信协议。汽车中的各种电子控制系统需要较高的技术支持,而随着汽车的发展,汽车是否安全、是否便利、成本是否低、是否舒适都已成为人们首要考虑的事情。但是传统的汽车控制技术已不足以满足人们越来越高的要求,也已不适以汽车的发展方向。20世纪80年代,德国Bosch公司着手研究用于汽车产业的新的通信协议及控制方法,并首先提出了CAN总线控制系统。这一崭新的网络协议使得汽车产业得到了飞速的发展。 CAN总线最明显的特点是最大程度地减少了汽车控制系统中的线束的数量及长度,另外还大大提高了系统控制的可靠性和稳定性。在没有CAN总线协议之前,一辆汽车中用于各种控制通信的线束的总长度达3公里之长,严重影响了汽车的通信速度和通信精度。并且还使汽车的整体结构繁冗复杂,可靠性低,成本高,难以维护。因此CAN总线的出现无疑具有重大的意义和作用。作为一种新的网络通信协议,CAN总线不仅减少了汽车中线束的长度,还提高了汽车的整体性能,极大的促进了汽车产业的发展。 CAN总线刚被提出的时候,仅仅应用于汽车产业上,但CAN总线通信协议的性能和可靠性经过多年的检验,已被应用于越来越多的产业,比如航空、船舶、机床等产业设备方面。仅仅二十多年的发展,CAN总线便已成为自动化领域技术的潮流。 CAN总线是串行通信网络。传统运用的是基于R线构建分布式控制系统,这种传统的控制系统是基于通信节点的地址编码的,因此其结构复杂,直接导致系统的通信效率不高,并且控制的可靠性能低。CAN总线通过每个网络节点进行数据通信,每个节点可以互相收发数据,CAN总线协议对通信数据编码,不对节点地址编码,使各个节点可以同时接收到相同的数据,大大增强了数据通信的实时控制及传输性能。另一方面CAN总线使用起来非常方便。CAN总线的结构十分简单,仅有2根线(CANH和CANL)和外部设备相连,但CAN总线的内部却有非常复杂和智能的通信模块,可以方便快捷准确无误的进行数据

矩阵通信协议Ver2.0 20131018

矩阵协议 一、通讯格式: 1. 通讯方式:RS-485/RS-232 2. 波特率:9600 3. 数据位格式:1位起始位,8位数据位,无校验位,1位停止位命令格式A.标准控制指令格式(8字节): 字节7(校验)= 字节1+字节2+字节3+字节4+字节5+字节6 二、矩阵切换指令说明: 标准控制指令说明:(矩阵系统使用主控键盘等正常控制时使用。) CAM_L:摄像机低位地址 CAM_H:摄像机高位地址,容量为FFFF(65535) MON:监视器号(01-40) 例:3号图像切换到2号监视器: F8 03 00 81 02 00 00 86 2号图像切换到2号监视器: F8 02 00 81 02 00 00 85 256号图像切换到5号监视器: F8 00 01 81 05 00 00 87 注:拼接屏软件只用本条指令即可。 MON:监视器号(01-40) T:自由切换时间(01-F0)秒 ID:操作员号(键盘号、用户号) CAM_L:摄像机低位地址 CAM_H:摄像机高位地址,容量为FFFF(65535) MON:监视器号(01-40) T:图像停留时间 ID:操作员号(键盘号、用户号) 键盘操作:数字+cam+数字+F2 5、屏蔽图像

CAM_L:摄像机低位地址 CAM_H:摄像机高位地址,容量为FFFF(65535) MON:监视器号(01-40) ID:操作员号(键盘号、用户号) MON:监视器号(01-40) ID:操作员号(键盘号、用户号) 键盘操作:62+PROG MON:监视器号(01-40) ID:操作员号(键盘号、用户号) 键盘操作:62+PROG MON:监视器号(01-40) TU:0-监视器自由切换,01-40监视器系统队列切换组号ID:操作员号(键盘号、用户号) MON:监视器号(01-40) TU:单组号(01-10) ID:操作员号(键盘号、用户号) MON:监视器号(01-40) SA:通步切换组号(01-40) ID:操作员号(键盘号、用户号) MON:监视器号(01-40) ID:操作员号(键盘号、用户号)

实验八 IIC通信协议

实验八I2C通信协议 一、实验目的: 1、培养学生阅读资料的能力; 2、加深学生对I2C总线通信协议的理解; 3、加强学生对模块化编程的理解; 二、实验环境: 1、硬件环境:PC机一台、单片机实验板一块、母头串口交叉线、USB电源线; 2、软件环境:keil uVision2集成开发环境; STC-ISP下载上位机软件; 三、实验原理: 要学会I2C通信协议的编程,关键是要看懂并掌握其时序图,理解对I2C通信协议相关子程序的实验编写。I2C通信协议的总线时序图如下所示: I2C总线时序图 I2C相关子程序的详细介绍 1、起始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。 2、结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。 起始信号和结束信号的时序图如下所示: 起始信号和结束信号的时序图 起始信号的流程如下:

1、SCL和SDA拉高,保持时间约为0.6us-4us; 2、拉低SDA,保持时间为约为0.6us-4us; 3、拉低时钟线 结束信号的流程如下: 1、SCL置高电平,SDA置低电平,保持时间约为0.6us-4us 2、SDA拉高,保持时间约为1.2-4us; 应答信号:接收数据的IC在接收到8bit数据后,向发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收到应答信号后,根据实际情况作出是否继续传递信号的判断。 若未收到应答信号,由判断为受控单元出现故障。应答信号的时序图如下所示: 应答时序图 发送时的应答信号 ;**********应答信号********** ACK: SETB SDA ;数据线置高 SETB SCL ;时钟线置高 ACALL DELAY JB SDA,$ ;等待数据线变低 ACALL DELAY CLR SCL ;时钟线置低 RET 注意:这里如果数据线一直为高将进入死循环,所以一般我们都会在这做一个容错的处理。具体的程序如下: ACK: MOV R4,#00H SETB SDA SETB SCL LOP0: JNB SDA,LOP DJNZ R4,LOP0 ;循环255次 LOP: ACALL DEL CLR SCL RET 接收时的应答信号

各种通信协议

分层及通信协议 协议软件是计算机通信网中各部分之间所必须遵守的规则的集合,它定义了通信各部分交换信息时的顺序、格式和词汇。协议软件是计算机通信网软件中最重要的部分。网络的体系结构往往都是和协议对应的,而且,网络管理软件、交换与路由软件以及应用软件等都要通过协议软件才能发生作用。 一、通信协议 1、什么是通信协议 通信协议(简称协议Protoco l),是指相互通信的双方(或多方)对如何进行信息交换所一致同意的一整套规则。一个网络有一系列的协议,每一个协议都规定了一个特定任务的完成。协议的作用是完成计算机之间有序的信息交换。 通信网络是由处在不同位置上的各节点用通信链路连接而组成的一个群体。通信网必须在节点之间以及不同节点上的用户之间提供有效的通信,即提供有效的接入通路。在计算机通信网中,将这种接入通路称为连接(connection)。建立一次连接必需要遵守的一些规则,这些规则也就是通信网设计时所要考虑的主要问题。 (l)为了能在两个硬件设备之间建立起连接,应保证在源、宿点之间存在物理的传输媒介,在该通路的各条链路上要执行某种协议。 如果传输线路使用电话线,则要通过调制解调器将信号从数字转换成模拟的,并在接收端进行反变换。 如果用的是数字传输线路,则在数据处理设备和通信设备之间,必须有一个数字适配器,以便将数字信号的格式转换成两种设备各自所期望的形式。 为了在两个端设备之间互换数据,需要协调和同步,调制解调器和数字适配器必须执行它们自己的协议。 无论是模拟的还是数字的通信设备,调制解调器和数字适配器的状态必须由接到节点上的设备来控制,这里必定有一个物理的或电气的接口来执行这种功能,执行某种适当的协议来达到这一控制目的。 (2)在计算机通信网中,许多信息源都是突发性的(bursty),问题是要利用信息的这种突发性质来降低消耗在线路上的费用,由此开发了许多共享通信资源的技术。所谓共享,是指允许多个用户使用同一通信资源,这就产生了多用户的接入问题。多路接入

矩阵联控协议添加及使用说明

西联电子矩阵联控协议添加 使用说明书 PRODUCT MANUALS FOR MATRIX JOINT CONTROL ADD PROTOCOLS

目录 第1章准备工具....................................................................................................................... - 1 - 第2章获取代码....................................................................................................................... - 2 - 2.1连线............................................................................................................................... - 2 - 2.2获取代码....................................................................................................................... - 2 - 第3章编辑协议. (5) 第4章连线............................................................................................................................... - 7 - 第5章上位机操作................................................................................................................... - 8 - 附录 ............................................................................................................................................ - 11 -

CAN总线学习心得--重要

CAN总线学习心得--重要 SJ A1 0 0 0 的常用标准波特率设置,为什么基本上都是单次采样?即使是低速的时候也是这样的,既然T SEG1 的设置周期都很大,比如都大于1 0 了,为什么不让他采样三次呢?答:是不好理解,但那是Ci A 推荐的值。用5 1 系列芯片和两个SJ A1 0 0 0 接口还要外扩一个RAM,请问5 1 的AL E 能否同时与三个芯片的AL E 管脚相连( 地址不同) 有哪位高手做过双SJ A1 0 0 0 冗余的请指教!答:能同时连接。请问CAN 总线在想传输1 0 0 0 m 的情况下, 最快的速度能到多少呢?答: 5 0 k b p s = 1 3 0 0 m。如果一个网络中只有 2 个节点, 其中一个处于监听模式,另一个节点发送报文会使处于监听模式的节点进入中断吗?答:能进入接收中断,你自己的试验也可以证明。想组建一个简单的CAN 网络, 已经有两个节点, 我想问CAN 总线如何组建, 终端电阻安装在哪里?小弟还没有入门, 大虾们指点一下。答1 :直接将节点CANH 和CANL 连到总线上,终端电阻接在总线两端,大约1 2 0 欧。答2 :推荐北航出版《现场总线CAN 原理与应用技术》,研读一下。请问各位老师:我是一名c a n 总线的新手,我正在做c a n 总线的开发,控制器用s j a 1 0 0 0 t ( 我自己两个控制板互通) , 但我在发送数据后将出现总线关闭,我看到发送错误计数器在不断增加,直到0 x f f 最后恢复到0 x 7 f , 谢谢各位老师帮我解答这个问题。或者对我给与启发答1 ;首先调通单个节点。答2 :这是单节点发送没有成功( 或者由于网络中其他节点没有收到帧并在响应场响应) 建议参考网站CAN 应用方案。我想请教各位c a n 远程贞有何作用?如何应用?在什么情况下才需要用到远程贞?谢谢了!答:远程帧的用与不用完全取决你自己的协议,c a n 有远程帧的功能,是可用可不用的!用网站提供的计算波特率的工具算出的数,1 2 k 以上的都正确,无论是自接收还是两个节点通讯都没有任何问题。但是1 2 k 以下的数据一个都不能用,两个节点通讯没有成功的,自接收有1 0 k 的几个数据成功。我们的项目要求必须在1 0 k 以下,最好是5 k ,但是不成功,自己计算的数据也没有成功的。(我们至少试验了3 0 多个,所有情况都考虑了。)我现在怀疑s j a 1 0 0 0 的波特率根本达不到5 k 和相对应的传输1 0 k m。或者可以谁能提供个经过实践检验的正确的总线定时器0 和1 的设置呢?要求低于1 0 k 。答:PCA8 2 C2 5 0 / 2 5 1 可以保证5 KBPS 的速率;比如Z L GCAN 系列接口卡。答:t j a 1 0 5 0 在低速时好像有问题。我用1 0 5 0 进行5 k 的时候不行,用8 2 c 2 5 0 很好,你可以试一试。我本想双机调试,一边收,一边发,但跑程序后,发送方会不断进入复位模式,所以现在进行自测试模式,我先进入复位模式,设置进入PEL I CAN 模式,对寄存器初始化后,设置接收,发送中断使能,最后设置进入自接收,单滤波模式,这样初始化就结束了,我的ACR0 ~ ACR3 为0 x 5 5 , 0 x 5 5 , 0 x 5 5 0 x 5 0 , AMR0 ~ AMR3 为0 x f f , 之后,我就往BUF F ER 里填数,0 x 8 8 , 0 x 5 5 , 0 x 5 5 , 0 x 5 5 , 0 x 5 0 , 0 x 3 0 , 0 x 3 1 , .0 x 3 7 , 之后,启动自接收请求命令,但是程序只进入了中断一次,是发送空中断,接收中断没有产生,我读发送错误寄存器,发现有错误产生,我读接收计数寄存器,为0 ,说明我没有收到数,但我读接收BUF F ER 时,值为0 x 5 5 , 0 x 5 5 , 0 x 5 5 , 0 x f f , 0 x f f , 0 x f f , 0 x f f , 0 x f f , 0 , 0 , 0 , 0 , 0 , 以上测试时,我在CANH 和CANL 之间加入了两个1 2 0 欧的匹配电阻并联在一起的,请各位高手指点呀,谢谢了答:在总线上加个CAN 接口卡会方便许多,或者加个捕获功能的示波器也可以检测波形。仿真环境:k e i l u v 2 编译器:k e i l c 5 1 7 . 0 仿真器:t k s - 5 9 1 s c p u : p 8 7 c 5 9 1 程序大小:8 K 左右兄弟在一片CPU 中烧写了一个,运行一个CAN 总线,I I C 总线测试程序能够正常运行。这个基础上加上应用程序后在仿真机中运行正常,但是烧写到c p u 后插入c p u 程序不能运行,请问是什么原因?另外一个问题:在另外一个项目中条件相同,程序只有4 K, 程序正常跑着,CAN 接口可以检测到输出波形但是却不能正确传输数据,在一块旧板子上就可以,比较两者之后发现电路完全相同测量也正常,只是布局不同,请教原因。答:程序已运行了吧?可能是HEX 文件有错;编制程序时注意P8 7 C5 9 1 的ERAM 设置、6 CL K 设置。位流数据采样自发送节点的8 2 c 2 5 0 的T x 管脚。测试条件:p e l i c a n ,扩展,双滤波模式,对方I D:0 x 8 8 , 0 x 1 1 , 0 x 5 5 , 0 x 1 0 ,发送的对方I D 为:0 x 8 8 , 0 x 1 1 , 0 x 0 0 , 0 x 0 0 ,发送2 字节数据为:0 x 0 5 , 0 x 0 6 采集的位流数据如下:0 1 0 0 0 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 请教位流数据的含义?答:自行计算时要区分位,还需要进行“位填充”的逆运行;简单的方法是将此信号连接

CAN总线应用

设计(论文)题目:基于CAN总线的楼宇温度检测系统 前言 基于单片机实现传统温度检测技术的特点,提出了基于CAN总线的楼宇温度检测系统方案。该系统方案的硬件平台主要包括温度检测模块和主控平台,并详细介绍了其硬件实现、软件设计思想及流程。实验表明:该系统可实现对楼宇温度的实时检测,并由数码管显示检测结果,对异常情况进行处理,从而实现对楼宇房间温度的有效检测。 在传统的检测技术中,温度检测基本采用单片机系统为主,且大多数都针对工业需要,日常生活中的应用并不多;而通信多基于落后的485总线,不能进行远距离的实时数据传输,更不能与因特网相连,可靠性也不高。因此,本文提出一种基于CAN总线的温度测控技术,该技术适合远距离控制与传输,具有非常高的可靠性。 控制器局域网(Controller Area Network,CAN)是国际上应用最广泛的现场总线之一。CAN总线最早出现在20世纪80年代末的汽车工业中,由德国BOSCH公司最先提出,其主要特性为低成本,且总线利用率高。CAN采用串行通信方式工作,所提供的最高数据传输速率为1Mbit/s,最大通信距离为10km。CAN还具有可靠的错误处理和检错机制,极强的错误检测能力,发送信息遭到破坏后可自动重发;可在高噪声的干扰环境中只用,能够检测出产生的任何错误,当数据的传输距离达到10km时,CAN仍能提供5kbit/s的数据传输速率。 正是基于CAN总线的上述优点,目前CAN总线在众多领域被广泛应用,其应用范围不再局限于原先的汽车行业,而向过程工业、机械工业、纺织工业、数控机床、医疗器械及传感器等领域发展,CAN总线已经形成国际标准,并已被公认为是几种最有前途的现场总线之一。 考虑到CAN总线的高可靠性和远距离传输优点,结合目前温度检测技术的技术瓶颈,即距离短和实时性差的特点,本系统CAN总线应用于传统的温度检测中,也是一种新的尝试。

金灿视频矩阵控制协议Ver2.0说明书

随机资料,使用前请务必仔细阅读! AV/VGA/RGB 矩阵切换器 串口控制协议 (版本:2.0)

A V/VGA/RGB矩阵切换器串口控制协议Ver2.0 2 目录 前言 (3) 一、通用说明 (4) 1.1、通信接口 (4) 1.2、设备号 (4) 1.3、切换模式 (4) 二、控制命令 (6) 2.0 控制命令表 (6) 2.1 查询状态 (7) 2.2、查询设备型号 (7) 2.3、修改设备号 (8) 2.4、切换矩阵 (8) 2.5、指定输入、输出端口 (9) 2.6 预案的操作 (10) 2.7 轮询的操作 (11) 2.8 切换矩阵(多路) (12)

3 A V/VGA/RGB矩阵切换器串口控制协议Ver2.0 前言 1.本说明书用于描述新矩阵的控制协议(Ver2.0),为原《矩阵的使用说明书》的补充材料,必要时他们可以相互参考。 2.Ver2.0版的控制协议是在旧版控制协议(Ver1.0)的基础上继承、扩展而成,Ver2.0版控制协议完全兼容旧版控制协议;旧版的矩阵控制程序、用户自己开发的矩阵程序都可以在新版控制协议的矩阵下运行,而且功能相同。

A V/VGA/RGB矩阵切换器串口控制协议Ver2.0 4 一、通用说明 1.1、通信接口 控制主机与矩阵切换器的缺省通信设置为: 波特率:9600 数据位:8 停止位: 1 奇偶校验:无 流控制:无 控制主机与矩阵切换器RS232的连接线结构如下表: 矩阵控制线采用235直通的连接线,而非“交叉”线。 1.2、设备号 设置号,简称ID号,用一个字符表示,为“A”-“Z”的一个大写字母; 设置号方便用户在一条串口总线上串接多台设备,只要各设备的设备地址设为不同值就可实现互不干扰的控制,节省主控设备的串口资源。 每条控制指令都是以设备号开始的,用于指示需要控制的矩阵; 也就是说,只有设备号与控制指令指定的设备号相同的矩阵才会执行该指令。 在指令中可以用设备号“*”,它是通配符、设备广播号,意指任何矩阵都要执行此指令。 注:在多机串接的情况下,设备号尽量不要使用那些在控制命令中会出现的那些字母,如:A、I、L、O、P、S、T 1.3、切换模式 矩阵的类型有:VGA/RGB矩阵、纯视频矩阵、音频矩阵,也有视音频矩阵、VGA+音频矩阵、VGA+视音频的混合矩阵; 矩阵中每种类型的信号都可以同时控制,也可以单独、分开切换。 切换模式就是用于指定矩阵中各种类型信号的切换方式的。它是一个字符,用在控制指令

云台通讯协议

竭诚为您提供优质文档/双击可除 云台通讯协议 篇一:几种云台控制协议 pelco产品协议解析 pelco(派尔高)的监控器材在我国有很广泛的应用。pelco有自己的传输控制协议,当它的产品配套使用时,可以互相兼容。但在某些情况下,由于工程的需要,要求用其它设备(比如电脑)来控制pelco的矩阵或镜头,这就要求充分了解pelco的传输协议。诶诺基数码科技有限公司的视频解码软件可完全兼容pelco协议,可通过pc机控制pelco的各种设备。 本文为你详细解析pelco常用协议之一:pelco-d协议pelco-d协议 pelco-d协议一般用于矩阵和其它设备之间的通信。它的格式如下: 所有的值都是用的16进制表示。同步字通常都是$FF。 地址码是指与矩阵通信的那台设备的逻辑地址,可以在设备中设置。命令字1和命令字2设置如下: sence码与bit4和bit3有关。在bit4和bit3为1的

情况下,如果sence码为1,则命令就是自动扫描和和摄像机打开;如果sence码为0,则命令就是手动扫描和摄像机关闭。当然如果bit4或bit3为0的话那命令就无效了。 数据1表示镜头左右平移的速度,数值从$00(停止)到$3F(高速),另外还有一个值是$FF,表示最高速。数据2表示镜头上下移动的速度,数值从$00(停止)到$3F(最高速)。 校验码是指byte2到byte6这5个数的和(若超过255 则除以256然后取余数)。 pelco-d&pelco-p协议格式 高速球的设置主要包括协议的选择和消息的发送。高速球的型号是:tmd-scs18dn使用的协议有:bo1,alec,pelco -9600,pelco-4800,pelco-2400,ao1, santach1650,peaRmain,kony19.2kbkony20.832,hd600,lil in,kalatel,Vcl,tota,wj-Fs616,philips,ad.厂家设置的 是pelco-2400.该协议的具体内容如下: pelco-d协议一般用于矩阵和其它设备之间的通信。它的格式如下: 同步字通常都是$FF。 地址码是指与矩阵通信的那台设备的逻辑地址,可以在设备中设置。 是自动扫描和和摄像机打开;如果sence码为0,则命

矩阵控制协议V2.0

16进制通讯协议 1 16进制通讯协议 矩阵系统提供 RS-232通讯接口,用户可参考以下的通讯协议和控制代码,自行编写相应的控制软件,或在使用第三方控制系统来控制矩阵系统时,按以下的通讯协议和控制代码来设置所用 的第三方控制系统通讯参数。 * 在用串口命令控制设备前,请仔细确认以下参数是否正确: 1) 波特率是否与控制设备一致; 2) 设备地址是否与命令中的一致; 3) 确认校验和字节没有落掉,无论用户用或是不用校验,这个字节都不能少; 4) 确认串口线是交叉的,即第二针对第三针,第三针对第二针; 5) 设备地址从0到255,为了适应各种场合的应用,本系列的切换器把地址分为三大类:地 址0和地址255都表示广播,即任何设备都接收这两个地址的命令,区别是地址为0的广 播命令要求设备回数,而地址为255的广播命令要求设备不回数,其他地址的命令必须 和设备中的地址一致,设备才会响应此命令,并返回有效信息。 * 命令格式: BAH(1) + 地址(2) + 命令(3) + 长度(4) + 切换模式(5) + 数据1…数据n(6) + 校验(7) 说明: 1) BAH字节表示帧起始,H表示“BA”为16进制数,BAH相当于10进制数的188; 2) 地址字节表示用户为切换器设定的地址;设备的地址在接口配置选项中由用户根据需要 在 (1-255)之间设定,主要用于设备的级连,文挡中将用DevAddr来表示; 3) 命令字节表示本命令的功能和在命令集中的序列号; 4) 长度字节等于从本字节往后(不包括本字节),到校验字节(包括校验字节),所包括的字 节 个数; 5) 切换模式表示要切换的是音频、是视频、还是VGA信号或是这几种信号的组合,分别 用 十六进制数A0H,A1H,A2H,A3H,A4H,A5H,A6H和AFH来表示,其中AFH表示通配符,可 切换任何设备,对应关系见下表,后面的指令范例均以VGA设备(A0H)为例。 命令A0H A1H A2H A3H A4H A5H A6H A7H AFH 型号VGA Video Audio VGA/Audio Video/Audio DVI HDMI SDI ALL 6) 数据段(数据1,…数据n)表示这条命令的数据部分,每条命令各不相同,之后详细 解释。 7) 校验 =BAH + 地址 + 命令 + 长度 + 同异步模式字节+ 数1 + …+ 数n(高位超过FFH溢出 自动丢 失);。 1) BAH为帧起始; 2) 01H表示设备地址; 3) 01H表示命令类型; 4) 06H表示后面的字节长度(括号中的内容); 5) A0H为切换模式; 6) 00H 02H 02H 01H 为数据部分; 7) 68H为校验和 68H = BAH + 01H + 01H + 06H + A0H + 00H + 02H + 02H + 01H 溢 出位 自动丢失。 2 串口命令功能概述 1) 串行数据格式为:

CAN总线学习笔记二:CAN自收发程序解读

CAN总线学习笔记二:CAN自收发程序解读 花了一整个下午的时间,彻头彻尾的把 PIAE小组提供的CAN自收发源程序解读了一遍。解读别人的程序是一件挺费时费力的一件事,但是在 对某项技术或者说某个芯片的入门阶段参考别人的程序又是一项必不可少的任务。 对于这个程序,头一个任务当然是把头文件先浏览一遍,能弄明白 的还是先弄明白,对后面程序的解读有好处。C文件里给出了三个头文 件: #include #include #include 第一个reg52.h我就不废话了,下一个intrins.h我在上一篇日志里也详细的作了说明,这里也不提了。can_selfdef.h是程序员自己定义的一个头文件,在这个头文件里除了一些宏定义和管脚的一些 说明外,最重要的就是要弄明白“CAN总线SJA1000寄存器地址定义”。这个我开始也没弄明白,后来反复琢磨,才发现作者在这个 程序里吧SJA1000的寄存器作为单片机的外 部扩展RAM寻址了,从而省去了编写一些底层的驱动程序,这就让大家连SJA1000的datasheet的时序图都不用看了 (不过下一步我想用驱动程序来控制SJA1000)。 看完头文件,可不能从第一个程序依次往下看。应该直接找到主程 序main()解读: void main(void) {

//MCU初始化(主要是各中断寄存器的初始化) SJA_RST = 1; //CAN总线复位管脚复位无效 SJA_CS = 0; //CAN总线片选有效 EX1 = 1; //开MCU外部中断INT1 IT1 = 0;//MCU外部中断INT1为电平触发,也是CAN总线接收中断口 IT0 = 1;//MCU外部中断INT0为下降沿触发 EX0 = 1; //开MCU外部中断INT0 EA = 1; //开MCU总中断 SJA_CS = 1; //CAN总线片选无效,使得对数据总线的操作不会影响SJA1000。 //SJA1000初始化 CAN_init(); //对SJA1000寄存器的读写是采用外部寄存器寻址方式, //所以不需要程序单独控制 片选有效无效 _nop_(); _nop_(); //主循环

科迪矩阵通讯协议[1]

基本功能描述: 控制器或计算机通过RS232接口发出指令,包括查询指令,切换指令,锁定解锁指令等等,矩阵的控制板在收到这些指令之后,将这些数据通过485总线转发给对应的视音频切换板〔或其他电路板〕,并将结果回传给发出指令的控制器或计算机。控制器或计算机发出切换指令之后,还要自动发出查询指令,以检验指令的执行情况是否正确。 通讯协议 字符定义:SOH:ASCII码“01”,起始标志字符 EOT:ASCII码“04”结束标志字符 ACK:ASCII码“06”正确应答字符 NAK:ASCII码“0x15”错误应答字符 ‘N’代表矩阵所有层,’V’代表视频,’A’代表音频左声道,’B’代表音频右声道。 默认速率为9600,N,8,1 控制器(计算机)与控制板通讯协议 1:查询指令 SOH ‘RD’‘N’〔V,A〕‘0’‘0’CHECK-SUM EOT 这里,‘RD’为查询指令的关键字,‘RD’后面的’N’代表查询矩阵所有层,该字符可能的替换字符为’V’或’A’,其中,’V’表示视频,’A’表示音频,如果是’V’则表示只查询视频,’A’表示只查询音频。‘0’‘0’代表输出口第一路,如果是第二路则为‘0’‘1’,‘0’‘A’是16进制的10代表第11路,‘0’‘F’代表第16路,依此类推。CHECK_SUM为校验和,关于校验和的算法见后面。 ――应答指令如下: SOH ‘DR’‘U’〔L〕‘V’‘0’‘0’‘A’‘0’‘0’‘B’‘0’‘0’CHECK-SUM EOT ‘DR’表示对‘RD’指令的应答,’U’表示该路未被锁定可以进行操作,’L’表示被锁定,不能进行切换。’V’代表视频,‘A’代表音频,‘B’代表音频右声道,下同。’V’后面的’0’‘0’表示被查询输出口的视频输入路数为第一路,同样,音频的左右声道输入都是第一路,如果是第二路则为‘0’‘1’,下同。 如果出现错误,例如,视频板没有应答,则结果如下: SOH ‘DR’‘U’〔L〕‘V’‘T’‘O’‘A’‘0’‘0’‘B’‘0’‘0’CHECK-SUM EOT ‘T’‘O’是TIME OVER即超时的意思,表示在规定的时间内没有收到应答信号,或者是板子不存在,或者是板子故障。如果音频板故障,则应答‘A’‘T’‘O’。 2:切换指令 SOH ‘WR’‘N’〔V,A〕‘x’‘0’‘0’‘y’‘0’‘0’CHECK-SUM EOT 这里,‘WR’为切换指令的关键字,’x’表示目的数,’y’表示源数,’x’‘0’‘0’‘y’‘0’‘0’表示把输入1切换至输出1,’x’‘0’‘F’‘y’‘0’‘F’表示把输入16切换至输出16。一次最多只能发送2组切换数据,不可超过此限制!

VGA RGB矩阵通讯协议-V1.0

TC87H系列矩阵控制协议 版本:V1.00 日期:2006-06-20

1U机箱矩阵通讯协议 字符定义: “*”,起始标志字符 “#”,结束标志字符 “!”,应答字符 矩阵收到一组切换指令时的应答。 ‘N’代表矩阵中所有类型信号如VGA、复合视频、音频等, ‘R’代表RGB矩阵或VGA矩阵, ’V’代表复合视频, ’A’代表音频左声道, ’B’代表音频右声道, ’D’代表SDI数字视频, ’S’代表RS422, ’Y’代表YUV分量。 SOH代表十六进制数 “0x01” 对应的ASCII码,读指令应答起始标志字符。 EOT代表十六进制数 “0x04” 对应的ASCII码,读指令应答结束标志字符。 默认速率为 9600,N,8,1。控制线连接方式为2、3交叉,5接5。 测试推荐使用本公司随设备提供的控制电缆。 下面所有发送的指令都以*开始,以#结束。所有字母皆为大写。 输入输出路数,01表示第1路,全部为10进制数,16X16规模以下矩阵所有的输入输出路数用2位数表示,10以下路数前面加0。 控制器(计算机)与控制板通讯协议 (一):切换指令 若矩阵中同时存在VGA、复合视频、音频等,可用N表示对这些信号同时进行切换的操作。如果要单独切换VGA、复合视频或音频,就把N替换为R、V或A。 A:单路切换: *01N01# 这里N前面的数表示输入端口数,01表示第1路,N后面的数表示输出口数。 以下是视音频矩阵的几个示例: *01N06# 输入1切换到输出6,视音频齐切。 *10N06# 输入10切换到输出6,视音频齐切。 *02V08#输入2切换到输出8,只切换视频。 B:多路切换 1:多入多出(输出路数不同)切换:

mcp2510的can总线收发器程序

mcp2510的can总线收发器程序 pcbomb 发表于 2008-6-30 14:47:00 阅读全文(769) | 回复(1) | 引用通告(0) | 编辑 #i nclude #i nclude "mcp2510.h" void mcp_reset(void) { SPI_init_hw(); //设置成SPI方式 init_can_io(); // SPI_mcp_reset(); // } void mcp_read( unsigned char MCPaddr, unsigned char* readdata, unsigned char length ) { unsigned char loopCnt; SPI_mcp_select(); // Select the MCP device at the SPI bus // Start reading and set first address SPI_mcp_RD_address(MCPaddr); for (loopCnt=0; loopCnt < length; loopCnt++) { // Get a byte and store at pointer *readdata = SPI_putch(MCPaddr); // Increment the pointers to next location // Test++; MCPaddr++; readdata++; } SPI_mcp_unselect(); } void mcp_write( unsigned char MCPaddr, unsigned char* writedata, unsigned char length ) { unsigned char loopCnt; SPI_mcp_select(); // Start write and set first address SPI_mcp_WR_address( MCPaddr ); for (loopCnt=0; loopCnt < length; loopCnt++) { // Write a byte SPI_putch( *writedata ); // Increment the pointer to next location writedata++; }

矩阵串口协议

1 16进制通讯协议 1.1 16进制通讯协议 矩阵系统提供 RS-232通讯接口,用户可参考以下的通讯协议和控制代码,自行编写相应的控制软件,或在使用第三方控制系统来控制矩阵系统时,按以下的通讯协议和控制代码来设置所用的第三方控制系统通讯参数。 在用串口命令控制设备前,请仔细确认以下参数是否正确: 1.)波特率是否与控制设备一致; 2.)设备地址是否与命令中的一致; 3.)确认校验和字节没有落掉,无论用户用或是不用校验,这个字节都不能少, 如果用户不用校验,可以任意发一个字节来补充这个位; 4.)确认串口线是直连的,即第二针对第二针,第三针对第三针,象说明书中 注释的那样。 5.)设备地址从0到255,为了适应各种场合的应用,本系列的切换器把地址 分为三大类:地址0和地址255都表示广播,即任何设备都接收这两个地址的命令,区别是地址为0的广播命令要求设备回数,而地址为255的广播命令要求设备不回数,其他地址的命令必须和设备中的地址一致,设备才会响应此命令,并返回有效信息。 命令格式: 96H(1)+地址(2)+命令(3)+长度(4)+切换模式(5)+数据1、…数据n(6)+校验(7) 说明: 1).96H字节表示帧起始,H表示“96”为16进制数,96H相当于10进制数的150; 2).地址字节表示用户为切换器设定的地址;设备的地址在接口配置选项 中由用户根据需要在(1-255)之间设定,主要用于设备的级连,文挡中将用 DevAddr来表示; 3).命令字节表示本命令的功能和在命令集中的序列号。

4).长度字节等于从本字节往后(不包括本字节),到校验字节(包括校验 字节),所包括的字节个数; 5).切换模式表示要切换的是音频、是视频、还是VGA信号或是这几种信 号的组合,分别用十六进制数A0H,A1H,A2H,A3H,A4H,和AFH来表示,其 中AFH表示通配符,可切换任何设备,对应关系见下表,后面的指令范 例均以VGA设备(A0H)为例。 6).数据段(数据1,…数据n)表示这条命令的数据部分,每条命令各不 相同,之后详细解释。 7).校验 =96H + 地址 + 命令 + 长度 +同异步模式字节+ 数1 + …+ 数 n(高位溢出自动丢失);如果校验=96H时,为防止与帧起始位相同,则发 送反码,即:校验= 6AH,本系统允许用户选用校验或禁止校验,在禁止 校验时,用户也必须随意发一个字节来填充该位置;选用校验或禁止校 验功能在接口配置选项中设置;在调试或测试阶段,为了测试方便可以 禁止使用校验,但在正式使用时还是启动校验功能更为安全。 例如:96H 01H 01H 06H (A0H 00H 02H 02H 01H 43H) 1.)96H为帧起始; 2.)01H表示设备地址; 3.)01H表示命令类型; 4.)06H表示后面的字节长度(括号中的内容); 5.)A0H为切换模式; 6.)00H 02H 02H 01H 为数据部分; 7.)43H为校验和,43H = 96H + 01H + 01H + 06H + A0H + 00H + 02H +02H + 01H,溢出位自动丢失。

CAN总线解析

一、概述 CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。 想到CAN就要想到德国的Bosch公司,因为CAN就是这个公司开发的(和Intel)CAN 有很多优秀的特点,使得它能够被广泛的应用。比如:传输速度最高到1Mbps,通信距离最远到10KM,无损位仲裁机制,多主结构。 近些年来,CAN控制器价格越来越低,很多MCU也集成了CAN控制器。现在每一辆汽车上都装有CAN总线。 一个典型的CAN应用场景: 二、CAN总线标准 CAN总线标准只规定了物理层和数据链路层,需要用户来自定义应用层。不同的CAN标准仅物理层不同。

CAN收发器负责逻辑电平和物理信号之间的转换,将逻辑信号转换成物理信号(差分电平)或者将物理信号转换成逻辑电平。 CAN标准有两个,即IOS11898和IOS11519,两者差分电平特性不同。(有信号时,CANH 3.5V,CANL 1.5V,即显性;没有信号时,CANH 2.5V,CANL 2.5V,即隐性) IOS11898高速CAN电平中,高低电平的幅度低,对应的传输速度快。 双绞线共模消除干扰,是因为电平同时变化,电压差不变。 2.1物理层 CAN有三种接口器件

多个节点连接,只要有一个为低电平,总线就为低电平,只有所有的节点都输出高电平时,才为高电平。所谓“线与”。 CAN总线有5个连续性相同的位后,就会插入一个相反位,产生跳变沿,用于同步。从而消除累计误差。 和485、232一样,CAN的传输速度与距离成反比。 CAN总线终端电阻的接法:

特点:低速CAN在CANH和CANL上串入2.2kΩ的电阻;高速CAN在CANH和CANL 之间并入120Ω电阻。为什么是120Ω,因为电缆的特性阻抗为120Ω,为了模拟无限远的传输线。(因为大多数双绞线电缆特性阻抗大约在100~120Ω。) 120欧姆只是为了保证阻抗完整性,消除回波反射,提升通信可靠性的,因此,其只需要在总线最远的两端接上120欧姆电阻即可,而中间节点并不需要接(接了反而有可能会引起问题)。因此各位在使用CAN Omega做CAN总线侦听的时候,大多数情况下是不需要这个120欧姆电阻的,当然,即使当前网络中并没有终端匹配电阻,只要传输线长度不长(比如SysCan360比赛环境中,传输线只有1-2米)CAN节点数量不多的情况下,不要这个120欧姆电阻也完全可以工作,甚至,你接任意电阻都是不会有影响的。因为此时传输线长度和波长还相差甚远,节点不多的情况下,反射波的叠加信号强度也不会很强,因此传输线效应完全可以忽略。 而哪些情况需要呢,主要就是,当使用2个CAN Omega对发或者当前网络中仅有2个CAN设备的时候,此时两个端点最好都加上终端匹配电阻,当然,前面也说过了,传输线长度不长的时候,也可以不需要2端120欧姆电阻,但为了信号完整性考虑,加上这两个电阻才是严谨的。 2个120欧姆电阻的意义在于,使用USB CAN调试某些不带终端电阻的中间节点设备时,有时候CAN总线上没有2个120欧姆电阻通信可能会异常,此时可以接入2个120欧姆电阻作为2个终端电阻来作阻抗匹配,这时候其他端点不应接入任何终端电阻!并且,这2个120欧姆电阻不可用1个60欧姆电阻代替!

通讯协议

通讯协议 5.1 十六进制通讯协议 矩阵系统提供 RS-232通讯接口,用户可参考以下的通讯协议和控制代码,自行编写相应的控制软件,或在使用第三方控制系统来控制矩阵系统时,按以下的通讯协议和控制代码来设置所用的第三方控制系统通讯参数。 在用串口命令控制设备前,请仔细确认以下参数是否正确: 1.)波特率是否与控制设备一致; 2.)设备地址是否与命令中的一致; 3.)确认校验和字节没有落掉,无论用户用或是不用校验,这个字节都不能少,如果 用户不用校验,可以任意发一个字节来补充这个位; 4.)确认串口线是直连的,即第二针对第二针,第三针对第三针,象说明书中注释的那 样。 5.)设备地址从0到99,为了适应各种场合的应用,地址0表示广播, 即任何设备都接收这个地址的命令。 命令格式:所有数字均为16进制 96H(1)+地址(2)+命令(3)+长度(4)+切换模式(5)+数据1、…数据n(6)+校验(7) 说明: 1).96H字节表示帧起始,H表示“96”为16进制数,96H相当于10进制数的150; 2).地址字节表示用户为切换器设定的地址;文挡中将用DevAddr来表示; 3).命令字节表示本命令的功能和在命令集中的序列号。 4).长度字节等于从本字节往后(不包括本字节),到校验字节(包括校验字节), 所包括的字节个数; 5).切换模式表示要切换的是音频、VGA信号或是这几种信号的组合,分别用十 六进制数A0H,A1H,A2H,A3,A4来表示,在读配置时,则表明了设备的类型, 对应关系见下表,后面的指令范例均以VGA设备(A0H)为例。 A0H A1H A2H A3H A4H VGA V A VGA/A V/A 6).数据段(数据1,…数据n)表示这条命令的数据部分,每条命令各不相同, 之后详细解释。 7).校验 =96H + 地址 + 命令 + 长度 +数据段(高位溢出自动丢失);如果校验 =96H时,为防止与帧起始位相同,则发送反码,即:校验= 6AH,) 例如:96H 01H 01H 06H (A0H 00H 02H 02H 01H 43H) 1.)96H为帧起始; 2.)01H表示设备地址; 3.)01H表示命令类型; 4.)06H表示后面的字节长度(括号中的内容); 5.)A0H为切换模式;

相关文档
最新文档