DSP与PC间的数据通讯

时间:2020-10-13 09:12:53 理工毕业论文 我要投稿

DSP与PC间的数据通讯

摘要:DSP由于具有高性能和灵活可编程的优点而得到广泛的应用。文章给出了用PC机作主机,DSP作从机来实现DSP与PC机间有效、可靠通讯的实现方法。同时通过一个数据传输程序的例子来详细阐述如何使用VB6.0专业版作为开发工具,并利用DSP中的SCI(Serial Communication Interface)模块来实现DSP与微机间的数据传递方法。

1 引言

TMS320C24x是美国TI(德州仪器)公司专为电机控制(DMC)应用而推出的一种低价格、高性能16位定点运算DSP。该器件将高性能的DSP内核和丰富的微控制器外设功能集于一身,从而为控制系统应用提供了一种理想的解决方案。TMS320C24x的串行通信接口(SCI)支持CPU与其它采用标准NRZ(不归零)格式的异步外设间的数字通信。异步模式使用两条线来与诸如采用RS-232-C格式的终端和打印机等众多标准器件进行连接,因此,利用DSP中的SCI模块来与微机间的指令和数据传递便可实现微机对生产现场的检测和控制。

VB6.0是运行于Windows上的交互式可视化集成开发环境,利用其强大的通讯控件(Microsoft Comm ActiveX Control6.0)可方便地实现PC机与DSP间的通信。

2 DSP部分

该DSP控制器的串行通讯接口由发送和接收两大部分组成,其与串行通讯相关的引脚如下:

SCIRXD:串行通讯接收引脚,也可用作普通I/O端口。

SCITXD:串行通讯发送端,也可用作普通I/O。

该DSP的系统时钟由SYSCLK设定,其中SYSCLK为CPUCLK/2?CPUCLK为20MHz。

通过TMS320C24x中的一个16位波特率选择器可获得超过65000种不同的可编程波特率。波特率的`设置与SCIHBAUD和SCILBAUD有关,其具体算式如下:

BRR=SYSCLK/(SCI异步波特率×8)-1,

其中SYSCLK为10MHz。本软件采用9600的波特率。可编程数据字长从1位到8位,并可由SCICCR控制寄存器来编程数据格式。本软件采用8位数据字长。PC与DSP的通讯采用中断方式,可避免DSP的CPU反复查询接收与发送缓冲区满标志,从而提高设备利用率,保证其具有足够的实时性。相应的中断设置可由SCICTL2来完成。

串行通讯接口数据无论是接收还是发送,都采用NRZ(不归零)格式。本软件采用8位数据为一帧(一个接收和发送的单位)的格式。

在串行口初始化完成后,只需对数据发送缓冲器SCITXBUF和数据接收缓冲器SCIRXBUF进行操作即可。如果要发送数据,无论何时,只要把数据写入到SCITXBUF就会产生发送中断。而加入起始位、停止位、校检位数据以及在波特率规定的节拍下移位到发送引脚SCITXD/IO等工作则可由串行通讯SCI模块本身来完成。如果要接收数据,只要DSP接收到完整的帧就会产生中断,然后只要在中断程序中把SCIRXBUF的内容读出即可,因为对于引脚SCIRXD/IO移位来的信息,串行通讯SCI模块本身即可自动去掉起始位、停止位和校检位,然后将数据放到SCIRXBUF中。

对于单机通信,可不使用SLEEP设置,而使用空闲线多处理机模式,并采用中断方式在主程序中完成初始化。同时可设置一个变量用于辨别是否给PC机发数据。