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

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

3天内不再提示

基于TL16C550C实现DSP UART数据通信的方法研究

牵手一起梦 来源:网络整理 作者:佚名 2020-01-13 16:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

由于TMS320C6416不带异步串行收发接口UART),无法实现DSP系统常用的通串行通信。为此,本文基于TL16C550C设计了一种通过TMS32C6416实现UART数据通信的方法,同时给出了其硬件设计框图以及通过TMS320C6416初始化TL16C550C的软件编程方式。

高速数字信号处理器(DSP)在图像处理中,特别是视频处理中的应用非常广泛。通常DSP都具有很强的运算能力,但是其外设的接口相对有限。在应用系统中,往往需要DSP与下位机通信或者接受上位机的控制信号时,一般都是采用异步串行通信协议,如RS232RS422来实现。由于TMS320C6416器件自身只带有同步的串口,因此,为了实现正常的通信,一般都需要为其扩展异步串口。

l、TL16C550C芯片介绍

TL16C550C是TI公司研发的异步通信器件,其主要性能特点如下:

◇供电电压为5 V或3.3 V;

时钟频率达到16 MHz。通信时波特率最高可达1 M,并可编程设定波特率发生器;

◇具有标准的异步通信位,可选择5、6、7或8位串行数据位,可设置奇偶校验或无校验模式,停止位长度为1、1.5、2;

◇可独立控制发送、接收、线状态以及中断设置,可软件设定FIFO,减少CPU中断。

TL16C550C器件内部共有10个寄存器,可分别用于实现通信参数的设置、对线路及MODEM状态的访问、数据的发送和接收以及中断管理等功能。TL16C550C的地址可分别通过A0-A2地址线和某些寄存器的特定位置来确定,由于有些寄存器的地址是重叠的,所以还需同时通过读/写信号加以区分。

TL16C550C片内寄存器及其映射地址如表1所列,其中高位和低位寄存器为二次寻址寄存器,因此,在访问这两个寄存器之前,必须将LCR的第7位置为1。

2、TL16C550C与PC的数据通信电路

2.1 TL16C550C的选通

TL16C550C与PC的串行通信部分的硬件连接电路如图1所示。由ISO3088实现电平转换,即通过ISO3088将输出电平配置为RS485信号。

2.2 TLl6C2550C的读写

TL16C550C的读信号为,RD2,当为低电平或RD2为高电平,且TL16C550C被选中时,可进行读操作;写信号为,WR2,当为低电平或WR2为高电平,且TL16C550C被选中时,可进行写操作。将、RD2、、WR2都与CPLD的I/0相连,便可通过CPLD来控制TL16C550C的读写。

3、TL16C550C和PC通信的软件编程

该套系统的软件设计部分主要包括PC机程序、DSP初始化、TL16C550C初始化和数据发送/接收以及双方的通信协议等。本文着重介绍TL16C550C的初始化程序。主要由以下几部分组成:

◇波特率的设定;波特率除数寄存器由高8位(DLM)和低8位(DLL)组成。除数的值可由UART的工作时钟和波特率共同确定,其计算公式为:

除数=时钟频率/(期望的波特率×16)

例如本系统中时钟频率12 MHz,波特率设置为9600,则除数的值为12,应在初始化程序中设置DLM=OOH,DLL=4eH;

◇增强功能的使能及设置EFR的相关位;

◇完成有关收/发FIF0的设定,主要是MCR/TCR/TLR三个寄存器的设置;

◇传输数据格式设定,包括8位数据位、1位停止位以及无校验;

◇设置FIFO控制以及中断控制寄存器。

此外,在完成设置前,还应注意:设定DLL和DLH前,LCR的第7位应为1;地址相重叠的寄存器不能同时使能;读写RHR和THR时,DSP的读写速度很快,故最好不要连续读写,而是在每读、写一次后延时一段时间。然后再进行下一次读写。

由于TL16C550C映射在DSP的CEO区间,所以在DSP访问其寄存器时只需将基地址加上偏移量即可。其初始化源程序如下:

4、结束语

本文介绍了通过TL16C550C扩展串口完成TMS320C6416与PC机串行通信的设计方案,给出了硬件设计框图及软件实现代码。该电路及软件经实验证明能够可靠地实现TMS320C416与PC机之间的通信,并且此方法已在实际的项目中得到应用。

TL16C550C采用3.3 V供电.将TL16C550C的数据线DO~D7与TM320C6416T直连,从而实现数据的传输。同时应将TL16C550C的片内寄存器选择线与TM320C6416T的BEAl,BEA2,BEA3引脚相连,当TL16C550C的片选信号CSO,CSl为高电平,为低电平时,TLl6C550B即被选中。CS0,CSl直接与高电平相连。则与CPLD的I/0相连,如此便实现了以CPLD来实现TL16C550C的选通。

责任编辑:gt

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

    关注

    68

    文章

    20148

    浏览量

    246954
  • dsp
    dsp
    +关注

    关注

    559

    文章

    8214

    浏览量

    363841
  • 寄存器
    +关注

    关注

    31

    文章

    5588

    浏览量

    129035
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何在CW32 MCU上优化I2C通信

    在嵌入式系统中,CW32 MCU的I2C接口通常用于与各种外设(如EEPROM、传感器等)进行数据通信。为了实现高效、稳定的I2C通信,必须
    发表于 11-27 06:25

    DSP、FPGA之间SRIO通信的问题?

    目前在使用DSP和FPGA之间通过SRIO的SWRITE事务完成双向数据通信,大多数情况下都正常,但是在我不停的给DSP进行烧写程序时,会偶尔出错,FPGA无法收到DSP下发的
    发表于 11-15 16:22

    2025华为数据通信创新峰会欧洲站圆满落幕

    “华为数据通信创新峰会2025”今日在德国慕尼黑盛大启幕,吸引了来自德国、法国、意大利、瑞士、西班牙、土耳其等30+国家的800余位行业专家及合作伙伴参会。与会者围绕智能网络发展趋势及欧洲数智化转型
    的头像 发表于 10-13 09:38 832次阅读

    华为发布数据通信未来十大技术趋势报告

    宏科等多位院士莅临大会作主旨报告。会上,华为发布《数据通信未来技术趋势》报告(以下简称“报告”),引领未来网络发展方向。 华为数据通信产品线研发副总裁、数通技术规划部部长金闽伟表示:“数据通信网络始终随终端与应用需求的演进而持续
    的头像 发表于 09-14 15:37 4494次阅读
    华为发布<b class='flag-5'>数据通信</b>未来十大技术趋势报告

    工业数据通信网关是什么?有什么推荐?

    在当今工业 4.0 和智能制造的大背景下,工业数据通信网关作为连接工业设备与上层系统的关键桥梁,发挥着至关重要的作用。它就像是工业领域的 “翻译官” 和 “数据快递员”,能够实现不同设备之间的
    的头像 发表于 08-27 14:35 586次阅读
    工业<b class='flag-5'>数据通信</b>网关是什么?有什么推荐?

    CYUSB3014采用5根地址线通信,但其中一条地址线悬空,对数据通信有影响吗?

    CYUSB3014采用5根地址线通信,但其中一条地址线悬空,对数据通信有影响吗??是否还能进行正常的多个端点通信,只要跳过那个地址线对应的socket即可?
    发表于 05-21 07:59

    2025华为河南商业市场数据通信新品推介会成功举行

    近日,以“品智联接耀中原,成就商业好生意”为主题的2025华为河南商业市场数据通信新品推介会在郑州成功举办。来自数据通信领域的众多精英以及业内知名企业代表齐聚一堂,共同见证华为在数据通信领域的创新
    的头像 发表于 05-15 14:12 896次阅读

    AD7768与STM32F407进行数据通信,SPI1读取到的数据不完整,整体数据在字节上出现偏移,怎么解决?

    进行数据通信,我们采用所有数据都在DOUT0上输出的模式。 然后使用DRDY信息来进行数据中断触发。 但是目前存在问题:SPI1读取到的数据不完整,整体
    发表于 04-24 06:40

    网段隔离器实现多网段PLC数据通信

    在工厂自动化生产中,不同生产环节的PLC处于不同网段,实现多网段PLC数据通信对提升生产协同性至关重要。网段隔离器凭借自身特性,可有效解决这一问题。 实现原理 网段隔离器基于NAT(IP地址转换
    的头像 发表于 04-18 15:15 639次阅读
    网段隔离器<b class='flag-5'>实现</b>多网段PLC<b class='flag-5'>数据通信</b>

    华为DatacomStar数据通信实训系统正式发布

    以“因聚而生 众智有为”为主题的“华为中国合作伙伴大会2025”在深圳举行。会议期间,由华为数据通信产品线和企业培训与认证部联合打造的“DatacomStar数据通信实训系统”正式发布,定义人才培养新范式!
    的头像 发表于 03-24 15:11 1321次阅读

    如何在imx8m plus CPU上使用TL16C554?

    你好。我们使用 imx8m 加 cpu 我正在尝试使用 TL16c554 uart 扩展芯片。我需要一个地址和数据接口,有没有办法使用它?如果是这样,请提供详细的解释。
    发表于 03-20 07:02

    TL16C554发送一串数据,在回环测试中总读不出最后一字节数据,为什么?

    TL16C554已经实现了发送数据没有问题 接收数据出现以下问题 发送一串数据,在回环测试中总读不出最后一字节
    发表于 01-22 06:57

    利用ADS1293与ARM进行SPI数据通信的程序设计该注意什么?

    请教大家,利用ADS1293与ARM 进行SPI 数据通信的程序设计该注意什么?比如比特率的设置该设置什么?有没有相关的例程可以参考?3通道24位数据是按通道的次序每个通道24位这样发送吗?这个24位是不是只是指ECG的信号?谢谢!
    发表于 01-06 06:44

    调试TL16C752B收发数据TL16C752B一直没有数据出来是哪里出了问题?

    正在调试TL16C752B收发数据,读写寄存器都没有问题,但是TL16C752B一直没有数据出来,求解决,附件中有我的代码,数据格式是8个
    发表于 12-31 08:12

    使用SN65hvd50进行数据通信,在待机空闲的情况下温升有10℃以上,为什么?

    最近在使用SN65hvd50进行数据通信,发现这个片子在待机空闲的情况下温升有10℃以上,是在没有外接连线,没有任何匹配电阻的情况下,R和D测试均为低电平!如果在通信条件下温升有20多摄氏度。查找原因无果,换过不同批次的片子情况相同,麻烦大神给个指点!!!
    发表于 12-20 10:29