EtherCAT主站IGH -- 0 -- 该EtherCAT主站IGH专栏后续安排

0 IGH视频欣赏及源代码链接:

0 Ubuntu18.04系统IGH博客、视频欣赏链接

功能博客链接视频欣赏链接源代码链接其他说明
EtherCAT主站IGH-- 49 – 搭建xenomai系统及自己的IGH主站博客地址点我跳转
EtherCAT主站IGH-- 51 – IGH之控制电机旋转位置模式(PP模式)博客地址点我跳转视频地址点我跳转博客文章里面有源代码
EtherCAT主站IGH-- 52 – IGH之控制电机旋转力矩模式(PT模式)博客地址点我跳转视频地址点我跳转博客文章里面有源代码
EtherCAT主站IGH-- 53 – IGH之控制电机旋转周期同步速度模式(CSV模式)博客地址点我跳转视频地址点我跳转博客文章里面有源代码
EtherCAT主站IGH-- 54 – IGH之控制电机旋转周期同步位置模式(CSP模式)博客地址点我跳转视频地址点我跳转博客文章里面有源代码
EtherCAT主站IGH-- 55 – IGH之控制电机旋转周期同步力矩模式(CST模式)博客地址点我跳转视频地址点我跳转博客文章里面有源代码
EtherCAT主站IGH-- 56 – IGH之控制电机旋转速度模式(PV模式)博客地址点我跳转视频地址点我跳转博客文章里面有源代码

1 该EtherCAT主站IGH专栏后续安排

大概分为以下7个大模块:
GH(Industrial Software Foundation)库安排:

1.1 介绍IGH文件和函数:

  • IGH库中的核心文件通常包括主站配置文件(如ethercat.h)和用于EtherCAT通信的API函数(如ec_init()ec_config_init()等)。这些函数允许您初始化EtherCAT主站、配置EtherCAT网络和执行数据通信。此外,IGH还提供了示例代码,以帮助您更好地理解如何使用库中的函数。

1.2 介绍IGH主要结构体:

  • IGH库包含多个关键结构体,例如EtherCAT主站配置结构体、从站配置结构体、PDO(Process Data Object)配置结构体等。这些结构体用于定义和管理EtherCAT网络的配置参数和通信数据。通过详细了解这些结构体,您可以更好地配置和管理EtherCAT网络。

1.3 在Ubuntu系统环境搭建自己的EtherCAT主站:

  • 若要搭建自己的EtherCAT主站,您需要首先创建主站配置文件,其中包括主站配置结构体,定义EtherCAT网络拓扑,以及设置EtherCAT通信参数。然后,使用IGH库提供的函数来初始化主站、建立通信通道和与从站进行数据交换。这一过程可能涉及到配置主站的周期性任务以保持实时通信。

1.4 使用Wireshark监控并分析EtherCAT数据:

使用Wireshark监控并分析EtherCAT数据是一种非常有效的手段,可以帮助我们深入了解EtherCAT协议的工作原理和数据传输机制。Wireshark是一款强大的网络协议分析器,可以捕捉和解析各种网络数据包,包括EtherCAT数据包。通过Wireshark,我们可以详细地观察EtherCAT数据包的传输过程、协议格式和数据内容,从而更好地理解EtherCAT协议的工作机制和特点。此外,我们还可以利用Wireshark提供的分析工具,对EtherCAT数据进行深入挖掘和分析,发现潜在的问题和优化点,为我们的项目提供有价值的参考。因此,使用Wireshark监控并分析EtherCAT数据是一种非常实用和有效的技术手段。

1.5 介绍EtherCAT从站XML文件

EtherCAT从站设备描述文件(XML文件)是描述从站设备配置和特性的文件,通常包含在EtherCAT主站系统中,用于自动配置和识别从站设备。以下是对EtherCAT从站XML文件的介绍及其使用流程。

  • EtherCAT从站XML文件(也称为ESI文件,EtherCAT Slave Information)包含了从站设备的详细配置信息,例如设备ID、制造商、同步管理器配置、过程数据映射等。这些文件通常由设备制造商提供,并根据EtherCAT协议标准格式编写。

1.6 使用IGH 主站控制EtherCAT-IO模块:

  • IGH库使您能够控制EtherCAT-IO模块,这通常涉及读取输入数据和写入输出数据。通过配置PDO映射,您可以将输入和输出数据映射到EtherCAT网络上的从站设备。然后,使用IGH函数来实时读取和更新这些数据,从而实现对IO模块的控制。

1.7 使用IGH 主站控制EtherCAT电机:

  • 控制EtherCAT电机通常需要与电机驱动器和控制器建立通信。您需要使用IGH库配置PDO映射来传输控制命令和获取反馈数据。控制电机的PP模式(位置模式),PV模式(速度模式),PT模式(力矩模式),CSP模式(周期同步位置模式),CSV模式(周期同步速度模式),CST模式(周期同步力矩模式)等。

深入了解IGH库的文件、函数、结构体以及实际应用步骤将有助于您更好地使用该库来构建和控制EtherCAT网络中的设备和电机。

2. IGH介绍:

IGH EtherCAT 主站介绍

Industrial Software Foundation (IGH) 提供的 EtherCAT 主站是一个开源项目,用于实现高效的实时工业以太网通信。本文将详细介绍 IGH EtherCAT 主站的开发背景、主要特点、核心功能以及文件和结构体说明。


IGH EtherCAT 主站由 Industrial Software Foundation 开发,旨在为工业自动化和控制系统提供一个开源的 EtherCAT 主站实现。该项目为研究人员和开发人员提供了一个强大的工具,可以在各种操作系统上实现 EtherCAT 通信。


IGH EtherCAT 主站采用便于移植的 C 语言开发,完全支持在 Windows 和 Linux 系统上运行,甚至可以移植到嵌入式操作系统中。由于所有的应用程序都有所不同,IGH 并未强制规定任何特定的设计架构。


在 Linux 下,它可以用于一般的用户模式、PREEMPT_RT 或 Xenomai;在 Windows 下可用于用户模式下的编程。IGH 主站通过 Raw Socket(原始套接字)接收和发送 EtherCAT 数据帧,调用系统自带的 bind、send 和 recv 模块,以实现主站与从站之间的通信。IGH 支持分布式时钟(DC),从站设备基于实时时钟,主站控制信号可以准确同步。IGH 主站代码的独立架构可支持任何 Linux 实时扩展,包括 RTDM 的 LXRT、ADEOS、RT-Preempt 和 Xenomai(包括 RTDM),同时还支持 CoE(CANopen over EtherCAT)、FoE(File Access over EtherCAT)、SoE(Servo Profile over EtherCAT)和 EoE(Ethernet over EtherCAT)等邮箱协议。


IGH EtherCAT 主站的主要功能包括以下部分:

1. 基本读写服务,如 BRD(广播读)、BRW(广播写)、APRMW(自动增读写多从站)及 LRW(读写数据到逻辑地址映射空间)等。
2. 自动扫描发现从站,自动配置从站的 FMMU(现场总线存储管理单元)和 PDO(过程数据对象)、MBX(邮箱)的内存映射。
3. 设置和读取从站状态。
4. 从站 EEPROM 的读写支持。
5. 支持时钟同步机制,根据过程数据自动配置从站时钟。
6. 支持过程数据和邮箱数据的通信。
7. 支持 SoE、CoE、EoE 和 FoE 等应用协议。


IGH EtherCAT 主站操作简单、跨平台性强并且提供开源代码,为自动化控制领域的研究人员提供了一个真正意义上的开发工具。既可以从软件本身进行 EtherCAT 通信实验,又可以深入了解软件代码底层的实现原理,便于研究人员根据自己的需求进行二次开发。EtherCAT 是一种实时以太网通信协议,广泛应用于工业自动化和机器控制领域。

关键特点:

1. 开源性质: IGH EtherCAT 主站是一个开源项目,开发者可以自由地查看、修改和分发代码。这使其成为工业自动化领域的一个强大工具,可以根据具体需求进行定制。
2. EtherCAT 主站实现: IGH 提供了一个完整的 EtherCAT 主站实现,允许主站与多个 EtherCAT 从站设备进行通信。主站可以向从站设备发送实时数据,例如控制命令和传感器数据。
3. 功能丰富: IGH 包括一系列功能丰富的模块,支持 CoE、FoE、SoE 和 EoE 等不同的 EtherCAT 通信协议功能。
4. 网络配置和管理: IGH 支持配置和管理 EtherCAT 网络,包括从站设备的配置、网络拓扑设置和分布式时钟同步。
5. 实时性: EtherCAT 是一种实时通信协议,IGH 的设计目标是提供高性能和低延迟的通信,以满足工业自动化中对实时性的需求。
6. 示例应用程序: IGH 附带了示例应用程序和文档,帮助开发者入门并开始构建自己的应用程序。这些示例演示了主站初始化、通信配置和实时数据交换等操作。
7. 跨平台支持: IGH 可以在多种操作系统和平台上运行,包括 Linux 和 Windows。
8. 活跃的社区: IGH 拥有一个积极的开发社区,提供技术支持、更新和改进,以确保库的持续发展。


IGH EtherCAT 主站文件和函数介绍

在使用IGH EtherCAT主站时,理解其文件结构和关键函数有助于开发和调试过程。以下是对IGH EtherCAT主站关键文件和函数的介绍以及基本使用流程。

IGH 目录结构介绍

序号文件夹该文件夹功能
1devices设备目录,包含用于识别和管理EtherCAT设备的相关文件。
2documentation文档目录,包含项目的详细文档和使用指南。
3examples示例代码目录,提供了如何使用主站的示例程序,帮助开发者快速上手。
4include头文件目录,包含项目的公共头文件,这些文件定义了各种数据结构和函数接口。
5lib库目录,包含项目使用的库文件和依赖项。
6m4M4宏处理器目录,包含配置和编译过程中的宏定义文件。
7mailbox_gateway邮箱网关目录,包含处理邮箱网关通信的文件。
8master主站目录,包含EtherCAT主站的核心代码和功能实现。
9script脚本目录,包含用于构建、配置和管理项目的各种脚本文件。
10tool工具目录,包含一些辅助工具,用于测试和调试EtherCAT主站。
11tty串行通信目录,包含处理串行通信的相关文件。

IGH 文件说明

序号文件该文件功能
1.hgignoreMercurial忽略文件,列出了在版本控制中要忽略的文件和目录。
2AUTHORS作者文件,列出了项目的贡献者和开发人员。
3bootstrap引导脚本文件,用于初始化和配置项目。
4CodingStyle代码风格指南文件,定义了项目的代码编写规范。
5configure.ac配置脚本文件,用于生成配置文件并检查系统环境。
6COPYING版权声明文件,包含项目的版权和许可信息。
7COPYING.LESSERLGPL许可证文件,列出了项目遵循的GNU宽通用公共许可证条款。
8Doxyfile.inDoxygen配置文件,用于生成项目的文档。
9ethercat.spec.inRPM规范文件,用于创建RPM包。
10FEATURES特性文件,列出了项目的主要特性和功能。
11globals全局变量文件,包含项目中使用的全局变量定义。
12INSTALL安装说明文件,提供了项目的安装步骤和要求。
13Kbuild.inKbuild配置文件,用于构建Linux内核模块。
14Makefile.amAutomake文件,用于生成Makefile。
15NEWS新闻文件,列出了项目的更新日志和版本变化。
16README自述文件,提供了项目的简介、使用说明和其他重要信息。
17README.EoEEthernet over EtherCAT(EoE)自述文件,提供了关于EoE的详细信息。
18README-lambert特定开发者的自述文件,包含该开发者的相关信息和贡献。
19TODO待办事项文件,列出了项目需要完成的任务和计划。


3 IGH 主要文件说明:

master文件夹里面的源代码

序号文件该文件功能
1cdev设备驱动文件,负责与底层硬件设备进行交互。
2coe_emerg_ringCANopen over EtherCAT(CoE)紧急消息处理文件。
3datagram_pair用于处理成对的数据报。
4datagram数据报处理文件,负责EtherCAT数据帧的打包和解包。
5debug调试相关文件,包含调试功能和工具。
6device设备管理文件,负责EtherCAT设备的识别和管理。
7dict_request字典请求处理文件,用于管理和处理字典数据。
8domain域管理文件,负责EtherCAT通信域的配置和管理。
9doxygen自动文档生成配置文件,用于生成代码文档。
10eoe_requestEthernet over EtherCAT(EoE)请求处理文件。
11ethernet以太网通信文件,负责EtherCAT与以太网之间的通信。
12foe_requestFile over EtherCAT(FoE)请求处理文件。
13fmmu_configFMMU(现场总线存储管理单元)配置文件。
14fsm_change状态机变更处理文件,管理状态机的状态切换。
15fsm_coeCoE状态机处理文件,管理CoE通信的状态机。
16fsm_soeSoE状态机处理文件,管理SoE通信的状态机。
17fsm_eoeEoE状态机处理文件,管理EoE通信的状态机。
18fsm_foeFoE状态机处理文件,管理FoE通信的状态机。
19fsm_mbox_gateway邮箱网关状态机处理文件。
20fsm_master主站状态机处理文件,管理主站的状态机。
21fsm_pdoPDO状态机处理文件,管理PDO的状态机。
22fsm_pdo_entryPDO入口状态机处理文件,管理PDO条目的状态机。
23fsm_reboot重启状态机处理文件,管理设备重启过程的状态机。
24fsm_siiSII(Slave Information Interface)状态机处理文件。
25fsm_slave从站状态机处理文件,管理从站的状态机。
26fsm_slave_config从站配置状态机处理文件,管理从站配置的状态机。
27fsm_slave_scan从站扫描状态机处理文件,管理从站设备的扫描过程。
28globals全局变量定义文件,包含整个项目中使用的全局变量。
29ioctl输入输出控制文件,管理IO控制操作。
30locks锁机制文件,负责实现线程安全的锁机制。
31mailbox邮箱管理文件,负责邮箱数据的发送和接收。
32mailbox_gateway_request邮箱网关请求处理文件。
33master主站管理文件,负责EtherCAT主站的初始化、启动和管理。
34module模块管理文件,负责EtherCAT模块的加载和卸载。
35pdoPDO(过程数据对象)处理文件,管理PDO数据。
36pdo_entryPDO条目处理文件,管理单个PDO条目的数据。
37pdo_listPDO列表文件,包含所有PDO条目的列表和管理功能。
38reg_request寄存器请求处理文件,管理和处理寄存器数据。
39rtdm实时设备管理文件,管理实时设备的通信。
40rtdm-ioctl实时设备管理的IO控制文件。
41sdoSDO(服务数据对象)处理文件,管理SDO数据。
42sdo_entrySDO条目处理文件,管理单个SDO条目的数据。
43sdo_requestSDO请求处理文件,管理和处理SDO请求。
44sii_firmwareSII固件文件,管理从站设备的固件数据。
45slave从站管理文件,负责从站设备的识别和管理。
46slave_config从站配置文件,负责从站设备的配置。
47soe_requestServo Drive Profile over EtherCAT(SoE)请求处理文件。
48soe_errorsSoE错误处理文件,管理SoE通信中的错误。
49sync同步管理文件,负责EtherCAT设备的同步。
50sync_config同步配置文件,配置同步相关的参数。
51voe_handlerVendor-specific over EtherCAT(VoE)处理文件,管理VoE通信。

通过详细了解 IGH EtherCAT 主站的文件结构和功能,您可以更好地理解该项目的各个模块及其在 EtherCAT 通信中的作用。这些文件和模块提供了一个系统的框架,帮助您在开发过程中有效地管理和配置 EtherCAT 网络,从而实现高效的实时工业自动化控制。


4 下载和编译 IGH EtherCAT 主站

1. 下载链接

IGH EtherCAT 主站是一个开源的 EtherCAT 协议栈,您可以在 官网 上找到并下载其代码包:
http://etherlab.org/download/ethercat/ethercat-1.5.2.tar.bz2

2. 编译

解压已下载的源码,打开根目录中的 README.md 文件,其中详细记录了相关编译步骤。这些步骤十分详细且具有指导性,让人一看就能明白如何操作。

编译步骤(以 Linux 为例):

igh把编译生成的文件默认安装在了/opt/etherlab目录。
通过设置--prefix=/home/vmuser/ethercat-master/output可以把编译生成的文件安装在/home/vmuser/ethercat-master/output目录中。
**********************************************
make
make modules
make install
sudo make modules_install


5 EtherCAT IGH 1.5.2 特点

EtherCAT(Ethernet for Control Automation Technology)是一个高效的实时工业以太网协议。工业软件基金会(Industrial Software Foundation, IGH)提供了一个开源的 EtherCAT 主站实现,广泛用于工业自动化控制系统中。以下是 IGH EtherCAT 主站 1.5.2 版本的主要特点和改进。

1. 完整的开源实现
  • 开源性质:IGH EtherCAT 主站 1.5.2 是一个完全开源的项目,开发者可以自由查看、修改和分发代码。这使其在工业自动化领域中非常灵活,可以根据具体需求进行定制。
2. 多平台支持
  • 跨平台兼容:支持在多种操作系统上运行,包括 Linux 和 Windows,甚至可以移植到嵌入式操作系统中。通过操作系统抽象层(OSAL)和硬件抽象层(OS-HW),确保在不同平台上的移植和运行。
3. 实时性能
  • 高性能实时通信:提供低延迟和高吞吐量的实时通信能力,适用于严格的工业自动化需求。支持分布式时钟(DC),确保各从站设备之间的同步。
4. 广泛的协议支持
  • 多种协议支持:支持 CoE(CANopen over EtherCAT)、FoE(File over EtherCAT)、SoE(Servo Profile over EtherCAT)和 EoE(Ethernet over EtherCAT)等多种上层应用协议,满足不同设备和应用场景的需求。
5. 灵活的网络配置和管理
  • 自动扫描和配置:能够自动扫描 EtherCAT 网络中的从站设备,并进行配置。支持从站设备的 EEPROM 读写和过程数据对象(PDO)的内存映射配置。
  • 网络管理:提供强大的网络管理功能,支持网络拓扑配置和实时监控。
6. 调试和诊断工具
  • 强大的调试工具:提供丰富的调试工具和日志功能,帮助开发者快速定位和解决问题。
  • Wireshark 支持:可以使用 Wireshark 等网络协议分析工具,监控和分析 EtherCAT 数据帧,深入了解通信细节。
7. 代码模块化和易于维护
  • 模块化设计:采用模块化设计,代码结构清晰,易于扩展和维护。分层结构包括原始套接字接口、数据帧管理、API 接口、通信功能和上层应用功能。
  • 丰富的示例和文档:提供丰富的示例代码和详细的文档,帮助开发者快速上手并理解代码实现。
8. 安全性
  • 安全功能集成:支持多种安全机制,包括错误检测和恢复、冗余配置等,提高系统的可靠性和稳定性。
9. 社区支持
  • 活跃的社区:拥有活跃的开发社区,提供技术支持和定期更新,确保项目的持续发展和改进。

该文档修改记录:

修改时间修改说明
2024年6月26日EtherCAT主站IGH – 0 – 该EtherCAT主站IGH专栏后续安排

总结

以上就是EtherCAT主站IGH – 0 – 该EtherCAT主站IGH专栏后续安排的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。

上下博客链接

上一篇博客:
NC

下一篇博客:

1.基于Igh-master1.5.2的多种Ethercat IO 模块及伺服电机的操作例子 2.基于Ethercat-Ighmaster二次开发库简化你的开发流程 所有源码及文档托管在码云平台,附件中有代码仓库地址 3.含有IghMaster1.5.2最新版本代码,编译脚本及安装到 最新的代码托管在: https://gitee.com/wllw7176/MyEthercat-IGH-1.5.2.git EtherCAT 1.5.2 编译及使用说明 1.交叉编译源码 源码中有内核模块编译,指令定模块目录 根据实际情况修改build_ethercat-1.5.2.sh中以下几个变量: output_dir='output' #编译输出目录 module_install_dir='module_install' #内核模块安装目录 kernel_source_dir='/mnt/fs_ext/imx6/linux-3.0.35' #内核源码目录 lib_modules_kernel_promt='3.0.35-2666-gbdde708' #内核版本号 host=arm-fsl-linux-gnueabi #交叉编译链前缀 注意要先编译内核,然后编译Ethrecat因为Ethercat依赖于内核通用网卡模块 以root用户运行./build_ethercat-1.5.2.sh #编译具体根据提示选择y/n就可以了 ---------------------------------------------------------------------------------------------------------------------------------------------- 手动安装Ethercat到ARM开发板: 2.内核模块安装 2.1 将output文件下通lib_modules_kernel_promt='3.0.35-2666-gbdde708'(build_ethercat-1.5.2.sh 中定义)放入开发板/lib/modules下 2.2 开发板中执行"depmod"命令 3. output里面的其它文件放入开发板对应位置 4. 设置参数 修改/etc/sysconfig/ethercat MASTER0_DEVICE="e4:f3:f5:c6:41:b6" #与ethercat绑定的Mac地址 DEVICE_MODULES="generic" #通用网卡就填generic,其余支持网卡换成模块名字就行 5.添加udev规则 echo KERNEL==\"EtherCAT[0-9]*\", MODE=\"0664\" > /etc/udev/rules.d/99-EtherCAT.rules 6. 启动服务 /etc/init.d/ethercat restart 出现以下信息表明移植成功 Shutting down EtherCAT master 1.5.2 done Starting EtherCAT master 1.5.2 ec_generic: Binding socket to interface 3 (eth0). done 7. 应用层测试 root@linaro-ubuntu-desktop:~# ethercat Please specify a command! Usage: ethercat [OPTIONS] [ARGUMENTS] Commands (can be abbreviated): alias Write alias addresses. config Show slave configurations. cstruct Generate slave PDO information in C language. data Output binary domain process data. debug Set the master's debug level. domains Show configured domains. download Write an SDO entry to a slave. eoe Display Ethernet over EtherCAT statictics. foe_read Read a file from a slave via FoE. foe_write Store a file on a slave via FoE. graph Output the bus topology as a graph. master Show master and Ethernet device information. pdos List Sync managers, PDO assignment and mapping. reg_read Output a slave's register contents. reg_write Write data to a slave's registers. rescan Rescan the bus. sdos List SDO dictionaries. sii_read Output a slave's SII contents. sii_write Write SII contents to a slave. slaves Display slaves on the bus. soe_read Read an SoE IDN from a slave. soe_write Write an SoE IDN to a slave. states Request application-layer states. upload Read an SDO entry from a slave. version Show version information. xml Generate slave information XML. Global options: --master -m Comma separated list of masters to select, ranges are allowed. Examples: '1,3', '5-7,9', '-3'. Default: '-' (all). --force -f Force a command. --quiet -q Output less information. --verbose -v Output more information. --help -h Show this help. Numerical values can be specified either with decimal (no prefix), octal (prefix '0') or hexadecimal (prefix '0x') base. Call 'ethercat --help' for command-specific help. 以上内容为基本的使用,进一步使用要结合ethercat说明文档和电机说明。 ---------------------------------------------------------------------------------------------------------------------------------------------- 自动安装Ethercat到ARM开发板: 将output目录复制到开发板然后运行output目录下install_to_arm.sh脚本 执行6,7步骤测试自动安装是否成功 ---------------------------------------------------------------------------------------------------------------------------------------------- 问题汇总: (1)Starting EtherCAT master 1.5.2 EtherCAT ERROR: MAC address may not be empty. FATAL: Error inserting ec_master (/lib/modules/3.0.35-2666-gbdde708-gbdbf2583/mnt/hgfs/win_linux_share/linux/download/ethercat-1.5.2/module_install/master/ec_master.ko): Invalid argument failed Mac地址为空,将对应的mac地址MASTER0_DEVICE="e4:f3:f5:c6:41:b6" (2)编译Ethercat 一定要保证所用编译器与内核与硬件平台一致,否则会出现内核模块不能使用或者其它未知问题 (3)内核源码要先编译通过,否则Ethercat模块将不能编译通过,因为Ethercat模块依赖于内核本身驱动模块。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

常驻客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值