当前位置:首页>>基于W5100的数控系统组网设计与实现

基于W5100的数控系统组网设计与实现

发布时间:2017-09-05作者:智汇胡妮

0 引言

  制造业是国家综合国力的基础,而数控技术又是其关键基础技术。信息技术的快速发展,使得传统制造业发生深刻变革,尤其是数控系统在智能化、网络化和集成化上得到大力发展。发展先进数控技术,提高装备制造水平,将是构成企业制造系统现代化的关键,有利于提升企业在激烈的全球化经济条件下对市场环境的生存能力。因此,发展先进数控技术对制造型企业的发展壮大起到关键作用。网络数控技术即是一种将制造单元通过网络技术互联,从而实现在制造过程中共享所需资源的技术。

  一方面,利用多个网络数控系统可以构建网络化生产车间,中心服务器管理者可以详细准确监视并记录每一台设备的运行情况,可以实现远程控制,合理调度生产设备资源,提高企业生产效率,降低工人劳动成本;另一方面,系统厂家可以通过 Internet 与客户中心服务器连接,及时跟踪客户需求反馈,有助于远程培训和维护,减少维修人员的往来。随着计算机辅助设计和制造系统大量应用于实际加工过程,需要快速方便地与数控系统进行大吞吐量数据交换,具备网络功能的数控系统能够很好地与办公室中的 CAD/CAM系统联系起来,快速高效生产加工,及时修正加工问题,实现网络制造。目前,多家数控系统设备制造公司如德国西门子(Siemens)、日本山崎马扎克(Mazak)相继推出相关样机和产品,很大程度上加快了数控系统网络化的发展速度。

1 网络数控系统体系结构

  网络数控系统大体分为基础部分和网络部分,基础部分即完成数控系统本身基本功能运行,网络部分与外部网络设备连接完成交互数据的收发。

  本文所设计的数控系统采用的是 TI 公司 OMAPL138B 作为主控芯片,该芯片同时集成 ARM 和 DSP 核心,二者能够无缝协调工作,减少了总线延迟。其中,ARM 核心负责完成显示、人机交互(HMI)、文件资源管理、数控 NC 译码任务以及网络通信传输;而 DSP 核心则发挥其运算优势,主要担负数控系统核心插补算法、伺服驱动控制以及 PLC 逻辑控制运算。网络电路接口则采用 WIZnet 公司生产的一款成熟且多功能的网络芯片——W5100,实现 TCP/IP 通信协议传输,很大程度简化了系统结构设计。

  ARM 和 DSP 核心能够同时工作于 456MHz,该芯片连接 DDR2 内存芯片,比其它传统 SOC 连接 SDRAM 方式运行速度更快。图 1 所示描述了基于 OMAPL138B 和 W5100 的数控系统体系结构,包括 SOC 外围系统电路和网络通信电路。

图 1 网络数控系统体系结构图

  1.1 OMAPL138B 处理器简介

  OMAPL138 DSP+ARM 处理器是一款基于一个 ARM926EJ-S 和一个 C674xDSP 核心的低功耗应用处理器,甚至比 TMS320C6000 平台的其它 DSP 产品消耗功率更低。其双核架构兼具了 RISC 和 DSP 技术的优点,并且采用流水线结构设计,因此能够保证处理器和存储器的所有部件有效运作。ARM 核心拥有协处理器 CP15,具有独立的 16KB 指令 Cache 和 16KB 数据 Cache,同时集成了 8KB 内部 RAM 和 64KB 内部 ROM;DSP 内核采用 2 级高速缓存架构,1 级分别由 32KB 指令(L1P)和数据(L2P)高速缓存组成,2 级则包含一个 256KB内存空间,可由程序空间和数据空间共用。另外,ARM 和 DSP 之间有 128KB 的内部共享 RAM,可以互相实现数据无缝访问。

  OMAPL138B 集成了丰富的电路接口,有助于系统电路设计简化。本文所用到的电路接口如下:

  1)DDR2/mDDR 内存控制器;

  2)通用输入/输出接口(GPIO);

  3)LCD 控制器;

  4)扩展存储器接口(EMIFA);

  5)通用异步接收/发送装置(UART);

  6)通用串行总线(USB)。

  1.2 W5100 网络芯片简介

  W5100 是目前比较流行的一款多功能的以太网网络接口芯片,内部集成了 10/100 兆以太网控制器,能够适用于高稳定、高集成、高性能和低成本的嵌入式系统。其内部集成了经过多年市场应用经验验证、且全硬件的 TCP/IP 协议栈、以太网介质传输层(MAC)以及物理层(PHY)。能够支持普遍的以太网协议,如TCP、UDP、IPv4、ICMP、ARP、IGMP 和 PPPoE,使得用户在使用 W5100 开发时不用过多了解以太网控制知识,主要具备简单的 Socket 编程基础就能够快速应用,从而解决了软件实现方式的稳定性和可靠性问题。简化的电路接口可以将 W5100 当做外部存储器一样访问,实现网络通信功能。W5100 具备的突出特点如下:

  1) 支持自动通信握手(全双工和半双工);

  2) 支持自动 MDI/MDIX,并自动校正信号极性;

  3) 支持 ADSL 连接(支持 PPPoE 中的 PAP/CHAP 认证模式);

  4) 支持 4 个独立端口同时运行;

  5) 内部集成 16KB 数据收发缓存,默认每一个端口 4KB 缓冲大小。

  通过访问 W5100 内部寄存器实现控制,内部存储器映射如表 1 所示:

表 1 W5100 内部存储器映射

  公共寄存器主要对网络配置、中断控制、超时处理参数以及缓冲区分配等进行设置,详细信息如表 2所示。其中,本文用到中断方式,W5100 提供 7 种中断源,任意一个未屏蔽中断触发时,中断输出引脚INT会保持低电平,CPU 通过 IR 寄存器确定中断源,得到处理后将 IR 相应位清零,完成中断处理状态。

表 2 W5100 公共寄存器功能描述

  端口寄存器针对 4 个内部独立的通信端口进行设置,以 Sn_xx 的形式表示,主要描述了端口工作模式、端口号、端口目的物理地址和 IP 地址以及端口相关状态,具体功能可以参考有关用户应用手册。

  1.3 硬件电路设计

  由于 W5100 可以当做外部存储器访问,OMAPL138B 提供了一个外部存储器接口(EMIFA,External MemoryInterface A),用于连接芯片到外部存储器,比如同步动态存储器(SDRAM)、低功耗 ROM 存储器和异步存储器,提供 8 位宽和 16 位宽访问能力。网络数控系统硬件电路设计主要涉及 EMIFA 与 W5100 连接,通过EMIFA 接口,使得 CPU 可以和 W5100 网络芯片很方便地进行数据传输。W5100 提供 3 种电路接口:间接并行总线、直接并行总线和 SPI 总线。间接并行总线只使用 ADDR[1:0]两个引脚,首先 CPU 将要读写的地址分别写入 IDM_AR0 和 IDM_AR1 寄存器,选中指定的寄存器,然后再从IDM_DR 寄存器中读写数据。因此访问单一寄存器时,间接并行总线方式需要 3 个总线周期,而直接并行总线方式访问只需要一个总线周期,本文采用直接并行总线方式连接设计。OMAPL138B 与 W5100 相关接口以及硬件电路总体框图如图 2 所示。

图 2 硬件电路总体框图

  EMIFA 接口中处于 EMA_CS[5 :2]范围内的区间属于异步存储器控制器,本方案选择EMA_CS[2]作为W5100 片选,因此将 0x6000 0000~0x61FF FFFF(32MB)的地址空间分配给 W5100,基地址为 0x6000 0000。EMIFA 支持 8 位宽和 16 位宽访问,由于 W5100 寄存器为 8 位位宽,所以将 EMA_A[14:0]与 ADDR[14:0]相连。W5100 中断引脚低电平有效,与 OMAPL138 中断引脚 INT0连接。为了缩小电路接口设计的面积,采用10/100Mb/s 的 13F-60 自带网络变压器的 RJ45 以太网电路接口,W5100 的 RXIP 对应 RJ45 的 RD+,RXIN 对应 RD-,TXOP 对应 TD+,TXON 对应 TD-。

  EMIFA 默认处于正常模式,访问时序有三个重要的阶段:Setup、Strobe 和 Hold period,这些时间的设置关系到与外部存储器进行读写操作的稳定性和正确性。EMIFA 读写时序图如图 3、4 所示,为了配合W5100 访问,分别将三个阶段设为 2、3、2 时间周期。在读操作的 Setup 阶段,地址总线引脚 EMA_A 开始有效并且EMA_CS[2]片选引脚为低电平,片选使能外部存储器设备;Strobe 阶段,EMA_OE读使能引脚为低电平,在该阶段最后一个周期 EMIFA 开始对数据总线引脚 EMA_D 进行采样并且EMA_OE变为高电平;Hold 阶段是数据的保持,EMIFA 将数据读取到内部寄存器,并且在该阶段最后一个周期地址总线引脚 EMA_A变为无效,EMA_CS[2]引脚变为高电平结束对外部存储器设备的片选使能。三个阶段时间周期通过 EMIFA寄存器 CEnCFG 的 R_SETUP、R_STROBE 和 R_HOLD 三个域进行设置,完成一次读操作。

  在写操作的 Setup 阶段,地址总线引脚 EMA_A 和数据总线引脚 EMA_D 开始有效并且EMA_CS[2]片选引脚为低电平,片选使能外部存储器设备;Strobe 阶段,EMA_WE 写使能引脚为低电平,并将寄存器内数据写入外部存储器设备,在该阶段最后一个周期变为高电平;Hold 阶段最后一个周期地址总线引脚 EMA_A和数据总线引脚 EMA_D 变为无效,EMA_CS[2]引脚变为高电平结束对外部存储器设备的片选使能。三个阶段时间周期通过 EMIFA 寄存器 CEnCFG 的 W_SETUP、W_STROBE 和 W_HOLD 三个域进行设置,完成一次写操作。

2 数控系统组网设计

  网络数控把与制造过程有关的设备(如数控机床)、主控计算机、通信设施等按一定的结构和层次组合起来成为一个整体,具有层次化的结构特征。如图 5 所示,网络数控系统组网可以分为三个层次:企业车间层、企业管理中心层和系统厂家管理层。数控系统配套的加工机床设备位于企业生产车间,通过网络链路设备有机连接起来,每台设备提供基本信息、系统状态和控制信息等数据。企业管理中心层是数控系统数据中心,维护管理调度生产车间每一台设备,对设备进行有效管理。系统厂家管理层建立用户数据信息库,通过 Internet 与企业用户进行连接,实时跟踪客户需求及系统运行状况,必要时可以对客户进行远程培训和维修,一定程度上减少了系统厂家的生产成本。

图 5 网络数控系统组网

  网络数控系统组网与普通 PC 机局域网组网类似,将网络数控系统看成局域网内的一个节点。鉴于生产车间环境比较恶劣,组网采用超五类双绞线作为传输介质,具有串扰少、衰减小并且具有较高的衰减与串扰的比值和信噪比,性能能够得到很大提高。另外,需要额外的网络连接设备来满足服务器与多个数控系统客户端的连接。通过对比集线器、中继器和交换机性能,最后选用具有有效隔离冲突的交换机作为网络连接设备,能够为每个客户端口提供专用带宽,能够满足全双工数据传输。

3 软件设计

  系统硬件架构设计中,将 OMAPL138B 作为 W5100 的主控制芯片,系统软件设计采用服务器/客户端模式。以网络数控系统作为客户端,而 PC 机充当服务器,接受客户端的连接,PC 基于 Windows7 操作系统运行,采用 Windows Socket 套接字网络编程。在对 W5100 网络芯片控制之前,微处理器首先复位上电完成初始化任务,主要完成系统及外部设备时钟初始化、系统启动运行模式及堆栈设置、中断向量表及中断控制器设置、GPIO 和 UART 等内部集成电路模块接口进行配置、系统定时器及最重要的 EMIFA 控制器工作模式和时序配置。W5100 客户端连接流程与 PC 服务器端软件流程如图 6、7 所示。

图6 W5100 客户端连接流程

图7 PC 服务器端软件流程

  3.1 W5100 驱动程序设计

  W5100 驱动程序设计主要包括初始化和 Socket 程序设计两部分,初始化过程主要针对关键寄存器设置实现复位、工作模式、端口选择及收发缓存大小设置等。初始化 W5100 关键步骤如下:

  1) 设置模式寄存器 MR 软件复位位为 1,自动清零所有内部寄存器,同时设置 IP 地址、子网掩码、物理地址等;

  2) 设置终端屏蔽寄存器 IMR 为 0xFF,开启提供的所有中断,任何时候中断寄存器 IR 对应位置 1 时,将中断 CPU,通过访问 IR 获得中断源;

  3) 设置发送 TMSR 和接收 RMSR 寄存器为 0x55,使每个端口发送和接收缓存大小为 2KB;

  4) 设置重发计数寄存器 RCR 为 8,设定传输过程中的重发次数;

  5) 设置重发时间寄存器 RTR 为 0x07DD,即 200 毫秒,当与服务器无法响应超过 200 毫秒时,将进行重发处理;

  6) 设置端口模式寄存器 Sn_MR 为 0x21,关闭广播功能并选用 TCP 模式;

  7) 设置端口命令寄存器 Sn_CR,实现端口初始化、建立/断开连接和数据传输;以上就是 W5100 初始化过程,其 Socket 编程主要涉及连接、读数据和写数据操作,以下是三个关键函数实现。

  由于网络数控系统作为客户端,必须与服务器端先建立连接才能进行通信,Socket_Connect 函数负责与服务器端建立连接。端口打开完成连接命令后,需要等待端口终端判断是否与远端服务器建立连接,可以参考 W5100 数据手册的 Socket 中断状态。

  int Socket_Connect(int socket){ //端口号,0~3 共四个端口可选  W5100_WREG(W5100_S0_MR, S_MR_TCP|S_MR_MC); // TCP 模式,ND/MC 位置  W5100_WREG(W5100_S0_PORT, 8080); //本机端口号为 8080  ServerIPAddrSet(W5100_S0_DIPR, “192.168.1.2); //服务器 IP 地址  W5100_WREG(W5100_S0_DPORT, 8080); //服务器端口号  W5100_WREG(W5100_S0_CR, S_CR_OPEN); //打开端口  W5100_WREG(W5100_S0_CR, S_CR_CONNECT); //连接服务器  return true;  }

  W5100 读操作首先从端口接收数据缓冲区读取有效数据,将接收的数据量与读指针寄存器 Sn_RX_RD 的值相加再写回 Sn_RX_RD,最后将 RECV 读命令操作标志写入端口命令寄存器 Sn_CR,完成本次读取操作,并等待下次接收。主要程序如下:

  unsigned int Socket_Receive(int socket, unsigned char *buf){  unsigned int i,rx_size,rx_offset;  unsigned char *ptr;  rx_size=W5100_RREG(W5100_S0_RX_RSR ); //读取接收数据的字节数  rx_size+=W5100_RREG(W5100_S0_RX_RSR+1 );  rx_offset= W5100_RREG(W5100_S0_RX_RR); //获取接收缓存区偏移量  rx_offset+= W5100_RREG(W5100_S0_RX_RR+1);  ptr=(unsigned char*)(W5100_RX+socket*S_RX_SIZE+rx_offset);  for(i=0; i<rx_size; i++){ //读数据到缓存区  buf[i]=*ptr++;  }  W5100_WREG(W5100_S0_CR, S_CR_RECV); //设置接收命令,等待下一次接收  return rx_size; //返回接收的数据字节数  }

  W5100 发送数据操作时,首先检查发送缓冲区剩余空间大小 Sn_TX_FSR,将要发送数据写入端口发送数据缓冲区后,则将发送数据长度与端口传输写指针寄存器 Sn_TX_WR 中的值相加并写入 Sn_TX_WR,最后写入发送命令 Sn_CR_SEND,完成本次发送。相关程序如下:

  unsigned int Socket_Send(int socket, unsigned char *buf, int size){  unsigned int i,tx_free_size,tx_offset;  unsigned char *ptr;  tx_free_size=W5100_RREG(W5100_S0_TX_FSR ); //读取发送缓存区剩余字节  tx_free_size +=W5100_RREG(W5100_S0_TX_FSR +1 );  tx_offset= W5100_RREG(W5100_S0_TX_WR); //获取发送缓存区偏移量  tx_offset+= W5100_RREG(W5100_S0_TX_WR +1);  ptr=(unsigned char*)( W5100_TX+socket*S_TX_SIZE+tx_offset);  for(i=0; i< size; i++){ //将数据写入发送缓存区  *ptr++= buf[i];  }  W5100_WREG(W5100_S0_CR, S_CR_SEND); //设置发送命令,将数据发送出去  return size; //返回发送的数据字节数  }

  3.2 PC 服务器软件设计

  PC 机服务器端采用 Microsoft Visual ++ 6.0 MFC 作为应用软件框架开发工具,网络服务器部分采用Windows Socket 编程,建立服务器并监听客户端连接。

  Windows Socket 基于 TCP(面向连接)的服务器端程序首先创建套接字(socket)并将套接字绑定到一个本地地址和端口上(bind),同时将该套接字设置为监听模式,准备接受客户端连接请求(listen);当客户端有连接请求时,返回一个用于该客户端有效通信连接的套接字(accept),利用该通信套接字与客户端进行通信(send/recv);最后,完成通信后关闭对应客户端的通信套接字(closesocket)。服务器端建立监听线程,专门处理客户连接,关键程序如下:

  ULONG WINAPI ListenThread(LPVOID p){ //监听线程处理函数  SOCKET listenSocket; //服务器监听套接字  BOOL bRet;  SOCKADDR_IN addrSrv;  SOCKADDR_IN addrClient;  int len = sizeof(SOCKADDR)  listenSocket = socket(AF_INET, SOCK_STREAM, 0); //创建监听套接字  addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);  addrSrv.sin_family = AF_INET;  addrSrv.sin_port = htons(8080); //绑定端口  bind(listenSocket, (SOCKADDR *)&addrSrv, sizeof(SOCKADDR));  listen(listenSocket, 5); //设置监听模式  while(1){ //以下阻塞等待客户端连接  SOCKET dataSocket=accept(listenSocket,(SOCKADDR*)&addrClient, &len);  UserTransSaveSocket(dataSocket); //将客户端通信套接字存储  }  return 0;  }

  功能部分采用 MFC 进行开发设计,与客户端的通信传输主要采用数据包的形式。包头第一个短整型是一个包标识符,表明该数据包的属性字符和标识位,紧接着 4 字节为包有效数据长度,最后跟着是有效数据区,数据包格式如下所示。数据包属性及服务器端功能如表 3 所示。

  本文数控系统组网验证采用两台数控系统通过路由器建立的局域网与 PC 机服务器连接,客户端两台系统 IP 地址分别为:192.168.1.101 和 192.168.1.102,服务器 IP 地址为 192.168.1.2。PC 机服务器端能够与网络数控系统客户端进行文件传输、DNC 在线加工、远程诊断和协助控制以及伺服参数在线监控和修改。图 8 所示为文件传输管理、DNC 在线加工和远程诊断协助控制部分功能软件连接测试结果,证明本方案组网可行,能够实现数控系统网络化管理。

图8 部分软件功能测试

4 结束语

  目前,工业自动化的发展越来越多的依靠网络技术,数控系统必然走向智能化、网络化、集成化,原先单一数控系统生产方式将逐渐淘汰。数控系统通过以太网、TCP/IP 通信协议和 Socket 编程技术进行组网,可以实现服务器与多台数控系统进行连接,满足监视和控制要求,进一步促进车间有效利用资源和提高生产效率。本文以此为出发点,提出了具有网络组网功能的数控系统体系结构、硬件平台和软件设计相关方案,并验证了有关功能。该方案设计简单、集成度高并且软件开发过程短等优点,对数控系统网络化应用具有较高的参考价值。

公司简介

宜科(天津)电子有限公司是中国工业自动化的领军企业,于2003年在天津投资成立,销售和服务网络覆盖全国。作为中国本土工业自动化产品的提供商和智能制造解决方案的供应商,宜科在汽车、汽车零部件、工程机械、机器人、食品制药、印刷包装、纺织机械、物流设备、电子制造等诸多领域占据领先地位。宜科为智慧工厂的整体规划实施提供自系统层、控制层、网络层到执行层自上而下的全系列服务,产品及解决方案涵盖但不局限于云平台、MES制造执行系统、工业现场总线、工业以太网、工业无线通讯、机器人及智能设备组成的自动化生产线、自动化电气控制系统集成、智能物流仓储系统等,以实现真正智能化的生产制造,从而带来生产力和生产效率的大幅提升,以及对生产灵活性和生产复杂性的管理能力的大幅提升。多年来,宜科以创新的技术、卓越的解决方案和产品坚持不懈地为中国制造业的发展提供全面支持,并以出众的品质和令人信赖的可靠性、领先的技术成就、不懈的创新追求,在业界独树一帜。帮助中国制造业转型升级,加速智能制造进程,成为中国工业4.0智慧工厂解决方案当之无愧的践行者。

更多详情>>

联系我们

  • 联系人:章清涛
  • 热线:18611695135
  • 电话:
  • 传真:
  • 邮箱:18210150532@139.com

Copyright © 2015 ilinki.net Inc. All rights reserved. 智汇工业版权所有

电话:010-62314658 邮箱:service@ilinki.net

主办单位:智汇万联(北京)信息技术有限公司

京ICP备15030148号-1