您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 故障诊断仪中PC与DSP通信的设计与实现
故障诊断仪中PC与DSP通信的设计与实现庞伟区何怡刚谢宏曾超尹新周炎涛(湖南大学电气与信息工程学院湖南省长沙市410082)摘要:介绍故障诊断仪中DSP和PC机的通信,包括通信硬件电路组成,通信协议的制定,DSP软件程序部分和Windows下VB串口程序的实现。关键词:故障诊断仪;多通道缓冲串行口(McBSP);MAX3111E;通信协议DesignandImplementationoftheCommunicationbetweenPCandDSPinFaultDiagnosisTesterPangWeiqu,HeYigang,XieHong,ZengChao,YinXin,ZhouYantao(CollegeofElectricalandInformationEngineering,HunanUniversity,Changsha410082,China)Abstract:ThispaperdescribesthecommunicationbetweenDSPandPC,includingthecommunicationhardwarecircuit,thedraftofcommunicationprotocol,theimplementationofDSPsoftwareandVBsoftware.Keywords:Faultdiagnosistester;McBSP(Multi-channelBufferedSerialPort);MAX3111E;CommunicationProtocol1、故障诊断仪的基本原理故障诊断仪可对基本数字芯片、模拟芯片(如运算放大器)、存储器、混合信号芯片以及PCB板级的在线、离线测试和故障分析及其定位上。同时允许用户进行新的芯片库文件和印刷电路板库文件的添加。一般来说,常用的数字芯片测试方法包括功能测试和性能测试。功能测试指输入输出逻辑值之间的关系,即真值表,而性能测试基本上专指延迟时间和输出高低电平值的测试。相对性能而言,数字电路设计者通常倾向于追求功能上的完美,测试的重点也在于检验真值表是否正确。测试数字芯片时候,先按照芯片的功能构造合适的测试向量,然后把测试向量输入到故障诊断仪中,故障诊断仪根据其内部的测试程序把测试向量正确地施加到被测试的芯片上,读回响应向量,然后和期望值进行比较,从而判断数字芯片的好坏。对于运算放大器来说,可以测试集成运放的主要参数IOV,IOI,IBI,通过运放主要参数的偏离程度来判断运放的好坏。对于PCB板,可以通过开关矩阵,在适当的点上施加激励,在相应点上采集响应,把响应送到上位机中,在PC机上进行适当处理后和期望值进行比较从而判断PCB板是否出现故障。2、硬件电路组成TMS320VC5416提供3个高速、全双工的多通道缓冲串行口(McBSP)。McBSP工作于时钟停止模式的时候,可以配置成为兼容SPI协议的接口。PC机的通信是异步RS232接口。硬件上DSP和PC机的通信设计,是通过MAX3111E同步转异步的方法实现的。MAX3111E集成了RS232收发器和UART,并且带有兼容SPI的微处理器接口。利用DSP的McBSP工作于时钟停止模式,配置成兼容的SPI口和MAX3111E相接,转换成RS232接口直接和PC机的COM口通信。如图一所示:基金项目:国家自然科学基金项目(NO.50677014)、高校博士点基金(20060532002)、湖南省自然基金(06JJ2024)、教育部新世纪优秀人才支持计划(NCET-04-0767)和863计划(20060104A1127)资助T1INT1OUTTXR1INR1OUTRXRS232I/OVccDINDOUTSCLKMAX3111EINT1BDX1BDR1BCLKX1BFSX1TMS320VC5416X1X2GNDCSIRQ图一:DSP和PC通信的硬件原理图3、软件设计软件设计主要包括通信协议的制定,上位机Windows下VB软件程序的编写,DSP程序的设计。(1)、通信协议的制定通信协议制定时主要考虑的问题有:接收端能够检测到完整的一帧数据并能够在串口的数据流中正确提取一帧数据,一帧数据完整性的检测,具体命令帧的辨别,在出错的时候能够从错误状态中自动恢复过来。在设计该通信协议时采取主从模式,PC机作为动作的发起者,DSP只能响应PC机的命令而不能主动发送数据。协议规定数据以帧的单位传送,PC机发送命令给DSP的时候要先发送握手信号(0x99)以检测目标板是否已经上电处于正常工作状态,DSP接收到握手命令后回发应答信号(0x88)来表示目标板已经工作正常,然后进入具体的命令发送和接收模式下。考虑到故障诊断仪的功能模块化和可扩展性,协议的一帧编码结构如下:帧头识别码帧的内容校验码帧尾其中,帧头用0xa5表示,帧尾用0x5a表示,识别码用于辨别数字测试功能板(0xa1),模拟测试功能板(0xa2)和PCB测试功能板(0xa3)。帧的内容根据不同的功能板进行具体的编码。检验码的产生是用帧的内容进行字节异或得到。(2)、DSP程序结构DSP芯片软件设计思路如下:在串口中断中用状态机的方法来接收到完整的一帧数据后,向主函数发信号,主函数检测到信号后,读取一帧数据,进行解码,然后根据解码结果去执行相应的命令。串口中断中状态机如下:握手信号0x99接收完一帧数据或超时或接收到的数据有问题接收到别的数据或者超时0xa50xa10xa20xa3一帧还没有接收完毕一帧还没有接收完毕一帧还没有接收完毕串口中断接收状态图IdleRec_Trans_StateRec_Digital_StateRec_Analog_StateRec_Pcb_State图二:串口中断接收状态图其中,状态分为:空闲态(Idle),接收过渡状态(Rec_Trans_State),接收测试数字帧状态(Rec_Digital_State),接收测试模拟帧状态(Rec_Analog_State),接收测试PCB帧状态(Rec_Pcb_State)。(3)、Windows下的程序上位机程序用VB做界面,用ACCESS做数据库。系统操作的主要思路是:在界面上选择测试对象,然后从数据库中调用相应的激励,打包成一帧数据,发送到DSP中。DSP进行解码后执行所要求的操作,采集响应向量,打包成帧回发给PC机。PC机再从数据库中找到期望的响应向量和实际中采集到的响应向量进行比较,从而判断被测对象的正确性。4、结束语用专用的通信接口芯片可以使DSP和PC机的通信更简单。串口通信用状态图的方法比一般的程序流程图更容易把复杂的情况简单化,并且容易编程实现。经实践表明,本方法应用于故障诊断仪中运行良好。由于该方法编程简单,在许多通信协议的实现上都可以采用这种方法。参考文献[1]TMS320C54xDSPReferenceSetVolume5:EnhancedPeripherals.TI公司,2007.[2]Efficientlyinterfacingserialdataconverterstohigh-speedDSPs.TI公司,2000.[3]MAX3111EDataSheet.Maxim公司,1999.[4]ImplementingaSoftwareUARTontheTMS320C54xwiththeMcBSPandDMA.TI公司,2000.[5]B.J.W.,S.A.E..FaultDiagnosisofAnalogueCircuits.ProceedingofIEEE,1985,73.
本文标题:故障诊断仪中PC与DSP通信的设计与实现
链接地址:https://www.777doc.com/doc-2418377 .html