当前位置:首页 > 嵌入式 > 嵌入式硬件

摘要:讨论TMS320F2812与PC之间的串行通信方案,给出TI公司的TMS320F2812型DSP和Maxim公司的MAX3160型收发器的硬件接口电路,以及在此基础上使用中断和查询方法实现的串行通信软件流程,同时给出DSP SCI的初始化、发送和接收数据程序代码。
关键词:串行通信;数据信号处理;收发器;PC
引言
目前,微控制器系统在国民经济和人民生活中得到了广泛的运用,而数据传输业仍是一个很重要的领域。对于这些与计算机相距不远的人-机交换设备和串行存储的外部设备(如终端、打印机、逻辑分析仪、磁盘等)来说,采用串行通讯方式交换数据已非常普通[1]。
在以往DSP与PC之间的串行通信中,由于运行速度的差异和上下位机之间编程软件的限制,系统的实时性一般较差。本文针对这些问题,从硬件和软件两个方面探讨了TMS320F2812与PC的通信方案,介绍该方案的串行通信接口电路和采用中断与查询方法实现数据通信的软件流程。



1 串行通信的硬件接口电路
TMS320F2812的SCI和以往的DSP的SCI相比具有两个特点:一是传送、接收都具有独立的FIFO;二是波特率可以自动检测。自动波特率检测逻辑主要解决通信过程中终端波特率的确定问题。而其16字的FIFO可大大减少通信中断次数,提高通信速率。TMS320F2812的SCI有4个外部引脚:SCIRX、DA、SCITXDA、SCIRXDB、SCITXDB,不作通讯时,这些引脚可以用作通用I/O。SCI有一个16位的波特率选择寄存器,通过改变寄存器的值可以得到多于65000种的波特率。
本设计选用Maxim公司生产的MAX3160型收发器,它是一种可编程的多协议收发器,能支持RS-232/RS-485/RS-422等传送方式。
MAX3160的引脚RS-485/RS-232用于选择工作在RS-422/RS-485还是RS-232接口标准;引脚HDPLX用于选择是RS-422还是RS-485;引脚FAST用于控制信号转换率;引脚DE485用于控制RS-422/RS-485方式时发送器是否使能,以及RS-485和RS-232方式时的RTS信号复用。图1中的电路使用的MAX3160的RS-232方式,所以要将11脚RS-485/RS-232与此12脚HDPLC置为低电平。
本设计将这些控制引脚集成在一个寄存器UART_SCI中,并将这个寄存器映射在TMS320F 2812电路Zone1上的0X4010存储单元中,该寄存器各位的定义如图2所示。TMS320F2812可通过该寄存器对MAX3160进行操作。
2 串行通信软件包实现
设计TMS320F2812串行通信软件可采用查询和中断两种方式。本设计中,发送数据采用的是查询方式,接收数据采用的是中断方式。


2.1 SCI的初台化
TMS320F2812的2个SCI总共包括26个寄存器,其中控制寄存器有SCICCR、SCIPRI、SCICTL1和SCICTL2;设备波特率的寄存器有SCIHBAUD和SCILBAUD;状态寄存器有SCIRXST;缓冲寄存器有SCIRXEMU、SCIRXBUF和SCITXBUF;另外还有TMS320F2812的SCI独有的FIFO寄存器SCIFFTX、SCIFFRX和SCIFFCT。在程序的开始应先对其中一些寄存器进行初始化。

SCI的初始化程序如下:
#include "DSP28_Device.h"
unsigned int * UART_SCI=(unsigned int *)0x4010;
void InitSci(void)
{ *UART_SCI=0x44; //设定MAX3160为RS-232的工作方式
EALLOW;
GpioMuxRegs.GPFMUX.all=0x0030;
EDIS;
SciaRegs.SCICCR.all=0x07;//将传输数据长度设为8位
SciaRegs.SCICTL1.all=0x03;//启动发送和接收
SciaRegs.SCICTL2.all=0x03;//允许RXRDY/BRKDT和TXRDY中断
SicaRegs.SCIHBAUD=0x00;
SicaRegs.SCILBAUD=0xF3;//设置传输的波特率为
SicaRegs.SCICTL1.all=0x23;//寄存器已设置好,将SW RESET置1,启动发送和接收
PieCtrl.PIEIER9.bit.INTx1=1;/启动中断
PieCtr1.PIEIER9.bit.INTX2=1;
}
2.2 数据的发送与接收
数据发送采用查询方式,其流程图如图3所示。数据的接收采用中断方式,其流程如图4所示。SCIATX_Ready是寄存器SCICTL2的发送就绪位,Send_Flag是TMS320F2812设置的一个发送标志。SCIARX_Ready是寄存器SCIRXST的准备就绪位。SCIA的接收中断为INT9.1,发送中断为INT9.2;而SCIB的接收中断为INT9.3,发送中断为INT9.4。本设计方案只使用SCIA的接收中断INT9.1。在中断服务子程序中,通过检查外设中断向量寄存器的值可转入相应的接收中断处理程序。
3 结论
本通信方案已应用于某上位机控制数据采集卡的运行中,结果表明是可行的。该方案虽然具有硬件电路简单、实施容易等特点,但由于受RS-232/485/422串行通讯的限制,因而只能用于短距离的数据发送与接收。此外,TI公司的TMS320F/C2XX系列DSP具有相同的串行通信模块,因此本设计方案也适用于其他的TMS320F/C2xx系列DSP器件。

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

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭