中易网

怎么样实现:DSP串口通信,实现DSP与PC得连接。

答案:1  悬赏:80  
解决时间 2021-11-14 14:17
怎么样实现:DSP串口通信,实现DSP与PC得连接。
最佳答案
目前几乎所有的数字信号处理器都提供了一个或多个串行接口,然而,多数DSP芯片提供的是同步串口。在实际的应用中,也需要DSP能够与外设进行异步串行通信,如与PC机进行串行数据传输就要求DSP系统具UART串行接口。针对这种情况,本文研究并实现了一种简单、可靠的异步串口扩展方法。

1 扩展方案

综合分析DSP应用系统中扩展异步串行接口的方案,其基本方法和优缺点如下:

(1)在DSP的并行总线上扩展UART芯片(如TI公司的TL16C552),用硬件实现异步数据传输。优点是软件实现简单,缺点是在总线上还需扩展其它设备,这样做使目标系统复杂化,增大系统体积。

(2)利用DSP的McBSP和DMA,在不扩展其它硬件的情况下,用软件实现异步数据传输格式。这种方法的优点在于硬件简单,但软件复杂,加大了CPU的负担,所以不适合通信数据量大的场合。

(3)利用DSP的McBSP同步串行接口,在扩展适当硬件的情况下,将同步数据变换为UART异步数据格式进行传输。这样,就充分利用了DSP的片上资源,使硬件系统尽量简单化。

综合考虑硬件连接和软件编程的方便性,本文采用第三种方案,应用美国MAXIM公司的MAX3111串行异步收发器,与DSP的McBSP口直接连接。硬件上无需任何其它外围器件,同时由于异步数据的发送和接收由MAX3111以硬件方案实现,所以软件编程需要考虑的也只是DSP与MAX3111之间的同步数据通信。这样,用最简单的硬件连接和软件编程就能实现同步到异步的串行数据格式转换。

2 SPI接口协议及DSP的多通道缓冲串行接口

2.1 SPI接口协议

串行外围设备接口(SPI)是MOTOROLA公司提出的一个同步串行外设接口,允许CPU与各种外围接口器件以串行方式进行通信、交换信息。它使用4条线:串行时钟线(SCK)、主机输入/从机输出线(MISO)、主机输出/从机输入线(MOSI)、低电平有效的使能信号线(CS)。这样,仅需3~4根数据线和控制线即可扩展具有SPI接口的各种I/O器件。其典型的接口示意图如图1所示。

2.2 McBSP的功能与特点

TMS320C54XX系列DSP芯片都具有2~3个高速、全双工、多通道缓冲串行接口(McBSP),其方便的数据流控制可使其与大多数同步串行外围设备接口。McBSP是在标准串行接口的基础上对功能进行扩展的,除具有标准串口的功能特点外,其灵活性体现在如下几个方面:

(1)双缓冲区发送,三缓冲区接收,允许连续数据流传输;

(2)可与SPI、IOM-2、AC97等兼容设备直接接口;

(3)可编程帧同步、数据时钟极性,支持外部移位时钟或内部频率可编程移位时钟;

(4)拥有相互独立的数据发送和接收帧同步脉冲和时钟信号;

(5)多通道发送和接收,最多可达128个通道,速度可为100Mbit/s。

2.3 McBSP的SPI方式

TMS320C54XX系列DSP芯片的McBSP串口工作于时钟停止模式时与SPI协议兼容。当将McBSP配置为时钟停止模式时,发送器和接收器在内部得到同步,这时McBSP可作为SPI的主设备或从设备。发送时钟信号(BCLKX)对应于SPI协议中的串行时钟信号(SCK),发送帧同步信号对应于从设备使能信号(CS)。在这种方式下对接收时钟信号(BCLKR)和接收帧同步信号(BFSR)将不进行连接,因为它们在内部与BCLKX和BFSX相连接。McBSP工作于SPI模式的主机时,与其它SPI器件接口如图2所示。

3 MAX3111通用异步收发器

3.1 MAX3111功能特点

MAX3111通用异步收发器是MAXIM公司专门为小型微处理系统进行最优化设计的UART,它包括一个振荡器和一个可编程波特率发生器;具有一个可屏蔽的中断源;另具有一个8字节的接收FIFO(先入先出)缓冲器。它应用SPI/MICROWIRE接口技术直接与主控制器进行通信,线路简单、体积小,通信速率可达230kbit/s。另外其内部除具有UART之外,还包括两个RS-232电平转换器,这样无需再接入普通的MAX232进行电平转换,即可应用一个芯片实现微控器(具有SPI/MICROWIRE接口)与PC机或其它设备之间的异步数据传输。

3.2 对MAX3111的操作

MAX3111通过SPI接口与主设备进行16位数据的全双工同步通信,即主设备传送16位数据给MAX3111的同时,也可接收到MAX3111发送的16位数据。主设备在MOSI线上向MAX3111发送的16位串行数据序列中包括传输格式控制字,如波特率设备、中断屏蔽、奇偶校验位等,同时还有发送的数据字。MAX3111在MISO线上向主设备发送的16位数据序列中除了接收到的数据外,还包括中断标志等状态位。所以通过16位的实时数据传输,主设备可获得MAX3111工作状态信息,同时对其具有完全控制权利。这样,两个设备的控制、状态、数据信息的实时通信就保证了数据传输的可靠性和稳定性。

4 DSP与MAX3111的接口设计

DSP的McBSP串行接口工作于SPI模式时可直接与MAX3111进行连接,从而实现与RS-232设备进行异步数据传输。此时DSP作为SPI协议中的主设备,其接口电路如图3所示。

DSP的发送时钟信号(BCLKK)作为MAX3111的串行时钟输入,发送帧同步脉冲信号(BGSX)作为MAX3111的片选信号(CS)。BDX与DIN连接作为发送数据线,BDR与DOUT连接作为接收数据线。MAX3111的TX与T1IN连接,RX与R1OUT连接,以便利用其片内的转换器实现UART到RS-232电平的转换。MAX3111的中断信号(IRQ)与DSP的外部中断相连。

在SPI串行协议中,主设备提供时钟信号并控制数据传输过程。由MAX3111接口电路时序图(图4)可知,必须设置DSP的McBSP于适当的方式才能保证与MAX3111的时序相配合。

MAX3111要求在数据传输过程中CS信号必须为低电平,在传输完毕后必须为高电平。此信号由McBSP的BFSX引脚提供,因此必须正确设置DSP的帧脉冲发生器,使之在每个数据包传输期间产生帧同步脉冲,即在数据包传输的第一位变为有效状态,然后保持此状态直到数据包传输结束。

McBSP的采样率发生器产生适当频率的时钟信号,由BCLKX引脚输出,保证主从设备间的同步数据传输。因此必须正确设置DSP的采样率发生器时钟源(CLKSM)和时钟降频因子(CLKGDV)。根据SPI传输协议,必须正确设置数据发送延迟时间(XDATDLY)。由图4可知MAX3111要求在SCLK变高之间的半个周期开始传输数据。

所以必须为McBSP选择合适的时钟方案,即设置McBSP的时钟停止模式。在本应用中采用McBSP的时钟停止模式2(CLKSTP=11b,CLKXP=0),这样即可保证与MAX3111的时序相配合。

5 DSP的异步通信软件的设计

考虑到应用系统软件的可移植性和可读性,数据传输软件采用C语言进行编写,这样,可以利用DSP开发软件CCS2.0所提供的DSP/BIOS中的芯片支持库函数(CSL)。CSL提供C语言可调用的DSP外围接口库函数,其中包括DMA模块、McBSP模块、TIMER模块等。应用这些库函数可大大提高程序可读性,缩短软件开发周期。在本文所提到的应用中,主要调用MCBSP模块。数据传输软件主要包括以下几部分。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
社保卡有没有交怎么查询
胎停,急!急!急!我怀孕74天,检查为
乌衣派出所地址有知道的么?有点事想过去!
怎样提高销售技巧?
科目2考试,下车时没有语音提示说恭喜您考试1
激光脱唇毛真的可以一劳永逸吗?怎么有的人说
北京54坐标系转西安80坐标系在测量出之后的区
索尼hdr摄像机长时间放置后为什么开不了机(
龙蟠派出所地址在什么地方,想过去办事
孕妇可以喝旺仔小牛奶和莫斯利安吗?姐妹们都
阆中哪里卖生日蛋糕
梦见掉厕所是什么意思?好不好呢?
关山林的原型是谁
苏滁现代产业园派出所地址在什么地方,想过去
鑫洋歌厅地址好找么,我有些事要过去
推荐资讯
北京哪里打溶脂针比较好,打过或者知道的说下
梦见自己掉进大海是什么意思?好不好呢?
龙光桥派出所地址在什么地方,想过去办事
梦见海岸是什么意思?好不好呢?
一吃饭就想吐是怎么回事
俘獲的意思是什么?俘獲的释义是什么啊?
我的头发太厚太硬怎么办?我是女生,中长发,
怀孕四个月采取什么睡姿对孕妇和胎儿有好处
重庆最好的别墅装修设计师?重庆最好的别墅室
杨周全书法篆刻工作室地址在什么地方,想过去
我在一个月里打了四次多针灯盏花。是往漆
问下usb无线网卡接收信号增强的方法有哪些?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?