ARM7网关通信模块设计

发布者:WiseSage123最新更新时间:2014-01-22 来源: ofweek关键字:ARM7  网关通信模块  LPC2294 手机看文章 扫描二维码
随时随地手机看文章
  MVB多功能车辆总线是在国际标准IEC61375列车通信网络(TCN)中被详细定义的一种现场总线,按照TCN标准,列车通信网分为两级,第一级绞线式列车总线实现车辆间的数据通信,第二级多功能车辆总线MVB主实现同车辆内各个功能控制单元之间的数据通信。MVB以其高实时性、高可靠性及可管理性等多方面的优势而广泛应用在列车总线控制当中。但是由于MVB是专门针对列车通信网络而开发的,其实用范围、供货商、经济型均不如CAN总线。CAN总线作为现场设备级的通信总线具有很高的可靠性和性价比。目前很多机车车辆的列车通信网络系统都采用MVB总线和CAN总线共同组成的异构网络。因此,本文提出了一种基于μC/OS-Ⅱ的ARM7内核芯片LPC2294的MVB-CAN双向通信模块。

  1 MVB多功能车辆总线

  MVB是国际标准IEC61375-1的车辆总线部分,它主要用于具有互操作性和互换性要求的互联设备之间通信的串行数据总线。MVB采用主帧/从帧应答方式,可以实现设备和介质冗余,实时性靠RTP实时协议保证。MVB介质分为3种:电气短距离介质为RS 485差分传输导线对,传输距离为20 m;电气中距离介质为双绞屏蔽线,传输距离为200 m;电气长距离介质为光纤,传输距离为2 km。

  MVB作为主从方式的串行通讯总线,是可以实现过程控制优化的总线。MVB具有良好的实时响应,一般用作车辆内部设备之问的数据通信,其采用曼彻斯特编码方式,数据传输速率为1.5 MHz。MVB多功能车辆总线主要由通信介质、MVBC协议控制器和MVB链路软件3部分构成。

  MVB具有2种帧格式,一种是只能由总线主设备发送的主设备帧,简称主帧;另一种是为响应主帧而由从设备发送的从设备帧,简称从帧。总线主设备在每一个特征周期里通过发主帧的方式对进程数据进行轮询,相应地从设备发送从帧进行真正的数据传输。报文由主帧和响应此主帧而送出的从帧组成。一个主帧应以主起始分界符开始,其后为16 b帧数据,接着为8 b校验序列。

  一个从帧应以从起始分界符开始;接着为(16,32,64,128或256)b帧数据,在每64个数据位包含一个8 b的校验序列,当帧数据只有16 b或32 b时将一个8 b的校验序列附加其后。

  2 CAN总线

  控制器局域网(Conteoller Area Network,CAN)是国际上应用最广泛的现场总线之一,最早由德国BOSCH公司推出,是一种用于汽车内部测量与执行部件之间的数据通信协议,CAN总线作为一种技术先进,可靠性高,功能完善,成本合理的远程网络通信控制技术,CAN总线已被广泛应用于各个领域。它为分布式控制系统实现各功能节点之间实时、可靠的数据通信提供强有力的技术支持。其报文结构可以分为2种不同的帧格式,两种帧格式的不同之处为标识符的长度不同:具有11位标识符的帧称为标准帧,具有29位标识符的帧称为扩展帧。本设计中主要考虑标准帧的情况。标准帧的报文由4种不同类型的帧构成表示:数据帧、远程帧、出错帧和超载帧。以数据帧为例:数据帧由7个不同部分构成:帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束。

  3 通信网关模块硬件设计

  网关模块的硬件框图如1所示。

ARM7网关通信模块设计

  处理器采用基于ARM7的LPC2294。LPC2294是一款基于16 b/32 b ARM7TDMI-S内核,内带16 KB RAM和256 KB高速FLASH的微处理器,最大时钟速率60 MHz。内带2路CAN通道,其CAN控制器集成了数据链路层功能,符合CAN2.0A和CAN2.0B的规范。

  CAN收发器采用Philips PCA82C250。主要提供对总线的差分发送能力和对CAN控制器的差动分接收能力。微处理器对CAN控制器进行相应配置后,收发器自动完成相应的CAN总线动作。

  MVB通信控制器采用MVBC02专用芯片,它采用16 b数据总线,提供了丰富的接口控制信号,简化了与各种宿主CPU以及通信存储器的接口设计,支持MVB协议中链路层及物理层的功能。MVB物理层接口采用电气短距离介质ESD+接口,系统信号通道使用光耦实现主系统与外界的电隔离,从而提高了系统的可靠性。使用RS 485芯片LTC1485I作为收发器,并使用过压保护模块以防止瞬间过压对器件造成损坏。MVB物理层接口电路如图2所示。[page]

ARM7网关通信模块设计

4 软件实现方案

  在本设计中,关键是实现MVB总线和CAN总线之间的数据交换,它具有MVB检测和接入功能,以及CAN总线检测和接入功能,通过处理器控制数据帧的解析和重新封装,实现符合CAN总线V2.0规范和MVB标准格式帧的相互转换。因此从CAN侧接收到的数据要通过MVB传输,就需要按照一定的格式把CAN帧中的数据组合成MVB帧的数据格式;同样从MVB侧接收到的数据要通过CAN传输,也需要按照一定的格式对MVB帧中的数据进行分帧处理。另外,为了实现透明传输需要在MVB端口中将各种变量的含义按照一定的规则和CAN总线侧帧的标识符等信息对应,从而形成一个表格,同样在CAN总线侧也将CAN侧的标识符与MVB侧的过程数据的数据集进行对应形成表格。

  软件主要由主函数调度模块、MVB控制模块、CAN控制模块以及2个数据缓冲组成。当CAN应用层有数据要发送到MVB网络时,主函数需调度模块得到CAN数据传输后调度CAN控制模块接收数据,解码分析获取标识符,依据标识符查询索引表找出对应MVB端口相关变量,后将报文中的相关数据提取出来发送到数据缓冲区B。主函数调度模块通知MVB控制模块从缓冲区B中提取数据,并进行完整的MVB报文封装,发送到MVB总线上,释放缓冲区B。反过来,当MVB应用层有数据要发送到CAN节点时,首先,数据发送到MVB上,主函数调度模块检测MVB上是否有数据传输,通知MVB控制模块接受数据,并对信息解码分析,从中获取端口相关变量,依据端口相关变量查询索引表找出对应CAN标识符,同时将数据发送到数据缓冲区A。此时,总调度模块通知CAN控制模块从缓冲区A中提取数据,并进行完整的CAN报文封装,发送到CAN总线上,释放缓冲区A。CAN控制模块主要负责从CAN数据包中解析出完整CAN协议报文,存入数据缓冲区B。同时,将数据缓冲区A中的CAN数据封装成完整的CAN协议报文后发送到CAN总线上。MVB控制模块主要负责从MVB数据包中解析出完整MVB协议报文,存入数据缓冲区A。同时,将数据缓冲区B中的MVB数据封装成完整的MVB协议报文后发送到MVB上。总调度模块主要起到综合调度和监控作用,同时,它还用于整个传输过程中的中断响应。

ARM7网关通信模块设计

图3说明了软件流程框图。

  5 结语

  本文描述了基于ARM7处理器LPC2294的MVB-CAN通信模块的实现方法,概述了MVB网络和CAN总线网络的报文结构,提出通信模块的硬、软件实现方法。通过考核该通信模块实现了MVB与CAN总线间的数据传递,其性能稳定,可靠性高。各种现场总线都有各自应用特点及优势。所以,多类型总线异构组网方式在列车通信网络中的应用越来越广泛。MVB及CAN总线的异构组网方式具有广阔的市场前景。MVB-CAN通信模块的设计为列车通信网络的多元化发展提供了支持,也为其他网络异构组网(例如:RS 485/RS 422-MVB,HDLC-MVB等)方式的网络通信模块设计提供了参考。

关键字:ARM7  网关通信模块  LPC2294 引用地址:ARM7网关通信模块设计

上一篇:基于嵌入式系统的能谱型核测井仪器
下一篇:成像测井中基于ARM LPC1788显示系统的设计

推荐阅读最新更新时间:2024-03-16 13:34

基于ARM7的无线内窥系统设计
引 言   目前微米、纳米技术的研究非常活跃,使得微小技术、微型机械电子系统(MEMS)技术得到迅速发展,从而大大促进,医用器材的微型化、微观化,出现了医用光电微传感器(如无线内窥镜)。无线内窥镜以微机电系统为基础,由感知外界信息(力、热、光、生、磁、化等)的微型传感器、控制对象的执行器、信号处理和控制电路、通信接口和电源等部件组成,将信息的获取、处理和执行集成在一起,形成一体化的、具有多种功能的微型系统。   当前,医用无线内窥镜已有产品问世。以色列GI公司早在2001年5月即推出其M2A无线内窥镜产品,并获得美国FDA认证。GI公司生产的胶囊型内窥镜长为26 mm,直径为11mm,重3.5g;采用微功耗CMOS图像传
[单片机]
基于<font color='red'>ARM7</font>的无线内窥系统设计
选择ARM处理器的ARM7还是Cortex-M3
1.1 ARM处理器系列 每个ARM处理器都有一个特定的指令集架构(ISA),而一个ISA版本又可以有多种处理器实现。ISA随着嵌入式市场的需求而发展,至今已经有多个版本。ARM公司规划该发展过程,使得在较早的架构版本上编写的代码也可以在后继版本上执行(即代码的兼容性)。 1.1.1 命名规则 早期ARM使用如图1.1所示的命名规则来描述一个处理器。在 ARM 后的字母和数字表明了一个处理器的功能特性。随着更多特性的增加,字母和数字的组合可能会改变。注意:命名规则不包含体系结构(ISA)的版本信息。 ARM {x}{y}{z}{T}{D}{M}{I}{E}{J}{F}{-S} x 系列 y 存储管理/保护单元 z cache T
[单片机]
基于ARM7的远程智能住宅控制装置的研制
1 总体方案设计   如图l所示。智能家电控制系统由家庭智能控制模块、家庭内部网络系统、以及GPRS模块等几部分构成。   (1)家庭智能控制器:该部分是系统的核心。采用嵌入式系统设计,能够自动运行、处理数据,通过RS485总线管理和控制家庭系统。并且控制器通过GPRS模块,实现家庭系统与外部网络的通讯,使用户可以通过短信和互联网等方式实现家庭系统的远程控制,同时,控制器还通过键盘和显示屏为用户提供人机界面,方便用户实现本地控制。   (2)家庭系统:家庭系统通过单片机组成若干小的控制系统控制各家用设备,并通过统一的控制总线将这些小的控制系统组成网络,连接到家庭智能控制器,受家庭智能控制器控制。   家庭智能控制器系
[安防电子]
基于ARM7微处理器的中文液晶显示技术
1 引言 液晶显示屏LCD作为一种功耗低、体积小、无辐射的显示器件,近几年被广泛应用于各式各样的嵌入式电子产品中,LCD可分为段位式、字符式和点阵式三种,其中,段位式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求,而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动动画功能,分区开窗口、反转、闪烁等功能,用途十分广泛,为了简化液晶 显示电路的设计和应用,生产厂家通常将液晶显示单元、显示控制器,显示内存和显示驱动电路等装配在一起,做成液晶显示模块LCD Module(LCM) 。LCM对外提供标准数据和控制接口以及控制指令,本文以ATM12864C为例,
[电源管理]
基于ARM7与FPGA组成的可编程控制器
1 引言 可编程控制器(Programmable Logic Controller)具有抗干扰强、可靠性高、编程简单的特点,被广泛应用于工业控制领域。但是传统小型可编程控制器难以将智能控制算法嵌入到控制系统中。本文以嵌入式微处理器S3C44B0X+FPGA为核心设计通用小型的可编程控制器,论述了PLC主机各功能模块通过CAN总线与S3C44B0X连接的接口电路和主机程序设计及执行过程。通过FPGA配置I/O口和嵌入先进的智能控制算法,如PID、模糊控制、神经网络算法等,这些控制算法作为控制模块嵌入PLC的梯形图程序中作为功能模块调用,各个模块之间通过CAN总线连接,用户根据被控对象现场的需求可以选择多个人机界面装置,提供监控控制
[单片机]
基于<font color='red'>ARM7</font>与FPGA组成的可编程控制器
畅学多功能ARM7实验箱LED流水灯资源详解
1. 单色流水灯测试 硬件准备:8P杜邦线1根 接线说明:使用1根8P杜邦线连接ARM核心板P019~P026接底板单色流水灯模块的JP15。 跳线说明:无 分别为:P019-I1,P020-I2,P021-I3,P022-I4,P023-I5,P024-I6,P025-I7,P026-I8. 实验现象:8个LED灯依次熄灭 源码资源如下: /*****************LPC2103 GPIO流水灯实验*************** 系统设置: Fosc、Fcclk、Fcco、Fpclk #define Fosc 12000000 #define Fcclk (Fosc * 5)
[单片机]
畅学多功能<font color='red'>ARM7</font>实验箱LED流水灯资源详解
周立功lpc21xx/lpc22xx系列ARM7启动代码分析
网上已经有人做了一个周立功lpc2000(ARM7TDMI)启动代码分析的文章, 我本来想做一个s3c2410(ARM920T)的启动代码分析的, 但是看来了一下2410的启动代码,发现有些东西还不是理解的很清楚, 我ARM9的经验比较少. 所以还是做一个ARM7的启动代码分析吧, 网上那一份相比,我这个主要关注startup.s文件.网上那个startup.s几乎是一笔带过的. 红色标记的是源码. SVC_STACK_LEGTH EQU 0 FIQ_STACK_LEGTH EQU 0 IRQ_STACK_LEGTH EQU 256 ABT_STACK_LEGTH
[单片机]
周立功lpc21xx/lpc22xx系列<font color='red'>ARM7</font>启动代码分析
arm7 lpc2148力天电子 PLL实验(一)之PLL中断实验
实验采用中断方式打开PLL,。添加蜂鸣器用于指示PLL锁定。 当PLL锁定成功后,蜂鸣器蜂鸣一声。实验程序如下所示,我是在IAR下面进行的调试,出现了两个警告,但不影响程序的运行。 #include NXP/iolpc2148.h typedef unsigned char uint32; void PLL_INT(void); void Delayn(unsigned long n); IRQEnable(void); //PLL中断函数 void PLL_INT(void) { PINSEL0=0x00000000; //设置所有引脚连接GPIO IO0DIR_bit.P0_22 = 1; PLLCON
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved