![一种CAN总线-PROFIBUS-DP总线网关的实现方法-新品速递_第1页](http://file4.renrendoc.com/view/b31af0003920bb6ebf3cdb30a67783e6/b31af0003920bb6ebf3cdb30a67783e61.gif)
![一种CAN总线-PROFIBUS-DP总线网关的实现方法-新品速递_第2页](http://file4.renrendoc.com/view/b31af0003920bb6ebf3cdb30a67783e6/b31af0003920bb6ebf3cdb30a67783e62.gif)
![一种CAN总线-PROFIBUS-DP总线网关的实现方法-新品速递_第3页](http://file4.renrendoc.com/view/b31af0003920bb6ebf3cdb30a67783e6/b31af0003920bb6ebf3cdb30a67783e63.gif)
![一种CAN总线-PROFIBUS-DP总线网关的实现方法-新品速递_第4页](http://file4.renrendoc.com/view/b31af0003920bb6ebf3cdb30a67783e6/b31af0003920bb6ebf3cdb30a67783e64.gif)
![一种CAN总线-PROFIBUS-DP总线网关的实现方法-新品速递_第5页](http://file4.renrendoc.com/view/b31af0003920bb6ebf3cdb30a67783e6/b31af0003920bb6ebf3cdb30a67783e65.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑一种CAN总线—PROFIBUS-DP总线网关的实现方法-新品速递1引言在80年代中期,为了满足不同自动化领域的应用需求,出现了拥有不同技术特点的现场总线。每一种现场总线都有自己的应用领域,并且都力图拓展其应用领域,以扩张其技术垄断范围。但每种现场总线都以一个或几个大型跨国公司为背景,公司的利益与总线的发展息息相关。这些公司竞争的结果是多种总线协调共存。据不完全统计,目前国际上有200多种现场总线,而其中占据市场主流的现场总线有十几种[1]。现场总线的多样性,为总线设备用户提供了更多产品选择的同时,也为总线用户带了总线设备间兼容性问题。工厂在扩建,改建等过程中很可能会选用与原先现场设备总线标准不同的产品,这些设备由于使用不同的现场总线,彼此间不能实现数据共享,于是就降低了设备间功能互补的优点。因此针对多种总线共存的客观事实,探讨如何解决不同现场总线系统的互联有着重要的现实意义。本文主要研究PROFIBUS-DP[2]与CAN[3]两种总线的协议转换的原理,并设计出了一种网关实现了这两种总线的互联。
2方案设计
对于两个异构的现场总线,其数据链路层和应用层协议是截然不同的,要实现它们的互联,需要采用网关进行协议转换。协议转换在网关内是按分层逐次进行的。网关将现场总线设备1发送来的数据在不同的协议层次进行解包,终得到报文中的用户数据。然后再按照现场总线协议2逐层打包,然后发送到现场总线2中的设备。
网关(gateway)是用于实现数据链路层以上层的网络互联设备,它相当于一个协议转换器,可以是双向的,也可以是单向的,用来连接不同协议的网络。它不像网桥一样要求数据链路层和应用层的协议完全一致。
通常见到的现场总线网关是单CPU结构的,在这种结构里,CPU要完成两种总线信息的传输与控制,同时还要完成两种总线协议的转换工作,该方案CPU负担较重,控制复杂,软件采用多重嵌套。这里提出了一种基于双CPU结构的网关设计方法,系统中的两个CPU对两种总线协议的数据各自进行处理与控制,并将需要传递的信息放在双口RAM内,实现信息共享与传递,这种方案容易控制,软件简单,同时减轻了CPU的负担,增强了可靠性。
3系统的硬件设计系统的硬件根据功能可分为三大部分,一是CAN总线接口电路,完成CAN总线的数据收发与控制;二是PROFIBUS-DP总线接口电路,完成PROFIBUS总线数据的收发与控制;三是双口RAM接口电路,用来完成两种总线数据的交换。
3.1CAN总线接口硬件结构CAN总线接口的整体硬件结构如图1。电路主要由四部分所构成,微控制器89C52(1),独立CAN通信控制器SJA1000,CAN总线收发器82C250和高速光电耦合器6N137。
89C52(1)负责SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务,同时还负责与PROFIBUS总线接口侧的的数据交换,选择89C52(1)作为CPU的主要是因为它不仅与CAN控制芯片SJA1000兼容,而且内部集成8kflashRAM,可以满足系统的存储要求,不需要再外扩程序存储器。
SJA1000为CAN总线控制器。它是一种独立CAN控制器,是PHILIPS公司的CA82C200CAN控制器的替代产品,它在软件和引脚上都保持了与PCA82C200的兼容。它具有BasicCAN和PeliCAN两种工作方式,其中BasicCAN是与PCA82C200兼容的方式;PeliCAN是扩展特性方式,支持具有很多新特性的CAN2.0B协议。SJA1000的主要新功能有:标准结构和扩展结构报文的接收和发送;64字节的接收FIFO;标准和扩展帧格式都具有单/双接收滤波器含接收屏蔽和接收码寄存器;可进行读/写访问的错误计数器;可编程的错误报警限制;近的错误代码寄存器;每一个CAN总线错误都可以产生错误中断;具有丢失仲裁定位功能的丢失仲裁中断;单发方式当发生错误或丢失仲裁时不重发;只听方式监听CAN总线无应答无错误标志;支持热插拔无干扰软件驱动位速率检测;硬件禁止CLKOUT输出。SJA1000的AD0-AD7连接到89C52(1)的P0口,CS连接到89C52(1)的P2.7,P2.7为0的CPU片外存贮器地址可选中SJA1000,CPU通过这些地址可对SJA1000执行相应的读写操作SJA1000的RD,WR,ALE分别与89C52的对应引脚相连。
为了增强CAN总线节点的抗干扰能力,SJA1000的TX0和RX0并不是直接与82C250的TXD和RXD相连,而是通过高速光耦6N137后与82C250相连,这样就很好的实现了总线上各CAN节点间的电气隔离,其中光耦部分电路所采用的两个电源VCC和VDD完全隔离。另外82C250与CAN总线的接口部分也采用了一定的安全和抗干扰措施。82C250的CANH和CANL引脚各自通过一个5Ω的电阻与CAN总线相连电阻可起到一定的限流作用,保护82C250免受过流的冲击。CANH和CANL与地之间并联了2个30P的小电容,可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力,另外在两根CAN总线接入端与地之间分别反接了一个保护二极管,当CAN总线有较高的负电压时通过二极管的短路可起到一定的过压保护作用,82C250的Rs脚上接有一个斜率电阻。
3.2PROFIBUS-DP总线接口电路PROFIBUS-DP总线接口的硬件电路也由四部分所构成,微控制器89C52(2),PROFIBUS-DP通信控制器协议芯片SPC3,光耦HCPL7101和6N137,RS485总线驱动电路。图2为PROFIBUS-DP通信控制器到RS485总线驱动器的硬件电路图。
89C52(2)主要负责控制SPC3,实现PROFIBUS-DP总线数据的转换与共享。
SPC3已集成了PROFIBUS-DP物理层的数据收发功能,可独立处理PROFIBUSDP协议,另外SPC3内部还集成有1.5k的双口RAM,作为SPC3与用户程序之间的接口,并且AT89C52(2)可对SPC3内部RAM访问。
尽管SPC3已经集成了物理层的数据传输功能,但它不具备RS-485的驱动接口,因此添加了RS-485的驱动电路。
另外为了避免总线上的信号对电路的影响,在SPC3与RS485总线驱动电路之间采用光电隔离。TxD、RxD信号的隔离器件选用HewlettPackard公司的12M高速光耦HCPL710,RTS信号的隔离器件选用了6N137。
3.3双口RAM的接口电路两种总线数据的共享与传递是通过双口RAM实现的,系统里选用了器件IDT7130。它是高速的1K双口静态RAM。该器件提供两个独立的端口,分别有独立的控制、地址和I/O引脚,并允许独立的异步读写访问内存的任何地址,自动的电源管理特性由CE控制,允许芯片上的每一个端口电路进入一个非常低的电源模式。IDT7130的片内总线仲裁电路具有BUSY和INT两种总线仲裁方式。基于所采用的单片机型号,在系统里采用了中断仲裁方案,这种方式的工作原理是一个内存地址(邮箱或者信息中心)被指派给每个端口。左端口的中断标志被宣称当右端口写到内存地址3FEH时,左端口通过访问3FE内存地址清除中断。相似的,当左端口写内存地址3FFH时右端口标志被宣称,为了清除这个中断标志,右端口必须访问内存地址3FFH,系统里3FE和3FF两个单元的内容赋予新的内涵,即定义两个码0FFH和00H。其中0FFH代表发送命令要求对方传送数据,而00H代表发送的是对方所要求的数据。系统里两个CPU与双口RAM的连接如图3。双口RAM的剩余的存储单元被分为四大部分,其中0000H-00FFH这256个单元用来存储CAN总线上传来的数据或地址,并且相邻的两个单元用于存储一个CAN子站的数据信息;0100H-01F9H这250个单元用来存储PROFIBUS总线上传来的数据或地址,相邻的两个单元用于存储一个PROFIBUS子站的信息,另外03FCH单元用于存放CAN总线设备所要读的PROFIBUS站点的ID号,03FDH单元用于存放PROFIBUS总线设备所要读的CAN站点的ID号。
由图可知双口RAM在负责CAN总线通信的微处理器的映射地址为0x7C00H-0x7FFFH,在负责PROFIBUS总线通信的微处理器的映射地址为0x2C00H-0x2FFFH。
4系统软件设计网关的软件可分为两大部分,一部分用于负责CAN总线的数据通信,另一部分用于负责PROFIBUS总线的数据通信。
每侧的程序根据功能又可以分为三个子模块:协议芯片初始化程序,接受数据接受子程序,数据发送子程序。其中数据接受子程序考外部中断触发执行。下面以网关的CAN总线接口侧程序为例,列出程序流程图,PROFIBUS侧的接口程序与之相似,就不再赘述。
CAN总线侧的初始化与发送程序流程如图4:
因为SJA1000的初始化只有在复位模式下才可以进行,因此程序首先将SJA1000的中断屏蔽,使它进入复位模式,然后对它进行初始化。初始化内容主要包括工作方式的设置、接受滤波方式的设置、接受屏蔽寄存器和接受代码寄存器的设置、波特率参数设置和中断允许寄存器的设置等。SJA1000完成初始化设置后,再让它返回到工作状态,进行正常的通信任务。
在接受子程序里,系统以查询的方式接受CAN子站传送过来的数据,网关通过接受缓冲区数据区的个字节的内容判断接受的是真正的数据,还是发给PROFIBUS-DP站点的发送数据请求。如果数据区个字节是00H,则传送的是数据信息,于是根据ID查表求得该站所对应的存储单元,并将数据区的第二、三字节的内容存在该单元内,同时把ID放在7FFCH中,告诉对方发送数据的站点号;如果该字节内容是FFH,则说明是发送数据请求,数据区第二个字节存放的是被要求发送数据的站点号,将他放入7FFCH内即可。
CAN总线接口发送数据子程序流程图如图5:
上面的发送程序是由双口RAM的中断信号触发的,收到中断信号后,首先读取7FFEH单元的内容,将中断信号消除,然后根据该单元的内容,判断双口RAM内存放的是数据,还是被要求发送数据的CAN子站的ID号。如果7FFEH内容为00H,则说明所要发送到CAN子站的为正常的数据,于是将发送缓冲区的个字节设置为0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大门制作安装施工合同范本
- 房地产联合开发合同的范本
- 古建筑彩绘工程2024年版标准合同样本
- 2024年版采购流程优化及合同管理策略
- 2024年经典采购合同案例:原料采购明细
- 山东省广饶第一中学2025届高考冲刺押题(最后一卷)生物试卷含解析
- 安徽省二校联考2025届高三第二次模拟考试生物试卷含解析
- 事业单位劳动合同违约金赔偿细节2024版指南
- 河北省鹿泉一中等名校2025届高三第三次模拟考试历史试卷含解析
- 东北三省三校2025届高三二诊模拟考试生物试卷含解析
- 教育集团教育教学计划
- 变压器安装工程合同
- 2024-2030年中国苏打水市场消费前景与营销推广策略分析研究报告
- GB/T 44098-2024游泳课程学生运动能力测评规范
- 2024年广东省公需课《百县千镇万村高质量发展工程与城乡区域协调发展》考试答案
- 2024壬二酸科学祛痘消费者报告-质润x美丽修行-202406
- 学生参加自行车比赛安全承诺书
- 2024年反电诈知识培训考试题库(附答案)
- CJJ-T134-2019建筑垃圾处理技术标准
- 广东省智慧高速公路建设指南(2023年版)
- python程序设计教学教案
评论
0/150
提交评论