当前位置:文档之家› 基于单片机的CAN总线通讯实现讲解

基于单片机的CAN总线通讯实现讲解

基于单片机的CAN总线通讯实现讲解
基于单片机的CAN总线通讯实现讲解

CAN总线通讯基于51单片机应用

第一章前言

1.1 概述

控制器局域网(CAN-Controller Area Network)属于现场总线(Fieldbus)的范畴,是众多的属于现场总线标准之一,它适用于工业控制系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多特点。它是一种有效支持分布式控制或实时控制的串行通信网络,以其短报文帧及CSMA/CD-AMP(带有信息优先权及冲突检测的载波监听多路访问)的MAC(媒介访问控制)方式而倍受工业自动化领域中设备互连的厚爱。CAN的应用范围遍及从高速网络到低成本的多线路网络,它可以应用于汽车系统、机械、技术设备和工业自动化里几乎任何类型的数据通信。

随着计算机硬件、软件及集成电路技术的迅速发展,同时消费类电子产品、计算机外设、汽车和工业应用等的需求不断增加。高速、高可靠和低成本的通信介质的要求也随之提高。现场总线是当今自动化领域技术发展的热点之一,它为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。

微处理器中常用的串行总线是通用异步接收器传输总线(UART)、串行通信接口(SCI)、同步外设接口(SPI)、内部集成电路(I2C)和通用串行总线(USB),以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)等。这些总线在速度、物理接口要求和通信方法学上都有所不同。

在计算机数据传输领域内,长期以来使用的通信标准,尽管被广泛使用,但是无法在需要使用大量的传感器和控制器的复杂或大规模的环境中使用。控制器局部网CAN(CONTROLLER AERANETW0RK)就是为适应这种需要而发展起来的。随着汽车电子技术的发展,消费者对于汽车功能的要求越来越多,汽车上所用的电控单元不断增多,电控单元之间信息交换的需求,使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线,这就促进了车用总线技术的发展。CAN 总线的出现,就是为了减少不断增加的信号线,所有的外围器件都可以被连接到总线上由于CAN总线具有可靠性高、实时性好、成本合理等优点,逐渐被应用于如船舶、航天、工业测控、自动化、电力系统、楼宇监控等其他领域中。

1.2 CAN总线的特点

80年代末,在汽车工业中,由于众多的控制设备与测试仪器之间需要进行大量数据交换,传统的总线无法满足需求,德国BOSCH公司提出了CAN 总线,这种新的串行数据通讯协议。CAN总线即控制器局域网总线,通信接口中集成了CAN 协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。

CAN (Controller Area Network)属于现场总线的一种,在传统的工业控制领域中,大部分的通信采用RS232、RS485或RS422总线。相比之下,RS232、RS485或RS422总线有着通信距离近,通讯速度慢,抗干扰性能差等缺点。通讯一般采用主从方式,通过主站查询方式进行通讯,实时性、可靠性较差。当系统有错误,多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点。基于CAN 总线的分布式控制系统在很多方面具有明显的优越性。L而CAN 的电路结构简单,要求的线数较少,只需要两根线与外部器件互联,使得各控制单元能够通过CAN总线共享所有的信息和资源。达到简化布线、减少传感器数量、避免控制功能重复的效果。CAN 具有的完善的通信协议,并且可以通过CAN 控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期。

CAN支持分布式控制或实时控制,工作于多主方式,网络上各个节点均可以在任一时刻主动发送信息,可以点对点,点对多点以及全局广播方式收发数据。网络中的各节点都可根据总线访问优先权,采用非破坏性总线总裁技术,通信速度快,可靠性高,可大大节省了总线仲裁冲突时间,在网络负载很重的情况下也不会出现网络瘫痪。CAN没有采用站地址编码,而是对通信数据进行编码,这可使不同的节点同时接收到数据,这使得CAN 总线的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。

它具有如下特点:

1)CAN 是到目前为止为数不多的有国际标准的现场总线,总线协议已被国际标

准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数通讯。

2)CAN总线没有采取传统的站地址编码,不对节点进行地址规定,而是把通信

数据块进行编码。这种方法的优点可使网络内的节点个数在理论上不受限

制,数据块的标识码可由1l位或29位二进制数组成。这种按数据块编码的方式,使用报文的标识符来指定报文的优先级以及报文的内容,高优先级的节点享有传送报文的优先权。还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。采用短帧结构,每一帧的有效字节数为8个,数据传输时间短,受干扰的概率低,重新发送的时间短,从而保证了通信的实时性。

3)CAN 总线采用了多主竞争式总线结构,通信介质可以是双绞线、同轴电缆或

光导纤维,可以多个主站运行并且分散仲裁。CAN总线上任意节点可以点对点,一对多及广播集中方式传送和接受数据,而且可以任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。CAN 通讯距离最大是1O公里(设速率为5Kbps),最大通信速率为1Mbit/s(设通信距离为4O米)。

4)CAN 采用非破坏性的总线仲裁技术,即载波侦听多路访问/冲突检测(CSMA

/CD)的总线仲裁方式,当多个节点同时发送数据时,优先级低的节点会主动停止发送,高优先级的节点可继续传输,节省总线仲裁时间。避免多个节点同时开始发送消息而造成总线冲突,保证优先级高的报文能够优先发送。

5)CAN总线协议采用了完善的错误检测与错误处理机制,包括了CRC校验、错

误报文自动重发、错误状态判断、临时错误自动恢复等措施,从而很好的保证了数据通信的可靠性。节点在错误严重的情况下,具有自动关黔

6)闭总线的功能,切断它与总线的联系,以使总线上其他操作不受影响。CAN 总

线采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作。具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点。可根据报文的ID决定接收或屏蔽该报文。可靠的错误处理和检错机制,发送的信息遭到破坏后,可自动重发,报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。CAN卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的通信,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。

CAN总线通过CAN 控制器接口芯片的输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状

态。CAN 总线的信号状态为2种,隐位与显位。当隐位与显位发送出现竞争时,最终结果是显位。在处理冲突时,由于该信号的二值且“单稳态”的特性变得简单,报错帧可以使所有节点很容易地取得一致性的数据,并且保证了节点状态的同步,这种二值特性对CAN 总线的可靠性有很大保障。而且CAN 节点在出现严重错误的情况下,可以自动关闭输出,避免总线上其他节点的操作受影响,从而保证不会因个别节点出现问题,而使得总线处于”死锁”状态。CAN 总线具有位填充、回读、错误约束、出错自动重发等优点,同时通信速率高、通信距离远、容易实现、且性价比高。

1.3 CAN总线的发展前景

CAN 最初是用于汽车行业的监测、控制,用来解决汽车内部的复杂硬件信号接线的低成本通信总线,现今CAN总线已经被公认为一种可靠的网络总线在汽车上得以应用。CAN总线共享信息和资源,总线的数据通信提高了系统可靠性、实时性、灵活性、可维护性,更好地匹配和协调各个控制系统。

随着汽车电子技术的发展具有高度灵活性、简单的扩展性、优良的抗干扰性和处理错误能力的CAN 总线,越来越受到人们的重视,它在汽车领域上得到了广泛的应用。世界上一些著名的汽车制造厂商,都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。近年来CAN 总线已发展成为汽车电子系统的主流总线,已形成国际标准的现场总线,并由ISO正式颁布了IS011898CAN 高速应用标准和ISO11519CAN 低速应用标准,这为CAN 总线的标准化、规范化铺平了道路。CAN 总线以其高性能,高可靠性及独特的设计,在现代分布式测量与控制技术领域中的应用已愈来愈广泛。同时由于CAN 总线自身的特点,其应用范围目前已不再局限于汽车行业,而是转向铁路、交通、自动控制、航空航天、航海、机械工业、机器人、医疗器械及安防等领域发展。

CAN总线的发展已经颇具规模,它不仅在汽车领域的应用占据一定优势,在其他工业领域内也占有一席之地。这要归根于通信技术的不断进步,对通讯本身的要求不断提高,这种形势下CAN 总线的优势在于其优越的抗干扰能力和性价比。尽管CAN总线有一定局限,甚至还有漏洞,但对CAN 总线的改进还在继续,相信在未来的发展中,CAN 总线通过不断的更新和改进,能够取得更大的进步。

第2章系统方案总体设计

2.1 系统原理

当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要CAN总线的报文发送和接收。当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时, 转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。

由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。

2.2 系统总体设计方框图

图2-1 系统总体设计方框图

2.2.1 51单片机

系统的控制芯片采用AT89S52单片机来控制,因为AT89S52应用比较广泛,并且成本低,操作控制简单,功耗较低,运行可靠性强。系统本身对处理器处理速度的要求不是很高,所以选择该款单片机。

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

图2-2 AT89S52引脚结构

图2-3 AT89S52内部结构图

VCC : 电源

GND: 地

P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;

在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。

P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。

表2-1 P1口引脚功能

引脚号第二功能

P1.0 T2 (定时器/计数器T2的外部计数输入),时钟输出

P1.1 T2EX (定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5 MOSI (在系统编程用)

P1.6 MISO (在系统编程用)

P1.7 SCK (在系统编程用)

P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。

在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。

表2-2 P3口引脚功能

引脚号第二功能

P3.0 RXD (串行输入)

P3.1 TXD (串行输出)

P3.2 INT0 (外部中断0)

P3.3 INT0 (外部中断0)

P3.4 T0 (定时器0外部输入)

P3.5 T1 (定时器1外部输入)

P3.6 WR (外部数据存储器写选通)

P3.7 RD (外部数据存储器写选通)

RS: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。

ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。

在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE 脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE 操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA 必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。

XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:振荡器反相放大器的输出

2.2.2 CAN总线收发器

PCA82C250 是CAN 协议控制器和物理总线的接口这个器件对总线提供不同的发送能力和对CAN控制器提供不同的接收能力。

图2-4 82C250引脚结构

表2-3 82C250引脚管脚功能描述

图2-5 82C250方框图 标记 管脚 功能描述 TXD 1 1 发送数据输入 GND 2 2 接地 VCC 3 3 提供电压 RXD 4 4 接收数据输出 Vref 5 5 参考电压输出 CANL 6 6 低电平CAN 电压输入/输出 CANH 7

7 高电平CAN 电压输入输出 RS 8 8 Slope 电阻输入

功能描述:

PCA82C50 是CAN 协议控制器和物理总线的接口,它主要用于汽车里的高速应用(高达1Mbaud)。这个器件对总线提供不同的发送能力和对CAN控制器提供不同的接收能力完全和ISO11898标准兼容。限定的电流值保护接收器输出级,避免阳极和阴极的短路,尽管在默认的条件下功率消耗是增加的这个特征值将防止发送器输出级的毁坏。如果节点温度超过大约160摄氏度,发送器限定的电流值输出被降低因为发送器占去大部分的功率消耗,这将导致降额功耗和较低的片内温度,IC中的其它部分在使用中将保持不变,当总线短路的时候热保护非常需要。这个CANH CANL线也被保护防止自动运作过程中电流的瞬变。

表2-4 CAN收发器真值表

提供TXD(发送) CANH CANL 总线状况RXD 接收4.5to5.5V 0 高低控制0 4.5to5.5V 1(或悬空)悬空悬空接收 1

<2V(未上电) X 悬空悬空接收X

2V0.75 VCC 悬空悬空接收X

2V0.75VCC

悬空若VRS>0.75VCC

悬空

接收X

注意:X=随意值

表2-5 管脚 RS真值表

在RS管脚上强制条件模式在RS管脚上电压和电流

VRS>0.75VCC 备用IRS<| 10 A|

10 A< IRS< 200 A 斜率控制0.3VCC< VRS<0.6VCC

VRS<0.3VCC 高速IRS< 500 A 管脚8 RS 有三种不同的工作模式可被选择: 高速,备用,斜率控制。

对于高速工作模式,发送器输出级晶体管被尽可能地快启动和关闭,在这种模式下,没有措施用于限制上升和下降的斜度。建议使用屏蔽电缆可避免RFI 这种问题。

通过把管脚8接地选择这个模式。对于低速或较短的总线长度,可使用一种没有屏蔽的双绞线或平行线。对于降低 RFI,上升和下降的斜率是个限定值,上

升和下降的斜率能够被编程,通过从管脚8 接一个电阻至地,这个斜率和管脚8 的电流输出成比例。

如果高电平被接至管脚8 ,电路进入低电流保护模式。在这种模式下,发送器被关闭,接收器开至低电流。如果控制位被检测(不同的总线电压<0.9V), RXD 将被开至低电平。

这个微型控制器应对这个条件有所反应,通过转换收发器至正常工作状态。(经过管脚8)因为这个接收器在备用模式下比较慢,第一条信息会丢失掉。2.2.3 CAN总线控制器

CAN总线控制器选用SJA1000,SJAl000是一个独立的控制器,有两种不同的模式。

(1)BasicCAN模式:系统上电后默认的模式,与PCA82C200兼容。

(2)PeliCAN模式:支持CAN2.0B协议规定的所有功能。

图2-6 SJA1000引脚结构

SJAl000功能模块主要有:接口管理逻辑、接收FIFO队列、接收滤波器、发送缓冲器和CAN核心模块。CAN核心模块基于CAN2.0B的协议执行对CAN帧的发送和接收。逻辑管理接口实现与外部单片机的连接。SJAlO00的发送缓冲器可以存储一个完整的报文,当单片机开始一个传送时,逻辑管理接口会使CAN核心模块读发送缓冲器的数据,依照CAN2.OB协议发送数据。当收到一个报文时,cAN核心控制模块将连续的位转换为标准的数据存放于接收过滤器中,通过验收码寄存器、验收屏蔽寄存器进行过滤处理,将符合标志位要求的数据放人接收FIF0队列中

以下为SJA1000芯片的特点:

◆管脚及电气特性与独立CAN总线控制器PCA82C200兼容;

◆软件与PCA82C200兼容(缺省为基本CAN模式);

◆扩展接收缓冲器(64字节FIFO);

◆支持CAN2.0B协议;

◆同时支持11位和29位标识符;

◆位通讯速率为1Mbits/s;

◆增强CAN模式(PeliCAN);

◆采用24MHz时钟频率;

◆支持多种微处理器接口;

◆可编程CAN输出驱动配置;

◆工作温度范围为-40~+125℃。

图2-7 SJA1000内部结构图

从芯片的结构图中可以看出,SJA1000型独立CAN总线控制器由以下几部分构成:

(1)接口管理逻辑:它接收来自微处理器的命令,控制CAN寄存器的地址,并为微处理器提供中断和状态信息。

(2)发送缓冲器:有13字节长。它位于CPU和位流处理器(BSP)之间,能存储一条将在CAN总线上发送的完整的报文,报文由CPU写入,由SBP读出。

(3)接收缓冲器(RXB、RXFIFO):它是CPU和接收滤波器之间的接口,用来存储从CAN总线接收并通过了滤波的报文。接收缓冲器RXB是提供给CPU可访问的13字节的窗口,这个窗口是属于接收FIFO(RXFIFO)的一部分,共由64字节长。有了这个FIFO,可以在CPU处理一个报文的同时继续接收其他到来的报文。

(4)接收滤波器:它把报文头中的标识符和接收滤波寄存器中的内容进行比较,以判断文报文是否被接收。如果被接收,报文存入RXFIFO。

(5)位流处理器:它是一个控制发送缓冲器、RXFIFO并行数据和CAN总线(串行数据)之间数据的序列发生器,同时它也执行错误检测、仲裁、位填充和CAN总线错误处理功能。

(6)位定时逻辑不:它将SJA1000同步于CAN总线上的位流。

(7)错误管理逻辑:它按照CAN协议完成错误界定。

2.2.4 光耦合器

6N137光耦合器是一款用于单通道的高速光耦合器,其内部有一个850 nm 波长AlGaAs LED 和一个集成检测器组成,其检测器由一个光敏二极管、高增益线性运放及一个肖特基钳位的集电极开路的三极管组成。具有温度、电流和电压补偿功能,高的输入输出隔离,LSTTL/TTL 兼容,高速(典型为10MBd),5mA的极小输入电流。

图2-8 6N137引脚结构

特性:

①转换速率高达10MBit/s;

②摆率高达10kV/us;

③扇出系数为8;

④逻辑电平输出;

⑤集电极开路输出;

工作参数:

最大输入电流,低电平:250uA 最大输入电流,高电平:15mA 最大允许低电平电压(输出高):0.8v 最大允许高电平电压:VCC 最大电源电压、输出:5.5V 扇出(TTL 负载):8个(最多) 工作温度范围:-40°C t o+85°C 典型应用:高速数字开关,马达控制系统和A/D 转换等。

信号从脚2 和脚3 输入,发光二极管发光,经片内光通道传到光敏二极管,反向偏置的光敏管光照后导通,经电流-电压转换后送到与门的一个输入端,与门的另一个输入为使能端,当使能端为高时与门输出高电平,经输出三极管反向后光电隔离器输出低电平。当输入信号电流小于触发阈值或使能端为低时,输出高电平,但这个逻辑高是集电极开路的,可针对接收电路加上拉电阻或电压调整电路。

原理如上图所示,若以脚2 为输入,脚3 接地,则真值表如附表所列,这相当于非门的传输,若希望在传输过程中不改变逻辑状态,则从脚3 输入,脚2 接高电平。)

表2-7 真值表

图2-9 测试电路和波形

第3章系统硬件设计

3.1系统硬件的基本组成部分

该系统的硬件主要包含这几个部分:处理器、CAN总线控制器、CAN总线收发器。

结构电路如下:

图3-1 系统硬件结构电路

3.2 单片机电路设计

本设计选择AT89S52单片机。AT89S52自带有片内ROM和一定数量的RAM,一般不需要扩展片外的存储器,并且能和MCS—51产品兼容。本设计选用简单基本的经典复位电路,它利用电容和电阻的充放电来产生一个达到时间要求的连续低电压,并输入到单片机的复位管脚,如下图所示:

图3-2 单片机结构电路

3.3 CAN总线控制器电路设计

SJA1000被设计为全面支持CAN 2.0B协议,而且支持多处理器接口,其接口电路十分简单,如下图所示:

其电路图如下:

图3-3 控制器结构电路

3.4 CAN总线收发器电路设计

CAN总线收发器选用PCA82C250,其封装为SOIC,而且只有8个引脚,其设计电路如下图所示:

图3-4 CAN总线收发器结构电路

第4章软件设计

4.1软件总体设计

程序设计主要分为3部分:SJA1000初始化子程序、发送子程序、接收子程序。可以说所有CAN通信程序设计都是遵循这3个基本步骤的,所以熟练掌握这3部分子程序的设计对于应用CAN总线的工程技术人员来说是非常有必要的。

图4-1 CAN节点自发自收基本流程图

can总线协议完全解析

CAN总线协议解析 李玉丽 (吉林建筑工程学院电气与电子信息工程学院,吉林长春,130021 ) 摘要:现场总线的发展与应用引起了传统控制系统结构的改变。控制局域网(C AN)总线因其自身的特点被广泛应用于 自动控制领域。本文对C AN总线协议作了详尽解析。 关键词:C AN总线;隐性位;显性位;节点 中图分类号:T U 85 文献标识码:A CAN(Cont roll e r A rea N et work)是分布式实时控 制系统的串行通信局域网,称谓CAN总线。在数据 实时传输中,设计独特、低成本,具有高可靠性,得到 广泛应用。 本文着重解析C AN 技术规范2.0B 版的CAN 的分层结构规范和CAN 报文结构规范。重点在于 充分理解CAN总线协议精髓,有助于CAN总线的 局网设计、软件编程、局网维护。 一、C AN的分层结构 CAN 遵从O SI ( Ope n Syste m I nte rc onnec ti on Re fe re nce Mode l ) 模型,其分层结构由高到低如图1 所示。 图1 C AN的分层结构 对应OSI 模型为两层,实际为三层,即LLC、 MA C、PL S。由此而知,对应于CAN总线系统每个 节点都是三层结构。数据发送节点数据流为LLC→ MA C→P LS ,然后将数据发送到总线上;而对于挂在 总线上的所有节点(包括发送节点)的接收的数据流 为PL S→MA C→LLC。 这种分层结构的规范保证了CAN 总线的多主 方式工作模式,即不分主从,非破坏性的仲裁工作模 式。而LLC 层的报文滤波功能可实现点到点、一点 对多点、全局广播、多点对一点,多点对多点等数据 传递方式。 各分层主要功能如下: LLC 层:接收滤波、超载通知、恢复管理; MAC 层:控制帧结构、执行仲裁、错误检测、出 错标定、故障界定。该层是CAN的核心; PL S 层:位编码/ 解码、位定时。 二、CAN总线的报文规范 CAN报文的传送有4 种不同类型的帧结构,数 据帧、远程帧、出错帧、超载帧。CA B2.0B 有4 种帧 格式。 (一)数据帧

单片机常用名词解释

单片机常用名词解释 总线: 指能为多个部件服务的信息传送线,在微机系统中各个部件通过总线相互通信。 地址总线(AB):地址总线是单向的,用于传送地址信息。地址总线的宽度为16位,因此基外部存储器直接寻址64K,16位地址总线由P0口经地址锁存器提供低8位地址(A0~A7),P2口直接提供高8位地址(A8~A15)。 数据总线(DB):一般为双向,用于CPU与存储器,CPU与外设、或外设与外设之间传送数据信息(包括实际意义的数据和指令码)。数据总线宽度为8位,由P0口提供。 控制总线(CB):是计算机系统中所有控制信号的总称,在控制总线中传送的是控制信息。由P3口的第二功能状态和4根独立的控制总线,RESET、EA、ALE、PSEN组成。 存储器:用来存放计算机中的所有信息:包括程序、原始数据、运算的中间结果及最终结果等。 只读存储器(ROM):只读存储器在使用时,只能读出而不能写入,断电后ROM中的信息不会丢失。因此一般用来存放一些固定程序,如监控程序、子程序、字库及数据表等。ROM按存储信息的方法又可分为以下几种 1、掩膜ROM:掩膜ROM也称固定ROM,它是由厂家编好程序写入ROM(称固化)供用户使用,用户不能更改内部程序,其特点是价格便宜。 2、可编程的只读存储器(PROM):它的内容可由用户根据自已所编程序一次性写入,一旦写入,只能读出,而不能再进行更改,这类存储器现在也称为OTP(Only Time Programmable)。 3、可改写的只读存储器EPROM:前两种ROM只能进行一次性写入,因而用户较少使用,目前较为流行的ROM芯片为EPROM。因为它的内容可以通过紫外线照射而彻底擦除,擦除后又可重新写入新的程序。 4、可电改写只读存储器(EEPROM): EEPROM可用电的方法写入和清除其内容,其编程电压和清除电压均与微机CPU的5V工作电压相同,不需另加电压。它既有与RAM一样读写操作简便,又有数据不会因掉电而丢失的优点,因而使用极为方便。现在这种存储器的使用最为广泛。

单片机常用总线讲解

第8章单片机常用总线讲解 8.1 C总线接口 80C51单片机本身不具有总线接口,但是通过软件进行模拟,可以挂接具有C接口的芯片。 8.1.1 C总线的介绍 串行扩展总线在单片机系统中的应用是目前单片机技术发展的一种趋势。在目前比较流行的几种串行扩展总线中,总线以其严格的规范和众多带接口的外围器件而获得广泛应用。总线是PHILIPS公司推出的芯片间串行传输总线,它由两根线组成,一根是串行时钟线(SCL),一根是串行数据线(SDA)。主控器利用串行时钟线发出时钟信号,利用串行数据线发送或接收数据。总线由主控器电路引出,凡具有接口的电路(受控器)都可以挂接在总线上,主控器通过总线对受控器进行控制。 随着总线研究的深入,总线已经广泛应用于视/音频领域、IC卡行业和一些家电产品中,在智能仪器、仪表和工业测控领域也越来越多地得到应用。 8.1.2 总线的特点 总线的广泛应用是同它卓越的性能和简便的操作方法分不开的。总线的特点主要表现在以下几个方面: 硬件结构上具有相同的硬件接口界面。总线系统中,任何一个总线接口的外围器件,不论其功能差别有多大,都是通过串行数据线(SDA)和串行时钟线(SCL)连接到总线上。这一特点给用户在设计用用系统中带来了极大的便利性。用户不必理解每个总线接口器件的功能如何,只需将器件的SDA和SCL引脚连到总线上,然后对该器件模块进行独立的电路设计,从而简化了系统设计的复杂性,提高了系统抗干扰的能力。 线接口器件地址具有根大的独立性。每个接口芯片具有唯一的器件地址,由于不能发出串行时钟信号而只能作为从器件使用。各器件之间互不干扰,相互之间不能进行通信,各个器件可以单独供电。单片机与器件之间的通信是通过独一无二的器件地址来实现的。 软件操作的一致性。由于任何器件通过总线与单片机进行数据传送的方式是基本一样的, .v .. ..

CAN总线技术详解

CAN总线技术详解 起源 20世纪80年代,Robert Bosch 公司在SAE(汽车工程协会)大会上介绍了一种新型的串行总线CAN控制器局域网,那也是CAN 诞生的时刻。今天,在欧洲几乎每一辆新客车均装配有CAN 局域网。同样,CAN也用于其他类型的交通工具,从火车到轮船或者用于工业控制。CAN 已经成为全球范围内最重要的总线之一甚至领导着串行总线。CAN总线的工作原理 CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。CAN与I2C总线的许多细节很类似,但也有一些明显的区别。 当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。 当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时,转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。 由于CAN总线是一种面向内容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。

单片机的引脚原理图及说明完整版

单片机的引脚原理图及 说明 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

一、P0端口的结构及工作原理 P0端口8位中的一位结构图见下图: 由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。 下面,我们先就组成P0口的每个单元部份跟大家介绍一下: 先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取D 锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为‘读锁存器’端)有效。下面一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为‘读引脚’的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据总线上。

D锁存器:构成一个锁存器,通常要用一个时序电路,时序的单元电路在学数字电路时我们已知道,一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。大家看上图中的D锁存器,D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是反向输出端。 对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。如果时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。 多路开关:在51单片机中,当内部的存储器够用(也就是不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器)时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(内部没有ROM)的单片机或者编写的程序超过了单片机内部的存储器容量,需要外扩存储器时,P0口就作为‘地址/数据’总线使用。那么这个多路选择开关就是用于选择是做为普通I/O口使用还是作为‘数据/地址’总线使用的选择开关了。大家看上图,当多路开关与下面接通时,P0口是作为普通的I/O口使用的,当多路开关是与上面接通时,P0口是作为‘地址/数据’总线使用的。 输出驱动部份:从上图中我们已看出,P0口的输出是由两个MOS管组成的推拉式结构,也就是说,这两个MOS管一次只能导通一个,当V1导通时,V2就截止,当V2导通时,V1截止。

(完整版)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欧姆电阻代替!

单片机电路图详解

单片机:交通灯课程设计(一)(2007-04-21 13:28:54) 目录 摘要--------------------------------------------------------- 1 1.概述 -------------------------------------------------------- 2 2.硬件设计----------------------------------------------------- 3 2.1单片机及其外围--------------------------------------------3 2.1.1单片机的选择-----------------------------------------3 2.1.2单片机的特点及其应用范围----------------------------- 3 2.1.3存储器的扩展----------------------------------------- 4 2.1.4内存的扩展------------------------------------------- 6 2.1.5MCS-52的I/O接口扩展--------------------------------- 8 2.2电路部分--------------------------------------------------11 2.2.1元器件选用-------------------------------------------11 2.2.2电路完成功能-----------------------------------------13 3.软件设计------------------------------------------------------15 3.1软件概述-------------------------------------------------15 3.2汇编语言指令说明-----------------------------------------16 3.3定时/计数器的原理----------------------------------------16 3.3.1定时/计数器的概述-----------------------------------16 3.3.2 8255A片选及各端口地址-------------------------------18 3.3.3信号控制码------------------------------------------18 3.3.4工作方式寄存器--------------------------------------19 3.3.5定时/计数器初值及定时器T0的工作方式----------------20

CAN总线技术讲解

摘要: 随着工业测控技术和生产自动化技术的不断进步,传统的RS-232、RS-485和CCITTV.24通信技术已不能适应现代化的工业控制需要,而现场总线(Fieldbus)以其低廉的价格、可靠的性能而逐步成为新型的工业测控领域的通信技术。现场总线是应用在生产现场,在微机化测量控制设备之间实现双向串行多节点数字通信的系统,是一种开放式、数字化、多点通信的底层控制网络。汇集了计算机技术、网络通信技术和自动控制技术(3C)的现场总线技术,从20世纪80年代开始发展起来,并逐步在制造业、流程工业、交通、楼宇等方面的自动化系统中得到了广泛的重视和应用。现场总线主要有以下几种类型[1-3]:基金会现场总线(FF)、LonWorks、ProfiBus、CAN、HART,而其中CAN即控制器局域网因为具有高性能、高可靠性以及独特的设计而越来越受到关注,现已形成国际标准,被公认为几种最有前途的现场总线之一。 Abstract: As industrial measurement and control technology and production automation technology advances, the traditional RS - 232, RS - 485 and CCITTV. 24 communication technology can not meet the needs of modern industrial control, and field bus (Fieldbus), with its low price, reliable performance, and gradually become a new kind of communication technology in the field of industrial measurement and control. Field bus is used in production field, between microcomputer-based measuring control equipment to realize the bidirectional serial multi-node digital communication system, is a kind of open, digital, multipoint communication bottom control network. Brings together computer technology, network communication technology and automatic control technology (3 c) field bus technology, developed in the 1980 s, and gradually in the manufacturing and process industries, transportation, building automation system has been widely attention and application. Fieldbus basically has the following several types: [1-3] foundation fieldbus (FF), LonWorks, ProfiBus, CAN, HART, and which CAN namely controller local area network (LAN) because of the high performance, high reliability and unique design is more and more attention, already formed the international standard, is recognized as one of the most promising fieldbus.

基于单片机的CAN总线通讯实现讲解

CAN总线通讯基于51单片机应用

第一章前言 1.1 概述 控制器局域网(CAN-Controller Area Network)属于现场总线(Fieldbus)的范畴,是众多的属于现场总线标准之一,它适用于工业控制系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多特点。它是一种有效支持分布式控制或实时控制的串行通信网络,以其短报文帧及CSMA/CD-AMP(带有信息优先权及冲突检测的载波监听多路访问)的MAC(媒介访问控制)方式而倍受工业自动化领域中设备互连的厚爱。CAN的应用范围遍及从高速网络到低成本的多线路网络,它可以应用于汽车系统、机械、技术设备和工业自动化里几乎任何类型的数据通信。 随着计算机硬件、软件及集成电路技术的迅速发展,同时消费类电子产品、计算机外设、汽车和工业应用等的需求不断增加。高速、高可靠和低成本的通信介质的要求也随之提高。现场总线是当今自动化领域技术发展的热点之一,它为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。 微处理器中常用的串行总线是通用异步接收器传输总线(UART)、串行通信接口(SCI)、同步外设接口(SPI)、内部集成电路(I2C)和通用串行总线(USB),以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)等。这些总线在速度、物理接口要求和通信方法学上都有所不同。 在计算机数据传输领域内,长期以来使用的通信标准,尽管被广泛使用,但是无法在需要使用大量的传感器和控制器的复杂或大规模的环境中使用。控制器局部网CAN(CONTROLLER AERANETW0RK)就是为适应这种需要而发展起来的。随着汽车电子技术的发展,消费者对于汽车功能的要求越来越多,汽车上所用的电控单元不断增多,电控单元之间信息交换的需求,使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线,这就促进了车用总线技术的发展。CAN 总线的出现,就是为了减少不断增加的信号线,所有的外围器件都可以被连接到总线上由于CAN总线具有可靠性高、实时性好、成本合理等优点,逐渐被应用于如船舶、航天、工业测控、自动化、电力系统、楼宇监控等其他领域中。

单片机常用术语解释

单片机相关常用名词解释(转) 总线: 指能为多个部件服务的信息传送线,在微机系统中各个部件通过总线相互通信。 地址总线(AB):地址总线是单向的,用于传送地址信息。地址总线的宽度为16位,因此基外部存储器直接寻址64K,16位地址总线由P0口经地址锁存器提供低8位地址(A0~A7),P2口直接提供高8位地址(A8~A15)。 数据总线(DB):一般为双向,用于CPU与存储器,CPU与外设、或外设与外设之间传送数据信息(包括实际意义的数据和指令码)。数据总线宽度为8位,由P0口提供。 控制总线(CB):是计算机系统中所有控制信号的总称,在控制总线中传送的是控制信息。由P3口的第二功能状态和4根独立的控制总线,RESET、EA、ALE、PSEN组成。 存储器: 用来存放计算机中的所有信息:包括程序、原始数据、运算的中间结果及最终结果等。 只读存储器(ROM):只读存储器在使用时,只能读出而不能写入,断电后ROM中的信息不会丢失。因此一般用来存放一些固定程序,如监控程序、子程序、字库及数据表等。ROM按存储信息的方法又可分为以下几种 1、掩膜ROM: 掩膜ROM也称固定ROM,它是由厂家编好程序写入ROM(称固化)供用户使用,用户不能更改内部程序,其特点是价格便宜。 2、可编程的只读存储器(PROM): 它的内容可由用户根据自已所编程序一次性写入,一旦写入,只能读出,而不能再进行更改,这类存储器现在也称为OTP(Only Time Programmable)。 3、可改写的只读存储器EPROM: 前两种ROM只能进行一次性写入,因而用户较少使用,目前较为流行的ROM芯片为EPROM。因为它的内容可以通过紫外线照射而彻底擦除,擦除后又可重新写入新的程序。 4、可电改写只读存储器(EEPROM): EEPROM可用电的方法写入和清除其内容,其编程电压和清除电压均与微机CPU的5V工作电压相同,不需另加电压。它既有与RAM一样读写操作简便,又有数据不会因掉电而丢失的优点,因而使用极为方便。现在这种存储器的使用最为广泛。 随机存储器(RAM): 这种存储器又叫读写存储器。它不仅能读取存放在存储单元中的数据,还能随时写入新的数据,写入后原

51单片机的P0口工作原理详细讲解

51单片机的P0口工作原理详细讲解 一、P0端口的结构及工作原理P0端口8位中的一位结构图见下图: 由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到 P0.7的任何一位,即在P0口有8个与上图相同的电路组成。下面,我们先就组成P0口的每个单元部份跟大家介绍一下:先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为‘读锁存器’端)有效。下面一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为‘读引脚’的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的部数据总线上。D锁存器:构成一个锁存器,通常要用一个时序电路,时序的单元电路在学数字电路时我们已知道,一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。大家看上图中的D 锁存器,D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是反向输出端。对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。如果时序控制端CP的时序脉冲一旦到了,这时D端输入的数据就会传输到Q及Q非端。数据传送过来后,当CP时序控制端的时序信号消失了,这时,输出端还会保持着上次输入端D的数据(即把上次的数据锁存起来了)。如果下一个时序控制脉冲信号来了,这时D端的数据才再次传送到Q端,从而改变Q端的状态。多路开关:在51单片机中,当部的存储器够用(也就是不需要外扩展存储器时,这里讲的存储器包括数据存储器及程序存储器)时,P0口可以作为通用的输入输出端口(即I/O)使用,对于8031(部没有ROM)的单片机或者编写的程序超过了单片机部的存储器容量,需要外扩存储器时,P0口就作为‘地址/数据’总线使用。那么这个多路选择开关就是用于选择是做为普通I/O口使用还是作为‘数据/地址’总线使用的选择开关了。大家看上图,当多路开关与下面接通时,P0口是作为普通的I/O口使用的,当多路开关是与上面接通时,P0口是作为‘地址/数据’总线使用的。输出驱动部份:从上图中我们已看出,P0口的输出是由两个MOS管组成的推拉式结构,也就是说,这两个MOS管一次只能导通一个,当V1导通时,V2就截止,当V2导通时,V1截止。 前面我们已将P0口的各单元部件进行了一个详细的讲解,下面我们就来研究一下P0口做为I/O口及地址/数据总线使用时的具体工作过程。1、作为I/O端口使用时的工作原理P0口作为I/O端口使用时,多路开关的控制信号为0(低电平),看上图中的线线部份,多路开关的控制信号同时与与门的一个输入端是相接的,我们知道与门的逻辑特点是“全1出1,

车辆CAN总线概述(完整版)解析

一.CAN总线简介 1. CAN总线的发展历史 20世纪80年代初期,欧洲汽车工业的蓬勃发展,车辆电子信息化程度的也不断提高。当时,由于消费者对于汽车功能的要求越来越多,而这些功能的实现大多是基于电子操作的,这就使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线,但是传统的线束式汽车电子系统已经不能满足车辆电子信息功能发展的需求。为了解决这一制约现代汽车电子信息化发展的瓶颈,德国Bosch公司设计了一个单一的网络总线,所有的外围器件可以被挂接在该总线上,经过试验,这一总线能够有效解决现代汽车中庞大的电子控制装置之间的通讯,并且能够减少不断增加的信号线。所以在1986年Bosch公司正式公布了这一总线,且命名为CAN总线。 CAN控制器局部网(CAN—Controller Area Network)属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通讯网络,它具有很高的网络安全性、通信可靠性和实时性,简单实用,网络成本低,特别适用于汽车计算机控制系统和环境恶劣、电磁辐射强和振动大的工业环境,因此CAN总线在诸多现场总线中独占鳌头,成为汽车总线的代名词,CAN总线开始进入快速发展时期:1987年Intel公司生产出了首枚CAN控制器(82526)。不久,Philips公司也推出了CAN 控制器82C200; 1991年,Bosch颁布CAN 2.0技术规范,CAN2.0包括A和B两个部分 为促进CAN以及CAN协议的发展,1992在欧洲成立了国际用户和厂商协会(CAN in Automation,简称CiA),在德国Erlangen注册,CiA总部位于Erlangen。CiA提供服务包括:发布CAN的各类技术规范,免费下载CAN文献资料,提供CANopen规范DeviceNet规范;发布CAN产品数据库,CANopen产品指南;提供CANopen验证工具执行CANopen认证测试;开发CAN规范并发布为CiA 标准。 1993 年CAN 成为国际标准ISO11898(高速应用)和ISO11519(低速应用); 1993年,ISO颁布CAN国际标准ISO-11898; 1994年,SAE颁布基于CA N的J1939标准; 2003年,Maybach发布带76个ECU的新车型(CAN,LIN,MOST);

单片机常用名词解释大全

单片机常用名词解释大全 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,本文主要介绍了单片机的常用名词解释,具体的跟随小编来了解一下。 总线 指能为多个部件服务的信息传送线,在微机系统中各个部件通过总线相互通信。 地址总线(AB):地址总线是单向的,用于传送地址信息。地址总线的宽度为16位,因此基外部存储器直接寻址64K,16位地址总线由P0口经地址锁存器提供低8位地址(A0~A7),P2口直接提供高8位地址(A8~A15)。 数据总线(DB):一般为双向,用于CPU与存储器,CPU与外设、或外设与外设之间传送数据信息(包括实际意义的数据和指令码)。数据总线宽度为8位,由P0口提供。 控制总线(CB):是计算机系统中所有控制信号的总称,在控制总线中传送的是控制信息。由P3口的第二功能状态和4根独立的控制总线,RESET、EA、ALE、PSEN组成。 存储器 用来存放计算机中的所有信息:包括程序、原始数据、运算的中间结果及最终结果等。1、只读存储器(ROM): 只读存储器在使用时,只能读出而不能写入,断电后ROM中的信息不会丢失。因此一般用来存放一些固定程序,如监控程序、子程序、字库及数据表等。ROM按存储信息的方法又可分为以下几种 1、掩膜ROM: 掩膜ROM也称固定ROM,它是由厂家编好程序写入ROM(称固化)供用户使用,用户

MCS-51 单片机总线及接口技术分析

MCS-51单片机总线及接口技术分析 曾绮 摘要:本文开始总体上描述了总线与接口的作用及它们之间的关系,然后以MCS-51单片机为例介绍了单片机的三种总线:数据总线、地址总线、控制总线。并依据典型的开发板原理图,介绍了51单片机与矩阵键盘,LCD液晶屏等的借口电路。对51单片机的引脚功能和读写时序进行了具体介绍。 关键字:MCS-51 总线接口键盘LCD 1.总线与接口综述 计算机中多个功能部件共享的一组信息传输线称为总线,而接口则是两个系统或子程序交接并通过它彼此作用的部分。计算机总线按照其所处的层次分类可分为片内总线、内部总线、系统总线和外部总线。接口按照其传输数据的方式分类课分为串行接口和并行接口。其实总线与接口是密不可分的,它们一起构成了计算机或嵌入式系统各功能模块之间的信息传输通道。 MCS-51 单片机主要应用于嵌入式应用中,即单片机并不作为独立的设备,而是作为其他设备的智能核心,在设备中起到检测、处理和控制等作用。在单片机的40条引脚中有2条专用于主电源的引脚,2条外接晶体的引脚,4条控制或与其它电源复用的引脚,32条输入/输出(I/O)引脚。这些引脚构成MCS-51单片机片外三总线结构,即: ①地址总线(AB):地址总线宽为16位,因此,其外部存储器直接寻址为64K 字节,16位地址总线由P0口经地址锁存器提供8位地址(A0至A7);P2口直接提供8位地址(A8至A15)。 ②数据总线(DB):数据总线宽度为8位,由P0提供。 ③控制总线(CB):由P3口的第二功能状态和4根独立控制线RESET、EA、ALE、PSEN组成。其中P3口的大二功能如下所示: P3.0 10 RXD(串行输入口) P3.1 11 TXD(串行输出口) P3.2 12 INT0(外部中断0) P3.3 13 INT1(外部中断1) P3.4 14 T0(定时器0外部输入) P3.5 15 T1(定时器1外部输入) P3.6 16 WR(外部数据存储器写脉冲) P3.7 17 RD(外部数据存储器读脉冲) 2 STC开发板应用举例 下面以STC开发板的原理图为例介绍其外部接口:

51单片机的P0口工作原理详细讲解

51单片机的P0口工作原理详细讲解 时间:2013-07-15 17:51:25 来源:作者: 三态门:三态门缓冲器:51单片机P0口输入缓冲器 P0口的输出驱动:两个MOS管组成的推拉式结构 P0口作为IO线输入状态时:①读引脚;②读锁存器; P0口作为地址/数据复用口 P0口作为IO线输出时,只能输出低电平、高阻态,需要外接上拉电阻,使高阻态变为输出高电平(对比AVR单片机的推挽输出结构) 一、P0端口的结构及工作原理 P0端口8位中的一位结构图见下图: 由上图可见,P0端口由锁存器、输入缓冲器、切换开关、一个与非门、一个与门及场效应管驱动电路构成。再看图的右边,标号为P0.X引脚的图标,也就是说P0.X引脚可以是P0.0到P0.7的任何一位,即在P0口有8个与上图相同的电路组成。 下面,我们先就组成P0口的每个单元部份跟大家介绍一下: 先看输入缓冲器:在P0口中,有两个三态的缓冲器,在学数字电路时,我们已知道,三态门有三个状态,即在其的输出端可以是高电平、低电平,同时还有一种就是高阻状态(或称为禁止状态),大家看上图,上面一个是读锁存器的缓冲器,也就是说,要读取D锁存器输出端Q的数据,那就得使读锁存器的这个缓冲器的三态控制端(上图中标号为‘读锁存器’端)有效。下面一个是读引脚的缓冲器,要读取P0.X引脚上的数据,也要使标号为‘读引脚’的这个三态缓冲器的控制端有效,引脚上的数据才会传输到我们单片机的内部数据总线上。 D锁存器:构成一个锁存器,通常要用一个时序电路,时序的单元电路在学数字电路时我们已知道,一个触发器可以保存一位的二进制数(即具有保持功能),在51单片机的32根I/O口线中都是用一个D触发器来构成锁存器的。大家看上图中的D锁存器,D端是数据输入端,CP是控制端(也就是时序控制信号输入端),Q是输出端,Q非是反向输出端。 对于D触发器来讲,当D输入端有一个输入信号,如果这时控制端CP没有信号(也就是时序脉冲没有到来),这时输入端D的数据是无法传输到输出端Q及反向输出端Q非的。如

CAN总线教程详解

工作原理 当CAN 总线上的一个节点(站)发送数据时,它以报文的形式广播给网络中所有节点,对每个节点来说,无论数据是否是发给自己的,都对其接收。 每组报文开头的11 位字符为标识符,定义了报文的优先级,这种报文格式成为面向内容的编制方案。同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文,当几个站同时竞争总线读取时,这种配置十分重要。 大体的工作原理我们搞清了,但是根本的协议我们还要花一番功夫。下面介绍一个重要的名词,“显性”和“隐性”:首先CAN 数据总线有两条导线,一条是黄色的,一条是绿色的------分别是CAN_High 线和CAN_Low 线,当静止状态时,这两条导线上的电平一样,这个电平称为静电平,大约为2.5 伏。 这个静电平状态就是隐形状态,也称隐性电平,也就是没有任何干扰的时候的状态称为隐性状态。当有信号修改时,CAN_High 线上的电压值变高了,一般来说会升高至少1V;而CAN_Low 线上的电压值会降低一个同样值,也是1v。 那么这时候,CAN_High 就是 2.5v+1v=3.5v,它就处于激活状态了。而CAN_Low 降为2.5v-1v=1.5v。可以看看这个图 由此我们得到 在隐性状态下,CAN_High 线与CAN_Low 没有电压差,这样我们看到没有任何变化也就检测不到信号。但是在显性状态时,改值最低为2V,我们就可以利用这种变化才传输数据了。所以出现了那些帧,那些帧中的场,那些场中的位,云云。

在总线上通常逻辑 1 表示隐性。而0 表示显性。这些 1 啊,0 啊,就可以利用起来为我们传数据了。利用这种电压差,我们可以接收信号。 一般来说,控制单元通过收发器连接到 CAN 驱动总线上,这个收发器(顾名思义,可发送,可接收)内有一个接收器,该接收器是安装在接收一侧的差动信号放大器。然后,这个放大器很自然地就放大了CAN_High 和CAN_Low 线的电平差,然后传到接收区。如下图 由上图可知,当有电压差,差动信号放大器放大传输,将相应的数据位转化为0。 下面我们进入重点难点-----报文 所谓报文,就是CAN 总线上要传输的数据报,为了安全,我们要给我们传输的数据报编码定一下协议,这样才能不容易出错,所以出现了很多的帧,以及仲裁啊,CRC 效验。这些都是难点。 识别符的概念 识别符顾名思义,就是为了区分不同报文的可以鉴别的好多字符位。有标准的,和扩展的。标准的是11 位,扩展的是29 位。他有一个功能就是可以提供优先级,也就是决定哪个报文优先被传输,报文标识符的值越小,报文具有越高的优先权。 CAN 的报文格式有两种,不同之处其实就是识别符长度不同,具有11 位识别符的帧称为标准帧,而还有29 位识别符的帧为扩展帧,CAN 报文有以下4 个不同的帧类型。分别是:

51单片机总线设计全攻略

单片机总线设计法全攻略 1、目前广大工程师在设计单片机系统时的两种方案之我见 针对51单片机,工程师们在设计系统时,从宏观上讲无非就是两种方案:总线式设计方案和非总线式设计方案。所谓总线式设计方案就是利用51单片机的读写外部RAM功能,将要设计的外部设备(比如说键盘、液晶等)统统挂到单片机总线上,使其统一按类似读写外部RAM功能的指令方法进行操作;而所谓非总线式设计方案,则是不利用单片机的读写外部RAM功能,而直接利用I/O 口读写方式进行外部设备的读写,比如说LED灯、液晶等,因为液晶有两种读写方式,总线方式和模拟I/O方式(贵刊也有文章介绍过),而这里读写液晶的模拟I/O方式就是这里我要说的非总线式设计方案。 那么这两种方案到底哪一种好呢?说这句话可能有点外行,我自己也这样认为,但是为了更好的让初学者了解其中的道理,我还是班门弄斧简单阐述一下:首先要说明,我的这种阐述是建立在有读写外部RAM功能的单片机的基础之上的。我个人认为,两种方案各有利弊: 对于总线式设计方案来说,优点就是能够充分发挥单片机的总线读写功能,系统一旦设计完成,易于日后的升级和扩展。缺点是灵活性差,硬件连接比较固定;同时由于单片机读写总线时必定要产生一定的总线时间延迟,这样对于低速的单片机来说,如果设计的系统非常庞大的话,那就需要设计人员考虑一下实时性要求了,但是根据我个人多年来的开发经验来说,只要设计得当,一般问题不大,但还是将此问题摆出来,让大家商榷。 对于非总线式设计方案来说,最大的优点就是灵活性强,这种方案可以根据设计者的爱好自由选择单片机端口进行外围设备的设计(当然是要在符合设计原则的前提下),缺点是升级需要重新设计电路图。 2、总线法设计单片机系统的原理和方法 2.1 总线法设计原理简介 总线式设计方案对于很多的初学者来说是比较困难的,因为对于这种方法

单片机的三总线

第三篇计算机系统扩展与接口应用 第4章MCS-51微机系统扩展基础与存储器扩展 4.1 MCS-51微机系统总线概念、结构与扩展基础 MCS-51单片机主要应用于嵌入式应用中,即单片机并不作为独立的设备,而是作为其他设备的智能核心,在设备中起到检测、处理和控制等作用。MCS-51单片机嵌入式应用系统由硬件系统与软件系统构成。为了提高产品的性价比,MCS-51单片机的硬件与软件系统都要根据具体应用功能的需要,“量体裁衣”地进行设计。 由于IC工业的发展,目前构造单片机应用系统时需要的绝大多数功能都可以由某种相应的IC来实现。这意味着设计单片机硬件系统主要的工作简化为:划分硬件系统的功能模块,按照功能选择IC,将CPU与IC“拼装”到一起,绘成电路原理图和印刷电路板。 CPU与IC的“拼装”必须确保:IC能在CPU的控制下,高速与可靠地相互交换信息。计算机学家设计了计算机的“总线(BUS)”来实现这种拼装功能。 MCS-51单片机内部具有总线管理功能,可以扩展外部单元。掌握单片机的三总线知识和扩展IC的三总线基本结构,对于掌握MCS-51微机系统扩展至关重要。 在单片机系统扩展中,为了易于学习,将复杂的硬件系统扩展拆开成各类IC的单独扩展,分别学习。学会了各个典型芯片的扩展,就可以举一反三,像搭积木一样用各种IC 构成完整的硬件系统。 MCS-51通过总线扩展的IC可以分为两大类:存储器扩展和I/O扩展。存储器扩展的特点是它们仅与CPU联系,不与外部信息直接联系,因此接口方式可以简化,不必带有应答方式;I/O扩展涉及的IC不仅要与CPU联系,还要与外部信息联系,因此往往需要具有选通和应答机制。 在本章介绍的存储器扩展,不仅给学习者提供了存储器扩展的方法,更重要的是,通过它说明了计算机三总线的工作原理、编址技术与地址空间分析方法。 4.1.1 三态在总线中的作用 在总线扩展中,常要了解IC的端口引脚是否具有三态(three-state 或Tri-State)功能。三态就是低电平(Low Level)、高电平(High Level)和高阻态(High Impedance 或Hi-Z)。 低电平和高电平具有较大的电流驱动能力,用于输出控制,这两种状态出现在允许输出的输出端口中。 高阻态是电阻极大,或电流极小的状态,出现在输入端口或关断的输出端口中。输入端口中的高阻态可以在尽可能小地改变被输入对象的状态下获取信息。输出端口在关断时处于高阻态,可以在IC不从电路板上取下的情况下,起到让IC脱离电路的作用,这就为CPU选择IC参与或脱离总线提供了方便。只有能用控制信号将输出端关断,使之处于高阻态的IC,才能将该IC的输出端接入系统的数据总线。

相关主题
文本预览
相关文档 最新文档