基于CAN总线的智能节点设计
- 格式:pdf
- 大小:524.29 KB
- 文档页数:4
基于CAN总线的船舶自动化系统研究与设计随着航运业的发展和船舶技术的不断进步,船舶自动化系统在船舶设计和运行中扮演着越来越重要的角色。
CAN总线作为一种灵活、可靠和高效的通信协议,被广泛应用于各种船舶自动化系统中。
本文将针对基于CAN总线的船舶自动化系统进行研究与设计,主要包括系统架构设计、通信协议选择、硬件设备选型、软件开发和系统测试等方面。
1.系统架构设计船舶自动化系统的架构设计是整个系统设计的基础,它直接影响着系统的性能、可靠性和可维护性。
在设计船舶自动化系统时,需要考虑到各个子系统之间的通信和数据交换,以及系统的可扩展性和可靠性。
一般来说,船舶自动化系统可以分为动力系统、导航控制系统、船舶监控系统和通信系统等子系统,它们可以通过CAN总线进行数据传输和控制。
2.通信协议选择在设计船舶自动化系统时,通信协议的选择是非常重要的。
CAN总线作为一种面向实时控制的通信协议,具有高带宽、低延迟和可靠性等特点,非常适合用于船舶自动化系统中。
此外,CAN总线还可以支持多主机和多节点的分布式控制系统,可以满足船舶自动化系统对数据传输和控制的要求。
3.硬件设备选型在设计船舶自动化系统时,需要选择适合的硬件设备来支持系统的正常运行。
一般来说,船舶自动化系统的硬件设备需要具有高性能、高可靠性和环境适应性。
针对CAN总线的船舶自动化系统,通常会选择一些支持CAN通信的控制器和节点,以及适合船舶环境的工业级传感器和执行器等设备。
4.软件开发船舶自动化系统的软件开发是系统设计的核心部分,它直接影响着系统的功能和性能。
在软件开发过程中,需要根据系统需求进行功能分解和模块化设计,采用面向对象的编程方法,以及将软件与硬件进行紧密结合。
此外,还需要考虑到系统的实时性和安全性,确保系统的稳定运行。
5.系统测试系统测试是船舶自动化系统设计的最后一步,通过各种测试手段对系统进行验证和验证。
在测试过程中,需要对系统的功能、性能和稳定性进行全面测试,包括单元测试、集成测试和系统测试等。
基于UDS的CAN节点软件升级设计基于UDS(Unified Diagnostic Services)的CAN(ControllerArea Network)节点软件升级设计主要涉及CAN网络中的节点软件更新和数据传输。
UDS是一种通用的诊断服务协议,用于车辆电子系统的诊断和控制。
在设计基于UDS的CAN节点软件升级过程中,需要考虑以下几个方面:1.升级模式的选择:可以采用在线升级和离线升级两种模式。
在线升级是指在车辆运行状态下进行软件升级,对车辆的实时性要求较高;离线升级是指将车辆停止或离线后进行软件升级,对车辆的实时性要求较低。
2.升级数据传输的选择:可以采用CAN总线传输升级数据。
在CAN网络中,节点可以通过CAN总线进行数据传输,因此可以利用CAN总线实现软件升级数据的传输。
同时,还可以对CAN总线的速率和数据包大小进行优化,提高升级的效率。
3.升级数据包的划分:将整个软件升级流程划分为多个数据包,便于传输和处理。
可以根据软件升级的大小和节点的处理能力,将软件升级数据划分为多个数据包进行传输。
同时,需要设计一套协议来管理和校验升级数据包的传输,以确保数据的完整性和正确性。
4. 升级过程的管理和控制:需要设计一套升级管理和控制机制,确保软件升级的可靠性和安全性。
可以使用UDS协议提供的诊断服务来进行升级的管理和控制,例如读取和写入ECU的内存、擦除和编程Flash等操作。
5.升级过程的状态反馈:在升级过程中,需要向用户提供升级状态的反馈和显示。
可以通过CAN总线将升级状态信息发送给用户界面,或通过CAN总线发送诊断报文进行状态查询。
同时,还可以在升级过程中对升级状态进行监控和记录,以便后续的故障排查和分析。
综上所述,基于UDS的CAN节点软件升级设计可以通过选择合适的升级模式和数据传输方式,划分数据包,设计协议进行管理和控制,提供状态反馈等方式来实现。
这样可以提高软件升级的效率和可靠性,为车辆电子系统的维护和更新提供支持。
基于51单片机的CAN总线系统设计0 引言随着20世纪80年代初期德国Bosch公司提出CAN(Controller Area Network)总线,即控制器局域网方案以解决汽车控制装置问的通信问题。
经过20多年的发展,CAN总线现在广泛的应用在汽车领域,在汽车控制系统中应用CAN总线可以使硬件方案的软件化实现,大大地简化了设计,减小了硬件成本和设计生产成本,数据共享减少了数据的重复处理,节省了成本,可以将信号线减到最少,减少布线,使成本进一步降低等优点。
由于CAN总线通信的高性能、高可靠性、及独特的设计和适宜的价格可以广泛应用于工业现场控制、智能楼宇、医疗器械、交通工具以及传感器等领域,所以被公认为是几种最有前途的现场总线之一。
1 系统总体设计CAN总线系统总体结构如图1所示,主要包括上位机控制软件、USB-CAN转换模块、CAN节点、CAN总线介质(本处采用双绞线)组成。
其中一个CAN节点通过USB接口与PC 机相连,上位机控制软件能实时显示各CAN节点的数据且能通过上位机软件向各个CAN 节点发送数据以控制各节点的8个发光二极管的亮或灭。
2 系统硬件电路本系统由单片机外围电路、CAN总线硬件电路和USB-CAN转换电路组成。
单片机外围电路包括电源电路模块、复位电路模块、串口通信模块。
CAN总线硬件电路包括电气隔离模块、光耦隔离模块、CAN驱动器电路。
USB-CAN转换电路包括CH375与单片机接口电路模块和USB接口电路模块。
C8051F040单片机内部的控制器局域网(CAN)控制器是一个协议控制器,不提供物理层驱动器(即收发器),需要外部重新接入物理层驱动器。
本处采用TJ1050,TJA1050是控制器区域网络(CAN)协议控制器和物理总线之间的接口,是一种标准的高速CAN收发器。
TJA1050可以为总线提供差动发送性能,为CAN控制器提供差动接收性能。
TJA1050是PCA82C250和PCA82C251高速CAN收发器的后继产品。
一、概述CAN(Controller Area Network)即控制器局域网络,是一种高性能、高可靠性、易开发和低成本的现场总线,是德国Bosch 公司为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。
它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维,通信速率可达1M bps ,距离可达10km 。
CAN 协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码,使网络内的节点个数在理论上不受限制。
由于CAN 总线具有较强的纠错能力,支持差分收发,因而适合高干扰环境,并具有较远的传输距离。
因此,CAN 协议对于许多领域的分布式测控很有吸引力。
CAN 总线以目前技术条件较成熟的IS0/0SI 模型为基础,与其它网络相比,其信息传递的格式为报文。
报文的长度可以不同,但都是有限的。
当总线空闲时任何已连接的单元都可以开始发新的报文,报文以全网广播方式散发出去。
各接收站根据报文的内容而不是地址进行判决,不需在信息中加入地址。
目前汽车上的网络连接方式主要采用2条CAN ,一条用于驱动系统的高速CAN ,速率达到500kb/s ;另一条用于车身系统的低速CAN ,速率是100kb/s 。
驱动系统CAN 主要连接对象是发动机控制器(ECU )、ABS 控制器、安全气囊控制器、组合仪表等等,它们的基本特征相同,都是控制与汽车行驶直接相关的系统。
车身系统CAN 主要连接和控制的汽车内外部照明、灯光信号、雨刮电机等电器。
因此有必要全面了解CAN 总线接口和控制器。
[1]二、CAN 通信控制器CAN 的通信协议主要由CAN 控制器完成。
CAN 控制器主要由实现CAN 总线协议的部分和实现与微处理器接口部分的电路组成。
对于不同型号的CAN 总线通信控制器,实现CAN协议部分电路的结构和功能大多相同,而与微处理器接口部分的结构和方式存在一些差异。
目前生产CAN 器件的知名厂商有:Intel 、PHILIPS 等。
封面作者:PanHongliang仅供个人学习CAN总线数据通信系统的设计摘要现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。
它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
CAN(ControllerArea Network)属于现场总线的范畴,是一种多主方式的串行通讯总线,数据通信实时性强。
与其它现场总线比较而言,CAN总线具有通信速率高、容易实现、可靠性高、性价比高等诸多特点。
本系统要在单片机中实现CAN总线的接口,通过CAN总线,实现两个模块之间的数据通讯。
系统主要由四部分所构成:PC机、微控制器80C51、独立CAN通信控制器SJA1000和CAN总线收发器PCA82C250。
微处理器80C51负责SJA1000的初始化,通过控制SJA1000实现数据的发送和接收等通信任务。
CAN总线节点的软件设计主要包括三大部分:CAN节点初始化、报文发送和报文接收。
本系统通过扩展CAN总线控制器SJA1000,在单片机系统中实现了CAN总线的接口,并且编写了SJA1000的驱动程序,通过读写其的内部寄存器,完成工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等基本操作;利用各基本操作,完成了对SJA1000的初始化,并且实现了数据发送和接收。
目录第1章原理与方案31.1设计目的与要求31.2CAN总线介绍31.3设计方案31.3.1 硬件设计方案41.3.2 软件设计方案5第2章硬件连接与说明52.1硬件连接52.1.1 模块使用说明52.1.2 实验箱连线62.2CAN总线控制器SJA100062.3CAN控制器接口PCA82C2506第3章软件流程图及说明错误!未定义书签。
3.1软件流程图73.1.1 主程序流程图73.1.2 初始化子程序流程图73.1.3 发送数据子程序流程图错误!未定义书签。
基于CAN总线的电缆布线方法与终端电阻匹配Controller Area Network(CAN)总线是一种常用于车辆、航空、船舶等领域的实时通讯协议。
它采用了多主多从的通信结构,可以连接多个节点,并且能够高效地传输数据。
在CAN总线中,电缆布线方法和终端电阻匹配是非常重要的,这对于保证通信的可靠性和稳定性至关重要。
1.电缆布线方法在CAN总线中,电缆的布线方法是十分关键的,它会直接影响到通讯的质量和性能。
以下是一些常见的电缆布线方法:1.1点到点布线:点到点布线是指将每个节点与总线进行单独连接,即每个节点都拥有独立的双线,并且在每个节点处需要安装终端电阻。
这种布线方法适用于总线上的节点较少的情况,通信信号传输的速度较慢。
节点较多时,点到点布线的电缆长度容易过长,导致信号衰减和干扰。
1.2多节点布线:多节点布线是指将多个节点连接到同一条总线上,每个节点间通过分支进行连接。
在多节点布线中,需要保证总线长度的控制,不同分支的长度应尽可能相等,以减少信号衰减和反射。
在多节点布线中,每个节点处需要安装终端电阻以消除信号的反射和干扰。
终端电阻的匹配是为了防止信号的反射和干扰,保证信号能够正确地被接收和解析。
终端电阻的值应根据电缆的特性阻抗进行匹配。
一般情况下,CAN总线的电缆特性阻抗为120欧姆。
如果电缆的特性阻抗与终端电阻不匹配,就会造成信号的反射,降低通信的质量和可靠性。
终端电阻的安装位置非常重要,它应该在总线的两端安装。
在点到点布线中,每个节点的两端都需要安装终端电阻;在多节点布线中,只需要在总线的两端节点安装终端电阻即可。
终端电阻的数值应根据总线长度来确定。
一般情况下,总线长度越长,终端电阻的数值应越大,以保证信号的完整性。
在实际应用中,可以使用CAN分析仪测量总线上的信号波形,并根据波形的特性来选择合适的终端电阻数值。
综上所述,基于CAN总线的电缆布线方法与终端电阻匹配是保证通信可靠性和稳定性的关键因素。
科技信息 计算机与网络 CAN总线节点电路硇实坝 陕西凌云科技有限责任公司 高崇刚 陈亮 [摘要]本文给出一种基于MCS一51单片机和SJA1000的CAN总线节点设计方法。 [关键词]CAN总线MCS一51单片机
CAN(Controller Area Network)即控制器局域网络。由于其具有较强 的抗干扰能力、通讯中没有地址的概念及节点数不受限制等优点,已经 被广泛应用于汽车、数控机床、仪器仪表、现场总线控制等领域。在CAN 总线的节点设计中,目前应用较多的是通过单片机的控制来实现。有的 单片机已经嵌入了CAN控制器的功能,比如Philips的P8XC592,Mo— torola的68HC05X4等,但这类单片机的应用并不普及,而且价格相对 较高。对于目前应用最为普及、价格也很便宜的MCS一51系列单片机, 本身并不嵌有CAN控制器的功能。下面就介绍一种基于MCS一51单片 机和SJA1000的CAN总线节点设计方法。 1.CAN总线简介 CAN总线是现场总线的一种,它是德国Bosch公司在1986年为解 决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串 行数据通讯总线。它与其它总线最大的区别是两个节点之间传送信息 时报文中没有地址信息,而是对不同性质的数据加以标识。在通讯时, 以全网广播为基础_各接收节点根据报文中反映数据性质的标识符过滤 报文,该收的收下,不该收的弃而不用。虽然CAN总线最初是为在汽车 行业应用而开发的,但由于其具有很强的纠错能力,支持差分收发,因 而适合高噪声环境,而且传输距离比较远。另外,像Philips,Motorola, Intel等半导体制造商相继开发出了支持CAN协议的集成芯片,更是推 动了CAN总线的应用。目前,CAN总线在数控机床、医疗设备、工业控 制等领域也取得了广泛的应用。1993年,国际标准化组织正式颁布了 CAN总线的国际标准ISO11898。其具体特性如下: (1)CAN网络上的节点信息可以分成不同的优先级,用来满足不同 的实时要求。 (2)CAN为多主工作方式,网络上任一节点均可在任意时刻主动地 向网络上的其他节点发送信息,而不分主从。 (3)当多个节点同时向总线发送信息时,CAN采用非破坏性总线仲 裁技术,低优先级的节点会依次退出发送,而最高优先级的节点正常发 送,不会受到任何影响,极大地节省了总线冲突仲裁时间。 (4)发送期间若丢失仲裁或由于出错而遭破坏的帧可自动重发 送。 (5)CAN的直接通讯距离最远可达到lOkm(速率5kbps以下),通讯 速率最高可以达到1Mbps(此时通讯距离最长为40m1。 (6)CAN的每帧信息都有CRC校验及其它检错措施,保证了出错 率很低。 (7)CAN节点在错误严重的情况下具有自动关闭,退出总线的功 能,从而使总线上的其它接点不受影响。 2.SJA1 000的介绍 SJA1000是Philips生产的独立CAN总线控制器,它是早期的 PCA82C200的替代产品。它与PCA82C200在管脚、电气特性上完全兼 容,不仅有和PCA82C200一样的基本CAN(BasieCAN)工作模式,而且 新增加了增强CAN(PeliCAN)工作模式,这种模式支持具有很多新特性 的CAN2.0B协议。经过简单连接和正确设置的SJA1000,能自动完成 CAN总线物理层和数据链路层的所有功能,对于单片机来说,只要把它 看成一个基本的I/O设备即可,使用非常简单、方便。SJA1000的主要特 性如下: (1)扩展的接受缓冲器(64字节,先进先出FIFO)。 (2)和CAN2.0B协议兼容。 (3)同时支持11位和29位识别码。 (4)位速率最高可达1Mbits/s。 (5)支持多种微处理器接口。 (6)增强的温度适应性。 3.节点硬件电路设计说明 目前广泛流行的CAN器件分两大类,一类是独立的CAN控制器, 如PCA82C200、SJA1000等,另一类就是带有CAN功能的微控制器,如 Philips的P8XC592,Motorola的68HC05X4等。考虑芯片市场普及程度、 开发工具及成本等因素,在这次设计中选用单片机P89C52为核心, SJA1000为CAN控制器,同时还使用了TJA1040,它是CAN控制器的 接口芯片。从功能上来分,SJA1000主要完成CAN的通讯协议,实现报 文的装配和拆分、接收信息的过滤和校验等。PCA82C250则是实现 CAN控制器和通讯线路的物理连接,提高CAN总线的驱动能力和可靠 性。具体电路如下图所示,虽然整个电路比较简单,但结合本人设计、现 场调试的体会,给出下面几点说明。
基于CAN 总线的智能节点设计朱悦涵,林立,邵明(福建工程学院福建福州350108)摘要:应用51单片机为控制核心结合其他的器件设计了一种能连接于CAN 总线上的智能节点。
通过单片机控制CAN 总线控制器SJA1000,并进一步通过CAN 总线收发器PCA82C250,实现该智能节点与CAN 总线的通信。
此外通过对MCS-51单片机的I/O 进行相应的扩展,使该智能节点具有了8输入和8输出的控制端口。
最终完成该智能节点并通过实际测试,验证了其实用性。
关键词:CAN 总线;智能节点;MCS-51;SJA1000中图分类号:TP336文献标识码:A文章编号:1674-6236(2012)24-0090-03Design of intelligent node based on CAN busZHU Yue -han ,LIN li ,SHAO Ming(Fujian University of Technology ,Fuzhou 350108,China )Abstract:The thesis introduces a design of a kind of an intelligent node ,which is used to communicate with CAN bus.Single -chip microcomputer MCS -51is applied as a central controller ,of which other devices operate under control.Applying the Single -chip microcomputer to control CAN bus controller SJA1000realizes the communication with CAN bus ,through the CAN bus transceiver PCA82C250.Through I/O extension of MCS -51MCU ,the intelligent node has the control port of eight inputs and eight outputs.At last the practicability of the intelligent node has been verified by the practical tests.Key words:CAN bus ;intelligent node ;MCS-51;SJA1000收稿日期:2012-10-09稿件编号:201210026作者简介:朱悦涵(1981—),男,福建福州人,硕士,助教。
研究方向:数控机床故障诊断。
CAN 总线,即控制器局域网总线,主要用于各种设备检测及控制的现场总线。
它是一种串行数据通信协议,是德国BOSCH 公司于20世纪80年代初开发的,最初是为了解决汽车中众多控制与测试仪器间的数据交换问题[1],具有良好的实时性、极高的可靠性、较低的成本和较强的可扩展性,是目前为止唯一有国际标准的现场总线,被公认为最有前途的几种现场总线之一[2-3]。
它非常适合现场设备的互联。
奔驰S 级轿车上使用的就是CAN 总线。
节点指的是CAN 总线上通信的起点和终点,可用于实现I/O 扩展、远程I/O 、设备间通信等,应用广泛。
智能节点指的是带有处理器的节点。
相对于普通节点,智能节点有更好的兼容性和更强大的处理能力,不仅能够作为普通节点使用,还可实现一定的信息处理与控制功能,使用起来更加灵活。
本文描述了一种基于MCS-51单片机的CAN 智能节点的设计方案,软硬件均已通过测试。
1总体方案智能节点的设计方案要与其功能设计相适应。
从智能节点的定义来看,其必须自身带有处理器MCU ,拥有一定的数据处理能力;智能节点还必须能够和CAN 总线上的其他节点通信,所以必须包含CAN 总线通信模块;对于智能节点,其必须具备获取现场信息,控制现场执行单元的能力,所以必须同时具有输入输出端口;除此之外,还希望该智能节点拥有一定的显示功能,所以要包含一个显示模块;最后,要驱动以上器件,还需要有电源模块的存在。
根据以上思路,系统总体结构如图1所示。
其中,MCU 是智能节点的核心,它完成了大部分信息处理的功能,其它模块都在其控制下工作。
它采集输入端口的信号,并对采集的信号进行处理;它可以根据输入信号和事先设定的程序及实时输出相应的控制信号;它也可以将输入信号处理后传递给通信模块,形成CAN 报文发送到CAN 总线上;它可以通过通信模块获取CAN 总线上的信息,并通过这些信息控制输出端口进行相应的动作;它还可以控制显示模块实现信息的显示。
通信模块主要分为3个部分:CAN 总线控制模块、CAN 总线收发模块、CAN 总线保护模块。
其中,CAN 总线保护模块主要起安全和抗干扰的作用。
电源模块为电子设计工程Electronic Design Engineering第20卷Vol.20第24期No.242012年12月Dec.2012图1系统结构框图Fig.1Block diagram of the system各给模块提供工作电平,在设计时需要考虑必要的隔离措施,以防止干扰。
2硬件设计该智能节点有3个主要模块:MCU 、CAN 总线控制模块、CAN 总线收发模块。
其中,MCU 是整个智能节点的核心,选择单片机89C51作为节点的MCU ,同时选择SJA1000作为CAN 通信控制器,选择82C250作为CAN 总线收发器。
智能节点的主要引脚连接关系如图2所示。
图2中,单片机89C51的主要作用是对SJA1000进行初始化,并控制SJA1000进行CAN 报文的收发。
89C51共有4个8位并口:P0、P1、P2和P3。
P3的8个引脚有第二功能,用于控制信号的传输,而P0、P1、P2口则可用于和其他器件进行数据交换。
在设计中将P0口用于和CAN 通信控制器SJA1000进行数据交换。
根据实际需要,将P2口的部分引脚也用于控制信号的传输,只剩下P1口作为I/O 使用。
为了使该智能节点能够实现8输入、8输出,需要使P1口成为双向I/O ,使其能同时对输入和输出信号进行处理。
所以需要对P1口进行I/O 扩展。
这里选用三态门芯片74LS245对P1口的信息传送方向进行控制,实现I/O 扩展。
SJA1000是Philips 公司生产的独立CAN 控制器,用于替代PCA82C200。
它不仅有之前的BasicCAN 工作模式,还有全新的PeliCAN 工作模式,支持CAN2.0协议[4]。
它能自动完成所有与CAN 总线物理层和数据链路层有关的功能。
所以对于处理器而言,它是一个基本的外部I/O 设备。
SJA1000的AD 口是其地址数据总线,在图2中与89C51的P0口相连,实现数据的交互。
SJA1000的CS 口是片选信号,连接到89C51的P2.0口,当P2.0为低电平时可以访问SJA1000。
这样,89C51可通过P0口对SJA1000内的寄存器进行读写。
TX0为输出驱动器0的输出端,与CAN 总线收发器82C250的TXD 端相连,用于向82C250传输需要发送的数据;RX0为对应的输入端,与82C250的RXD 端相连,用于从82C250获得通过CAN 总线接收到的数据。
82C250是NXP 公司生产的CAN 收发器,作用是对CAN总线提供差动发送能力,对CAN 控制器提供差动接收能力[5]。
其驱动电路内部具有限流电路,可防止发送输出级对电源、地或负载短路[4]。
即使如此,在实际的电路设计中还是需要采用一些额外的保护措施。
82C250的CANH 引脚和CANL 引脚与CAN 总线连接的时候需要采取一些抗干扰和安全措施。
其中,CANH 和CANL 引脚各自通过一个5Ω的电阻连接CAN 总线,这样可以起到限流的作用。
同时,将CAN 总线与地之间用30pF 的电容相连,起到抗高频干扰的作用。
为使智能节点能够实际应用,输入输出接口的设计是非常重要的。
而接口设计中最重要的一个问题就是抗干扰,为了达到较好的抗干扰效果,在接口的设计中采用了光电耦合器。
图3是所设计的输入接口模块。
图3中的电路通过一个光电耦合器实现了输入端和采集端电信号的隔离。
其工作原理如下:当有开关量(按钮、主令开关、行程开关、传感器)输入时,即把5V 电源接入,此时光耦二极管导通,工作指示灯的D5点亮。
由于初级光耦二极管导通,使得次级光敏三极管导通,输入到I/O 口的电平由高变低,即开发板接收到信号执行相应的动作。
其中,C 8用于滤除高频噪声,R 11为上拉电阻。
当无开关量输入时,X3输出始终保持高电平,当有开关量输入时,X3输出为低电平。
输出接口模块如图4所示,同样采用光耦进行电气隔离,以达到抗干扰的目的。
其工作原理是:当单片机输出低电平时,光耦前级二极管导通,LED 灯DY0发光,起指示作用。
光耦导通后通过R 80为Q0提供偏置电压,使Q0导通。
这样,Y00与COM0之间转变为低阻态,从而实现开关量输出。
其中,二极管D0起保护作用。
3软件设计CAN 总线智能节点的软件设计主要实现以下内容:输入端口信号采集、通过输出端口输出信号、SJA1000初始化、发送报文、接收报文、通过数码管显示信息等。
其中,最重要的是SJA1000初始化、发送报文、接收报文这3个部分。
它们的程序流程如图5所示。
初始化子程序主要用于对SJA1000内部的各参数进行初始化设置,在上电时该程序会被执行。
在进行初始化的时候,首先需要关闭SJA1000的中断,并确保其处于复位模式图3输入接口模块Fig.3The input interface module图289C51、SJA1000、82C250的主要引脚的连接关系Fig.2Main part of the interconnection among 89C51,SJA1000and 82C250图4输出接口模块Fig.4The output interface module《电子设计工程》2012年第24期图6实物测试图Fig.6The practical tests图5初始化、接收、发送功能子程序流程图Fig.5The flow charts of initialization ,receiving and sending下[6],然后向各寄存器写入参数,最后将其恢复到运行状态。
接收子程序用于完成报文的接收功能。
通过SJA1000接收报文可以使用两种方式:中断方式和查询方式。
查询方式用于对实时性要求不是很高的场合。
这里使用的是中断方式。
发送子程序用于完成CAN 报文的发送。