当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]CAN总线概述CAN(Controller Area Network)总线即控制器局域网络,是现场总线之一,由德国Bosch公司为汽车的监测、控制系统而设计的总线式串行通讯网络,适合于工业过程控制

CAN总线概述

CAN(Controller Area Network)总线即控制器局域网络,是现场总线之一,由德国Bosch公司为汽车的监测、控制系统而设计的总线式串行通讯网络,适合于工业过程控制设备和监控设备之间的互联。是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。主要应用于汽车电控制系统、电梯控制系统、安全监控系统、医疗仪器、纺织机械、船舶运输等方面。CAN具有下下列主要特性:①低成本;②远距离传输(长达lOKm);③ 高速的数据传输速率(高达1Mbit/s);④可根据报文的ID决定接收或屏蔽该报文;⑤可靠的错误处理和检错机制;⑥发送的信息遭到破坏后,可自动重发;⑦节点在错误严重的情况下具有自动退出总线的功能。

2 嵌入式系统的CAN接口电路

基于ARM7架构嵌入式系统的CAN接口硬件模块包括Samsung公司的嵌入式微处理器S3C44BOX和Philips公司的CAN控制器芯片SJAl000和CAN总线收发器PCA82C250。

2.1 Samsung S3C44BOX的结构及特点

8KB Cache、 Samsung S3C44BOX微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案,它使用ARM7TDMI CPU核,工作在66MHZ。为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件:外部存储器控制器、LCD控制器、4个DMA通道、2通道异步UART单元、1个同步串行口(SIO)、1个多主12C总线控制器、1个I Is总线控制器,5通道PWM定时器及一个内部定时器、71个通用I/O口、8个外部中断源、实时时钟、8通道10位ADC等。

2.2 CAN总线控制器

CAN总线控制器选用PHILIPS公司的SJAl000。 SJAl000是一款独立的控制器,用于汽车和一般工业环境中的控制器局域网络(CAN)。它是PHILIPS半导体PCA82C200 CAN控制器(BasicCAN)的替代产品。而且,它增加了一种新的工作模式(PeliCAN),这种模式支持具有很多新特性的CAN2.0B协议。 SJA1000是新一代CAN控制器,有如下特点:①和PCA82C200独立CAN控制器引脚兼容及电气兼容;②SJA1000有两种工作模式:基本 CAN模式(BASIC CAN)和增强CAN模式(PELI CAN),支持CAN2.0A/B协议;③同时支持11位和29位ID,位速率可达1M,具有总线仲裁功能;④扩展的接收缓冲器(64字节、先进先出 FIFO),增强的环境温度范围(-40-+125℃);⑤检错和纠错能力加强;⑥支持带电插拔。

SJA1000方框图如图1所示。其中接口管理逻辑IML负责连接外部主控制器,该控制器可以是微型控制器或其它任何控制器。接口管理逻辑 IML接收来自微控制器的命令,分配控制信息缓存器发送缓存器TBF、接收缓存器RBF0和RBF1,并为微控制器提供中断和状态信息。发送缓存器TBF 由10个字节存贮单元组成,存贮由微控制器写,将被发送至CAN总线网络的报文。接收缓存器0和1(RBF0、RBF1)均由10个字节组成,交替存贮从总线接收的报文,当一个缓存器分配给CPU,位流处理器可以对另一个进行写操作。位流处理器是一个控制发送缓存器和接收缓存器(并行数据)与CAN总线 (串行数据)之间数据流的序列发生器。位定时逻辑将SJA1000同步于CAN总线上的位流。验收滤波器支持11位和29位标识符的滤波,所有收到的报文由验收滤波器验收并存储在接收FIFO。错误管理逻辑按照CAN协议完成错误界定。

 


2.3 CAN总线收发器

CAN总线收发器选用Philips公司PCA82C250产品。CAN总线收发器是CAN协议控制器和物理总线之间的接口,该器件对总线提供差动发送能力并对CAN控制器提供差动接收能力,有很强的抗电磁干扰(EMI)的能力,至少可挂110个节点。

2.4 嵌入式系统的CAN接口电路

图2是嵌入式微处理器S3C44BOX的CAN接口电路图。如图所示,ARM和SJA1000以总线方式连接,由于ARM信号为3.3伏,而 CAN总线控制器电平为5伏,所以所有信号之间均需要电平转换,本例中使用了QS34X245作为电平转换芯片。QS34X245为80引脚的双例直插芯片,它既有电平转换功能(5V变到3.3V),又是一个总线开关和隔离器件。QS34X245内提供一组32位高速CMOS兼容的总线开关,当输出使能端 OEn(n为1~4)为低电平时,开关通,连能总线A和总线B;当输出使能端OEn为高电平时,则开关断开,总线A和总线B隔离。OE1控制总线A和总线 B的低8位(即A7~A0和B7~B0),OE2控制A15~A8和B15~B8,OE3控制A23~A16和B23~B16,OE4控制A31~A24 和B31~B24。由于ARM总线非复用,而SJA1000总线复用,所以必须通过逻辑产生地址锁存信号ALE,在本例中该信号由芯片GAL22V10产生。SJA1000的片选、读写信号均采用ARM总线信号,ALE信号由读写信号和地址信号通过GAL产生。在写SJA1000寄存器时,首先往总线的一个地址写数据,作为地址,读写信号无效,ALE变化产生锁存信号;然后写另外一个地址,读写信号有效,作为数据。上述逻辑完全通过GAL产生。此外,CAN总线需要在两线问加一个120欧电阻。

 


3 系统软件的设计

CAN控制器对于主控制器(CPU)来讲是一个存储器映象的I/O设备,SJA1000的功能配置和行为由主控制器的程序执行,主控制器和 SJA1000之间的数据交换经过一组寄存器(控制段)和一个RAM(报文缓存器)完成。RAM部分的寄存器和地址窗口组成了发送缓存器和接收缓存器,其中控制段由CPU在初始化时设置,需要发送的数据由CPU填入发送缓存器中。接收缓存器有两个,对于CPU而言两者地址是相同的,当CPU读取一个缓存器时,另一个可同时在接收数据,两者替工作。SJA1000初始化程序图3所示。

 


SJA1000控制段寄存器包括控制寄存器CR、命令寄存器CMR、状态寄存器SR、中断寄存器IR、接收代码寄存器ACR、接收屏蔽寄存器 AMR、总线定时寄存器BTR0及BTRl、输出控制寄存器OCR、测试寄存器TR。控制寄存器用来控制中断、复位和同步方式。命令寄存器用来控制发送、终止发送、缓冲区释放、清除过载状态、睡眠、唤醒和接收方式。状态寄存器用于指示CAN控制器的当前工作状态,包括接收缓冲区状态、数据是否超载、发送缓冲区状态、发送是否结束、接收是否正在进行、发送是否正在进行、错误状态和总线是否关闭。中断寄存器用来指示各中断源状态,包括接收中断、发送中断、出错中断、超载中断和唤醒中断。接收代码寄存器存放用于接收帧识别的代码。接收屏蔽寄存器说明对应于接收代码的哪些位参与接收帧识别。总线定时寄存器用来设定总线通信速率。输出控制寄存器用来控制输出驱动器的输出方式。测试寄存器仅用于芯片内部测试。[!--empirenews.page--]

控制CAN总线时首先初始化各寄存器,以设定通信参数(如:模式、位速率、验收码、屏蔽码、字段长、总线定时、输出模式等),BASIC CAN方式控制段共10个字节。发送数据时首先置位命令寄存器,然后将被发送的报文写入发送缓冲区,最后置位请求发送,由SJAl000完成发送。接收通过查询状态寄存器,读取接收缓冲区获得信息,然后释放接收缓冲器。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在FPGA和IC设计领域,经常会面临一个挑战:多个端口同时竞争一个端口的数据。在这种情况下,采用RR调度策略可能是一种解决方案。

关键字: FPGA 嵌入式系统 IC设计

“实现机器人操作系统——电机控制器ROS1驱动程序简介”一文中概述了新型ADI Trinamic™电机控制器(TMC)驱动程序,并讨论了将电机控制器集成到机器人操作系统(ROS)生态系统中的方法。TMC ROS1驱动程序...

关键字: 电机控制器 机器人 嵌入式系统

台湾新竹 – 2024年4月23日 – 著名的微控制器供货商新唐科技公司,与全软件开发生命周期提供跨平台解决方案的全球软件公司Qt Group宣布深化合作,扩展新唐科技人机界面(HMI)平台支持「Qt for MCUs」...

关键字: 微控制器 嵌入式系统 MCU

随着物联网、嵌入式系统以及微控制器技术的飞速发展,微控制器已成为众多智能设备和系统不可或缺的核心组件。而微控制器的正常工作,离不开烧录器的精准操作。C8051F021烧录器,作为一款高效、稳定、易用的微控制器烧录工具,在...

关键字: c8051f021烧录器 联网 嵌入式系统

为增进大家对嵌入式系统的认识,本文将对嵌入式系统、嵌入式系统的特点予以介绍。

关键字: 嵌入式 指数 嵌入式系统

2024年4月18日,国民技术第四代可信计算芯片NS350 v32/v33系列产品正式发布并开始量产供货。NS350 v32/v33是一款高安全、高性能、超值可信密码模块2.0 (TCM 2.0)安全芯片,适用于PC、服...

关键字: PC 服务器平台 嵌入式系统

2024年,嵌入式系统将走向何方?如何才能走在趋势的前沿?从工厂到家电,从医院里昂贵的医疗设备,到随处可见的可穿戴设备,我们身边的联网设备越来越多,生活更加绿色低碳,嵌入式系统功不可没。ST于3月19日成功举办STM32...

关键字: 嵌入式系统 可穿戴设备

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

随着科技的飞速发展,单片机和嵌入式系统在现代电子设备中的应用越来越广泛。它们不仅提高了设备的智能化水平,还推动了各行各业的创新与发展。在单片机和嵌入式系统的开发中,编程语言的选择至关重要。本文将深入探讨单片机和嵌入式系统...

关键字: 单片机 嵌入式系统 电子设备

Windows Embedded Compact 7(简称WinCE)是一种专为嵌入式系统设计的操作系统,具有体积小、效率高、可定制性强的特点。在WinCE中设置自动运行软件,通常是为了满足设备在启动后自动执行特定任务的...

关键字: 嵌入式系统 软件 操作系统
关闭
关闭