一种多协议的嵌入式总线集成器的设计与研究-新品速递_第1页
一种多协议的嵌入式总线集成器的设计与研究-新品速递_第2页
一种多协议的嵌入式总线集成器的设计与研究-新品速递_第3页
一种多协议的嵌入式总线集成器的设计与研究-新品速递_第4页
一种多协议的嵌入式总线集成器的设计与研究-新品速递_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑一种多协议的嵌入式总线集成器的设计与研究-新品速递由于工业现场总线在工业控制、智能仪器仪表、数据采集等方面得到了广泛的应用,因此对于总线集成的需求也应运而生。不同种类的现场总线协议侧重于各自的应用领域,导致基于各种现场总线的产品由于协议的不同而无法相互通信。而一些传统的总线集成方法采用总线桥级连的方式来完成协议之间的通信,存在通信延时大、稳定性差、节点通信困难等缺点。针对以上问题,本文提出一套总线集成器的设计方案。该系统同时支持LonWorks、PPI、CANOpen和TCP/IP协议,C8051F120作为主控制芯片,采用模块化结构,提供实时监测数据功能,具有成本低、实时性高、可移植能力强等特点,有较高的组态性和灵活性[1~2]。1系统总体设计与工作流程

1.1系统的总体设计系统结构框图如图1所示。C8051F120是整个系统的主控制芯片,负责对数据的处理和交换,包括通过RTL8019与以态网的通信,通过UART口与PPI总线通信,通过RS232口与LonWorks总线通信以及和CAN总线控制器SJA1000通信等。CAN模块和LON模块分别完成对CAN和LON数据的收发处理。一方面,系统分别作为LonWorks、PPI、CANOpen总线的一个节点,完成相应通信协议的通信及数据解析;另一方面,系统又要能够完成各总线之间的数据转发与共享。同时,为了支持远程监控能力,系统必须提供以太网接口以支持Internet功能。为了在现场提供监测环境,系统设计了人机界面[3]。

1.2各模块工作流程主控制芯片C8051F120与RTL8019之间的接口是通过并行方式扩展的,为避免RTL8019A在C8051F120上的映射地址空间与C8051F120内部的8KBRAM地址空间(0X0000~0X3FFF)重迭,扩展的外部设备被放到端(0X8000~0XFFFF),并采用非复用方式连接。模块中还包括RS232与RS485之间的转换。SN75LBC176是RS485差分总线收发器芯片。RS232数据由TX0通过光隔传送到SN75LBC176的发送端,同时驱动发送控制端,数据就由SN75LBC176发送到RS485总线。当SN75LBC176接收数据时,数据传送到RS232的RX0端。这样就完成RS485到RS232的转换。在系统中,为了提供人机交互的功能,设计了T6963C点阵式液晶图形显示控制器,在设计时,需要用一根地址线来实现液晶的数据通道和指令通道的区分。T6963C外接114x64的液晶显示屏,可以提供监测数据显示的实例。CAN总线模块由SJA1000、82C250、6N137等芯片组成。SJA1000是并行接口的CAN控制器。82C250是CAN控制器接口芯片。当C8051F120要向某节点发送数据时,它向SJA1000的一些缓冲器写数据和命令。数据通过SJA1000处理后,合成CAN帧格式,通过6N137至82C250,由82C250的差分端CANH和CANL传送到物理总线。外部节点发送过来的数据通过82C250经光电隔离器6N137后被SJA1000接收,存放在SJA1000相应的寄存器中。C8051F120就可以读取这些CAN帧格式数据。LON模块由MCl43150、FTF-10A、MC145407以及外扩SRAM储存器IS61C256AH-15N和外扩Flash存储器AT29C512组成。MC143150是LonWorks控制芯片,含有Lontalk协议的固态软件,主要用于Lonworks数据的处理。FTT-10A是LonWorks收发器,它是一种变压器耦合收发器,支持网络的自由拓扑结构,作为LON网的网络介质的接口。MC145407是电平转换芯片,负责MC143150与RS232之间的电平转换。当C8051F120要向MC143150发送数据时,C8051F120把数据发送到串口缓冲区,通过MC145407将I/O引脚输入的TTL电平和输出的CMOS电平转换为EIA232C电平。MC143150收到数据信息后,将数据读入储存于MC143150的缓冲区中,然后由MC143150打包为LonWorks网络变量,通过不同节点、相同类型的网络变量的互联,即可实现LON节点之间的数据传送。另外,还外扩SRAM储存器IS61C256AH-15N和Flash存储器At29C512,让用户能编制使用较大的程序。

2软件设计

2.1系统的分层结构整个系统采用分层方式完成各协议间的通信。系统分为硬件驱动层、协议层及其应用层,如图2所示。

由于下层模块只向上层提供一个软件接口,屏蔽了下层的具体实现细节。上层软件只有通过该接口才能与下层软件发生联系,这样就保证了各层之间的独立性。系统根据硬件接口、总线协议的不同,分为三个大的分层功能模块,它们分别是LonWorks模块、PPI模块、CANOPEN模块。这些模块又各自提供了硬件接收缓冲区、硬件发送缓冲区、协议接收缓冲区、协议发送缓冲区[4-5].

2.2软件实现的框架系统的软件分为系统初始化模块、系统配置模块、协议通信总调度模块、三个协议实现模块及硬件驱动模块。它们分别对应系统软件的不同分层。其中,系统配置模块、协议间通信总调度模块为应用层程序。协议实现模块(LonWorks协议模块、PPI协议模块、CANOpen协议模块)为协议层程序。硬件驱动模块为硬件驱动层程序。其流程图如图3所示。

系统配置模块主要完成系统的配置。它包括总线各端口是配置为主模式还是从模式、各通信协议的波特率等。系统可以通过两种方式配置:一种为硬件方式配置,另一种是通过互连网进行软件配置。协议间通信总调度模块主要是驱动不同协议之间进行相互通信。各总线协议的格式解析分别由相应的协议模块完成。硬件驱动模块主要完成把各硬件缓冲区中的数据发送到总线,同时把从总线接收来的数据存放到协议缓冲区中。

2.3缓冲区结构本系统的缓冲区采用改进的循环队列结构,采用了三个指针Bp.In、Bp.Out、Bp.Try。其中,Bp.In是队头指针。当队列接收一数据时,如果队列缓冲区尚有空间,则数据入队,同时Bp.In加1。Bp.0ut是队尾指针。当数据要出队时,如果队列缓冲区非空,则Bp.Out加1。队列缓冲区空或满的判定方法可以用下面的伪C语言描述:if(Bp.In++==Bp.Out){队列缓冲区已满};//如队头加1等于队尾指针,则//表示该队列已满if(Bp.0ut==Bp.In){队列缓冲区已空};//如果队尾指针赶上队头则表示//该队列已空Bp.Try是为通信时重发而准备的。当要发送数据时,Bp.Try向前移动(Bp.Try++),但Bp.Out不动(数据不出队)。当Bp.Try=Bp.In时,表示队列缓冲区已没有数据要发送。如果要求数据重发,仅仅把Bp.Try重新指回Bp.Out(Bp.Try=Bp.Out)再次发送。只有当发送成功时,才允许数据出队(Bp.Out=Bp.Try)。由于发送数据的多少由Bp.Try决定(不一定把队列缓冲区数据都发送完),这样给数据的发送提供了极大的方便。2.4硬件缓冲区系统要发送数据时把发送协议缓冲区的数据拷贝到发送硬件缓冲区,并驱动发送后退出。硬件发送缓冲区中的数据是由发送中断自动完成的。硬件发送中断驱动完数据发送就退出。当硬件发送完数据后就会产生中断标志并重新进入中断,重复上面的过程直到数据发送完。同样,发送中断只负责发送完硬件发送缓冲区中的数据而不关心这些数据代表的意义。中断程序流程图如图4所示。2.5各总线协议间的通信方法各总线协议间通信是采用周期轮询方式下的实地址共享。其基本思想就是系统定时地由配置为主模式的端口向其对应总线的每个从机发送请求读数命令包。从机接收到命令后就把它的数据传送给主机(总线集成器)。主机把接收到的数据存放在对应的协议地址中。当配置为从机的端口所对应的总线上的主机向总线集成器请求数据时,总线集成器只是简单地把前一个周期轮询的数据应答过去。由于轮询总线的周期比较短,因此应答的数据稍微滞后。但对总线采集的数据的真实性影响不大。

下面以图5中CANOpen总线的节点B向LonWorks节点A请求数据为例来说明这种方式的通信过程。首先,系统周期性地改变从机号、通信命令、通信状态,向LonWorks所有的从机请求数据,从机应答的数据存放在其协议地址中。然后CANOpen主节点B向总线集成器请求LonWorks总线A节点中的数据。,总线集成器收到该命令,把刚采集到的协议地址上的值传送给节点B。这通信至此结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论