基于DSP和RS-485串行通信的控制系统设计

2015-01-27 06:30焦佳伟石云波
自动化与仪表 2015年10期
关键词:通信协议上位中断

焦佳伟 ,石云波 ,邹 坤

(1.苏州中盛纳米科技有限公司,苏州 215123;2.中北大学 电子测试技术国家重点实验室,太原 030051)

加速度传感器在研制后及使用前均需要进行参数性能的测试和标定,用到加速度传感器批量标定测试设备,该设备在运行过程中,需要下发数据指令进行控制,也需要向上位机反馈运行数据,实时对工作过程中的位置信号以及工作状况进行监测和在线分析,达到实时监测的目的,因此需要系统和上位机进行通信。通常的微处理器都集成有1路或多路硬件UART通道,可以非常方便地实现和上位机进行串行通讯[1]。在工业控制、智能仪表等领域中,也常常使用简便易用的串行通讯方式作为数据交换的手段。但在工业控制等环境中,常会有电气噪声干扰传输线路,使用RS-232通讯时经常因外界的电气干扰而导致信号传输错误;另外,RS-232通讯的最大传输距离在不增加缓冲器的情况下只可以达到15 m[2]。

本文基于此设计了一种基于DSP和RS-485串行通信的控制系统,该系统选用SP3485芯片进行串行通信,该芯片采用了平衡差分接收的RS-485通信协议标准,其抗共模干扰能力强,接收灵敏度高,通常被用作为一种相对经济、具有相当高噪声抑制、相对高的传输速率、传输距离远、宽共模范围的通信平台。同时,RS-485电路具有控制方便、成本低廉等优点。

1 DSP与RS-485通信电路设计

系统采用TI公司的TMS320F28335芯片,该DSP融合了控制外设的集成功能和微处理器MCU的易用性,具有强大的控制和信号处理能力以及C语言编程效率,能够实现复杂的控制算法,内部有3路专用的串行通信模块(SCIA、SCIB、SCIC),每个模块都有用于通信的I/O引脚:发送端SCIxTXD和接收端 SCIxRXD (x 分别为 A、B、C)。 SCI模块支持CPU与其他使用标准不归零码格式(NRZ)的异步外围设备间的数字通信。SCI接收器和发射器是各自拥有一个16级深度FIFO,也各自拥有自己的使能和中断位。两者都能独立进行半双工通信,或者联立进行全双工通信[3]。

系统中采用SP3485芯片,该芯片是1种+3.3 V低功耗半双工RS-485收发器,完全满足RS-485串行协议要求,数据传输速率高达10 Mb/s[4]。

DSP处理器TMS320F28335与SP3485芯片进行连接,构成RS-485通信接口电路,如图1所示。

图1 RS-485通信接口电路Fig.1 Communication interface circuit

电路通过光耦TLP512-4对DSP处理器TMS320-F28335和RS-485总线电路进行隔离,提高系统的抗干扰能力。

SP3485接收器和发送器的选择由DSP的GPIO20引脚控制,通过软件编程控制GPIO20脚电平,可控制SP3485处于发送或接收状态。

如果DE的逻辑电平为高时,将使能驱动器的差分输出;如果为低时,则驱动器的输出呈现三态。

如果RE#脚的逻辑电平为低时,使能接收器输入,反之,禁止输入。

2 DSP串行通信程序设计

DSP的SCI模块发送器和接收器可以通过查询和中断方式进行控制。在查询方式下,不使能接收和发送中断,CPU通过查询相应标志位,状态成立就去执行相应的动作。这种方式不需要开设SCI中断,节约了CPU的资源,但是在高速通信速率下,有可能导致数据丢失,因此只建议在低速率情况下使用。在中断方式下,CPU在中断服务程序中进行数据的接收和发送,可以保证数据传送的及时性和确定性,代价是增加了系统中断[5]。本设计采用中断方式,上位机和下位机采用应答方式进行通信,系统的串行通信协议具体规定如表1所示。

表1 通信协议格式Tab.1 Communication frames format

下发和上传数据指令都包括帧头、字节长度、有效指令/数据、和校验、帧尾5个部分,协议数据均采用16进制通信。

(1)帧头:表示一帧数据的开始;

(2)字节长度:表示一帧数据的整个字节长度;

(3)有效指令/数据:有效指令表示上位机要让下位机执行的命令;有效数据表示下位机向上位机反馈的相关信息;

(4)和校验:表示有效指令/数据的数据相加和,如果相加超出了FF那么就取和的低字节;

(5)帧尾:表示完整的一帧数据结束。

本系统的通信波特率为9600 b/s,每个字节包括8位数据位和l位停止位,无校验。接收数据采用中断方式,发送数据采用直接写外设方式。对SCI初始化,设置数据帧格式、波特率、中断优先级等,SCI初始化程序为

采用中断方式接收数据,在接收中断服务程序中,读取SCI接收缓冲寄存器,放在自定义的接收缓冲区内。一条指令信息帧包含多个字节,需要识别完整的一帧数据,设计中通过判断数据头、数据尾,对数据长度校验来保证接收到完整的一帧数据。除了上述措施外,软件中也启用了定时器,进行超时处理,若在一定的时间内,没有完整的接收到一组数据,就将此帧数据丢弃,清除相应标志以及缓冲区,重新接收新的数据指令。具体中断程序流程图如图2所示。

图2 中断接收数据流程Fig.2 Interrupt receiving data flow chart

为了保证下发数据指令准确有效执行,在上述措施的基础上,还进行了和校验,和校验程序放到主函数中的while(1)里面进行处理,部分程序为

3 上位机软件

上位机软件使用 C++语言开发,开发平台为Visual Studio 2010,这个版本的Visual Studio提供了对C++新标准的支持,并增加了C++代码的实时语法错误检查,极大地提高了工作效率[6]。系统控制软件主要下发控制指令,实现对测试平台的控制和实时状态显示,如图3所示。

图3 控制界面Fig.3 Control interface

4 系统试验与结果

对加速度传感器批量标定测试设备平台进行试验,上位机下发数据指令,主要对水平、竖直、翻转电机进行操作。通过串口助手下发不同方位电机运转、停止以及正反运行指令进行测试,测试的部分数据指令如图4所示。

图4 测试的数据指令Fig.4 Test data instructions

通过串口助手软件调试稳定后,换用编写的上位机控制软件下发数据指令进行调试,经过反复试验验证,电机能够执行相应的指令,性能稳定、运行可靠,满足了加速度传感器的自动化批量标定测试方面的要求。

5 结语

本系统实现了DSP与PC机通过RS-485进行串行通信,并成功应用于加速度传感器批量标定测试设备中。文中重点介绍了通信电路的设计以及通信协议,还详细地介绍了DSP通信程序的设计,以及软件采用的措施,提高系统通信的可靠性。经试验验证,该系统硬件电路简单,软件编写容易,数据通信稳定可靠。

[1]王炼红,章兢.TMS320F2812 DSP与PC机的串口通信设计[J].微计算机信息,2006,22(20):173-175.

[2]广州致远电子有限公司.嵌入式隔离RS-485收发器产品数据手册[Z],2009.

[3]刘陵顺,高艳丽,张树团.TMS320F28335 DSP原理及开发编程[M].北京:北京航空航天大学出版社,2011.

[4]广州致远电子有限公司.数据手册[Z],2009.

[5]徐科军,陶维青,王海宁,等.DSP及其电气自动化工程应用[M].北京:北京航空航天大学出版社,2010.

[6]邵宪辉.多路加速度传感器测试系统设计[D].哈尔滨:哈尔滨工业大学,2010.

猜你喜欢
通信协议上位中断
基于Wireshark的列控中心以太网通信协议解析器的研究与实现
“单片机中断概述”微课教学设计
一种考虑GPS信号中断的导航滤波算法
要攻城略地关键要有好筹码,这匹水产动保“黑马”如何能迅速上位?
Linux中断线程化分析及中断延时测试
特斯拉 风云之老阿姨上位
车载网络通信协议标准化问题研究
跟踪导练(二)(5)
电动汽车充电接口及通信协议新国标发布
基于ZigBee和VC上位机的教室智能监测管理系统