微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于DSP 技术和CAN总线的多节点远程数据传输系统

基于DSP 技术和CAN总线的多节点远程数据传输系统

时间:05-06 来源:互联网 点击:

进行初始化时,注意要先设置CAN模块主控制寄存器MCR 中的改变配置请求位为1 ,即CCR = 1 ,并判断全局状态寄存器GSR 中的改变配置使能位CCE 是否为1 ,如为1 则可进行下面的初始化工作。而在完成对位定时器的初始化后需将CCR 位清零以进入正常工作模式; 在配置BCR1 和BCR2 时要按照如下公式对CAN 控制器波特率进行设定:

  波特率= ICLK/ [ ( BRP + 1) + BitTime ]

  式中: ICLK为CAN 控制器的时钟频率,即在SCSR1 中充定的DSP 的系统频率; BRP 为波特率预分频位,决定着CAN 控制器的时间片TQ , TQ = ( BRP + 1) / ICLK; BitTime = ( TSEG1 + 1) +( TESG2 + 1) + 1 , TSEG1 为时间段1 ,可编程为3~16个TQ时间片。TSEG2 为时间段2 ,必须小于或等于时间段1。

  4. 1. 2  初始化邮箱

  对邮箱初始化即是对邮箱中的有关寄存器进行初始化,主要用来设置邮箱接收或发送报文的标识符,发送的是远程帧还是数据帧,并对发送的数据区赋初值。步骤为:禁止邮箱工作,即向邮箱方向/ 使能控制寄存器MDER 中的邮箱使能位MEn( n = 0~5) 写0 ;设置MCR 寄存器中数据域改变请求位为1 ;配置邮箱的内容;返回正常模式;使能邮箱。

  4. 1. 3  邮箱信息的接收和发送

  在做完以上初始化工作后, 就可以转入邮箱的收发程序。为了大量的数据能在系统网络上连续传输, 在内存设置了2个数据缓冲区(读和写2 个数据区) , 分别用来存放要发送和接收的数据。用邮箱发送时, 将准备发送的数据从写数据存储区写到发送邮箱的数据区, 然后使能发送邮箱并设置TCR寄存器中发送请求位为1 , 判断发送应答信号和发送中断标志位, 在成功发送之后再将发送中断标志位和发送应答位清除。

  

  图4  数据发送流程图

  对于一个接收事件来说,由于每个CAN 节点接收数据是根据检测网络上数据帧的ID 与接收邮箱中初始化设定的报文的设定ID 是否相符来决定该节点是否接收此数据,因此在接收事件中,要设置接收邮箱报文的标识符及标识符相关的局部屏蔽寄存器(LAM) 。然后判断接收信息悬挂位RMPn 或接收中断标志位MIFn 是否置位,如果位说明邮箱成功接收信息,将接收的数据转移到读据缓冲区,然后复位接收中断标志位和接收信息悬挂位。

  

  图5  数据接收流程图

  4. 2  SCI 串行通信程序设计

  串行通信的程序分为DSP 的串行收发和PC 机的串行收发两个。对于PC 机的串行收发采用了标准串口通讯程序。TMS320LF2407 串行通信的软件设计可以采用查询和中断两种方式,设计中采用了中断方式接收数据,并设置软件发送标志位来查询发送的方式。程序分为主程序和中断服务程序2 个部分。

  在主程序中对SCI 异步串口进行初始化(包括操作模式、波特率、字符长度、奇偶校验位、停止位位数、中断优先级和使能控制等信息) 。主程序设置了软件发送标志位,并不断查询此位,在其置位时发送数据。中断服务程序中,当需要上传数据时,在中断程序或其他的子程序中置发送标志位,由主程序通过查询该标志位来控制发送数据;对于接收数据,则在中断服务程序中,将接收到的数据地址与相应软件设置的地址进行比较,采用地址位唤醒模式实现与上位机通讯。

  在串行通信中,时钟和波特率的同步是十分重要的,在编程中,考虑到所用芯片的特性和实际应用需要,采用了系统时钟为20 MHz ,通讯波特率4 800 bit/ s 与RS - 232 进行通信。根据公式: SCI 异步波特率= SYSCLK/ [ (BRR + 1) ×8]

  来确定波特率选择寄存器BRR 的值。

  值得注意的是在串行通信设置中,串行通信控制寄存器SCICTL1 的SLEEP 位(上电时为1) 设置很重要,SLEEP 位为SCI休眠位,为1 时使能休眠方式,它的正确设置可以使得通信过程正确的响应中断,从而转移到相应的服务程序中。因此必须正确设置使得程序只有在检测到地址字节时被中断。而在中断程序中比较地址:若相同,则软件清除SLEEP 位,确保在收到每个数据字节都可产生中断;若不相同,则保持SLEEP 为1 以接收下一个地址。由于系统为多节点的通信,因此采用了地址位唤醒模式来正确控制各节点间的数据收发。在调试程序中为每个节点设置了2 个标识地址(如00H 和FFH) ,当收到00H时,DSP 发送数据,当收到FFH 时,DSP 接收数据。图6、图7 分别为串行主程序和中断服务程序的流程图。

  

  图6 串行通信主程序流程图

  

  图7 中断服务程序的流程图

  5  结束语

系统解决了野外作业时要求高稳定性的远程数据传输问题,可以在环境恶劣的情况下,多点采集数据,并将采集到的数 据及时处理传输

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top