微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 大功率UPS中DSP与单片机的串行通讯设计

大功率UPS中DSP与单片机的串行通讯设计

时间:08-08 来源:互联网 点击:

1位起始位,8位数据位,1位停止位。SCON中的TI,RI位在初始化中置0,在发送、接收完一帧数据,硬件自动将其置1,中断被响应后,TI、Ri不会自动清0,必须由软件清0。其串行通信波特率由定时器T1溢出率获得,

波特率的计算公式为:

上式中N是初值,SMOD是PCON中的位,

是时钟频率,则初始值

本系统中设定SMOD=1,

波特率为9600bit/s则计算

设定初始值为:(TH1)=(TL1)=0FCH。则MCS51单片机初始化程序如下:

MOV TMOD,#20H;T1工作于模式2

MOV TH1,#FCH;

MOV TL1,#FCH;赋计数初值,波特率为9600bit/s

MOV SCON,#50H;置串口方式1,每帧10数据,允许接收

MOV PCON,#80H;设SMOD=1

SETB TR1启动定时器

3.2 TMS320F240利用SCI与MCS51单片机通信的软件流程图

图2 TMS320F240利用SCI与MCS51单片机通信的软件流程图

3.3 SCI收发数据时管脚时序图

4 SPI接口实现DSP与单片机的串口通讯

在利用SPI接口实现DSP与单片机进行串口通讯的时候,由于DSP需要通过一根时钟引线连接主机从机使其同步,而MCS51单片机串行通讯只有RXD和TXD,TXD产生系钟,RXD则既接收数据又发送数据,这里我们选用两片74LS645(同步收发器)来区分收发数据。硬件电路图如下:

图5 SPI接口实现DSP与单片机的串口通讯

74LS645功能表如表1:

MCS51采用方式0,同步串行通讯时钟为0.5MHZ,单片机做主机,DSP做从机。当系统开始工作时,DSP的SPISTE(SPI从动发送使能脚)作为普通I/O口发送DSP的选通信号(初始化SPISTE=1),当单片机的P1.0口检测到SPISTE的下降沿时,开始由TXD口输出同步时钟脉冲并通过RXD接收数据。同理当DSP检测到单片机由P1.3(初始化为1)的下降沿后,即接收到网络主控制器送出的SPICLK信号,开始接收由主机发送的数据,然后将SPISIMO引脚上的数据移入到SPIDAT寄存器。如果从DSP同时也发送数据,则必须在SPICLK信号开始之前把数据写入到SPIRXBUF或SPIDAT寄存器中去。

SPI的接口有四种不同的波特率设置,时钟可以进行极性的选择,有效沿选择和相位选择等等。在这里由于DSP的SPICLK使用MCS51单片机的时钟频率,故在这里可以不设置SPICLK,只需保证DSP的工作频率不低于单片机通过TXD口转换的时钟频率即可。需要注意的是,DSP在通过SPI进行数据传输时,是先传送高8位在传送低8位,这就需要在单片机中断服务子程序中设定字符反转程序。DSP和单片机均采用中断方式发送并且接收数据,下面给出DSP作为从机发送数据,单片机作为主机接收数据的软件流程图:

5 结 论

在设计DSP与单片机通讯接口时,由于一般情况下对传输速率以及传输距离没有太多要求,所以仅利用SCI基本可以满足设计要求,但在较为复杂的数字化UPS系统之中通常需要两片或者多片DSP共同控制,在DSP与另外一块DSP通讯之中需要利用剩余的SPI口,在主从双DSP通讯设计中更为简单易行。当另外一块DSP与单片机进行通讯时,由于单片机的串口已经被占用,故可以考虑通过SCI口与单片机的外围中断 来实现,当 接收到一个下降沿的中断,就认为是串行数据的起始位到达了,而后利用设定好的波特率进行各位数据读取即可。

参考文献:

[1] 刘和平,严利平,张学锋,卓清锋,TMS320LF240XDSP结构、原理及应用,北京:北京航空航天大学出版社,2002

[2] 尹熙鹏,段哲民,基于DSP的PWM型开关电源的设计,自动化与仪器仪表,2005,4

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

网站地图

Top