与PC机间串行通信的实现

发布者:星辰古泉最新更新时间:2014-08-19 来源: 21ic关键字:PC机  串行通信  异步串行收发器 手机看文章 扫描二维码
随时随地手机看文章
DSP在电子工业领域得到了越来越广泛的应用。在DSP应用系统设计中,必不可少的是各种通信接口的设计。与并行接口相比,串行接口的最大特点是减少了器件引脚数目,降低了接口设计复杂性。串行数据传输可分为同步和异步两种模式。通用PC机的RS-232接口为通用异步接口UART(Universal Asynchronous Receiver and Transmitter),而MOTOROLA公司的串行外围设备接口SPI、队列SPI(QSPI)、PHILIPS公司的内部IC总线(I2C),National公司的微总线(MICROWIRE)均为同步串行协议。

目前几乎所有的数字信号处理器都提供了一个或多个串行接口,然而,多数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模块。数据传输软件主要包括以下几部分。 (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)中断服务程序


在进行中断方式数据传输时,需要注意的是:虽然DSP的McBSP有自身的发送和接收中断,但由于McBSP与MAX3111之间的同步串行数据传输速率高于MAX3111将数据以一定波特率(最高230kbps)异步发送的速率,因此如果应用McBSP的发送中断,将造成发送数据的丢失。同时,在SPI 协议中,数据的传输是由SPI主设备发起的,所以在SPI方式下的McBSP并不能产生接收中断。因此,本方案应用的关键之一是将MAX3111的IRQ 中断信号连接至DSP的一外部中断,以实现中断方式下可靠、正确的数据传输。 针对现有的多数据数字信号处理器(DSP)芯片上不提供异步串行收发器(UART)接口,而只有同步串行接口的情况。本文通过简单的硬件电路将同步接口转换为异步串行接口,充分利用了DSP的在片硬件资料,很好地解决了DSP的异步串口扩展问题。此方法在工程实践中已经得到应用。实践证明,在各种波特率下(最高可为230.4kbps),其查询和中断方式数据传输正确、可靠,各元件工作正常 ,并且在此硬件连接的基础上,利用DSP的DMA功能进行串行数据接收及发送收到了良好效果,进一步提升了应用系统的性能。

关键字:PC机  串行通信  异步串行收发器 引用地址:与PC机间串行通信的实现

上一篇:异步串行通信接口的IP核设计
下一篇:串行通信控制器85C30及其应用

推荐阅读最新更新时间:2024-05-02 23:07

基于VB的机房计算机电源监控系统
  为了能实时、高效、方便地监控、管理机房计算机电源设备,并实现对机房的计算机集中监控、少人值守的目标,本文提出了一个机房计算机电源集中监控系统方案。本系统的目标是:通过相关软件、硬件的设计,实现由1台主机(上位机)通过单片机(下位机)监控多个机房中多台计算机的开关情况。即利用主机的监控软件与单片机进行通信,以实现对计算机电源的监控功能。本系统应具备如下功能:   (1)通过键盘或鼠标对多台计算机进行开关控制并对整个机房的所有计算机进行开关状态的检测。   (2)上位机与下位机能进行可靠、实时的通信。   (3)界面设计清晰,功能齐全。备有菜单及各机房的电脑分布图,并带有右键快速菜单。   (4)能根据不同机房中不
[电源管理]
基于VB的机房计算机电源监控系统
针对单片机串行通信技术全解析
1、 什么是串行通信? 串行通信(英语:Serial communication)是指在计算机总线或其他数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式。与之对应的是并行通信,它在串行端口上通过一次同时传输若干位元数据的方式进行通信。 简言之:串行通讯就是排成一队走,并行就是排成一列走,如下图 2、同步串行通信(Synchronous serial communication)和异步串行通信(Asynchronous serial communication) 发送端在发送串行数据的同时,提供一个时钟信号,并按照一定的约定(例如在时钟信号的上升沿的时候,将数据发送出去)发送数据,接收端根据发送端提
[网络通信]
单片机串行通信基础知识
1、引脚信号 在实际工作中,CPU与其他外部设备间的信息交换,或一台计算机与另一台计算机之间信息交换均称为 通信 。 并行通信是数据的各位同时传送。并行通信的特点是传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,适合近距离传输。在集成电路芯片的内部、同一插件板上各部件之间、同一机箱内各插件板之间的数据传送都是并行的。 串行通信是数据一位一位顺序传送。串行通信的特点是数据传送按位顺序进行,最少只需一根传输线即可完成,成本低但速度慢。计算机与远程终端或终端与终端之间的数据传送通常都是串行的。串行通信的距离可以从几米到几千公里。 串行通信又分为异步通信和同步通信两种方式。在单片机中,主要使用异步通信方式。
[单片机]
RS-232接口与单片机串行通信程序
单片机的串行口是非常有用的,通过他我们可以把单片机系统的数据传回电脑处理或者接受电脑传过来的数据而进行相应的动作,下面我就给大家介绍上一下电脑的RS-232接口与单片机串行通信程序设计方法,www.51hei.com上还有很多这样的文章大家去搜索下。 RS-232简介: 在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯.RS-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通讯接口. ("RS-232-C"中的"-C"只不过表示RS-232的版本,所以与"RS-232"简称是一样的)它是在1970年由美国电子工业协会(EIA)联合贝尔系统,调制解调器厂家及计算机终端生产厂家共同
[嵌入式]
基于智能通信控制器的串行通信系统的抗干扰设计
电力系统运行的安全与否与系统当时的运行状态有密切的关系,对于电力调度部门来说,如果能实时地全面掌握电力系统各部分的运行状态,进行远程监测,对保证系统的安全、稳定、经济运行无疑具有十分重要的意义。电力远程监测一般采用串行方式进行通信,保证数据的可靠传输是其最重要的技术指标之一。由于工业现场的恶劣环境以及配电系统的远距离传输,干扰是产生偶然性错误和影响整个系统可靠运行的主要原因。提高系统的抗干扰能力是电力远程监控的一个重要的研究方向。 系统概述 本系统是一个上下位机形式的工业配电测控系统,根据功能需要,下位机选用了控制功能比较强大的研华IPC-610工业控制计算机(IPC: Industrial Personal Computer
[工业控制]
什么是并行通信、串行通信?其中串行通信的两种基本形式
并行通信:是指数据的各位同时进行传送的通信方式。 串行通信:是指数据一位一位顺序传送的通信方式。 串行通信的两种基本形式:同步通信和异步通信。异步通信所传输的数据帧格式是由1个起始位、1~9个数据位、1~2个停止位组成,依靠起始位和停止位保持同步;同步所传输数据帧格式是由多个字节组成的一个帧,每个帧都有两个(或一个)同步字符作为起始位以触发同步时钟开始发送或接收数据。 波特率是指每秒钟传送二进制数码的位数(bit),单位bps(bit per second),bit/s。
[单片机]
串行通信RS232/RS485转换器
1 引言 以单片机为主体构成的分布式数据采集和控制系统,以附加电路结构简单、工作稳定可靠而被广泛应用在工业控制系统中。目前广泛使用的单片机产品(如Intel的8031、Armel的89C51、 GMS97C51等系列单片机)芯片中都集成了串行通信接口。使用这些串行通信接口和RS485接口驱动芯片就可以构成总线型通信网络,从而将多台单片机系统连接成一个分布式数据采集和控制系统。这种RS485网络结构具有接口简单、灵活性好、价格低、易于控制等优点,可广泛应用于工业控制系统中。 目前,在很多的分布式数据采集和控制系统中,为了克服单片机的功能不足,都引入了PC机,并采用主从式结构模式,即以PC机为主机,分布在现场的各个单片机系统为从机而
[嵌入式]
揭秘DSP电机控制串行通信系统电路设计
  在电机控制系统中,客户端要通过上位机来设置电机的运行参数,而被控电机也要将各种运行状态信息实时地传给远程控制端客户,串行通信由于连线少,成本低,简单可靠,被广泛应用。本文利用SCI串行通讯接口实现DSP控制器与PC机的通信连接;电机控制系统中还必须有数码显示驱动电路,以便于现场控制人员及时了解电机当前的转速等信息,因此利用SPI同步串行口来实现DSP与外围设备之间的通信就很有必要。分析了数字信号处理芯片 TMS320LF2407A DSP的串行外设接口SPI,及串行通信接口SCI模块。在电机控制实验系统中,给出了由这2个模块构成的串行通信应用实例。重点讲述了相关的串行通信接口电路硬件设计高。    串行通信接口模块的硬件电路设
[嵌入式]
揭秘DSP电机控制<font color='red'>串行通信</font>系统电路设计
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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