终端接口卡

2024-10-11

终端接口卡(共4篇)

终端接口卡 篇1

摘要:航空电子全双工交换式以太网(AFDX)是在商用以太网的基础上经过改进实时性和可靠性建立起来的。依据ARINC664规范第7部分对终端接口卡时延和抖动的性能要求,提出基于FPGA和PCI的AFDX终端接口卡的整体设计方案,对发送和接收模块等关键模块进行了设计,并分析了PCI接口驱动程序。测试结果表明,该接口卡实时性好、传输速率高、稳定可靠,符合AFDX协议标准。

关键词:航空电子全双工交换式以太网,终端接口卡,虚链路

航空电子系统的发展已成为现代飞机性能不断提高的重要因素。以ARINC429和1553B为代表的现役机载总线已不能满足现代航空电子系统对通信速度和带宽的要求。美国航空电子技术委员会(AEEC)提出了航空电子全双工交换式以太网AFDX(Avionics Full Duplex Switched Ethernet),它是在商用交换式以太网的基础上,经过实时性和可靠性等方面的改进建立起来的,符合IEEE802.3和ARINC664规范。

AFDX是一种全双工、高数据率、双冗余的总线,具有传输速度快、易扩展、可维护性好等优点,可以有效减少系统布线,减轻飞机重量。不仅能满足航空电子系统数据通信对带宽的需求,并已成功应用于A380和B787,也是我国新研制大型客机的理想选择[1]。作为AFDX的重要组成部分,终端接口卡性能的好坏直接影响到AFDX网络的整体性能。因此,设计可靠性高、实时性好、满足实际应用需求的AFDX终端接口卡具有广阔的应用前景和良好的经济、军事效益。

1 AFDX终端接口卡总体设计

依据ARINC664规范对终端系统的要求,在参考了参考文献[2]对终端协议芯片的设计和相关成熟产品的基础上,提出一种AFDX终端接口卡的设计方案。该接口卡性能特点为:采用Stratix II系列FPGA芯片实现协议栈主要功能,可以实现256个传输虚链路(最多2 048个接收虚链路);独立的MAC核简化了设计,保证了系统的稳定性和100 Mb/s的传输速率;PCI总线可实现132~264 Mb/s的高速数据传输,最大限度地满足接口卡对时延的性能要求;2个100/10 Mb/s端口,实现全双工的双冗余通道。AFDX终端接口硬件框图如图1所示。

FPGA模块是系统的核心协议芯片,实现AFDX协议栈的主要功能,包括流量整形、虚链路调度、完整性检查、冗余管理等。MAC模块连接物理层和FPGA,为数据的发送和接收提供数据接口和控制接口,控制PHY进行发送和接收。PHY模块实现以太网的物理层接口功能。PCI接口电路是主机连接AFDX终端接口卡的桥梁,提供主机和接口卡间高速、双向交互数据的接口。CPU模块是系统的核心控制模块,协调各模块之间的工作,实现AFDX协议栈UDP、IP层的功能。

2 AFDX终端接口卡的关键模块设计

2.1 FPGA芯片设计

航空电子系统的运行环境特殊,对AFDX终端接口卡芯片的性能参数、工作温度和稳定性的要求高,因此,应选用集成度高、逻辑资源和存储器资源丰富、速度快、可以完成复杂的时序与组合逻辑电路功能的芯片。普通商业级的FPGA无法胜任,必须要采用工业级FPGA。综合考虑各方面因素,本接口卡选用Altera公司Stratix II EP2S180系列FPGA。FPGA芯片的内部功能结构如图2所示。

配置数据存储器在片内控制器的作用下完成终端接口卡的初始化,对有关硬件进行配置。初始化完成后,即可进行数据的发送和接收工作。发送数据时,CPU模块经PCI接口通过DMA方式,将航空电子系统中的数据帧传送到发送数据缓存器中;发送模块按照调度算法将数据帧调度到相应VL中,为数据帧添加序列号(SN)后,同时发往MAC A和MAC B;接收数据时,PHY模块将数据帧发送至MAC模块(MAC A和MAC B),经MAC模块CRC校验后发送至接收模块。接收模块将MAC模块传来的数据存入自身缓存中,并进行完整性检查和冗余管理;CPU检测到已收到新数据帧后启动DMA,将数据帧送至航空电子系统。数据缓存器用于存储发送和接收过程中的数据。

2.1.1 接收模块

数据接收模块负责接收从MAC送来的数据,实现完整性检查,消除从冗余通道接收的重复有效帧。该模块包括完整性检查模块、冗余检查模块、SN表和包分栋器。

完整性检查模块校验每个从MAC模块传来的接收帧是否具有该VL所期待的SN。冗余检查模块接收所有经过完整性检查的合法帧,若接收到两个具有相同SN号的帧时,将转发先接收到的,然后丢弃第二个。SN表存储接口卡各接收虚链路最后收到帧的SN,用于完整性检查[2]。VL号映射表存储各接收VL的逻辑VL号与物理VL号的对应关系。查询该映射表,可得到VL的逻辑VL号所对应的物理VL号。包分拣器根据VL号判断到来的帧属于哪条虚链路,并将该帧存入该虚链路对应的数据接收缓存中[3]。

2.1.2 发送模块

发送模块实现流量整形、多路复用及传输端冗余控制(TRC)功能。该模块包括:寄存器模块、虚链路调度模块、传输端冗余控制。

寄存器模块存储发送模块所用到的信息,如VL的BAG值(带宽分配间隔)、Lmax值(最大帧长度)等。虚链路调度模块由整形模块和多路复用模块组成。为消除虚链路相互竞争引入的抖动,本设计的虚链路调度方案使用周期为125μs的静态调度方法。整形模块负责确保每一条VL都遵守它所分配的带宽限制,控制并监视BAG和Jitter定时器,使数据流以比较均匀的速度向外发送,限制VL上的突发流量。通过多路复用技术将整形后的虚链路的帧合并到一条物理链路上,并确保多路复用后输出的抖动在可接受的范围内。传输端冗余控制(TRC)模块的主要作用是根据调度模块的输入决定将要传送帧的目的地,可以只传送给MAC A和MAC B中的一个也可以同时传送给MAC A和MAC B。

2.2 MAC模块

为简化设计,本系统采用ACTEL公司的两个Core10/100 Ethernet IP核建立两个独立的通道。该IP核具有100 Mb/s的传输速率,已经在实验和实际应用中多次验证符合IEEE802.3标准和ARINC664规范,可较好地实现MAC功能,其主要组成模块及关系如图3所示[4]。

控制、状态寄存器及控制逻辑(CSR)模块向外部模块提供控制接口和MII管理接口,包含控制寄存器、状态寄存器及控制逻辑。主机通过CSR模块实现对Core10100的中断控制和电源管理,从而达到控制IP核的目的。数据控制模块将外部模块需要发送的数据存入内部的发送FIFO中,等待发送,并自动使用CPU间隙将接收FIFO中收到的数据发往外部模块。发送、接收FIFO分别用于暂存待发送的数据和接收到的数据,为外部存储器工作于FIFO模式提供接口。发送及接收控制模块作为发送及接收的MII接口,控制PHY芯片进行数据的发送与接收。发送控制模块从发送FIFO中读取待发送数据,形成帧,并通过MII接口发送数据帧;接收控制模块通过接收MII把数据从外部PHY设备传送到接收数据存储器中,并完成地址过滤。

主机与IP核之间的数据交换是通过FIFO缓存器进行的。数据交换包括发送和接收两个独立的过程,这两个过程都存在三种状态:运行、终止和暂停。发送和接收进程各有一个描述符列表,位置由CSR中的寄存器来定义。Core10/100执行载波监听多路访问/冲突检测(CSMA/CD)算法来解决冲突[4]。其算法流程如图4所示。

2.3 PCI接口模块

2.3.1 硬件设计

为避免设计所有PCI总线协议需要的接口逻辑,减轻工作难度,本设计采用PLX公司的64 bit总线控制器PCI9656。PCI9656与FPGA连接如图5所示。

PCI9656符合PCI V2.2协议,支持32/64 bit、33/66 MHz时钟,采用流水线架构技术可以支持7个外部主控器,支持多路复用,可直接生成所有的控制、地址和数据信号以驱动PCI总线,而不需要额外驱动电路。

根据需要,将PCI地址空间划分为用户配置空间、发送缓冲空间和接收缓冲空间。EEPROM作为配置信息存储器,在控制器的作用下完成对PCI设备的初始化配置。本设计采用0类配置空间,需配置的信息包括设备的厂商、类别、设备所申请的存储器和I/O空间、设备的中断信息及工作方式等。

2.3.2 驱动程序

本设计设备驱动程序采用微软的WDM驱动程序模式,实现即插即用。驱动程序的开发和调试采用DriverStudio开发工具包中的Driver Works和Soft ICE作为主要的工具。

设计驱动程序主要需要考虑四方面因素:PCI设备的硬件访问;中断处理;DMA数据传输和安全性、稳定性、可靠性。为实现AFDX对数据传输实时性的要求,设备驱动程序采用中断方式。为满足快速传送数据、I/O响应时间短和CPU额外开销小的需求,采用DMA的块传输方式进行数据传输。为保证驱动程序的可靠性和稳定性,设计采用Windows 98/2000/XP内核模式的标准驱动程序例程。

驱动程序可分为两部分,一部分用于PCI9656各个配置寄存器赋值并初始化;另一部分用于主程序,用来完成PCI9656与主机CPU之间的数据交互。使用Driver Studio中的Driver Wizard创建PCI驱动程序框架,采用VC++6.0的面向对象设计思想创建了接口芯片抽象类C_PCI9656,将PCI9656芯片的属性和需实现的操作封装起来。在头文件Register_PCI9656.h中定义PCI9656提供的内部寄存器,包括PCI配置寄存器、DMA寄存器、运行时间寄存器和消息队列寄存器等。资源分配通过IRP(I/O Request Packe)例程实现。DMA传输流程如图6所示[5]。

首先在应用程序中创建一个事件对象,将该事件传递给驱动程序并产生中断,中断例程判读中断来源。若是Local中断,则应用程序发送DMA读写命令,该操作将IRP传递给驱动调用Serial Read()或Serial Write()例程,运行回调例程On Dma Ready()判定是否符合DMA传输条件并开启Start DMA()例程实现DMA传输,产生DMA中断;若是DMA中断,则调用On Dma Ready()例程判定DMA传输是否结束,未结束则再一次开启Start DMA()例程继续DMA传输并产生中断。如此循环一直到完成所有的DMA传输,应用程序结束线程。为提高设备驱动程序的安全性和可靠性,在设计中采用自旋锁来保护共享数据和设备寄存器,编写程序时严格遵循编程规范和C++语言标准语法格式。

3 仿真与测试

基于本文的设计方案,借助Altera公司的Quartus II软件对AFDX接口卡的关键模块进行了功能和时序仿真。发送模块时序仿真如图7所示。当主机需要发送数据时,通过给发送模块发送一个脉冲信号Tx Start Frm来指示数据帧发送的开始,发送模块检测到这个脉冲后使发送使能MTx En有效,开始数据的发送。由图7可知,发送模块发送的数据与待发送数据一致,较好地完成了发送模块的功能。

接收模块时序仿真如图8所示。当接收开始信号Rx Start Frm有效时,Rx Valid信号被置为可用状态,开始数据的接收过程。接收MRx D表示从MAC发送过来的数据。由图8可知,接收模块工作正常,较好地完成了接收模块的功能,满足设计的要求。

在对系统的功能和时序进行仿真并保证仿真正确的基础上,将协议芯片的设计下载到Altera公司生产的Stratix II系列的EP2S180F1020C5中,并使用Sniffer协议分析软件进行在线系统验证。验证表明,该协议芯片最高工作频率可达152.64 MHz,满足AFDX协议对时延和抖动的要求,且能正确、完整地完成发送和接收功能,通信正常。使用Soft ICE调试了PCI驱动程序,结果表明,驱动程序能正确加载,能实现对硬件的正确驱动和控制管理,中断正常,当PCI传输大量的数据时,数据传输也正确。

本文根据ARINC664规范和AFDX协议对接口卡时延和抖动的性能要求,提出了一种基于FPGA和PCI的AFDX终端接口卡设计方案,给出了关键模块的详细设计,编写了总线接口驱动程序。使用Quartus II软件对各功能模块进行了功能和时序仿真,并搭建测试平台进行初步测试验证。结果表明,本文提出的设计方案可行性好,稳定性高,传输速度快,时延小,抖动始终小于最大抖动,符合要求,为下一步的研究开发提供了可借鉴经验。

参考文献

[1]徐科华.AFDX总线网络数据传输分析[J].民用飞机设计与研究,2009(3):35-40.

[2]张志,翟正军,姚方圆.基于FPGA的AFDX端系统协议芯片的设计与实现[J].计算机测量与控制,2010,18(2):422-442.

[3]任向隆,马捷中.航空电子全双工交换式以太网终端系统研究[J].计算机测量与控制,2009,17(5):924-926.

[4]Actel Corporation.Core 10/100 ethernet media access cont-roller,actel corporation[EB/OL].http://www.actel.com.2005.

[5]尹朕昊,詹亚锋.PCI总线中DMA高速数据传输的设计与实现[J].电脑开发与应用,2009,22(11):31-32.

基于多接口智能终端的应用与实现 篇2

一、多接口智能终端技术的用途

多接口智能终端技术, 是具有多种嵌入式地功能, 灵活变动的搭载各种操作系统, 利用互联网的传输平台, 通信速度快速、网络频谱宽阔, 智能性、易扩展性的基础设备, 精确实时定位跟踪, 进行独立地、便携式地移动, 在工业、商业及教育等领域都有广泛的运用;在工业领域中, 条码扫描器、激发扫描引擎和高带CPU处理器等方面, 尤其是举办大型视频会议, 多接口智能终端的作用更是凸显;学校在开拓教学平台、公安刑侦破案目标的锁定以及医院的医学研究人体运动状态监测系统等方面, 都广泛地运用和支持智能终端技术, 同时也成为人们学习、旅游、外出导航地图、景点的信息采集的好帮手。

二、多接口智能终端的应用与实现途径探讨

2.1多接口智能终端在学习平台中的应用与实现

当代学习不再拘泥传统的固定式学习模式, 对学习者的要求是一种终身学习的理念, 所以, 多接口智能移动终端的运算能力与无线网络快速的传输能力相结合, 进行移动学习的新型模式, 人们利用智能终端设备浏览网页、查找相关资料、娱乐消遣等活动得到了优质的服务, 深受社会大众的喜爱, 使移动学习的开发平台随着网络技术和移动智能终端的发展而不断地升级, 功能也在不断地予以完善。

2.2公安及交通行业对多接口智能终端的应用与实现

视频监控是人们熟悉的应用技术, 其以直观便捷、储存信息量大等特点, 在公安、交通等部门广泛应用。传输的速度快速, 需求者不用专门到视频监控室去查看欲知的信息, 只需要在移动终端设备上, 实时地获取布控的监视点的画面信息。公安在破案过程中, 可以实时跟踪目标对象, 交通智能化对路况的指引和有效的处理数据;同时为人们出行提供了方便, 如:在智能终端GPS定位功能, 查询路途地图, 上面会对路途的导向, 处理数据后显示出相关途径的最近距离和最远距离, 让查询者根据需要选择路途行进方案。多接口智能终端技术可以使视频监控的显示质量更加优化、清晰, 涉猎的面积更加地宽阔, 提供的图像信息更加全面充实。

2.3人体运动状态监测系统在智能移动终端的运用

医疗行业运用智能移动终端对人体运动行为实行监测, 掌握人体运用全天的运动状态, 全方位地记录下每一个时间段的身体运动数据, 收集运动计算数据 (步数、跳动数、运动消耗能量等) , 再传输到智能终端系统, 采取定时进行储存的方式, 保证数据的完整性及连续性, 再将保存的数据输入SQLite数据库进行技术比对, 找出视频图像及理论检测图像的分析对应规律, 检测出人体的身体状况是否异常。如:智能手环、智能心脏监测器等技术, 对人体运动状态进行实时监测带来了便利。

2.4多接口智能终端对物流监控及调度平台的应用

电子商务的发展带来了物流公司的兴起, 配送投递的准确性、配送费用的节支都有赖于物流信息的及时准确, 因此, 多接口智能终端不但提供了物流信息资源的共享, 而且还为物流公司带到最大化的经济效益, 减少了物流费用的大量开支, 保证配送人员的实地、动态地工作和调度。在物流的多接口智能终端清晰、定位地显示物流的配送和位置及姿态环节, 对相关信息的全面记录和分析, 全过程地对物流监控及高度平台进行全面细致地反映, 对帮助物流公司实行有的放矢的管理提供了基础资料, 在人力和财力上降低了管理成本, 发挥了相当大的作用。

三、结束语

随着多接口智能终端设备性能的提高, 智能化功能更加强大, 人机交互式的移动通讯更为普及, 使用户群在智能终端上自由地移动, 按需所取, 最大限度地满足广大用户的不同需求, 使他们获得真实生动、直观体验和震撼的情感, 扩大在现实生活中的实际运用, 推动多接口智能终端技术的不断发展, 形成从硬件到软件与国际经济接轨的产业链, 使多接口智能终端产业成为我国经济发展的新增长点, 腾飞于世界网络之林。

摘要:随着国际智能移动终端技术的飞速发展, 多接口、多途径地发展智能终端及其应用, 与无线网络技术相结合, 为人们的生活和工作环境提供了无可比拟的便利条件, 满足了人们随时随地地查询、浏览和学习的需求, 也提高了工作和生活的效率。本文阐述了多接口智能终端技术在现实生活中的多方应用与实现。

关键词:多接口,智能终端,移动

参考文献

[1]唐笑.增强现实技术在移动互联网中的应用[J].华章.2013 (02)

[2]高净业.增强现实人机交互系统的研究[D].杭州电子科技大学2011

[3]林新晔.移动应用使用行为预测研究[D].国防科学技术大学2011

终端接口卡 篇3

本文设计的AFDX终端通讯系统包括FPGA控制模块、PCI接口模块、双冗余PHY模块。为了设计高可靠性的AFDX终端系统, 设计了2个独立的双冗余交换网络, 从而保证系统的可靠性信息传输。系统硬件架构如图1所示。

CPCI接口模块

CPCI接口模块由2个部分组成, 第一部分主要实现PCI总线协议功能, 实现FPGA与上位机进行数据的通信;第二部分主要实现从CPCI接口采电, 并在板上进行电源管理, 对整个板卡实现支持热插拔的电源供应。

FPGA控制模块

FPG A控制模块是整个板卡的控制核心, 它包含了AFDX协议栈的IP硬核, 实现了AFDX协议栈特有的, 如流量整形、虚拟链路调度、完整性检查、冗余管理、以太网MAC层硬件实现等功能以及其它如与PCI9056通信、内部数据的缓存管理等功能。支持10/100Mbps标准的航空实时以太网数据的可靠性传输。

以数据下传为例介绍FPGA控制模块的工作流程:首先在PC机上运行上层测试软件, 通过它来设置发送通道的相应参数, 该信息通过CPCI接口传送至可编程芯片, 可编程芯片内的处理器单元根据PC机下传的参数来设置发送通道的相关寄存器参数, 同时该消息经过流量整形模块, 进行规划化处理, 使其输出的数据帧是规整的、没有时延抖动的。来自流量整形模块的数据帧由虚拟调度模块添加序列号 (SN) 后, 发往冗余管理模块。冗余管理模块将需要发送消息复制发送到2个独立的冗余MAC链路层中。MAC模块对数据帧添加帧序列校验, 发往PHY模块。PHY层模块将可编程芯片内的MAC层的数据帧进行电平转换后传送至其他标准航空以太网PHY设备中。

双冗余PHY物理接口

双冗余的PHY模块实现以太网物理层的接口功能, 实现AFDX航空以太网的可靠性传输, FPGA内部的航空以太网MAC层通过MII接口与PHY连接, 完成数据流的通信。MII (Media Independent Interface介质无关接口) 接口, 即媒体独立接口, 它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口, 以及一个MAC和PHY之间的管理接口。数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号。管理接口是个双信号接口:一个是时钟信号, 另一个是数据信号。通过管理接口, 上层能监视和控制PHY。本设计中采用的是双PHY芯片共用一个25MHz的外部晶振提供工作时钟, 这样可以保证双冗余的PHY完全工作同步。

CPCI接口电源电路分析

热插拔功能主要用于CPCI设备, 热插拔功能允许板卡随意从设备中插拔而不影响设备操作系统的正常运行。如图2所示, LTC1643L是一个允许CPCI型设备进行安全插入和拔出的电源管理控制器, 将系统的CPCI插槽电源接入到AFDX板卡, 图中IRF7413是一个N型MOS管, 用于控制3.3V和5V的电源供应, 而-12V和+12V电源由片上开关供应, 所有的电压的上升时间可以达到一个可编程的速率, 同时还有电源过流故障时的短路保护。

PCI9030的引脚BD_SEL#是CPCI接口中最小的插针之一, BD_SEL#连接LTC1643L的使能引脚, 低电平时有效开启LTC1643L工作并同时给板卡供电。R10是一个0.018欧姆, 0.5W, 精度为1%的精密电阻, 用于过流保护的电压检测电阻。当板卡发生故障导致电流超过额定值之后, R10两端的压差将增大, SENSE引脚将此过流信息反馈至LTC1643L电源管理器, 同时切断电源供应, 起到电源过流保护的功能。

FPGA与PCI9030接口模块时序分析

在PCI9030与本地FPGA之间的通信分为直接主模式 (Direct Master Mode) 、直接从模式 (Direct Slave Mode) 和DMA模式。由于PCI通信要AFDX网络的10M/100M通讯速率, 这里采用直接从模式, 工作时序如图3所示, PCI9030为主, FPGA为从。LHOLD为输出, 声明使用本地地址数据总线, LHOLDA为本地总线申请使用成功的返回信号。LBE[3:0]#为本地总线使能控制引脚, 这里选择32位宽的数据总线。LA[31:2]为地址总线, 在本地总线申请使用成功信号返回且本地总线位宽使能有效后, 开始输出地址信号。ADS#为起始信号, 表明地址总线有效且开始一个有效的总线访问, 同时一个周期后就可以读数据或者写数据了, LW/R#低电平为读高电平为写。为了与PCI9030进行高效的数据通信, FPGA里面必须有相应的本地数据通信接口。

Win Driver软件的驱动生产

通过PLXMON软件对PCI9056的配置芯片进行配置后, 可以利用Window s操作系统中Win Dr iver自动生成PCI驱动程序, 步骤如下:首先启动Win Driver Wizard, 从开始菜单, 选择“程序|Win Driver|Driver Wizard”;然后在Driver Wizard菜单, 单击“File|New Project”菜单来新建一个工程, 从即插即用列表中选择显示卡, 通过生产商的名字来选定。单击“Memory”标签。该显示卡的三个内存范围显示出来。内存范围中的BAR2映射的是FPGA内的RAM缓存块和专用寄存器, 根据FPGA内核对这些缓存块和寄存器的可读写定义, 可以在BAR2映射的区域里进行读写, 若写进去的数值跟读出来的数值一致, 表面CPCI接口通信正常。最后一步为生成驱动代码:单击“Build|Generate code”菜单, Driver Wizard将产生操作硬件资源的函数, 可以在用户模式下在应用程序中直接使用这些函数, 这个向导还会产生一个样本程序来使用这些函数操作硬件, 上层界面的开发可以直接调用这些API函数。

总结

本论文中设计的带有CPCI接口的AFDX终端板卡通讯模块的设计, 充分利用PCI总线传输速度快和CPCI接口支持热插拔的特点, 使得设计能满足双冗余AFDX的高速数据传输, 使用方便和设备体积相对较小, 便于携带, 该板卡已经实现AFDX通信协议并批量生产销售。此论文的研究为AFDX网络交换机的研发打下了良好的基础。

摘要:本文在研究航空全双工交换式以太网 (Avionics Full Duplex Switched Ethernet, AFDX) 实时传输协议的基础上, 分析了基于CPCI接口的双冗余AFDX终端测试系统通讯模块的设计原理, 重点介绍了支持热插拔的CPCI接口电源电路分析、FPGA与PCI9030接口模块时序分析和在Windriver软件环境下的驱动程序的开发, 为AFDX上位机底层驱动接口的开发和软件界面的开发以及AFDX交换机的研发打下了良好的基础。

关键词:AFDX,热插拔,CPCI接口,PCI9030

参考文献

[1]Charara H, Scharbarg J L, Ermont J, etal.Methods for Bounding End-to-end Delays on an AFDX Networks[C]//Proceedings of the 18th Euromicro Conference on Realtime Systems.[S.l.]:IEEE Press, 2006.

[2]LTC1643L datasheet, PCI-Bus Hot Swap Controller, LINEAR TECHNOLOGY.

[3]PCI 9030 Data Book, PLX TECHNOLOGY.

[4]陈昕, 周拥军, 蒋文宝等.AFDX协议性能分析及调度算法研究[J].电子学报, 2009, 37 (5) :1000-1005.

终端接口卡 篇4

随着武器装备信息化程度的提高, 各种嵌入式信息装备得到了广泛应用。作为未来战场主要作战平台的各种战斗车辆, 其车载指挥控制平台的设计得到了广泛重视。

一个车载指控平台的功能主要体现在以下几个方面:监控、显示车辆的技术状态;车际间的指控、通信;车辆的定位、导航;各种文电处理等。本文将介绍一个基于ARM和MiniGUI的车载指控系统人机接口部分的设计, 这个系统初步实现了上述车载指控平台的主要功能。

1 软硬件的选型

受车辆内部空间的限制, 指挥控制终端必须做到小型化, 嵌入式。ARM作为一种已经在多个领域得到非常广泛应用的架构, 这里采用它是一个很好的选择[1]。该课题选择在国内有着较广泛市场的SAMSUNG公司的S3C2410芯片作为CPU。S3C2410芯片主要应用于手持设备或者其他对功耗、成本、性能有较高要求的场合。为了降低整机成本, 该芯片内置了各16 KB的指令和数据缓存、MMU、UART、ADC、LCD控制器, I2C总线接口、IIS总线接口、USB主从设备支持、触摸屏接口等[2], 这种设计提高了系统的集成度, 也给系统开发提供了极大的便利。

系统软件可以有很多选择, 因为该芯片内置MMU, 因此可以支持Windows CE, Linux, Palm OS和VxWorks等多种主流嵌入式操作系统。车载指控平台对实时性要求不高, 因此这里选择嵌入式Linux作为操作系统。嵌入式Linux具有源码开放、成本低、应用软件丰富等特点[3], 因此Linux和ARM是许多低成本的应用中首选的组合。

作为指控终端, 必然对用户图形界面有特殊的要求, 该项目选择飞漫公司的MiniGUI作为图形引擎。MiniGUI是一个专门面向嵌入式系统的图形用户界面支持系统, 它为应用程序定义了一组轻量级的窗口和图形设备接口。利用这些接口, 每个应用程序可以建立多个窗口并在这些窗口中创建各种控件[4]。在软件体系中, 它介于内核和应用程序之间, 在此将利用MiniGUI来完成用户图形界面的编程。

2 硬件设计

ARM S3C2410芯片的应用电路有许多成熟的设计范例;在设计阶段, 市面上也有很多的开发板可供选用。该项目选用杭州立宇泰公司的ARM SYS2410开发板作为开发的硬件平台。

该开发板采取核心板和扩展板分离的结构, 提供了大部分的外设接口电路, 并且有200个引出脚, 引出了CPU上的大部分I/O端口[5], 这样做为后续的开发工作提供了便利。

2.1 键盘矩阵电路

该项目的指挥控制终端功能可以分为6项。每项选中后, 为便于输入或选择子条目, 增加10个数字键, 另外还需要确定键、取消键, 再加上6个功能键, 一共是24个键。因为键的数目较多, 将这些键设计成一个行列式键盘矩阵 (见图1) 。

结合开发板的电路结构, 键盘矩阵的列输入端口使用GPE5~GPE10六个通用I/O口线, 行输出端口采用GPE11~GPE14四个通用I/O口线, 在行线和列线的交点接入按键开关。

键盘扫描的原理是, 按照有规律的时间间隔察看键盘矩阵, 以确定是否有键按下。键盘扫描可以采取专用芯片, 也可以采用软件方法实现[6], 该项目采用软件方法。

2.2 显示驱动电路

指挥控制终端输入/输出设备的第二个重点就是显示设备。ARM芯片内置有LCD控制器, 可以方便地实现显示功能。但是ARM LCD控制器支持的是TTL电平的RGB分量显示, 而目前市场上较大尺寸的工控液晶屏大多是LVDS电平接口, 因此需要接口电路。

另一种解决方案是将ARM开发板TTL电平的RGB信号转换成VGA信号, 这样显示器的选择更加随意, 而且降低了成本。RGB信号转换成VGA信号可采用专用的AD芯片, 如ADV7120, ADV7123等[7]。

3 软件设计

软件设计需要完成两个方面的工作:一是驱动程序编写;二是GUI编程。

3.1 键盘矩阵驱动程序的编写

开发板对自己所提供的硬件一般都提供相应的驱动程序, 自行开发的外设电路一般需要自己编写驱动程序。设备驱动程序是Linux内核的重要部分, 操作系统只有通过驱动程序才能够控制外设的硬件行为。

在系统内部, I/O设备的存取是通过一系列的入口点来进行的, 字符型设备提供以下入口点:open, close, read, write, ioctl;它们分别对应打开设备、关闭设备、读设备、写设备以及其他操作。这些入口点的定义是通过一个重要的数据结构file_operations来完成的[8]。

键盘驱动程序编制的要点有:

(1) 定义一个6×4的健值矩阵, 作为输出, 按下一个按键, 得到对应的键值;

(2) 初始化时设置所用到的I/O端口的读/写模式, 行线为写, 列线为读;

(3) 定义键盘扫描函数scan_kbd () 。它的算法是:初始化时所有的行线置低电平, 如果没有键按下, 列线都将读到高电平。否则, 任何键的闭合将造成该列成为低电平。

(4) 在read入口点, 也就是file_operations结构定义的read方法中, 调用scan_kbd () 。这样, 驱动程序就可以定时扫描几个I/O端口, 获取键值, 然后通过put_user发送到用户地址空间。

设置I/O模式, 读/写I/O端口的位, 可以通过头文件S3C2410.h中专门定义的宏set_gpio_ctrl, write_gpio_bit, read_gpio_bit来进行。

键盘驱动程序经过编译后, 可以作为一个设备文件编译入内核, 也可以采取模块动态加载的方式。

3.2 MiniGUI IAL引擎的实现

通常, MiniGUI在使用前应针对目标系统的特点进行配置和编译, 例如指定目标操作系统、运行模式、图形引擎和输入引擎、字体类型、字符集、所支持的控件类等。该课题中, 因为采取了自行设计的键盘作为输入设备, 因此最重要的配置是输入引擎 (input abstract layer, IAL) 。

抽象层是一组不依赖于硬件的抽象接口, 其作用类似于操作系统的驱动程序, 将底层的硬件操作与操作系统隔离, 这样做简化了在不同平台上移植的难度[9,10]。开发特定的键盘输入, 主要是完成两部分工作:键盘驱动程序设计和键盘输入引擎开发。前者负责从键盘接收原始输入事件和数据, 后者负责将原始的输入事件和数据转换成MiniGUI抽象的键盘事件和数据。

在代码实现上, MiniGUI通过INPUT数据结构来表示输入引擎。该结构中指定了若干函数指针, 编写特定的输入引擎, 主要就是编码实现INPUT结构中的各个函数。新的IAL引擎编写完成后, 应加入MiniGUI进行配置, 然后对MiniGUI进行编译[11]。在工程实践中, 一种比较简便的方法是对MiniGUI已经实现的引擎进行修改。

3.3 图形界面设计

MiniGUI是一个图形用户界面支持系统, 通常的GUI编程概念均适用于MiniGUI编程, 如窗口和事件驱动编程等。嵌入式系统完成的功能一般比较单一, 对于该系统而言, 重点在于实现人机接口部分, 因此只需要轮询用户的按键输入即可。如图2所示。

MiniGUI中有三种窗口类型:主窗口、对话框和控件窗口。每一个MiniGUI应用程序一般都要创建一个主窗口, 作为应用程序的主界面或开始界面。MiniGUI包含有许多控件类, 如静态框、按钮、列表框、编辑框、进度条等, 这些控件类可以实现和Windows标准控件类似的效果。

最重要的几个函数是:

HWND GUIAPI CreateMainWindowIndirect (PDLGTEMPLATE pDlgTemplate, HWND hOwner, WNDPROC WndProc) ;

其中, WndProc是这个窗口的消息处理函数。在此, 对消息循环进行初立即可。例如:

添加了键盘驱动, 修改了MiniGUI的输入引擎后, 应用程序就可以响应键盘消息, 处理各种事件。

除了对标准控制的支持外, MiniGUI还提供了图形设备接口 (GDI) 的支持。通过GDI, 程序可以在计算机屏幕上进行图形输出, 包括基本绘图和文本输出。利用这种手段, 可以绘制指控终端需要的仪表、各种表格。

3.4 其他问题

在该课题的开发过程中, 还遇到了一些其他的问题, 概述如下:

(1) 显示的色彩深度问题。作为指控终端, 该课题设计的显示分辨率为640×480, 如果是16位以上的色深, 对ARM处理器将是一个比较大的负担, 会出现画面的抖动, 不连贯。处理的方法是将色深设置为8位, 这需要通过修改Linux 的显示驱动来解决。

(2) 键盘的防抖问题。按键的抖动问题是一类常见问题, 可以通过软件延时或者其他的手段进行处理。可参考文献[6]。

(3) 终端功能的进一步丰富。该课题只实现了终端的人机界面, 但是作为一个完整意义的终端, 还应该考虑终端之间的联网、数据传输, 终端和工况采集装置之间的硬件接口、数据交换等问题。这些需要进一步开发利用ARM芯片上的其他外设, 这是该课题下一步的目标。

4 结 语

ARM作为一款性价比突出的嵌入式芯片, 与图形系统MiniGUI相结合, 是嵌入式图形界面编程的优选。实验证明, 本文所介绍的软、硬件系统较好地实现了在本文引言中提及的车载指控平台的几项功能。作为一类典型的车载嵌入式系统, 车载指控系统的设计原理与方法同样适用于其他嵌入式系统。

摘要:在此详细介绍了某型车载指挥控制终端人机接口部分软、硬件的选型、设计与实现过程, 并对开发过程中出现的其他问题提出了解决方案。该终端采用ARM作为处理器, Linux作为操作系统, 通过MiniGUI实现图形界面。试验表明, 该终端性价比高, 实现简单, 对同类终端的设计有借鉴意义。

关键词:指挥控制终端,Linux,MiniGUI,ARM

参考文献

[1]杜春雷.ARM体系结构与编程[M].北京:清华大学出版社, 2003.

[2]Samsung Electronics.S3C2410A User′s Manual[M].SouthKorea:Samsung Electronics, 2003.

[3]刘峥嵘, 张智超, 许振山, 等.嵌入式Linux应用开发详解[M].北京:机械工业出版社, 2005.

[4]魏永明, 钟书毅, 潘为国.Linux/μClinux+Mini GUI:嵌入式系统开发原理、工具及过程[M].北京:北京飞漫软件技术有限公司, 2005.

[5]杭州立宇泰电子有限公司.ARMSYS2410开发套件硬件用户手册[M].杭州:杭州立宇泰电子有限公司, 2007.

[6]陈赜.ARM9嵌入式技术及Linux高级实践教程[M].北京:北京航空航天大学出版社, 2006.

[7]陈桂, 田学隆, 陈南西.ARM嵌入式平台的VGA接口设计[J].单片机与嵌入式系统应用, 2007 (4) :25-28.

[8][美]Corbot.Linux设备驱动程序[M].魏永明, 耿月, 钟书毅, 译.北京:中国电力出版社, 2006.

[9]北京飞漫软件技术有限公司.Mini GUI用户手册[M].北京:北京飞漫软件技术有限公司, 2007.

[10]北京飞漫软件技术有限公司.Mini GUI编程指南[M].北京:北京飞漫软件技术有限公司, 2007.

【终端接口卡】推荐阅读:

模拟接口05-12

接口处理06-12

接口芯片08-15

外部接口08-25

通用接口09-07

通信接口09-11

短信接口09-14

接口服务09-17

接口方案09-24

网络接口09-26

上一篇:出水原因下一篇:中学语文的小说教学