当前,
机器视觉技术与运动控制技术正日益成为新一代智能
机器人系统的热门技术,在反恐防爆与抗险救灾、星际探测、地质勘察等领域,机器视觉技术和运动控制技术都已得到大量应用。然而,在很多情况下,这两种技术的无缝联结和有机融合却并不理想,以至直接影响到它们的使用效果。笔者通过研究和探索发现,机器人控制系统硬件平台搭建得合理与否是影响上述技术协调工作的重要原因之一。
对于传统的机器人控制系统来说,选用单一的核心芯片将难以让其在机器视觉和运动控制两方面都具有优良的表现,将会导致机器人综合效能得不到充分发挥。众多的集成芯片生产厂家意识到图像处理和运动控制将会是未来半导体芯片的两大重要应用领域,都纷纷推出了基于上述两种应用的芯片。
笔者经过系统研究认识到,利用TI公司的C6000+C2000系列芯片搭建的机器人控制系统架构方案可在机器视觉和运动控制之间找到了一个很好的结合点和平衡点,能较好地起到功能互补的效果。但应当看到,C6000和C2000虽同属TI公司的产品线,而两者的体系架构是不同的,在选择双DSP建立系统时,如何处理它们之间的信号交互和协调工作是必须解决的首要问题。新型双DSP架构的信息交互机制的研究无论在学术上,还是在应用上都具有重大意义。
球形机器人控制系统的整体架构
笔者所在科研团队新近研制了一种新型球形机器人,该机器人能自动扫描和跟踪目标,并可根据图像传感器采集到的数据自主对目标进行识别和判断,属于典型的机器视觉和运动控制相互协调、并行工作的系统。在搭建该球形机器人控制系统时,笔者采用了DSP C6000+C2000的双核架构。其中,C6000芯片主要用来对采集的现场图像信息进行分析和处理,完成目标识别和判断,并输出处理结果;C2000芯片主要用来接收C6000芯片的处理结果,并完成相应的任务管理,如视觉系统云台的扫描运动、防御功能的实现等等。该机器人控制系统的硬件结构如图1所示。
在C6000芯片的选型上,选择了TMS320DM6437(以下简称DM6437)芯片,它是目前TI公司的TMS320C6000系列中性能较好的定点DSP之一。在C2000芯片的选择上,选择了TMS320F28015(以下简称F28015)芯片,它是TI公司推出的低成本,低功耗,基于TMS320C28x内核的定点控制器芯片。
DSP C6000+C2000的组合架构形式,既解决了C6000控制能力稍显不足的问题,又克服了C2000图像处理功能薄弱的缺点,可以最大程度地满足球形机器人控制系统在综合性能上的需求。但是,引入了强大的双DSP系统后,随之而来的便是两者之间的通信问题,若处理不好,反而会适得其反。因此,双DSP芯片间的通信接口的设计是保证整体机器人控制系统能完成高效协调工作的关键所在。
球形机器人控制系统双处理器通信接口方案的选择
笔者在研究过程中曾仔细分析过双DSP架构的硬件结构,发现C6000与C2000硬连接的接口方式可以多种多样,如串口(UART)连接、USB连接、以太网(Ethernet)连接、HPI并行连接、I2C总线连接等。这些方式各有优缺点和各自的适应场合,须考虑自身功能和外部环境的需求来合理选择。表1给出了上述几种信号传输接口的各自性能比较。
从表1中可以看出,I2C为片内总线接口,其接口连接简单可靠,非常适合于短距离高效通信。注意到DM6437和F28015片上都拥有I2C模块,且将双DSP做在同一块PCB板上可以大大减小控制板卡的尺寸,降低电磁干扰,提高整个系统的可靠性。采用这样的硬件设计思路后,片内总线就应该成为首选的通信方式了。而I2C通信是一种很简捷高效的片内总线,其不占用芯片额外资源,除了通信可靠性高外,该接口的硬件设计难度也较小,因此,新型球形机器人控制系统最终确定I2C接口为双DSP的通信接口方式。
球形机器人控制系统的接口设计
I2C总线介绍
I2C总线(Inter IC Bus)是一种用于IC器件之间连接的二进制总线。它通过SDA(串行数据线)及SCI(并行时钟线)两根线,在连到总线上的器件之间传送数据。它根据地址识别每个支持I2C接口的器件。
I2C总线的基本结构
采用I2C总线标准的I2C器件,其内部不仅有I2C接口电路,而且实现了将内部各单元按功能划分为若干相对应独立的模块,通过软件寻址实现片选,减少了器件片选线的连接。CPU不仅能通过指令将某个功能单元挂靠和摘离总线,还可对单元的工作状况进行检测,从而实现对硬件系统简单和灵活的扩展和控制。I2C接口电路结构如图2所示。
I2C总线上的时钟信号
在I2C总线上传送信息时的时钟同步信号是由挂接在SCL时钟线上的所有器件的连接“与”完成的。SCL线上由高电平到低电平的跳变将影响到这些器件,一旦某个器件的时钟信号下跳为低电平,将使SCL线上一直保持低电平,使SCL线上的所有器件开始低电平期。此时,低电平周期短的器件的时钟由低至高的跳变并不能影响SCL线的状态,于是这些器件将进入高电平等待的状态。
当所有器件的时钟信号都上跳为高电平时,低电平期结束,SCL线被释放返回高电平,即所有的器件都同时开始它们的高电平期。其后,第一个结束高电平期的器件又将SCL线拉成低电平。这样就在SCL线上产生一个同步时钟。可见,时钟低电平时间由时钟低电平期到最长的器件确定,而时钟高电平期由时钟高电平期最短的器件确定。
I2C总线上的数据传输
在数据传送过程中,必须确认数据传送的开始和结束。在I2C总线技术规范中,开始和结束信号(也称启动和停止信号)的定义如图3所示。
当时钟线SCL为高电平时,数据线SDA由高电平跳变为低电平定义为“开始”信号;当SCL线为高电平时,SDA线发生低电平到高电平的跳变为“结束”信号。开始和结束信号都是由主器件产生。在开始信号以后,总线即被认为处于忙状态;在结束信号以后的一段时间内,总线被认为是空闲的。
I2C总线的数据传送格式是:在I2C总线开始信号后,送出的第一个字节数据是用来选择从器件地址的,其中前7位是地址码,第8位是方向位(R/W)。方向位“0”表示发送,即主器件把信息写到所选择的从器件;方向位为“1”表示主器件将从从器件读信息。开始信号后,系统中的各个器件将自己的地址和主器件送到总线上的地址进行比较,如果与主器件发送到总线上的地址一致,则该器件即为主器件寻址的器件,其接收信息还是发送信息则由第8位(R/W)确定。
I2C接口的硬件设计
由于DM6437和F28015都支持I2C接口,这使得I2C接口的硬件设计变得非常简单,只需将各自的信号线和时钟线对应相连即可。双DSP的I2C总线接口硬件连接图如图4所示。
各引脚连接说明如下:
① DM6437的M3和M2引脚分别对应I2C_DATA和I2C_CLK,而F28015的GPIO32和GPIO33可以分别复用为I2C_DATA和I2C_CLK 。考虑到阻抗不匹配等因素会影响总线数据传输效果,因此还应该在I2C_DATA和I2C_CLK 的直连线路上各串联一个小电阻(R107和R108)。
② 由3.1.1节的I2C总线结构介绍可知,I2C_DATA和I2C_CLK是双向电路,必须都通过一个电流源或上拉电阻连接到正的电源电压。由于DSP的输出CMOS电平为3.3V,所以在硬件设计时将I2C_DATA和I2C_CLK总线通过上拉电R59和R60连接到了3.3V的Vcc电源上。
I2C总线通信的软件设计
双DSP系统通信思路
双机通信软件的设计问题涉及到DSP C6000(DM6437)和DSP C2000(F28015)两部分的软件设计。设计双DSP系统的初期设想是,用DM6437来接收图像信息并进行处理,将最终得到的处理结果传送给F28015,F28015根据得到的处理结果来执行相应的
电机控制及其他子任务。可以看到,在这个通信过程中,DM6437是主机,负责发送数据,而F28015是从机,负责接收数据并执行相应控制命令。但是应注意到,在I2C总线通信中,主从机的地位并不是一直不变,可以根据需要随时重新设定主机和从机。由于嵌入式系统的人机界面一般不大友好,想要观察实验结果往往需要打印数据或者通过LED等指示装置来体现。在本文中,考虑到DM6437芯片极其对应的软件开发系统CCS V3.3支持在线打印功能,因此,为了简化设计,便于观察,双DSP的I2C通信可以这样考虑:先让DM6437发送一个数据到I2C总线上,并打印这个发送数据的相关信息,然后在F28015这一端接收数据,如果接收到DM6437传来的数据,就将数据进行一定的变换(例如乘以一个倍数),然后再通过I2C总线将变换后的数据发送给DM6437。DM6437接收返回的数据并打印返回数据的相关信息。通过观察打印信息,就可以很清楚地了解到I2C通信的实时效果。
DM6437的I2C通信软件
根据所介绍的基本思路,可以设计出DM6437的I2C通信软件的流程图(图5)。
F28015的I2C通信软件
根据所介绍的基本思路,可以设计出F28015的I2C通信软件的流程图(图6)。
结论
文中提出的TMS320DM6437+TMS320F28015的软硬件设计方案在新型球形机器人控制系统中得到初步应用,验证了理论设计的可行性和可靠性,实验结果表明接口数据读写高效可靠。本设计对以后其他双核控制系统接口的设计与研究工作具有很好的参考价值。