DSP与计算机的异步串行通信.doc

上传人:大米 文档编号:548734109 上传时间:2024-03-06 格式:DOC 页数:20 大小:622KB
返回 下载 相关 举报
DSP与计算机的异步串行通信.doc_第1页
第1页 / 共20页
DSP与计算机的异步串行通信.doc_第2页
第2页 / 共20页
DSP与计算机的异步串行通信.doc_第3页
第3页 / 共20页
DSP与计算机的异步串行通信.doc_第4页
第4页 / 共20页
DSP与计算机的异步串行通信.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《DSP与计算机的异步串行通信.doc》由会员分享,可在线阅读,更多相关《DSP与计算机的异步串行通信.doc(20页珍藏版)》请在金锄头文库上搜索。

1、 DSP与计算机的异步串行通信1 绪论1.1 设计背景在DSP芯片出现之前,数字信号处理只能依靠通用微处理器来完成,由于微处理器芯片速度较低,难以满足高速实时处理的要求。1965年库利和图基发表了著名的快速傅立叶变换FFT,极大地降低了傅立叶变换的计算量,从而为数字信号的实时处理奠定了算法的基础。与此同时,伴随集成电路技术的发展,各大集成电路厂商为生产通用DSP芯片做了大量的工作。1978年AMI公司生产第一片DSP芯片S2811。1979年美国Intel公司发布了商用可编程DSP器件Intel2920,由于内部没有单周期的硬件乘法器,使芯片的运算速度,数据处理能力和运算精度受到了很大的限制。

2、运算速度大哟为单指令周期200250ns,应用范围仅局限于军事或航空领域。随着时间的推移,许多国际上著名集成电路厂家都相继推出自己的DSP产品。这个时期的DSP器件在硬件结构上更适合数字信号处理的要求,能进行硬件乘法,硬件FFT变换和单指令滤波处理,其单指令周期为80100ns,20实际80年代后期,以TI公司的TMS320C30为代表的第三代DSP芯片问世,伴随着运算速度的进一步提高,其应用范围逐步扩大到通信,计算机领域。在2000年以后,DSP制造商不仅信号处理能力更加完善,而且是系统开发更加方便,程序编辑更加灵活,功耗进一步降低,成本不断下降。尤其是各种通用外设集成到片上,大大地提高了数

3、字信号处理能力。这一时期的DSP运算速度可达到单指令周期10ms左右,可在Windows环境下直接应用C语言编程,使用方便灵活,使DSP芯片不仅在通信,计算机领域得到了广泛的应用,而且逐步渗透到了人们的日常消费领域。目前DSP芯片的发展非常迅速。硬件结构方面主要是向多处理器的并行处理结构,便于外部数据交换的串行总线传输,大容量片上RAM和ROM,程序加密,增加IO驱动能力,外围电路内装化,低功耗等方面发展。软件方面主要是综合平台的完善,使DSP的应用开发更加灵活方便。1.2 设计目的通过本次课程设计,综合运用数字信号处理、DSP技术课程以及其他有关先修课程的理论和生产实际知识去分析和解决具体问

4、题,并使所学知识得到进一步巩固、深化和发展。初步培养学生对工程设计的独立工作能力、电子系统设计的一般方法。通过课程设计树立正确的设计思想,提高学生分析问题、解决问题的能力。进行设计基本技能的训练,如查阅设计资料和手册、程序的设计、调试等。本题目要求实现DSP与计算机的异步串行通信,设计目的在于了解DSP与PC机串行通信的实现软硬件方案,了解DSP的中断系统,掌握DSP的I/O工作方式。1.3 设计任务设计DSP与PC的异步通讯接口电路,实现串行数据的发送与接收;通过编写DSP程序,实现DSP与PC机之间的数据交换; 要求详细叙述DSP与PC异步通讯接口设计方案以及控制的编程;按要求编写课程设计

5、报告书,正确、完整的阐述设计和实验结果;在报告中绘制程序的流程图,并文字说明。2 设计原理TMS320C5402已在通信与信息系统、信号与信息处理和自动化控制领域有了广泛的应用。该芯片提供了多通道缓冲串行接口M c B S P(Multichannel Buffered SerialPorts)与外部设备进行通信。因为McBSP是同步串行接口,而计算机RS-2 3 2 接口为通用异步接口U A R T(Universal Asynchronous Receiverand Transmitter),要使计算机与C54 进行通信,必须在DSP方面加一个专门的软件实现。2.1 TMS320C5402

6、简介TMS320C5402是C5000系列中性价比较高的一颗芯片。独特的6总线哈佛结构,使其能够6条流水线同时工作,工作频率达到100MHz。C5402除了使用C54x系列中常用的通用IO口(General Purpose IO,简称GPIO)外,还为用户提供了多个可选的GPIO:HPI8和McBSP。TMS320C5402的主要特性有:(1) 操作速率达100MIPS;(2) 具有先进的多总线结构(1条程序总线、3条数据总线和4条地址总线);(3) 40位算术逻辑运算单元(ALU),包括1个40位桶形移位寄存器和2个独立的40位累加器;(4) 17位并行乘法器与40位专用加法器相连,用于非流

7、水式单周期乘法/累加(MAC)运算;(5) 双地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元(ARAU);(6) 数据/程序寻址空间1M16bit,内存4K16bitROM和16K16bit双存取RAM;(7) 内置可编程等待状态发生器、锁相环(PLL)时钟发生器、2个多通道缓冲串行口、1个8位并行与外部处理器通信的HPI口、2个16位定时器以及6通道DMA控制器;(8) 低功耗,工作电源3.3V和1.8V(内核)。2.2 UART工作原理2.1.1 异步串行通信的格式定义发送一个完整的字节信息,必须有“起始位”、“若干数据位”、“奇偶校验位”和“停止位”;必须定义每位信息的时间宽

8、度每秒发送的信息位个数,即为“波特率”。DSP5402系统中常用的波特率从30019 200 b/s。当波特率为1200b/s时,每个信息位的时间宽度为1/1200833s;无数据通信时,数据线空闲状态应该是高电平,“起始位”为低电平,数据位低位先发且后跟奇偶校验位(若有),“停止位”为高电平,如图1所示:图 1 异步串行通信时序按最基本的异步串行通信时序,软件实现UART在不同架构的单片机上有多种方法。数据接收是关键,异步通信没有可参照的时钟信号,发送方随时都可能发送数据,任何时刻串行数据到来时,系统都应该及时准确地接收。比较而言,本机发送串行数据相对容易,只要对发送出去的电平做持续时间的定

9、时即可。2.1.2 实现方法(1)三倍速采样法三倍速采样法顾名思义就是以三倍于波特率的频率对接收引脚Rx 进行采样,保证检测到“起始位”,又可以调整采样的时间间隔;将有效数据位的采样点控制在码元的中间1/3处,最大限度地减少误码,提高接收的准确性。我们把图1 的起始位和部分数据位放大,如图2 所示,把每个信息位分成三等份,每等份的时间宽度设为ts,以方便分析。图2 始位和部分数据位放大以三倍频对信息位进行采样时,每个信息位都将可能被采样到三次。当处于空闲状态并检测起始位时,最早检测到起始位低电平的时刻必将落在S0 阴影区,虽然每次具体的采样点会在此S0 阴影区随机变化。检测到起始位低电平后,间

10、隔4ts 时间,正好是第一位数据位的中间1/3 处(图2 中Ds 阴影区)。此后的数据位、校验位和停止位的采样间隔都是3ts,所有采样点均落在码元的中间1/3 处,采样数据最可靠。DSP采用此法实现软件UART 时,硬件上只要任意定义两个I/O 引脚,分别初始化成输入(串行数据接收)和输出(串行数据发送)即可;软件上只要实现定时采样,定时时间间隔在中档以上有中断机制的单片机上可以用不同的定时器(TMR0、TMR1、TMR2 等)通过定时中断实现。对于1200 b/s 波特率,码元宽度为833s,采样时间间隔即为278s。整个串行接收或发送是一个过程控制问题,用状态机方式实现最为高效简易。图3

11、给出了串行接收的参考状态机转移过程。图3 串行接收的参考状态机转移过程(2)起始位中断捕捉、定时采样法实现此法的硬件条件是DSP有外部脉冲下降沿中断触发功能, RB0/INT 外部中断脚,CCP1/CCP2 脉冲沿捕捉脚,PORTB 的第4/5/6/7 电平变化中断脚等都可以满足。另外需配备一个定时器,以定时中断方式对接收码元正确采样,或发送串行数据流。其关键的异步接收工作原理简介如图4所示。图4 异步接收工作原理设串行数据位宽度为td。起始位到来时刻(图4 A 点)的下降沿触发一个中断并立即响应该中断。在此中断服务中立即关闭本中断使能位(后续的数据流变化无需触发中断),开启定时器,使其在 1

12、.5td 后产生定时中断,用于采样第一个数据位(确保S0 采样点落在数据位的中心位置处);在处理下降沿中断服务的最后,再检测接收端是否还是0 电平,以区分窄脉冲干扰。在S0 点采样到第一个数据位后的所有采样间隔都是1td,直到收到停止位后,关闭定时器中断,重新开放下降沿捕捉中断,准备接收下一个字节。异步数据接收和发送的状态机控制流程,除了起始位判断和定时时间参数设置与前述方式不同外,其它几乎一样,此处不再重复。此法的好处是可以实现较高的通信波特率。对于通信不是很频繁的系统,此软件UART几乎不耗MCU运行带宽,9600b/s 接收或发送在4 MHz 运行的DSP上即可轻松实现;另外,由于下降沿

13、中断可以唤醒处于睡眠的DSP,故极易实现通信唤醒的功能。缺点是不能全双工通信(除非另外单独用一个定时器实现发送定时),异步接收的引脚必须有下降沿触发中断的能力。在此次实验中,我们选用的是第一种方法来实现。(3)分频系数计算McBSP时钟频率也就是采样频率。TMS320C54x系列DSP的McBSP时钟频率可以由DSP主时钟分频得到。通过对寄存器设置可以设定分频系数。分频系数div可由如下公式得到: 计算后div若非整数则需取整。分频寄存器只有8bit,故最大分频值是256。DSP5402主频为100 MHz,串口波特率设定为9600,则:div=100M (169600)2.2 多通道缓冲串行

14、口McBSP的结构及工作原理C54多通道缓冲串行口(McBSP)主要特点如下:双缓冲区发送,三缓冲区接收以便数据的连续性;接收与发送的帧同步、时钟信号独立;多通道发送和接收,最多可以到达128个通道;数据大小可为8,12,16,20,24和32字长;率和A 率压缩;帧同步、数据时钟极性可编程;内部时钟和帧同步可自行设定。TMS32OC54x系列DSP的每个McBSP接口有6个信号线:BSFX (帧同步脉冲发送)、BFSR (帧同步脉冲接收)、BCLKX(发送数据时钟)、BCLKR(接收数据时钟)、BDX (串口数据发送)、BDR(串口数据接收)。应用时将BFSR和BDR连在一起都和异步串口的发

15、送数据线连接,将BDX和异步串口的接收数据线连接,其余悬空即可。为了模拟异步接口,必须要设计一种方案使McBSP能检测和产生UART的数据帧。因为不能和UART数据帧同步,所以不能保证同步串口的时钟和UART数据帧的起始位的上升沿或下降沿对齐。这样UART数据帧和同步串口间会有偏移,同时也会因DSP的同步串口时钟频率和UART数据帧的波特率不匹配而产生数据的速率偏移。为了减少这两个偏移,可以采用过采样技术,即同步串口对UART数据流进行过采样,然后再识别或产生UART的数据帧。同时采用过采样技术也有利于高速的SPI和低速的UART数据流相匹配。过采样的采样速率可以有多种选择,因为C54x系列DSP数据位数是16bit,为了便于处理本文采用16倍采样率过采样。图5 McBSP口对UART数据采样时钟的理想时序2.3 McBSP管脚作为通用I/O脚通过设置SPCR1,2的(R/X)RST0和PCR的(R/X)IOEN1,可以使MCBSP作为通用I/O引脚。对于FS(R/X)管脚, FS(R/X)M0使作为通用输入管脚。FS(R/X)P(R/X)M和CLK(R/X)P对CLK(R/X)的作用相似。当发送器作为通用I/O时,PCR中的DXSTAT值驱动DX管脚输出。DR总是作为输入脚,其状态有DRSTAT反映。如果CLKS要作为通用输入使用,则收发器必须同时

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号