您的位置 首页 观点

与PC机间串行通讯的完成

摘要:目前大多数数字信号处理器(DSP)芯片上未提代通用异步串行收发器(UART),只提供2~3个同步串行接口,其与微机及其它设备进行串行通信时,必须在DSP上扩展异步串行接口。以美国TI公司TMS3

DSP在电子工业范畴得到了越来越广泛的运用。在DSP运用体系规划中,必不可少的是各种通讯接口的规划。与并行接口比较,串行接口的最大特色是减少了器材引脚数目,降低了接口规划杂乱性。串行数据传输可分为同步和异步两种形式。通用PC机的RS-232接口为通用异步接口UART(Universal Asynchronous Receiver and Transmitter),而MOTOROLA公司的串行外围设备接口SPI、行列SPI(QSPI)、PHILIPS公司的内部IC总线(I2C),National公司的微总线(MICROWIRE)均为同步串行协议。

1.gif

现在简直一切的数字信号处理器都供给了一个或多个串行接口,但是,大都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.gif

答应接连数据流传输; (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/M%&&&&&%ROWIRE接口)与PC机或其它设备之间的异步数据传输。 3.2 对MAX3111的操作 MAX3111经过SPI接口与主设备进行16位数据的全双工同步通讯,即主设备传送16位数据给MAX3111的一起,也可接纳到MAX3111发送的 16位数据。主设备在MOSI线上向MAX3111发送的16位串行数据序列中包含传输格局操控字,如波特率设备、中止屏蔽、奇偶校验位等,一起还有发送的数据字。MAX3111在MISO线上向主设备发送的16位数据序列中除了接纳到的数据外,还包含中止标志等状况位。所以经过16位的实时数据传输,主设备可获得MAX3111作业状况信息,一起对其具有彻底操控权力。这样,两个设备的操控、状况、数据信息的实时通讯就确保了数据传输的牢靠性和稳定性。

3.gif

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模块。数据传输软件首要包含以下几部分。 (1) McBSP串口初始化 如上所述,在本运用中应将TMS320C54XX DSP的McBSP串行口装备为SI形式,以DSP作为主设备。表1给出了应设置的寄存器或寄存器位的值,未触及的寄存器坚持其默认值即可。 表1 McBSP设置为SPI形式时相关寄存器值 位称号位 值描 述地点寄存器 CLKSTP 11b 使能McBSP的时钟贪婪形式,并使其在SCLK变高之前半周期开端传输数据 SPCR1 CLKXP 0 设置BCLKX信号的极性 PCR CLKXM 1 设置BCLKX引脚信号为输出(SPI主设备) PCR RWDLEN1 000~101b 设置接纳数据包的长度(有必要与XWDLEN1的值持平) RCR1 XWDLEN1 000~101b 规划发送数据包的长度(有必要与RWDLEN1的值持平) XCR1 CLKSM 1 采样率发生器时钟源CPU时钟 SRGR2 CLKGDV 1~255 设置采样率发生器的将频因子 SRGR1 FSXM 1 设置BFSX引脚信号为输出 PCR FSGM 0 在每个数据包传输期间,BFSX信号都有用 SRGR2 FSXP 1 设置BFSX信号为低电平有用 PCR XDATDLY 01b 供给正确BFSX信号发动时刻 XCR2 RDATDLY 01b 供给正确的BFSX信号发动时刻 RCR2 依据表1,调用CSL的McBSP装备库函数即可完结McBSP的初始化。 McBSP_Handle hport0; /*声明指向McBSP的句柄*/ McBSP_Config PortConfig={ /*界说寄存器设置结构*/ 0x1800, /*设置串口操控寄存器1的值*/ 0x0000, /*设置串口操控寄存器2的值*/ 0x0040, /*设置接纳操控寄存器的值*/ … }; hport0=MCBSP_open(0,MCBSP_OPEN_RESET);/*翻开第一个McBSP串口*/ MCBSP_config (hport0,%26;amp;PortConfig);/*按结构设置McBSP的各寄存器*/ (2)MAX3111作业形式及波特率设置 在进行通讯之前,DSP有必要首要依据指令序列格局向MAX3111写入装备指令字,之后才干进行正确的数据传输,如8位数据位、一位中止位、无奇偶校验位、波特率为115200、使能接纳和发送中止的异步数据传输。DSP对MAX3111进行装备的扼要进程为: … McBSP_start(hport0, /*McBSP开端数据传输*/ McBSP_SRGR_START|MCBSP_SRGR_FRAMESYNC |McBSP_RCV_START|MCBSP_XMIT_START,0x200 ); while(!McBSP_xrdy(hport0));/*等候发送寄存器为空*/ McBSP_write16(hport0,0x6E0B); /*向MA3111写入装备指令字*/ … (3)中止服务程序

4.gif

在进行中止办法数据传输时,需求留意的是:尽管DSP的McBSP有本身的发送和接纳中止,但由于McBSP与MAX3111之间的同步串行数据传输速率高于MAX3111将数据以必定波特率(最高230kbps)异步发送的速率,因而假如运用McBSP的发送中止,将形成发送数据的丢掉。一起,在SPI 协议中,数据的传输是由SPI主设备建议的,所以在SPI办法下的McBSP并不能发生接纳中止。因而,本计划运用的要害之一是将MAX3111的IRQ 中止信号衔接至DSP的一外部中止,以完结中止办法下牢靠、正确的数据传输。 针对现有的大都据数字信号处理器(DSP)芯片上不供给异步串行收发器(UART)接口,而只要同步串行接口的状况。本文经过简略的硬件电路将同步接口转化为异步串行接口,充分运用了DSP的在片硬件材料,很好地处理了DSP的异步串口扩展问题。此办法在工程实践中现已得到运用。实践证明,在各种波特率下(最高可为230.4kbps),其查询和中止办法数据传输正确、牢靠,各元件作业正常 ,而且在此硬件衔接的基础上,运用DSP的DMA功用进行串行数据接纳及发送收到了杰出作用,进一步提升了运用体系的功能。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/226048.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部