基于ARM+FPGA的ISA总线/MMи总线接口转换设计在轨道交通的应用

news2024/12/23 12:17:55

总线广泛应用于计算机、工业生产及各种测试设备。ISA总线为IBM公司推出的基于80286CPU的PC/AT微型计算机用扩展总线标准,MMи总线是俄罗斯国内自行设计的专用测试总线,主要用于程控单元模块与MMи总线之间数据及控制信息的交换。在某型导弹测试设备中,工控计算机采用了ISA总线,而俄制测试设备采用了MMи总线,2种总线数据模式和传输制式不同。本文以FPGA为核心,设计了ISA总线/MMи总线2种总线之间的数据和控制指令转换电路,实际应用证明了该电路的可靠性。

1 ISA总线和MMи总线简介

1.1 ISA总线

ISA(Industrial Standard Architecture)总线是IBM公司于1984年进一步扩充XT总线标准而形成的。ISA总线标准支持24位的地址线、16位的数据线;支持11级中断IRQ3~IRQ7,IRQ9~IRQ12,IRQ14~IRQ15;支持7个DMA传输通道DRQ0~DRQ3,DRQ5~DRQ7;支持主从控制、I/O等待和I/O校验等功能。为了与XT总线保持向下兼容,ISA总线在信号功能的定义和物理接口上均作了特殊的安排,即保持原有的XT总线不变,重新增加一个36线的连接插槽,分成C,D两面,扩充的功能设计在C,D两面的信号线上。其引脚定义如下:
(1)数据总线SD0~SD7。SD0~SD7为8位双向三态数据总线,在芯片和主接口间传输命令、数据和状态。SD7为最高位。

寄存器选择引脚为SA4~SA9,SW DIP-6(板基址011001)和。这些引脚决定转换是否响应I/O周期,当为逻辑低电平且SA4~SA9与6位拨动开关值完全匹配时,内部产生一个片选信号,使转换响应I/O周期。

(2)地址信号SA0~SA3。I/O读写操作时作为转换电路上FPGA芯片内的寄存器选择信号。

(3)读写信号,。写操作中,转换在上升沿锁存数据。读操作中,当有效时,转换模块直接驱动8位数据线。

(4)中断信号INTR。中断状态寄存器某使能中断为真时,INTR有效。对INTR的有效声明没有最小脉宽要求。

(5)I/O通道准备好信号IO CHRDY。IOCHRDY变低,表明当前I/O周期需要被延长。写周期中,当数据从ISA总线上被锁存时IO CHRDY变高。读周期中,数据有效时IO CHRDY变高。进行寄存器读写时IO CHRDY被拉低。IO CHRDY引脚用集电极开路逻辑门驱动,因此此信号会由一个内部上拉电阻上拉至逻辑高电平。

(6)复位信号RESET。RESET信号有效时,触发转换模块,使FPGA硬重肩。

1.2 MMи总线

MMи总线是俄罗斯国内自行设计的专用测试总线,主要用于程控单元模块与MMи总线之间数字及控制信息的交换,其基本技术性能如下:

(1)MMи总线采用异步、字节串行、位并行、双向信息传输方式。

(2)MMи总线采用负逻辑,模块服务请求信号(зOм)和转换结束信号(KПp)除外。低电平电压为0~0.6 V,表示逻辑1(对于服务请求信号зOМ和转换结束信号KПp,逻辑1的电平为2.4~4.5 V);高电平电压为2.4~4.5 V,表示逻辑0(对于服务请求信号зOМ和转换结束信号KПp,逻辑0的电平为0~0.6 V)。

(3)总线上挂接的程控单元模块最多为16个(包括控制器)。

(4)MMи总线中最多包含92根信号线路。一个程控单元模块内所使用的线路最多不超过50根,最少不少于15根。每一个具体的程控单元模块所用的线路数量,可根据此模块的具体技术要求确定。

(5)程控单元模块与MMи控制器间总线电缆的最大长度不应超过1 m。

(6)总线内的信息传输最大速度由程控单元模块与MMи总线的信息处理能力决定,最大不超过100 Kb/s。

(7)总线控制器与程控单元模块间的连接方式有2种:链型连接及星型连接。链型连接总线上的所有装置,包括控制器,都是并行连接的;其中的信号可以单向或双向传输;星型连接总线将MMи控制器与单个程控单元模块一对一地连接到一起,其中的信号单向传输。

(8)MMи总线线路可分以下6类:

数据线:“1 pиM,….8 pиM”线路(数据总线);第1电平地址线——“Aдp.эм”线路(程控模块单元地址);第2电平地址线——“A0…A15”线路(信息寄存器地址);同步线——“ΓT”(准备好),“Пpиeм”(接收),“Bыд”(发送),“Kнп”(传输结束)线路;控制线——“иAэм”(初始化),“эaпycK эм”(触发),“ПOзм”(串行询问),“KOм.1……KOм.16”(控制指令)线路;中断线——“зOм”(请求服务),“Kпp”(转换结束)线路。

程控单元模块从MMи控制器接收的所有指令都是寻址指令。在中断线内,模块服务请求信号“зOм”具有高优先级,转换结束信号“Kпp”具有低优先级。

2 硬件设计

2.1 工作原理

如图1所示,转换电路由FPGA芯片EPF10K30-RI208-4、FPGA配置器件EPC2LI20、接收缓冲电路、地址比较电路和总线接收电路组成。工作原理如下:当转换电路工作时,首先根据FPGA配置器件内的文件对FPGA芯片进行自动配置,当ISA总线相应地址位与6位拨动开关值匹配时(拨动开关为预设待转数据模块地址),选中需要转换数据的地址,然后由ISA数据总线发送数据或命令,FPGA芯片中的译码电路结合地址总线信号和控制总线信号将控制数据转为MMи总线对后级程控模块的控制指令,对后级模块实现控制。
 


当传递某MMи程控模块的数据时,首先将MMи程控模块初始化,然后由ISA总线发送“模块选址”数据,写入FPGA中地址寄存器后,经译码产生选址信号,并由触发器保持。选址后,ISA总线发送“初始化”指令,写入命令寄存器后,经译码产生初始化信号。当监测到“准备好”信号时,说明初始化成功,发送“清除模块选址”信号。

MMи程控模块接收信息时,在被寻址且发出准备好信号后,ISA总线将要写入程控模块的数据先写入FPGA中的数据输出寄存器中,然后发送到MMи数据总线上,发出“Пpиeм”接收信号,程控模块根据此信号将数据写入相应信息寄存器。信息接收结束后,取消“Пpиeм”接收信号,取消MMи数据总线上数据。程控模块准备接收新的信息字节,并产生准备好的信号。
程控模块发送信息时,在被寻址且发出准备好信号后,由ISA总线控制沿“A0~A2”线路指定接收信息寄存器地址,并发出“Bыд.”发送信号,程控模块根据此信号从发送信息寄存器沿MMи数据总线发出信息字节,所发出的信息字节被读取到FPGA中的数据输入寄存器后由ISA总线控制读出。

2.2 FPGA配置器件电路

FPGA配置器件电路如图2所示,EPC2LI20为配置芯片,工作电压5 V或3.3 V,支持在系统编程(ISP)和菊花链配置,可重复编程;EPF10K 30R1208-4为Altera公司生产FPGA芯片,工作电压为5 V,包含逻辑单元1 728个,存储位数12 288位;JP为通过QuartusⅡ软件对配置芯片进行程序烧写接口。
 


该配置电路采用PS配置方式,首先通过QuartusⅡ软件将FPGA的逻辑程序写入配置芯片EPC2LI20,该芯片数据具有掉电保护功能。上电后,配置芯片和FPGA同时复位,然后FPGA向配置芯片发送程序下载请求,配置芯片将存储的逻辑程序写入FPGA,对FPGA进行配置.配置完成后,FPGA内部的寄存器和I/O管脚均被初始化。完成初始化程序后,FPGA按照设计的逻辑功能正常工作,即按要求实现两种总线之间的数据转换。

2.3 地址比较电路

地址比较电路如图3所示。74SL14为带滞环比较的反向缓冲器,74SL85为4位数字比较器,6位的拨码开关为预存待转数据程控模块地址,74SL00为反向缓冲器。拨码开关共有6位,每1位都可以是逻辑高电平“1”或是逻辑低电平“0”,故该拨码开关共有26个组合,可以代表26个程控模块的地址。如图3所示,拨码开关为011001,代表将要进行转换的数据来自地址为011001的程控模块,当控制信号给定的地址A27~A22与011001相符时,74SL00输出低电平,该低电平与ISA总线的读控制信号IOR和写控制信号IOW#一起构成FPGA从ISA总线读数据或向ISA总线写数据控制信号。
 




3 程序设计

实现ISA总线/MMи总线之间的数据转换流程图如图4所示。程序开始后,首先与拨码开关比较得到待转换数据程控模块的地址,然后FPGA通过配置芯片进行初始化,初始化完成后,待转数据程控模块的地址写入FPGA,FPGA自动分配传输数据的通道;然后,由ISA总线(MMи总线)发出数据传输请求信号,当MMи总线(ISA总线)准备好接收数据后,发一个应答信号给ISA总线(MMи总线),表示数据传输准备好,然后进行数据传输,一直到数据传输完毕;发送的数据写入接收端的数据缓冲器,MMи总线(ISA总线)从数据缓冲器读出输出的数据发送到相应的程控模块,从而完成从ISA总线(MMи总线)到MMи总线(ISA总线)的数据转换。

4 实验结果

应用设计的ISA总线/MMи总线转换电路以串行方式对一组数据进行转换。ISA总线向MMи总线传输数据的实验结果如图5(a)所示,当ISA控制信号发出询问脉冲(第2个波形第1个脉冲)时,MMи总线给出应答信号(第4个波形第1个脉冲);收到MMи总线给出的应答(同步)信号后,ISA总线将数据信号11010101发送(第3个波形);由于MMи总线数据信号采用的是负逻辑,因此,MMи总线上收到了发送的信号00101010(第5个波形)。实验结果证明,设计的电路可以实现ISA总线到MMи总线的数据转换。由MMи总线向ISA总线传输数据的实验结果如图5(b)所示,当MMи总线发送的数据为00110011时,ISA总线接收的数据为11001100。
用设计的电路插板更换导弹测试设备上的俄制电路插板,并用测试设备对某型导弹进行常规测试,测试结果符合测试要求。实际应用证明,设计的电路达到设计目的,可以可靠地实现ISA总线/MMи总线之间的数据转换。
 



5 结语

ISA总线和MMи总线是2种完全不同的总线,ISA总线采用美制标准,而MMи总线采用俄制标准,因此在俄制测试设备中,ISA总线/MMи总线的转换电路板是必备的。本文设计的电路完全能代替俄制电路板实现数据转换功能,极大提高了部队装备的保障力;同时,由于俄制电路板价格较贵,因此采用国产器件实现的该转换电路也具有较高的经济价值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1041321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

竞赛 基于深度学习的视频多目标跟踪实现

文章目录 1 前言2 先上成果3 多目标跟踪的两种方法3.1 方法13.2 方法2 4 Tracking By Detecting的跟踪过程4.1 存在的问题4.2 基于轨迹预测的跟踪方式 5 训练代码6 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学习的视频多目标跟踪实现 …

HBase基础架构及存储原理

一、HBase介绍 HBase是Hadoop生态系统中的一个分布式、面向列的开源数据库,具有高可伸缩性、高性能和强大的数据处理能力。广泛应用于处理大规模数据集。 HBase是一种稀疏的、分布式、持久的多维排序map 稀疏:对比关系型数据库和非关系型数据库&#xf…

ubuntu下网卡插入网线后仍然不连接

网卡驱动已经安装,在settings里可以看到该网卡设备,但是插入网线后仍然不会连接: 鼠标点击也无效。 可尝试: 1. ifconfig找到该网卡,比如我的网卡是 enx0826ae3e81aa 2. sudo ifconfig enx0826ae3e81aa down sud…

OpenCV两张图片实现稀疏点云的生成

1 E矩阵 1.1 由F到E E K T ∗ F ∗ K E K^T * F * K EKT∗F∗K E 矩阵可以直接通过之前算好的 F 矩阵与相机内参 K 矩阵获得 Mat E K.t() * F * K;相机内参获得的方式是一个较为复杂的方式,需要使用棋盘进行定位获得,我们这里直接使用了 OpenMVG 提…

C语言学习(1)—— 环境安装和配置

运行C语言和C程序需要安装MinGW和VSCode。 一. 安装MinGW 1、进入官网下载MinGW:https://sourceforge.net/projects/mingw-w64/files/ 2、解压缩 3、配置环境变量 4、检查是否安装成功 二. 安装VSCode 1、进入官网下载VSCode:https://code.visualstud…

中国制造让苹果跪服,将再增加一家中国高科技供应商

日前产业链人士指出由于京东方的OLED面板有力地制衡韩国面板厂商三星和LGD,促使他们降价,而且技术也不错,因此正计划再引入一家中国OLED面板厂商,以进一步促进OLED面板的竞争。 早期苹果的OLED面板完全由三星供应,由此…

SR800-D 5G工业路由器:将无人驾驶汽车的通信能力提升到极限

​大家好!欢迎来到今天星创易联的课堂,我是你们的通信老师,今天我们将讨论无人驾驶解决方案,其中包括SR800-D 5G工业路由器的运用。 首先,让我们聚焦于无人驾驶技术的重要性。无人驾驶汽车正在迅速崛起,这种…

【服务端 | Redis】如何使用redis 有序集合实现股票交易的订单表(价格优先、时间优先)

前两天倒腾redis的有序集合时,自己发现了一个问题,redis的有序集合在score相同的情况 下是如何排序的? 通过谷歌搜索,发现了一些线索,在score相同的情况下,redis使用字典排序,不过不是太明白什…

【红帽】跟着学习如何使用桌面访问命令行

今天我们分享一些红帽Linux的知识,记得关注,会一直更新~ ▶1、以student用户身份并使用student作为密码登录workstation 1.1.在workstation上,从GNOME登录屏幕中单击student用户帐户。系统提示输入密码时,请输入student。 1.2.…

Tuxera NTFS 2022 for Mac破解版百度网盘免费下载安装激活教程

Mac打不开移动硬盘”有多种原因,解决办法也不尽相同。它可能是安装的NTFS for Mac读写软件版本和当前macOS系统的兼容问题、或者是Mac没有正常连接硬盘等等。本篇文章就将为您罗列出导致“Mac打不开移动硬盘”的原因和解决办法。 为此不得不使用著名的Tuxera NTFS …

深入理解传输层协议:TCP与UDP的比较与应用

目录 前言什么是TCP/UDPTCP/UDP应用TCP和UDP的对比总结 前言 传输层是TCP/IP协议栈中的第四层,它为应用程序提供服务,定义了主机应用程序之间端到端的连通性。在本文章,我们将深入探讨传输层协议,特别是TCP和UDP协议的原理和区别…

【PHP手麻系统源码】手术麻醉相关的各项数据的记录、管理和应用

手术室麻醉信息管理系统是定位于手术室和麻醉科的科室级临床信息管理系统,主要用于与手术麻醉相关的各项数据的记录、管理和应用,实现医疗信息的共享及再利用,提高科室的整体信息化水平。   该系统将手术室内的各种设备(如呼吸机…

云原生Kubernetes:K8S配置资源管理

目录 一、理论 1.Secret 2.Secret创建 3.Secret使用 4.Configmap 5.Configmap创建 6.Configmap使用 二、实验 1.Secret创建 2.Secret使用 3.Configmap创建 4.Configmap使用 三、问题 1.变量引用生成资源报错 2.查看pod日志失败 3.创建configmap报错 4.YAML创建…

【Redis】Redis做为缓存,MySQL如何与Redis保持数据一致

Redis的作用 一般情况下Redis是用来实现应用和数据库之间的一个读操作的缓存层,主要目的是减少数据库的io,还可以提升数据库io性能 方法一: 先更新MySQL数据库,再删除缓存,再从数据库查询到的最新的数据同步到redis…

二维空间 点绕点旋转公式

记录一下 点绕点旋转公式的推导 点A绕点B逆时针旋转贝塔角度 点A绕点B顺时针旋转贝塔角度 贝塔<阿尔法 点A绕点B顺时针旋转贝塔角度 贝塔>阿尔法

HTML+CSS综合案例一新闻详情

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>新闻详情</title><style>h1{text-align…

【渗透攻防】千变万化的WebShell

前言 WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境&#xff0c;也可以将其称做为一种网页后门。本篇文章将带大家学习如何获取WebShell&#xff0c;如何隐藏WebShell&#xff0c;有攻必有防&#xff0c;最后带大家学习查杀WebShell。 目录 第一节…

服务接口调用OpenFeign_超时机制

超时机制 问题&#xff1a; 服务消费者在调用服务提供者的时候发生了阻塞、等待的情形&#xff0c;这个时候&#xff0c;服务消费者会一直等待下去。在某个峰值时刻&#xff0c;大呈的请求都在同时请求服务消费者&#xff0c;会造成线程的大呈堆积&#xff0c;势必会造成雪崩。…

SpringBoot 学习(六)Shiro

6. Shiro 6.1 简介 6.1.1 什么是Shiro Apache Shiro 是一个 Java 的安全权限框架。Shiro 可以应用在 JavaSE 和 JavaEE 环境中。Shiro 可以完成认证、授权、加密、会话管理、web 集成、缓存等。下载地址&#xff1a;http://shiro.apache.org/ 6.1.2 能力 ​ Authenticat…

玄子Share 设计模式 GOF 全23种 + 七大设计原则

玄子Share 设计模式 GOF 全23种 七大设计原则 前言&#xff1a; 此文主要内容为 面向对象七大设计原则&#xff08;OOD Principle&#xff09;GOF&#xff08;Gang Of Four&#xff09;23种设计模式拓展的两个设计模式 简单工厂模式&#xff08;Simple Factory Pattern&#x…