位置:51电子网 » 技术资料 » 通信网络

基于嵌入式调试器的网络通信方法设计与实现

发布时间:2007/4/23 0:00:00 访问次数:422


 
摘要:本文介绍了在嵌入式调试器中如何通过以太网口进行嵌入式软件调试,实现了主机与开发板之间的网口通信。针对具体的嵌入式开发板S3C4510B对网口驱动和网络协议进行了研究,裁减了网口驱动和网络协议的冗余部分,既保证了调试器可以通过以太网进行远程调试,又能满足嵌入式系统对资源占用的要求。
关键词:嵌入式开发板;网络协议;嵌入式调试器
0.引言
随着嵌入式系统的广泛应用,嵌入式软件开发变得日趋重要。嵌入式软件开发有别于桌面软件开发,其显著特点是软件开发的调试过程采用宿主机/目标机的模式进行,其交叉调试器分为宿主机和目标机两部分,因此在软件调试过程中就需要进行主机与目标机之间的通信。
目前宿主机与目标机之间的通信方式主要有串口方式、以太网接口方式和USB接口方式三种,其中串口通信实现简单,稳定可靠,是目前广泛使用的通信方式,但是串口通信存在着速度慢、通信距离受限等弊端,而以太网接口方式则可以克服串口方式的不足,不仅可提供稳定可靠的数据传输,而且无论是传输速度还是传输距离都远远优于串口方式,是一种快速高效的通信方式。目前网络通信协议的发展已经相当成熟,Internet工程委员会IETF及其下属的管理组IESG在RFC文挡中已经明确定义了Internet协议族的规范,该规范已经成为一种标准在Internet中广泛应用。本文根据此规范讨论了在嵌入式调试器中如何实现以太网接口通信,给出了一种基于嵌入式调试器的网络通信方法。
1.硬件结构
S3C4510B是三星公司开发的一款16/32位RISC嵌入式处理器,芯片内部集成了一个10Mbps/100Mvps以太网控制器,网卡芯片采用的是RTL8201。以太网控制器主要分为BDMA控制器和MAC子层两部分,该控制器工作于MAC层,兼容IEEE802.3协议标准,支持半双工或全双工模式,采用介质独立接口(MII)与网卡芯片通信。
2.通信协议
在嵌入式调试器的通信中,主机向目标机发送命令,目标机接收、执行命令并将结果返回主机,网口通信主要是面向数据和字符串传输的,因此在通信中主要用到IP协议、ARP协议和UDP协议。要通过网络调试目标机,那么目标机IP地址的设置是必不可少的,因此目标机还需要实现BOOTP协议,通过BOOTP协议向主机申请本机IP地址,完成IP地址的配置。
BOOTP协议即引导程序协议,是一种基于UDP/IP的协议,主要用于客户机从服务器获得本机IP地址、服务器IP地址及其它配置信息,如本地子网掩码等。UDP协议即用户数据报协议,是一个简单的面向数据报的传输协议,与TCP不同,UDP不提供对IP协议的可靠机制、流控制以及错误恢复功能,所以实现起来比较简单,且不影响传输速度,适用于嵌入式系统。IP协议即网际协议,是网络上实现数据传输的基础,所有的TCP、UDP数据都以IP数据报格式传输,该协议提供了一种高效不可靠的无连接传输方式。ARP协议即地址解析协议,为IP地址与对应的物理地址提供映射。
3. 网络通信程序实现
具体的程序实现主要包括网口驱动和通信协议两部分,网口驱动即初始化S3C4510B的硬件,主要是以太网控制器和收发缓冲的设置;网络协议的实现主要是完成数据的收发,保证目标板接入以太网。程序实现流程如图1所示。


图1 程序实现流程图
3.1网口驱动实现
网口驱动的实现主要是针对具体的开发板所做的硬件初始化,配置硬件工作环境。
3.1.1管理网卡芯片
在4510开发板中由MAC层的状态管理控制机通过MII接口来读取和设置网卡的工作状态,物理设备地址及其内部寄存器地址存放在站管理控制与地址寄存器STACON中,而要设置或读取的数据则放在站管理数据寄存器STADATA中。
在实际应用中,网卡的MAC地址可以从ICC EEPROM中读取,也可自行设定,只要保证在同一局域网内该地址的唯一性即可。
3.1.2初始化以太网控制器
①关闭MAC、BDMA收发中断,保证初始化程序的顺利进行。
②设置MAC、BDMA中断向量表。S3C4510B中共有21个中断源,MAC和BDMA发送/接收中断源占用16~19四个中断号。
③设置MAC、BDMA控制器的初始值,即初始化BDMA接收/发送控制寄存器和MAC接收/控制寄存器,具体收发细节。
④配置以太网的收发缓冲区。发送帧和接收帧的帧描述符起始地址分别存放在寄存器BDMATXPTR和BDMARXPTR中,在BDMA的操作过程中它们会更新为下一个帧地址。其中,帧描述符定义为结构类型,结构体成员描述了帧信息。
⑤使能BDMA接收中断和MAC发送中断。将中断屏蔽寄存器INTMSK中的相应位清零,响应BDMA和MAC中断请求。
3.1.3收发以太数据帧
①发送以太数据帧:调用发送函数DrvEthWrite(),从BDMATXPTR中获得发送帧地址,为发送帧缓冲赋值,将数据帧的控制权交给BDMA控制器,以太网控制器自动为发送数据加上同步位、分割位、校验位以及填充字段并将以太帧发送出去。
②接收以太数据帧:接收时产生BDMA接收中断,中断处理函数BDMA_Rx_isr()完成数据的接收,并做相关的处理,如清楚中断标志位、检查数据帧的所有权、获取

 
摘要:本文介绍了在嵌入式调试器中如何通过以太网口进行嵌入式软件调试,实现了主机与开发板之间的网口通信。针对具体的嵌入式开发板S3C4510B对网口驱动和网络协议进行了研究,裁减了网口驱动和网络协议的冗余部分,既保证了调试器可以通过以太网进行远程调试,又能满足嵌入式系统对资源占用的要求。
关键词:嵌入式开发板;网络协议;嵌入式调试器
0.引言
随着嵌入式系统的广泛应用,嵌入式软件开发变得日趋重要。嵌入式软件开发有别于桌面软件开发,其显著特点是软件开发的调试过程采用宿主机/目标机的模式进行,其交叉调试器分为宿主机和目标机两部分,因此在软件调试过程中就需要进行主机与目标机之间的通信。
目前宿主机与目标机之间的通信方式主要有串口方式、以太网接口方式和USB接口方式三种,其中串口通信实现简单,稳定可靠,是目前广泛使用的通信方式,但是串口通信存在着速度慢、通信距离受限等弊端,而以太网接口方式则可以克服串口方式的不足,不仅可提供稳定可靠的数据传输,而且无论是传输速度还是传输距离都远远优于串口方式,是一种快速高效的通信方式。目前网络通信协议的发展已经相当成熟,Internet工程委员会IETF及其下属的管理组IESG在RFC文挡中已经明确定义了Internet协议族的规范,该规范已经成为一种标准在Internet中广泛应用。本文根据此规范讨论了在嵌入式调试器中如何实现以太网接口通信,给出了一种基于嵌入式调试器的网络通信方法。
1.硬件结构
S3C4510B是三星公司开发的一款16/32位RISC嵌入式处理器,芯片内部集成了一个10Mbps/100Mvps以太网控制器,网卡芯片采用的是RTL8201。以太网控制器主要分为BDMA控制器和MAC子层两部分,该控制器工作于MAC层,兼容IEEE802.3协议标准,支持半双工或全双工模式,采用介质独立接口(MII)与网卡芯片通信。
2.通信协议
在嵌入式调试器的通信中,主机向目标机发送命令,目标机接收、执行命令并将结果返回主机,网口通信主要是面向数据和字符串传输的,因此在通信中主要用到IP协议、ARP协议和UDP协议。要通过网络调试目标机,那么目标机IP地址的设置是必不可少的,因此目标机还需要实现BOOTP协议,通过BOOTP协议向主机申请本机IP地址,完成IP地址的配置。
BOOTP协议即引导程序协议,是一种基于UDP/IP的协议,主要用于客户机从服务器获得本机IP地址、服务器IP地址及其它配置信息,如本地子网掩码等。UDP协议即用户数据报协议,是一个简单的面向数据报的传输协议,与TCP不同,UDP不提供对IP协议的可靠机制、流控制以及错误恢复功能,所以实现起来比较简单,且不影响传输速度,适用于嵌入式系统。IP协议即网际协议,是网络上实现数据传输的基础,所有的TCP、UDP数据都以IP数据报格式传输,该协议提供了一种高效不可靠的无连接传输方式。ARP协议即地址解析协议,为IP地址与对应的物理地址提供映射。
3. 网络通信程序实现
具体的程序实现主要包括网口驱动和通信协议两部分,网口驱动即初始化S3C4510B的硬件,主要是以太网控制器和收发缓冲的设置;网络协议的实现主要是完成数据的收发,保证目标板接入以太网。程序实现流程如图1所示。


图1 程序实现流程图
3.1网口驱动实现
网口驱动的实现主要是针对具体的开发板所做的硬件初始化,配置硬件工作环境。
3.1.1管理网卡芯片
在4510开发板中由MAC层的状态管理控制机通过MII接口来读取和设置网卡的工作状态,物理设备地址及其内部寄存器地址存放在站管理控制与地址寄存器STACON中,而要设置或读取的数据则放在站管理数据寄存器STADATA中。
在实际应用中,网卡的MAC地址可以从ICC EEPROM中读取,也可自行设定,只要保证在同一局域网内该地址的唯一性即可。
3.1.2初始化以太网控制器
①关闭MAC、BDMA收发中断,保证初始化程序的顺利进行。
②设置MAC、BDMA中断向量表。S3C4510B中共有21个中断源,MAC和BDMA发送/接收中断源占用16~19四个中断号。
③设置MAC、BDMA控制器的初始值,即初始化BDMA接收/发送控制寄存器和MAC接收/控制寄存器,具体收发细节。
④配置以太网的收发缓冲区。发送帧和接收帧的帧描述符起始地址分别存放在寄存器BDMATXPTR和BDMARXPTR中,在BDMA的操作过程中它们会更新为下一个帧地址。其中,帧描述符定义为结构类型,结构体成员描述了帧信息。
⑤使能BDMA接收中断和MAC发送中断。将中断屏蔽寄存器INTMSK中的相应位清零,响应BDMA和MAC中断请求。
3.1.3收发以太数据帧
①发送以太数据帧:调用发送函数DrvEthWrite(),从BDMATXPTR中获得发送帧地址,为发送帧缓冲赋值,将数据帧的控制权交给BDMA控制器,以太网控制器自动为发送数据加上同步位、分割位、校验位以及填充字段并将以太帧发送出去。
②接收以太数据帧:接收时产生BDMA接收中断,中断处理函数BDMA_Rx_isr()完成数据的接收,并做相关的处理,如清楚中断标志位、检查数据帧的所有权、获取
相关IC型号

热门点击

 

推荐技术资料

耳机的焊接
    整机电路简单,用洞洞板搭线比较方便。EM8621实际采... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!