linux cpu占用率如何看
296
2022-11-07
以多核DSP处理器为核心的以太网通信接口硬件设计概述
1 C6678以太网交换子系统
EMAC的作用是将交换子系统的内部信号转换为GMII信号传递给SGMII模块;MDIO控制物理层芯片执行对多数据流的控制输入输出。
2 PHY芯片88E1111
本文选择C6678作为主芯片,由于C6678的千兆网络交换子系统只支持SGMII接口,所以本文选择对SGMII接口的网络数据传输具有较好兼容性的物理芯片88E1111。88E1111芯片的内部结构如图2所示。
3 硬件接口设计
本文设计的任务是基于C6678片内以太网交换子系统和片外PHY芯片88E1111及其外围电路的接口设计。主要包括:C6678与88E1111芯片连接、88E1111芯片配置以及88E1111芯片与网络介质连接。
3.1 C6678与88E1111芯片连接
主要的接口信号包括时钟和数据信号如下:
MDIO_CLK:管理数据时钟。该时钟信号由C6678片上的MDIO模块提供,该时钟频率通过配置MDIO的控制寄存器CONTROL中的CLKDIV位来控制实现。
SGMII_TXP和SGMII_TXN:串行发送差分数据线。连接DSP内部SerDes和物理芯片的S_IN管脚,DSP的SerDes通过该管脚向物理层发送串行数据,数据中包含发送数据时钟信号。
SGMII_RXP和SGMII_RXN:串行接收差分数据线。连接DSP内部SerDes和物理芯片的S_OUT管脚,物理层芯片通过该接口将数据传送到DSP的SerDes,数据中包含数据接收时钟信号。
因为88E1111上集成的MDIO与C6678集成MDIO模块进行连接时,电压有所差别,前者电压为2.5 V,后者电压为1.8 V,所以在二者之间应该添加电压转换器。本文采用一片PCA9306,实现2.5 V和1.8 V之间的电平转换,其连接电路如图4所示。
3.2 88E1111芯片配置
4 软件程序设计
SYS/BIOS为整个软件提供集成开发环境,不仅拥有适合实时系统的多线程优先抢占机制,还可添加需要的封装库,使得编写程序时可以更加方便地调用库函数。NDK是DSP的网络程序开发集成工具,其中,stack.lib给出了从顶层socket到底层PPP关于TCP/IP协议栈的封装库;nettool.lib提供用于socket网络套接字和用于网络应用开发工具的封装库;os.lib提供应用于SYS/BIOS和网络编程套件之间的系统协调的封装库;hal.lib提供外围设备和网协议栈之间接口的封装库;netctrl.lib提供DSP网络编程的整体控制,可用来配置底层驱动和协议。
本文DSP片上系统软件分为3部分:SYS/BIOS平台和NDK的TCP/IP协议栈建立和配置;用户程序;编制底层驱动程序。
4.1 底层硬件驱动的实现
NDK的基本结构如图7所示,可看出NDK开发套件与用户程序、SYS/BIOS操作系统和底层硬件都有密切的联系。NDK中网络控制层和操作系统接口层与SYS/BIOS系统相连接,NDK的硬件驱动层用于控制底层硬件驱动的配置,这些操作和配置均可在网络工具库中找到相应的驱动函数,并可直接由用户应用程序来调用实现。
这些功能主要包括:
如图7所示,硬件驱动包含在硬件驱动层hal.lib中,用户需要对按照系统对驱动函数进行修改。C6000系列NDK的API封装了许多固定的驱动函数,具有特定的功能,比如_llPacketSerivceCheck()的作用是检测以太网数据包的结构,且将检测到的结构信息反馈给协议栈进行分析处理。具体的驱动程序需要按照硬件系统的配置来进行设计,在C6678中,可在集成度较高的片上系统直接对网络通信模块的寄存器进行配置查询,就可以完成硬件底层驱动,使得底层硬件能够有效地运行。
4.2 DSP端网络应用程序
DSP软件设计是基于SYS/BIOS实时多任务操作系统和C语言,采用Socket套接字,创建TCP/IP客户端(Client)和服务器端 (Server),Client负责与外部设备服务器端建立连接并接收数据包,Server用来向PC机发送处理后的数据包。接收任务和发送任务流程如图 8所示。在C6678的内核Core0中建立两个同步线程任务,即数据接收和发送任务,分别用来接收TCP服务器发送过来的数据和发送处理后的数据到PC 上位机中进行处理、存储和显示。
4.3 上位机测试程序
上位机测试程基于VC++的MFC界面设计,使用套接字Socket进行网络编程。程序中需设计两个同步线程,用来实现数据的实时接收和动态显示功能。使用TCP服务器端发送船体结构应力数据,经过DSP的接接收、处理和发送过程,最后发送到PC上位机进行数据动态显示,结果如图9所示。
5 结束语
本文以8核处理器C6678为核心,对片上集成的以太网交换子系统接口硬件进行了研究,按照接口的特点设计了包括以太网交换子系统和物理芯片的接口连接、物理芯片与网络介质接口连接的硬件系统,并完成了千兆以太网驱动,最终实现多核DSP C6678与上位机进行千兆以太网通信。通过与上位机进行网络通信测试,结果显示以太网数据通信接口能实时高效地进行网络数据传输。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~