1、EDA实验手册目 录目 录 11.关于软件的说明 22.软件的安装与卸载 32.1 安装过程 32.2 软件的卸载 53.CAN总线的基本实验 63.1 标准帧格式的认识与接发实验 63.2 标准帧情况下,优先级问题 103.3 扩展帧的数据收发实验及优先级实验 103.4 接收滤波实验 113.5 虚拟设备实验 154.AT90CAN128单片机CAN控制器使用 175.TMS320LF2407的CAN控制器使用 176.J1939协议的使用 177.DeviceNet协议的使用 178.开放网络接口的说明 189.软件Bug报告 2010.关于 211.关于软件的说明在对CAN(Contr
2、ollerAreaNetwork,控制局域网)总线知识的学习过程中,有很多的概念是比较抽象、晦涩的,这就使同学们学习起来有一定的困难,而当同学面对一堆CAN总线的设备或从事具体的设计时,由于对CAN总线的知识和工作原理缺乏一定的认识,就出现了猫吃团鱼找不到头的局面;同时,现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持,是控制相关专业同学应该掌握,至少要了解的知识。鉴于以上情况,为了跨越书本和实际应用的小沟,为了减轻同学们学习这方面知识的痛苦,江杰老师决定开发这一款小软件,给同学们作为学
3、习参考。 给同学们的学习小建议:把书上的知识和软件的使用相结合起来,来体会CAN总线的基本知识,这款软件只是模拟软件,是用我们的计算机网模拟CAN总线,并不能完全替代真正的CAN总线,学习时要注意这点。在软件的高级实验部分,随着结合实际、具体的设计(如单片机和DSP的CAN总线编程),将会体会的更精确。本手册针对CAN总线学习模拟软件v1.0 alpha(测试版)编写,这一版软件只完成CAN总线的基本实验模块,以后还将继续完善。同学们在使用的过程中如果发现有任何问题请联系我,也欢迎参与这款软件的完善工作。内蒙古科技大学信息工程学院总线实验室 2008-12-62.软件的安装与卸载这部分很简单,
4、软件大小只有2M,而且很容易安装卸载,熟悉计算机使用的同学可略过本节。2.1 安装过程软件的安装包有三个文件,如图2.1所示,用鼠标双击图2.1 安装程序文件setup.exe程序,就进入安装过程,能看到询问你是否安装软件的界面,如图2.2所示,点OK按钮,就能进入图2.3所示选择安装选择路径的对话框,图2.2 询问是否进行软件安装图2.3 安装路径选择对话框如果不选择路径,点按钮进行安装。接下来会出现开始菜单取名的对对话框如图2.4所示,直接点continue 按钮就行, 安装完毕后得到安装成功提示图2.5所示。图2.4 安装开始菜单取名图2.5 安装成功提示2.2 软件的卸载 图2.6 到
5、控制面板卸载软件当不再使用软件时,可以进行卸载。 软件卸载方法是到计算机控制面板里找到“CAN总线学习模拟软件”点“更改/删除”。 另一种卸载方法是点winodws的”开始”菜单,点”程序”,再点“CAN总线模拟”,点“卸载”。3.CAN总线的基本实验3.1 标准帧格式的认识与接发实验目标:1,认识CAN总线的标准帧格式包括哪几部分。 2,认识在使用标准帧发送数据时,要注意哪些场的数据填写 3,在CAN总线模拟软件的发送窗口里发送一条标准帧数据,在接收窗口里观察接收到的数据。 4,可以与同学进行联网标准帧数据的收发。动动手:1,发送ID号为123H,内容为6个字节(AA,BB,CC,DD,EE
6、,FF)的标数据帧。 2,通过网络(CAN总线)把这个数据发送到你同学的接收窗口。 3,让你的同学发送一条有特定ID号的,特点数据内容的标准数据帧给你。CAN标准数据帧结构 先补充点预备知识,找找书本,仔细看看标准数据帧的帧结构,如果找不到请看下面。图3.1 CAN总线标准数据帧结构从左到右认识一个标准数据帧在总线上传输的格式:从整体上看,一个标准数据帧主要由:SOF(帧开始)、Arbitration Field(仲裁域)、Control Field(控制域)、Data Field(数据)、CRC Field(CRC校验域)、Ack Field(应答域)、End of Frame(帧结束)这几
7、区域组成。具体的解释如下:a.Bus idel(总线空闲),下面对应的是Interframe Space(帧之间的间隔),就是说总线上没有数据或传输两帧数据之间的那小段时间。b.SOF(start of frame,帧开始),当要进行一帧数据传输时都要以这个开始,它是一个bit的显性电平(啥叫显示电平dominant?啥叫隐性电平recessive?baidu一下你就知道)。c.11bit Identifier(11位ID号),传输数据的内容和意义就是由这11个bit标识的,这个ID号不是代表数据要传送到目的地,而是代表这一帧数据的含意。比方说ID为123h传送1个字节数据,这一个字节的数据存
8、储某表桶里的液位值。也就是说ID为123h的数据帧就代表某个桶里的认错位值。为什么是123h呢?这里代表16进制123(十进制的291),11bit的ID能代表多少种意思呢?算算2的11次方=2048,所以11bit的ID值范围是0h7FFh;ID号还代表什么用呢?这11bit的ID号和它后面的RTR位共同组成仲裁域,要知道总线是一条通信线路,上面有很多设备(叫节点),在一个时刻只能有一个设备发送数据。假如在同一时刻有两个设备要同时发送数据,怎么办?人的做法当然是VIP选享受服务啊,所心ID号越小的数据帧就越是VIP。所以ID号的另一个作用是仲裁谁先传数据。说了这么多,ID号是我们在做实验时要
9、关心一项内容。d.RTR(remote transmission request)远程传输请求位,这一位在数据帧中用不上,要设置为显性电平(RTR=0)。RTR为隐性电平时(RTR=1)时,帧类型为远程帧,找书看看CAN总线上传输的帧类型有几种?远程帧的作用是就是当总线上一个设备A想让B发送一条事选存储在B里的数据时,A就给B发一条远程帧数据,B收到后就会发出一条相应的数据帧。在这片软件里暂时没做远程帧的实验模块。e.IDE(Identifier Extension Bit)扩展帧标志位,当这一位IDE=1时,代表数据帧为扩展帧,IDE=0时帧类型为标准帧,这一位也是我们在实验要关心的位。f.
10、r0保留位,目前没什么大用,设计CAN总线那些人当时预留的,还不知道他们要干什么用。g.DLC(Data Length Code)数据长度码,没看见它后面跟着8个字节的数据么?这4bit就是说它后面发送多少个字节的数据。当它为0000时,发送0个字节,当为1000时发送8个字节数据,CAN总线一帧最后只能传输8个字节的数据,在这版软件里,默认最少传送的是1个字节数据。数据长度DLC也是在做实验时要关心的数据.h.08 Bytes, 这就是要发送的8个字节的数据了。它可以是08个字节的数据。i.16bit CRC(CRC校验域),数据在从一个地方发送到另一个地方难免会受干扰,发生错误了怎么办?大
11、名鼎鼎的奇偶校验听过吧?数据传错了奇偶校验位就会错,数据就无效丢掉不要。而CRC不仅能知道数据错,还知道哪错了可以改正过来。免丢。j.ACK field,应答场,(它包含应答时隙ack slot和定界符delimiter)就是听它的名字就知道它的作用,发送设备把这两个bit都发送成隐性电平,当接收端能正确接收到数据到,就把ack slot置成显性电平,表示“我正确收到”。k.最后那7bit是表示这一帧传完了。列了这么一大堆,把标准帧解释完了,还是不明白的同志可以mail我。下面开始做实验 a.先打开软件,在windows的“开始”-“程序”-“总线模拟”-“CANsim”打开软件,得到图3.1
12、.1所示,选择实验内容,这里选择“CAN总线基本实验”,软件运行就相当于你的计算机是CAN总线上的一个(数据收发)设备图3.1.1 实验选择 b.进入接收窗口如图3.1.2所示:图3.1.2 数据接收窗口在做标准帧实验时,接收帧数据类型选择标准帧,另外操作菜单里可是选择是本机接收还是联网接收,本机接收是指你计算机没有连接到CAN总线(计算机网)上实验,另个在总线上传输的数据你看不到。由于数据通信都是有传输速率的,接收和发送方的速率一样才能正常的收发数据,常见波特率菜单里设置了一些常见的速率,通过可以选择速率。c.点接收窗口的打开发送窗如图3.1.3所示。图3.1.3 发送窗口它画出了标准帧和扩
13、展帧的帧结构,通过发送数据帧类型来切换,也可以选择发送的速率,同时也可以选把网络方式:单机模拟发出的数据只能自己收到,联网模拟发送时,其它计算机能够收到。这里能同时发送4帧数据,发送时要选填好标识符(ID 0h7FFh),数据长度(18)以及8个字节的数据(0hFFh)。在发送前把要发送的数据后面的小方框打上勾。3.2 标准帧情况下,优先级问题目标:1,认识CAN总线的逐位仲裁机制,说说为什么ID号小的有高优先级。 2,在标准帧的情况下,进行ID仲裁实验。动动手:1,翻阅CAN总线的相关书,仔细阅读逐位仲裁机制那小段的内容。 2,同时发送ID为123h,456h,321h,100h的4条标准数
14、据帧,在接收窗口观察接收到的数据的ID的大小关系。3.3 扩展帧的数据收发实验及优先级实验 标准帧的实验做出来了么?如果你做出来了,相信扩展帧的数据收发你只会说easy,simple naive!目标:1,了解CAN总线的扩展帧结构,说说它有哪几部分组成,和标准帧有什么区别。 2,利用模拟软件做扩展帧的收发实验。 3,做扩展数据帧的优先级实验。 动动手:1,翻阅CAN总线的相关书,看看扩展帧的知识。 2,把模拟软件的接收发送窗口点到扩展帧类型进行扩展帧数据的收发实验。 3,分别取4个不同的ID,进行收发实验,看看扩展帧下的优先级。再给你们介绍一下扩展帧的结构,如图3.2.1所示。图3.2.1
15、CAN扩展帧结构在这里只把在标准帧里没见过的东西提提,首先看看重要的是扩展帧的ID是11-bit base identifier,18-bit identifier extension,也就是说扩展帧的ID变成了11+18=29bit了,算算范围2的29次方是0h1FFFFFFFh.ID一下变长了不少吧?至于SRR (substitute Remote request)叫替代远程请求,它一直是隐性电平SRR=1,就是放在标准帧RTR的那个位置,替代标准帧RTR位置,因此而得名。一般情况下没什么大用,教材也都没提。如果你真想知道我就告诉你,早期的CAN总线上由于硬件控制器的功能有限,只能传输一种
16、帧格式,要么是标准,要么是扩展,现在不一样了,新的硬件控制器推出来了,可以同时存在两种帧传输的情况,当然标准帧的优先级要比扩展的高了,所以为了防止扩展的优先级比标准帧的高,把这一位置1,就永远一不会比标准帧高了。接下来的r1和r0还是两个保留位。3.4 接收滤波实验目标:1,了解CAN总线的滤波(屏蔽)机制,说说它是怎么滤波的。 2,利用模拟软件做滤波实验。动动手:1,标准帧在不滤波的情况下发送0h7FFh间任意ID,看看接收窗接收结果。 2,在滤波窗口设置ID为7F8,把屏蔽位全设成1,再做第一步,看看能收到什么?。 3,接下面举的例子设置ID和屏蔽位,再做做滤波实验。CAN总线上一般情况下
17、会有很多的设备在收发大量的数据,正如每个人进入图书馆选对口味的书一样,不是看图书馆所有的书,而是有选择的看书。对于总线上的一个设备,不是总线上传输的每条数据它都要接收下来处理处理,它可以选择性的接收对它有用的数据帧。它是怎么做到的?这里细化一下CAN总线的滤波的工作机制:首先CAN数据的收发是都要有相应的硬件为它完成的,就像我们的计算机要用网卡接上网线才能上网一样,很多设备要有CAN的控制器和收发器才能上CAN。其次,发送数据的过程,我们设置CAN控制器告诉它我们要发的数据帧的ID,数据长度,以及几个字节的数据,以及是标准帧还是扩展帧,再让它发送它就发送了(要关注的内容用蓝色标出)。再次,数据
18、接收的过程,默认情况下,只要开启接收功能,所有总线上传输的数据都接收,但前面不是说过了么?你只是选择读一些书。所以对于接收,可以设置想接收的ID号,以及相应的屏蔽位,能过它们的组合可以决定接收哪个或哪些ID。CAN的控制器有很多种,大同小异,下面举其中的一种说明一下(见Examples),其中ID TAG就是我们所说的ID, ID MSK就是我们所说的屏蔽位。这里用的是标准帧的例子,扩展帧的一样:先看最下面的三行No filtering,接收所有的ID号(0h7FFh)的的数据,它的ID MSK全设的是0,0代表对应的ID那1bit不屏蔽,可以是0也可以是1(所以列的是x),所以控制器里的ID
19、 TAG中的每一位填0或1都接收,接收范围成了00000000000b11111111111b,就是0h7FFh,(其中b代表是2进制).再看中间三行,partiel filtering部分屏蔽的例子,这个设备相接收ID为0x310到0x317这一组ID的数据。我把这一种ID列一下:011 0001 0000 b -0x310011 0001 0001 b -0x311011 0001 0010 b -0x312011 0001 0011 b -0x313011 0001 0100 b -0x314011 0001 0101 b -0x315011 0001 0110 b -0x316011
20、0001 0110 b -0x317这一组数据前面的9bit都是一样的,接收的数据的ID的前9bit必须是01100010,这9bit的屏蔽位(ID MSK)就设为1,表示总线上的数据的前9bit必须和你设的ID TAG的前9bit一样才接收;而后三位是可以变的,就成了xxx,这3bit的ID MSK就可以是0了,因些接收的ID成了01100010xxxb,屏蔽们成了111111111000b 是后看最前三行,Full filtering完全屏蔽,这个就简单了,只接收ID是317h-011 0001 0111的数据帧,CAN控制器里的ID就设定它,屏蔽位全都是1, 11111111111b.
21、接下来看看滤波设置吧,在接收窗口上点菜单滤波-滤波设置,然后就进入(图3.2.2),它分为标准帧滤波和扩展帧滤波两个部分,要做的只是把接收ID填上,相应的滤波位设置好,然后在接收窗口里点启用滤波,在发送窗口上发任意的ID,看看接收窗口是否能接收就能验证效果了。图3.2.2 滤波设置3.5 虚拟设备实验 前面的东西都是围绕着CAN总线的看不见摸不着的知识进行的实验,这一节给出一个用软件虚拟的仪表接收CAN总线上的数据,并反映出结果。 点接收窗口操作,再点打开虚拟设备,如图3.2.3,它有一个液位显示和一个8路的开关量显示,设置好相应的液位和开关量接收的ID号,从发送窗口发送这两个ID的数据帧,相
22、应的值就能反应到这个虚拟仪表上来。图3.2.3 虚拟设备4.AT90CAN128单片机CAN控制器使用5.TMS320LF2407的CAN控制器使用6.J1939协议的使用7.DeviceNet协议的使用8.开放网络接口的说明 这一节主要是把这个模拟软件在计算机网上传输的信息的格式公开,以更于同学位使用其它软件如 VB,VC,Labview,组态软件等开发自己的实验模块。模拟软件用UDP数据包(UDP协议)的格式进行传输,接收端的端口号为54540,数据包的由以下几个部分组成:帧格式标志+波特率+数据长度+ID+数据其中:帧格式标志为1个字符:0代表标准帧,1代表扩展帧波特率标示为1个字符:
23、1代表125K2代表250K3代表500K4代表1000K数据长度为1个字符:08ID分为标准和扩展两种情况帧格式用字符数数据范围标准帧30001FF扩展帧8000000001FFFFFFF数据根据数据长度最后根8x2个字符的长度。举例说明:1, 标准帧,ID号为28以500K波特率发送3个字节0xAA, 0x08,0xFF数据,其格式为023028AA08FF,0代表标准帧, 2代表是500K, 3代表是3字节数据, 028代表ID号AA08FF代表三个字节的数据。2, 标准帧,ID号为7FF以125K波特率发送8个字节0xAA, 0x08,0xFF,0x01,0x02,0xBB,0xCC,
24、0x87数据,其格式为0187FFAA08FF0102BBCC873,扩展帧,ID号为123以125K发送3个字节0xAA, 0x08,0xFF数据,其格式为:113000000123AA08FF3,扩展帧,ID号为1FFFFFFF以500K发送8个字节0xAA, 0x08,0xFF,0x01,0x02,0xBB,0xCC,0x87数据,其格式为1281FFFFFFF AA08FF0102BBCC879.软件Bug报告1.优先级实验如果有两个ID相同,会出现相同的ID每个发送两次的情况。在后续版本中将更改过来。2.在进行联网实验的过程中,拔掉网线,如果没有切换回单机实验,继续以联网的方式发送数据。软件会出错。10.关于
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1