用ST16C2552实现DSP高速串行通讯扩展

发布者:peon1989最新更新时间:2007-10-18 来源: 国外电子元器件关键字:中断  接收  串口  时钟 手机看文章 扫描二维码
随时随地手机看文章

1 引言

随着大规模集成电路工艺技术的迅速发展,DSP已经越来越广泛地应用于工业场合。工业现场由于许多场合通讯双方相距较远,为了保证通讯成本和可靠性,必须采用串行方式进行通讯。目前TI公司DSP都只有一个UART口,比如TMS320LF2407,当同时需要与上位机和下面的被控对象进行通讯,或者同时连接几个上位机时,则需要对DSP进行串行通讯口扩展,而使用可编程的ST16C2552可以一次扩展两组相互独立的串口,满足各种条件下串行通讯的要求。

2 ST16C2552介绍

ST16C2552是Exar公司生产的通用异步通讯扩展器件,并与飞利浦公司的SC16C2552相兼容,可扩展2路独立的串行通讯,可编程设定通讯起始位、停止位和校验位以确保通讯的可靠性,可编程配置各种不同的波特率,在24 MHz的时钟下,STl6C2552的数据传输速率可高达1.5 Mbit/s。ST16C2552提供16字节的接收和发送FIFO,允许用户配置四种不同的中断出发点,DSP可以根据配置一次并行读人多个数据,提高了传输效率,节省了DSP的工作时间。STl6C2552在2.5 V、3.3 V、5 V供电条件下均可以正常工作,不需要增加任何缓冲器件就可以和各种DSP或者单片机直接连接,非常方便。

ST16C2552提供了两套内部寄存器,每套由12个寄存器组成,用于监测和控制UART每个通道的功能。分别为:发生/接收数据保存寄存器(THR/RHR)、中断状态和控制寄存器(IER/ISR)、FIFO控制寄存器(FCR)、线状态和控制寄存器(LCR/15R)、调制解调器状态和控制寄存器(MCR/MSR)、可编程数据速率(时钟)控制寄存器(DLL/DLM),一个用户可访问的暂存寄存器(SPR)和一个选择功能寄存器(AFR)。

3 硬件连接

ST16C2552和TMS320LF2407的硬件连接方法如图1所示,DSP的数据线DO~D7与ST16C2552的数据线DO~D7相连。DSP地址线A0~A2与ST16C2552的地址线A0~A2相连。DSP的地址线A3与ST16C2552的通道选择引脚CHSEL相连。DSP的外部空间选择引脚IS与ST16C2552的片选

引脚CS相连。两个通道的中断引脚分别连接到DSP的外部中断引脚XINT1和XINT2。采用有源14.7456 MHz晶体振荡器为ST16C2552提供时钟频率。两组UART分别通过两个MAX3485连接到外部RS-485总线,MAX3485的使能由DSP的IOPC6和。IOPC7两引脚控制,整个系统采用3.3 V供电。图2为ST16C2552和TMS320LF172407的最小系统原理图。

4 ST16C2552通讯流程和编程范例

ST16C2552的内部寄存器通过3根地址线A0~A2进行寻址,通过配置寄存器LCR确定具体寻址的寄存器。通过不同的寄存器配置,可以实现需要的各种功能。ST16C2552内部分别有16字节的发送和接收FIFO,通过寄存器对FCR的FCR[0]置1使能,使ST16C2552工作在FIFO模式。

FIFO收发可以通过查询方式来实现。在该模式下,通过FCR[5:4]设置发送FIFO触发数。若设为14个,DSP能够一次写14个字节的数据,然后读中断状态寄存器ISR判断FIFO中的数据量是否低于设定的值,如果为低则继续写数据。同样通过FCR[7:6]设置接收FIFO触发数。若设置为14个,ST16C2552可一次从外面接收14个字节数据,DSP可以读寄存器ISR判断是否收满,若已经收满,可一次从ST16C2552读入14个数据,通过读寄存器LSR的0位判断接收寄存器中是否还有数据,如果有,继续读出,直到读完为止。

FIFO收发也可以通过中断方式来实现。若产生中断则INT引脚为高电平。如果没有配置ST16C2552工作在FIFO模式下,则DSP每次只能发送或者接收一个字节的数据,就触发中断或者查询寄存器状态位。这里给出来用中断方式进行通讯的流程和C语言程序。

设ST16C2552处于被动响应通讯方式,初始设置为接收状态,接收上位机数据,判断处理后转为发送方式向上位机回复数据。

4.1 初始化

ST16C2552初始化流程如图3所示,C语言程序如下:




4.2 中断发送和接收

以通道1为例,系统中断发送、接收数据流程分别如图4、5所示,C语言程序如下:








5 结束语

基于DSP和ST16C2552的硬件连接已经调试成功,TMS320LF2407的程序也通过了CCS编译,并在电路板上调试成功。调试结果表明,在波特率115 200 b/s下通讯数据传输准确,误码率极低。该系统现已应用于产品中。只要将该设计的电路连接和程序稍加改动,就可以应用于其他DSP、单片机的高速串行口扩展,非常有用。

关键字:中断  接收  串口  时钟 引用地址:用ST16C2552实现DSP高速串行通讯扩展

上一篇:用ST16C2552实现DSP高速串行通讯扩展
下一篇:用ST16C2552实现DSP高速串行通讯扩展

推荐阅读最新更新时间:2024-05-02 20:38

STM32学习之使用库函数编写串口通信
注:使用的芯片是STM32F103ZET6 一、串口初始化部分的程序 1.初始化时钟   因为要使用串口1这个外设,因此在使用之前就需要开启串口1的时钟,并且之后还需要设置IO输入输出的模式,在这里我们也需要开启GPIO的时钟。程序如下: //初始化串口时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); //初始化GPIO时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);   可是为什么要初始化时钟呢在《STM32中文参考手册_V10》的RCC中有这样一句话“当外设时钟没有启用时,软件不能读出
[单片机]
STM32学习之使用库函数编写<font color='red'>串口</font>通信
博通推出首款同步双频接收的5G WiFi组合芯片
博通(Broadcom)发布业界第一个5G WiFi 2x2多重输入与输出(MIMO)组合晶片,并搭载即时同步双频(Real Simultaneous Dual Band,RSDB)支援,让行动连线获得更大效益。此款代号为BCM4359的新晶片能同时在两个频段上进行传输与接收,让需要经常连线与多工作业的使用者获得绝佳的使用体验。 在RSDB支援下,BCM4359能同时在5GHz与2.4GHz频段上作业,即使同时使用多个应用程式,特别是看串流影片或玩游戏,也能获得优异的传输率与低延迟率。在双串流MIMO模式下,BCM4359可达到每秒867Mb(Mbps)的速率,让频宽发挥最大效益。对于需要同时在多频段上作业的应用程式,系统
[网络通信]
配置STM32系统时钟经验分享
不知道大家学习STM32时候有没有遇到过这样一种情况,在大神那里拿到了一个工程来学习,然后迫不及待的想烧录到自己板子跑一下看看什么效果,但是当打开工程说明的时候发现大神用的板子是25M的外部晶振,自己的板子是8M的外部晶振,如果直接下载程序的话,那么程序相关的时序就会被破坏,模块之间就没办法正常通信,这时候该怎么办?换外部晶振吗?还是再买一个新板子? 本着有事问度娘的原则,于是各种百度各种找资料,最后发现我的运气确实很差,别人分享的内容都没有我想要的知识,于是本着求人不如求己打破砂锅问到底的精神,找原子、野火相关教程来看,发现在时钟树配置的时候可以配置PLL系数,配置外部晶振分频系数,从而根据外部晶振的频率配置系统时钟。 有思路之
[单片机]
配置STM32系统<font color='red'>时钟</font>经验分享
一种新型多探头双频超声波接收电路的设计方案
1.引言 现代渔业主要利用探鱼器来探测水下鱼类资源的分布,提高捕鱼业的产量。探鱼器利用的就是超声波探测的原理,由超声波探头根据需求发射出相应频率的超声波,超声波在遇到水中不同障碍物后反射回来,被探头接收。根据对反射数据的分析,最终得到该水域的信息。随着探鱼器的发展,为了探测更多更详细的水域信息,大角度多频率探测为了发展的趋势。所以增加超声波探测角度一般有两种方式,单探头的机械回扫探测和多个探头探测。由于单探头的机械回扫电路设计复杂,且探测间隔受到机械回扫速度的限制,所以一般采用多探头的方式。传统多探头接收电路由多个独立的单探头接收电路组成,且只能接收一种频率的超声波,硬件体积庞大,成本高昂且效率低下。本文以三个双频探头为例子,设计
[电源管理]
一种新型多探头双频超声波<font color='red'>接收</font>电路的设计方案
STM8L时钟切换详解
SMT8L的四大时钟源LSE,LSI,HSE,HSI,都可以作为系统时钟。 系统上电后,HSI/8作为默认系统时钟,启动完成后,用户可以切换系统时钟源。 切换分为自动切换和手动切换,没有太大的区别。 下面是自动切换的流程图,按照此流程图,编写程序,即可实现时钟切换。 只需要三步即可实现系统时钟切换: ①置位CLK_SWCR寄存器中的SWEN位,允许时钟切换 ②向CLK_SWR中写数据,选择目标时钟源 ③等待SWBSY清零,即等待时钟切换完成 时钟切换完成后,在主循环中翻转IO电平,通过测量IO口的输出频率,可以直观的看到切换时钟,系统时钟频率发生了变化。 本程序选择LSE(32.768KHz)作为系统时钟,时钟切换完成
[单片机]
STM8L<font color='red'>时钟</font>切换详解
AS3900接收器内部结构及性能讲解
  AS3900采用内置星型网络管理协议,是全球唯一使用27 MHz ISM(工业、科学和医疗)频段的收发器。使用该频段避免了常用2.4 GHz频段经常出现的干扰,同时减少人体对能量的吸收(SAR或比吸收率)。这对于人体局域网(body area network)或医疗人体局域网(medical body area network)等接近人体的收发器来说是主要的考虑因素。   AS3900低功耗接收器采用奥地利微电子的内置星型网络管理协议,为自我管理全部网络功能提供了一套容易使用、硬连线且免版税的协议。与其他完全运行于内部或外部微控制器的协议相比,硬连线星型网络协议简化了产品设计,极大地降低了系统功耗。此款低功耗收发器在轮询模式
[单片机]
单片机与单片机之间串口通信问题
需要注意TXD与RXD所指的均是对于本身来说的,所以两者之间应该使用交叉串口来进行连接 ,否则会没有数据。 另外可以将一个单片机1的TXD接到单片机2的RXD,而另单片机2的TXD接到电脑上去,这样就可以得到反馈的数据,可以做调试处理。 另外在网站上看到一个说串口缓冲的问题,好像我以前也碰到过,后来也不知道怎么解决的。。 记录一下,我将数据读取回来后存于一数组中,然后进行数据处理。但由于处理程序耗时过长,然后再读取相关数组中数据时,其值已改变为下一次通讯命令数据了!故需在处理程序开始定义临时变量来存取相关数据,即可解决该问题。
[单片机]
STM32:定时器中断与优先级
前言 利用HAL库开发实现功能:使用TIM2实现定时,每隔1秒实现双闪功能 一、基础知识 1、常见的定时器资源 1.系统滴答定时器 SysTick 集成在Cortex M3内核的定时器,主要目的是给RTOS提供时钟节拍做时间基准。比如HAL库函数中的HAL_Delay()就是基于这个定时器开发的。如果要做嵌入式Linux的相关项目,要和上位机进行通讯的话,这个函数就不能用了。 2.看门狗定时器 WatchDog 3.实时时钟 RTC 4.基本定时器 TIM6、TIM7 5.通用定时器 TIM2、TIM3、TIM4、TIM5 在基本定时器的基础上,实现输出比较、输入捕获、PWM生成、单脉冲模式输出等功能。这类定时
[单片机]
STM32:定时器<font color='red'>中断</font>与优先级
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved