0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用Lab Windows/CVI实现PC与DSP的串行通信功能

电子设计 作者:电子设计 2018-08-30 10:11 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

0 引言

随着数字信号处理理论及微电子技术的高速发展,数字信号处理器(DSP)已广泛应用于各个控制领域。而在控制系统中,通常会利用PC机与DSP之间的通信来对系统各个状态/参数进行监控。这种方法既利用了DSP功耗低、价格相对便宜、功能强大、抗干扰能力强、适宜于分布现场等优点,同时又结合了PC机的软硬件资源丰富、管理功能强大、人机界面友好、操控平台稳定可靠、数据通信方便快捷等系统功能优势。为此,本文拟通过使用比较广泛的RS-232-C接口标准来研究PC与TMS320F2812 DSP之间的异步串行通信。

1 硬件设计

这里采用最简单的三线连接方法,即PC机与DSP的发送、接收端彼此交叉连接,地线对应连接的方法。另外,由于DSP的串行通信接口SCI的两个外部引脚SCITXD和SCIRXD的信号为TTL电平,与RS-232-C标准逻辑电平不一致,因此,要进行信号电平转换后才能连接到PC机的串口接头DB9,图1所示是其硬件连接电路,其中电平转换选用MAX3232芯片和若干电容来实现,使用时只用其中的一对收/发单元。

2 软件设计

2.1 通信协议

本设计将通信的帧格式设置为1个起始位,8个数据位,无奇偶校验位,1个停止位。图2所示为其数据帧格式,其传输波特率为9600 bps,采用全双工通信方法。

PC机发送数据包的格式是:包头+功能码+参数码+数据内容+校验和,本设计分别设置它们占1、2、2、4、4个字节。其中包头是一个数据包开始的标志,这里设置为字符’~’;功能码表示本次通信要完成的操作,其中”01”表示向DSP发送参数,”02”表示让DSP回传数据;参数码表示通信传送的数据类别,”01”表示要传送P参数,”02”表示要传送I参数,”03”表示要传送D参数。假如通过PC机来设置DSP中数字PID控制程序的参数P为15.20,可以设定数据的量纲为1:100,那么就应当发送15.20×100=1520=05F0H,即依次发送字符’0’=30H、’5’=35H、’F’=46H、’0’=30H;且在前面发送的字符串为”~010105F0”。校验和的计算是把从功能码到数据内容己经转换为ASCII码的全部字节连续累加,其值为7EH+30H+31H+30H+31H+30H+35H+46H+30H=021BH,所以,PC向DSP发送完整的数据包为字符串”~010105F0021B”,其格式如图3所示。

DSP上传电流、电压、频率等实时数据的数据包格式与图3类似,但它可以不使用功能码或参数码。如频率数据包的包头采用字符’*’,电流数据包的包头采用字符’#’,以示区别即可。

2.2 上位机PC端程序

PC机主要完成三部分工作:一是对从机进行控制(比如修改参数),二是对从机采集的数据进行处理和数值计算,三是向用户提供友好、美观的仪器界面。以上功能均可依靠软件实现。上位机软件既可以使用Visual C++、VisualBasic等通用的开发工具,也可以使用LabWin-dows/CVI、LabView等专用于计算机测控领域的虚拟仪器软件开发平台。LabWindows/CVI是NI公司开发的32位、以ANSI C为核心的交互式虚拟仪器开发环境,它将功能强大的C语言与测试技术相结合,具有灵活的交互式编程方法和丰富的库函数,可为开发人员建立监测、自动测试、数据采集、过程监控等系统提供理想的软件开发环境,是实现虚拟仪器及网络化仪器的快速途径。由于其简单易学,故可大大缩短开发周期。LabWindows/CVI具有专门用于RS-232串行通信的函数库,主要包括:串行口打开/关闭函数(OpenCom/OpenComConfig和CloseCom)、串行口输入/输出函数(ComRd、ComRdByte、ComWrt、ComWrtByte)、串行口控制函数(FlushInQ、FlushOutQ)、串行口状态查询函数(GetInQLen、GetOutQLen)、串行口事件处理函数(InstallCom-Callback)等5大类。以下是程序部分代码:

主函数:

PC机发送程序:




PC机要能向DSP发送控制命令,比如开机,关机,修改参数等,下面以修改PID控制参数P为例。

2.3 下位机DSP程序

DSP的软件开发可利用集成开发环境CCS3.1(Code Composer Studio),并采用C语言进行编程。利用DSP的SCI模块实现串行通信的主程序流程图如图4所示。DSP的串行通信程序设计可采用查询法或中断法来进行数据的收发,这里采用中断方式接收数据,而用查询方式发送数据。DSP收到PC机发送来的数据时,便转入相应的中断子程序,其中断服务子程序流程如图5所示。其串口SCI初始化配置如下:


如何利用Lab Windows/CVI实现PC与DSP的串行通信功能?

void SCI_Init(void)

{

SciaRegs.SCICCR.all=0x0007;//字符长度8位

SciaRegs.SCICTL1.all=0x0003;//使能发送和接收

SciaRegs.SCICTL2.all=0x0002; //使能接收中断,禁止发送中断

SciaRegs.SCIHBAUD=0x00;//置波特率高8位

SciaRegs.SCIHBAUD=0xF3;//置波特率低8位

SciaRegs.SCICTL1.all=0x23;//使SCI退出复位

}

DSP收到字符串”~010105F0019D”之后,首先进行和校验。如果正确,则根据功能码和参数码判断PC机发送的是否是修改参数P的命令。然后提取数据”05F0'’,将其转换为十进制数1520,再除以100即得到要设置的P值15.20;如果和校验出错,则要求主机重发。若PC机发送的是上传数据的命令,则将发送标志变量send_flag置1,这样,在主循环中,经过判断后,便可向PC机发送数据。

3 结束语

本文利用LabWindows/CVI开发平台编写了上位机PC程序,同时利用CCS3.1开发环境编写下位机DSP程序,然后通过RS232总线进行串行通信。利用这种方法设计的PC机与DSP的串行通信系统具有硬件结构简单、成本低、实现容易等特点,并具有良好的可移植性和可扩展性,能够很好地满足PC与DSP的通信需求。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    559

    文章

    8217

    浏览量

    364030
  • PC
    PC
    +关注

    关注

    9

    文章

    2164

    浏览量

    158507
  • 串行通信
    +关注

    关注

    4

    文章

    602

    浏览量

    36991
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    并行与串行的基本通信方式

    、异步串行通信方式:指通信的接收与发送设备使用各自的时钟控制数据的发送和接收过程。其特点是:不要求发送双方时钟严格一致,容易实现,设备开销小,但每个字符要附加2~3位,用于起始位、校验
    发表于 11-24 06:36

    串行通信相关的基础知识

    串行通信是电子设备中数据交换的基石。最常见的串行通信协议有UART,SPI,I2C等。
    的头像 发表于 10-15 10:53 1694次阅读
    <b class='flag-5'>串行</b><b class='flag-5'>通信</b>相关的基础知识

    如何利用Trace机制实现LLCP预览功能

    在蓝牙协议栈开发过程中,有时需要预先知道 LLCP。本文将介绍如何利用 Trace 机制实现 LLCP 预览功能
    的头像 发表于 10-09 17:55 1535次阅读

    串行通信和并行通信的区别是什么

    串行通信和并行通信是数据传输的两种基本方式,它们在数据传输方式、线路设计、传输效率、应用场景等方面存在显著差异。以下是两者的详细对比: 一、数据传输方式 串行
    的头像 发表于 07-22 10:55 1793次阅读

    全面了解串行通信

    串行通信是一种数据传输方式,它将数据按 逐位顺序 (bit by bit)在一条传输线上发送和接收,与并行通信(同时传输多位数据)形成对比。以下是其核心概念、工作原理、特点及应用的详细解释: 一
    的头像 发表于 07-19 14:13 1160次阅读

    鸿蒙 PC 震撼登场!华为打破 Windows 垄断!

    鸿蒙 PC 震撼登场!华为打破 Windows 垄断! ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 家人们,华为带着首款鸿蒙系统的PC杀疯了!这可
    的头像 发表于 07-11 18:15 1187次阅读
    鸿蒙 <b class='flag-5'>PC</b> 震撼登场!华为打破 <b class='flag-5'>Windows</b> 垄断!

    AMD携手微软共迎Windows 11 AI+ PC 生态新篇章

    运行70B大模型处理器平台、微软Windows 11 AI+ PC推出AI功能更新,到ISV加速开发本地化AI应用、OEM厂商全面布局AI+ PC产品……一个由硬件创新、软件生态与行业
    的头像 发表于 05-16 14:35 642次阅读
    AMD携手微软共迎<b class='flag-5'>Windows</b> 11 AI+ <b class='flag-5'>PC</b> 生态新篇章

    有没有办法可靠地使 UMASS 连接在 Windows 10/11 下工作?

    LINUX 的 PC 连接时,设备也能按预期工作。 如果我们的设备连接到运行 Windows 10/11通过 USB2端口我们可以以串行模式与所有通道进行通信。 切换到 UMASS
    发表于 05-15 07:30

    微软推出全新Surface Windows11 AI+ PC Surface Laptop 13 英寸和Surface Pro 12英寸

    作者:Brett Ostrum,微软公司副总裁,负责 Surface 业务 Windows 11 AI+ PC 引领了个人计算的新浪潮,具有快速、持久、安全的特性,是专为解锁 AI 体验而设计的设备
    的头像 发表于 05-08 15:52 1065次阅读

    USB串行Windows驱动程序安装程序无法下载是怎么回事?

    USB 串行 Windows 驱动程序安装程序无法下载
    发表于 05-07 08:09

    串行通信接口SPI与QSPI的区别

    在嵌入式系统的世界里,选择正确的通信技术可以对项目的性能和可扩展性产生重大影响。让我们比较两个流行的串行通信接口:SPI(串行外设接口)和QSPI(四路SPI)。
    的头像 发表于 04-09 15:24 2574次阅读
    <b class='flag-5'>串行</b><b class='flag-5'>通信</b>接口SPI与QSPI的区别

    微软推出全新Windows 11 AI+ PC产品

    随着企业展望未来,通过云端和终端访问并释放价值将成为每个人工智能战略的基石。将云计算的可扩展性与基于强大神经处理单元(NPU)的本地 AI 计算效率相结合,微软推出了突破性的 PC 品类:Windows 11 AI+ PC,可为
    的头像 发表于 02-18 18:20 1348次阅读

    EE-191:利用SHARC DSP SPORTs实现无缝UART

    电子发烧友网站提供《EE-191:利用SHARC DSP SPORTs实现无缝UART.pdf》资料免费下载
    发表于 01-06 14:40 0次下载
    EE-191:<b class='flag-5'>利用</b>SHARC <b class='flag-5'>DSP</b> SPORTs<b class='flag-5'>实现</b>无缝UART

    微软新功能Windows与iPhone互联

    微软近期透露了一项创新功能,旨在让Windows用户能够像使用苹果的AirDrop一样,在iPhone与PC之间便捷地传输文件。这一名为Phone Link的应用,是微软专为Windows
    的头像 发表于 12-12 11:42 1214次阅读

    豆神AI Windows PC端1.0版本登陆微软商城

    豆神 Al Windows PC端 1.0 版本已于 12 月初正式登陆微软商城。作为定制版本的核心亮点,豆神教育首次面向 Windows用户全面推出为中国青少年提供大语文领域素质能力培养的数字内容产品和 AI智能学习工具
    的头像 发表于 12-10 11:16 1497次阅读