0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于DSP实现异步串行数据通讯系统的应用设计

电子设计 来源:电子技术应用 作者:韩开亮,张涛 2021-05-31 09:35 次阅读

TMS320C6711是TI公司TMS320C6000系列32位浮点DSP,它具有专用硬件逻辑的CPU、片内存储器、片内外设,支持汇编C语言的单独或混合编程。该系列DSP最主要的特点是采用了VLIW体系结构,因此可以单周期发射多条指令,实现很高的指令级并行效率。其计算和处理速度非常快,系统单指令周期可达到6.67ns,被广泛用于DSL、无线基站、雷达声纳、数字图像处理等方面。在TMS320C6711中有2个多通道缓冲串行接口McBSP,McBSP不仅可以配制成串行接口,还可以独立配制成通用的输入(GPI)、输出(GPO)和输入输出端口(GPIO)。其优点是数据处理能力强大,但控制接口少,片内集成外部设备少,控制能力较弱。

TI公司的TMS320LF2407为16位定点DSP微控制器,内嵌有看门狗定时器(WDT)、CAN总线控制器、模数转换器ADC)、串行外设接口(SPI)、异步串行口(SCI)等多种外设模块,并有大量输入输出引脚(GPIO),可以满足控制系统多方面的控制需求。但由于TMS320LF2407的指令周期最短为25ns(40MHz主频),对于数据处理运算量特别大的系统,其运算速度略显不足。

多数数字图像处理应用系统既要求系统有强大的数据处理能力,以满足对图像处理的实时性要求,又要求系统有强大的控制能力,以便实现对外部众多设备的控制。在实际应用系统中,将TMS320C6711作为处理器完成数字图像的实时处理,TMS320LF2407作为控制器完成系统的控制功能,便可兼顾系统的数据处理能力与外部设备控制能力。这样的系统要求在TMS320C6711和TMS320LF2407之间建立有效的数据交换通道,本文所介绍的设计思想就是基于以上工程需要提出的。

1 系统结构

本系统为嵌入式数字图像处理系统,数字图像数据由下位机TMS320C6711处理,处理结果采用异步串口通讯的方式传送给上位机TMS320LF2407,TMS320LF2407将采集到的模拟量、开关量等参数,与通过异步串口接收到的图像处理结果一起通过CAN总线向远程监控终端发送。

TMS320C6711的多通道缓冲串行接口McBSP与TMS320LF2407的SCI模块,通过特定的软硬件设计可以支持使用标准格式的异步数字通讯。通讯数据的格式为:一个起始位、数据(长度可通过编程在16位~8位内可选)位、可供选择的奇/偶/非极性位、一个或两个停止位。

1.1 McBSP接口

McBSP可以分为数据通道和控制通道两部分。数据发送引脚(DX)和数据接收引脚(DR)分别负责数据的发送和接收,发送时钟引脚(CLKX)、接收时钟引脚(CLKR)、发送帧同步引脚(FSX)和接收帧同步引脚(FSR)提供串行时钟和控制信号。CPU和DMA控制器通过外设总线与McBSP进行通讯。当发送数据时,CPU和DMA将数据写入数据发送寄存器(DXR1,DXR2),接着复制到发送移位寄存器(XSR1,XSR2),通过发送移位寄存器输出至DX引脚。同样,当接收数据时,DR引脚上接收到的数据先移位到接收移位寄存器(RSR1,RSR2),接着复制到接收缓冲寄存器(RBR1,RBR2),RBR再将数据复制到数据接收寄存器(DRR1,DRR2)中,并通过串口事件通知CPU或DMA读取数据。这种多极缓冲方式使得片内数据通讯和串行数据通讯能够同时进行。

1.2 SCI接口

SCI模块支持CPU和其他使用标准格式的异步设备间的通讯。它具有SCIRXD(串行数据接收端)和SCITXD(串行数据发送端)两个I/O引脚。在全双工模式下具有一个发送器(包括SCITX2BUF及其主寄存器TXSHF)、一个接收器(包括SCIRXBUF及其RXSHF)。发送器在SCITXBUF存放要发送的数据,并每次一位地将数据移位至SCITXD引脚;接收时则每次一位地将SCIRXD引脚上的数据移入,载入SCIRXBUF和SCIRXEMU给CPU读取。具有一个可编程的波特率发生器,可得到超过65 000种不同的可编程速率。SCI为接收器和发送器提供独立的中断请求和中断向量:如果RX/BKINT ENA位(SCICTL2.1)被置位,当SCI接收到一个完整的帧,并把RXSHF中的数据传送到SCIRXBUF时,这个动作置位RXRDY标志(SCIRXST.6)并启动一个中断。如果TX INT ENA位(SCICTL2.0)被置位,则在任何时候,只要SCITXBUF中的数据送到TXSHF,发送器中断就会被认定,表示CPU可以向SCITXBUF写。这个动作置位TXRDY标志位,并启动一个中断。

2 硬件实现

当TMS320C6711D与TMS320LF2407A进行标准异步串行通讯时,TMS320LF2407A的SCI接口可直接支持该通讯,只需将SCI接口通过内部特殊功能寄存器配置为串行接口模式即可。而TMS320C6711D的McBSP除通过内部特殊功能寄存器配置成串行接口外,在硬件设计上还应将DR和FSR短接,并与SCI的串行数据发送引脚(SCITXD)相连。这是由于标准异步串行通讯中数据线上既包含了帧同步信息,也包含了数据信息。SCI的串行数据接收引脚(SCIRXD)与McBSP的DX相连。

由于TMS320C6711D与TMS320LF2407A的接口电压均为3.3V,二者引脚可直接相连,不需要电平转换。

3 软件参数的配置与计算

3.1 针对TMS320C6711D

(1)波特率的计算

TMS320C6711D内部生成的串行时钟由系统时钟频率SYSCLK和采样率发生寄存器决定。MCBSP的内部数据时钟频率即异步波特率由以下公式确定:

MCBSP异步波特率=采样率发生寄存器输入时钟频率/(CLKGDV+1)

其中:CLKGDV=采样率发生寄存器输入时钟频率/McBSP异步波特率-1。

当采样率发生寄存器的CLKSM=1时,采样率发生寄存器输入时钟频率=CPU内核输入时钟/2;

当采样率发生寄存器的CLKSM=0时,采样率发生寄存器输入时钟频率=CPU内核输入时钟。

在本系统中,TMS320C6711D的内核输入时钟为150MHz,采样率发生寄存器的CLKSM位设置为1。若使McBSP异步通讯波特率为312.5kb/s,则依据以上公式,采样率发生寄存器的CLKGDV段参数应配置为239,即十六进制的0xEF。

(2)特殊功能寄存器的初始化

TMS320C6711D内部与McBSP配置相关的特殊功能寄存器主要有:串口控制寄存器(SPCR)、接收控制寄存器(RCR)、发送控制寄存器(XCR)、采样率发生器寄存器(SRGR)、多通道控制寄存器(MCR)、接收通道使能寄存器(RCER)、发送通道使能寄存器(XCER)、管脚控制寄存器(PCR)。

TMS320C6711的McBSP与TMS320LF2407的SCI模块通讯时,系统对McBSP的配置要求为:数据为单项帧;每帧一个数据单元;数据单元字长为8bit;时钟下降沿处接收数据;在上升沿处发送数据;帧同步信号高有效;帧同步有效后,在其后的第一个时钟周期启动该帧的传输,即数据延迟为0;异步通信波特率为312.5kb/s。

3.2 针对TMS320LF2407A

(1)波特率的计算

TMS320LF2407A内部生成的串行时钟由系统时钟SYSCLK频率和波特率选择寄存器决定。串行通信接口使用16bit波特率选择寄存器,数据传输速度可以被编程为65000多种不同的方式。

不同通信模式下的串行通信接口异步波特率由下列方法决定:

在本系统中,TMS320LF2407A的系统输入时钟为25MHz,若使SCI异步通信波特率为312.5kb/s,则依据以上公式,波特率选择寄存器参数应配置为9,即十六进制的0x0009。

(2)特殊功能寄存器的初始化

TMS320LF2407的SCI模块的异步串行通讯配置包括管脚配置、通讯模式配置和中断配置三方面,相关的特殊功能寄存器包括复用控制寄存器(MCRA)、端口数据和方向控制寄存器(PADATDIR)、串行通讯接口控制寄存器1和2(SCICTL1和SCICTL2)、通讯控制寄存器(SCICCR)、波特率选择高字节寄存器和低字节寄存器(SCIHBAUD和SCILBAUD)、优先级控制寄存器(SCIPRI)、接收状态寄存器(SCIRXST)等。

4 软件设计

系统中TMS320C6711通过McBSP将图像处理结果采用主动发送的方式发送给TMS320LF2407,后者通过响应SCI中断的方式接收数据信息。

5 串行通讯初始化程序

TMS320C6711与TMS320LF2407进行串行通讯的软件设计难点是McBSP与SCI的初始化程序设计。初始化程序包括对芯片的管脚配置、通讯模式配置和中断配置等方面。以下分别给出TMS320C6711的McBSP模块和TMS320LF2407的SCI模块的初始化程序模块。

(1)TMS320C6711的McBSP模块初始化程序

void init_mcbsp0_master(void)

{

MCBSP_Config mcbspCfg0=

{

0x00010001,//配置spcr寄存器

0x000D0000,//配置rcr寄存器

0x00040020,//配置xcr寄存器

0x200000ef,//配置srgr寄存器,

//波特率设定为312.5kb/s

0x00000000,//配置mcr寄存器

0x00000000,//配置rcer寄存器

0x00000000,//配置xcer寄存器

0x00000b0c//配置pcr寄存器

};

hMcbsp0=MCBSP_open(MCBSP_DEV0, MCBSP_OPEN_RESET);

//选用port 0

MCBSP_config(hMcbsp0,&mcbspCfg0);

IRQ_map(IRQ_EVT_RINT0,13);//映射接收中断0为

//13号中断

IRQ_reset(IRQ_EVT_RINT0);

IRQ_enable(IRQ_EVT_RINT0);//开中断

MCBSP_enableRcv(hMcbsp0);

MCBSP_enableSrgr(hMcbsp0);//Handle to SRGR

MCBSP_enableFsync(hMcbsp0);

}

(2)TMS320LF2407的SCI模块初始化程序

void sci_INIT(void)

{

MCRA=MCRA|0x0003; //设置引脚SCITXD/IOPA0和

//SCIRXD/IOPA1为串行通讯功能

PADATDIR=0X0100; //设PA口为输入口

SCICTL1=0x13; //使能接收和发送

SCICTL2=0x02; //禁止发送中断,使能接收中断

SCICCR=0X07; //8位字长,1个停止位,空闲线多处

//理器模式,无奇偶校验

SCIHBAUD=0x00; //波特率设为312.5kb/s

SCILBAUD=0x09;

SCIPRI=0x00; //接收为高优先级中断

SCIRXST=SCIRXST&0xbf;//清除SCI接收中断标志

SCICTL1=0x33; //保存设置

}

利用TMS320C6711的McBSP和TMS320LF2407的SCI可以实现异步串行数据通讯,具有电路简单、设置灵活、数据传输速度快、性能可靠稳定等特点。在此基础上可成功构建主从式双DSP数据处理系统,有效解决单一DSP系统数据处理能力与控制能力难以兼顾的问题。本文所介绍的设计方案已在实际应用系统中采用,并经长时间运行检验。实践证明,此设计方案是一种有效的多DSP数据交换手段。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6789

    浏览量

    147564
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7670

    浏览量

    344228
  • 定时器
    +关注

    关注

    23

    文章

    3144

    浏览量

    112005
收藏 人收藏

    评论

    相关推荐

    labview 实时机与上位机之间的数据通讯

    labview中 实时机与上位机之间的数据通讯大家都是如何处理的?对采集的数据和控制数据怎样分配的?
    发表于 04-02 09:34

    远程医疗的数据通讯分析

    只能通过cable或者WIFI和远程终端进行数据交换,智能手机有着普及性和便携性绝对优势成为数据通讯的载体。智能手机和远程终端的数据交换通过GPRS(3G,4G)或者WIFI,那智能手机和医疗设备之间呢
    发表于 09-12 13:05

    基于LabVIEW的PC与PCC实时数据通讯方案与实现过程

    摘要:针对现代工业过程控制中实时通讯要求和现场总线存在的缺点,用现在流行的开放式标准接口技术OPC规范,设计了一种基于LabV IEW的PC与PCC实时数据通讯方案,并给出了具体的实现过程。该方案
    发表于 04-03 09:40

    以太网在MPSoC中的数据通讯实现

    ,以太网承担着系统数据通讯模块,主要实现系统数据传输。2 以太网接口设计 以太网模块设计主要完成以太网控制器IP核用户端接口协议与多核
    发表于 06-03 05:00

    智能网关IGT-DSER是如何实现PLC与数据库之间的数据通讯的?

    IGT-DSER带有哪几种数据缓存功能?智能网关IGT-DSER是如何实现PLC与数据库之间的数据通讯的?
    发表于 07-02 06:04

    MATLAB环境下的串行数据通信系统设计

    本文提出了一种串行数据通系统的设计方案,利用MATLAB 提供的仪器控制工具箱serial 类对象来实现串行数据通信,硬件设计中采用TL16C550C 芯片使设计具有很好的可扩展性,
    发表于 06-12 15:23 23次下载

    基于TMS320C5402的数据通讯系统的设计

    TMS320C54X系列是TI公司生产的应用于通讯领域的DSP芯片,该系列具有功耗小、高度并行等优点,能够满足通讯领域的实时处理的要求;主要阐述了基于TMS320C5402的数据通讯
    发表于 07-16 10:16 27次下载

    PLC数据通讯在水压机控制系统中的实现与研究

    数据通讯是控制系统的关键技术之一。本文阐述了西门子S7 系列PLC 数据通讯在某大型水压机控制系统中的实现,介绍了3 种常用的
    发表于 07-30 15:16 14次下载

    DSP数据通讯系统改造中的应用

    针对光电经纬仪中系统间信息实时传输时,需要传输线多的问题,提出了一种采用DSP异步串行通讯控制器和CPLD 技术相结合来对其进行改造的方法
    发表于 09-26 08:40 13次下载

    井下供电自动化系统数据通讯电路的研究与设计

    井下供电自动化系统数据通讯电路的研究与设计 根据煤矿供电系统结构特点及功能要求,开发研制出基于微机技术的井下供电自动化系统数据通讯电路。该
    发表于 10-11 17:35 13次下载

    基于USB接口的超声检测数据通讯

    为满足超声C 扫描系统数据传输的要求,根据USB 接口芯片CH372 的工作原理,设计了单片机端的硬件和固件程序以及上位机的软件,实现了基于USB 接口的超声检测数据通讯模块。实验结
    发表于 05-12 18:02 69次下载
    基于USB接口的超声检测<b class='flag-5'>数据通讯</b>

    PLC与NC间的实时数据通讯

    本文介绍了 RS232 在冲压开卷线中的应用,并从原理上分析了RS232在PLC与NC间实现串行数据通讯的方法
    发表于 07-22 18:01 55次下载
    PLC与NC间的实时<b class='flag-5'>数据通讯</b>

    基于DSP与PC间的数据通讯

    基于DSP与PC间的数据通讯
    发表于 10-20 10:13 3次下载
    基于<b class='flag-5'>DSP</b>与PC间的<b class='flag-5'>数据通讯</b>

    如何在STM32中要实现数据通讯

    z在stm32中要实现数据通讯,首先要设置相关的寄存器,这里不做相关的介绍,直接说代码相关的能内容及相关函数对应的用法。
    的头像 发表于 03-02 08:56 1910次阅读
    如何在STM32中要<b class='flag-5'>实现</b><b class='flag-5'>数据通讯</b>

    安科瑞带防逆流功能的数据通讯网关

    AWT200 数据通讯网关应用于各种终端设备的数据采集与数据分析。用于实现设备的监测、控制、计算,为系统与设备之间建立
    的头像 发表于 09-11 16:30 280次阅读
    安科瑞带防逆流功能的<b class='flag-5'>数据通讯</b>网关