资源描述
基于NMEA2000的罗经复示器设计专业班级:08级自动化3班姓 名:XXXX指导教师:XXXX信息科学技术学院摘 要如今罗经越来越受到各国专家学者的重视,罗经传输的误差引起的航向的偏离,不仅导致船舶航向偏离所引起的燃料的浪费,甚至会引起船舶的相撞,导致重大的 生命和财产损失。甚至对海洋的生态和环境都构成了严重的污染以及威胁。本设计就是针对使罗经的数据能快速准确地反映到仪表盘上,为航向的决策提 供正确的保障。主要内容包括:基于89c51和X5045的单片机最小系统的设计;基 于SJA1000的控制电路的设计;基于CAN总线收发器82C250的电路设计;基于 ZLG7290的循环显示电路的设计。根据电气主线设计以满足可靠性、灵活性、经济性的要求。本设计所用的SJA1000 为PHILIP公司生产的控制局域网的高速集成的独立通信控制器,82C250是CAN 协议控制器和物理总线的接口这个器件对总线提供不同的发送能力和对CAN控制器 提供不同的接收能力。介绍了控制器和收发器及看门狗X5045的特点、使用方法、内部结构、以及开发程序,说明一种反用于船体的罗经通讯的CAN收发电路的设计 和开发,探讨成用中需要注意的一些问题。本设计运用国内主流CAN独立控制器PHILIP公司生产的SJA1000和82C250,实用性强,使用范围广,器件容易买到,经济性好,编写的程序稍加改动就可以以 用到实际工控中。关键词:CAN总线;控制器;收发器IABSTRACTNowadays study on the communication of compass is increasingly attract the attention of national experts and scholars,the departure of course because of the transporting error of the compass not only leads to the waste of the fuel,but also threaten human life and caused great losses on the property,even do the marine ecology and the environment constitute severe pollution,and threats.The main design elements includes:the design of the smallest single-chip system by AT89C51 and X5045;the design of the control circuit by S J Al 000;the design of the circuit by 82C250,the transceiver of the CAN communication;the design of the display circuit of LED by ZLG7290.According to the main line of electrical design should meet the reliability,flexibility,economy requirements.The design uses SJA1000,the independent controller and 82C250,the port circuit of the CAN Bus and the independent controller.They all the products from the PHILIP corporation.To introduce the characters of the controller,the transceiver and the watch dog,including usage method,inner structure,the development procedure.Press on the design of the communication used to the Compass by CAN Bus and some problems would happened in the design.The design is using the popular independent controller and the transceiver made by PHILIR The development procedure can be transplanted to the practical function just be modified a little.Keywords:CAN BUS,Controller,Transceivern目 录第1章绪论.11.1 课题研究的背景及意义.11.2 本章小结.2第2章总体方案.32.1 CAN协议解析.32.2 CAN主要技术特点.32.3 总体设计.32.4 本章小结.5第3章 单片机最小系统部分.63.1 最小系统介绍.63.2 X5045元件介绍.63.3 电路设计.73.4 本章小结.9第4章显示部分.104.1 ZLG7290.104.2 显示电路.104.3 本章小结.12第5章控制电路部分.135.1 SJA1000.135.2 控制电路设计.135.3 本章小结.14第6章收发部分.156.1 82C250.156.2 收发电路设计.166.3 本章小结.17第7章详细设计.187.1 各部分原理.187.2 本章小结.19第8章CAN实现程序.208.1 显示部分检测.208.2 通讯自检测.20in8.3 本章小结.23总结.24参考文献.25致 谢.26附录1.1附录2.13附录3.15IV基于NMEA2000的罗经复示器设计基于NMEA2000的罗经复示器设计第1章绪论经济的迅速发展,科学技术的不断进步促使社会中各行各业都在不断地发展壮 大,特别是各种高、新、尖、精的技术质用,而所有的一切都离不开控制系统川。如 何能够使控制系统趋向小型化、功能多样化、支持GM10,成为了实际质用中的重要 课题。CAN通信就是在这样的背景下以运而生。尤其是20世纪60年代末,随着现 代工业生产自动化水平的日益提高及微电子技术的飞速发展,对工业控制器的要求 也越来越高。CANControl(Controller)Area Network是一种有效支持分布式控制或实 时控制的串行通信网络,最初由德国Bosch公司80年代用于汽车内部测试和控制仪 器之间的数据通信。目前CAN总线规范已被国际标准化组织ISO制订为国际标准 ISO11898,并得到了 Motorola,Intel,Philips等大半导体器件生产厂家的支持,迅 速推出各种集成有CAN协议的产品。目前CAN总线主要用于汽车自动化领域,如发动机自动点火、注油、复杂的加速刹车控制(ASC)、抗锁定刹车系统(ABS)和抗滑系统等。BENZ、BMW等著名汽车上已经采用CAN来满足上述功能。在工 业过程控制领域,CAN也得到了广泛的反用。NMEA2000是国家航海电子联合会(NMEA)在J1939基础上提出的航海以用中控制 单元间进行数据交换的通讯协议。带NMEA2000选项的CANoe可以应用在从设计到实 现的整个开发过程中。在设计阶段创建的模型可以在以其他形式不断的重复利用。例 如,可以利用模型校验实现,随后在最终测试阶段作为功能测试。用户不需要熟悉 NMEA2000协议,只需集中注意力在创建仿真模型的实现或者数据分析。它可以显著的 提高开发进程的质量,提高数据分析的效率。由于海上的环境复杂,对仪器的要求较高,且船上的空间宝贵,因此虽然CAN 通信已经质用于陆上的很多设备中,技术已经较为成熟,但仍然未质用于船舶通信 中。现在船舶控制仍然采用DCS系统。因此,FCS系统能成用于船舶控制已经在业 界达成了广泛的共识。1.1 课题研究的背景及意义此设计题目是针对船舶的罗经的模拟通信进行CAN协议的转换,实现CAN通 信。在设计伊始,为了更加明晰船舶罗经的工作原理,我用了一周的时间专程去了 锦州航星集团,在有关技术人员的指导下,对船用控制仪器仪表有了一个大致的了 解,对船舶控制所涉及到的原理有了概念式的认识,对船舶罗经的工作原理有了比 较深入的掌握,并把所设计的有关内容做了整体的记录,参观过程中通过技术人员1基于NMEA2000的罗经复示器设计的指导和结合自身的实际情况,对本次设计按照如下步骤进行:首先:依照AT89c51的特点,添加看门狗元件X5045,构成单升机最小系统,实现上电复位控制、电源电压监控、看门狗定时器的功能。其次:进行SJA1000控制器和82c250收发器的整体设计,实现上位机与现场微 处理器之间的数据通信。再次:选择显示电路的芯片元件。由于ZLG7290能够承担显示部分的动态显示 程序,减轻了单片机工作的负担,且使用简单,电路可靠,因此本次设计使用ZLG7290 构成的矩阵键盘和四数码管集成的7SEG-MPX4-CC元件构成显示电路。以上是理论知识的体现而更重要的是在设计中培养自己运用所学的知识解决实 际问题的能力和创新精神,增强工程观,在设计过程中主要立足于反用所学基本理 论和专业知识,大胆地运用新理论、新技术去分析解决实际问题,以便更好地适成 工作的需要。所有的设计查阅资料是必不可少的,面资料的获取后以实际为准,作 为一名初次设计者,设计之前反具备一定的设计能力,但是由于缺乏经验,知识体 系的不够完善等因素,在设计过程中也有缺陷。因此设计的电路无法直接以用于实 际电路中,底稍加改动。了解整个设计的目的、内容和基本要求进行设计的资料准备。资料准备主要通 过查阅(包括上网查问)文献资料和参加生产实习两条渠道进行。此设计充分吸收 专业理论知识,考虑自己毕业设计的选题方向,有目的、有计划地查阅与选题方向 有关的文献资料,特别是在参加生产实习的过程中有意识地搜集生产过程及新技术、新设备、改革新成果的反用等方面资料,这也是为毕业设计课题收集资料的最重要 的途径。选定题目后,成再有针对性地查阅一些资料,最后对所有收集的资料进行 整理。并对其进行完善,对于一个完整的设计而言,文字与图纸并存。文字的详细 叙述使内容丰富,而图纸则一目了然。最后由于设计者的水平有限,以及对电气技术日新月异的发展掌握不够,加之 国外电气技术和产品的大量引进,我国对电气设计设备技术标准、规范还在不断地 改进和完善,所以设计难免有不足,希望老师给予批评指正,使本设计更加完善。1.2 本章小结本次设计不仅仅在于完成本人的毕业设计,对于中国船舶控制行业未来的主流 控制趋势也有很好的前瞻性,为相关从业人员提供很好的范例。对此题目的设计除 了注重实际反用外,还以考虑可靠性、经济性和控制的稳定性。如线路保护、接地 保护、变压器保护等保护的有关问题及其设备元件的选择。2基于NMEA2000的罗经复示器设计第2章总体方案CANControl(Controller)Area Network是控制(器)局域网的简称。CAN 是 一种有效支持分布式控制或实时控制的串行通信网络,最初由德国Bosch公司80年 代用于汽车内部测试和控制仪器之间的数据通信。目前CAN总线规范已被国际标准 化组织ISO制订为国际标准ISO11898,并得到了 Motorola,Intel,Philips等大半导 体器件生产厂家的支持,迅速推出各种集成有CAN协议的产品。目前CAN总线主 要用于汽车自动化领域,如发动机自动点火、注油、复杂的加速刹车控制(ASC)、抗锁定刹车系统(ABS)和抗滑系统等。BENZ、BMW等著名汽车上已经采用CAN 来满足上述功能。在工业过程控制领域,CAN也得到了广泛的取用。2.1 CAN协议解析CAN协议可分为:目标层、传送层、物理层。其中目标层和传送层包括了 ISO/OSI 定义的数据链路的所有功能。目标层的功能包括:确认要发送的信息;位成用层提 供接口。传送层功能包括:数据帧组织:总线仲裁:检错、错误报告、错误处理。CAN总线以报文为单位进行信息交换,报文中含有标示符(ID),它既描述了 数据的含义又表明了报文的优先权。CAN总线上的各个协点都可主动发送数据。当 同时有两个或两个以上的节点发送报文时,CAN控制器采用ID进行仲裁。ID控制 节点对总线的访问。发送具有最高优先权报文的节点获得总线的使用权,其他节点 自动停止发送,总线空闲后,这些节点将自动重发报文。2.2 CAN主要技术特点CAN网络上的节点不分主从,任一节点均可在任意时刻主动地向网络上其他节 点发送信息,通信方式灵活,利用这一特点可方便地构成多机备份系统。CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传 送接收数据,无需专门的“调度”。CAN的直接通信距离最远可达10km(速率5kbps 以下);通信速率最高可达21Mbps(此时通信距离最长为40m)。CAN上的节点数主 要决定于总线驱动电路,目前可达H0个;报文标识符可达2032种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制。2.3 总体设计CAN总线接口电路主要包括:单升机最小系统、控制器接口、总线收发器、看 3基于NMEA2000的罗经复示器设计门狗电路和显示电路等。采用Philips公司生产的SJA1000控制器和与其配套的 82C250CAN收发器。按照CAN总线物理层协议选择总线介质,设计布线方案,连 接成CAN网络。双绞屏蔽线可设两套,在两套介质上同时进行信息传输,接收方只 用一个介质。在冗余和非冗余段的连接临界点处进行总线切换。硬件电路的设计主要是CAN通信控制器与微处理器之间和CAN总线收发器与 物理总线之间的接口电路的设计。CAN通信控制器是CAN总线接口电路的核心,主要完成CAN的通信协议,而CAN总线收发器的主要功能是增大通信距离,提高 系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI),实现热防护等。看门狗 电路主要是实现对电路的监控和复位作用。目前广泛流行的CAN总线器件有两大类:一类是独立的CAN控制器,如 82c200、SJA1000及Intel82526/82527等,另一类是带有在片CAN的微控制器,如 P8XC582及16位微控制器87C196CA/CB等。本课题选取PHILIPS公司的SJA1000 CAN控制器以及82C250总线收发器,主要是考虑到SJA1000支持CAN 2.0A/B规 约。而82c250可以支持110个CAN节点,并且国内市场上PHILIPS的产品型号比 较多,购买比较方便。在本次设计中,总体设计如下图:图2.1总体设计图4基于NMEA2000的罗经复示器设计2.4 本章小结本章对CAN总线进行了简单的介绍,同时抛出了本次设计的总体思想,对以后 的设计具有指导意义。5基于NMEA2000的罗经复示器设计第3章 单片机最小系统部分3.1 最小系统介绍单片机最小系统就是能使单片机工作的最少的器件构成的系统。最小系统虽然 简单,但是却是大多数控制系统所必不可少的关键部分。对于MCS-51单升机,其内部已经包含了一定数量的程序存储器和数据存储器,在外部只要增加时钟电路和复位电路即可构成单升机最小系统。下面对51单升机最 小系统需要的时钟电路和复位电路做一下详细的说明。时钟电路 单片机系统中的 各个部分是在一个统一的时钟脉冲控制下有序地进行工作,时钟电路是单片机系统 最基本、最重要的电路。MCS-51单片机内部有一个高增益反相放大器,引脚XTAL1和XTAL2分别是 该放大器的输入端和输出端,如果引脚XTAL1和XTAL2两端跨接上晶体振荡器(晶振)或陶瓷振荡器就构成了稳定的自激振荡电路,该振荡电路的输出可直接送 入内部时序电路。MCS-51单片机的时钟可由两种方式产生,即内部时钟方式和外 部时钟方式。实际取用中,并不是对51单片机外接晶振、电容和电阻等元件,而是使用集成 元件与MCU进行连接,既节约空间又增加了电路的可靠性。本次设计中,使用可靠 性高、使用范围广、易于在公开市场上采购到的X5045集成元件。3.2 X5045元件介绍X5045P把四种常用的功能:上电复位、看门狗定时器、电源电压监控和块锁(Block LockTM)保护的串行EEPROM存储器组成在一个封装之内。这种组合降 低了系统成本、减少了电路板空间和增加了可靠性。其引脚及其功能如下:CSAVDI:片选输入/看门狗复位输入;SO:串行输出;WP:写保护输入;Vss:地;Vcc:电源;RESET:复位输出;SCK:同步时钟输入;6基于NMEA2000的罗经复示器设计SI:串行输入。X5045P芯片功能包括以下4种:(1)上电复位控制。在对X5045P通电时,ERSET引脚输出有效的复位信号,并保持至少200ms,使CPU有效复位。(2)电源电压监控。当检测到电源电压低于内部门槛电压VTRIP时,RESET输 出复位信号,直至电源电压高于VTRIP并保持至少200ms,复位信号才被撤消。VTRIP 的出厂值根据芯片型号不同共有5个级别的电压范围。对于需要电源电压精确监控 的反用,用户可以搭建编程电路,对芯片内VTRIP电压进行微调。(3)看门狗定时器。芯片内部状态寄存器的WD1、WD0是看门狗定时设置位,通过状态寄存器写指令WRSR修改这2个标志位,就能在3种定时间隔中进行选择 或关闭定时器。对看门狗的复位由CS输入电平的下降沿完成。(4)串行E2PROM。芯片内含512字节存储单元,10万次可靠写,数据保持时 间100年。XICOR设计了 3种保护方式防止误写。包括:WP写保护弓|脚,当弓|脚 被拉低时,内部存储单元状态寄存器都禁止写入;存储区域写保护模式,通过对状 态寄存器的BL1、BL0位的设置,可以选择对不同的存储区域进行写保护;在进行 任何写操作前都必须打开写使能开关,而且在上电初始化写操作完成时,写使能开 关自动关闭。显然,在几方面的保护之下,产生误写的可能性极小。对X5045P的操作是通过4根口线CS、SCK、SI和SO进行同步串行通信来完 成的。SCK是外部输入的同步时钟信号。在对芯片定改指令或数据时,时钟前沿将 SI引脚信号输入;在读邮数据时,时钟后沿将数据位输出到SO引脚上。数据的输入/输出都是高位在先。3.3 电路设计X5045P在本设计中做为复位、监控电路使用,简化了电路的连接,同时增加了 电路的可靠性,是系统中不可缺少的部分。对X5045的操作是通过4根口线CS、SCK、SI和SO进行同步串行通信来完成 的。SCK是外部输入的同步时钟信号。在对芯片定改指令或数据时,时钟前沿将SI 引脚信号输入;在读数据时,时钟后沿将数据位输出到SO引脚上。数据的输入/输 出都是高位在先。在设计中,/CS脚和单升机P2.7、SI、SCK、SO、/WP、RST分另lj 与单片机的引脚Pl.3、P1.0、Pl.4、P1.1和RST连接。对于不用到的引脚,可以直 接和地相连。电路设计如下:7基于NMEA2000的罗经复示器设计+5VGNDU1A15_l/CS VCC-HSO 2 7 RSTSO RESETA/WP 36 SCKO/WP SCK1._47CQ QT一 5 SIV oo oiX5045C18-|GND 104图3.1单片机最小系统电路8基于NMEA2000的罗经复示器设计3.4 本章小结本章介绍了单片机最小系统,用于监测系统是否工作于正常状态,及时对运行 出错的状态进行复位,保证系统平稳有序地工作。10基于NMEA2000的罗经复示器设计第4章显示部分4.1 ZLG7290ZLG7290是一种12c接口键盘及LED驱动管理器件,提供数据译码和循环、移 位、段寻址等控制。它可采样64个按键或传感器,单片即可完成LED显示、键盘 接口的全部功能。ZLG7290的从地址为70H,器件内部通过I2C总线访问的寄存器 地址范围为00H17H,每个寄存器都可按字节直接读写,并支持自动增址功能和地 址翻转功能。其特点如下:1、I2C串行接口提供键盘中断信号方便与处理器接口2、可驱动8位共阴数码管或64只独立LED和64个按键3、可控扫描位数 可控任一个数码管闪烁4、提供数据译码和循环移位段寻址等控制5、每个功能键可检测任一键的连击次数6、无需外接元件即直接驱LED可扩展驱动电流和驱动电压7、提供工业级器件 多种封装形式PDIP24 so244.2 显示电路ZLG7290提供两种控制方式。寄存器映象控制和命令解释控制。寄存器映象控 制是指直接访问底层寄存器,除通信缓冲区外的寄存器实现基本控制功能,请参考 寄存器详解部分命令解释控制是指通过解释命令缓冲区CmdBufO CmdBufl中的指 令间接访问底层寄存器实现扩展控制功能如实现寄存器的位操作对显示缓存循环移 位对操作数译码等操作。ZLG7290集成了 LED显示驱动和矩阵键盘的按键功能,可 以同时驱动8个LED和64个矩阵按键,采用总线方式连接键盘和4LED封装器件,ZLG7290 的 SDA、SCL、/INT 和/RES 分别接单片机的 PL7、PL6、P3.3 和 PL5。电 路设计如下:11基于NMEA2000的罗经复示器设计S1GND1SWITCH4|GND41SWITCH|*GND2 T4TSWITCHR5Y2 唱r24.000M卜5VRESGND169 io卜4?r k 七:卜 tUXu-F-bii P220 S 迫A22。sb2 S茎220 se220 SezH图4.1ZLG7290显示电路11基于NMEA2000的罗经复示器设计图4.2四位一体数码管电路部分4.3 本章小结本章对显示部分的电路进行了设计,使用了 ZLG7290对四位一体数码管进行显 示控制,减轻了单升机的负担。12基于NMEA2000的罗经复示器设计第5章控制电路部分5.1 SJA1000SJA1000是一种独立控制器,用于移动目标和一般工业环境中的区域网络控制(CAN)o它是PHILIPS半导体PCA82c200 CAN 控制器(BasicCAN)的替代产 品。而且,它增加了一种新的工作模式(PeliCAN)。特点.和PCA82c200独立CAN控制器引脚兼容.和PCA82c200独立CAN控制器电气兼容.PCA82C200模式(即默认的BasicCAN模式).扩展的接收缓冲器(64字节、先进先出FIFO).和CAN2.0B协议兼容(PCA82c200模式中的无源扩展帧).同时支持11位和29位识别码.位速率可达IMbits/s.PeliCAN模式扩展功能:.可读/写访问的错误计数器.可编程的错误报警限制.最近一次错误代码寄存器.对每一个CAN总线错误的中断.具体控制位控制的仲裁丢失中断.单次发送(无重发).只听模式(无确认、无活动的出错标志).支持热插拔(软件位速率检测).验收滤波器扩展(4字节代码,4字节屏蔽),自身信息接收(自接收请求).24MHz时钟频率.对不同微处理器的接口.可编程的CAN输出驱动器配置5.2 控制电路设计SJA1000是PHILIP公司生产的独立CAN控制器,是用于实现CAN信号对数字 信号转换、CAN信号的收发、CAN信号的接收、校验和重发等功能的控制器件。同 时还提供了通讯接口用于和微机芯片进行通信,通过串行通信实现CAN信号的微机 13基于NMEA2000的罗经复示器设计处理程序。SJA1000的调用是通过微机访问其内部寄存器,操作寄存器标志位实现 的。SJA1000 的 ADOAD7、ALE、/CS、/RD、/WR、MODE、/INT、/RST 分别接单 片机的 PO 口、/ALE、P2.6、P3.7、P3.6、P2.5、P3.2 和 Pl.2。SJA1OOO 与微机的电 路图如下所示:图5.1四位一体数码管电路部分5.3 本章小结本章介绍CAN控制电路,这部分是CAN通信的核心部分,是本次设计的重点 所在,对本次设计的成败与否起到关键作用。14基于NMEA2000的罗经复示器设计第6章收发部分6.1 82C25082C250是CAN协议控制器和物理总线的接口,这个器件对总线提供不同的发 送能力和对CAN控制器提供不同的接收能力。它主要用于汽车里的高速成用(高达 IMbaud)o这个器件对总线提供不同的发送能力和对CAN控制器提供不同的接收 能力,完全和ISO11898标准兼容。限定的电流值保护接收器输出级,避免阳极和阴 极的短路,尽管在默认的条件下功率消耗是增加的,这个特征值将防止发送器输出 级的毁坏。如果节点温度超过大约160摄氏度,发送器限定的电流值输出被降低。因为发送器占去大部分的功率消耗,这将导致降额功耗和较低的片内温度。IC中的 其它部分在使用中将保持不变,当总线短路的时候,热保护非常需要这个。CANH 和CANL线也被保护,防止在自动运作过程中电流的瞬变。三种操作模式高速模式在这个模式中,适合执行最大的位速率和最大的总线长度高速模式,通常用于 普通的工业质用。臂如基于CAN的系统DeviceNetTM这种模式的总线输出信号。用 尽可能快的速度切换,因此,一般使用屏蔽的总线电缆来防止可能的扰动。例如汽 车无线电装置对总线信号的扰动。高速模式通过VRs0.385时是155ns。斜率控制模式在一些反用中,由于考虑到系统的成本等问题,而使用非屏蔽的总线电缆。然 而使用非屏蔽电缆意味着收发器要满足额外的要求,臂如电磁兼容性EMC问题。如 果使用非屏蔽总线电缆PCA82c250/251的总线,信号转换速度成被特意降低。转换 速度可以通过连接在控制引脚Rs上的串连阻抗值Rext来调整。根据CAN的位定时 要求转换速度下降,将增加总线节点的循环延迟。因此在给定的位速率下,总线长 度减少或者说在给定的总线长度下位速率降低,斜率控制模式中总线输出的转换速 度大致和流出引脚Rs的电流成比例。如果斜率控制电阻Rext连接到地则VOL.max 的值是OVo准备模式这个模式是在需要将功率消耗,臂如是暂时性的减到最低时使用。当VRs0.75 Vcc时进入准备模式。系统的功耗在准备模式可被彻底减低。这个模式基本上用于 电池供电的应用。例如汽车停车的时候耍进入准备模式,收发器的控制输入Rs上要 15基于NMEA2000的罗经复示器设计加一个逻辑高电平,这可以通过直接将一个输出端口引脚连接到RS或通过任何合适 的斜率控制电阻Rext来实现。准备模式中发送器的功能和接收器的输入偏置网络都 关断以减少功率消耗。参考电压输出和基本的接收器功能仍然活动,但以非常低的 功耗工作。如果在总线上传输一个报文,系统可被重新激活,在检测到3pis长的显 性总线电平后,收发器将通过RxD向协议控制器输出一个唤醒中断信号,在检测到 RxD的下降沿后控制器把Rs引脚置为逻辑低电平。这样收发器就可以切换到普通传 输模式。由于在准备模式中工作速度缓慢,收发器要回到普通接收速度,则需要取 决于逻辑的延迟时间Rs的下降沿。在总线速度很高的情况下,收发器在准备模式,例如因为Rs引脚仍然为高,不可能正确地接收报文。另外一个反用是将Rs输入连 接到一个高电平有效的复位信号。6.2 收发电路设计在CAN接口电路的设计中,控制器SJA1000和收发器82C250是设计的关键部 分。其中SJA1000负责对信号的发送、接收控制和校验重发等功能;82c250则负责 连接CAN控制器和CAN通信的物理连接,同时负责对CAN信号地址分析,做出是 否接收的判断,是发送CAN信号的中转站,也具有一定的判断能力,收发电路由两 部分组成:光隔和收发部分。DVCC-5V1104U6NCVCC72%VDDEN87年RXDINOUTRX0104GNDNCGND6N137图6.1光隔电路GND416基于NMEA2000的罗经复示器设计GND图6.2收发电路6.3 本章小结对CAN收发电路进行了说明和设计,实现CAN控制电路和外界物理CAN线路 的连接。17基于NMEA2000的罗经复示器设计第7章详细设计7.1 各部分原理CAN总线接口电路主要包括:单升机、控制器接口、总线收发器和看门狗电路 等。采用Philips公司生产的SJA1000控制器和与其配套的82C250CAN收发器。按 照CAN总线物理层协议选择总线介质,设计布线方案,连接成CAN网络。双纹屏 蔽线可设两套,在两套介质上同时进行信息传输,接收方只用一个介质。在冗余和 非冗余段的连接临界点处进行总线切换。硬件电路的设计主要是CAN通信控制器与微处理器之间和CAN总线收发器与 物理总线之间的接口电路的设计。CAN通信控制器是CAN总线接口电路的核心,主要完成CAN的通信协议,而CAN总线收发器的主要功能是增大通信距离,提高 系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI),实现热防护等。看门狗 电路主要是实现对电路的监控和复位作用。在本电路原理中,控制单元以单片机AT89c51为核心,选用器件SJA1000作为 CAN控制器,并选用芯片82c250和6N137、X5045P作为CAN控制器接口和光耦 合隔离、复位电路。在实际中,成注意以下几个问题1.SJA1000的中断请求信号INT在中断允许且有中断发生时,由高电来此跳变 到低电平,所以INT和AT0C51的INTO直接相连。升选信号CS和单升机引脚P2.7 相连,当CS接到低电平时,SJA1000被选中,CPU可对SJA1000进行读/写操作。为了增强CAN总线节点的抗干扰能力。SJA1000的TX1脚悬空,RX1引脚的电位 必须维持在约0.5VCC上,否则,将不能形成CAN协议要求的电平逻辑。2.SJA1000的TxD和RxD并不是直接与82C250的TxD和RxD相连而是通过 高速光耦合6N137后与82C250相连,这样就可以很好的实现了总线上个CAN节点 的电气隔离,不过应该特别说明一点的是光耦部分电路所采用的两个电源Vcc和Vdd 必须完的时钟信号接至AT89C51的时钟电路输入端,作为AT89C51的外部时钟输 入,解决了时钟同步问题。4.82C250是CAN总线收发器,是CAN控制器SJA1000正常工作与CAN总线 的接口器件,是对CAN总线以差分方式发送,TXD和RXD引脚分别发送经过驱动 后的发送和接收信号。其引脚RS用于选择82C250的工作模式(高速、斜率或等待)。RS脚接地,82c250工作于高速方式,RS脚串接一个电阻R后再接地,若82c250 处于CAN总线的网络终端,总线接口部分必须加一个120Q的匹配电阻,以保护 82C250免受过激的冲击忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低。本设计中,82C250的CANH和CANL引脚与地之间并联了两个30pf的小电容可以 18基于NMEA2000的罗经复示器设计起到滤除总线上的高频干扰和一定的防电磁辐射的能力。5.另外在两根CAN总线接入端与地之间分别反接了一个保护二极管。当CAN 总线有较高的负电压时,通过二极管的短路可起到一定的过压保护作用,82c250的 Rs脚上接一个斜率电阻。电阻大小可以根据总线通信速度适当调整一般在 16140KQ 之间。6.另外,在本系统中取用到的芯片X5045P具有电源监控、看门狗等功能,还 同时输出高低电平的复位信号,分别输出到AT89c51和SJA1000的复位端,以满足 本次设计的要求。原理图和PCB图参见附录2o7.2 本章小结详细介绍了硬件设计的原理,同时附上制作好的PCB图,以便制作出实际的产 品用于实际应用中。19基于NMEA2000的罗经复示器设计第8章CAN实现程序以下是对本次设计功能实现的软件编程,在KEIL的软环境下实现。需要在头文 件目录中加入ZLG7290和IIC总线的C程序和头文件。本次设计的目的旨在实现船 舶罗经信号的CAN信号转换和通信,显示部分用ZLG7290进行动态数码管显示,其循环程序在ZLG7290内部循环运行,减轻单升机的负担,同时动态显示有利于节 约电源,对于船舶供电量有限的场所十分重要。对本次设计的电路和程序稍加改动 就可以取用到实际工控中,完成更加复杂的功能。程序如下:8.1 显示部分检测#include#include#include#define uchar unsigned charvoid main(void)(RES=0;delayMS(lOOO);RES=1;delayMS(lOOO);ZLG7290_SendCmd(0 x60,0 x01);ZLG7290_SendCmd(0 x61,0 x02);ZLG7290_SendCmd(0 x62,0 x03);ZLG7290_SendCmd(0 x63,0 x04);RES=1;)经过检测,系统的显示部分能够正常工作,说明系统能够正常显示。8.2 通讯自检测/PeliCan 编程#include#include#include#include#include#define uchar unsigned char20基于NMEA2000的罗经复示器设计uchar AD8;/全局接收数组*8 9 S51)台 7fziS*/void Init_MCU(void)P0=0 xFF;PUOxFF;P2=0 xFF;P3=0 xFF;)*SJ000 女台*/void Init_SJA1000(void)A14=0;片选 SJA1000WR=0;写使能 SJA1000A12=0;82c250工作于斜率模式RST=0;/SJA1000 复位模式CMR=0 xlE;自收发,清除数据溢出,释放接受缓存器,撤销发送请求,发送 当前信息IER=0 x03;发送和接受均采用中断方式发送信息格式设置IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITBSR0=0 x08;标准帧、数据发送、数据长度:8TBSRl=OxFF;识另 I码 1TBSR2=0 xFF;识另I码 2IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIBTR0=0 xCl;总线定时寄存器0:同步跳转宽度为4tscl,波特率设定BTRl=0 xA5;总线定时寄存器1:三倍总线采样,波特率设定OCR=0 xlA;输出管脚TX0=TXD输入信号,TX1输出高阻CDR=0 xC8;PeliCAN模式、无接收比较,只有RX0被激活,CLKOUT弓|脚被禁用/delayMS(lOOO);RST=l;/SJA1000 工作模式 delayMS(lOOO);MODR=0 x04;自检测,节点没有活动时使用自收发命令CMR=0 xl0;自收发MODE=1;/INTEL 模式 delayMS(lOOO);验收代码寄存器ACR0=0 xFF;ACRUOxFF;21基于NMEA2000的罗经复示器设计ACR2=0 xFF;ACR3=0 xFF;验收屏蔽寄存器AMR0=0 xFF;AMRl=0 xFF;AMR2=0 xFF;AMR3=0 xFF;)lllllllllllllllllllllllllllllllllllllll/*中断处理程序*/void interO_can_xd(void)interrupt 0uchar state;EA=O;IEO=0;由于是中断INTO是电平触发方式,所以需要软件将INTO的中断请求标 志IE0清零if(IR&0 x01)检测,RXD 程序RD=0;读使能 S J Al 000AD0=RBSR3;AD1=RBSR4;AD2=RBSR5;AD3=RBSR6;AD4=RBSR7;AD5=RBSR8;AD6=RBSR9;AD7=RBSR10;CMR=0 xl4;释放接收缓冲器,置位自接收请求state二ALC;/释放仲裁随时捕捉寄存器(读该寄存器即可)state二ECC;/释放错误代码捕捉寄存器(读该寄存器即可)RD=1;关闭SJA1000的读使能)EA=1;)char code dx516
展开阅读全文