当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]1 引 言随着计算机系统、通讯设备的迅猛发展,不间断电源UPS(uninterruptible power supply)的应用范围越来越广。银行、证券、通信基站等等对于UPS的需求量也是与日俱增。本

1 引 言

随着计算机系统、通讯设备的迅猛发展,不间断电源UPS(uninterruptible power supply)的应用范围越来越广。银行、证券、通信基站等等对于UPS的需求量也是与日俱增。本文主要介绍200KVAUPS中的DSP[1]与单片机的两种串行通讯方式,实验证明:两种通讯方式均可以使DSP和单片机顺利通讯,并且使得算法控制和监控顺利实现,均是行之有效的DSP与单片机的通讯方式。

目前,高速数字信号处理器(DSP,digital signal processor)已经广泛应用于工业控制,电机控制,航天宇航控制等诸多复杂控制系统中。在电力电子领域,由于各种开关功率器件开关频率越来越高,开关损耗越来越小,所以普通的8位单片机并不能满足要求,TI公司的TMS320F240系列单片机因其具有快速的处理能力在大功率开关管控制方面已经得到实践认可,并在诸多复杂控制检测系统中起到核心作用[4]。由于本系统中PFC整流电路以及逆变电路算法复杂,加之比较繁琐的逻辑顺序,所以分别需要一块DSP对其进行控制。如果将监控程序加入DSP中,键盘显示以及数据存储速度势必要加入等待周期,同时会影响CPU的处理速度。所以,现大都采用另加一块单片机对其进行监控、键盘显示、以及一些重要数据的备份。因此,在数字化UPS中串行通讯也显得犹为重要。

2 MCS51单片机和TMS320F240的串行通讯

MCS51系列单片机内部具有一个全双工串行口,该串行口有四种工作方式,可以利用软件进行设置,由片内定时/计数器产生。串行口的接收发送数据均可以触发中断,并含有接收、发送缓冲器SBUF,两个缓冲器共用一个字节地址。串行口是可编程的接口,对它的初始化只用两个控制字分别写入特殊功能寄存器SCON和电源控制寄存器PCON中即可。

TMS320F240中的串行外设接口(SPI)模块,是一个高速、同步串行I/O口,它允许长度可编程的串行位流(1~8)位以可编程的位传输速度移入或移出器件。数据的传输需要三条线,即时钟、发送和接收。串行通讯接口(SCI)模块支持CPU和使用NRZ(Nonreturn-to-zero)的异步通讯设备之间的通讯,跟SPI不同的是SCI仅仅需要两个I/O口进行数据传输,即发送端和接收端,所以在外围硬件电路设计方面更容易实现。虽然外围电路设计简单可行,但是SCI数据传输的速度较SPI要差很多,因为SPI具有的时钟线可以使得两块芯片达到真正意义上的同步,而通过SCI连接的两块芯片各自有自己的时钟,这就使得传输速度受到影响(最高可达64kb/s),有些应用场所在传输距离很短(15m以内)的情况下通常使用较为容易实现的SCI异步串行通讯。但对传输速率要求较高,或传输距离要求较长的情况下通常使用SPI(1.2km,10Mb/s) 同步串行通讯。故虽本系统才用SCI进行通讯,同时给出SPI设计方法,通过对照比较达到灵活运用DSP串行通讯接口的效果。

3 SCI接口实现DSP与单片机的串行通讯

在利用SCI连接外围芯片的时候通常需要外加接口芯片,常用的有MAXIUM公司的MAX232A和MAX485[3]等等。本文给出SCI经由MAX232A与单片机相连的,如图1所示:


图1 利用SCI实现的单片机与DSP通讯原理图


MAX232A由监控板上的普通+5V电压供电,内部有一个电子桨电压变换器,可以把输入的+5V电源电压变换成RS232C通讯的 10V电压。这种芯片内部含有两个发送器和两个接收器,能够满足双工发送器/接收器的电气规范。并且此芯片可以完成RS232C电平到TTL/CMOS电平的转换。

3.1 初始化设置

在异步通讯中必须先规定两件事:一是字符格式,即规定每一阵数据的格式,二是采用波特率及时钟频率和波特率的关系。这些规定是通过初始化设置与串行通讯有关的寄存器来实现的。在TMS320F240中本系统中SYSCLK=24MHz,现选择波特率为9600bps进行RS-232通信,确定波特率选择寄存器的值BRR方法如下:
当BRR=1到65535时的串行通信接口异步波特率为:SCI异步波特率=SYSCLK/[(BRR+1) 8]其中BRR=SYSCLK/(SCI异步波特率 8)-1

当 BRR=0时的串行通信接口异步波特率为:SCI异步波特率=SYSCLK/16这里的BRR等于波特率选择寄存器的16位值

根据上面公式计算得BRR=24 10 /(9600 8)-1=311.5 138H所以波特率选择寄存器设置为SCIHBAUD=01H,SCILBAUD=38H

TMS320F240初始化程序如下:
LDP #00E0H 页地址指针设置
SPLK #0017H,SCICCR;设定通讯格式每帧10数据
SPLK #0013H,SCICTL1;使能TX,RX
SPLK #0000H,SCICTL2;禁止RXINT,TXINT中断
SPLK #0001H,SCIHBAUD;波特率设定为9600bit/s
SPLK #0038H,SCILBAUD;
SPLK #0033H,SCICTL1;使能SCI
MCS51单片机的特殊功能寄存器SCON定义了串行通信的方式选择、接收和发送控制以及串行口的状态标志等。初始化中将其设置成串口方式1,接收允许状态。串口方式1收发的数据格式为1位起始位,8位数据位,1位停止位。SCON中的TI,RI位在初始化中置0,在发送、接收完一帧数据,硬件自动将其置1,中断被响应后,TI、Ri不会自动清0,必须由软件清0。其串行通信波特率由定时器T1溢出率获得,


设定初始值为:(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口与单片机的外围中断 来实现,当 接收到一个下降沿的中断,就认为是串行数据的起始位到达了,而后利用设定好的波特率进行各位数据读取即可。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

在现代电子技术的快速发展中,单片机以其高度的集成性、稳定性和可靠性,在工业自动化、智能家居、医疗设备、航空航天等诸多领域得到了广泛应用。S32单片机,作为其中的佼佼者,其引脚功能丰富多样,是实现与外部设备通信、控制、数据...

关键字: s32单片机引脚 单片机

在微控制器领域,MSP430与STM32无疑是两颗璀璨的明星。它们各自凭借其独特的技术特点和广泛的应用领域,在市场上占据了重要的位置。本文将深入解析MSP430与STM32之间的区别,探讨它们在不同应用场景下的优势和局限...

关键字: MSP430 STM32 单片机

数字信号处理器(DSP)在通信、控制、图像处理等多个领域扮演着越来越重要的角色。TMS320F2808PZA作为德州仪器(Texas Instruments)推出的一款高性能DSP控制器,其独特的架构和强大的功能使其在众...

关键字: tms320f2808pza 数字信号处理器 DSP

从世界上第一颗DSP诞生至今30年来,国际一线老牌芯片厂商长期占据领先技术和市场地位,国内芯片厂商在DSP上的声量很小。然而经过了6年的沉心打磨之后,湖南进芯电子开始在这一领域崭露头角。凭借着更贴近中国本土特色的差异化产...

关键字: DSP MCU 电机控制 进芯电子

该系列产品有助于嵌入式设计人员在更广泛的系统中轻松实现USB功能

关键字: 单片机 嵌入式设计 USB

单片机编程语言是程序员与微控制器进行交流的桥梁,它们构成了单片机系统的软件开发基石,决定着如何有效、高效地控制和管理单片机的各项资源。随着微控制器技术的不断发展,针对不同应用场景的需求,形成了丰富多样的编程语言体系。本文...

关键字: 单片机 微控制器

单片机,全称为“单片微型计算机”或“微控制器”(Microcontroller Unit,简称MCU),是一种高度集成化的电子器件,它是现代科技领域的关键组件,尤其在自动化控制、物联网、消费电子、汽车电子、工业控制等领域...

关键字: 单片机 MCU

STM32是由意法半导体公司(STMicroelectronics)推出的基于ARM Cortex-M内核的32位微控制器系列,以其高性能、低功耗、丰富的外设接口和强大的生态系统深受广大嵌入式开发者喜爱。本文将详细介绍S...

关键字: STM32 单片机

在当前的科技浪潮中,单片机作为嵌入式系统的重要组成部分,正以其强大的功能和广泛的应用领域受到越来越多行业的青睐。在众多单片机中,W79E2051以其卓越的性能和稳定的工作特性,成为市场上的明星产品。本文将深入探讨W79E...

关键字: 单片机 w79e2051单片机
关闭
关闭