毕业设计论文CAN总线与以太网接口技术研究

上传人:无*** 文档编号:146311049 上传时间:2022-08-30 格式:DOC 页数:70 大小:972.50KB
收藏 版权申诉 举报 下载
毕业设计论文CAN总线与以太网接口技术研究_第1页
第1页 / 共70页
毕业设计论文CAN总线与以太网接口技术研究_第2页
第2页 / 共70页
毕业设计论文CAN总线与以太网接口技术研究_第3页
第3页 / 共70页
资源描述:

《毕业设计论文CAN总线与以太网接口技术研究》由会员分享,可在线阅读,更多相关《毕业设计论文CAN总线与以太网接口技术研究(70页珍藏版)》请在装配图网上搜索。

1、各专业完整优秀毕业论文设计图纸南京工程学院 自动化学院 本科毕业设计(论文)题目: 以太网与CAN总线通讯接口技术研究 专 业: 自动化(数控技术) 班 级: 数控102 学 号: 203100613 学生姓名: 指导教师: 起迄日期: 2014.22014.6 设计地点: 工程实践中心 Graduation Design (Thesis)Ethernet and CAN bus communications technologyresearchByGuo Shi WeiSupervised byProf.Fang LiSchool of AutomationNanjing Institute

2、 of TechnologyJune, 2014南京工程学院自动化学院本科毕业设计(论文)摘 要控制器局域网络(CAN)是一种能有效支持分布式控制或实时控制的串行通信网络,具有高性能和高可靠性的特点,现已经形成国际标准。但CAN总线也具有其局限性,那就是难以接入因特网。如果能够把现场总线与以太网连接,那么这些问题都将得以解决,同时,由于以太网能够方便的接入因特网,控制信息也将可以方便快速地传送到世界上任何一个地方。本文在对以太网及CAN总线通讯协议进行深入分析的基础上,对以太网与CAN总线接口技术进行研究,以AT89S51单片机为核心处理器,以Keil Uvision2为软件开发,编写工具,以

3、太网接口电路模块采用以太网控制器RTL8019AS芯片来实现单片机收发以太网上的数据,CAN总线接口电路模块采用CAN总线控制器SJA1000芯片来实现单片机收发CAN总线上的数据,进而实现了CAN总线接入以太网的功能。关键字:以太网;CAN总线;网关;接口ABSTRACTController Area Network (CAN) is an effective control or support distributed real-time control of serial communication network with high performance and high relia

4、bility, and now has become an international standard. But CAN bus also has its limitations, it is difficult to access the Internet. If you can put a fieldbus and Ethernet connection, then these problems will be solved, and because Ethernet can easily access the Internet, the control information will

5、 also be quickly and easily transferred to any place in the world.Based on the Ethernet and CAN bus communication protocol in-depth analysis, Ethernet and CAN bus interface technology research to AT89S51 microcontroller core processor, with Keil Uvision2 for software developers, authoring tools, Eth

6、ernet interface circuit module using Ethernet controller RTL8019AS chip microcontroller to send and receive data over Ethernet, CAN bus interface circuit module using CAN bus controller SJA1000 chip to achieve single-chip transceiver CAN data bus, thus achieving a CAN bus Ethernet access capabilitie

7、s .Key words: Ethernet; CAN bus; Gateway; Interface目 录第一章 绪 论11.1 引言11.2 选题的背景与意义11.3研究现状11.3.1 现场总线控制系统的优点21.3.2 CAN总线简介21.4 本文的结构3第二章 CAN总线智能节点设计42.1 CAN控制器SJA1000功能简介42.2 CAN控制器SJA1000的基本结构42.2.1 SJA1000内部功能模块说明62.2.2 SJA1000引脚图和工作模式72.3 SJA1000的寄存器82.3.1 寄存器表82.3.2 BasicCAN模式下的寄存器说明102.4 CAN节点硬件

8、系统的设计182.4.1 SJA1000与单片机的连接182.4.2 PCA82C250外围电路192.4.3 电源电路202.4.4 单片机地址译码电路202.5 SJA1000的重要寄存器212.5.1 控制SJA1000基本功能的寄存器212.5.2 发送缓冲器和接收缓冲器222.6 SJA1000的验收滤波器原理232.6.1 单滤波232.6.2 双滤波242.7 CAN控制器中位定时参数设置的一般方法242.8 CAN通信协议的制定252.9 CAN节点软件系统的设计262.9.1 CAN节点的软件结构262.9.2 建立CAN通信的步骤和流程262.9.3 SJA1000初始化程

9、序的设计方法272.9.4 读写SJA1000寄存器282.9.5 SJA1000数据接收程序设计方法292.9.6 SJA1000数据发送程序设计方法30第三章 以太网总线智能节点设计323.1 以太网控制器RTL8019AS功能简介323.2 以太网控制器RTL8019AS的基本结构323.2.1 RTL8019AS内部结构说明343.2.2 RTL8019AS引脚图及部分管脚设置343.3 RTL8019AS寄存器373.3.1 RTL8019AS寄存器表373.3.2 寄存器功能说明383.4 以太网节点硬件系统的设计433.4.1 RTL8019AS与单片机的连接433.4.2 地址

10、锁存器74LS373453.4.3 以太网接口463.5 以太网节点软件系统的设计463.5.1 复位RTL8019AS463.5.2 RTL8019AS寄存器的读写473.5.3 RTL8019AS RAM的操作473.5.4 RTL8019AS的初始化483.5.5 RTL8019AS的数据接收程序设计方法493.5.6 RTL8019AS的数据发送程序设计方法51第四章 结 论524.1论文总结524.2 感想53致 谢54参 考 文 献55附录A:硬件设计原理图与PCB图56附录B:软件程序清单57IV第一章 绪 论1.1 引言随着网络技术和信息技术的迅速发展,自动化领域产生了深刻的变

11、革,并逐渐形成了网络化、全开放、全分布的自动控制体系结构。而现场总线正是这场深刻变革中的重要技术。现场总线是连接智能现场设备和自动化系统的数字式、双向传输、多分支结构的通信网络。它的关键是把网络化、信息化的概念彻底引入到控制领域和工厂的控制中。构建完整的控制网络和信息网络,不仅可实现高度灵活、高可靠性的分散控制,而且可以实现全厂,甚至全世界范围内的信息共享,优化企业生产过程,实现企业的量化管理,提高企业的生产效率。1.2 选题的背景与意义当今的以太网技术虽然有其优势,但要直接用于工业控制,仍然面临一些未解决的问题。同时,由于现场总线具有不可代替的优点,与以太网相比,更适合用于控制网络。因此,工

12、业企业中,一般把现场总线用于车间、生产现场等生产第一线,作为控制网络,而以太网主要应用于企业管理层和生产监控层。由于不同现场总线之间没有统一的标准、难以接入因特网等缺点,使得目前大部分企业的控制网络和信息网络相互独立,甚至不同的控制网络之间相互独立,不同网络的互联仍然是一个急需解决的问题。如果能够把现场总线与以太网连接,那么这些问题都将得以解决,同时,由于以太网能够方便的接入因特网,控制信息也将可以方便快速地传送到世界上任何一个地方。这就为本课题的研究提供了机遇,也是本课题研究的意义所在。1.3研究现状现代化的发展使人们对生产过程的性能控制提出了更高的要求,这使得企业管理者、工程师需要获取更多

13、的来自现场的信息,从而实现从现场控制到监控、管理、决策、商务等各个层次的信息交换与集成,以提高生产效率和市场竞争力。这种需求推动了现场总线技术的诞生,呼唤着以现场总线为纽带,以分散的智能测控设备为节点的网络系统与控制系统的出现,并对传统模拟仪表控制系统、非开放性的DCS系统发起了革命性的挑战。1.3.1 现场总线控制系统的优点系统的开放性:开放系统是指通信协议公开,各不同厂家的设备之间可互连为系统而实现一致通信与信息交换。在FCS中,用户可以根据需要,将遵从相同协议的不同厂家的产品集成到一个规模随意的系统中,通过现场总线构筑自动化领域的开放互连系统,从根本上打破了DCS系统的封闭性。互可操作性

14、与互用性:互可操作性是指实现互连设备间、系统间的信息传递与沟通;互用性则指不同生产厂家的性能类似的设备之间可以实现相互替换。现场设备的智能化与功能自治性:现场总线系统将传感测量、补偿计算与控制等功能分散到现场设备中完成,仅靠现场设备即可完成自动控制的基本功能,并可随时诊断设备的运行状态。系统结构的高度分散性:现场总线己构成一种新的全分散性控制系统的体系结构,从根本上改变了现有的DCS系统体系,简化了系统结构,提高了可靠性。对现场环境的适应性:工作在生产现场,作为工厂网络底层的现场总线,是专为现场环境设计的,可支持双绞线、同轴电缆、光缆、射频、红外线、电力线等,具有较强的抗干扰能力,能采用两线制

15、实现供电与通信,并可满足安全防爆要求。节省硬件数量与投资:现场总线系统中分散在现场的智能设备能直接执行传感测量、补偿计算与控制等功能,故可减少变送器的数量,不再需要单独的调节器、计算单元等,也不再需要DCS系统的信号调理、转换、隔离等功能单元及其复杂接线,还可以用工控PC机作为操作站,从而节省了硬件投资,并减少了控制室的占地面积。节省安装、维护费用:现场总线系统的接线十分简单,一对双绞线或一条电缆上可以挂接多台设备,故可节省大量的电缆、端子、槽盒、桥架,而连线设计与接头校对的工作量也可大大减少。当需要增加现场控制设备时,无需增加新的电缆,可就近连接在原有的电缆上,即节省了投资,也减少了设计安装

16、的工作量。由于现场控制设备具有自诊断与简单故障处理能力,并通过数字通讯将相关的诊断维护信息送往控制室,用户可以查询所有设备的运行、诊断维护信息,以便早期分析故障原因并快速排除,缩短了维护时间,减少了维护的工作量。提高了系统的准确性与可靠性:现场总线设备的智能化和数字化,从根本上提高了测量与控制的精度。同时,由于系统的结构简化,设备与连线的减少,现场仪表内部功能的加强,减少了信号的往返传输,提高了系统的可靠性。1.3.2 CAN总线简介CAN(Controller Area Network,控制器局域网)是一种高性能、高可靠性、易开发且低成本的现场总线,在全球得到广泛应用,也是最早在我国应用的现

17、场总线之一。CAN是20世纪80年代(1983)德国Bosch(博世)公司为解决众多的测量控制部件之间的数据交换问题而开发的一种串行数据通信总线。最初,CAN作为汽车的监测、控制系统而设计,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中,均嵌入CAN控制装置。现在,由于CAN总线自身的特点,其应用领域已由汽车行业扩展到过程工业、机械工业、机器人和楼宇自动化等领域。1.4 本文的结构本文以以太网和CAN总线的通讯接口的研发工程项目作为应用背景,对以太网和CAN总线的通讯技术进行了研究。全文共分为四章,各章的主要内容如下:

18、第一章扼要地介绍了现场总线以及CAN总线的概念、特点和相关研究背景;第二章研究了CAN智能节点的硬件电路和软件程序设计;第三章研究了以太网智能节点的硬件电路和软件程序设计;第四章总结了全文的研究工作,给出了存在的问题和进一步研究的方向。第二章 CAN总线智能节点设计2.1 CAN控制器SJA1000功能简介SJA1000是一种独立CAN控制器,它是PHILIPS公司的PCA82C20OCAN控制器的替代产品。SJA1000具有BasicCAN和PeliCAN两种工作方式,PeliCAN工作方式支持具有很多新特性的CAN2.0B协议,SJA1000在软件和引脚上都是与它的前一款PCA82C200

19、独立CAN控制器兼容的,并在此基础上增加了很多新的功能。为了实现软件兼容,SJA1000采用了两种工作方式:BasicCAN方式(PCA82C200兼容方式),PeliCAN方式(扩展特性方式)。工作方式通过时钟分频寄存器中的CAN方式位来选择,上电复位默认工作方式是BasicCAN方式。2.2 CAN控制器SJA1000的基本结构SJA1000的内部功能框图如图2.1所示,其引脚描述如表2.1所列。 图2.1 SJA1000内部结构表2.1 SJA1000引脚描述引脚名称引脚号功能AD7-AD02,1,28-23地址/数据总线ALE/AS3ALE输入信号(Intel模式),AS输入信号(Mo

20、torola模式)4片选输入5来自CPU的信号(Intel模式)或使能信号(Motorola模式)6来自CPU的信号CLKOUT7SJA1000产生的时钟输出信号VSS18逻辑电路地XTAL19外部晶振输入XTAL210外部晶振输出MODE11模式选择输入:等于1,选择Intel模式;等于0,选择Motorola模式VDD312输出驱动器的5V电源TX013连接到物理总线TX114连接到物理总线VSS315输出驱动的地16中断输出17复位输入;将引脚通过电容接VSS,通过电阻接VDD,可实现上电复位(C=1uF;R=50k)VDD218输入比较器的5V电源RX0,RX119,20连接到物理总线

21、VSS221输入比较器地VDD122逻辑电路5V电源注:如果使用无源晶振,则XTAL1和XTAL2引脚必须通过15pF的电容连到VSS1。2.2.1 SJA1000内部功能模块说明1.接口管理逻辑:解释来自CPU的命令,控制CAN寄存器的寻址,向主微控制器提供中断报文和状态报文。2.发送缓存器:发送缓存器是CPU和位流处理器之间的接口,能够存储发送到CAN总线上的完整报文。发送缓存器长13字节,由CPU写入,位流处理器读出。3.接收缓存器:接收缓存器是接收过滤器我CPU之间的接口,用于存储从CAN总线上接收和采用的报文。接收缓存器作为接收FIFO的一个窗口,可被CPU访问。在此FIFO的支持下

22、,CPU可以在处理报文的同时接受其他报文。4.接收过滤器:接收过滤器将接收到的标示符和接收过滤寄存器的内容进行比较,以决定是否接收该报文。如果比较结果为真,则报文完整的存入接收缓存器中。5.位流处理器:位流处理器是一个序列发生器,控制发送缓存器、接收缓存器和CAN总线之间的数据流。它还完成CAN总线上的错误检测、仲裁、填充和错误处理的功能。6.位定时逻辑:位定时逻辑监视串行的CAN总线和处理与总线有关的位定时。它同步于帧起始的从隐性到显性电平的跳变(硬同步),并且在接收报文的过程中进行重同步(软同步)。位定时逻辑还提供可编程的时间段用于补偿传播延时和相位变化,它还定义采样点和一位时间内的采用次

23、数。7.错误管理逻辑:错误管理逻辑负责传送层模块的错误界定,接收来自位流处理器的出错报告,并通知位流处理器和接口管理逻辑当前的出错状态。2.2.2 SJA1000引脚图和工作模式1.SJA1000引脚见图2.2。实物图见图2.3。图2.2 SJA1000引脚图 图2.3 SJA1000实物图2.SJA1000的工作模式SJA1000有两种寄存器访问模式,即:复位模式和工作模式。不同模式下寄存器的访问时不同的。工作模式通过又分为BasicCAN模式和PeliCAN模式,通过时钟分频寄存器中的CAN模式位来选择。PeliCAN模式支持CAN2.0B协议规定的所有功能,SJA1000复位后,默认的模

24、式是BasicCAN模式。以后我们在进行SJA1000的软件编程时使用的是BasicCAN模式。2.3 SJA1000的寄存器2.3.1 寄存器表SJA1000对于微控制器而言,表现为内存映射的I/O设备。微控制器可以像操作外部RAM一样操作SJA1000片内的寄存器。SJA1000的地址域由控制段和报文缓存器组成(见表2.5)。控制段在初试化载入期间被设置,用于配置通信参数,同时微控制器通过这个段来控制CAN总线上的通信。微控制器和SJA1000之间的状态、控制和命令信号的交换都在控制段中完成。在初始化后,接收码寄存器、屏蔽码寄存器、总线定时寄存器0、总线定时寄存器1以及输出控制寄存器的内容

25、不应再发生改变,因此这些寄存器只有在复位请求位(CR.0)被置1时,才可访问。一个报文在发送之前必须写入发送缓存器;反之,在成功接收一个报文后,微控制器从接收缓存器读取报文并释放此部分缓存,以备后用。当硬件复位成功或微控制器脱离总线状态时,SJA1000会自动进入复位模式。通过将控制寄存器的复位请求位置0,SJA1000讲进入工作模式。BasicCAN模式下的SJA1000内部寄存器地址分配见表2.2。表2.2 BasicCAN模式下的SJA1000内部寄存器地址分配偏移地址名称工作模式复位模式读写读写0控制段控制控制控制控制1命令命令2状态状态3中断中断4接收码接收码5接收屏蔽码接收屏蔽码6

26、总线定时0总线定时07总线定时1总线定时18输出控制输出控制9测试测试测试测试10发送缓冲器ID(10-3)ID(10-3) 11ID(2-0)RTR和数据长度ID(2-0)RTR和数据长度12字节1字节113字节2字节214字节3字节315字节4字节416字节5字节517字节6字节618字节7字节719字节8字节820接收缓冲器ID(10-3)ID(10-3)ID(10-3)ID(10-3)21ID(2-0)RTR和数据长度ID(2-0)RTR和数据长度ID(2-0)RTR和数据长度ID(2-0)RTR和数据长度22字节1字节1字节1字节123字节2字节2字节2字节224字节3字节3字节3字

27、节325字节4字节4字节4字节426字节5字节5字节5字节527字节6字节6字节6字节628字节7字节7字节7字节729字节8字节8字节8字节83031时钟分频寄存器时钟分频寄存器时钟分频寄存器时钟分频寄存器2.3.2 BasicCAN模式下的寄存器说明1.控制寄存器CR,地址:0,其各位功能如表2.3所示。表2.3 控制寄存器各位说明位符号名称值功能CR.7保留CR.6保留CR.5保留CR.4OIE溢出中断使能1如果SR.1置位,SJA1000会产生CPU可识别的硬件中断0SJA1000不会产生溢出中断CR.3EIE出错中断使能1如果出错状态SR.6或总线状态SR.7改变,SJA1000产生

28、硬件中断0SJA1000不会产生错误中断CR.2TIE发送中断使能1当报文被成功发送或发送缓冲器又可访问时,SJA1000会产生中断0SJA1000不会产生发送中断CR.1RIE接收中断使能1报文被无措接收时,SJA1000会产生CPU可识别的中断0SJA1000不会产生接收中断CR.0RR复位请求1SJA1000终止当前正在发送/接收的报文,进入复位模式0SJA1000回到工作模式2.命令寄存器CMR,地址:1,其各位功能如表2.4所示。表2.4 命令寄存器各位说明位符号名称值功能CMR.7保留CMR.6保留CMR.5保留CMR.4GTS睡眠1如果没有未处理的CAN中断和总线活动,SJA10

29、00进入睡眠模式0SJA1000从睡眠状态唤醒,正常工作CMR.3CDO清除数据溢出1清除数据溢出状态位(SR.1)0无动作CMR.2RRB释放接收缓冲器1释放RXFIFO报文存储空间中的接收缓冲器空间0无动作CMR.1AT终止发送1如果一个发送请求尚未被处理,则被取消0无动作CMR.0TR发送请求1报文被发送0无动作3.状态寄存器SR,地址:2,其各位功能如表2.5所示。表2.5 状态寄存器各位说明位符号名称值功能SR.7BS总线状态1脱离总线0在线SR.6ES出错状态1出错0无错SR.5TS发送状态1正在发送报文0空闲SR.4RS接收状态1正在接收报文0空闲SR.3TCS发送完成状态1完成

30、。最近一次发送请求被成功处理0未完成。当前发送请求未处理完成SR.2TBS发送缓冲器状态1释放。CPU可以向发送缓冲器写入报文0CPU不能访问发送缓冲器SR.1DOS数据溢出状态1溢出。报文因RXFIFO中没有足够的空间而丢失0正常SR.0RBS接收缓冲器状态1在RXFIFO中至少有一条完整报文0无报文4.中断寄存器IR,地址:3,其各位功能如表2.6所示。当中断寄存器的一位或多位被置位时,引脚就被激活了。寄存器被微控制器读过之后,所以位自动复位,即引脚上的电平抬高,中断寄存器是只读存储器。表2.6 中断寄存器各位说明位符号名称值功能IR.7保留IR.6保留IR.5保留IR.4WUI唤醒中断1

31、退出睡眠模式时此位被置10CPU的任何读访问将清零此位IR.3DOI数据溢出中断1当数据溢出中断使能被置1时,且数据溢出状态位(CR.4)置1,此位置10CPU的任何读访问将清零此位IR.2EI出错中断1出错中断使能位置1,且出错状态位或总线状态位发送改变,此位置10CPU的任何读访问将清零此位IR.1TI发送中断1发送中断使能位置1,且发送状态缓冲器释放,此位被置10CPU的任何读访问将清零此位IR.0RI接收中断1接收中断使能位置1,且接收缓冲器状态为1,此位被置10CPU的任何读访问将清零此位5.发送缓冲器,地址:10-19,发送缓冲器的全部内容见表2.7。该缓冲器是用来存储微控制器要S

32、JA1000发送的报文的。它被分为描述符区和数据区。发送缓冲器的读/写只能由微控制器在SJA1000处于工作模式的情况下完成。表2.7 发送缓冲器偏移地址区名称位7654321010描述符标示符字节1ID.10ID.9ID.8ID.7ID.6ID.5ID.4ID.311标示符字节2ID.2ID,1ID.0RTRDLC.3DLC.2DLC.1DLC.012数据TX数据字节113字节214字节315字节416字节517字节618字节719字节8(1)标识符(ID)标识符只有11位,在仲裁过程中是最先被发送到总线上的。标识符就像报文的名字。它在验收滤波器中被用到,也在仲裁过程中决定总线访问的优先级。

33、标识符的值越低,其优先级越高。(2)远程发送请求(RTR)如果RTR置1,总线将以远程帧发送数据,这意味着发送的帧中没有数据字节。尽管如此,也需要同识别码相同的数据帧来识别正确的数据长度。如果RTR位没有被置位,数据将以数据长度码规定的长度传送。(3)数据长度码(DLC)在数据区的字节数有数据长度码决定。在远程帧传送时,由于RTR位为1数据长度码不被考虑。尽管如此,数据长度码应正确填写,由于区分在两个SJA1000同时发送具有相同标识符的远程帧时,不同的数据请求而发生总线错误。数据字节长度是08个字节,是用如下方法计算的:数据字节数=为了保持兼容性,数据长度码不超过8。如果超过8,则按照8字节

34、发送。(4)数据区传送的数据字节由数据长度码决定,最先发送的是在偏移地址12的字节1的最高位。6.接收缓冲器接收缓冲器的全部列表和发送缓冲器类似。接收缓冲器是RXFIFO中可访问的部分,位于CAN地址的2029之间。如果RXFIFO中没有足够的空间来存储新报文,SJA1000会产生数据溢出。数据溢出发生时,已部分写入RXFIFO的当前报文将被删除。这种情况将通过状态位或数据溢出中断反映到微控制器。7.接收过滤器在接收过滤器的帮助下,SJA1000能够允许RXFIFO只能接收标识符与接收过滤器中的预设值相一致的报文。接收过滤器通过接收码寄存器(ACR)和接收屏蔽码寄存器(AMR)来定义。(1)接

35、收码寄存器(ACR)接收码寄存器ACR,地址:4,其各位功能如表2.8所示。表2.8 接收码寄存器的位分配位序76543210含义AC.7AC.6AC.5AC.4AC.3AC.2AC.1AC.0复位请求位被置1时,用户可以读/写接收码寄存器。如果一条报文通过了接收过滤器的测试而且接收缓冲器有空间,那么描述符和数据将被分别顺次写入RXFIFO。当报文被正确接收完毕,就会使接收缓冲器位置1,如果接收中断允许,则接收中断位置1。(2)接收屏蔽码寄存器(AMR)接收屏蔽码寄存器AMR,地址:5,各位含义见表2.9。表2.9 接收屏蔽码寄存器的位分配位序76543210含义AM.7AM.6AM.5AM.

36、4AM.3AM.2AM.1AM.0复位请求位置1时,用户可以访问接收屏蔽码寄存器。接收屏蔽码寄存器定义接收码寄存器的相应位对接收过滤器是相关的或无影响的,AM置1表示无影响,置0表示相关。如果接收屏蔽码寄存器全部位都被设置为相关的,则接收码和报文标识符的最高8位必须相等,报文才会被接收。8.其他寄存器(1)总线定时寄存器0(BTR0)总线定时寄存器0定义了波特率预设值(BRP)和同步跳转宽度(SJW)的值。复位模式时这个寄存器才能被访问。(2)总线定时寄存器1(BTR1)总线定时寄存器1定义了每个位周期的长度、采样点的位置和每个采样点的采样数目。在复位模式中,这个寄存器可以被访问。(3)输出控

37、制寄存器(OCR)输出控制寄存器实现了由软件对输出驱动的不同配置。在复位模式中此寄存器可以被访问。(4)时钟分频寄存器(CDR)时钟分频寄存器为微控制器控制CLKOUT的频率以及屏蔽CLKOUT引脚。它还控制着TX1上的专用接收中断脉冲、接收比较通道、BasicCAN模式与PeliCAN模式的选择。硬件复位后寄存器的默认状态是Motorola模式(00000101)和Intel模式(00000000)。软件复位时,此寄存器不受影响。保留位(CDR.4)总是0。应用软件总是向此位写0以与将来可能使用此位的特性兼容。时钟分频寄存器的位功能说明见表2.10,偏移地址是31。表2.10 时钟分频寄存器

38、的位功能说明位序76543210符号CAN modeCBPRXINTENCD.4Clock offCD.2CD.1CD.0CD.4:应用软件应该只向此位写0,以保证未来特性兼容,因为当该位被使用时,1代表某些功能被激活。CD.2CD.0:外部CLKOUT频率控制,在复位模式和工作模式中,CD.2CD.0都可以被访问。这些位是用来控制外部CLKOUT引脚上的频率的。可选频率见表2.11。表2.11 CLKOUT频率选择CD.2CD.1CD.0时钟频率CD.2CD.1CD.0时钟频率000fosc/2100fosc/10001fosc/4101fosc/12010fosc/6110fosc/140

39、11fosc/8111fosc注:fosc是外部振荡器(XTAL)的频率。Clock Off(时钟关闭):将该位置1可以关闭SJA1000的外部CLKOUT引脚输出。关闭的CLKOUT引脚在睡眠模式下为低,非睡眠模式下为高。只有在复位模式下才可以访问该位。RXINTEN(专用接收中断输出控制):置位此位允许TX1输出用来做专用接收中断输出。当一条已接收的报文成功通过接收过滤器,一位时间长度的接收中断脉冲就会在TX1引脚输出。发送输出阶段应该工作在正常输出模式。输出极性和输出驱动可以通过输出控制寄存器编程。只有在复位模式中该位才可以被访问。CBP(CAN输入控制):只能在复位模式置位CDR.6,

40、置位此位可以中止CAN输入比较器。这主要用于SJA1000外接发送接收电路时。此时内部延时被减少,这将会导致总线长度最大可能值得增加。如果CBP被置位,只有RX0被激活。没有被使用的RX1输入应被连接到一个确定的电平(如VSS)。CAN模式:CDR.7定义了CAN模式。如果CDR.7是0,则SJA1000工作于BasicCAN模式;否则,SJA1000工作于PeliCAN模式。该位只有在复位模式中是可以写的。2.4 CAN节点硬件系统的设计硬件电路的设计主要是CAN通信控制器和微处理器之间以及CAN总线收发器和物理总线之间的接口电路设计。CAN通信控制器是CAN总线接口电路的核心,主要完成CA

41、N的通信协议,而CAN总线收发器的主要功能是增加通信距离,实现差分电压输出,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰,实现热防护等。在CAN通信网络中,智能节点的硬件一般按照相同的模式设计开发,通信过程也要按照相同的应用协议进行。2.4.1 SJA1000与单片机的连接SJA1000支持两种模式和处理器连接,即Intel模式和Motorola模式;通过MODE脚来选择接口模式。MODE引脚接高电平,支持Intel模式;MODE引脚接低电平,支持Motorola模式。图2.4是节点的电路原理图,该节点的微控制器选用了8位单片机AT89C52。SJA1000作为CAN总线控制器,并且使用C

42、AN接口驱动芯片PCA82C250。此节点可直接运用到CAN总线网络系统中。SJA1000的数据线和地址线是共用的,可以直接连接到AT89C52的数据线和地址线。把SJA1000看做单片机的一个外部RAM扩展电路。SJA1000支持两种模式单片机的连接,这里选用的是8051系列单片机,所以选择的是SJA1000的复位端连接到AT89C52的P2.3脚,实现SJA1000的软件复位。SJA1000的16脚是中断信号输出端,在中断允许的情况下,有中断发生时,16脚出现由高电平到低电平的跳变,因此16脚可以直接与AT89C52的外部中断输入引脚连接。SJA1000的读/写信号、锁存信号ALE直接与单

43、片机对应引脚连接。SJA1000能用片内振荡器或者片外时钟源工作;另外,CLKOUT引脚可以被使能,向微处理器输出时钟频率。如果不需要时钟CLKOUT信号,则可以通过置位时钟分频寄存器关断。图2.4 CAN总线节点的电路原理图2.4.2 PCA82C250外围电路设计中选择PCA82C250芯片作为CAN驱动器,是因为其具有高速性,具有抗瞬间干扰保护总线的能力,具有降低射频干扰的斜率控制。PCA82C250芯片的RS引脚为斜率电阻输入。通过这个引脚来选择其工作模式。高速模式:通过将引脚8接地,可选择高速方式。在高速工作方式下,发送器输出晶体管简单的以尽可能快的速度启闭。在这种方式下,不采取任何

44、措施限制上升和下降斜率。使用屏蔽电缆以避免射频干扰问题。斜率模式:上升和下降斜率可通过由引脚8至地连接的电阻进行控制,斜率正比于引脚8上的电流输出。对于较低速度或较短总线长度,可用非屏蔽双绞线或平行线作总线。为降低射频干扰,应限制上升和下降斜率。在总线两端要接120的总线阻抗匹配电阻。忽略掉它会降低总线的抗干扰能力,甚至导致无法通信。如图2.5所示。图2.5 PCA82C250外围电路2.4.3 电源电路SJA1000有三对电源引脚,适用于CAN控制器内部各个数字和模拟模块。其中,VDD1/VSS1是内部逻辑电路(数字)的电源,VDD2/VSS2是输入比较器(模拟)电源,VDD3/VSS3是输

45、出驱动器(模拟)的电源。若要使节点有更好的EME性能,应该把电源分割开来。为了增强CAN总线节点的抗干扰能力,SJA1000的TX0和RX0通过高速光耦合器6N137与PCA82C250相连,这样就很好地实现了总线上各CAN节点间的电气隔离。电源的完全隔离可采用小功率电源隔离模块或带多组5V隔离输出的开关电源模块实现,这些部分虽然增加了节点的复杂程序,但却提高了节点的稳定性和安全性。由于缺乏电气隔离方面的专业知识,所以本设计中并没有采取必要的电气隔离措施。2.4.4 单片机地址译码电路74LS139作为SJA1000的地址译码电路与单片机相连,74LS139的1、2、3引脚分别与单片机的P2.

46、2、P2.1、P2.0端口相连,通过单片机的这3个端口选择SJA1000的寄存器地址,与SJA1000的相连,这样就使得SJA1000的基地址为100H。74LS139电气原理如图2.6所示。图2.6 74LS139电气原理图2.5 SJA1000的重要寄存器2.5.1 控制SJA1000基本功能的寄存器SJA1000的内部RAM由寄存器组和报文缓冲区等组成,在BasicCAN模式下,发送缓冲区TXB的地址为1019,接收缓冲区RXB的地址为2029,。发送信息时,应往TXB内写入数据,而接收时,则从RXB中读出数据。CAN地址为3295的区域为存放接收信息的FIFO RAM,地址为96109

47、为存放发送信息的备份。SJA1000的两个工作模式所使用的寄存器数目不同,功能也不尽相同。BasicCAN有031共32个寄存器可用,PeliCAN有0127共128个寄存器可用。微处理器与SJA1000之间的状态、控制和命令信息的交换在控制寄存器中完成,主要控制寄存器有以下几种。(1)方式寄存器MODCAN地址为0,其中,MOD.4决定SJA1000是否为睡眠方式,MOD.3决定验收滤波方式,MOD.0决定是否复位。当MOD.0为1时,SJA1000进入复位状态;为0时,进入工作状态。SJA1000的初始化必须在复位状态下进行。(2)命令寄存器CMRCAN地址为1,它主要是接收来自微处理器的

48、命令。(3)状态寄存器SRSR提供了当前SJA1000的各种状态。其中,SR.7为总线状态,SR.6为错误状态,SR.5为发送状态,SR.4为接收状态,SR.3为发送完成状态,SR.2为发送缓冲区状态,SR.1为数据超载状态,SR.0为接收缓冲区状态。在编程时可充分利用这些状态信息进行相应的处理。(4)中断寄存器IR和中断允许寄存器IER中断寄存器IR和中断允许寄存器IER提供了8种不同类型的中断。(5)时钟分频寄存器CDRCDR决定了SJA1000的CLKOUT引脚的输出和它的工作方式,当CDR.7为0时,SJA1000工作在BasicCAN模式下;为1时,工作在PeliCAN模式下。(6)

49、验收码寄存器ACR和验收屏蔽码寄存器AMR验收码寄存器和验收屏蔽码寄存器共同构成验收滤波器。(7)总线定时寄存器BTR0和BTR1总线定时寄存器决定了采样次数、波特率及机器周期等时间参数。(8)输出控制寄存器OCR输出控制寄存器决定输出不同模式,其值常设置为0AAH。2.5.2 发送缓冲器和接收缓冲器要在CAN总线上发送的数据被载入SJA1000的存储区,这个存储区称为发送缓冲器。从CAN总线上收到的数据也存在SJA1000的存储区,这个存储区称为接收缓冲器。这些缓冲器包括2、3、5字节的标识符和帧信息(包括远程传输请求位和数据长度码)和最多8个数据字节。BasicCAN模式:缓冲器长10个字

50、节(见表2.12),2个标识符字节,最多8个数据字节。PeliCAN模式:缓冲器长13字节(见表2.13),1字节帧信息,2个或4个标识符字节(标准帧或扩展帧),最多8个数据字节。表2.12 BasicCAN模式里的RX和TX缓冲器CAN地址(十进制)名称组成和注释TX缓冲器:10标识符字节18位标识符RX缓冲器:20TX缓冲器:11标识符字节23位标识符,1位远程传输请求位,4位数据长度码RX缓冲器:21TX缓冲器:1219标识符字节18由数据长度码指明,最多8个数据字节RX缓冲器:2229表2.13 PeliCAN模式里的RX和TX缓冲器CAN地址(十进制)名称组成和注释16帧信息1位说明

51、,如果报文包括一个标准帧或扩展帧,1位远程传输请求位,4位长度数据码17,18标识符字节1,2标准帧:11位标识符;扩展帧:16位标识符19,20标识符字节3,4仅扩展帧:13位标识符标准帧:1926扩展帧:2128数据字节18由数据长度码说明,最多8个数据字节2.6 SJA1000的验收滤波器原理SJA1000验收滤波器由4个验收码寄存器(ACR0、ACR1、ACR2、ACR3)和4个验收屏蔽码寄存器(AMR0、AMR1、AMR2、AMR3)组成。这8个寄存器在SJA1000复位模式下可有微处理器设置。通过对这些寄存器的设置,可对接收信息构成非常灵活的滤波。SJA1000具有标准帧和扩展帧两

52、种帧格式,每种帧格式都有单滤波和双滤波功能,故实际上SJA1000共有4种滤波方式。下面以单滤波和双滤波形式分别介绍。2.6.1 单滤波单滤波是指只有一个由4个验收码寄存器和4个屏蔽码寄存器组成的验收滤波器,总线上的信息只有通过了它的验收滤波,才予以接收。无论是单滤波还是双滤波,ACR和AMR都是配合在一起工作。所以AMR为0的位,ACR和CAN信息帧的对应位必须相同才算验收通过,所以AMR为1的位,ACR对应位的验收滤波功能则予以屏蔽,CAN信息帧的相应位与验收结果无关。对标准帧而言,11位标识符和RTR位对应ACR0、ACR1、AMR0、AMR1,其中ACR1和AMR1的低4位未使用。标准

53、帧由于只有11位标识符,数据场的前两个字节也参与滤波,Data1对应ACR2和AMR2,Data2对应ACR3和AMR3。参与滤波的数据字节,不能作为一般用户数据使用。若接收的标准帧为一个远程帧,则只要标识符参与滤波即可。若接收的标准帧是数据帧,且数据场长度少于2字节,则缺少的那部分数据可以不用参与滤波。对扩展帧而言,29位标识符和RTR位分别对应4个ACR和AMR,只是ACR3和AMR3的低2位未使用。实际上,扩展帧的情况比标准帧要简单一些。无论是标准帧还是扩展帧,只有在符合上述条件的验收滤波通过以后,滤波器才将该数据存入FIFO,且置位RBS标志。2.6.2 双滤波双滤波比单滤波要复杂一些

54、,4个ACR和4个AMR在双滤波方式下共构成两个滤波器,接收的信息通过任何一个滤波器即可予以接收。对于标准帧而言,滤波器1由ACR0、ACR1、AMR0、AMR1以及ACR3、AMR3的低4位组成,对于11位标识符、RTR位和数据场第1字节,共20位,参与了滤波,验收滤波的具体过程与单滤波相同。滤波器2由ACR2、AMR2以及ACR3、AMR3的高4位组成,参与滤波的只有11位标识符和RTR位。对于扩展帧而言,滤波器1由ACR0、ACR1、AMR0、AMR1构成,29位标识符中也只有高16位参与了滤波。滤波器2由ACR2、AMR2、ACR3、AMR3构成,参与滤波的同样是29位标识符中的高16

55、位。2.7 CAN控制器中位定时参数设置的一般方法在典型的独立CAN控制器SJA1000中,负责位定时的寄存器为总线定时寄存器0和总线定时寄存器1。寄存器中有关参数的计算公式如下: (2-1) (2-2) (2-3) (2-4) (2-5) (2-6)这些参数的范围在CAN中有比较严格的规定,具体如表2.14所列表2.14 位定时参数的范围(以时间份额度量)参数范围说明SAM0或1规定采样次数SJW14规定相位缓冲段延长或缩短的上限BRP164规定时间份额的长度SYNC_SEG1同步总线上各节点TSEG1116补偿沿相位误差可被延长TSEG218可被缩短NBT825正常位时间在有些情况中,为了

56、优化网络性能,这些参数的设置往往需要考虑传输延迟、时钟变频等因素。然而,对于一般的开发或工程,完全可以根据经验对其进行计算和设置。由于笔者水平有限,这里就不再举例具体说明如何计算设置这些参数。2.8 CAN通信协议的制定CAN协议本身只定义了物理层和数据链路层的规范(遵循OSI标准),这使得CAN能够更广泛地适应不同的应用条件。虽然CAN留给用户的空间非常大,但也给用户使用CAN带来了不便。用户在应用CAN协议时,必须根据实际需求自行定义CAN高层协议。为了将CAN协议的应用推向更深的层次,同时满足产品的兼容和互操作性,国际上已经形成了诸多适用于CAN的更高层协议,比如,CAL、CANopen

57、、CAN Kingdom等,这些高层协议主要应用在工业控制、汽车、仪器仪表等行业中,适合于温室环境的统一的CAN高层应用协议还没有形成。CAN应用协议主要规定以下几个方面的内容:信息标识符的分配、过程数据交换方法、点对点通信实现、报文滤波机制的使用方法等。由于笔者经验优先,这里就不再举例说明CAN应用层协议的制定方法。2.9 CAN节点软件系统的设计2.9.1 CAN节点的软件结构在CAN通信网络中,各个节点的软件和硬件一样,也都采用相同的模式。节点的软件一般由4部分构成。(1)CAN通信软件包括CAN控制器SJA1000的初始化设置、报文的接收和发送、错误数据处理等。(2)应用层协议软件该部分按照CAN总线的应用协议来编写,完成对接收数据的解析、对待发送保卫你的组装。(3)数据管理中心数据管理中心是CAN节点全部数据在处理器RAM中的分配表,包括各种数据标志,CAN相关数据和过程数据等。(4)具体应用程序包括变量输入函数和输出控制函数等。由于不同的应用网络有不同的数据分配模式和不同的应用程序,因此这里着重讨论CAN总线的通信软件。在CAN节点通信软件设计之前,首先要熟悉建立CAN通信的步骤和流程。2.9.2 建立CAN通信的步骤和流程1.系统上电后根据SJA1000的硬件和软件设置微处理器;在SJA1000硬件复位后,根据选择的模式、验收滤波、位定

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!