监控系统与现场总线1CUMT监控系统与现场总线大家先思考几个问题CAN总线“长”什么样?什么是CAN总线?CAN代表什么什么含义?现场总线包括基金会现场总线、Lonworks、PROFIBUS、HART、CAN,为何我们选择学习CAN总线?思考监控系统与现场总线2CUMT监控系统与现场总线TheAnswerCAN是控制器局域网络(ControllerAreaNetwork,CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11898),是国际上应用最广泛的现场总线之一。CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率最高可达1Mbps。是唯一有国际标准的现场总线,被认为到目前为止最有前途的现场总线。现场总线(Fieldbus)本质是计算机控制网络,因此网络技术是它的重要基础。计算机网络连接是各个PC,现场总线连接的是生产最底层的受控设备,传感器。思考监控系统与现场总线3CUMT监控系统与现场总线思考监控系统与现场总线4CUMT监控系统与现场总线思考监控系统与现场总线5CUMT监控系统与现场总线6CAN的开发与设计6.1概述SJA1000是一种具有高级功能的独立CAN控制器,它可以应用到汽车工业和其它工业领域。目前独立CAN控制器包括SJA1000和MCP2515,SJA1000应用比较广泛,性能较强,但是占IO较多。集成CAN控制器的MCU有PIC18F258/2580/4580/P8XC591/STM32/C8051F040等CAN收发器常用PCA82C250/TJA1050/MCP2551SJA1000是PCA82C200(BasicCAN)替代产品,因此其硬件和软件与PCA82C200完全兼容;而且SJA1000还增加一种新的操作模式-Pelican,这种模式支持很多新特性的CAN2.0B协议。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线6CUMT监控系统与现场总线一、CAN总线结点结构一般而言,每一个CAN模块可以被分成不同的功能块;第一层:与CAN总线相联的部分,一般由CAN收发器构成。收发器将CAN控制器的逻辑电平信号转换为CAN总线上的实际电平,同时也将总线上的实际电平转换为CAN控制的逻辑电平。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线7CUMT监控系统与现场总线第二层就是CAN控制器,它完成CAN技术规范定义的完整的CAN协议,通常还包括报文的缓冲和认可滤波功能。第三层,所有的CAN功能完全由模块控制器来控制,它完成应用公共的控制功能,如控制一个执行机构,采集传感器的信息及处理人-机接口等等。一般是MCU概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线8CUMT监控系统与现场总线如图6-1所示,SJA1000独立CAN控制的器一般均介于微控制器与收发器之间。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线9CUMT监控系统与现场总线二、功能框图SJA1000的功能框图,如图6-2所示。监控系统与现场总线10CUMT监控系统与现场总线1)CAN核心模块:根据CAN技术规范完成帧的收发。2)接口管理逻辑单元:完成与外部主控制器的连接,该控制器可以是微控制器或其他装置,对SJA1000寄存器的读写及读写脉冲均由此单元来控制,并且增加了除BasicCAN基本功能外的PeliCAN功能,由此而增加的寄存器和控制逻辑也大多在此模块中完成。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线11CUMT监控系统与现场总线3)发送缓冲器:可以存放一个完整的报文(SFF/EFF)。只要外部控制器初始化一次发送过程,IML(管理逻辑接口单元)都要迫使CAN核心模块来读取发送缓冲器的报文。4)认可滤波器:当接收到一组报文CAN核心模块将其串/并转换后送到认可滤波器,利用这些可编程寄存器,SJA1000来确定哪些报文是主控制器要接收的。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线12CUMT监控系统与现场总线5)接收栈FIFO:所有通过认可滤波的报文均存放在接收线中,根据运行方式和报文长度的不同,接收栈中最多只能存放32个报文。这给用户提供了更大的灵活性来处理中断优先权判定和中断服务程序,因此这大大降低了数据超载的可能性。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线13CUMT监控系统与现场总线6.2系统构成为了与主控制器相连,SJA1000提供了复用地址/数据总线和其他的读写控制信号,SJA1000可以被看作为面向存贮器寻址的外设I/O单元。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线14CUMT监控系统与现场总线由于寄存器和输出管脚可组态使得SJA1000可以使用任何种类的集成或分立的CAN收发器。在图3中给出了包括80C51和PCA82C250/1收发器的SJA1000的应用框图。CAN控制器给8051提供时钟,由外部复位电路提供复位信号。在这个例子中,SJA1000由8051的端口P2.7来控制,也可以将此脚接到Vss。该脚也可以通过地址译码器来控制。//定义SJA1000的基址#defineSJA_BaseAdr0X7F00决定CS接到P2口的那个管脚,这样定义就是P2.7#defineSJA_BaseAdr0XFE00决定CS接到P2口的那个管脚,这样定义就是P2.0概述系统构成CAN通信的控制CAN通信的应用6.2.1SJA1000的应用监控系统与现场总线15CUMT监控系统与现场总线监控系统与现场总线16CUMT监控系统与现场总线CAN总线系统智能节点硬件设计监控系统与现场总线17CUMT监控系统与现场总线SJA1000有3组电源脚供给不同的内部数字或模拟功能块VDD1/VSS1内部逻辑(数字)VDD2/VSS2输入比较器(模拟)VDD3/VSS3输出驱动器(模拟)这组电源是相互独立的,以提高芯片的抗干扰能力。在某些应用场合VDD2可以联接一个RC去偶网络,以抑制比较器的噪声干扰。概述系统构成CAN通信的控制CAN通信的应用6.2.2电源监控系统与现场总线18CUMT监控系统与现场总线6.2.3复位SJA1000的正常复位过程,要求在XTAL1脚上加以稳定的振荡器时钟脉冲,Pin17上外部复位信号起同步作用,并在CAN控制器内部被延长为15个时钟周期的脉宽,这样就可以保证SJA1000内部寄存器的可靠复位。此外在上电复位时,也应将振荡内的起振时间考虑在内。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线19CUMT监控系统与现场总线6.2.4振荡器及时钟的提供方法SJA1000可使用内部振荡器或外部振荡器CLKOUT可被置有效,给主控制器提供时钟,图6-4给出了4种SJA1000的时钟供给方法。思考有一幅图有问题?若CLKOUT不使用,可通过使时钟分频寄存器的时钟关断位置1,使之无效,这样做可提高CAN接点的电磁兼容性。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线20CUMT监控系统与现场总线监控系统与现场总线21CUMT监控系统与现场总线上电复位或硬复位后,时钟分频系数取决于接口方式。接口方式由11脚模式位(Mode)决定。所以若振荡的频率为16MHz,在Intel方式,fclkout=8MHz;在Motorola方式,fclkout=1.33MHz。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线22CUMT监控系统与现场总线在没有总线活动和发出中断申请的情况下,在BasicCAN模式中置Gotosleep位;在PeliCAN模式置SleepMode位可使CAN控制器进入睡眠状态,振荡器要再持续工作15个系统时钟时间。这段时间微控制器可用来处理善后事务,并进入其低功耗待机状态。唤醒条件之一发生,振荡器将起振,并发出唤醒中断,并且一旦振荡器稳定,CLKOUT就有有效输出。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线23CUMT监控系统与现场总线6.2.5CPU接口控制SJA1000可以直接与两种著名的CPU系列相联,80C51、68XX,两种CPU系列的选择通过模式脚(Mode,Pin11)来选择。图6-5给出了Intel和Motorola方式下的地址/数据线及读写控制信号线的连线图。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线24CUMT监控系统与现场总线监控系统与现场总线25CUMT监控系统与现场总线6.2.6物理层接口监控系统与现场总线26CUMT监控系统与现场总线6.3CAN通信的控制6.3.1控制SJA1000通信的基本功能和控制寄存器主控制器通过应用程序来设定SJA1000的功能,因此我们将对SJA1000进行编程以满足不同性能的CAN总线系统的要求。主控制器通过寄存器(控制段)和RAM(报文缓冲器)与SJA1000交换数据。这些控制寄存器和接收及发送缓冲器--RAM的可寻址窗口,对主控制器而言均为外设寄存器。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线27CUMT监控系统与现场总线表2将这些寄存器按使用功能进行了分组。要注意,有些寄存器只能在PeliCAN方式中使用,而另一些只能在BasicCAN方式中使用;有些为只读而另一些为只写,还有一些寄存器只能在复位状态下才能进行读写操作。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线28CUMT监控系统与现场总线SJA1000独立的CAN控制器有2个不同的操作模式:1BasicCAN模式:和PCA82C200兼容。BasicCAN模式是上电后默认的操作模式,因此用PCA82C200开发的已有硬件和软件,可以直接在SJA1000上使用而不用作任何修改。2PeliCAN模式:是新的操作模式。它能够处理所有CAN2.0B规范的帧类型。而且它还提供一些增强功能,使SJA1000能应用于更宽的领域。PeliCAN中文含义?53工作模式通过时钟分频寄存器中的CAN模式位来选择,复位时默认模式是BasicCAN模式。监控系统与现场总线29CUMT监控系统与现场总线监控系统与现场总线30CUMT监控系统与现场总线监控系统与现场总线31CUMT监控系统与现场总线监控系统与现场总线32CUMT监控系统与现场总线(1)BasicCAN模式地址分配SJA1000对微处理器而言是存储器寻址方式的I/O装置,由于寄存器的设计是按RAM方式设计的。SJA1000的地址范围包括控制段和报文缓冲器。在初始化时对控制段进行编程,以便组态通信参数。位处理器也是通过此段实现对CAN总线通信的控制。在初始化时位处理器还可对CLKOUT信号的频率进行编程。要发送的报文,必须写入SJA1000的发送缓冲器;正确接收的报文,微处理器可以从接收缓冲器中读取,并将接收缓冲器释放以备将来使用。概述系统构成CAN通信的控制CAN通信的应用BasicCAN模式监控系统与现场总线33CUMT监控系统与现场总线微处理器与SJA1000的状态、控制和命令信号的交换都是在控制段完成的。此段的地址分配如表5-12所示,在初始化完成后,认可码寄存器、认可码屏蔽寄存器、总线定时寄存器0和1以及输出控制寄存器的内容不应再发生变化,所以这些寄存器只能在控制寄存器的复位请求位被置为高时,才可对其写操作。概述系统构成CAN通信的控制CAN通信的应用监控系统与现场总线34CUMT监控系统与现场总线对寄存器的操作必须区分两种模式:复位模式运行模式在硬件复位或总线关断状态(见表5-16,状态寄存器)时,芯片自动进入复位模式(见表5-14,控制寄存器);将控制寄存器中的复位请求位清零就可进入运行模式。概述系统构成CAN通