新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 基于LAN的高集成度数据采集设备研制

基于LAN的高集成度数据采集设备研制

作者:时间:2013-12-13来源:网络收藏
e="margin: 0px; padding: 0px; border: 0px; ">

本文引用地址:http://www.eepw.com.cn/article/227563.htm

FPGA 内部逻辑控制功能切换、实现MAX134内部寄存器的读写,进而实现数字多用表功能。

3 软件设计

3.1 网络通讯功能实现方法

本设计利用DSP/BIOS 结合NDK 实现网络通讯功能。DSP/BIOS 是TI 公司为C28x,C5000 和C6000 系列DSP开发的可剪裁实时多任务操作系统,同时也是CCS提供的一套多任务开发、硬件抽象、实时分析和系统配置的专用工具。DSP/BIOS以其功能丰富的APIs综合管理系统内存,实现任务分配和调度,实时监测分析系统运行,并提供方便的数据通信接口和外设驱动开发工具。NDK是TI专门为网络应用开发提供的网络开发工具包,利用其TCP/IP协议栈开发网络应用具有成本低、开发周期短的特点。网络性能由套接字类型、套接字缓冲区、CPU速度和CPU缓冲等几方面决定。要使用NDK 必须在DSP/BIOS 中配置TCP/IP 协议栈,主要在DSP/BIOS的。cdb文件中做以下配置:

(1)全局设置GBL

设置系统初始化函数dm642_init,用于设置L2 模式,分配MAC地址;

(2)设置MEM对象

配置程序、数据存储区域及堆栈大小;

(3)设置HOOK对象

设置NDK的TCP/IP协议栈保存空间;

(4)设置PRD对象

设置NDK HAL库中的定时驱动事件;

(5)设置线程TSK

静态创建2个线程:TSK_idle线程,优先级最低,当系统没有其他任务执行时运行;TSK_main主线程,优先级最高,用于配置服务器信息及启动HTTP服务。

配置文件生成之后,在DSP/BIOS 中编写网络主线程TSK_main,用于启动运行TCP/IP 协议栈,启动HTTP服务,同时不断监测和响应网络底层事件。在主线程中可以动态创建任务,用于实现与其他网络设备的网络通讯功能。3.2 多任务线程管理机制

为了优化CPU资源,实现各功能的协调运作,需要合理划分功能、规划任务。本设计构建了按优先级从高到低创建了高速A/D 线程、低速A/D 线程、数字多用表线程、网络传输线程和网络配置线程。其中,网络传输任务是最核心的任务线程,主要完成创建线程、网络命令解析、通道查询和数据上传的功能,流程图如5所示。

基于LAN的高集成度数据采集设备研制

网络传输任务使用套接字编程,工作在服务器模式,通讯方式采用TCP.首先调用fdOpenSession()函数建立文件描述表,调用socket()创建套接字,然后绑定IP信息、监听,然后等待客户端连接请求,一旦客户端连接上,便调用fdSelect()函数检测客户端是否发送数据,如果有数据则接收,否则继续检测,除非客户端断开连接。在这种设计模式下,允许客户端重复的执行断开、连接操作,保证了系统工作的稳定性。

DSP/BIOS 支持硬件中断(HWI)、软件中断(SWI)、任务(TSK)和空闲线程(IDL)4种类型的线程,它们的线程优先级从高到低。硬件中断线程主要用来处理响应时间要求严格的请求,同时它的优先级最高,能抢占当前运行的其他线程及时运行,本设计各线程运行调度状态如图6所示。

基于LAN的高集成度数据采集设备研制

图中黑色阴影部分表示线程运行,白色不封表象线程挂起。高速A/D处理的数据量最大,对处理响应的时间要求严格,故将它的优先级设为最高,能抢占当前运行的其他线程及时运行,保证数据实时上传,低速A/D线程和数字多用表线程的优先级根据其对时间的要求逐次降低。

4 测试

为了测试接口板的网络通讯功能,使用PC 机作为客户端,与设备通过路由器连在局域网内。设备作为服务器端,在PC机端采用VS2005编写上位机网络通讯程序,每次传输46 720 B数据,在开始和结束数据传输时刻读取系统时间,并计算出网络传输的速率,如图7所示。

基于LAN的高集成度数据采集设备研制

DM642中L2的Cache大小会影响网络传输速度,实验发现,当Cache大小在128 KB是,传输速率达到了最佳,为89.2 Mb/s,由于在局域网中网络环境相对复杂等原因,没有达到理想的100 Mb/s的传输速率。A/D



评论


相关推荐

技术专区

关闭