首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
基于TMS320LF2407A的双CAN口同步通讯板设计
来源:本站整理  作者:佚名  2009-10-19 12:43:18




    (2)TTCAN通讯模块负责与TTCAN网络通讯,在同步信号控制下按时序要求向TTCAN网络发送数据和接收来自PLC的随机CAN数据:
    (3)数据缓冲模块负责PLC和TTCAN网络数据的同步,完成必要的通讯处理任务。图4为各模块之间的协同工作流程。


4.1 CAN随机通讯模块软件
    首先初始化TMS320LF2407的SPI接口,然后设置MCP2515 CAN的通讯参数完成模块的初始化。函数SPI_WRITE_COMMAND(unsigned int ADDRESS,unsigned intDATA)更新MCP2515的指定寄存器中的内容;函数SPI_READ_COMMAND (unsigned int ADDRESS) 读取MCP2515指定寄存器;函数RTS_123(unsigned int NUM)从数据缓冲区提取数据按指定通道数据发送给PLC;函数RANDOM_RCV()将来自PLC的数据经查询接收后存放到数据缓冲区。通过以上函数实现同步通讯板与PLC CAN口的数据收发功能。
4.2 TTCAN通讯模块软件
    该模块由甬数CAN_INIT()完成对TMS320LF2407内部CAN控制器的初始化及通讯参数设置;函数dsp_can_send(unsigned int IDH,unsigned int IDL,unsigned int*data1)从数据缓冲区提取数据向TTCAN网络发送;接收中断服务函数CAN_RCV_ISR()从TFCAN网络接收数据并存入数据缓冲区;而同步信号接收函数sytem_syn()实现与TTCAN网络的同步以及发送时隙的控制。
4.3 数据缓冲模块软件设计
    该模块是双CAN口同步通讯板的核心,其目的就是确保来自PLC的随机数据经该模块后可以实现向,TTCAN网络发送的数据是在同步信号控制下,按指定时隙发送,来自TTCAN网络的数据经该模块做必要的解析后转发给PLC。为此设计两个循环队列缓冲区mcp2515_rcv_buffer和dsp_rcv_buffer实现PLC数据与TTCAN网络同步。实现方法如下:
    (1)通讯板接收到PLC数据后,将其数据存放到mcp2515_rcv_buffer缓冲区中,然后MCP2515指示索引 mep2515_rcv_index加1;DSP CAN同步数据发送时按索引dsp_send_index的值从mcp2515_rcv_buffer缓冲区对应位置提取发送数据,然后该索引值加1。当 (mcp2515_rcv_index+1)%FIFOMAX==dsp_send_index,表明MCP2515接收缓冲队列已满(FIFOMAX缓冲区最大长度定义);dsp_send_index==mcp2510_rcv_index,表明MCP2515缓冲器已满。
    (2)同步CAN口接收的数据存放到dsp_rcv_buffer缓冲区,然后指示索引dsp_rcv_index加1;MCP2515数据发送使用索引 mcp2510_send_index在循环缓冲区dsp_rcv_buffer提取对应的数据发送给PLC CAN。当mcp2510_send_index==dsp_rcv_index,表明DSP接收缓冲区空;(dsp_rcv_index+1)% FIFOMAX==mcp2510_send_index表明DSP缓冲队列满。

5 结束语
    该双CAN口同步通讯板在连续600 h、不同数据流量的测试中表现良好,无任何异常。现已成功应用于某型防空武器火力控制分系统。实践表明该设计能够很好扩展PLC在防空武器系统TTCAN 网络上的应用,极大提高了火力控制系统在战场条件下的可靠性和可维护性,符合模块化设计总要求。同时,该双CAN口同步通讯板也可广泛用于事件触发数据与 TTCAN网络的接入应用。

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:134,796.90000 毫秒