微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于LXI总线的1553B通讯模块设计与开发

基于LXI总线的1553B通讯模块设计与开发

时间:11-24 来源:3721RD 点击:

v,*_bb.v,*_waveforms.html 5个文件。其他参数默认即可。

2.4 以太网接口设计

以太网控制器选用DM9000A,芯片为48管脚的LQFP封装,支持处理器接口以字节/字模式的I/O命令操作内部存储器数据,集成10/100M带有AUTO-MDIX的接收器,支持用于全双工流控制的IEEE802.3x标准,提供IP/TCP/UDP校验和生成以及校验过程,可选的EEPROM配置。

DM9000A与控制器和RJ45连接器的连接如图4所示。DM9000A与控制器有两种数据总线宽度的连接方式,即8位/16位模式,论文选用16位操作模式。DM9000A通过TX+、TX-、RX+和RX- 4条线与自带隔离变压器的RJ45转换器相连。RESET引脚为DM9000A的复位引脚,低电平有效;X1外接25 Hz时钟频率。

2.5 1553B接口设计

BU-61580与控制器的接口形式非常灵活,本文根据需求和资源情况选择16位缓冲连接方式。为了提高本模块的抗干扰性,论文采用变压器耦合方式。BU-61580的外围电路连接图如图5所示。



3 模块软件设计与开发

3.1 软件结构设计

软件结构层次由NiosII处理器系统硬件、设备驱动程序、HAL API、μC/OSII、LwIP协议栈、系统初始化和应用程序7部分组成,如图6所示。

1)NiosII处理器系统硬件:模型的核心,包括在FPGA中实现的NiosII软核处理器和硬件外设;


2)设备驱动程序:管理以太网、1553B组件和其它外设的软件函数;


3)HAL API:硬件抽象层应用程序接口,对设备驱动程序提供标准化的接口,对外层提供类似于POSIX的API;


4)μC /OSII:实时操作系统层,为LwIP协议栈、1553B任务和嵌入式Web任务提供多任务和任务间通讯服务;


5)LwIP协议栈:通过套接字API为应用程序和应用系统初始化提供网络服务;


6)系统初始化:包括μC/OSII、LwIP协议栈和1553B组件初始化函数,也包括所有应用程序的任务、信号量、队列和事件性标志等实时操作系统任务间通讯资源的创建;


7)应用程序:最外一层是建立的各项应用任务。

应用程序工作过程如下:首先进行系统初始化,然后进入工作等待状态。以太网任务等待客户端通过以太网发来的数据包,当有数包到达时,经物理层处理后交于TCP/IP层处理。在TCP/IP协议层之上,建立了3个套接字接口来侦听套接字连接:嵌入式Web端口、PING端口和1553B端口。对于1553B任务,根据客户端不同的请求,将启动不同的任务来完成相应的数据命令的发送或状态的读取。

3.2 基于μC/OSII的LwIP协议实现

轻量型IP(Light Weight IP,LwIP)协议是用于嵌入式系统开放源代码的TCP/IP协议栈。LwIP在保持TCP协议主要功能的基础上减少对RAM的占用,非常适合在嵌入式系统中使用。

LwIP协议栈在设计时就考虑了移植问题,把所有与硬件、OS和编译器相关的部分独立了出来,因此LwIP在μC/OSII上移植只需修改目录下的文件即可。

3.3 1553B总线协议任务的实现

为方便对BU-61580芯片操作,开发了BU-61580的驱动程序。驱动程序包括BU-61580芯片的初始化函数、BC发送接收命令函数、BC发送发送命令函数、BC发送接收/发送命令函数、BC发送不带数据字的方式命令函数和BC发送带数据字的方式命令函数。

参考嵌入式Web服务器的实现方式,基于LwIP和μC/OSII建立了端口号为8000的1553B套字接口任务,流程如图7所示。


首先建立1553B任务接口守护进程,创建TCP套接字,绑定端口,将TCP套接字转换成侦听套接字,进入循环结构,等待接受用户的连接请求。当有客户端请求连接端口8000时,调用套接字数据接收函数recv()将客户端发送的数据读取过来,将数据映射到定义的结构体变量alt_avalon_BU61580*bdev上;用请求解析函数int 1553B_request(alt_avalon BU61580*bdev)根据messagemode判断需要采取什么操作方式:然后BU-61580的发送数据函数将数据内容写到相应的寄存器或存储器内,启动BC发送;如果调用读取数据函数,则将存储器或寄存器地址传递给读取函数,将读取到的数据调用函数int 1553B_transmit(&bdev[i],i)经以太网打包后发送给客户端。

4 仪器驱动程序开发

仪器驱动程序是介于上层用户应用程序和底层仪器硬件之间的一组函数,用户在开发上层应用程序时,可以调用这些基本动作函数来使用仪器,而无须与底层硬件通讯。

参阅VPP规范,模块提供了基于VISA函数的仪器驱动程序。通过调用VISA函数,向模块发送命令来完成模块的功能。开发环境为LabWindo ws/CVI,而选用Agilent VISA作为VISA函数库,主要是考虑Agilent是LxI总线的发起者,而且其提供的Agilent I/O Libraries封装了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top