前言:我们精心挑选了数篇优质控制器设计论文文章,供您阅读参考。期待这些文章能为您带来启发,助您在写作的道路上更上一层楼。
1高速握手
USB2.0设备连接到主机后,主机给设备供电并发送复位信号复位设备,之后设备进入全速模式工作,由图2所示在fullspeed状态检测到SE0(linestate[1:0]=00)持续2.5μs后,高速握手开始,设备控制器进入sendchirp状态,设备向主机发送一个持续时间大于1ms的K(linestate[1:0]=01)信号以检测主机是否支持高速模式。设备进入recvchirp状态并准备接收来自主机的JK序列。主机支持高速并检测到K之后,向设备发送JKJKJK序列以检测设备是否支持高速模式。设备控制器在recvchirp状态成功检测到3对JK序列后高速握手成功,进入到highspeed模式工作;否则,设备以全速模式工作。
2设备挂起
根据USB2.0协议,为了减小功耗,当总线3ms没有动作时,设备需进入挂起(suspend)状态,设备在挂起状态只能消耗小于500μA的电流,并且进入挂起后设备需要保留原来的状态。(1)全速模式挂起:检测到总线状态为SE0达到3ms,设备从fullspeed状态进入suspend状态。(2)高速模式挂起:设备工作在高速模式时,由于高速复位和高速挂起都是发送一个大于3ms的总线空闲信号,因此设备需要区分这两个事件。如图2,处于highspeed状态时,设备检测到总线空闲(SE0)3ms,进入hsrevert状态。之后检测总线状态不为SE0,此后设备挂起。假如在hsrevert状态后还检测到SE0持续100μs,则判断为高速复位,clrtimer2=1。设备状态转换到sendchirp状态,开始设备的高速握手。
3挂起恢复
设备处于挂起状态时,在它的上行口接收到任何非空闲信号时可以使设备恢复工作[5]。(1)全速挂起恢复:设备从挂起状态起检测到的不是持续的J,则恢复到fullspeed状态,以全速模式工作。(2)高速挂起恢复:挂起时保留着高速连接状态,highspeed=1且hssupport=1,挂起恢复需要判断是由总线动作引起还是系统复位引起。设备中测到总线状态为SE0,说明是由复位引起的挂起恢复,设备状态进入sus-preset,然后检测到SE0持续2.5μs后,进入高速握手过程sendchirp状态;反之,检测到挂起恢复信号K,则设备从挂起恢复到高速模式。
4复位检测
集线器通过在端口驱动一个SE0状态向所连接的USB设备发出复位信号。复位操作可以通过USB系统软件驱动集线器端口发出复位信号,也可以在设备端RE-SET信号置1,进行硬件复位。(1)设备是从挂起状态复位:在suspend状态检测到SE0时,设备跳转到suspreset状态,检测总线状态为超过2.5μs的SE0后设备启动高速握手检测,即进入sendchirp状态。(2)设备从非挂起的全速状态复位:设备在检测到2.5μs<T<3.0ms的SE0状态后启动高速握手检测。硬件纵横HardwareTechnique(3)设备从非挂起的高速状态复位:设备在high-speed状态检测到总线上持续时间3.0ms的SE0后,设备状态转换到hsrevert,以移除高速终端并重连D+的上拉电阻,此时为全速连接状态;之后设备需要在100μs<T<875μs的时间内采样总线状态,检测到SE0持续2.5μs后,进入sendchirp状态,开始高速握手过程。
5仿真及验证
关键词:CAN_BUS调试系统通信协议
磁悬浮转向架的悬浮由四组电磁铁实现,每组电磁铁都有独立的悬浮控制器,控制该点的悬浮与下落。为了获得最优的控制参数,需要在整个转向架的悬浮过程中通过上位机监视轨道与电磁铁之间的间隙、电磁铁工作电流等状态参数以及悬浮控制器的控制参数,动态地修改控制参数以观察控制效果。
悬浮控制器之间是相互独立的,上位机无法同时监控多个悬浮控制器,因此需要找到合理的通信方式使上位机同时与所有的控制器连接,使它们之间能够实时传递数据。CAN总线是一种有效支持分布式控制和实时控制的多主的异步串行通信网络。由于CAN总线具有较强的纠错能力,支持差分收发,适合高噪声环境,具有较远的传输距离,在各个领域中得到了广泛应用。CAN通信协议规定通信波特率、每个位周期的取样位置和个数都可以自行设定,这保证了用户在使用过程中的灵活性。选用CAN总线,无论是在抗电磁干扰方面还是在实时性方面都能够满足实验要求。
图1
1调试系统硬件端口的设计
悬浮控制器使用SJA1000作为CAN总线协议转换芯片。SJA1000是一种独立控制器,用于移动目标和一般工业环境中的区域网络控制。它内建BASICCAN协议,并提供对CAN2.0B协议的支持。通过对片内寄存器的读、写操作,悬浮控制器的核心处理器能够设置CAN总线通信模式,实现数据的发送与接收。它的传输速度很快,位速率可达1Mbit/s,可满足高速大流量实时传输要求。
SJA1000在逻辑上实现了传输数据的编码和解码,若要与物理线路连接,必须借助总线驱动器。PCA82C250是协议控制器与物理链路之间的接口,可以用高达1Mbit/s的位速率在两条有差动电压的总线电缆上传输数据,它与SJA1000结合才能实现CAN总线通信。
图1为CAN总线接口电路原理图。图中,SJA1000用16MHz的晶振作为基准时钟,数据线AD0~AD7与核心控制器的低八位数据线相连,在CS、RD、WR的控制下可实现芯片寄存器的读写。RX0和TX0与PCA82C250数据输入引脚相连,作为串行数据线。RX1与PCA82C250的参考电压引脚5相连,向PCA82C250输出参考电压。PCA82C250的两根输出数据线之间加上120Ω的终端电阻,用以匹配线路。
上位机通过专用的USBTOCAN转换器实现PC机与CAN总线的连接,市场上有很多这类产品,这里不再详细说明。上位机主要提供人机交互界面,显示状态和控制器参数,并完成参数与程序的下载。
2通信协议构建
DSP控制器上的CAN总线端口要完成两项工作:(1)上传控制器的控制常量和电流、间隙等状态参数,送给检测系统;(2)读取上位机下传的待修改的控制参数,实现参数的在线修改,接收下传的程序文件,实现DSP主程序的在线写入。
在调试过程中,实现多DSP系统的在线联调是很有效的调试手段。这样,上位PC机不但能够采集各控制器的状态参数,还能够对采集的数据进行整理与显示,并能实时调整不同控制器的控制参数,最终实现控制器运行程序的远程下载。
为实现CAN总线的数据传送,需要定义参数包、程序包、命令包三种传送数据包,并分别由0x11、0x22、0x33标示出来。根据数据传送方向的不同,数据包的格式略有差异。考虑到CAN总线上的节点较多,为避免数据传送过程中出现混乱的情况,定义数据发送的基本数据包大小为8个字节,即CAN总线一次传送的最大字节数为8。
2.1下传数据协议
下传数据包括程序、参数、命令三种数据类型。
2.1.1参数数据包格式
上位机需要下传的数据包括控制参数C1、C2、C3及给定间隙与电流,根据修改需要,每个参数都是单独下传的。下传数据包的大小与CAN的最大有效传送字节数一致,为8个字节。第一个字节指出数据包的类型(用Oxll标示),第二个字节指出参数类型(用0xx7标示),第三字节至第八字节指出传送的有效数据,对应上面给定参数的参数标示依次为0x17、0x27、0x37、0x47、0x57。图2所示为数据包的一般格式。
2.1.2程序数据包格式
FLASH写入文件较大,一般有几十K字节。控制系统采用的FLASH芯片AT29C010以128字节为基本操作单位。为了适应芯片,可将文件分成128字节的数据段,并为每个数据段标定次序。发送时,标出数据段号及该片数据所处段中的位置即可。控制器接收到128字节后,做一次写入FLASH操作,数据包格式及说明见图3。
2.1.3命令数据包格式
命令数据指出对下传参数的操作,Oxx7+0x44表示对某一参数的修改生效,如:0x17+0x44使能C1,0x27+0x44使能C2,0x37+0x44使能C3。如果修改的参数不能满足控制要求,调试员希望能恢复原来的运行参数,因此定义0x55为修改参数恢复命令,如:0x17+0x55恢复C1,0x27+0x55恢复C2,0x37+0x55恢复C3。0x66+0x66表示将下传数据写入最后的FLASH参数存储区。命令数据包格式如图4所示。
2.2上传数据协议
上传数据包的大小也为8个字节,数据包类型分为参数反馈、命令反馈两种,参数反馈用于上传DSP的实际运行控制参数及间隙、电流等状态信息,命令反馈用于对PC机使能、写入、参数恢复等命令的应答。
上传数据依次为控制参数C1、C2、C3、CURRENTl、CURRENT2、CLEARANCE。数据类型标示依次为0x17、0x27、0x37、0x47、0x57、0x67。由于上位机要同时接收多个控制器上传的数据,所以为了正确区分这些参数,需要给上传的数据包加入端口标示,指出数据包来自哪个总线端口。上传的数据包在前面格式的基础上还要加入对应于各控制器的CAN总线端口号。
上传命令是对总线通信出现异常情况的应答,因为控制器随时将控制参数上传,且参数字节数较少,出错的可能性较低,不需配备应答命令;而上传程序的数据量较大,容易出现错误,必须配备应答命令,指示程序写入过程。
因为控制器是周期性地扫描SJAl000的接收缓冲区,当总线连接的节点较多时,数据量较大,难免会发生数据漏收的情况;而且控制器对外部中断的响应也会影响扫描周期,使接收缓冲区中未来得及读取的数据被新数据冲掉。当控制器发现应接收的数据位置与已接收到的数据位置不符时,控制器发差错命令给上位机,指出应接收的数据段号及位置,上位机接收到这一信息后重发相关数据。发送数据包包含CAN端口字节、命令标示、段号、位置号等信息。通信过程中也可能出现发送数据与接收数据不符的情况,因此有必要引入数据校验算法。控制器将接收到的128字节校验后得到的校验值与接收到的校验值作比较,一致后才将数据写入FLASH;否则反馈回校验值错误信息,上位机重发该段数据。发送数据包包含CAN端口字节、命令标示、段号、重发标示(0x88)等信息。
图5
3通信程序设计流程
3.1控制器通信流程
控制器的通信部分主要在主程序循环中完成。每次主程序循环中,控制器都向调试系统发送当前C1、C2、C3、CURRENTl、CURRENT2、CLEARANCE等信息;一旦接收到调试系统下传的信息,控制器便分析下传信息的性质,对它们分别进行判别与应答。
图5是控制器的通信流程。控制器上电后,程序从FLASH的参数存储区(最后256个字节)读取控制参数值,存人控制参数缓存中,作为参数初值。同时,控制器通过CAN总线接收上位机下传的控制参数,校验后存入控制参数缓存中。一旦接收到参数使能命令,则将缓存中的数据复制给C1、C2、C3等变量,作为实际的工作参数;调试完毕后,在接收到参数写入命令后,将参数写入FLASH的参数存储区,作为永久工作参数。接收到程序数据包后,控制器首先检验数据的次序,保证接收到的数据按次序排列;接着代入校验算法,将计算得到的校验值和接收的校验值作比较,不一致则给上位机反馈校验值错误命令,要求上位机重发该段程序,否则将数据写入FLASH。图中监控信息的发送周期可根据情况确定。
3.2上位机通信流程
上位机是调试员与控制系统的接口,它显示控制器的上传参数,将调试员需要修改的控制参数下传。为完成上述功能,调试界面应包括参数显示窗口、参数输入窗口、命令工具条等,必要的话,还应将状态参数以曲线的形式显示出来。调试人员根据状态曲线调整控制参数。
本文设计的基于以太网的超声检测多轴运动控制系统是在复杂的多轴运动控制技术之上结合了远程通信技术,以此来实现超声检测的远程自动控制。此系统主要由上位机、多轴运动控制器、步进电机驱动器、步进电机、机械执行装置、限位开关和超声探头等组成,其组成框图如图1所示。由上位机LabVIEW控制系统为多轴运动控制器发送运动指令,并由多轴运动控制器将运动信号拆分为步进信号和方向信号,再将这两种电机控制信号发送给步进电机驱动器,步进电机驱动器将其转化为角位移发送给步进电机,使步进电机转动相应个步距角,以达到使步进电机按指令运动的目的。步进电机上安装有机械执行装置,用以固定超声探头,机械执行装置上安有限位开关,以此控制电机的运动范围,当电机运动到限位开关的位置时,限位开关发出限位信号到多轴运动控制器,运动控制器便停止发出使电机运动的脉冲信号。在进行自动超声检测时,Z轴方向机械执行机构上固定的超声检测探头能够在被检测物体的表面按照上位机运动控制算法设计的运动轨迹进行连续检测,并实时向PC机返回探头的位置信息,并将数据采集卡采集的超声信号与探头返回的位置信息建立起对应关系,最终通过上位机的图像处理系统形成超声检测图像,以此来实现物体的超声检测。
2多轴运动控制器的方案设计
多轴运动控制器可以通过远程以太网通信的方式接收上位机的控制信号,向步进电机驱动器发送脉冲信号和方向信号以完成对电机的运动控制。采用ARM9处理器S3C2440搭建硬件平台,配有DM9000A以太网通信芯片使硬件平台具备远程通信的功能。在Linux操作平台上进行控制系统软件功能设计,并采用UDP通信协议实现上位机与运动控制器之间的远程通信[3]。
2.1多轴运动控制器硬件电路设计
本文采用ARM9处理器S3C2440设计了系统中运动控制器的硬件电路部分,并采用DM9000A网络接口控制器设计了运动控制器的以太网接口。运动控制器硬件整体框图如图2所示。运动控制器选用ARM9处理器作为运动控制器的核心芯片可以方便地嵌套Linux操作系统,在操作系统之上实现运动控制器的插补等多轴运动控制算法。选用DM9000A以太网控制芯片实现上位机LabVIEW与运动控制器之间的远程通信,进而实现超声检测的远程自动控制。为了解决步进电机驱动器与主控芯片信号匹配的问题,本文采用光耦器件设计了电压转换模块,负责把主控芯片输出的3.3V电压信号转换至5V电压信号后输入到步进电机驱动器中,同时负责把限位开关发出的24V限位信号转换至3.3V输入到主控芯片中。此外,电路中还搭载了用于存储数据的扩展存储器、以及用于调试的JTAG接口电路和RS232串口电路。
2.2多轴运动控制器软件设计
本课题所用的限位开关为位置可调的限位开关,每个轴有2个限位开关,在每次超声检测前,把每个限位开关调节到被测工件的边缘处,从而使探头移动的范围即为工件所在范围。故此设计运动控制器的软件时便可将限位开关做为边界条件,以此来设计探头的运动范围。其运动控制流程:首先系统初始化,通过上微机控制界面人工控制探头到被测工件的起点,然后X轴正向运动到X轴限位开关处,Y轴正向运动一个探头直径的长度,X轴再反向运动到X轴另一侧的限位开关处,之后Y轴继续正向运动一个探头直径的长度,如此往复运动直至探头到达Y轴的限位开关处,检测结束,探头复位。运动控制软件流程图如图3所示。
3多轴运动控制系统上位机软件设计
基于以太网的自动超声检测多轴运动控制系统的上位机软件是以LabVIEW开发平台为基础,使用图形G语言进行编写的,主要包括多轴运动控制软件和以太网通信软件。Lab-VIEW是一款上位机软件,其主要应用于仪器控制、数据采集和数据分析等领域,具有良好的人机交互界面[4]。LabVIEW软件中有专门的UDP通信函数提供给用户使用,用户无需过多考虑网络的底层实现,就可以直接调用UDP模块中已经的VI来完成通信软件的编写,因此编程者不必了解UDP的细节,而采用较少的代码就可以完成通信任务,以便快速的编写出具有远程通信功能的上位机控制软件[5]。上位机LabVIEW软件的远程通信模块、运动控制模块以及数据处理模块相互协调配合,共同构成了超声检测多轴运动控制系统的上位机软件。
3.1运动控制软件设计
运动控制系统软件部分主要由运动方式选择、探头位置坐标、运动控制等模块组成,可完成对系统运动方式的选择,运动参数、控制指令的设定以及探头位置信息读取等工作。运动方式选择模块可根据实际需要完成相对运动或是绝对运动两种运动方式的选择,并会依照选择的既定运动模式将X、Y、Z三轴的相应运动位置坐标输出在相应显示栏中,以便进行进一步的参数核对以及设定;运动控制模块可依照检测规则实现对整个系统运动过程的控制,包括:设定相对原点、运行、复位、以及退出等相关操作。相对原点设定可以将探头任意当前位置设为新的原点,并以原点作为下一个运动的起始点,即为探头位置坐标的相对零点,并将此刻相对原点的绝对位置坐标值在文本框中显示出来。运动控制系统软件流程图如图4所示。
3.2以太网通信软件设计
以太网通信模块采用无连接的UDP通信协议,通过定义多轴运动控制器与上位机LabVIEW的以太网通信协议,实现下位机与上位机之间的远程通信。具体设计如下:首先使用“UDPOpenConnection”打开UDP链接,使用“UDPWrite”节点向服务器端相应的端口发送命令信息,然后使用“UDPRead”节点读取服务器端发送来的有效回波数据,用于后期处理,最后应用“UDPCloseConnection”节点关闭连接[6]。以太网通信模块的程序框图如图5所示。
4实验及结果
实验平台由步进电机及其驱动器、上位机控制软件和自主研发的多轴运动控制器构成。在上位机的用户控制界面中,首先输入以太网的IP地址并选择运动方式,然后根据用户的检测需求设定运动速度和运动距离,点击运行后探头即按所设定运行。探头运动过程中还可以选择设定当前位置为原点,探头即按照新的原点重新开始运动。同时,在探头运动时会实时显示探头当前所在位置坐标。模拟开关发送选通超声探头信号并发送脉冲信号激励超声探头发射超声波,FPGA控制A/D转换电路对超声回波信号进行转换,并将数据存入双口RAM,存储完成后向ARM发送信号,ARM接收到采集完成信号将数据通过以太网向上位机发送。上位机的LabVIEW用户控制界面如图6所示。
5结束语