通信新闻
稳定平台,是指能够使被稳对象在干扰作用下相对惯性空间保持方位不变,或在指令力矩作用下,按给定规律相对惯性空间转动的装置。它广泛应用于惯性测量、武器装备以及空间技术中。在稳定平台中,伺服控制技术是关键技术之一。
随着电子技术和计算机技术的发展,DSP芯片的性能不断提高,这为选用数字伺服控制方案创造了条件。在基于DSP的两轴高精度稳定平台系统中,采用两块TI公司的马达专用控制芯片TMS320LF2407A作为控制器,分别控制单轴。F2407A包含了高速C2XX DSP CPU内核及SCI与CAN通信模块,为实时通信提供了方便。但它同时也存在人机界面不友好、软件资源没有PC机丰富等因素,这些制约了它的应用。
为了充分发挥该控制芯片的特点,兼具良好的人机接口以利于调试与监控,本系统采用PC机和DSP的主从式结构。PC机作为主机,完成对DSP的控制、数据结果的显示以及人机接口,而DSP完成实时控制,上传实时数据。这样,如何实现多DSP与PC机的可靠通信,在整个系统实现中成为一个重要问题。本文以基于DSP的两轴高精度稳定平台为背景,介绍了一种TMS320LF2407A与PC多机串行通信的软硬件方案,并对这种方法的优缺点进行了讨论。
1 TMS320LF2407A及串行通信接口(SCI)
1.1 TMS320LF2407A简介
TMS320LF2407A是在TMS320系列DSP的基础上,专为数字电机控制而设计的。采用高性能静态CMOS技术,电压从5V降为3.3V,减少了功耗,而且指令执行速度提高到40MIPS,几乎所有指令都可以在25ns的单周期内完成,如此高的运算速度可以通过采用高级控制算法如:自适应控制、卡尔曼滤波以及状态控制,来提高系统的性能。而且,它有电机控制应用所必须的外设,如:32K 片内FLASH、2K 单访问RAM、串行外设接口(SPI)、两个事件管理模块、16通道双10位A/D转换器。不仅如此,片内还有串行通信接口(SCI)和CAN控制器模块,为多机通信的实现提供了可能。
1.2 串行通信接口(SCI)
串行通信接口支持与CPU以及其它使用非归零格式的异步外设之间的异步串行数字通信。SCI的接收器与发送器都是双缓冲的,有各自独立的控制位与中断位,都可以同时工作在全双工模式下。为了保证数据的完整性,SCI对接收的数据进行间断检测、奇偶性、超时以及帧错误等的检查。SCI可以通过16位的波特率选择寄存器,设置多达65000种通信速度,还可以通过RS?232或RS?485与许多主流外设接口。另外,SCI还提供了多处理器通讯模式,为其与PC多机通信的实现奠定了基础。
2 TMS320LF2407A与PC多机串行通信的一种典型方法(SCI方法)
SCI具有多处理器通讯模式,可以用来进行多机通讯。多处理器通讯格式允许处理器在同一串行线路图1PC与F2407A的通讯数据格式中,将数据块有效地传递给其它处理器,在同一条串行线路中,每次只可以有一个传输,即每次只有一个发送者。通讯过程中,在串行数据链路中的所有DSP,设置它们的SCI的sleep位(SCICTL1.2)为进入接收睡眠模式,这样,只有探测到地址帧才中断。发送者发出的数据块的第一个帧数据为地址帧,被所有的接收者读取,只有具有正确地址(由软件设定,不同DSP也可以有相同的地址,这样可以实现广播通讯)的接收者才能读取其后的数据,其它接收者,不作响应,等待下一地址帧的到来。多处理器通讯模式又可以分为空闲线路模式与地址位模式。空闲线路模式在地址帧前有一段延时,没有附加的地址/数据位,在处理超过10个字节的数据块的情况下,空闲线路模式比地址模式效率高。空闲线路模式应该用在典型非多处理器通讯中。而且,对于空闲线路模式在地址帧前的延时,PC机处理起来较繁琐,故,没有采用空闲线路模式,而是采用了地址位模式。地址位模式,顾名思义,就是每个字节中加入一个地址/数据位(1表示地址帧,0表示数据帧)来区分数据与地址,这种模式处理小块数据是十分有效的。于是,本方法就是通过使PC在整个通讯过程中模拟DSP的通讯,采用地址位多处理器通讯模式来实现DSP与PC多机串行通信。
2.1 通讯协议与硬件接口?
为了实现通讯,PC与F2407A之间必须采用相同的通讯格式。图1是PC的异步串行通讯数据格式与F2407A在地址位多处理器模式下的数据格式。
从图中可以看出,通讯格式可采用8位数据位、1位停止位、DSP禁止奇偶校验位,波特率为9600bit/s。对于PC机通讯格式的确定,是通过对8250异步串行通讯控制器进行初始化来实现的。为了实现与F2407A在地址位模式下通讯,采用上述通讯格式的要求是不够的,必须在数据中通过指定奇偶校验位来加入地址/数据位。PC在发送地址帧时,设定奇偶校验位为1,发送数据帧时,设定奇偶校验位为0。
由于禁止了奇偶校验位,对通讯的可靠性有所影响。为了克服这一影响,引入了一种基于奇偶校验的校验数方法。在每7个字节数据后置一校验数,校验数的每一位对应前面每个字节数据的奇偶校验位,最高位b7置校验数低7位的奇偶校验位,当数据少于7字节时,对应位置0。
上位PC机发给每个轴DSP的控制命令如图2所示,第一字节为DSP编号,第二字节为数据长度,第三个字节为命令号,其后的字节为命令参数,数据长度不超过10个字节。
图2中,数据长度:表示从命令号开始至命令参数n之间的帧数,n=0、1、2...6;校验数:从命令号至命令参数n的每字节数据的奇偶校验位填入校验数相应位中,如命令号的奇偶校验位填入校验数的b0位,以此类推,b7位填入校验数的奇偶校验位。
下位DSP上传的数据为8个字节,前6个为实时数据,第7个为接收状态数,表示DSP接收的状态,每次数据接收结束置接收状态数。第8个字节仍旧为校验数。
由于采用的RS-232通讯协议是点对点通讯,没有冲突检测与仲裁机制,而应用环境又是多机通讯,就必须控制对总线的访问。这里采用了主从通讯方式,即由上位PC机对总线访问进行控制。由上位机向从机发送指令与数据,当要求从机上传数据时,发送上传指令,等待从机的数据的上传。在此期间不发送任何要求发送数据的指令,以免产生冲突,导致通讯失败。
在硬件上,由于RS-232是负逻辑,其低电平“0”在+5V-+15V之间,高电平“1”在-5V--15V之间。而F2407A用低电压设计,输入电压为3.3V,输出高电平“1”为2.4-2.8之间,低电平“0”为0.4-0.8之间。显然,这与RS-232协议不匹配,必须进行电平逻辑转换。我们就采用Modem的最简方式(3线制),通信中,双方都被看作数据终端设备,双方都可发也可收(全双工模式)。硬件接口图如图3所示。
2.2 软件实现?
对于上位PC机来说,设定定时中断每隔20ms通过串行通讯口COM1向下位DSP发送指令,如果发送的是要求下位机发送数据的指令,则等待数据上传结束,对数据进行校验,如果校验出错,则发送重发指令,继续等待数据上传,反复3次,如果还是出错,显示通讯失败,退出中断。下位DSP接收数据采用查询的方式,它对接收的数据进行校验,如果校验错误,置接收状态数为假。DSP的数据发送则由上位机控制,发送固定长度的数据(包括实时数据以及状态数据,长度7字节),数据末尾加入校验数,实现与上位机多机串行通讯。当上位机读出下位DSP上次接收状态出错,则再次重复发送上次的指令。上位机可以采用Visual C++,下位DSP可以采用C语言与汇编语言混合编程,这样实现起来方便,且效率较高。图4分别给出上位机的定时中断与下位DSP接收数据的流程图。
3 结束语?
SCI方法实现成本较低,只需一块电平逻辑转换芯片及一根串行通信线,就实现了TMS320LF2407与PC多机串行通信。虽然禁止了奇偶位,但由于采用了基于奇偶校验的校验数方法,通过实际运行,测得其误码率仍旧在要求范围内,实现了高速可靠通讯,满足了实时通讯要求。但也有一定局限性,比如说:由于RS?232协议的限制,通讯距离只有大约15m,没有冲突检测与仲裁机制,只有采用PC机对总线访问进[FL(2K2]行控制,这样就降低了PC的使用效率以及总线的使用效率。对于这些问题,在以后的研究中可以进一步解决。如,可以采用RS?485协议,增加通讯距离,采用2407A上备有的CAN控制器,通过CAN总线来解决,但实现中也存在一些不足。总的说来,SCI方法实现的多机通讯是一种性价比较高的高速实时通讯方法,有很广泛的应用领域。
参考文献?
1 刘和平等编著.TMS320LF240X DSP结构、原理及应用.北京:北京航空航天大学出版社,2002
2 胡广等.在Windows 98下PC和TMS320LF240的多机串行通讯.电子技术,2001(3)
3 潘名莲等编著.微计算机原理.北京:电子工业出版社,1994
全部0条评论
快来发表一下你的评论吧 !