当前位置:首页 > 模拟 > 模拟
[导读]摘要: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转换等。在嵌入式系统的前期开发中,我们可以利用其仿真功能,不受硬件和地点的限制,使硬件和软件的开发同步进行,有效缩短产品的设计开发周期。

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

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

关键字: CAN总线 电动汽车

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

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

CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在汽车产业中,出于对安全性、舒适性、方便性、低功耗、低成本的要求,各种各样的电子控制系统被开发了出来。...

关键字: CAN总线 CAN 抗噪

CAN总线首先在汽车上得到了广泛应用,之后又在工业生产领域有了很大发展,那么面对不同的应用场景和工况,如何选择合适的网络拓扑结构慢慢成为一个让人头疼的问题。在这篇文章中,我将重点介绍用于驱动这些总线电压的 CAN 驱动器...

关键字: CAN总线 CAN总线拓扑

在进行CAN总线通信前,应保证正确的总线配置,比如终端电阻。它是影响总线通信的重要组件,下面我们不考虑信号的完整性,只从信号幅度和时间常数方面分析不加终端电阻时的影响。  终端电阻添加要求根据ISO11898-2对终端电...

关键字: 电阻 终端 CAN总线 电平

大家好,我是小麦。最近在调试一个CAN总线的设备遇到一些问题,简单总结一下。本文会对CAN总线进行简单介绍,CAN的硬件链路层,协议层,以及调试的一些心得。目录什么是CAN总线?物理层差分信号连接方式CAN节点CAN协议...

关键字: CAN总线

▼点击下方名片,关注公众号▼欢迎关注【玩转单片机与嵌入式】公众号,回复关键字获取更多免费资料。回复【加群】,限时免费进入知识共享群;回复【3D封装库】,常用元器件的3D封装库;回复【电容】,获取电容、元器件选型相关的内容...

关键字: C51 MDK RealView

大家好,我是小麦。最近在调试一个CAN总线的设备时遇到了一些问题,在此简单总结一下。本文将对CAN总线进行简单介绍,包括CAN的硬件链路层、协议层,以及调试的一些心得。目录什么是CAN总线?物理层差分信号连接方式CAN节...

关键字: CAN总线

摘要:介绍了基于STC12C5A60S2单片机、SJA1000型CAN接口控制器以及PCA82C250串行收发器构成的总线通信网络。该网络中远端的CAN节点可监测现场环境,并实现数据收发和串行通信,上位PC机利用VB6....

关键字: 单片机 CAN总线 VB6.0 环境参数

关注星标公众号,不错过精彩内容作者 |strongerHuang微信公众号|嵌入式专栏KeilMDK的界面虽然不那么友好(IAR其实也一样),但调试功能还算不错,特别是针对Cortex-M内核的处理器。KeilMDK支持...

关键字: MDK 调试

模拟

31144 篇文章

关注

发布文章

编辑精选

技术子站

关闭