当前位置:首页 > 模拟 > 模拟
[导读]摘要:RealView MDK具有强大的仿真功能,能仿真很多ARM芯片内部外设。文章以RealView MDK为开发环境,叙述了CAN总线的软件开发过程,并给出了仿真结果。 关键词:RealView MDK;CAN总线;仿真;LPC23780 引言

摘要:RealView MDK具有强大的仿真功能,能仿真很多ARM芯片内部外设。文章以RealView MDK为开发环境,叙述了CAN总线的软件开发过程,并给出了仿真结果。
关键词:RealView MDK;CAN总线;仿真;LPC2378

0 引言
    RealView MDK是ARM公司的产品,被全球超过10万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。RealView MDK集成了业内最领先的技术,包括μVision3集成开发环境与RealView编译器。支持ARM7、ARM9和最新的Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟、性能分析等功能。
    当前多数基于ARM的开发工具都有仿真功能,但是仅仅局限于对内核指令集的仿真。而RealView MDK的设备模拟器可以仿真整个目标硬件,包括快速指令集仿真、外部信号和I/O仿真、中断过程仿真、片内外围设备仿真等。开发工程师在无硬件的情况下即可开始软件开发和调试,使软硬件开发同步进行,大大缩短开发周期。而一般的ARM开发工具仅提供指令集模拟器,只能支持ARM内核模拟调试。
    CAN总线即控制器局域网(Controller Area Net)是一种现场总线,主要用于各种过程检测及控制。CAN最初是由德国BOSCH公司为汽车监测和控制而设计的,目前CAN已逐步应用到其它工业控制中,现已成为ISO-11898国际标准。

1 LPC2378的CAN总线控制器说明
    LPC2378是NXP公司推出的ARM7微控制器,它包含有2路独立的CAN模块,其CAN控制器的特点是:兼容CAN规范2.0B,多主机结构,带有无破坏性的位仲裁,由报文标识符(1l位或29位)确定总线访问优先级,可编程的传输速率(高达1Mb/s),多播和广播报文功能,数据长度从0到8字节,强大的错误处理能力,非归零(NRZ)编码/译码,带有位填充。
    每个CAN总线控制器包括:APB总线接口、验收滤波器接口、向量中断控制器接口、通用状态寄存器接口,这些接口连接芯片内部;还包括接口管理单元、3个发送缓冲区、2个接收缓冲器、错误管理逻辑单元、位时序逻辑、位流处理。芯片外部外接CAN总线收发器。CAN总线控制器控制着数据的发送和接收。


    CAN总线发送数据的过程为:CPU通过内部总线向CAN控制器的发送寄存器里填写需要发的数据,然后启动CAN控制器的发送使能,发送的数据分别经过位流管理器(变成在总线上发送的二进制码)、错误管理逻辑(负责检测总线状态及发送是否出现错误)及位时序逻辑(管理数据在总线上的发送时序)、CAN收发器(负责把位流数据转换成CAN总线够传输的差分电平),这样就完成了一帧CAN数据的发送。
    CAN总线的接收与CAN数据的发送是一个相反的过程,当CAN收发器检测到CAN总线上有数据时,CAN收发器把CAN总线上的差分信号转换成位流数据,经过错误管理器及位时序逻辑单元对位数据流和时序进行检查,再经过位流管理器把位流数据转换成字节数据并存放到接收缓冲器中,当一帧数据接收完了之后则由接收缓冲器产生数据接收中断(通知CPU已经接收到一帧新数据),并将产生的各种状态通过状态寄存器的值来表示。

2 系统软件设计
    本文所述系统实现的功能为:LPC2378的两个CAN控制模块各作为独立的CAN总线节点,实现它们之间的通信。为构建一个完整的CAN总线仿真环境,软件设计所实现的功能为:仿真一A/D转换通道,A/D转换后的数值传给CAN模块2,CAN模块l接收来自CAN模块2的数据。数据传送通道为A/D转换→CAN2→CANl。
2.1 定义一帧CAN数据的格式
   

2.2 初始化CAN控制器

2.3 中断服务程序
    每当发送完一帧数据,或接收到一帧数据时都触发中断。

2.4 主程序流程图

3 仿真结果
    编译并运行程序,打开CAN总线的Communication菜单项,可以看到图3所示的仿真结果。其中Number表示CAN消息的序号;States表示CAN消息的时间戳,它们是使用CPU状态标记的;#表示是哪一个CAN模块;ID表示CAN消息的标识,在发送或接收时使用;Dir表示CAN消息的传送方向;Xmit表示CAN控制器发送消息;Rec表示CAN控制器接受消息;Len表示一帧中数据场长度;data表示所传送的具体数据场。
    从仿真结果中可以看出,CAN模块2发送数据(Xmit),CAN模块1接收数据(Rec),数据场长度3个字节,达到了预期的仿真效果。

4 结束语
    RealView MDK具有强大的仿真功能,不仅能仿真CAN总线,还能仿真GPIO、I2C、SPI、A/D、D/A转换等。在嵌入式系统的前期开发中,我们可以利用其仿真功能,不受硬件和地点的限制,使硬件和软件的开发同步进行,有效缩短产品的设计开发周期。

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

CAN总线是一种串行通信协议,是ISO国际标准化的。它最初设计用于汽车内的多路电气布线以节省铜线,但也可以用于许多其他环境。在CAN总线中,所有的单元都可以发送和接收信息,且所有与总线相连的单元都可以开始发送新消息,但如...

关键字: CAN总线 CAN总线故障分析

CAN通信是一种控制器局域网络(Controller Area Network)通信协议,是由德国BOSCH公司开发,并最终成为国际标准(ISO 11898)。它是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率...

关键字: can通信 CAN总线

CAN总线通信是一种用于解决汽车众多控制部件之间的数据交换而开发的一种串行数据通信总线。它的英文全称是Controller Area Network,即控制器局域网。CAN总线通信的特点包括多主控制、通信速度快、通信距离...

关键字: CAN总线 CAN故障维修

无论是CAN总线还是485总线,实际应用中经常会出现各种异常,常因总线组网后,波形边沿出现过缓、呈“镰刀”状的现象,导致数据丢失或出错,那么这现象前因后果大家是否真正的了解呢? 

关键字: CAN总线 485总线 机器人

深耕于CAN总线产品领域的克萨(Kvaser)推出了Air Bridge系列,其最大的亮点就是具有稳定高效的无线连接功能。

关键字: Kvaser CAN总线

当我告诉人们我从事专注于汽车安全的半导体行业时,他们通常认为一定会涉及汽车报警和车钥匙。尽管汽车盗窃仍是一个合理的担忧,但与内部电子控制单元(ECU)及其车内外通信相关的安全威胁明显更大。在今年销售的所有新车中,大约有5...

关键字: 车载网络通信 ECU CAN总线

汽车常见总线:随着汽车内各个系统的控制都在向智能化和自动化转变,汽车电气系统变得越来越复杂,汽车各个功能系统相互之间、功能系统和汽车显示仪表之间、以及功能系统和汽车故障诊断系统之间都需要进行数据交换。如果使用传统的点对点...

关键字: CAN总线 芯片 汽车总线

21世纪电动汽车的全面推出,是汽车工业的一次大革命。自动驾驶技术让交通更加便捷,改变了人类的驾驶习惯。在控制单元高度电子化的车辆架构下,CAN总线是关键的通信接口之一。

关键字: 电动汽车 CAN总线

汽车电子系统架构发生了颠覆性变化。它已经持续了近十年,现在正在加快速度。这主要发生在 BEV 初创公司中,因为它们没有历史限制或根深蒂固的喜爱设计,并且可以从电子架构的零基础开始。

关键字: CAN总线 电动汽车

在电子产品的设计中,电磁兼容EMC性能对系统的影响非常大,关系到其能正常稳定运转。世界上已经开始对电子产品的电磁兼容性做强制性限制,电磁兼容性能已经成为产品性能的一个重要指标。 电磁兼容主要有两方面的内容,一个是产...

关键字: CAN总线 电磁兼容EMC
关闭
关闭