新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 如何设计基于DSP的分析仪器CAN网络通信系统?

如何设计基于DSP的分析仪器CAN网络通信系统?

作者:时间:2018-08-02来源:网络收藏

图3 智能节点程序流程图

本文引用地址:http://www.eepw.com.cn/article/201808/385076.htm

智能节点端CAN模块初始化(流程图如图4所示[4])主要包括三个方面的内容:波特率的配置、邮箱分配(包括邮箱方向、标识符分配等)、中断寄存器初始化。波特率和标识符的分配非常重要,是通信成功的关键所在。F2812内置CAN控制器使用位时序配置寄存器CANBTC中的BRP、TSEG1和TSEG2来设置波特率,计算公式为:SYSCLK/(BRP+1)×[(TSEG1reg+1)+(TSEG2reg+1)+1],此处我们采用的晶振频率为30MHZ,系统倍频为1/2,BRP=9,TSEG1=10,TSEG2=2,因此波特率为100Kbps。标识符就根据表1的描述来确定。


图4 智能节点CAN模块初始化流程图

中断程序中主要对从节点传送的数据进行处理,然后转存到主节点的发送邮箱中,等待发送给上位机。在进行数据处理的时候要把接收邮箱中的数据赋给中间变量,处理完后再把中间变量的值赋给发送邮箱,这个过程中要注意借助指针来完成。如下所示:

Mailbox = ECanaMboxes.MBOX0 + n;   // n为邮箱号

receiveboxl = Mailbox->MDRL.all;

receiveboxh = Mailbox->MDRH.all;

3.2上位机端

PC机端主要完成对各分析平台分析结果的采集、处理,采用适合快速开发的面向对象高级语言VB来编写。KPCI-8110CAN适配卡提供.dll驱动和.lib库函数,通过在VB程序中调用相关的驱动函数就可以实现CAN适配卡的配置和数据的读写。数据的处理主要完成对各组分检测结果中干扰背景气的去除以及单位换算等工作。

上位机在接收主节点传送过来的数据时,在SJA1000 CAN控制器采用单滤波器模式,只接收在界面中输入的组分的数据。滤波规则为:验收代码位(ACR.7-ACR.0)和信息识别码(标识符)的高8位(ID.10-ID.3)相等,且与验收屏蔽位(AMR.7-AMR.0)的相应位相或为1[5]。例如,在上位机接收界面中输入组分名“co2”,运行程序时就会把“co2”对应的一组验收代码值和验收屏蔽值初始化为验收滤波器的预设值。为了具有通用性,把验收屏蔽码设为ACR xor HFF。

由于SJA1000CAN控制器每个地址存储8位的数据,而F2812内置CAN控制器每个地址存储16位的数据而且标准数据帧的标识符也不是从字节的起始位开始的,所以定义标识符的时候要按照不同控制器的要求来定义。例如F2812内置CAN控制器定义数据帧标识符为1144 0000(bit28-bit18为标识符位),SJA1000独立控制器对应的标识符应为8A20(bit15-bit5为标识符位)。.

下图为自己开发的接收界面成功接收到数据:


图5 上位机接收界面

4 结论

在试验中得到了良好的效果,满足了多组分分析仪器的设计要求。数字化在线分析仪器作为网络神经元,有机地融入网络系统,实现信息实时传输、远程故障诊断是分析仪器的发展趋势,也是工业化和信息化的发展趋势。


上一页 1 2 下一页

关键词: DSP CAN网络 通信系统

评论


相关推荐

技术专区

关闭