新闻中心

EEPW首页>手机与无线通信>设计应用> 基于ARM7的MVB_CAN网关设计

基于ARM7的MVB_CAN网关设计

作者: 时间:2011-03-25 来源:网络 收藏


2 CAN总线与MVB总线协议转换
CAN总线和MVB总线都属于现场总线范畴,因此,它们都有自己的网络分层结构。对于大多数现场总线,它们都包括物理层,数据链路层和应用层。
MVB有过程数据和消息数据之分。过程数据的网络分层是三层(物理层、数据链路层、应用层),而消息数据的网络分层则有7层。由于消息数据比较复杂且应用场合较少,因此,本文只讨论过程数据。但实际上,有时也可以将MVB视为一个三层协议的网络。
CAN网络分层结构按照CAN总线协议来说,就只有两层即物理层和数据链路层。但是涉及到具体的应用,它实际上也包括应用层。
为了实现两种总线问的协议转换,通常需要首先对他们的帧格式进行转换,其主要原因是帧字节数大小不同,而帧的编码解码部分是由网卡硬件完成的;其次是对应用层的转换,即通过一定的形式将CAN总线中表示过11位标志符的数据含义和MVB总线中过程变量的数据集对应起来,以实现数据之间的传输。

3 MVB-CAN的硬件实现
为了方便,本的CAN侧采用三星公司生产的S3C4480微控制器,MVB侧则采用MVBC01 ASIC专用芯片。
MVB通信控制器选用的MVBC01 ASIC专用芯片采用的是16 bit数据总线,该芯片同时可提供丰富的接口控制信号(如RDY、TMRDY等待信号),因此,可用于简化与各种宿主CPU以及通信存储器的接口。此外,MVBC01还内嵌有完整的MVB1类设备协议,其中,MVB物理层接口采用电气短距离介质ESD+接口,系统信号通道则使用光耦来实现主系统与外界的电隔离,从而提高了系统的可靠性。另外,系统还使用RS 485芯片作为收发器,并使用过压保护模块来防止瞬间过压对器件造成的损坏。MVB侧的接口单元如图4所示。

本文引用地址://m.amcfsurvey.com/article/156540.htm

c.JPG


MVBC01端口ICA (MVB Input Data ChannelA)和ICB(MVB Input Data Channel B)分别为MVB输入数据通道A和输入数据通道B,来自物理层收发器的MVB信号可由此端口送入MVBC01中。MVBC01的端口OC (MVB Output Data Channel)是MVB的数据输出端口,数据经此端口可发送至物理层收发器。MVBC端口SF(Send Frame)的输出信号可作为物理层的使能信号,该信号有效时,表示一个报文正在通过MVBC端口OC(MVB Output Data Channel)输出。
本系统CAN侧采用的是三星公司生产的S3C44BOX微控制器,S3C44BOX是韩国三星公司推出的一款TDMI核的16/32位RISC高性价比、低功耗的嵌入式微处理器。该芯片的片上资源非常丰富,因为它本身带有可满足CAN2.0B协议的CAN控制器,故可省去CAN控制器和单片机之间的硬件连接。
CAN收发器采用PHILIPS公司的PCA82C250。主要提供对总线的差动发送能力和对CAN控制器的差动接收能力。当微处理器对CAN控制器进行
相应配置后,收发器即可自动完成相应的CAN总线动作。
MVBC01的引脚f.jpg除在MVBC01复位时作为复位完成信号外,还可作为MVBC01接收到网络数据时的通知信号。它的状态通过s3c44b0x的g.jpg传送给S3C44BOX。S3C44BOX轮询检测g.jpg,若检测到跳变发生且MVBC01判断此信号为网络控制数据接收事件,则通过I2C接口读取MVBC01的数据。MVBC01的复位可通过微控制器的PA0端口触发。当MVBC01复位完成后,再通过/INT通知微控制器。MVBC01的控制口配置成串行方式的I2C接口,S3C44BOX通过该接口对MVBC01的寄存器进行初始化和其它控制操作。其硬件连接图如图5所示。

d.JPG



4 软件实现
由于MVB-CAN两侧连接的是两个现场总线,因此,它们实际的工作就是通过对信息的重新封装以使MVB总线和CAN总线能够读取和传
输。
由于CAN数据帧包含8个字节的数据,而MVB从帧最多包含256个字节的数据,因此,从CAN侧接收到的数据要通过MVB传输,就需要按照一定的格式把CAN帧中的数据组合成MVB帧的数据格式;同样,从MVB侧接收到的数据要通过CAN传输,也需要按照一定的格式对MVB帧中的数据进行分帧处理。另外,为了实现透明传输,还需要把MVB侧的过程数据的数据集与CAN侧11位标志符对应起来。
本文采用的方案是建立一种规范的方式来定义MVB端的MVB各种变量的含义,如所在端的端口地址、长度、以及变量在数据集中的偏移量
等。而后再将这些信息按照一定的规则和CAN总线侧的帧的标识符等信息对应成一个表格,这样,在CAN侧的数据接收就可以借助这个表格来
完成。这样做的优点在于把一些必要的信息(位偏移、长度等)按照约定的形式来实现共享,因而不再需要在数据集中分出空间来传输一些(包
括长度和偏移等)信息。本文把表格定义为应用层转换表(inbus-to-outbus或者out-to-inhus)。这里的端口指的是一种既可以被总线访问,又可以被应用处理器访问的存储器,它在MVB中是用来寻址的,数据的发送是通过应用将数据放入端口,数据的接收则是从端口中取数据放到应用中去。至于端口与端口间的数据拷贝,则是通过主轮询方式来实现的。当主节点轮询到需要发送数据的端口(源端口)时,便会产生从源端口到宿端口(数据接收端口)的数据拷贝。数据集在MVB中其实就是一般的纯数据,之所以称它为集,主要是因为MVB中一帧的数据较长,通常我们把多个变量的信息放在一个集中(一个帧中1来传输,这样做较为经济。



评论


相关推荐

技术专区

关闭