罗 奇 余永元 龙 航 张晓航
(贵州大学电气工程学院,贵州 贵阳 550025)
【摘 要】DSP 28335的网卡芯片RTL8019AS是高度集成的以太网控制器,符合IEEE802.3标准,可以通过网络接口同时发送和接收数据。本文主要是基于以太网TCP/IP协议实现xPC目标与DSP间的全双工通信以及通信的可靠性。在Simulink中搭建以太网发送/接收模型,通过编译下载到xPC目标机运行。xPC目标机对传输数据进行封装并打包通过以太网发送给DSP,DSP接收xPC的数据包进行解包还原然后反馈给xPC目标进行比较。实验结果显示基于以太网能够实现快速xPC目标与DSP的通信。
教育期刊网 http://www.jyqkw.com
关键词 全双工通信;xPC目标 ;Simulink建模;以太网数据包
作者简介:罗奇(1990—),男,湖南衡阳人,硕士研究生,主要研究方向为电能质量变换与功率变换技术。
余永元(1988—),男,河南信阳人,硕士研究生,主要研究方向为电能质量变换与功率变换技术。
龙航(1987—),男,贵州贵阳人,硕士研究生,主要研究方向为电能质量变换与功率变换技术。
张晓航(1990—),男,河南洛阳人,硕士研究生,主要研究方向为电力电子在电力系统中的应用。
0 引言
xPC目标[1]是一个实时的内核系统,是由Mathworks公司基于RTW框架体系提供和发行的产品。该系统采用32位保护模式运行在目标机上,用于产品的原型开发和测试。支持多种类型的I/O设备,用户只需安装相关软件和编译器就可将一个PC兼容机作为xPC目标实时系统。
以太网具有灵活性高、传输速度快,满足全双工通信,易于实现。采用载波多路访问和冲突检测(CSMA/CD)机制,数据传输速率快,适合于传输TCP/IP数据,xPC目标通过连接以太网与宿主机通信。本文用到的RTL8019AS芯片是高度集成以太网控制器,它可以方便的的解答即插即用NE2000兼容适配器。基于以太网的xPC目标能够方便的实现DSP的通信。xPC目标与DSP通信系统如图1所示。
1 xPC目标及其网卡配置
1.1 xPC目标
xPC目标采用双机模式,即宿主机(上位机)控制目标机(下位机)的技术途径,其中,宿主机搭建Simulink模型,通过编译下载到目标机执行控制器代码。xPC目标要实现宿主机与目标机之间的通信,可以通过以太网连接或者串口线连接来实现
xPC目标的功能强大,操作简单,用户可以很方便实现对实时系统的快速原型化、测试和配置功能[2]。
(1)普通配置的PC机都可以作为目标机嵌入xPC实时系统,在此系统中实时运行Simulink和RTW通过编译生成的应用程序。
(2)具有丰富的I/O设备驱动模块库,支持多种CAN总线。
(3)宿主机和目标机通信通过RS232串口或者以太网TCP/IP协议实现。
(4)MATLAB应用程序界面采用客户/服务模式,提供了九十多种函数用于宿主机对目标机的控制。
(5)可以在程序运行时从宿主机或者目标机上动态调参。
(6)在宿主机和目标机上都可以进行交互式的数据可视化和信号跟踪。
(7)支持Microsoft Visual C/C++ 5.0以上版本的开发工具。
1.2 xPC目标机网卡配置
本文中,宿主机和目标机之间的通信,目标机与DSP之间的通信,都是通过连接以太网来实现。因此xPC目标机需要配备两块以太网卡,一片用于xPC目标跟宿主机通信,另一片用于xPC跟DSP间的通信。
xPC目标机跟宿主机之间的通信可以选择普通的网卡,市场最常见的10M/100M网卡都可以满足要求。在Matlab命令窗口输入-xpcexplr命令,调出宿主机与xPC目标通信连接界面。首先设置宿主机和xPC目标机的通信类型是基于以太网TCP/IP协议。然后设置xPC目标的IP地址和端口号,这里要注意目标机的IP要和宿主机的IP处于同一网段,例如xPC的IP可以设成192.168.1.9,那么宿主机的IP要设成192.168.1.X。如果不是同一网段,宿主机和目标机就不能连通。设置好参数之后就可以点击连接,如果绿灯亮,则表示可以宿主机可以编译和下载程序到目标机。
用于跟DSP通信的网卡则需要选择Intel 8255X系列和Intel Gigabit系列的网卡,可以教育期刊网 http://www.jyqkw.com
参考文献[3]。图2是在Matlab/Simulink搭建的基于TCP/IP协议的发送/接收模型:
模型参数设置
1)利用以太网卡初始化模块进行初始化设置,这其中包括网卡的总线数目,PCI插槽的序号,发送数据网卡的MAC地址。
2)设置创建以太网数据包模块中的MAC地址,这里是DSP的MAC,类型设为’0800’表示创建的是基于TCP/IP协议数据包。
3)连接宿主机和xPC目标机,成功之后点击编译,模型下载到xPC目标机,在xPC 目标机输入-start ,开始发送数据包。
2 DSP实现通信
DSP28335的以太网连接芯片选用由台湾Realtek公司生产的基于ISA总线的10Mbps以太网控制器芯片RTL8019AS,该芯片实现以太网媒介访问层(MAC)和物理层(PHY)的功能[4],其中包括MAC数据帧的收发、地址识别、CRC校验、曼彻斯特编码解码等功能。
2.1 DSP配置MAC和IP地址
在接收数据之前需要配置DSP 的MAC和IP地址,以及xPC目标发送数据包的网卡IP地址。这一部分的实现需要在程序中进行配置,部分程序如下所示:
……
extern Uint16 RxSuccessFlag;//接收成功标志
extern Uint16
RxEthnetFrameBuffer[1518/2];//接收以太网数据帧缓冲区范围
extern Uint16
RxEthnetFrameBuffer[1518/2];
发送以太网数据帧缓冲区范围
const Uint16 MyMAC[]
{0xE002,0xA04C,0x7A7E};//设置DSP的MAC地址
const Uint16 MyIP[]
{0xA8C0,0x0B01};//设置DSP的IP地址
const Uint16 RemoteIP[]
{0xA8C0,0x2801};//设置xPC目标IP地址
……
2.2 DSP实现TCP/IP协议通信
DSP初始化寄存器和网络芯片RTL8019AS , 并且开启中断.当有网络数据到达时,DSP 采用中断方式读取以太网数据并进行分析。 xPC发送过来的数据是用TCP/IP协议封装好的标准以太网帧,DSP收到的数据首先存储在RTL8019AS的缓存中,然后调用接收数据帧函数将数据读入DSP。读数据包之前,可以通过读BNRY指针和CURR指针[5]来判断是否接收到数据包,BNRY=CURR说明没有数据包接收,当两个指针变量有差值时说明有数据包收到。
完成xPC目标和DSP配置后,先启动xPC目标机,然后启动DSP。就可以在xPC 目标机上观测xPC目标发送的信号和接收来自DSP反馈回来的信号。具体波形如图3所示:
3 结束语
本文基于以太网TCP/IP协议实现了xPC目标与DSP的全双工通信,xPC目标通过以太网卡给DSP发送数据,DSP正常接收数据并反馈给xPC接收,实验所得结果满足期望,两个信号之间的延时延时小,丢包率低,同时也验证了基于以太网TCP/IP协议通信的可靠性。
教育期刊网 http://www.jyqkw.com
参考文献
[1]杨涤,等.系统实时仿真开发环境与应用[M].北京:清华大学出版社,2002.
[2]陶建峰,朱野,等.xPC目标及其API函数在实时控制软件开发中的应用[J].上中国航空学会控制与应用第十二届学术年会论文集,2000.
[3]xPC TargetTMI_O Reference Guide[M].The Math works Inc,2003.
[4]张颖,张长利.基于DSP的具有以太网接口的嵌入式系统设计[J].煤矿机械,2005.
[5]肖守邦,等.DSP以太网通信接口设计[J].中国高新技术企业,2008.
[责任编辑:汤静]