基于DSP和VC的网络通信检测系统的研究
2012-05-12杨志新
杨志新,王 勇
(南京邮电大学自动化学院,江苏南京210003)
嵌入式技术是目前电子行业研究的热点,然而嵌入式技术在网路通信上的应用更成为了一种必然的趋势[1]。本文针对网路通信系统的维修保障,给出了基于DSP和VC及网络通信的对网路通信系统性能进行检测的精简、高效的设计方案,能够在短时间内对网路通信系统进行快速检测。
1 系统的硬件结构设计
系统的硬件结构主要包括基于TMS320VC5510 DSP处理芯片和CS8900A的网卡芯片电路的设计,如图1所示。DSP芯片是本系统设计的核心,它完成了对设备测量数据的解析及处理,已经按照既定的通信协议与VC程序完成了数据的传输和测试控制。本系统采用的是美国TI公司开发的TMS320VC5510微处理芯片,它具有更高的代码执行效率和更低的功耗,其最高指令执行速度可达800MIPS,它主要由CPU、外设总线控制器、DMA控制器、片上外设和片上存储单元等几大部分组成。网卡芯片采用的是Cirrus Logic公司生产的cs8900a局域网处理芯片,它采用的是100 pin TQFP封装,内部集成了在片RAM、10BASE-T收发滤波器,并且提供8位和16位两种接口。
图1 系统的硬件设计结构
2 测试方法流程
首先由VC通过串口向DSP发送各个模块的测试命令[2],DSP收到这些命令后,根据命令解析函数解析命令,调用不同处理函数去完成相应的操作,并把最终的测试结果返回给VC,并在VC界面中显示测量结果。在DSP中主要遵循层层调用的原则[3],即:VC程序发送命令给 DSP,进入DSP中断函数,中断函数调用dsp55x.c中的命令解析函数,对收到的不同命令,dsp55x.c通过调用cs8900a.c中不同的处理函数来完成不同的测试功能,然后通过写串口函数把测试结果回送给VC程序,这样的设计与调用顺序清晰明了,程序规范而易懂。
我们把测试命令分为三类:DSP模拟总线通信命令;各个接口发功能测试;各个接口收功能测试。
如果DSP收到总线连接命令,则调用cs8900a函数Send_Data(),利用以太网发送函数ethernet_driver_send(),模拟总线发确认帧。
如果DSP收到的是各接口发功能测试命令,则调用cs8900a函数Send_Data(),利用以太网发送函数ethernet_driver_send(),模拟各接口发不同的音频数据包,这里不同的数据包是根据不同的测试接口调用expand_packet_change()函数而改变的,主要更改的是目标MAC地址、源MAC地址、命令字等关键信息,音频数据部分可以采用同样的数据。
如果DSP收到的是各接口收功能测试命令,则调用cs8900a函数Send_Data(),利用音频测试函数YinPinV(int flag),根据A律转线性函数alaw2linear()解码出来的存放在expand_packet[]数组中的数据计算电压幅值、调制速率等参数,这里,expand_packet[]是在 arp_broadcast()函数中不断更新的。
具体的DSP程序测试流程示意图如图2所示:
3 软件模块测试函数说明
主要对 VC、dsp55x.c、cs8900a.c 三个源文件中包含的测试函数进行相关的描述[4],及主要函数的流程说明。
3.1 VC模块测试函数
主要包括相关的连接命令发送函数、测试命令发送函数、测试结果接受函数。通过发送连接测试命令建立与被测接口的正常通信,然后通过发送相关的测试命令控制DSP完成相应的操作,最终显示由DSP测试显示的结果。
图2 软件设计测试流程
3.2 dsp55x.c 模块测试函数
本模块主要通过读串口信息,获取由VC发送的测试命令,然后调用cs8900a.c中的相关测试函数,通过cs8900a与被测设备建立通信方式,然后把相关的测试结果经过DSP中的算法处理,然后通过串口发送给VC程序。
3.3 cs8900a.c 模块测试函数
cs8900a.c主要完成与网口操作有关的工作,如DSP模拟发功能时,通过网口向外发送数据包,DSP模拟收功能时,通过网口接收数据包,还有广播函数arp_broadcast()一直在读以太网上传来的数据,并把符合条件的音频数据通过A律转线性函数alaw2linear()解码,保存在特定数组中,这些数组一直在更新,在我们测试的时候可以随时调用这些数组进行各参数计算,并且完成了精简协议栈在DSP中的移植,使得网口可以进行数据传输。
3.4 关键函数流程图
在测试程序中,最关键的函数就是各接口收/发音频测试函数,即为dsp55x.c中的 YinPinTest()和 cs8900a.c中的YinPinV(int flag),这两个关键函数的流程图分别如图3、图4所示。
(1)void YinPinTest():发音频测试函数
(2)void YinPinV(int flag):收音频测试函数
图3 发音频测试函数流程图
图4 收音频测试函数流程图
4 设计结论
在本课题中提出了基于DSP和VC的对网络通信系统性能进行测试的方案,以及其实现方法,TMS320VC5510微处理芯片高效率的代码执行和cs8900a稳定的网卡芯片可以确保最终可实现在短时间内对网络通信系统的现场保障和维修检测。接下来的研究中还需要解决的问题是,如何解决不同测试命令之间的交互、测试方法的稳定性以及VC测试流程和被测设备之间的时序调整,设置可以通过网络来传输检测的结果,实现对设备的远程检测及分析。
[1]王田苗.嵌入式系统设计与开发实例[M].北京:清华大学出版社,2002.
[2]杜广微,张军国,韩宁.基于TCP/IP协议栈的嵌入式以太网终端设计[J].航空计算机技术,2007,(4):131 -134.
[3]申敏.DSP原理及其在移动通信中的应用[M].北京:人民邮电出版社,2001.
[4]李师贤,蒋爱军,梅晓勇,等.C++Primer中文版[M].北京:人民邮电出版社,2006.