文档视界 最新最全的文档下载
当前位置:文档视界 › DSP与单片机之间串行通信的设计与实现

DSP与单片机之间串行通信的设计与实现

 CN4321258/TP ISSN10072130X 计算机工程与科学

COMPU TER EN GIN EERIN G&SCIENCE

2009年第31卷第5期 

 Vol131,No15,2009 

文章编号:10072130X(2009)0520132202

DSP与单片机之间串行通信的设计与实现3 Design and Implementation of the Serial Communications Between t he Microco nt roller and t he DSP

吴雄英1,2,秦开宇2,谢兴红1

WU Xiong2ying1,2,QIN K ai2yu2,XIE Xing2hong1

(1.成都理工大学信息工程学院,四川成都610059;2.电子科技大学自动化工程学院,四川成都610054)

(1.School of I nform ation E ngineering,Chengdu U niversity of T echnology,Chengdu610059;

2.School of Automation E ngineering,U niversity of E lectronics Science and T echnology of China,Chengdu610054,China)

摘 要:设计复杂双CPU系统的关键是两者之间的接口与数据通信问题。针对单片机89C51与TMS320L F2407A DSP构成的双CPU系统,本文提出了一种简单可行的串行通信方式。本文不仅介绍了两者之间的硬件连接示意图,而且完成了两者通信的初始化设置,并且给出了完整的串行通信的软件流程图。

Abstract:The key to designing a complex double2CPU system is the interface and data communications.This paper pro2 poses a simple and practical serial communication way aiming at the system which consists of a89C51microcontroller and a TMS320L F2407A DSP.This paper not only introduces the hardware connection diagram,but also completes the initializa2 tion settings of the communications,and gives a complete serial communication software flowchart.

关键词:串行;通信;DSP;单片机

K ey w ords:serial;communication;DSP;single2chip microcomputer

中图分类号:TN43文献标识码:A

1 引言

在许多复杂的DSP控制系统中不仅需要进行大量的高速数据运算,还涉及到诸多控制方面的问题。如果采用擅长数据处理的DSP来进行控制,势必影响它的数据处理能力。在这种情况下,通常会采用双CPU系统,用一片DSP芯片来负责数据的采集处理以及算法的实现,而用一片单片机来负责控制键盘以及L CD显示等。

设计双CPU系统的关键是两者之间的接口与数据通信问题。一般来说,MPU之间的通信方式有两种:串行通信和并行通信。

串行通信接口电路设计简单、容易实现,适合通信距离稍远、数据交换不多、传输速率要求不高的场合;并行通信接口电路设计稍复杂,时序配合要求严格,但传输速率高,适合通信距离短、传输速率要求较高的场合。本文要讨论的是单片机89C51与TMS320L F2407A DSP之间的通信,并提出了一种简单可行的串行通信方式。2 89C51与TMS320LF2407A串行通信的硬件设计

89C51单片机内部有一个功能很强的全双工串行口,可以同时发送和接收数据。它有四种工作方式,可以供不同场合使用。串行口有两个独立的接收、发送缓冲器SBU F,两者共用一个字节地址。串行口是可以编程的接口,可以通过指令对SBU F的读写来区别是对发送缓冲器还是接收缓冲器的操作。波特率由软件进行设置,通过片内定时/计数器产生。对串行口的初始化可以通过将控制字写入串行口控制寄存器SCON和电源控制寄存器PCON 实现[1]。

TMS320L F2407A DSP内部有串行外设接口SPI和异步串行接口SCI。SPI总线是一种三线(即时钟、发送和接收)同步总线,硬件功能很强。SCI是一个标准的通用异步接受/发送(UAR T)通信接口,支持DSP和其他使用标准NRZ(非归零)格式的异步外设之间的异步串行数字通信,

2313收稿日期:2008201203;修订日期:2008203224

作者简介:吴雄英(19802),女,湖北荆门人,讲师,研究方向为电子测量仪器。

通讯地址:610059四川省成都市成都理工大学信息工程学院电子信息工程系;Tel:139********;E2mail:wuxy@https://www.docsj.com/doc/cd18529590.html, Address:Depart ment of Electronic Information Engineering,School of Information Engineering,Chengdu University of Technology, Chengdu,Sichuan610059,P.R.China

数据的传送只需要两根线,在硬件电路方面更容易设计实现。在本系统中,选择的是SCI [2]。

TMS320L F2407A DSP 内部SCI 串行口的输入、输出均为3.3V T TL 电平。这种以T TL 电平串行传输数据的方式抗干扰性差,传输距离短。为了提高串行通信的可靠性,增大串行通信的距离,一般都采用标准串行接口来实现串行通信。本文介绍的是采用RS 2232C 串行通信标准来实现单片机与DSP 之间的通信。在本系统中,利用SCI 实现单片机与DSP 通信的原理示意图如图1所示

图1 单片机与DSP 通信的原理示意图

图1中,MAX232A 是RS 2232C 双工发送器/接收器接

口芯片,工作时仅需要单一的+3.3V 或+5V 电源。芯片内部有自升压的电平倍增电路,可以把输入的较低的电源电压变换成RS 2232C 通信的±10V 电压。芯片内有两个发送器和一个接收器,有T TL 信号输入/RS 2232C 输出的功能,也有RS 2232C 输入/T TL 输出的功能。该芯片与T TL/CMOS 电平兼容,使用比较方便。SCIRXD 、SCITXD 分别是TMS320L F2407A DSP 的SCI 接收数据引脚和发送数据引脚;RXD 、TXD 分别是单片机89C51的串行口输入端和串行口输出端。

3 89C51与TMS320LF2407A 串行

通信的软件设计

在串行异步通信中,收、发双方必须进行初始化设置,事先必须规定两件事情:(1)字符格式,即规定每一帧的数据格式。本文中规定每帧数据有1位起始位、8位数据位和1位停止位。(2)波特率。本文所介绍的系统采用的波特率为9600bp s 。这些规定是通过初始化与串行通信有关的寄存器来实现的。

波特率、波特率寄存器的值(BRR )、SYSCL K 三者之间的关系式如下:串行通信波特率=

S YS CL K

(BRR +1)×8,1≤BRR ≤65535

S YS CL K

16

,BRR =0

(1)

本文所讨论的系统中,DSP 的时钟频率为S YS CL K

=40M Hz 。因此,根据公式(1)计算B R R 的值如下:

BR R =40×106

9600×8

-1=520

因此,TMS320L F2407A DSP 的初始化程序如下:

void sci_init ()

{ 

 3MCRA =3MCRA|0x0003;

 3SCICCR =0x07;/3设定通信格式,每帧10位数据(1位起始位、8位数据位和1位停止位)3/

 3SCICTL1=0x013;/3使能TX 、RX 3/ 3SCICTL2=0x03;/3使能RXIN T 、TXIN T 中断3/

 3SCIHBAUD =(BAUD_9600/0x02);/3设置BRR 的高8位3/

 3SCILBAUD =(BAUD_9600%0x08);/3设置BRR 的低

8位3/

 3SCICTL1=0x0033;/3使能SCI 3/ 3SCIPRI =0x60;/3发送、接收中断分别为低优先级请求3/ 3IMR =3IMR|0x0010;/3使能IN T23/ 3IFR =0xffff ;/3清除所有中断标志3/ return ;

}

单片机对串行口的初始化可通过将控制字写入串行口控制寄存器SCON 和电源控制寄存器PCON 进行。本系统在对单片机的串口进行初始化设置时将其设置成方式1,接收允许,收发数据格式为1位起始位、8位数据位、1位停止位。方式1的串行通信波特率受定时器的溢出率控制。因此,初始化程序中还要对定时器进行初始化设置。

波特率的计算公式为[3]:

波特率=2SMOD

32×

f o sc 12(28-N )

(2)

其中,N 是定时器的初值,S MOD 是电源控制寄存器PCON 的第8位,f OS C 是时钟频率。此处,f OS C =12M Hz ,S MOD =1,则定时器的初始值N =249。

因此,单片机对串口的初始化程序如下:

void sci_init (){

TMOD =0x20;/3定时器设为方式2,即为自动重装入的8位定时器3/

TL1=0xf9;/3装入定时器初值3/T H1=0xf9;/38位重装值3/TR1=1;/3启动定时器3/

SCON =0x50;/3串口为方式1,每帧10位数据,允许接收3/PCON =0x80;/3SMOD =1

3/EA =1;ES =1;TI =0;RI =0;}

TMS320L F2407A DSP 利用SCI 与单片机89C51进行

通信的软件流程如图2所示。

图2 串行通信流程图

4 结束语

通过串行通信方式实现双CPU 之间的数据通信,接口简单、实现容易、抗干扰能力强,非常适合数据传输速率不大的系统。本文所设计的单片机89C51与TMS320L F2407A DSP 之间的串行通信电路简单实用,对其他类似的系统也有一定的参考价值。

参考文献:

[1] 张毅刚,陈善久,裘雪红.单片微型计算机原理及应用[M ].

西安:西安电子科技大学出版社,2000.

(下转第136页)

3

31

图3 分布式测试实现模型

(1)测试代理主机运行J Meter 的图形界面,测试代理

主机本身也是一个测试从机,和它下面的一个测试从机共

同构成一个两台计算机的小型分布式测试单元。

(2)测试主机通过管理界面(自己扩展J Meter 编写的程序)来管理和运行下面的J Meter 测试代理主机。

(3)所有的测试代理主机从数据库中读取测试计划脚本,并运行测试任务。一个测试代理单元创建2×50000个虚拟用户,测试主机把获得的测试结果直接存入数据库中。

(4)测试主机的管理界面再从数据库中实时读出各个测试代理主机写入的测试结果,并以图表形式显示出来。

由于J Meter 是开源产品,对其源代码进行修改和扩展功能都很方便。我们对J Meter 进行了修改,使其测试的结果和测试的脚本都存入数据库服务器中。图形化的测试结果都在测试运行的过程中从数据库实时读出。各个测试的客户端只需要负责虚拟并发用户,发送H T TP 请求,并把请求的结果写入数据库的表格中,从而减少测试主机的负担。测试主机只负责显示最后的结果和管理各个测试单元

图4 分布式测试物理框架结构

4 结束语

基于Web 系统的测试、确认和验收是一项重要而富有

挑战性的工作。由于Web 页数目多且变动频繁,对其测试如果单靠手工是无法进行的,必须有测试工具的参与。

J Meter 可以说是一个很好的自动化测试工具。在实际的

测试环境中,可以通过J Meter 测试的结果分析出系统的性能瓶颈,从而提高系统的性能。但是,如何分析测试得到的数据并找出系统中的瓶颈,还需要一定的经验积累。我们通过对J Meter 的分布式测试框架的改造,在J Meter 的源代码中扩展了对数据库中的测试结果和测试脚本的读写功能,并且做了一个简单的管理程序来管理局域网中运行了J Meter 的分布式测试单元和显示测试结果。使用新的架构,在实验室的条件下使用25台计算机实现了对实验室的BBS 服务器的百万级负载测试,从而解决了J Meter 不能并发百万级负载的问题,使Web 应用系统能够接受百万级的负载测试。

参考文献:

[1] 王剑宇.J Meter 在消息中间件系统压力测试中的应用:[硕士

学位论文][D ].杭州:浙江大学,2006.

[2] J Meter.The Apache J akarta Project [EB/OL ].[2008203212].

http ://https://www.docsj.com/doc/cd18529590.html,/jmeter/index.ht ml.

[3] 谈姝辰,尹军.基于负载的Web 性能测试研究与应用[J ].现

代电子技术,2007,30(14):1392141.

[4] Menasce D A.Load Testing of Web Sites[J ].Internet Com 2

puting ,2002,6(4):70274.

[5] Yu Huiming ,Zhang Jin ,Xu Jinsheng.Multi 2Agent Testing

Architecture for Monitoring and Analyzing t he Performance of Web Applications[C]∥Proc of ICIS 2COMSAR ’06,2006:1152120.

(上接第131页)

[4] Rubini A ,Corbet J.Linux Device Drevers [M ].2nd ed.O ’

REILL Y Media Inc ,2005.

[5] Vovet D ,Cesati M.Understanding t he Linux Kernel [M ].

2nd ed.O ’REILL Y Media Inc ,2003.

[6] 李祥冰,郑扣根.Linux 中I2C 总线驱动程序的开发[J ].计算

机工程与设计,2005,26(1):41243.

[7] 吴旭,屈万里.I2C 总线及设备的μCLinux 驱动程序设计

[J ].微机发展,2005,15(12):56257.

(上接第133页)

[2] 王勇,肖学礼,刘遂明,等.数字化U PS 中DSP 与单片机的串

行通讯设计[J ].通信电源技术,2006,23(1):36238.

[3] 张毅刚,赵光权,孙宁,等.TMS320L F240X DSP 原理、开发

与应用[M ].哈尔滨:哈尔滨工业大学出版社,2006.

[4] 李运兰.单片机与DSP 之间通信接口电路的设计与实现[J ].

湘潭师范学院学报(自然科学版),2003,25(1):24226.

[5] 牛小兵,许爱德,王丹.DSP 控制器实用教程[M ].北京:国

防工业出版社,2007.

6

31

相关文档
相关文档 最新文档