您的位置 首页 芯闻

DSP与PC机串行通讯在减摇水舱实验台架控制系统中的使用

摘 要:针对TI公司的TMS320LF2407,在详细描述其串行通信接口和模块的基础上,结合减摇水舱试验台架控制系统,介绍了实现DSP与PC机串行通信的设计方法,并给出了相关的框图和程序。1 引言TM

摘 要:针对TI公司的TMS320LF2407,在详细描述其串行通讯接口和模块的基础上,结合减摇水舱实验台架操控体系,介绍了完成DSPPC机串行通讯的规划办法,并给出了相关的框图和程序。

1 导言

TMS320LF2407是美国TI(Texas Instruments)公司专为数字伺服操控和嵌入式操控体系而推出的一种低功耗、高性能16位定点DSP芯片。经过把高速的数字信号处理器内核和功用强大的片内外设集成在一起, DSP成为传统的微操控单元和多片规划体系的一种抱负替代品。

在减摇水舱实验台架操控体系作业过程中,需求实时修正DSP中操控器参数等变量,因此怎么完成PC机与DSP的牢靠通讯成为一个重要问题。串行通讯具有衔接简略、运用灵敏便利、数据传递牢靠等长处,在工业监控、数据收集和实时操控体系中得到了广泛运用。因此,本体系中选用了串行通讯进行参数传送。

本文根据减摇水舱实验台架操控体系,规划了一种完成DSP与PC机串行通讯的计划。

2 减摇水舱实验台架操控体系

减摇水舱是减小船只横向摇晃的重要减摇设备之一,对减摇水舱除了进行理论研讨外,树立减摇水舱的实验设备是对减摇水舱进行研讨的重要手法。减摇水舱实验台架是研讨和规划减摇水舱的重要实验设备,它能够模仿实践舰船在波浪中的运动,研讨水舱的运动、操控规则,并可测得其减摇作用。

为了使水舱实验台架能够模仿实船在波浪中的运动并研讨水舱的实践作用作用,有必要有一套能够模仿波浪横摇力矩的力矩伺服体系。因为波浪横摇力矩幅值和频率改变很快,对力矩伺服体系的要求较高,所以实验台架选用电液力矩伺服体系。减摇水舱实验台架体系如图1所示。


图1 减摇水舱实验台架体系框图

在减摇水舱实验台架操控体系中,选用PC机和DSP的主从式结构。PC机作为上位机,供给波浪横摇力矩信号、对一些传感器收集得到的数据进行显现,而DSP作为下位机,完成对减摇水舱实验台架电液伺服体系的实时操控。其输出电压信号经伺服放大器操控流量电液伺服阀,由伺服阀操控摇摆油缸,由液压油缸驱动实验台架体系,摇摆油缸输出的波浪横摇力矩由传感器检测送至DSP构成闭环操控回路。

3 TMS320LF2407及串行通讯接口(SCI)

3.1 TMS320LF2407简介

TMS320LF2407除了具有TMS320系列DSP的基本功用,还具有一些合适运用于数字伺服操控的特色。选用高性能静态CMOS技能,使得供电电压为3.3V,降低了操控器的功耗,而且高达40MIPS的履行速度使指令周期缩短到25ns,进步了操控器的实时操控能力。TMS320LF2407片内有高达32K 16位的Flash程序存储器,544字的双端口RAM(DARAM)和2K字的单口RAM(SARAM)。TMS320LF2407的片内外设十分丰富,包含两个事情管理器模块、10位A/D转化模块、看门狗定时器、CAN现场总线接口、根据锁相环(PLL)的时钟发生器、PWM信号通道、串行外设接口(SPI)、串行通讯接口(SCI)。TMS320LF2407供给的片内外设资源使得数字伺服操控运用中所需运用的外围芯片大大减少了,为运用体系的规划供给了便利

3.2 串行通讯接口(SCI)

串行通讯模块的寄存器是8位的,而且可编程。串行通讯接口(SCI)支撑DSP和其他运用规范NRZ(非归零)格局的异步外设之间的异步串行数字通讯。SCI模块会对接纳到的数据进行测验,如接连测验、奇偶性、超时以及帧过错测验等,以保证数据的完整性。可编程1—8位数据长度和1—2位中止位。SCI模块有双缓冲的发送器和接纳器,每个都有独立的使能位和中止位,两者可独立作业,也可一起在全双工形式下作业,而且发送和接纳操作均可经过中止和查询两种办法来进行。在该模块中,经过对一个16位波特率挑选寄存器编程,可获得超越65000种不同的波特率。

在TMS320LF2407与其他异步外设的串行通讯中,对SCI模块的操控、波特率和字符格局的挑选、操作办法和通讯协议的挑选、中止优先级的挑选和使能等都是经过对相关寄存器编程来完成的。

4 本体系中串行通讯规划办法及协议

SCI有两种多处理器协议,即闲暇线多处理器形式和地址线多处理器形式。这些协议答应在多个处理器之间进行有用的数据传输。在本体系中,选用闲暇线形式。在此形式下,当接纳到数据块起始信号后,串行通讯接口被唤醒。处理器辨认下一个串行通讯接口中止。中止服务程序将接纳到的地址与自己的地址进行比较。假如该CPU正在被寻址,则中止服务程序铲除SLEEP位,并接纳数据块中剩下的数据。假如该CPU不被寻址,则SLEEP位仍坚持置位。这样就答应CPU持续履行它的主程序而不被SCI所中止,直到检测到下一个块的起始信号。

DSP接纳和发送数据能够选用查询或中止两种形式来完成。本体系中选用中止办法来接纳PC机所传来的参数,这儿首要介绍该形式下数据接纳和发送的详细办法。TMS320LF2407串行通讯接口模块的数据接纳和发送均有其独立的外设中止向量,并可运用高优先级或低优先级,中止服务程序可经过查看外设中止向量寄存器的值来转入相应的接纳或发送中止处理程序。

在串行通讯中,两边有必要运用相同的波特率。SCI运用一个16位波特率挑选寄存器可获得65000种不同的可编程波特率,波特率由体系时钟SYSCLK频率和波特率挑选寄存器决议,不同通讯形式下的串行通讯接口波特率计算办法如下:

BRR=1到65535时

SCI异步波特率=

BRR=0时

SCI异步波特率=

(BRR为波特率挑选寄存器的十六位值)

在本体系的串行通讯过程中,波特率设为9600bit/s,八位数据位,一个中止位,奇校验。为了完成通讯,PC机与TMS320LF2407之间有必要选用相同的通讯协议。

5 串行通讯硬件接口电路及软件编程

5.1 硬件接口电路

PC机串行口运用的是规范RS-232-C电平,低电平“0”在+5V~+15V之间,高电平“1”在-5V~-15V之间。而TMS320LF2407的电源为3.3V,低电平“0”在+0.4V~+0.8V之间,高电平“1”在+2.4V~+2.8V之间。为了使二者电平匹配,在DSP与PC机之间有必要进行电平逻辑转化,本体系中选用的是MAXIM公司的MAX232集成芯片。详细硬件接口电路如图所示。

图2 DSP与PC机串行通讯硬件接口图

DSP中通讯程序规划

DSP的SCI模块运用中止来接纳PC机所传送来的参数,供操控算法主程序调用,DSP中串行数据接纳流程图如图3所示。

图3 DSP串行数据接纳流程图

DSP接纳的数据为十六位,所以需求对高八位和低八位别离进行接纳,高八位左移八位加上低八位,便是所要的十六位数据,接纳的数据顺次保存在首地址为4002h的接连单元中。下面为SCI模块初始化和接纳中止两部分的汇编语言源程序。

SCI初始化程序如下:

LDP #0E1h

SPLK #0003h, MCRA

; 选中SCI输入输出引脚

LDP #0E0h

SPLK #27h, SCICCR

; 1个中止位,八位数据,奇校验,

; 闲暇线办法,制止自测验

SPLK #0003h, SCICTL1

; 答应TX,RX和内部SCICLK

; 制止RXERR,SLEEP,TXWAKE

SPLK #0002h, SCICTL2

; 答应RX中止,制止TX中止

SPLK #0002h, SCIHBAUD

SPLK #0008h, SCILBAUD

; 40MHz SYSCLK下,波特率为9600bps

SPLK #0023h, SC%&&&&&%TL1

; 抛弃复位SCI

LAR AR0, #SCITXBUF

LAR AR1, #SCIRXBUF

; 载入两个缓冲器的地址

LDP #0

SPLK #04002h, RTB

; 界说接纳数据的首地址

SPLK #01h, NUM

; 设置判别高8位仍是低8位的变量

SPLK #0, RTD

; 接纳数据寄存器

串行数据接纳中止程序如下:

SCI_INT:

LDP #0

LACC #02h

SUB NUM

BCND high, GT

; 判别是否为高8位数据

MAR *, AR1

LACC *, AR1

ADD RTD

SACL RTD

LACC RTB

TBLW RTD

ADD #1

SACL RTB

SPLK NUM

high:

; 读高8位数据

MAR *, AR1

LACC *, AR1

SACL RTD

LACC RTD, 8

SACL RTD

SPLK #02h, NUM

PC机中通讯程序规划

在PC机中,串口通讯的程序是用Visual Basic 6.0开发的,调用的是Microsoft 公司供给的 MSComm 控件。

MSComm 控件为运用程序供给了经过串行接口收发数据的简洁办法,在VB、VC、Delphi等语言中均可运用。它供给两种处理通讯的办法:事情驱动办法和查询办法。在这儿咱们选用的是事情驱动办法,这种办法是处理串行端*互作用的一种十分有用的办法,其长处是程序呼应及时,牢靠性高。在程序中能够使用该控件的OnComm事情来捕获并处理发送和接纳等通讯事情;OnComm事情还能够查看和处理通讯过错。MSComm 控件的首要特点及其功用如表1所示。

表1 MSComm 控件的首要特点及功用

在上位机的程序规划中,首要进行串口参数初始化设置:

Private Sub Form_Load()

If MSComm.PortOpen=True Then

MSComm.PortOpen=False

End If

′封闭串行端口

intPort=1

serSet=″9600,O,8,1 ″

MSComm.CommPort=intPort

′挑选串行端口

MSComm.Settings= serest

′设置波特率9600bps,一个中止位,八个数据位,且为奇校验

MSComm.OutBufferSize=512

′设置发送缓冲区巨细

MSComm.PortOpen=True

′翻开串行端口

串口通讯运用程序的界面如图4所示。


图4 上位机通讯程序界面

6 定论

在减摇水舱实验台架操控体系中,选用PC机和DSP的主从式结构。为了进步实时操控的作用,需求进行上位机与下位机之间的串行通讯。本文规划的串行通讯办法,简洁牢靠,而且在实践运用中取得了杰出的作用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/xinwen/284762.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部