当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于Lab Windows/CVI的PC与 DSP的串行通信


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类似,但它可以不使用功能码或参数码。如频率数据包的包头采用字符’*’,电流数据包的包头采用字符’#’,以示区别即可。[!--empirenews.page--]
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为例。

[!--empirenews.page--]


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

    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的通信需求。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭