您好,欢迎来到华佗养生网。
搜索
您的当前位置:首页1553b总线通信系统研究

1553b总线通信系统研究

来源:华佗养生网
第一章绪论MIC与1553B系统均采用主从式结构,不会出现总线冲突,具有确定的响应和传输时间。MIC总线传输率为1.33Mb/s(最大可达2.0Mb/s),1553B为1.0Mb/s,两者传输消息最大量均为33个字(1个命令字与最多32个数据字),消息传输短,保证了系统的实时性∞1t261。CAN采取带位仲裁的CSMA/CD(带有冲突检测的载波侦听多路访问)和非破坏性仲裁技术解决总线冲突,当节点较多且网络通信繁忙时,优先级低的节点可能很长时间不能发送信息,使得网络中信息传输最大延迟时间不确定,而且往往为了提高系统的可靠性而不得不降低数据传输率,因此实时性不如MIC与1553B总线.(2)可靠性MIC总线为单主机工作方式,采用双冗余总线同时传输具有固定检错能力的双极性曼彻斯特II型码编码消息,且每个命令和响应中均包括目标模块及设备地址,提供了充分的数据完整性和诊断能力,只要总线控制器可靠地工作,任何一个远程模块的故障都不会造成整个系统的瘫痪。因此为了提高系统的可靠性,对总线控制器采用冗余备份的方式。当主总线控制器失效时,MIC.320能自动执行与备用总线控制器之间的交接工作,转由备用总线控制器来接管总线控制权。1553B总线采用双冗余或者多冗余总线的单主机工作方式,只在一条激活总线传输具有固定检错能力的双极性曼彻斯特II型码编码消息,另外一条(或者多条)总线处于热备份状态,当激活总线出现故障时才由备用总线重新建立起通信。同MIC总线系统一样,任何一个远程模块的故障都不会造成整个系统的瘫痪,为了提高可靠性,对总线控制器采用冗余备份的方式。1553B系统任何时刻都只能由一个BC控制总线系统,因此采取动态总线控制方式代码和状态字的动态总线控制位来实现两个或多个BC之间总线控制权的交接[25]1261。CAN总线为多主机单总线传输工作方式,当总线开放时,任何节点均可开始发送报文,但只有具有最高优先权报文的节点获得总线访问权,通过位填充和NI屹方法来编码报文,采用CRC差错检验并提供错误处理功能来保证数据传输的可靠性。当CAN总线一个节点有问题,不会导致整个系统的瘫痪。在每个CAN节点中均设有错误检测、标定和自检,采取监视、循环冗余校验、位填充和报文格式检查措施来检测错误。错误检测具有下列特性:所有全局性错误均可被检测;发送器的所有局部错误均可被检测;报文中的多至5个随机分布错误均可被检测;报文中长度小于15的突发性错误均可被检测以及报文中的任何奇数个错误均可被检测;对于未检出的已损报文的剩余错误概率小于报文出错率4.7x1041127]。CAN报文传输采用短帧格式,每个数据帧最多含8个字节有效数据,因而传输时间短,受干扰的概率低。CAN节点有识别永久性故障和短暂扰动的功能,对短暂的扰动,CAN给予错误标定并重发;对故障严重的节点,CAN具有自动关闭节点的功能,以切断该节点与总线的联系,使总线上的其它节点及其通信不受影响,具有较强的抗干扰能力。虽然如此,但是CAN总线设计中,仍存在着不一致性、不可预测性、信道出错堵塞等漏洞口81。(3)传输特性MIC总线和1553B总线均采用双极性曼彻斯II型编码方式和有效性检测的字格式。这种编码本身包含了自定时信息,不需要的信道携带另外传输的位定时信息,具有固定的检错能力、较高的传输带宽以及同变压器耦合的兼容性,能从码型中离析出位同步信息。能够实现较远的传输距离,其总线的最大长度没有限定。MIC总线通信介质可以是屏蔽双绞线、光纤电缆、红外连接、电话线连接等串行通信介质。为了实现总线的直接线性耦合配置,MIC总线系统收发器基本上均使用满足EIAKS.485电气特性标准的器件.1553B的通信介质可以是屏蔽双绞线或光纤删陋】。CAN总线采用双极性非归零码编码,这种编码的波形产生较为复杂,无固有检错能力,并且不能携带位同步信息,必须另外添加时钟信号以保证同步。CAN总线的CSMA/CD访问方式要求网络必须严格同步,在军用车辆这种多网络介质的环境中很难实现。但是随着CAN总线的广泛应用及其技术的不断发展进步,相信此类问题会得到妥善的解决。NRZ编码的信号传输功率较小,不适宣远距离传输。当最大数据传输速率为IMbp/s时,CAN总线的最大长度为40m,任意两个节点之间最大距离为10km(5Kbp/s).通信介质可以是屏蔽双绞线、同轴电缆或光纤。5东南大学硕士学位论文(4)应用场合CAN总线在汽车的动力传动控制、车身控制、底盘控制等方面取得了非常成功的应用.由于CAN总线本身的特点。其应用范围目前已不再局限于汽车工业,而在过程控制、机械工业、纺织工业、农用机械、机器人、数控机床、医疗器械及传感器等领域更能发挥其强大的能力。此外,由于其已在工业现场广泛应用,并且积累了丰富的经验,因此在武器系统中采用CAN总线也是一种行之有效的途径。目前国内已有单位在开展此方面的研究,并在某自行武器系统中采用了CAN总线,其性能稳定111.MIC总线是针对恶劣的军事环境中电力及数据分配和管理而开发的,非常适合于对实时性和可靠性要求较高的应用场合。系统中只有总线控制器具有智能处理器,能实现数据处理和管理的功能,而各远程模块均无智能控制器,仅具有相关的输入输出功能,不能对数据进行处理和管理。因此,在仅需要采集相关的数据信息,并经过控制系统应用程序的分析和处理以实现对固态功率器件(电源开关元件等)或其他数字化可控电子及电机设备的分布式控制系统中,以及数据采集系统中,MIC的应用前景非常广阔,如坦克、军用车辆、航空等系统中的电源,数据管理与控制,过程控制、数据采集,传输,自动测试系统等pJl26】。1553B总线在美用飞机上得到了广泛的应用,如F16、F18、B52、AH-64,C17等。在我用飞机中应用也很广泛,并且制定了相应的标GJB289A,具体应用包括歼)kn,歼十,枭龙,L15等。由于1553B总线大大地减少了电子设备的体积、重量、复杂性以及电子系统综合费用,提高了电子设备的电磁兼容性、可靠性和容错能力,现在已经成为机动平台电子系统的主要工作支柱,在地面武器上也得到广泛应用。世界上大部分国家军用车辆综合电子信息系统均采用了1553B总线作为主总线。如美国M1A.2、M2A3、英国T72M、挑战者2、法国勒克莱尔等。而MIC总线作为电气设备管理总线在美军MIAI、M1A2坦克的电源分配及供配电管理上发挥了巨大的作用,MIc系统中可以由PIM的微处理器来实现车际间数据信息(语音、图像等)的无线传输,但是这样会加重总线控制器的负荷,系统实时性会受到一定的影响。因此1553B系统在车际间数据信息的传输、战场信息管理系统、定位导航系统和控制显示系统等方面将发挥更大的优势f1]1251mJ。1.2.3嵌入式计算机及嵌入式操作系统在军事装备的应用嵌入式计算机是嵌入到对象体系(即宿主系统)中的专用计算机。嵌入式计算机在功能和物理结构上都嵌入在系统中,不于系统运行,是系统的组成部分。一个应用系统按需要可嵌入一台或多台计算机。军事装备中嵌入式计算机是指以芯片、模块、插件或控制器形式“镶嵌”在武器或武器系统内部,智能地完成系统功能地专用计算机,分为设备级(工控机)、板级(单板、模块)、苍片级(MCU、SOC)。它主要用于武器控制、指挥控制、通信系统、作战仿真、保障系统中,可执行一种或多种特定任务,具有体积小、重量轻、功耗低、适应恶劣环境、实时性强、可靠性高等特点口”。计算机技术的进步与现代化作战的需求,共同推动了军用嵌入式计算机的发展,使得武器系统更加智能化。以美军为例,20世纪60年代,美国率先为武器系统设计各种类型的嵌入式计算机。到80年代,其先进的武器系统(如雷达、卫星、导弹、制导等)基本装备了嵌入式计算机。如系统,以及“三叉戟”潜艇、多用途两栖攻击舰等平台。此外,武器测试设备、训练模拟系统、后勤信息化系统也开始采用嵌入式计算机。80年代后,美军各军种纷纷提出军用嵌入式计算机计划。如AN,【胍43嵌入式战术计算机,主要用于“宙斯盾”系统、先进作战指导系统(ACDS)等舰载战术陆军“空地一体化指挥控制计算机”、海军“E.-2C飞机预警系统计算机”以及空军‘'HAWK-32计算机技术计划”等等。经过几十年的发展,美军巩固了这一领域的优势地位,拉大了与其他国家在技术上的差距。近几年,由于嵌入式计算机的发展已基本成熟,各军种己不再制定专项计划,但新型武器的研制以及现有武器的改造都会涉及到嵌入式计算机的开发与升级。嵌入式计算机通常由“嵌入式”微处理器、相关的硬件设备(如内部总线、接口以及外部总线)以及嵌入式软件系统三个主要部分组成。微处理器是嵌入式计算机的核心,内部总线则用于插件之间的信息传递。目前军用装备中内部总线主要使用的由VME、CompactPCI,PC/104等妒1。6第一章绪论PC/104嵌入式计算机是以X86微处理器作为核心,体积小,功耗低,可靠性好,功能又类似于PC机,具有开发方便、易于移植等优点,已经广泛用于军事装备之中。实时操作系统(RTOS)是指能对外部事件在限定的时间内作出并完成响应的多任务操作系统,它是嵌入式计算机中的重要的系统资源,与通用平台的操作系统不同,它往往嵌入到目标机硬件设备内部运行,一般用户无法看到它的运行界面,因而又被称为嵌入式操作系统。它往往采用微内核结构,具有实时性、可靠性和可裁减性的特点,非常适合于嵌入式系统和要求实时处理的应用场合。基于武器系统中嵌入式计算机的实时性,可靠性的要求,目前常用的操作系统主要有vRTX、PSOS、VxWorks、Lynxos、QNX和Linux等。VxWorks是美国风河(WindRiver)公司设计开发的一种嵌入式实时操作系统,以其极高的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术和实时性要求极高的领域中,如卫星通信、军事演习、弹道制导、飞机导航等。它是目前采用最多的用于开发实时嵌入式系统的实时操作系统之一.1.3课题的主要内容和方案本课题主要研究基于1553B总线的通信系统。1553B总线通信系统主要由用通信电缆连接起来的主控节点(Bc),远程终端节点(RT)和可选的总线监视器(MT)组成。由于1553B接口芯片普遍都能兼容以上三种工作方式,所以系统中的关键是1553B通信卡的设计。以往该卡的设计主要有以下两种方式:(1)使用直接将1553B接口芯片挂载到系统总线的方式(比如芬兰EUROTECH公司的COM一1250/1251型1553B通信卡)。使用该方法时,电路相对简单,但是大缺点在于由于主机需要对协议芯片频繁地进行读写,系统的资源占用率高。(2)使用智能卡的方式,即通信卡本身具有微控制器。目前主要使用的微控制器有两种:第一种是以386处理器作为协议芯片的微控制器(如中国航天五院8357所开发的HT-1307型1553B通信卡)。使用该方案的缺点是:①必须扩展数据存储器和程序存储器,系统规模相对庞大:②处理器功耗偏大;@系统开发非常不方便,因为386处理器是相对早期的处理器,目前已没有适用的仿真器等开发设备,更谈不上采用JTAG等目前较为流行的调试方法。第二种是使用DSP作为协议芯片的微控制器。DSP处理器多用于数字信号处理,功耗低,性能强,带有JTAG调试端口,开发方便。但是采用该方案也有缺点:目前的DSP处理器普遍没有集成外部总线仲裁控制器,在使用必须以DMA方式外扩数据存储器的1553B协议芯片时,可能会出现时序冲突,甚至读写错误,整个系统可靠性变低。基于多方面考虑,结合现有的1553B总线协议芯片,确定研究设计的通信卡采用智能卡方式,卡上控制器选用一款带有外部总线仲裁控制器的ARM处理器。开发的1553B智能通信卡应用于PC/104嵌入式计算机作为主机的1553B通信系统。通信卡上对于1553B协议芯片的操作均通LC.ARM处理器来完成,以最大限度降低通信卡对PC/104主机的资源占用,此外,通信卡上微控制器与PC/104总线的通信使用1啦双121RAM,该双WRAM主要用于数据的传输、状态命令的交换与一些中断的处理。通信卡的结构如图1.4。7东南大学硕士学位论文P(y1041553B图1.4智能1553B通信卡结构1.4小结本章综述了军用装备中数据总线的研究意义与发展概况,在此基础上,简要介绍了目前在军事装备中较为常用的四种总线标准——ARINC429、CAN、MIC和1553B,并对其性能特性与应用场合进行了分析比较。从总体上说,1553B总线目前是军事装备中最为理想且使用范围最广的通信技术的结论.在对1553B通信卡的设计方法进行回顾的基础上,本章明确了论文的主要研究内容一设计一块1553B通信卡,提出了该卡的设计方案。8第二章1553B总线的介绍第二章1553B总线介绍设计的1553B通信卡要能在1553B通信系统中得到应用,必须遵循1553B规范。由于1553B总线主要用于军事装备系统中,因此,不像CAN总线那样有非常多的文献资料说明与设计参考.在仔细研究了文献[151、【16]、【”】、[30]和【33】的基础上,介绍1553B总线的通信原理。2.1引言【15】1553B总线最初是在七十年代为适应飞机的发展由美国空军提出的飞机内部电子系统联网标准,其后为了适应各种不同的要求,进行了多次修改。其主要的发展历程为:l、1973年美国空军为了F16战斗机项目首先提出了MIL.S1I)-1553标准。2、1975年美国国防部在工业部与空军和海军的支持下,对1553标准进行修改,提出了1553A总线标准。3、1978年美国汽车工程师协会在美国海陆空三军的支持下,对1553A作了进一步的修改,推出了新的国防部MIL.STD.1553B总线标准。4、1980年,美国空军进一步提出了1553B总线标准的Notice6、1993年提出了Notice3.7、1996年提出了Notice4。l。5、1986年、美国汽车工程师协会再次在国防部的支持下提出了Notice2。1553B总线不但是美国的军用标准,在其他国家与国际组织的标准中也被广泛采用:例如北约的NATOSTANAG3838,ASCCAirStandard50/2,英国的uKDEFSTAN00-18(PART2)/issuel,俄罗斯GOST26765.52.87,中国GJ-B289A。2.21553B总线的系统组成1553B总线是为军用飞机、舰船与军用车辆内各自动化设备之问集成数据交换而设计的。总线上传送的消息具有高反复性,并且消息的内容与周期都是预先计划好的。各节点需要对消息有出错处理的能力。因此,各自动化设备需要一个由各自分别供电的用于对外数据接口的1553B通信终端,1553B标准将这种通信终端称为总线控制2f4Bc),远程终端(R:D和监视器叫D。1553B总线标准对于电气特性有着严格的规定,各终端在硬件设计上必须完全满足规范中的要求。总线标准中还定义了所有的可能使用的消息协议格式,与电气特性规定不同,具体使用什么消息协议,完全由设计者自己来选择。标准中对于BC,RT与MT之间如何互联并没有详细的规定,只有两点要求:(1)在一条数据总线k_RT的数日不能超过地址号所能达到的最大值(即31);(2)在总线上只能有唯一一个BCpw。2.2.11553B总线的基本特征1553B总线是一种集中式的时分串行总线,其主要特点是分布处理、集中控制和实时响应。其可靠性机制包括防错功能、容错功能,错误的检测和定位、错误的隔离、错误的校正、系统监控及系统恢复功能。总线采用双冗余系统,有两个传输通道,保证了良好的容错性和故障隔离。综合起来1553B总线有以下几个特点Ⅲ:(1)实时性好东南大学顽士学位论文1553B总线的数据传输率为1Mbps,采用曼拐斯特II型编码方式,见图2.1。采用这种编码方式是因为其适用于变压器耦合。由于直接耦合不利于终端故障隔离,会因为一个终端故障而造成整个总线网络的完全瘫痪,所以其协议中明确指出不推荐使用壹接耦合方式。每条消息最多包含32个数据字,传输一个固定不变的消息所需时间短。1№咖【曲.磁似.∞.D^融秭.M舶《疆留取琢睫甄艇LⅡ(+’.固一o一图2.1曼彻斯特H型编码(2)合理的差错控制措施和特有的方式命令为确保数据传输的完整性,1553B采用了合理的差错控肯B措施——反馈重传纠错方法。当BC向某一RT发出一个命令或发送一个消息时,RT终端应在给定的响应时间内发回一个状态字,如果传输的消息有错,终端就拒绝发回状态字,由此报告上次消息传输无效。而特有的方式命令不仅使系统能完成数据通讯控制任务,还能检查故障情况并完成容错管理功能。(3)总线效率高总线形式的拓扑结构对总线效率的要求比较高,为此1553B对涉及总线效率指标的某些强制性要求如命令响应时间、消息间隔时间以及每次消息传输的最大和最小数据块的长度都有严格。(4)具有命令,响应以及‘广播”通讯方式BC能够以‘‘广播”方式向所有RT发送一个时间同步消息,这样总线上的所有消息传输都由总线控制器发出的指令来控制,相关终端对指令应给予响应并执行操作。这种方式非常适合集中控制的分布式处理系统。2,2.21553B总线的节点【15】【161111f,哪!553B总线的终端有三种,总线控制器总线控制器(Bc)。远程终端fRT)和监视器(MD[311,(1)BC为所有的传输来提供流量的控制。全系统使用命令,响应机制,BC是所有数据通信的“源头”。所有在总线上的命令和数据都由一个单独的BC激活,除了BC,任何终端无法激活总线通信。BE的责任是,确保它的信息计划表能为所有对时间依赖性较强的处理过程提供合理的任务分配。除了个别事务类型以外,RT可为当前进行的总线事务的成功或失败提供状态指示。为了实现完整的总线控制模式,1553B标准尽量要求RT在制定的时间间隔内回应BC发出的命令。如果回应在标准所指定的时间间隔内末被接收到,BC有权判断当前事务正处在“无回应”状态,并继续进行它的下一个任务过程。这种分配方式意味着可以确保没有总线事务会超过限定时间,否则一个超时的任务会影响其它的总线事务,造成中断或暂停。(2)RT的主要工作是为了子系统传输数据提供接口。它必须对于BC发出的命令字进行响应,返回当前自己的状态,并且进行必要的数据的输入输出。~般而言,RT不具备类似于BC对于总线的控制能力,但是对于有相当处理能力的设备而言,RT可以作为潜在的后备BC,在某些特定的时候通过与BC的协商处理来接替BC的功能。(3)MT侦听所有的信息,并且对总线上数据进行相应的存储。它的主要包括:为数据存储10第二章1553B总线的介绍记录器或者远程遥测进行数据的采集,在线监视总线系统的运行状态。除了上述三种基本组成单元,还需要与传输线缆与总线耦合器一起构成1553B通信系统。1553B总线的传输线缆一般为屏蔽双绞线,部分情况下使用光纤(1773总线,1553B总线的光纤佳输介质版本)1511321。总线耦合器是用于将终端和数据总线隔离开,耦合器包含两个匹配隔离电阻和一个变压器,耦合器的功能是为了防止由于单个分支节点的断路而带来的主总线上的短路,并能够有效的防止由于终端带来的数据总线上波形的畸变。2.2.31553B总线的电气特性i刈p耐1553B总线的传输介质是由屏蔽双绞线和多个接线端而组成的。每一个连接到总线上的终端都必须使用一个接线端。总线的两端各需要一个与双绞线自身阻抗榴匹配的电阻(士2%范围)。这样,可以使得数据总线在电气性能上像无限长的传输线。用于连接终端和总线的接线端,提供了“局部”负载但同时也造成了连接端的阻抗失配。这种失配,如果不合理控制的话,将带来信号反射并且降低总线的性能,所以,总线与接线端性能参数必须符合规范,表2.1规定了传输介质的特性。表2.1传输线缆要求传输线缆电容特性特征阻抗电缆衰减线缆绞合屏蔽覆盖线缆终端直接耦舍方式接线距离远距离耦合方式接线距离屏蔽双绞线线间电容不大于30pf/25.4em(1英尺)1MHz频率下70Q~85D.1MHz频率下不大于1.5dB/25.4m(100英尺)每25.4em(1英尺)绞合不小于四次不小于90%线缆阻抗(士2%)最长25.4cm(I英寸)最长5.08m(20英寸)直接耦合与变压器耦合。如图2.3所示.1553B标准规定了两种终端连接到总线的方式变压嚣耦合数据总线终端终端图2.2两种节点接入方式两种连接方式的不同主要在于变压器耦合方式使用了一个变压器来连接到接线端。在两种方式ll东南大学硕士学位论文中,每根线上郡使用了隔离电阻,在直接耦合方式中,隔离电阻一般是在终端之中,而变压器祸合方式中,.隔离电阻是和耦合变压器一起集成在一起而被称为总线耦合器。两种方式的另一个不同在于终端到接线端的长度的区别,直接耦合方式最长不得超过25.4em(1英寸),而变压器耦舍最长可达到5.08m(20英寸)。因此,在使用直接耦舍方式得系统中,数据总线在布线时必须尽可能的靠近终端,而使用变压器耦合方式的系统则有比较大的余地。有一点必须要指出的是,在使用直接耦合方式时,系统要能够接受由于接线端而带来的阻抗失配的影响。因此,在安置接线端的地方,必须进行仔细的权衡分析,并且进行测试来判断波形的畸变是否会对总线的数据传输带来问题。对于直接耦合方式与变压器耦合方式,1553B标准对于其波形方面也有着不同的电气特性规定,主要特性具体如表2.2所示。表2.2输出波形电气特性要求变压器耦合直接耦合6~9V25ns条件输入电平过零稳定上升/下降时间最大畸变最大噪声上/下电噪声18~27V250nsp~p(峰峰值)lO%~90%100~300ns士900.0mV14mV±250.0mV100~300ns.I-300.0mV5mV4-90.0mVPeak(峰值)Peak(峰值)2.31553B总线的传输协议与帧格式【15][16Ⅱ171****13311553B总线的控制,数据流,状态包括与管理都是通过三种消息字来实现的。这三种消息字分别为:命令字(Commandwords)、数据字(Datawords)和状态字(StatIIswords)。籀器口丑工正口丑工正口五王E口丑珊CO删A摊OWO∞O^TAWORD滞耥觥搿仃PAR:PARITYBIT誊垂委鲞耍羞晷凳蔷萋|§蒜嚣茎llllli|第二章1553B总线的介绍度为20位比特,且由3部分组成:同步域(SYNC,占用三个比特位),消息域(16个比特),校验域(PAR,1个比特)。同步域可以使得解码时钟在每一个新的字传输的时候进行重新同步,消息域根据字的类型不同彼此区别。校验域采用奇校验的方式,这是对一个字(16个比特的消息域数据)的校验。三种字的格式如图2.3所示。2.3.1命令字、状态字与数据字命令字与状态字使用同样的同步位,为正到负的跳变,占用三个比特位。而数据字使用的同步位和命令字与状态字使用的同步位相反,为负到正的跳变。然而控制字都是由Bc而向RT发出的,BC知道哪一个RT接收命令,BC通过将发出的RT地址与接收到状态字中的RT地址相比较,来验证RT回复了状态字。这种比较总是很明确的,因为BC本身是没有地址的。命令字的格式如表2.3所示:翱3命令字格式位域比特长度名称1.33Sync(同步)4—85RTaddress(RTJ也址)9lT/R比特lO.145Subaddress/Mode(子地址,方式码标志)15一195Da+,awordcountqvlode(数据字计数,方式码)20lParity(校验)RT使用同步位来判别命令字。如果判断出是命令字的话,RT将命令字中的地址与自身的地址相比较,并判断其是否为广播地址。由于状态字含有地址码信息,所以RT总能够判断使用正到负跳变同步位的字是否为其必须响应的命令字。因此,RT总能够区分命令字、状态字与数据字。如果RT检测到对应于其地址的命令字,它将解码T瓜位,逻辑‘l’表示RT需要发送数据,‘0’表示RT将接收数据。最后,R1懈码子地地方式码位域。如果RT判断出这是一个方式码命令字(RT子地址位域为全O),R1将把Datawordcount,IVIode位域解释为方式码,否则将Subaddress/Mode位域解释成子地址。并且将DatawordcounVMode6立.域根据T/R位的值解释成将要接收还是发送的数据字计数。最后一位为校验位,使用奇校验方式。状态字的格式如表2.4所示:表2.4状态字格式位域比特长度名称1.33Sync(同步)4.85RTaddress(RT地址)9lMessageerrorlOlInstrumentation11lServicerequest12.143保留151Bmadcastcommandreceived16lBusy17lSubsystemflag18lDynamicbuscontrolacceptance19lTerminalflag20l校验R1r在接收到来自Bc的命令后,将返回状态字,除非接收到的是广播地址命令。同步位域和地址位域在介绍命令字时进行了说明。9~19位为状态位。第九位为Memgcerrorbit,该位的置位表明R碟收到的命令字有误,不符合标准。13东南大学硕士学位论文第十位为Instramcntationbit,在命令字中该位须为‘I’,在状态字中该位需为‘0’。这一位主要是为了使MT能够分辨状态字与命令字。第十一位为Servicerequestbit,该位的置位表示R侑发送数据的需求.第十二至十四位为保留位。第十五位为Broadcastcommandreceivedbit,该位表示R1接收到了有效的广播信息。这里要说明的是。RT在接收到广播命令后并不会发送状态字,只有在BC发送TransmitStatus或者TransmitCommandmodeLastcode方式码命令后,RT才会在状态字中将该位置位。第十六位为Busybit,表明RT无法通过其子系统接口发送或者接收数据;对于BC发出的接收还第十七位为Subsystemflag是发送数据的命令字,RT无法正常响应。bit,该位置位表明RT的子系统遇到问题。bit,这是和动态总线控制方式码相关的位,该位的置第十八位为Dynamicbuscontrolacceptance位表明该RT将接管BC的功能,同时通知原BC转变成为RT或者MT。第十九位为Terminalflagbit,该位置位表明RT硬件故障。数据字的定义相对简单,为三位的同步位,十六位数据,和最后以为奇校验位。2.3.2非广播帧数据总线的最主要功能就是为系统间的数据交换提供一个媒介。数据的交换是基于消息帧传送的方式,1553B标准定义了十种帧传输格式,所有的帧格式都是基于上面所提到的三种消息字的组合.这十种帧传输格式又可以两种类型,非广播帧与广播帧。非广播帧一共有六种,分别为:BC.RT,RT-BC,RT-RT,无数据方式码帧,有数据发送方式码帧和有数据接收方式码帧。帧的格式如图2.4所示。盼雨匾墨蔓围”围。凰,震硼NE》汀MoDEⅥloDATAfl_)MODE匾弘萱函叠NEXtW11HDATA03MODEW11HDATA(两匾圈。图·震霪图2.4非广播帧格式14●;lNTEFtMESSASEGAPO一冉E8PONSETiME非广播帧的传输是基于命令,响应机制,所有的RT在接收到无错误的命令字之后必须返回状态字,这样的一种握手方式也就成为了RT接收到命令字的应蒈。BC.R1帧是指BC首先向指定RT的某子系统地址发出接收命令字,RT做好接收准备,紧接着BC就发出数据。RT根据接收到的数据与命令字来作出相应的响应,发送回状态字。这个响应的过程最长12ps。帧传输完成后,RT就需要准备着下一个帧的传输。扶整体的角度看,RT大约有56Ils的时间来将数据传送到子系统或者保存在缓存中。56坶时间是这样计算出来的:响应反应时间12忡,状态字传输时间20ps,帧间时隙最小4岫,命令字发送时间20ps,一共加起来56Iis。第二章1553B总线的介绍RT-BC帧是Bc先向酊发送数据发送命令字,RT确认后而发送状态字并且发送命令字所请求的数据字。RT并不预先知道BC命令字的时序安排,并且其在知道确认命令字有效后才回作出响应,所以RT需要有能力在28vsFq从子系统获取要发送的数据。28岫具体是状态字响应时间12岫,加上状态字传输时间20tas,再减去通过编码器和发送器的延时。RT-RT帧允许了RT终端不通过BC而直接发送数据到另一RT终端,然而。BC在这一过程中仍然可以获得并使用该数据。BC首先发送数据接收命令字,然后发送数据发送命令字。接收到发送命令字的RT,首先囿应发送状态字并且紧接着发送数据字,接收到数据接收命令字的RT接收数据,并且在接收完成后回应状态字。无数据方式码帧,有数据发送方式码帧和有数据接收方式码帧,都涉及到方式码命令字。方式码命令专门用于BC通信或终端(或子系统)错误故障的监控,诊断和控制管理。当总线控制器发出的指令中子地址位域全为‘0’或全为‘1’时,此命令为方式码命令,而具体是哪一种方式命令,则由数据字计数,方式码域来表示,方式命令的种类及其是否代数据字与是否为广播方式如表2.5所示.表2.5方式码命令T,RModeCodeFunctionDataWjrdBroadcastlllllllll1OOOOO0000l00010000ll001000010l0011000lIl010000l001DynamicBusControlSynchronizeTransmitStatusInitiateSelf-testTransmitterShutdownOverrideTIansmitterShutdownInhibitTerminalFlagBitOverrideIphibitResetRemoteReservedNoNoNoYesNoYesYesWordNoNoNoNoNOFlagBitN0NoNoYesYesYesYesTerminalTerminalTBD(Tobedem'mined)IIll0llOOI/001111looOO100011001010011101001010110110llReservedTransmitVectorSynchronizeTransmitLastCommandTransmitBITWordSelectedTmIlsmmerShutdownOverrideSelectedTransmitterReservedNolTBDNoYesNoNoWordYesYesWordYesYesYesYesYesYesShutdownYesTBDfII/0I11111ReservedIITBDYes方式码命令主要有:动态总线控制(00000);同步(00001);发送上一状态字(00010);启动自测试(00011);发送器关闭(00100);取消发送器关闭(00101);禁止终端标准位(00110);取消禁止远程标志位(00101);复位远程终端(010000):发送矢量字(10000);不带数据字的同步(10001);带数据字的同步(10010);发送字检测字(1001I);选定的发送器关闭(10100);取消选定的发送器关闭(10101).15东南大学硕士学位论文2.3.3广播帧广播帧一共有四种,分别为Bc到RT的广播,RT到RT的广播,无数据字方式码命令字广播,代数据字方式码命令字广播。帧的格式如图2.5所示.N£XTRT-RrMOOEW船D^1胰圜叠MoDE坩ITH掌=IICIERMESSAG拦GAPD^1.A0竺RE8Po时S£TIME图2.5广播帧格式广播帧的格式与非广播帧基本相同,区别有两点:(1)BC发出的控制字中RT地址为31(11111);(2)RT终端在接收到消息后而不需要回复状态字。广播帧只可用于RT接收数据。很显然,由于多个终端不能在同时发送数据,RT-BC帧和有数据发送方式码帧两种帧模式不存在广播的方式,这样会带来总线的冲突。RT到RT的广播帧,是BC先广播发送数据接收命令字,然后再对某一RT发送数据发送命令字,从而实现单一RT到多个RT的直接广播数据发送。对于广播方式码帧,并不是所有的方式码命令都可以使用,只能发送表2.5中规定的允许广播的方式码。2.41553B总线网络的结构与拓扑㈣1553B总线一共有三种常用的拓扑结构,这里的拓扑不是指BC,后备BC,RT的具体的相对位置,而更多的是指一种控制的层次关系。这三种拓扑结构为:单层结构,多层结构和等级结构。1553B总线上的节点不仅仅局限于单一功能的BC,R1r和MT,除此以为,还有一类特别的节点,就是后备BC。由于在1553B总线中,BC是不可缺少的节点,所以后备BC也显得非常关键。后备BC同时具有RT和BC的功能,平时是作为RT节点,在_=jZBC出现某种情况不能继续担任BC节点时,通过交接机制来接管BC的功能。1553B总线的三种拓扑如图2.6所示。单层结构是最为常用的结构,通常是由一个BC,一个备份Bc和多个RT组成的。备份BC时刻准备着在BC出现问题时接管BC的功能,这种单层结构的可靠性在过去的应用中已经得到了很好的验证,可以用于非与飞行密切相关的应用。多层结构中,有一个节点能够同时挂载到两个1553B总线上,在其中一个总线上是作为备份BC,而在另一根总线上却作为BC。在备份BC没有接管BC功能时,作为RT而存在。多层结构的拓扑使得更多的RT终端可以集成到一个系统中,另一方面系统也能够通过标准提供的特定功能(子系统)被分成多个子系统总线。等级结构与多层结构一样同样需要能够同时挂载到两个1553B总线上的节点,但是与多层结构不同的是,这个节点在主总线上是作为RT存在,它接收主总线上的数据然后发送到其另一接121连接的子总线上.在子总线上的控制字可以是作为数据字从主总线上而接收到的,也可以是子总线BC本身16蔓三兰垄璺堡塑坌望控制表中的命令。等级结构可允许更多的RT集成到一个系统中,同时在主总线级别上保持了更大的控制.单层结构o^斤多层结构戳一1T一一一上面*’一上一上呷一上—r下RWBBC1l一l上—r下酊∞II盯上上_一上。等级结构≈图2.61553B总线常见拓扑结构2.5小结本章主要从1553B总线的特点、组成、电气特性、协议与结构等方面对1553B总线作了一个总体介绍。1553B总线是一种时分制指令响应式多路传输数据总线,传输率为lMbps,采用曼彻斯特Ⅱ型编码方式。1553B总线的组成终端有三种,总线控制器总线控制器∞c),远程终端皿_I)和监视器O“1)。终端连接到总线有直接耦合与变压器耦合两种方式。1553B总线的控制,数据流,状态包括与管理都是通过命令字(Commandwords)、数据字(Datawords)和状态字(Statuswords)这三种消息字来实现的。1553B标准一共定义了十种帧传输格式,常见的有三种拓扑结构为:单层结构,多层结构和等级结构。17第三章基于PC/104的1553B总线智能通信卡的硬件设计第三章基于PC/104的1553B总线智能通信卡的硬件设计本章讨论如图1.3所示的1553B总线智能通信卡的硬件设计。该通信卡采用PC/104总线结构,卡上的控制器使用三星公司的ARM7内核处理器s3c4480X,1553B协议芯片使用UTMCBCRTM,与Pdl04总线的通信使用IDT公司的双口洲ID,r7025。司的3.1硬件总体结构该智能通信卡以AItM处理器为核心,外扩程序FLASH存储器SST39VF040、SM字节SDRAMHY57V641620、1553B协议芯片BCRTM及X叹UIRAMIDT7025同时也挂在ARM总线上。为调试方便,还扩展了一个串口和以太网芯片RTLS019AS。通信卡总体结构如图3.1所示。图3.1通信卡硬件设计框图下面在对三星越tM7处理器s3C“BOX、1553B总线协议芯片BCRlM和1553B总线收发器进行简介的基础上,讨论相关的具体硬件设计.3.2三星ARM7处理器S3C44BOXARM是高性能的32位RISC处理器内核,目前,采用ARM内核的处理器已遍及工业控制、消费类电子产品、通信系统、两络系统、无线系统等各类产品市场,占据了32位魁sC处理器75%以上的市场份额。舢咖处理器有5个产品系列;ARM7、ARM9、ARM9E、ARMl0和SeeurCore。其中AItM7系18东南大学硕士学位论文列是低功耗的32位RISC处理器,最适合用于对价位和功耗敏感的应用场合。ARM7系列处理器具有如下特点脚J:(1)具有嵌入式ICE—RT逻辑,调试开发方便;(2)极低的功耗,适合对功耗要求高的应用场合;(3)能够提供0.9MIPS/MHz的三级流水线结构;(4)代码密度高并支持16位的Thumb指令集;(5)对操作系统的支持广泛,包括WindowsCE、Linux、PalmOS等;(6)指令系统与ARM9系列、ARM9E系列和ARMIOE系列兼容,便于用户的产品升级换代;(7)主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。ARM7系列处理器包括如下几种类型的内核:ARM7TDMI、ARM7TDMl-S、ARM720T、ARM7EJ.其中,ARM7TDMI是目前使用最广泛的内核,其名称的含义如下:(1)T:支持16位指令集Thumb:(2)D:支持片上调试;(3)M:内嵌硬件乘法器,可得到64位结果;(4)I:嵌入式ICE,支持片上断点和调试点。S3CA4BOX是三星公司推出的基于ARM7TDMI成J核的处理器,工作频率最高为66MHz,T作电压为3.3V,ARM7TDMI内核的工作电压仅为2.5v,大大降低了芯片的功耗。为了减少构建系统的总成本,S3CA480x包含了许多常用的器件,主要有以下几种p升:(1)8KB内部Cache,也可作为RAM使用;(2)内存控制器,带有8个Bank,最大存储容量为256MB,支持ROM、FLASH、SDRAM;(3)2路UART口,最高波特率115200bps,带握手信号;(4)5个PWM定时器和1个内部定时器;(5)71个通用加口线;(6)30个中断源,其中有8个外部中断源;(7)5种电源管理模式:正常、慢速、闲置、LCD空闲和停止;(8)实时时钟,使用32.768KHz的晶振,带有备用电源,可输出正确的日期和时间;(9)带锁相环的时钟信号发生器。S3CA4BOX的硬件结构如图3.2所示,其中的CPU单元包括ARM73"D肭核、写缓存和8KB的Cache,除此之外,还集成了大量的外围器件,提供了丰富的功能。S3C44BOX内部包含两条总线:系统总线和外围总线,系统总线连接基本模块,包括ARM7TDMI核、内存控制器、中断控制器、电源管理等;外围总线连接外围模块,如串口、12c总线、通用FOIl、定时器、实时时钟等.第三章基于PC/104的1553B总线智能通信卡的硬件设计图3.23.2.1S3C44BOX的组成模块ARM7TDMI的编程模型【卅(1)处理器工作状态ARM7TDMI有两种工作状态:ARIvl和Thumb。在ARM状态执行32位指令时,有最高的性能;在Thumb状态执行16位指令时,性能略有损失,但有较高的代码密度。处理器可以在这两种状态间自由切换,开发者可根据自己的实际需要选择使用哪种状态。(2)内存格式ARM7TDMI将存储器看作是从零地址开始的字节的线性组合。从零字节到第三个字节放置第一个字(32位),从第四个字节到第七个字节放置第二个字,依此类推。作为32位的处理器,ARM7TDMI所支持的最大寻址空间为4GB(2”字节)。变量的存放有大端模式和小端模式之分,所谓大端模式是指最高字节存放在最低地址;小端模式是指最低字节存放在最低地址。(3)运行模式ARM7TDMI的7种运行模式如下:①User(usr):用户模式;②FIQ(fiq):快速中断,用于支持数据传送;③IRQ(irq):通常的中断处理;④Supervisor(svc):操作系统的保护模式;⑤Abortmode(abt);读存储器失败;垄重奎兰塑主兰堕堡苎⑥System(sys):操作系统的模式;⑦Undefined(und):未定义的指令。模式之间的转换可以用软件控制,也可以通过外部中断或异常处理改变。(4)寄存器ARM7TDMI一共有37个32位寄存器——31个通用寄存器和6个状态寄存器。但这些寄存器不能被同时访问,处理器状态和运行模式决定了可以访问哪些寄存器。在ARM状态,可同时访问16个通用寄存器(R0~R15)和一到两个状态寄存器(CI'SR和SPSR)。每个模式都有自己的影子寄存器,与用户模式的寄存器相互。R14也称作连接寄存器LR。当执行BL子程序调用指令时,R14得到R15(程序计数嚣PC)的备份;其它情况下,R14用作通用寄存器。寄存器R15用作程序计数器(Pc),指示当前预取的指令地址。CPSR可在任何运行模式下被访问,它包括条件标志位、中断禁止位、当前处理器模式标志位,以及其他一些楣关的控制和状态位.每一种运行模式下又都有一个专用的状态寄存器,称为SPSR,当异常发生时,SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复CPSR。由于用户模式和系统模式不属于异常模式,它们没有SPSR,当在这两种模式下访问SPSR,结果是未知的。(5)异常当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按优先级进行处理.ARM7TDMI所支持的异常及具体含义如下:①复位:当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行;②未定义指令:当ARM处理器遇到不能处理的指令时,产生未定义指令异常;③软件中断:该异常由SWI指令产生,可用于用户模式下的程序调用操作指令;④指令预取中止:若处理器预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,但当预取的指令披执行时,才会产生指令预取中止异常;⑤数据中止:若处理器访问的数据地址不存在,或该地址不允许当前指令访问时,产生数据中止异常;⑥IRQ(外部中断请求):当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常,系统的外设可通过该异常请求中断服务;⑦FIQ(快速中断请求):当处理器的快速中断请求引脚有效,且CPSR中的F位为0对,产生FIQ异常。3.2.2S3C44BOX的内存控制器m1S3C44BOX的内存控制器可外接8个Bank,每个Bank的容量最大32MB,前6个Bank支持ROM和SRAM;后2个Bank支持ROM、SRAM和SDRAM。每个Bank的内存芯片类型、容量、数据宽度、访问时序都可用软件配置。但Bank0略有不同,它存储着启动代码,处理器上电后即从中读取代码执行,在读取前没有机会用软件设置它的数据宽度,因此只能由硬件来设置。处理器引脚OM0、OMI用来设置Bank0的数据宽度,如表3.1所示。表3.1oMlOOllBank0的数据宽度设置OMO0101数据宽度8位16位32位测试模式3.2.3中断与串行接口嗍S3C44BOX有30个中断源,中断控制器在同时到达的中断请求里选出优先级最高的向2l第三章基于PC/104的1553B总线智能通信卡的硬件设计ARM7TDMI内核请求中断。ARM7TDMI内核只允许FIQ和IRQ两种中断,发生中断后必须用软件读取寄存器来确定中断源,这增加了中断响应的延时。而S3C44BOX则提供了中断向量功能,能够根据中断源直接跳到相应的中断处理函数,不需要再用软件查询。用CPSR里的F位和I位禁止和使能中断,当F位为l时,禁止FIQ中断;当F位为0时,使能FIQ中断,I位的使用与此类似。处理器的中断优先级设置非常灵活,每个中断源都可配置成FIQ或IRQ,FIQ的优先级总高于IRQ。在mQ内部,中断源被组织成几组,组问优先级和组内优先级都是可设置的.若两个中断同时到达,先比较组间优先级,再比较组内优先级(若两个中断是同一组).S3C44BOX带有两个串口,支持流控,支持查询、中断和DMA方式。串口的波特率以处理器的内部时钟作为输入信号,经16分频和16位除数寄存器分频后得到最终的信号,除数寄存器的计算公式为:除数寄存器=MCLK/(bps'c16)一l其中MCLK为内部时钟频率,b口s为波特率。3.31553B总线协议芯片BCRTMt36JBCRTM是美国UTMC公司生产的CMOS单片智能1553B协议芯片,功能非常强大,箕主要特性有:(1)集成了MIL.STD-1553B双总线的总线控制器(Bc)、远程终端限D和监视器∞田兰大功能:(2)兼容MIL.STD.1773;(3)在BC模式下,具有多消息处理能力;(4)在Bo漠式下,能对消息进行查询和自动设置消息间隔(延迟);(5)可编程中断方案,内部生成中断事件清单;(6)采用了面向寄存器的结构,便于提高编程效率;(7)具有可寻址的64K字的DMA或伪双口存储器接口:(8)内部轮回自检;(9)在RT和MT模式下,可以设置时间标签和消息标志;(10)封装形式:PGA84;(11)低功耗cMOS工艺;(12)在全军温(-55"C'斗125"C)范围内,按照MⅡ,STm883标准5004、B级规定的测试办法进行筛选。BCRTM的主要功能模块如图3.3所示。东南大学硕士学位论文羹曩图3.3BCRTM功能模块在解决MIL—S1rr)_1553B多路串行数据总线的设计问题上,单片BCRT/Vl为系统设计师提供了一个灵活的智能化方案。BCRTM是单片器件,它实现了MIL-STD-1553B标准定义的三种功能:总线控制器模式(BC)、远程终端模式(RT)、监视器模式(MT)。BCRTM强大的状态机能自动执行消息传送、提供中断和产生状态信息,从而能减少主机cPU的负荷。内部寄存器提供了许多可编程功能以及外部信息,供主机使用。当处于BC模式时,BCRTM使用信息链表方案为主机提供消息联接能力。BCRTM可以支持可变长度和可重新配置的数据块,从而能扩展存储器的使用。当处于RT模式时,BCRTM执行时标和消息记录功能,同时可以给任意子地址支持多重消息缓冲(达128条)以及可变长度消息。当处于M磺式时,BCRTM强大的连接表命令块结构允许在不干预主机的情况下处理一系列被监视的1553B消息。BCI订M能够在64K字内存空间内存储足够多的在总线上传送的消息。另外,主机能指示BCRTM对已选择的远程终端进行监测和存储数据。3-3.1功能特性BCRTM是一款智能程度高、多用途且易于配置的器件,在三种工作方式下都有着非常鲜明的特点.(1)BCRTM工作在远程终端模式(1iT)下的特性①索引BCRTM可以编程来按逐个子地址的方式索引或缓冲消息,其索引消息可多达128条。无论是在23第三章基于PC/104的1553B总线智能通信卡的硬件设计获得己选定数量消息还是在存取一指定子地址时,BCRTM都能执行一个中断.②可变地址空间分配BCRTM可以根据需要使用任意大小的内存空间(最大为64K字).③可选数据存储BCRTM具有的地址可编程能力使得数据放置灵活且存取方便.④顺序数据存储BCRTM按子地址存储和萃取消息,所有消息均保持发送对的颅序。⑤顺序消息的状态信息BCRTM提供消息有效性、时间标签(识)和字记录计数信息,并且把这些信息顺序存储在一个的相互对照表中。⑥非法化方式码和子地址通过对存储器内的有关存储单元进行设置,主机可以判定方式码和子地址为非法.⑦可编程中断选择主机cPu可选择不同事件来引发不同优先级别的中断(高级或标准级).⑧中断历史清单BCRTM提供中断历史清单,该清单按发生次序记录引发中断的事件。清单长度是可编程的。(2)BcRlM工作在总线控制器(Bc)模式的特性①多消息处理BCRTM可自动处理任意数量的消息或者列出64K字存储空间中的消息。②自动消息间延迟BCRTM可在运行下一条消息之前延迟主机指定的一个对闯。③自动查询查询时,BCRTM查询每一个RT,然后将这些状态字与查询比较寄存器中的内容比较,如果RT状态字响应发生错误,BCIuM可中断主CPU。④自动重传在以下情形,BCRTM可自动重传一条消息:忙、消息错误和响应时间超时:此时可在同一总线或备用总线上重传多达4次。⑤可编程中断选择主CPU可选不同事件用于触发不同优先级别的中断(高级或标准级)。⑥中断历史清单BCRTM的历史记录清单按发生次序记录引发中断的事件。该清单长度可编程。⑦可变地址空间寻址BCRTM可以使用64K字内任意大小的内存空间。⑧可选数据存储地址可编程能力使得数据存取灵活而方便。(3)BCRTMT作在监视器(MT)模式下的特性①命令历史清单BCRTM相互联结的清单命令块结构使得它可以处理一系列被监视的信息而无须主机干预。②有选择监视终端地址主机在终端地址选择寄存器(寄存器16和17)中写入相应比特位,以选择被监视的远程终端。BCRTM可监视任意或者全部远程终端。③可变地址空间分配BCRTM可以使用64K字内任意大小的内存空间。④可选数据存储地址可编程能力使得数据存取灵活而方便。⑤顺序数据存储2●东南大学硕士学位论文BCRTM按照消息处理的顺序存储或传送消息。⑧可编程中断选择主CPU可选不同事件触发不同优先级别的中断(高级或标准级)。⑦中断历史清单BCRTM的历史记录清单按发生次序记录引发中断的事件。该清单长度可编程。3.3.2BCRTM的寄存器BCRTM内部寄存器允许CPU控制BCRTM的动作以利用BCR,rM保持较低的DMA开销。寄存器一共为18个,寄存器的十进制序号以等效的二进制寻址,例如,寄存器l的地址为00001B。寄存器的空间映射如表3.2所示。表3.2BCRTM寄存器寄存器编号O123456789101l121314151617功能说明控制寄存器状态寄存器当前命令块寄存器(BC/MT)I描述表地址寄存器(RT)查询比较寄存器自建测试字当前命令寄存器中断记录指针高级中断允许高级中断状态标准中断允许远程终端地址寄存器字建测试启动寄存器程序化复位寄存器RT计时器复位寄存器总线监视器控制寄存器保留寄存器监视器选择远程终端地址(0~15)监视器选择远程终端地址(16~31)每一个寄存器都有其相应的功能,这里主要介绍一下控制寄存器、当前命令块寄存器(Bc, ̄盯),描述符地址寄存器(RT)、字建测试启动寄存器,RT计时器复位寄存器。其余的参见文献136]。(1)寄存器0控制寄存器的位功能见表3.3表3.3控制寄存器位号15位14位(RT3I)说明保留位。RT地址31,当RT31=0,BCRTM视其为广播命令;当RT31=I,视其为一个普通的终端地址。13位(SA3D子地址31。当SA31=O,BCRTM视其为广播命令;当SA31=1,BCRTM视其为--个有效的方式码;当sA3l=1时,BCRTM只将子地址为0的命令字视为有效方式码。12位03CTO)总线控制器超时。当BCRTM作为BC且BCTO=0时,BCRTM允许RT有16p.s时间响应一个状态字而不认定总线超时。若BCTO=I,响应时限将#232p.s。在RT操作模式下,这一位控第三章基于PC/104的1553B总线智能通信卡的硬件设计制RT之间的响应时限。为了支持MIL.STD.1553B的要求,该位被置为逻辑O。11位10位使能外部屏蔽。用于多冗余系统。该位使能E)(TOvR。BC/RT选择。用于选择BC和RT/MT操作模式,如果未使用封锁变换功能,则本脚优先于外部BCRTSEL输入设置,当操作模式,本位必须为0,该位只可写入。9位模式在BC和舢T间切换时,必须执行复位操作,对监视器(BC)在突互总线上重传。本位使能自动重试操作可进行在备用总线上。例如,A总线上有两个自动重试操作,则这两个操作发生在B总线上.8位7位5、6位4位3位2位1位0位(RT,MT)通道B允许。置该位以使能通道B操作,对BC无意义。(RLMT)通道A允许。置本位使能通道A操作.(BC)通i苣A、B选择。置该位选择通道A。(BC)重传记数。这两位标明重试次数(如00重试1次,11重试4次)。(BC)错误消息重传。使能位,总线控制器检测到错误则自动重传(见总线控制器结构一节).(Bc)超时重传。使能位,响应超时情形下自动重传。(BC)消息错误重传。使能位,RT状态字响应中的消息错误(MessageError)位被置位时允许自动重传。(Bc)遇忙重传。使能位,当RT状态字忙(Busy)位置位后进行自动重传。开始允许。BC模式下,该位启动/重启动命令块运行,RT或MT模式下,使能BCRTM接收有效命令,RT或M鼬襞作直到收到有效命令才启动,当使用本功能时:①每一个主复位或按程序复位(ProgrommedReset)后,重启BcRlM。②本位不可读,读取BCRTM状态寄存器的0位以校验操作。(2)寄存器2当前命令块寄存器∞c,MD,RT描述符空间地址寄存器(Ra3,功能如表3.4所示。表3.4命令块寄存器工作方式(BC)(RD功能该寄存器包含了正在运行的命令块头指针的地址,访问新的命令块将刷新该寄存器。主机初始化该寄存器以标明R1描述符空间的起始,主机必须分配紧随着起始地址的320个顺序地址。为了正确操作,这个地址必须从一个Ix512的十进制地址边界开始,其中I是整数位(I=0是有效边界条件)。rMT)本寄存器包含当前监视器命令块的控制,状态字的地址,访问新命令块将刷新该寄存器。(3)寄存器ll(自建测试启动寄存器(只写))任意对该寄存器地址位置的写入(即数据为任意)都会初始化内部自建测试程序并持续lOOps,用状态寄存器中的自建测试进行中状态位表示在该寄存器前操作的执行,它须有一个程序化的复位操作(写入到寄存器12)用以初始化内部自建测试。寄存器4的BCRTF置位和BCRTF脚为高电平表示有自建测试故障。BCRTMfl测试在其曼彻斯特编码和两个解码器之间作轮回(wraparound)测试。如果BCRTM在26东南大学硕士学位论文两个信道上检测到故障,它将置位寄存器4(自建测试字寄存器)的14位以标志A通道故障,或者置位寄存器4的15位标志B通道故障。在远程终端模式下,当BcRTM执行自测试时,它将忽略1553B总线上的任何命令直至完成自测试。(4)寄存器13(RT计时器复位寄存器(只写))任意向本寄存器的写操作都将复位RT时间标签计时器为0。BCRTM远程终端计时器给消息处理加上时间标签,时间标签由一个单计数的8位,分辨率为641.ts计时器产生,对寄存器13写入使得计时器复位为0,当计时器复位后立刻开始运行。3.3.3扩展内存中的组织与数据结构BCRTM可在不同处理器和存储环境中配置,主处理器通过一个灵活的可编程的中断结构、内部寄存器和一个用户定义的共享存储区域来通信,共享存储区域(最大64K字)完全用户可编程,用来同BCRTM交换控制信息、消息数据、状态/错误信息。内建立参数以便BCRTM能访问这些信息。比如,在R磁式下,BCRTM能够把与某个子地址相关的特别为MIL.STD-1553B应用设计的内置存储管理功能帮助处理器减轻负荷,主机只需在存储器数据存放在64K字地址空间的任意地方,BCRTM能自动缓存多达128条具有相同子地址的消息,以防止前面的消息被后续消息所覆盖,缓存也扩展了主处理器要求提供数据的间隙,选择适当的MCLK频率以配合系统存储访问时间要求,从而控制存储访问频度。用中断扩展集来标识用户定义任务的完成和用户选择事件。在BC模式下,BCRTM能处理多消息,协助安排消息清单,并提供诸如自动重传的主机可编程功能,应用中断历史清单特性(见异常处理和中断登录),BCRTM可以被组织进入不同中断等待时间的系统中,中断历史清单顺序地把引发中断的事件存入存储器中,防止主处理器没有立即响应中断而引起的数据的丢失。在M1书l式下,BCRTM强大的链表命令块结构允许它处理一系列被监视的1553B消息,而无需主机干预,BCRTM能够存储64K字存储空间所能容纳的总线信息量,此外,主机有能力指令BCRTM将来自1553总线上的消息按命令字和数据字分区存储,针对所选择的远程终端进行监视和存储数据,主机系统负责初始化一个存储区地址。这个存储区由总线监视器命令块组成。一个监视器命令块与BC命令块非常类似,唯一真正的差别是信息流向并且监视器命令块中没有头指针。RT方式下扩展内存的组织方式由RT描述符空间(如图3.4所示)和内部的主机可编程的寄存器构成,描述符空间仅包含描述符,描述符包含与消息传送处理有关的可编程子地址参数,每一个描述符由四个字组成:控制字,消息状态清单指针,数据清单指针,未用。这些字表明如何进行与指定子地址相关的数据传送。收发描述符均与子地址有关,描述符驻留在存储器中并由子地址顺序列出,运用描述符内的索引,BCRTM缓存输入输出消息,从而减少主CPU的开销,这种消息缓存也降低了前后消息覆盖的风险。每个描述符包含一个可编程中断结构,用于反映用户选择的消息传送的子系统情况,也表明消息缓存何时全满。在正常模式和广播模式下,使用描述符中的可编程位来实现子地址的非法化。每个消息均有消息状态信息,包括字数,内部生成的时间标签,广播以及消息合法性信息,消息状态信息按子地址存储在一个分立的消息状态字清单中,清单起始位置在描述符内可编程。收发消息数据也存储在清单中,清单的消息容量和清单位置用户可在描述符内选择.第三章基于PC/104的1553B总线智能通信卡的硬件设计SUB^酗飘E‘摹一。鞠氍哺0翻嘲SIt一It.LEGAt.BRDAUCJM;T¥DSADDRES¥也LEG^L图;●鬟坩^明RE§譬一一SUBADORESSSUB^∞RESIt娃^∞∞SEB捌TERRUPTWHEN#斟TE删阿WI●EIW%·O,sTR^NS■lTUHUSEO到幽∞硼箨S捌.t0’l●,7‘l■D0£C滩O矗傩1.sIIoDECOOEW"SEDI期西S^6ESTATUSU尊TpO雠RDATAUSTPOINTERits’矗”l—ODECo睫f’S侣a湘FORfb。fUREEXPAHS煳图3.4Rrr描述符结构及其组织BCRTM,总线控制器结构基于命令块结构和内部的主机可编程的寄存器,每个待处理的1553B消息都有一个由cPu建立的命令块(如图3.5所示),命令块包含所有重要消息和IH状态信息,也包括用户用来选择功能和中断的可编程功能位,双向连接的清单数据结构(头尾指针)使得存储器接口系统较为灵活.HEADPOINTERCOMMANDWORD2l胃■鼾ole-'ODATALISTPOItRERSTATUSWORD2(m--m"o旺"XlS8£n眭H'‘32图3.5BC命令块结构在双向联接的命令块结构中,首尾指针界定每一个命令块及其前后命令块(如图3.6所示),互联特性简化多消息处理任务,支持消息按计划处理,因为在一个预定的时间内,通过一系列传送形成回路,命令中的数据指针使得空间分配高效进行,因为数据块只须配置成消息所使用的确切字数,数据指针也增强了数据库交换的灵活性。每个命令块中有一个控制字,该控制字带有可编程功能位和消息错误位,这就可以选择单个功能并提供消息有效性信息,BCRTM的寄存器组提供全局参数和地址指针。从控制字和控制寄存器中可选可编程自动重传功能。在同一条或备用总线上的自动重传次数可编程为l~4次.下列情形发生时自动重传激活:①状态字中忙位置位③响应超时④总线控制器检测到消息错误②消息错误(由R磁态响应指明)Bc也具有一个可编程的消息间延迟计时器,这使得更易于消息传送的按时进行.计时器在控制东南大学硕士学位论文字中编程,它自动在两个相继俞令启动之间产生延迟。BC方式下还具有查询功能:BC被编程后,比较输入的状态字和主机指定的状态字.如果发现匹配位,则产生中断,中断和继续功能在运行指定命令块消息时产生中断,从而简化了主机子系统的同步。BCRTM的总线监视器结构基于命令块结构和内部的主机可编程寄存器,每个在1553B总线上(对一个被监视的RT地址)处理的消息都有一个由主机建立的命令块(如图3.7所示),命令块含有所有重要消息、RT状态信息和可编程功能位,这些位允许用户选择功能和中断。在一个互联清单命令块结构中,指针界定了两个相邻的命令块,命令块中的数据指针有助于高效的空间分配,因为数据块不必要存放在存储区连续单元中。监视器控制/状态字带有8)))位的时间标签,每个监视器命令块有一个寻址中断位、一个消息错误位、一个命令块激活位,用户访问这些控制嫩态字以决定最后运行的是哪一个监视命令块,同时,运用每一个命令块addressed)这一特性,主图3.6BC命令块组织都有的选择寻址位中断(Interruptwhen机可以决定何时使用特殊远程终端活动。甜饼样张墩C斟瞅舅匿r^弧|S'§53CO赫MAHDWO∞t1553COMMANDWORDDATALISTPOINIER目1553SIAl'USW啪'(15S39作汀US硐10}t82了剐LpO辐|rER因(目(x瞄BETWEEN,曩32图3.7MT描述符的结构与组织审目BCRTM采用的异常处理方案是基于中断块的数据结构。中断结构由使能中断产生的内部寄存器和RT、BC数据结构中的控制位构成,中断历史清单顺序存放在系统存储器中的中断事件记录中。BCRTM生成中断历史清单(如图3.8所示)以允许主机按照发生的先后顺序察看标准中断,每个中断历史清单登记包括3个字,第一个字是中断状态字,指明中断类型(登记项只用于己使能的中断);在BC模式下,第二个字是命令块指针指向相应命令块。RT模式下,第二个字是描述符指针指向相应子地址描述符;第三个字为尾指针.由CPU初始化,BCRTM读取该字也确定下一个中断历史清单的地址,清单长度随要求可长可短,尾指针的配置决定清单长度。主CPU给尾指针置位初始化清单,这使得清单容量有灵活性,而且拥有联接存储区中不连续单元的清单的能力,主机设置中断历史清单寄存器以确定中断清单的起始地址,BCRTM则在访问下一个中断记录入口时修改这个寄存器的值。内部高级中断状态/复位寄存器指明高级中断的原因,向此寄存器相应位写‘l’可以使高级中断信号复位.第三章基于Pdl04的1553B总线智能通信卡的硬件设计中断结构也使用3个BCRTM输出信号以指明一个中断事件。STDINTL:标准中断电平,当一个或多个在标准中断使能寄存器中使能的事件发生时,该信号被赋值,复位高级中断状态/复位寄存器中的标准中断位可以清除该信号。STDINTP:标准中断脉冲每当发生标准中断使能寄存器中己使能的事件时,插入该脉冲。HPINT:高级中断,每当发生高级中断/使能寄存器中使能的事件时,该信号被赋值,向高级状态/复位寄存器中相应位写入可以复位该信号。STDINTL与STDINTP产生的条件完全一样,仅仅是驱动方式的不同,一个是电平触发,一个是脉冲触发。3.3。4图3.8中断描述符的内存组织BCRTM的接口BCRTM共有84个管脚,采用单+5V供电,采用16位数据总线方式,具有DMA传输功能,带冗余总线功能。其硬件管脚如图3.9所示。支持DMA传送是BCRTM芯片的一个主要功能。具体就是每当BCRTM运行命令块(BE模式)或提供命令(R1濮式)时,BCRTM初始化DMA传送,DMAR初始化传送,DMACK无效沿到来时终止,DMA:I啮,JaI:使能(AEN)输入使得BcRlM可以输出一个地址到地址总线。BCRTM通过插入输出信号DMAR请求传送周期,当DMAG输入收到时开始传送周期,DMACK指明BcRlM控制数据和地址总线,当BCRTM真正使用地址和数据总线时,TSCTL输出被赋值。为了支持在一个系统中使用多个总线装置,BCRTM输出DMAGO信号,该信号由在DMAR无效时(没有总线请求产生)穿过芯片的DMAG信号引起,可把DMAGo用于菊花链式的多装置系统中。东南大学硕士学位论文双向f器输出_I瑚TBZ双囱输入13磁。4.-..4-14L2l'1410搿l摹L3{裟L啪RTA4r耻z:!。l‘黝l,髓柏I毒三-qp薹”生地址臻.’埘厂”“”终端地址f戤:{器:_IL硇脚”fSs功TDL哪-NTL_4-嚣咎拍札篮嚣豪警“4-A4l¨+1日墨盘蚕器嚣裟淼嚣=化_A14,|状态信号{一COMSTRI‰。4.-4。--UA2B童【辫:玎碡曰诺巧竹钍话撕诌B3三薹孓数豢绕∞饼吼弧晓”D”l¨D14J*DL'5/L‘嚣董,43^lO+D撇信号^,鋈裟RD酷雎+Al翳辨酊秘"嚣舫饼信号J‰控铺l伤lIlllD●3Wit稍射卜卜_-l电擞地弱n0就42IDC:K拼嚣岔髓-_-嚣啪一翟鬻1}j广_L弋lMRS"fEX汀OV'RRRD^旧丑旺CSlC薯‘SLRWIt越一CⅨ玎扣MCLK矗压XCSo琳盯:刚驴以兰强彬图3.9BCRTM的管脚4瑚【CL脚)嚣BCRTM提供一个简单的子系统接口,简化DlMA仲裁。用户可以配,tBC'RTM,使它工作在不同的存储处理器环境中,具体包括伪双端NRAM配置和标准DMA配置。伪双端NRAM配置是指BCRTM的地址数据总线与RAM直接相连,但与主CPU的总线之间用缓存相互隔离(如图3.10)。cPu的存储控制信号(一RD,一WR和—MEM—CSI)通过BcRlM与存储器相连(i面,瓦丽和丽瓦i丽)。第三章基于PC/104的1553B总线智能通信卡的硬件设计图3.10伪双端口配置当使用标准:DMA配置时,BCRTM和CPU数据信号、地址信号和控制信号连接,如图3.Il所示,DMA传输中,DMAG有效时将激活RRD,RWR和MEMCSO.一。,,_:◆。一一图3.11标准DMA配置在上述任一配置下,如果i函,一WR和丽际面丽信号未激活,贝IJBCRTM的地址、数据总线保持高阻态,表明主机在访问寄存器,或者TSCTL被赋值,则表明BCRTM在做存储器访问,在BCRTM做存储器访问期间,CPU访问BCRTM寄存器的企图将被忽略。在远程终端模式下,运用远程终端地址寄存器的忙功能可以来禁]LDMA传送。BCRTM使用TscTL来标明BCRTM正在访问存储器或者CPU可以访问存储区,AEN也给CPu控制BCRTM地址总线的能力(用法可选),DMABurst(BURSn信号标明多路DMA访问。BCRTM的曼彻斯特Ⅱ型编解码器直接与1553总线收发器接口相连,其中对通道A用差分信号TAO-TAZ和RAz.RAO,对通道B用TB0呵BZ和RBZ-RBo信号。图3.12防故障信号BcI汀M也输出11MBRON信号以及有效通道输出指示端(CHA/百),以满足MIL.STDqSS3B的防故障计时器要求(如图3.12所示).东南大学硕士学位论文3.41553B总线收发器63M125[37】IrrMc公司的63M125采用采用DIP36封装,在一个芯片中集成了两个通道的收发器,每个通道的接收和发送可以工作,其引脚如图3.13所示.芯片需要+5V与士12V或士15V供电(根据使用的变压器与耦合方式的不同).1xO订"iXoUTGHOf23t0口7毒9一101112'3州t3‘36私CHANNEL33BHCRXotitRXE辩O峰D^轻31302口默oL,T■C1XoIrr1XoLlTG翻D拊CRXOUT需=豫熏‰TXlN抽27,2B2524TⅪ挝1)‘IHBVCCCHA眦LB¨1事16'7232221VEEGNDRXINl找EHGNDRXOU'fNC2B111RⅪNVcc^'矗o图3.1363M125的管脚63M125,总线收发器由发送器和接收器两部分构成。空闲态时编码与解码接口为低电平·其内部结构如图3.14所示。其发送器部分,接收来自协议芯片的双向调制曼彻斯特II编码的数据,并将数据转化成差动调相电流驱动,发射器电流驱动源通过差分输出驱动的变压器耦合到1553B总线上。'I'X/HB赋值‘l’可以使发送器处于非发射状态,日[JTXII-m为‘0’时使能发射器。接收器部分在差分输入端接收来自1553B总线的两相差分数据,并将数据信号换成为TTL申,平,输出到协议芯片BCRTM的差分输入端以供解码。RXEN为高电平时使能接收器。63M125的输出可以通过直接耦合或者变压器耦合的方式连接到1553B数据总线。设计中采用的廷直接耦合,收发器供电电压为土15v,相应的隔离变压器的电压比应为1.4:1,隔离变压器使用的具体信号为DDC公司的BUS.25679。33曼三兰苎王!型!塑堕垫璺垡塑丝堕堕主塑堡堡丝盐R)Ⅻ竞砌N∞鼠RX埘1,xo%n.Txo”:一C。g--司H。I图3.14l||一T捌月∞■目∞加Ho啪63M125的内部结构3.5ARM处理器与常规外围器件的接口设计ARM7处理器S3C44BOX由于内部没有集成程序存储器,一般都要外扩FLASH:程序存储器。此外,由于其具有SDRAM控制器,一般都选用SDRAM来提高内存读写的速度。为系统调试方便,还常常扩展网络街口和串行接口。3.5.1ARM与FLASH、SDRAM存储器的连接S3C44BOX有8个存储器Bank,每个Bank容量为32MB,共256MB。支持多种存储器,包括ROM、SRAM、SDRAM等。本系统外扩了一片512KB的FLASH程序存储器SST39VF040,还有一片8MB的SDRAMHY57V641620。SST39VF040在Bank0,它的地址范围分别为Ox00000000~0x0007FFFF。HY57V641620在Bank6,地址范围为0x0C000000~Ox0C7FFFFF。SST39VF040与处理器的连接如图3.15所示,它的数据宽度是8位.A0~A18分别与处理器的ADDR0~ADDRl8相连,DQ0~DQ7与最低8位数据线相连。片选信号与GCS0相连。ilIl『lIltmf}}I【蹦l}l^dAI¨:liI}i|n旬QD口ll{llI{I}lDJDJDJD-Il艳∞D肋}扫lADDRl}nlljl1.}15}l,l18;}19k抖‘l{}口lfB}I*j}匹i西l汀ifil}J}衄D丑3l口I{如D斟:8{{ADD站;,{}^DDm}8li^DD时lj{l^DDR8l甜il童oDE926|ADDRl0;站;ADDRll船IADDRl2l}|ADDR2j加|船,:站。Aj.AS:.:D02二D∞D0j^‘+-:“。’DQ中i’:一:‘D0《DJDJDJl耸}2ljI}ll}}盯、^¥5.AIO^Il7^lj、,,i·Dq7nJI}lI|fBE0l^擘7,’。|i一堡.12I:i:I}:{3Ill|IOX}∞DB垤∞IADDRl《∞j|ADDRIj3l^DD窟1《2。。:罚甚舢3A14A16^王7^i8A15。:7{螂n盅lI}^DDRlg30!niJ撩7。一∞优C{16I0l}lIlf}II}{l{!J}lj}‘=Pl{llf}l{l}lllflllill{鞠B霸捌H4I{ill}fl}IIl图3.15FLASH存储器的电路34东南大学硕士学位论文HY57V641620是SDRAM,与处理器的连接如图3.16所示。SDRAM的地址分为行地址和列地址,依次通过地址线输入,在芯片内部组合后形成内存单元的完整地址。它的控制信号比较多,有行列指示RAS、CAS,时钟输入CLK,CKE等,其访问时序可用软件设置,以适应不同型号的芯片。SDRAM是易失性的,需要不断对内容进行刷新,S3C44BOX包含的内存控制器有自动刷新功能,不需要外界的干预.Il}llll}f}}ll}SC.嚣gC姬f|l出|tIj鲫D&1}}窑}2/d)DR2jI}}l}fllI}0引{llI}{l{If}Ill鲁l如l细D站!’拍ll∞DR4{l密llⅫD盘5{}由ll∞Dt6}I蜘!l迪DDR?i}瓤}n船D日0D0i}}抖}{鑫斜NJ_D删l4}li}■{I7Il{el;16}l}ll{IlIfllllIl{l}}l站,j”邶~-D02::ZDQ3DO●D《嘴l|i}f}D^m朋j¨¨t:~‘,DAT^4;{l如D船}}鞠}}Z.17D动II豁{}).DDRl4|搿}}∞DEll}妇l2ADDRl2j弱l甜’、~一.D口?筒pQa站D∞^10l强,DQl0All<。:一D驰D06DA恤iDm蜥lfl1;l}D^TA7l";iH}i{¨lil”}{I搴I{珀lljlD删{Inmlo{lD^TAll‘DATAl2‘DATAl3DATAl4DJllll|IfI|r{f|{{}iD^T船{}l船D船4}Il一亡。lD口11l|l|弼l{}}}I努l强矗D】口ll瑚l^I。,。,DQl2cLK,D013CK野D0l‘D口lj0DOMC站≈C童S】{iili瑚}.I}}留lvjl自|=f。BA…’R^s。…一jC^sCS}岛ll,!蹦L5峨Ecf}+li}l毋¥6-·UDOM魄l}IIf{l}}l{弗l=}i}a『illl|.1i{94,N口聊硒SWE。,o:NC啪~VI>D’}封jl帅4;玮o2}个}4l=÷==哪E】}{{lfiI}密}∥V蹦}}辔{I移}l诲SVDDQ,..,、韬90ⅦDQ;‘、,碾sqⅧ口j冀l{6}I|l々l}|{l;!f}ll]{f}j『IiwDQ珊DQ铘0wQl{l粕ll盟jlIl}IlIIllIlIlIllfllI}11i”两}162碟jlj}{Ill}{}{l}l}IIIlIllIllI}lll{‘=F。llf{【IiVI{llllll}l}}l}l;llll}il图3.16SDRAM部分的硬件电路3.5.2ARM与网络芯片的连接扩展的以太网络芯片为REALTEK公司的RTL8019AS,RTL8019AS是高度集成的以太网控制器,内部还集成10BASET收发器,能够自动检铡BNC接口和AUI接口;此外,其内部还有16KBSRAM,这样的设计不仅提供了更多友好的功能,而且节省了主机的SRAM存储资源。该完全芯片支持IEEES02.3协议,数据总线接口可配置为8位或者16位。本设计中使用16位数据接口方式,与处理器的连接如图3.17所示。SA0~SA4分别与处理器的ADDR0~ADDR4相连,DQ0~DQ7与ARM处理器的低16位数据线相连,AEN端与ARM处理器的BANK3片选信号GCS3相连。对于RTLS019AS网络芯片的操作是通过读写其内部的32个寄存器来完成。使用的地址范围为Ox6000000~Ox600001F。RTL9019AS的中断输出接处理器的外部中断l。8019AS芯片的网络信号的输入输出通过隔离变压器在接到RJ45网络接口。扩展网络芯片的目的主要有:(1)方便调试ARM处理器可以通过boofloader启动,bootloador具有从网络接口下载程序的功能,这样开发是可省去来回插拔并重新烧写FLASH芯片的过程,另一方面也可省去购买JTAG仿真器的费用.(2)增加了系统的扩展功能设计的1553B通信卡是一块智能卡,通过合适的程序,它具有脱离PC/104总线而工作的能力,因此,此时的该卡就具有了TCP/IP和1553B协议转换的功能,扩展了系统的使用范围.第三章基于pal04的1553B总线智能通信卡的硬件设计圈3.17网络芯片连接电路3.5.3电源、时钟与串口S3C44BOX的外部接口供电电源应为3.3V,ARM7TDMI内核的电源为2.5V,因此需要两路电源变换模块。系统的输入电源是直流5V,采用的电源变换芯片为1117.3.3V和1117-2.5V。输入端与输出端都加了去耦电容,以保证电源的稳定输出(如图3.18所示)。I.lIIlIfttlIIll}I2llllll1ll}IiI弭|ll{l{llI}}13}D3|;1IM^DJ.瞄NDl{1}OOT4TAB}i{}}l}lll}∞C}辨C印3矿lli。ll}一卜卜一氇靠封盘}I}I{{;}llfi=}=藩一}一陲皇瓣{fjl}llillI.==_llll{{}}i}墨逛~!弓L1{lll7喀s霄.3;3{l{}lf}p4}ljlJ{|l21lllfllll{{…oaE…科:纛,1…TABl|tL霹1117《s率2i5Il{llilj{l{ll}llj}IIljiflII厂l¨:r1Ill{llI|l{F-ll}f.|了札毋矾苇cpI錾=2写甲Il{{~《=i:i诺~一l==}}}I{}{l=-il{l}l}ll藩瞧昂帮{l_=i图3.18电源变换模块S3CA4BOX需要10MHz的主晶振,主晶振的信号经芯片内部锁相环倍频后最大输出66Ⅻz信号,驱动处理器工作。S3C44BOX的串口O通L立MAX3232进行电平转换,与外部的智能设备相连,收发数据,连接的信号有lU(D和TxD,没有使用串口的流控信号。相关电路如图3.19所示。东南大学硕士学位论文泓I1}嚣玎量Ull!!{ll!ill斗梢制{ll}J1ll十}哔一=酗#}’啦FI—r一器{l{iIlj【—聿‘II‘li如{}:{1个B;l:::=:=1jl’j’i-l持}{I{|c勰Jpj口,,fll■¨。tIl{iIi}1兰吒’黑湛挝哥丰·十抖狂鞭糍熊榭={一塞一黪,谨}№2耳lljll—fII{ILL【}Il}l{iI}};r—l开卜&出警。j’Ii{{“J+H+妊瓷-t“捧专I{ll}抖陆I’瞄}i|!壤I{fllI!II}fII珏ll鼽W;l{1IJll}1I!i{Il{{,‘:l{I蚶皤矧赫嶙j{l|}÷3III'}I}ll{l:o{{i}I}l-}}i{l}I}忤件图3.19晶振与串口电路3.6A删垤处理器与1553B总线器件的接口设计ARM处理器与1553B总线芯片的接口设计主要包括三个方面:(1)ARM处理器与协议芯片及其外扩的64K字静态RAM的数据总线连接;(2)协议芯片与收发器及其隔离变压器的连接;(3)处理器与协议芯片的DMA控制信号的连接。3.6.1处理器与协议芯片及其外扩RAM的数据总线接口设计1553B协议芯片BCRTM采用标准DMA配置,处理器的数据信号、地址信号和控制信号与BCRTM直接连接,处理器与外扩的64K字静态RAMISSl64C16的数据信号和地址信号也采用直接连接,而64C16的片选,读写信号则是通过BCRTM来控制的。如图3.20及图3.2l所示。RT0~RT4用于设置RT地址,在卡工作在RT方式下有效。地址范围为0~30(31为广播地址),RTPTY为地址的校验位,采用奇校验方式。BcRTsEL为工作模式选择管脚,用于选择是工作在BC方式,还是工作在RT或MT方式。这些信号都使用跳线的方法来设置。工作模式和RT地址的选择也可以通过寄存器来设置,寄存器设置的优先级高于外部跳线的设置。当处理器选中协议芯片BCRTM的cs引脚(为‘0’),表示这是对于与BCRTM寄存器的操作,此时控制RAM的RRD,RWR和MEMCSO信号均为无效状态,RAM的数据线保持高阻态。当处理器选中协议芯片的MEMCSI时,表示这是对于外扩RAM的操作,此时协议芯片的RRD,RWR和MEMCSO将会有相应的输出,以完成处理器对于外扩RAM的读写。协议芯片的中断引脚有两个。一个是高级中断信号另一个是一般中断信号,分别接处理器的EXlNTO和EXINT3。『f}l}If{ill{lllllllt{Jl}l脚{l{斟阱{l{13玎肆lll。i二罐瞪眵l瞪暑零??毫:鼬.巨瀚瓣戮㈣l第三章基于附104的1553B总线智能通信卡的硬件设计}i【I}lll{Ii}j}lI{i『iIlⅡ司lfl『l}Il{i{—《晤—硫:ML∞{j^aIlMl:Mjm{r舡『{l啦;q0II『IMl.MLVai.脚{j璐l啉{IMCL茸Ili{li{珥i}I阱{BaHK强i擎}{岱{{}i{ll—f岱l醛{t邸ll埘{ij坤{。o{l蝴t贼伯0T口ⅫMCLl£HCLl=j蟛{口饼舶l}“i{!聃I麟nIl'l!印ll}ll{j}I目囊H事l坤{{功{}船ll耽I·丌{{B8l^I{llllj姗{算!i—}一.rn口{l昂lij{l}ll镪。档l}口o£!《ll}l士二l—l--IrllI{llJl|j}j-j{ili{}{}I}ll{{l}llii{lll|姑{l{11雾一Iqji{iI:;图3.20+}}毒{丰}粼菇+}|;l{l篙。;一器书号苍绺}垃ij}l{l墨DDRl-4*}ADDR342{71D《T/,(3一l{IIJLkilba嘲l{il{ll{i}l}liI{1553B协议芯片电路liiI,Il.1{l|II}l{ADDR4搿fI氧删)R5筠{l缸DDi%6筇l}ADDR82|I{2l’^,…∞D口}10DATA3j*.DDR7“…栅书瓣搿并手二WD8}ADDR,∞{i手绦磐千;t1312DAT^la-l。323:Tlll}{一{^日0R125{ADDF。13_’}aDDRl4,I^13Dr3藕i。。i}MEM—RD4l,f∞DRl6+lA廿D坫鬻番葬{n33j{Jl}1}MEM—W砒?{甜。,一∞D基÷j。:等÷_~rI{ll{l’±}l}}l1:lll{l}{I沌甘}}~{34:Ilj一{寸鲁{十}‘≯笙譬笙”渊一:常鞲二l{l}l一}l{l}l图3.21BCRTM外扩RAM电路3.6.2协议芯片与收发器及其隔离变压器的连接收发器选用的是UTMC公司的63M125。收发器到协议芯片的输入输出信号线分别与BCRTM的对应接口相连接,各通道的TXOUT的正端与RXIN的正端相连,TXOUT负端与RXIN负端相连,分别作为BUS+与BUs一信号.此外,还特别地将输入输出使能信号线与ARM处理器的通用I/O口东南大学硕士学位论文GPC,-6、GPG7、GPFO、GPFl相连接,以实现处理器对收发器工作状态的完全控制。收发器对于1553B总线的输入输出接口(BUS+,BUS·),通过隔离变压器BUS一25679接到总线上。变压器与收发器连接的一端(2号管脚),必须接参考地,否则会造成收发器无法正常工作,如图3.22所示。每个变压器的两根差分输出信号上还需要串接55欧姆的电阻再接到直接耦合方式的1553B总线接口上。}II{i}l}l.{lljj|Il}l}}tl1l}.}}l}}l}l’ll}}l}fI{1}lll】.}itl韩{}35I,}3.ill.;}}}1l}『jIIll{{§tl口}=f】{ll{{}lml}{l引{}}};I戡rt0}-刊毒一一0一l帆jBHp吲{}il}}l}IIl{l}{一蚓乳BUBI强}口l台}珥{bf茹l汀{婚l毋lⅡ0IⅡ-、口ⅢTX0t,TT】口}拱}∞ⅡⅢ∞∞∞一㈣RXOWNcf脚}^皿IlkBI咎l}{llt;1}l饥B吐¨l》~融a蹦{。.1一l}托VCCEX0ⅡrⅥE}站{Ji}l诒{{l}3l【}l{30{29}∞{{}I21'li。工≥鞋。壹≯tlijl+-V+…———。~’{{{l}}l67o..’r’I≤芝矗l^}噶.}^Bt罄q,;i}}jltj口N8讯嘣+jlll.}1B镕l}j目t】宕科l如{11lCn,WC^I'l{OlJ'PZ甜Ncl相’删l砧}}BB啦拈曲9;}ll}lij}们Il{t}II簿l25一锚_.o.1一%室H}:}珏{*Bl16lnln蜘Wc,甜{2;l:}l‘}l‘BB∞㈣∞l嚣l:2I{#事’1’i}}1}l1}}llljIL【i}0专融illf}l}llB墙·Bu什}lf};I}】l}l{ll各lltyj耵{聃llllllIllil20};j;f;咖幻f}l}lINc∞Wc^I埠1{lI{{Illf}l}llIiIl}llll.L一§}I。.{{l}专+lI{l‘ll}l{f}I|Illl}IIlll’l}ll}1;fII}tIllIfI}fl}B】哪#“}lfflf|ll}}}f7睁l{flfllj;llilll{l}l}lI}}乏一}ill璐御9{l}li一llB缸+}{图3.22收发器变压器电路3.6-3基于CPLD器件的DMA接口匹配电路的设计每当BCRTM运行命令块(Bc模式)或接收到正确的命令(RT模式或m模式)时,BCRTM和外扩的RAM之间都要进行命令字、数据字或者状态字的DMA传送。这个过程能否正常进行将直接关系到整体硬件设计方案的正确与否。BCRTM的DMA过程主要通过这几根信号线完成;DMAR(DMA请求),DMAG(DMA应答),DMACK(DMA确认),TSCTL(指示BCRTM正在访问内存).具体的DMA过程为:BCRTM通过发出DMAR信号申请DMA传输,在收到确认信号DMAO后,开始进行数据传输。DMACK有效表示BCRTM已控制数据和地址总线。当BCRTM开始驱动地址和数据总线时,TSCTL输出信号有效。DMA过程的时序如图3.23所示[361。第三章基于Pc,104的1553B总线智能通信卡的硬件设计而A砌vI处理器S3C44BOX的外部总线占用的DMA接口则仅仅由两根信号线完成;XnBREQ(外部总线占用申请),XnBACK(外部总线应答)。整个外部总线占用的时序图如图3.24所示刚.图3.24ARM处理器的外播总线仲裁时序通过比较发现,BCRTM与S3C44BOX之间不单单是DMA仲裁信号线的数目不同;总线申请,总线应答等信号的时序也不完全匹配。对于这个问题的一种解决方法是:直接采用伪双端NRAM配置,并且采取自申请.自确认方式,即将DMAR与DMAG短接,并通过上拉电阻将其电平拉高。BCRT的地址和数据总线直接连接SRAM,通过缓冲器将BCRT的总线和处理器的总线隔离。处理器的RAM控制信号(RD,WR和MEMCSI)通J,立BCRT与sRAM连接。电路采用TSCTL信号实现BCRT与处理器访问外部SRAM时的柏东南大学硕士学位论文总线仲裁;在BCRTM和SRAM进行数据传输期间,处理器的存储器读写信号将被忽略,直至BCRTM对SRAM的访问完成。p日但是这样的方法有蓍明显的缺陷,就是处理器对于和存储器的读写可能被忽略,而且这种忽略不是完全可控制且可预期的,这可能带来系统的不稳定,而且产生的后果也是不可提前估计的,对于可靠性要求很高军用系统,这种方案存在隐患.的思路如下:使用标准DMA配置,面函函,—DMA—CK相与作为XaBREQ信号,在XBBREQ有效用VHDL语言来实现。都分关键代码如下;breq<=dmaranddmack;为了彻底解决这个问题,本设计中考虑用一块CPLD来完成两者DMA接口互连的问题。具体的情况下,XnBACK为·0,,同时丽沅信号为·1,的时候,—DM—AG信号才为一0’。具体的CPLD程序busg:process(back,tsctLdmareq)beginif(bdmareq--'O')thenifOacl一-0’andtscg--'lI)fllendmag<_-0。;elsedmag<2’l。:endif;elsedmag<=’l’:endif;endprocessbusg;通过在AlteraMax#usⅡ软件下编译仿冀可得到仿真时序如图3.25所示。通过仿真看出,该方案能够满足协议芯片和ARM处理器的DMA时序要求。图3.25CPLD的DMA过程仿真时序CPLD器件使用的具体型号是ALTERA公司的EPM7064S。除了完成DMA接口的匹配功能,还完成一些地址译码的操作,管脚分配如图3.26。通过CPLD程序,ARM处理器具体的地址分配如下:(1)双口RAM地址,0x8080000~0x8083FFF,共8K×t6bit。(2)双口RAM的信号灯地址,0xSOA0000~0x80A000Ft每lK字一个,共8个。(3)协议芯片寄存器基地址为0x4080000。16bR寄存器,共18个。(4)协议芯片扩展RAM地址,0x40A0000~0x40BFFFF。共64K×16bit·4l第三章基于paI“的1553B总线智能通信卡的硬件设计图3.26CPLD电路ARM译码部分的VHDL主要代码为:armbcrtcs:process(gcs2,armada)begm/,协议芯片与外扩RAM的译码进程if(gcs2='0.)theni坟armad&2”100”、thenbcrtcs<_’0’;bcrtmemcs<_’l’:cbif∞maddr“。10t”)thenbcrtcs<_’1’;bcrtmemcs《=-of:elsebcrtcs<=’l';bcrtmemcs·《=’l‘:end难el∞bcrtcs<-’l';bcrtmem∞<-’l’:end难endproce嚣armbcrtcs;armsidecs:pfocess乜cs4,armaddr)/,双口RAM的译码进程begmi地ps4=.0t)tll吼ifarmaddr=”100’’、thenamlc¥<=’0’;armsem审’l:elsif细Tnaddr“。101”)thenarmcs<-’l';arm∞m<-’0’:elsearmcs<=’1';armsem<-’l‘:end硷elsea衄cs《=’l';arm靶m《=’1’:end难endproo嘟armsidecs;42东南大学硕士学位论文CPLD译码逻辑部分的时序仿真如图3.27所示。图3.27CPLD的ARIVl地址译码部分逻辑仿真3.7ARlVl处理器与PC/104总线的接口设计PC/104总线[3913.7.1PC/104总线是ISA(IEEE-996)标准的延伸。1992年PC/104作为基本文件被采纳,叫做IEEE-P996.I兼容PC嵌入式模块标准。PC/104总线是一种专门为嵌入式控制而定义的工业控制总线。IEEE-P996是ISA工业总线规范,IEEE协会将它定义为[EEE-P996.1,PC/104实质上就是一种紧凑型的IEEBP996,其信号定义和PC/AT基本一致,但电气和机械规范却完全不同,是一种优化的、小型、堆栈式结构的嵌入式控制系统。其小型化的尺寸(90×96ram),极低的功耗(典型模块为l~2瓦)和堆栈的总线形式(决定了其高可靠性),受到了众多从事嵌入式产品生产厂商的欢迎,在嵌入式系统领域逐渐流行并得到广泛的应用。全世界约有200多家厂商在生产和销售符合PC/104规范的嵌入式板卡。实际上,早在PC/104规范诞生之前,在1987年就产生了世界上第一块Pdl04板卡,由于其固有的优点,在国际上制订统一的规范之前,一直有许多厂商在生产类似的嵌入式板卡。到1992年,由业界著名的RTD公司和AMPRO公司等12家从事嵌入式系统开发的厂商发起,组建了国际PC/104协会,得到了全世界众多厂商纷纷响应,从此PC/104技术的进入了快速发展。PC/104来自于实践发展的需要,自身在随着PC技术的发展而不断地发展,并且有着众多厂商的支持,使得PC/104技术具有天然的旺盛生命力。PC/104总线凭借紧凑的外形、成熟的标准体系结构,专业设计,专业生产带来的高可靠性,将广大硬件工程师引入了一个更高的层次,标准的PC兼容体系结构大大减少了软件工程师的工作量。模块化、通用化的系统更易于维护、易于扩展、易于系列化、易于升级。大大减少了重复学习,重复开发的成本。目前,PC/104产品已经被广泛应用于商业、工业、航空以及军用等领域,其在商业及商用现货领域作为嵌入式系统理想解决方案的这一主导地位,已经得到大家的一致认可。“堆栈型Pc”已经被证明是一种能够广泛应用于各种场合的坚固的、可靠的及高性价比的嵌入式系统解决方案。所有这一切决定了PC/104产品的发展前景无限光明。众多厂商及广大用户对“堆栈型PC'’的青睐使得PC/104产品能够方兴未艾,并且长久不衰。由于PC/104系统与传统Pc系统的兼容,并且具有丰富的开发工具和软件资源,使其成了广大用户最喜欢的选择。PC/104总线具有非常灵活的模块化配置功能。开发者可以根据自己的需求,准确选择他们所需要的功能模块,用于构建自己的系统,还可以为系统配备极其坚固的外壳。用pC/104模块构建的系统体积非常小巧,但功能却十分强大。PC/104模块板的功能十分丰富,包括CPU、I/O、DSP.无线网络以及GPS等等。用户在桌面PC系统中能够找到的每一种功能,都可以在PC/104系统中实现,并且软件也易于配置.PC/104系统可以运行DOS、Windows以及众多的实时操作系统,这些特点使第三章基于Pdl04的1553B总线智能通信卡的硬件设计得PC/104系统的软硬件配置实现起来非常容易。3.7.2双口RAMIDT7025[“IARM处理器与PC/104总线的接口采用双aRAM的方案,具体使用的是IDT公司的IDT7025。{{+—‘i++一群薛群摹解蘼雕孵薛孵释群黼黼★一一}牛冀釜:塑蕊}碧;霹雷;i器罄挈莺;粤i魏目;嚣.鬯髻嚣鹱l巳—t』I}毒燃捌燃熬糍壹鲑~j一}阡一-丹;}I;l;Il}rfi乜}}圭=斗Hi|HI;lj南}ll}I‘I簿…1盯昔-4-。,∞,、j’。辟’q叶’’o矿盹C}毒}+一L~瞪≥§嚣鳕§7幻:I口。口D口口口口耋燃=}:{鹱避鳇_L.一l’l十H{}i}{l}黼蒸黼《●·}0j:麓弱*-Iz.I。1吕睦埘睦I÷~1一一糕}十卜一}1|}譬+卜+一+}_l1辑}霉:HIIj图3.28双口RAM电路IDT7025是8KX16bit的静态高速双端口RAM。使用该双口RAM的优点在于:ARM处理器与PC/104间传输的数据为16位字长,与8位传输方式相比,位宽变宽,同时指令周期变短,可以大大减少数据交换时间,降低通信卡的资源占用率。双口RAM与PC/104总线的接口如图3.28所示。IDT7025具有两组的数据总线DL0~DLl5,DR0~DRl5和地址总线AL0~ALl5,AR0~ARl5以及相应的控制信号线,它允许主从两个处理器同时访问双端口RAM中的不同单元。使用双口RAM的关键是解决左右端口同时访问同一个双口RAM单元时的竞争问题,最常用的方法是采用Semaphore(信号令牌传递方法)。此外,借助于中断方式下的邮箱设置,也可以解决可能出现的左右端口竞争问题。Sem@hore为专用的令牌环端口,左右侧均有SEM使能控制端。当一侧的处理器向双口RAM申请令牌时,要以向指定端口写入‘0’(此时,端口地址的A2~A0代表令牌号),外围译码逻辑置相应侧的SEM为低电平,DO位写入相应的锁存逻辑单元,然后立即读出该端口数据,检查是否申请成功(是否为‘0’)。IDT7026共有8个令牌环端口,每个端口代表1KX16bit的内存块,采用Semaphore寄存器来指示各个RAM块各被那一侧的处理器占用,如表3.5所示。表3.5双口RAM令牌环-单出n岫b再XHXHLX琵HXHXLL嘣HH醒LLXXXX匿XHXHXL硼LLLLLLIlOlt^|I强lA0m‰捌哪咖lMlhoerReed■妇酬轴Ⅲph№Fbg汹0ulsewp}I№嘞嘶∞Seraeoh№fie9Oh]帅mttXX附础n釉蹦伽掰m慨‰抽sem∞胁fleglmilegOohb№}罔b孵dtier^h噼d如果用户选择使用IDT7025的中断功能,则分配给双口RAM每侧一个存储单元,该单元称作邮箱或消息中心.如表3.6所示,当右侧处理器向右侧地址为0xlFFE的存储单元执行一次写操作,“堡塑奎兰堡主竺垡丝苎左侧的中断标志信号i浔瓦变为有效;当主机响应中断后,可以向地址为OxlFFE的存储单元执行一次读操作来清除中断标志信号两瓦。同理,左侧处理器可通过0xlFFF单元设右侧的雨i聂中断,右侧对该单元的读操作也可清五丽中断。telPmdhLxX表3.6双口RAM中断设置日咖RmALJal1FFF馥LXXL巍XXXL翦fLXX确kXX獭xLLX蕊X^■晴‘一X1FFF丙k巾|一FnSet哪怖R叼Resel哪融嘲SetXX1FFE—I—LXXX'扦EXxLettR?LFhgX船Ⅻ城赫L硼双口RAM的中断信号与PC/104的中断信号电平不一样,PC/104总线为高电平中断,所以CPLD中还要完成取反的功能.在ARM处理器端,双口RAM使用的地址为0x8080000~0x¥083FFF.3.7.3译码电路与16位总线模式的驱动由于PC/104总线地址是以字节为计数单位的,而双口RAM的每个地址却表示一个16位的字,所以,PC/104总线上的A12~A0不能直接接到双口RAM的对于编号的ALl2~AL0上,而连接的应为PC/104总线的A13~A1.由于PC/104总线采用的是16位数据总线方式,就必须考虑MEMCSl6信号的处理。根据ISA总线规范,MEMCSl6是存储器16位片选信号,如果当前传输的是16位的存储周期,必须发MEMCSl6信号给主机系统板,并且该信号的译码须取自LAl7~LA23。由于LA地址信号是从LAl7开始的,所以如果单独由LA信号译码产生MEMCSl6信号,则该内存块至少占据128KB,由于主机系统提供给PC/104板卡可用的地址空间有限,使用的PC/104主机的IM的基地址空间中,保留部分内存,BIOS空间,显示BIOS空间已经占据大多数寻址空间,而使用的PC/104模块能提供的只有,OxCCOOO~OxDFFFF的88KB地址段【4“。所以如果使用LAl7~LA23最小可寻址的0xC0000~0xDFFFF段,必将带来冲突,所以完全使用LAl7~LA23译码的方案不可行。由于关于ISA总线定义的IEEEP996仅仅是一个草案,并不是强制性的标准,各个公司所生产的南桥芯片组所遵循的ISA总线标准也略有不同,虽然彼此能尽最大能力的保持兼容【4目。通过参考以往的一些ISA板卡设计厂家的方案与经验,在目前主流的南桥芯片计算机系统中使用总线上的SA地址来完成MEMCSl6信号的译码也完全可行1431[,M1。所以本设计中,使用SAl4~SAl9来完成MEMCSl6信号的译码与双DRAM的片选操作。该工作也由CPLD来完成。8KX16bit双DRAMⅢT7025在PC/104主机中的地址范围为0xD0000~OxD3FFF。遵循PC/104的标准[451,MEMCSl6信号管脚的漏电流也有着一定的要求,要能够达到20mA的标准。所以设计中使用了一片三态门74125来驱动,输入为低电平,用译码产生的丽瓦两i话信号作为门控信号。该信号的处理必须要注意,如果单独用CPLD的信号来直接驱动可能造成系统无法正常工作.3.8双路1553B总线通信卡的设计改进在多层结构和等级结构的1553B系统中,需要一类特别的节点,就是要求能够具备两路1553B总线接入功能.实现该节点设计的关键在于需要在一块板卡中集成两个协议处理器和与其配套的接口芯片。3.8.1双路DMA优先级控制器的设计为了扩展两个1553B协议处理器BCRTM,使用了CPLD完成片选地址译码的工作,地址线与数据线的接法与单路基本相同。.而实现双路的关键在于两个BCRTM芯片的两路DMA接口的实现。要解决的关键问题主要有三个:45第三章基于PC/104的f553B总线智能通信卡的硬件设计.(I)需要实现两路DMA控制,而ARM处理器S3C44BOX只有一路外部总线占用申请的接口:(2)一路DMA在进行的过程中,并且ARM处理器已经释放总线控制权的情况下,对于另一路DMA的申请必须不能批准;(3)双路DMA同时申请的时候,需要有一个优先级的控制,以避免相互等待而造成的“死锁”。为了解决这三个问题,仍然使用了一片CPLD来完成一些匹配控制功能.具体解决的思路为,双路的DMA申请相与作为总的到ARM处理器的DMA申请。当一路DMA正在进行中,对于另一路DMA申请不相应发回两磊石信号。当两路同时申请却还没有进行DMA确认的情况下,使其中的一路得到总线控制权。通过编写相应的VHDL语言,实现了提出的各项要求,时序仿真图如3.”所示.从图中可以看出,在提出的三种特殊情况下,CPLD都能够完成DMA总线控制的功能。图3.29双路通信卡的协议芯片DMA仿真3.8.2其他部分的改进设计与单路相比,双路设计除了DMA控制部分,其他还有一些需要调整的地方。8I(的双I=IRAM在双路的应用中可能显得不够用,设计中使用16KX16bR双口RAM,IDT-/0261,占用地址空间为0xD0000~0xD7FFF。使用CPLD来译码。ARM处理器一端的译码工作也由CPLD来控制,具体的地址分配如下。双口RAM地址,0x8040000~0x8047FFF,共16KX16bR。双口RAM的信号灯地址,0x8060000~0xS06000,每2K字一个,共8个。一通道协议芯片寄存器基地址(』堰M端地址)为4000000。16bn寄存器,菇18个。一通道协议芯片扩展RAM地址(ARM端地址),0x4020000~0x403FFFF。共64K×16bR。二通道协议芯片寄存器基地址(ARM端地址)为4040000。16bit寄存器,共18个.二通道协议芯片扩展RAM地址(ARM端地址)’0x4060000~0x407FFFF·共64K×16bit.3.9小结本章首先提出了1553B通信卡的总体硬件结构,然后在对三星ARM7处理器S3C44BOX、1553B总线协议芯片BCRTM和1553B总线收发器进行简介的基础上,讨论了基于PC/104的t553B总线智能通信卡的具体硬件设计,主要包括:ARM处理器与常规外围器件的接口设计;ARM处理器与1553B总线器件的接口设计;ARM处理器与PC/104总线的接口设计。最后,对于双路1553B通信卡的硬件的改进设计也进行了探讨.第四章1553B智能通信卡的程序开发第四章1553B智能通信卡的程序开发本章讨论1553B智能通信卡的程序开发,主要包含两个都分:第一个郁分是通信卡上ARM处理器的程序开发,第二个部分是通信卡在基于PCIl04的VxWorks环境下的驱动程序开发.4.1软件设计方案基于需要完成的功能,需要对PC/104主机和ARM处理器的任务进行合理划分。为尽量降低主机负担,体现智能卡的优点,设计中将要实现的对于资议处理器的操作功能进行模块化设计,由ARM处理器用一些底层函数接口来完成。通过合理的对于双口RAM的内存空间分配,PC/104计算机仅需要完成一些基本的初始化、控制的任务接口和基本的数据传输。智能卡与PC/104主机采用双口RAM提供的设置中断的方式来触发具体事件的产生,进一步降低了双方处理器因不断查询事件带来的负担.4.2智能通信卡上ARM处理器固件程序开发4.2.1Al≈M处理器固件程序的整体结构设计实际硬件中,ARM处理器使用了三个外部中断:EXINT0,EXINT2,EXINT3,分别对应于协议芯片的高级中断信号,双口RAM中断信号,协议芯片的标准中断信号.ARM处理器基于中断来完成相应的操作。中断发生时,ARM将根据三个中断信号的不同,自动进入相应中断处理程序,中断程序首先是判断产生中断的事件,然后根据事件的不同进入相应的处理,可能是主机命令的执行,也可能是与PC/104进行数据的传输,或是向主机报告特别事件的发生等。协议芯片高级中断类型包括:数据越界、(Bc)非法命令、动态总线模式码、自测失败、BC任务块结束等。标准中断类型包括:(RT)非法广播命令、(RT)接收非法命令、BC查询比较匹配、BC重传失败、消息错误等。双口RAM设置的中断类型包括:卡复位、模式设置、地址设置,BC命令块载入、RT发送数据载入、RT状态位设置、查询工作状态等。4.2.2协议芯片的程序开发误信息,所以必须对于共享内存去进行一个空间分配的定义。参考BCR删于描述符数据结构的定义p州,具体的数据空间分配如下:(1)当工作在RT方式下时,RT描述符空间使用的基地址为0x40A0000,共80个描述符,每个描述符占用4个字。中断描述符基地址为0x40A0800,共定义128个,每个中断描述符占用三个字。每个RT描述符保留四个历史状态字,状态字存放基地址为0x40AOC00,共320个字。0x40A1000开始为数据段。每个RT描述符的数据缓存为128个字。(2)当工作在BC方式下时,BC描述符空间使用的基地址为0x40A0000,共128个描述符,由于BCRTM与ARM处理器是通过64K字的共享存储区域来交换控制信息、消息数据、状态,错每个描述符占用8个字。中断描述符基地址为0x40A0800,共定义128个,每个中断描述符占用三个字.0x40A1000开始为BC数据段。每个BC描述符的数据缓存为128个字。(3)当工作在MT方式下时,MT描述符空间使用的基地址为0x40A0000,共128个描述符,东南大学硕士学位论文每个描述符占用7个字。中断描述符基地址为0x40A0800,共定义128个,每个中断描述符占用三个字。0x40A1000开始为MT数据段。每个MT描述符的数据缓存为128个字。对于三种模式的描述符均采用结构体的定义方式,因为c编译器中关于结构体中成员的存储分配是按照定义的顺序,地址由小到大存放,每个成员所占用的字节数由其类型决定,同时要考虑数据对齐方式的问题。因此,程序中,将结构体成员都定义成为unsignedshort(无符号短型)变量,每个成员占用两个字节,不会产生因为数据对齐而造成的浪费。参考BCRTM的芯片手册,具体的定义为:(1)RT描述符的结构体s仃llctRtDspt{mtatuspt;unsignedshortrtsubaddrindex;unsignedshortunsignedshortadatapt;,unsignedshortrtfumre;};(2)BC描述符的结构体structBCCmdBIk{unstgnedshortbchead_pointer;Ulkqlgne,dshortbe:controlword:tmslgnedshortbccmdwordl;unsignedshortbccmdword2;unsignedshortbcdatapointex;unsignedshortbcstatuswordI;unsignedshortbcstatusword2;unstgnedshortbctail_pointet;);(3)MT描述符的结构体stmctMtCmdBIk{unsignedshortmtctlsts;ms培nedshortmtcmdwordl;unsignedshortmtcmdword2;unsignedshortmtdatadaointer;unsignedshortmts切n峪wOrdl:unsignedshortmts切n塔word2:unsignedshortmttail_pointer;);(4)中断描述符的结构体stmctinflistblk{unsignedshortintsmtusword;unsignedshortintpointer;umignedshortinttailpointer;};这里要指出的是,虽然BC,MT和中断描述符结构体的最后一个成员都是一种类似于指针的指向下一个描述符的变量,但切不能将其定义成指针变量(如XXBIk*tailpointer),以使得描述符结构体如同c语言中链表节点的数据结构来定义。这是因为,最后一个成员虽然存放的是地址值,但是这个地址却是64K字SRAM中的偏移地址,只有16位,而如果定义成指针变量的话,这将成为一个32位的数据,而且该数据存放的是下一个描述符在ARM系统中的绝对地址。这样会造成48第四章I¥53B智能通信卡的程序开发BCRTM在DMA操作中无法寻址,而且对于结构体中数据的对齐也会带来问题,描述符占用的存储空间将超过手册中允许的定义范围.对于协议芯片的操作通过编写一些专用的函数来完成.具体的主要函数及其功能如下:(I)BcrReset()函数,功能为完成芯片的复位。(2)Bcrtmselflest()函数,功能为完成芯片的自测。(3)BCmode()、RTmode()、MTmode()函数,完成BCRTM工作模式的设置。(4)RTaddr()函数,完成RT模式时终端地址的设置。(5)BcrS,a,,()函数,设置BCRTM开始工作.(6)Bcrstop()函数,设置BCRTM工作停止。(7)RtMemStucturelni()、BcMemStueturelni()与MtMemStuctureIni()函数,完成RT、BC和MT工作方式下SRAM数据空间结构初始化功能。(8)txsubload(),RT方式下发送数据加载函数.(9)idtbcload(),Be命令块加载函数。对应4.2.1节所述的三个硬件中断信号,对应的中断函数为:irqBcrHiInt(),BCRTM高级中断函数;jrqBcrStdlnK),BCRTM标准中断函数;jrqmTtat(),双口RAM中断函数。中断函数中首先都是先通过读取寄存器或者中断描述符来判断中断的类型,然后再根据的类型的不同来执行相应的操作。在芯片的复位函数中需要将中断函数与具体的中断源进行关联,具体方法为:plSR_E1NT0=(int)BcrStdInt;pISR_EINT22(int)IDTInt;plSR_EINT3爿int)BcrHilnhpISREINT0,plSREIN'I'2与pISR程序都会自动跳转到中断函数来继续执行。4.2.3与PC/104连接端的程序开发州与PC/104连接部分的程序在设计之前,首先需要解决的一个最主要的问题在于如何合理的使用8K字的双QRAM。基于多方面的考虑,具体分配如下(内存地址用ARM系统中的地址表示,同一存储单元:iEPC/104主机系统中的地址为0xD0000加上该单元在ARM中地址的低16位,例如:ARM端0x8083456单元在PC/104主机系统中的地址为0xD3456):(1)0x8090000~0x8081FFF,分配为信息数据缓冲区,用来存放主机与智能卡交换的信息数据。(2)0x8082000~0x8082FFF,分配为信息标识缓冲区,用来存放主机与智能卡交换的信息标识,信息标识的内容包括信息代号、通道号、RT地址、子地址、数据长度、信息间隔、状态字、时间标记以及RT状态字等。(3)0x8083000~OxS0837FF,分配为(RT)子地址发送数据缓冲区,该缓冲区为RT工作模式专用缓冲区,每个(共32个)子地址分配32个字,子地址I在该缓冲区占用的基地址为:0x8083000+(Ix64)。(4)0x8083800~0x8083FDF,保留。(5)0x8083FE0~0xS083FFB共14个字,分配为命令缓冲区,用来存放主机发出的操作命令以及AllM执行命令后返回的结果等,具体分配如下。(D0xS083FE0:设置为命令单元,由主机对该单元写命令,通信卡执行完命令后,将该单元清“旷,并向主机发中断信号。命令的设置如下:0x0101:设置(选择)智能通信卡工作在BC模式;Ox0102:设置(选择)智能通信卡工作在RI模式;0x0103:设置(选择)智能通信卡工作在MT模式;0x0104:设置(选择)智能通信卡停止工作(}ABC、RT、MTT作模式中退出);0x0105:设置(选择)时间标记分辨率:0x0107:返回当前工作模式(停止、BC、RT或MT);49东南大学硕士学位论文0x0201:BC命令,执行(启动)BC操作,组织信息传输;0x0301;RT命令,加载子地址发送数据;0x0302:RT镐ff令,设置和清除RT状态字中的某位;②o)【8083FE2~0)【8083FE6:命令参数1,命令参数2与命令参数3。命令参数1、命令参数2和命令参数3的内容定义随着具体命令而定,主机操作时,命令参数先写,命令单元的内容(主机命令)最后填写。③0)【8083FE8~Ox8083FEE:保留。@0x8083FF0:命令状态字,该单元标识着ARM执行命令的结果,具体定义如表4.1所示。《如x8083FF2~Ox8083FF6:命令状态参数1,命令状态参数2与命令状态参数3。@I)xS083FFS:ID头指针(RT/MTT作模式用,存放的是低16位偏移地址)。⑦()x8083FFA:ID尾指针(RT/MTT作模式用,存放的是低16位偏移地址).(6)0xS083FFC和0x8083FFE,双I=IRAM的中断设置寄存器,分别被用来产生PC/104主机和ARM处理器的中断。这里主要介绍一下RT模式设置命令,子地址发送数据加载命令及设置和清除RT状态字命令.(I)RT模式设置命令PC/104主机向命令字单元写入Ox0102,表示该命令是设置智能卡工作在RT模式。入口:0)【8083FE0:命令字-=0x0102;0x8083FE2:命令参数1=分配的R1嘞址。出口:0xS083FF0:命令状态字=0x0000;0x8083FF2:命令状态参数l=返回的RT地址。命令参数1中,D15~D6保留,DS~D0对应RTADDR4~RTADDR0和RTADDRP,其中RTADDRP是R1fADDR4~R1’ADDR0的校验位,为奇校验.(2)子地址发送数据加载命令命令字单元写A.0x0301是RT模式下的命令,加载子地址发送数据。入口:0xS083FE0单元:命令字=0x0301;0xS083FE2单元:命令参数l=子地址0~15加载标志;0x8083FE4单元:命令参数2=子地址16~31加载标志。命令参数2和命令参数1合在一起共32位,对应32个子地址,若某位为…1’,则表示对应的子地址需要加载发送数据。出口:ox8083FFO单元:命令状态字。PC/104主机使用该命令前,需要将相应的子地址发送数据写入缓冲区ox8083000~ox80837FF中指定的位置。(3)设置和清除RT状态字命令命令字单元写入0x0302,是RT模式下设置和清除RT状态字某位的命令。入口:0xS083FE0单元:命令字=0x0302;0xS083FE2单元;命令参数l=设置和清除RT状态字参数:命令参数1的具体定义与说明如下:0x0000,允许响应动态总线控制:命令执行后,R嘴会响应(接受)由BC发出的动态总线控制方式代码;0x0005,禁止响应动态总线控制:命令执行后,R啪不响应(接受)由BC发出的动态总线控制方式代码;0x0001,设置“忙”位:命令执行后,RT状态字的“忙”位将被设置为“1”:0x0006,清除“忙’’位:命令执行后,RT状态字的“忙”位将被设置为“0”;0x0002,设置“服务请求”位:命令执行后,RT状态字的“服务请求”位将设置为“l”;0x0007,清除“服务请求”位:命令执行后,RT状态字的‘倜&务请求’,位将设置为‘‘0”;0x0003,设置“子系统标志”位:命令执行后,RT状态字的“子系统标志”位将设置为“1”;0x0008,清除‘子系统标志”位:此命令执行后,RT状态字的“子系统标志”位将设置为‘‘o”;0x0004,设置“终端标志’'位:此命令执行后,RT状态字的“终端标志”位将设置为“l”;0x0009,清除“终端标志”位:此命令执行后,RT状态字的‘‘终端标志”位将设置为‘‘o’’;出口:0)【8083FF0单元:命令状态字。0xS083FF0地址为命令状态字单元,共16位,每位的定义如表4.1所示。50第四章1553B智能通信卡的程序开发表4.1命令状态字位Ol234567功能命令执行错误无效命令命令参数错RT事件处理MT事件处理BC命令块结束动态总线申请自检失败位89lO1112131415功能消息错误RT非法广播RT非法命令BC重传失败BC预设中断子系统失败查询比较匹配BC非法命令命令状态字不仅仅作为PC/104主机的状态字的返回值,当协议芯片有各类中断事件需要通知PC/104主机,并且要求其处理时,也通过写该状态字并且设置PC/104总线中断来通知主机。同时,PC/104主机的命令也通过设置命令字用中断的方式通知ARM处理器.这样的设置可以避免由于不断查询而带来的消耗,提高两边的效率。下面简要介绍下通信卡工作在三种不同的方式时的具体操作流程。(1)当通信卡工作在Bc模式时,主机系统(根据通信系统要求)将信息(命令块)组织好并按协议要求加载到双口存储器中,通过启动信息传输(0x0201)命令。ARM处理器收到命令后,对信息进行检测,如正确,执行相应的传输,并返回传输执行结果;否则,不执行传输,返回命令错误状态.①0)【8082000~0)【8082FFF定义为信息标识缓冲区,存放着信息的标识(1D),每个(最大64个,第1个信息ID的基地址为0x8082000+Ix32)ID共占用16个字,分别存放着信息的类型、通道号、RT地址、子地址、数据长度、信息间隔等,对于该标识也是使用了结构体的方法来定义。smlctDranmCblk{unslgnedshortmsgtype;||俞令类坠//重发次数,/子地址一//命令RT地址二//子地址二unstgnedshortretryen;unstgnedshortRTaddrl:/偷令RT地址一unslgnedshortRTsubadrl:unstgnedshortlengthunstgnedshortRTaddr2;unstgnedshortRTsubadr2;unsignedshorttimedelay;i愉令延髓//BC状态字查询允许(产生比较匹配中断)//RT状态返回值一//RT:d(态返回值二忽略保存//u∞i鲫edshortBCstatus;/偷令运行状态字unslgnedshortinspcten;uaslgnedshortRTstatusl;unsignedshortRTstatus2;unsignedshortskip输的数据生中断但是命令块执行不停止deshortngisnu传产T完R-T行R运块令intandgoon;命/该/;TRoTRM__unsignedshortintandstop;//该命令块运行完产生中断并且命令块执行停止//模式码数据字unsignedshortcodcdata;);对结构体中的一些内容说明如下:i“命令类型”一共十种,具体定义为:0=BC.RT,l=RT-BC,2=RT-RT,3-----无数据模式码帧,4----有数据发送模式码帧,5=有数据接收模式码帧,6=BC到RT的广播,7=RT到RT的广播,8=无数据字模式码命令字广播,9=代数据字模式码命令字广播。ii“命令延时”是指协议芯片运行该命令和下一个命令之问的间隔时间,分辨率为16坤;仅低八位数据有效.51东南大学硕士学位论文iii“命令砌b址二”和“子地址二”为RT-RT,RT广播命令时,第二个命令字的R1吨址与RT子地址.““命令运行状态字”表示该命令在运行中的状态,相应的位定义比如重发次数,响应超时,通道标志,和各种命令运行出错的信息。②o)‘8080000~o,【8081FFF定义为信息数据缓冲区,存放着信息的数据内容,每个信息(最大64个,第1个信息数据的基地址为0x8080000+I×64)的数据共占用32个字.该缓冲区与信息标识缓冲区对应使用。(2)当通信卡工作在RT模式时,实时监测1553B总线上的信息,自动响应(完成)BC的有效指令,并将接收到的信息进行解释,存放在双口存储器中,通过中断通知主机有信息传输,提供给PC/104主机查阅。①o)【8082000~o,【8082FFF定义为信息标识缓冲区,存放着信息的标识(ID),每个ID共占用16个字,分别存放着信息时标、命令字、类型、通道号、RT地址、子地址、数据长度、数据指针、状态字等,具体的定义也使用了一个结构体实现。s口uctDrarnRTblk{//时间标记时间标记,,接收命令字,/保留//命令类型//通道//模式码数据字unsignedshorttimetag;unsignedshortcmdl;unsignedshortunusedl:unsignedshortmsgtype;unstgnedshortchannel;unsignedshortmodexlata;UI'I¥ignedshortunsignedshortRTsubaddr;//RT子地址length_mode;//数据长度或模式码,,保留//保留mlslgnedshortunused2;u鹏i鲫cdshortunused3:unslgnedshortunsignedshortRTdatap缸;胴事放数据指针,指向数据缓冲∥RT状态字RTstatus;{}保留}}保留,/保留unsignedshortunused4;unslgnedshortunusedS;||铼罄unslgnexlshortunused6;Ulblgnedshortunusext7;};信息标识缓冲区为循环缓冲区,在命令缓冲区有两个单元分别定义为ID头指针(Ox8083FF8)和ID尾指针(Ox8083FFA),用来指示信息ID位置。智能卡每处理完成一条信息,就将ID头指针¥D32,并发中断通知主机。主机一旦监测到ID头指针和m尾指针不相等,将及时的将信息处理,并将m尾指针加32,直到m头指针与m尾指针相同为止。注意在修改ID尾指针时当ID尾指针=Ox3000时,应改为Ox2000。②0x8080000~ox8081FFF定义为信息数据缓冲区,存放着信息的数据内容,该缓冲区为循环缓冲区。(3)当通信卡工作在MT模式时,实时接收来自1553B总线上的信息,并按顺序存入双口缓冲区,通过中断通知主机有新信息。①ox8082000~Ox8082FFF定义为信息标识缓冲区,存放着信息的标识(ID),每个m共占用16个字,分别存放着信息的类型、通道号、RT地址、子地址、数据长度、信息标记等,定义结构体为:slructDramMTblkf//时间标记unsignedshorttimetag;tmsignedshortcmdl;l瀹令字一52第四章1553B智能通信卡的程序开发uns。ignedshortcmd2;unslgnedshortf?命令字二//通道//RT地址一//RT子地址一//RT地址二I/RT子地址二//RT状态字一,瓜T状态字二msgtypo;||食令装鸷unsignedshortchannel;unslgnedshortrtaddrl;unsignedshortrtsubl:unsignedshortlength_mode;/傲据长度或模式码unstgnedshortrtaddr2;unsignedshonrtsub2;unslgnedshortR,rda鲫憾胴享放数据指针,指向数据缓冲unsignedshortRTstatusl;unsignedshortRTstatus2;};该缓冲区为循环缓冲区,与RT模式相同,智能卡每处理完成一条信息,就将ID头指针加32,并发中断通知主机。PC/104主机一旦监测到ID头指针和ID尾指针不相等,将及时的将信息处理,并将m尾指针加32,直到m头指针与ID尾指针相同为止。在修改ID尾指针时当ID尾指针=Ox3000时,应改为Ox2000(低16位偏移地址)。容,该缓冲区为循环缓冲区.②0】【8080000~ox808lFFF定义与BC,R肪式相同,为信息数据缓冲区,存放着信息的数据内VxWorks环境下1553B智能通信卡的驱动程序开发VxWorks操作系统概述VxWorks操作系统是Windriver(风河)公司设计开发的一种嵌入式实时操作系统,是嵌入式开4.34.3.1发环境的关键组成部分。它以其良好的可靠性和卓越的实时性被广泛地应用在通信,军事、航空和航天等高精尖技术及实时性要求极高的领域中。VxWorks是一个具有可伸缩、可裁减和高可靠性,同时适用于所有流行目标CPU平台的实时操作系统。(1)vxworks的主要特点H”①高性能的微内核设计VxWorks的微内核具有全部实时特性,包括迅速的多任务调度、中断支持以及同时支持抢占式调度和时间片轮转调度。与此同时,该微内核还具有系统负担小、对外部事件的响应时间确定等特点。VxWorks提供了广泛的任务问通信机制,包括共享内存、消息队列、sock啦、远程过程调用(RPC)和信号量(Semaphore)等。提供的信号量有三种:二进制(二值)信号量、计数信号量和互斥信号量。②可裁剪的运行软件VxWorks具有可裁剪特性,使得开发者可以对操作系统的功能、大小进行增减,从而为自己的应用程序保留了更多的系统资源。利用Tornado的工程项目管理工具,可以十分轻松地对VxWorks的各种功能选项进行增减,设计时选用的是Tomad02.2版本。@丰富的网络支持VxWorks是第一个集成标准TCP/IP网络功能的实时操作系统。到目前为止,VxWorks的TCP/IP协议支持最新的Berkeley网络协议.④POSIXl003.1b兼容VxWorks支持POSIXl003.1规范的基本系统调用。包括进程原语、文件目录、I/0原语、语言服务和目录管理等。另外,VxWorks还遵循POSIXl003.1b实时扩展标准,包括异步I/O、计数信号置,消息队列、信号、内存管理(页面锁定)和调度控制等.⑤BSP移植东南火学硕士学位论文风河公司提供了大量预制的、支持许多商业主板及评估板的BSP。同时,VxWorks的开放式设计以及高度的可移植性使得用户在使用不同的目标板进行开发时,所做的移植工作量非常小。到目前为止,风河公司提供了超过200个的BSP,当用户在为自己的目标板开发BsP时,可以从风河公司的标准BSP中选一个最接近的来加以修改。⑥操作系统可选附件为了扩展VxWorks的功能,风河公司还提供了一些可选附件,包括BSP开发工具包、支持Fl∞h文件系统的TmeFFS组件、用于虚拟存储管理的VxVMI组件、用于支持多处理器的VxMP组件和VxFusion组件,以及各种图形,网络方面的组件.⑦可靠性与实时性操作系统的用户希望在一个工作稳定、可以信赖的环境中工作,所以操作系统的可靠性是用户首先要考虑的问题。而稳定、可靠一直是VxWorks的一个突出优点。自从对我国的销售解禁以来,VxWorks以其良好的可靠性在我国赢得了越来越多的用户。VxWorl(s本身的开销很小,任务调度,任务间通信和中断处理等系统公用程序精练而高效,它们造成的延迟很短。VxWorks提供的多任务机制对任务的控制采用了优先级抢占调度(PreemptivePriorityScheduling)和轮转调度(Round-RobinScheduling)机制,也充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为应用的开发留下更大的余地。⑧多任务VxWorks的多任务环境提伊了一个较好的对真实世界的匹配,因为它允许对应于许多外部事件的多任务执行。系统内核通过给这些任务分配CPU时间来获得并发性.@抢占调度对于基于优先级的抢占调度,每个任务都被指定了优先级,在能够执行的任务(没有被挂起或正在等待资源)中,优先级最高的任务被分配CPU资源。即一个高优先级的任务变为可执行态时,它会立即抢占当前正在运行的较低优先级的任务。⑩任务间的通信与同步机制及任务与中断之间的通信机制在一个实时系统中,一般需要多个任务协同完成某个功能。系统必须提供这些任务间的快速且功能强大的通信机制。内核也要提供为了有效地共享不可抢占资源或lI缶界区所需的同步机制。VxWorks中提供了信号量、消息队列和事件等机制来实现任务间的通信与同步。尽管真实世界的事件通常作为中断方式到来,但为了提供有效的排队、优先化和减少中断延时,常希望在中断服务程序(ISR)中仅作一些必要的处理,其他的处理工作尽可能交给某个特定的上层任务来处理。所以,任务和ISR之间需要存在通信机制。信号量和消息队列同样可以实现该功能.(2)MxWorks的基本组件VxWorks的基本构成组件包括BSP、微内核Wind、网络系统、c++支持、文件系统及YO系统其相关的基本构成组件简介如下l郇J:①BSPVxWorks采用模块化设计方法,把依赖于硬件环境的函数和信息分离出来,放入称为BSP的组件中。而BSPLibraries向上层软件提供一致的接口。VxWorks在目标机上运行需要相应的BSP的支持。BSP中包含硬件环境中CPU的初始化及系统各项硬件资源的安装和配置,包括RAM、Clock、网络接口、中断控制器等。要使vxw酬ks在某个硬件环境下运行,必须首先完成针对该环境的BSP部分。②微内核wiIld微内核Wind是风河公司自行开发的一种嵌入式操作系统内核,经过不断的改进和修补,现己趋于稳定。最近几个版本的VxWorks的Wind内核均没有变化。该内核具备标准的嵌入式实时系统的基本特征,如可裁剪性、抢占式任务调度、异步事件响应等。③I/O系统VxWorks的I/O系统提供了操作系统与各硬件设备的接口。VxWorks的I/O系统主要包括字符设备、块设备、虚拟设备(管道、Socket)、监控设备和网络设备等。在外部接口上,VxWorks的I/O系统提供标准的c函数库支持BasicI/O和BufferedYO。其中.BasicI/0与Unix标准兼容,BufferedI/O与第四章1553B智能通信卡的程序开发ANSIC兼容。在内部实现上,VxWorks的I/O系统采用的机制来实现lJO系统的快速性和灵活性。这是实时系统的重要特性之一。运行在VxWorks上的应用程序通过VxWorks的文件系统来访问各设备接口。每个设备都有一个同普通文件一样的文件名,并对它像一个文件一样存取。VxWorks的I/O系统还支持异步I/O(AsynchronousInput/Output)。异步VO使得I/o操作与调用该操作的程序可以异步地执行从而避免了∞操作速度对应用程序执行的影响。异步i/o通过调用符合POSiX标准的aioPxLib中的接口来实现。④文件系统件系统及RT-1IX件系统。还支持一种名为RawVxWorks针对不同的设备提供了多种文件系统。针对块设备,VxWorks提供了兼容MS-DOS的文FileSystem的文件系统,这种文件系统可将整个硬盘视为单个文件来操纵。VxWorks还提供支持磁带设备和CD.ROM设备的文件系统。在内部实现上,VxWorks的文件系统并非与各设备直接相连,而是通过标准接口来连接。VxWorks在其文件系统、驱动程序及I/O系统间都使用标准的接口,使得VxWorks的文件系统可以方便地在同类设备间移植。同时,用户也可开发自己的文件系统并通过标准的接口与设备连接.这种实现机制也使VxWorks在单一系统中可以包含多种不同的文件系统。⑤网络系统VxWorks的网络系统基本上是移植了BSD4.4Unix的TCP/IP协议栈,仅在实时性上进行了较大的修改,如用Semaphores代替原TCP/IP实现中的InterruptLock和修改原Socket代码中无Tunenut的部分等。这使得网络应用层软件的开发和移植都较为方便。⑥c++支持VxWorks提供异常处理、运行时类型信息[RTn]、标准模板库[STL]和Wind基类等C++特性支持。4.3.2VxWorks驱动程序介绍作为IO系统与硬件设备之闻的连接层,Vxworks驱动就是屏蔽硬件操作,为IO系统提供服务,实现一个完整的驱动,需要了解Vxworks下I/O的三个基本元素:File、Driver、Device。File是为用户提供设备的统一接口,Driver是实现具体的基本控制函数,是宣接对硬件操作的函数,Device是一个抽象的硬件设备,是一系列的结构体、变量和宏定义对实际物理设备的定义。对应于三个元素,Vxworks内部有三张表:文件描述符表,驱动程序表,设备列表pl。(1)文件描述符表p”要访问设备,首先需要调用open或ereat打开设备。系统根据参数中的设备名查找设备列表,找到匹配的设备节点后,根据节点信息中的驱动程序号FileDescriptorTableDrivc磷DeviceIDDriverdepen.dentvalue,IndeximoDriverTable查找驱动程序表,从而取得驱动程序中相对应的入口例程。在第一次打开后,系统通过一张表来保存设备与驱动的这种关联,供后面的I/O调用使用,称之为文件描述符表(FDtable),如图4.I所示。文件描述符表的每一项记录了与设备对应的驱动程序号,而表项的索引就是函数调用后所返回的文件描述符。图4.1文件描述符表文件描述符表的大小是固定的,总共有NIn订FILES项,也就是同时能够打开的文件(设备)的最大个数。在cormgAlt.h中,NUMFILES缺省定义为50。在工程中,可以通过“IOsystem”组件来修改NUMFILES定义.文件描述符从3开始分配,这是因为0、l、2已经被保留定义为标准输入、输出和错误输出.(2)驱动程序表M在I/O系统内部,VxWorks通过一张表来管理已注册的驱动,称之为驱动程序表。驱动程序的初始化就是调用iosDrvlnstall函数注册,I/0系统在驱动程序表中寻找空闲的位置,在该位置保存驱东南大学硕士学位论文动程序的各个FO接口指针,最后返回驱动程序号。驱动程序表的大小是固定的,有NIⅡ江DRIVERS项.(3)设备列表嗍在系统内部,VxWorks使用一个设备列表来维护已注册的设备,此设备列表的数据结构为XX_DEV,一般在驱动程序的头文件中定义,例如xxDrv.h中。XXDEv结构头部是一个DEV.HDR结构(类似OO中继承),DEV_HDR结构是双向链表的节点,I/O系统使用它来维护设备,XX结构的剩下部分被驱动程序用来保存设备信息。DEV在完成驱动程序初始化后,系统调用xxDevCreate函数来创建此驱动程序服务的设备(可能有若干个)。XxDevCrcate初始化该设备,填充设备信息,其设备信息由函数参数传入,然后向FO系统注册该设备。.图4.2以文件函数里的open为例描述了文件描述表、驱动程序表和设备列表的关系.FD—table有NUM—FILES项5.返回FD_table该项的索引(fd=3)图4.2open调用示例在VxWorks中,设备驱动程序有查询方式和中断方式二种。在中断方式下,事件发生是由中断信号确定的,在中断信号没有出现时,驱动程序处于空闲状态。在查询方式下,驱动程序必须生成一个任务来不停地查询相关的寄存器以确定事件的发生州J。本文采取的是中断方式.4.3.31553B智能通信卡的驱动设计[s0]f”】1553B智能通信卡驱动的设计主要是完成需要装载到驱动程序表的与文件函数相对应的5个函bcrtclosebcrtbcrt数writebcrt中ioctlnepo.。川read105【函断及在编写这5个函数之前,需要先定义一个设备列表的数据结构Pbl553数;bcrtDEV:typedefstreet{DEVHDRPbl553Hdr,,,设备头数据结构//设备名//设备创建标志,,设备打开标志char*name;boo!iscreate;boolisopen;其他需要的数据,包括基地址,设备状态等;,It)1553DEV;//1553B设备描述符数主要是打开甬"nepo.,作工的置设化始初些一行进卡1553B信通对要需,备设在驱动设计中,bcrt比如模式的设置、子地址设置(RT),命令块或数据的加载等,最后bcrtopeni函数会返回指向设备描述符的指针,对应到FO系统,则是返回文件描述府fd(见4.3.2).bcrtclose函数则是关闭1553B设56第四章1553B智能通信卡的程序开发各,主要是释放程序中分配的内存。bcrtmioctl函数是对通信卡设置的各项操作,包括读写当前工作模式、总线动态切换、设置RT状态字位,设置RT相应时限等。这三个函数相对比较简单,只要对硬件熟悉,再根据VxWorks操作系统驱动编写的特点就能完成。而在设计中,bcrtmread、bertmwrite、bcrtminterrupt程序编写相对复杂。写函数与通信卡的工作模式相关,当通信卡工作在BC模式下,写函数用于将命令块的内容与数据存放入双EIRAM的信息标识缓冲区与数据缓冲区,然后再向命令单元写入BC命令块加载命令。当通信卡工作在RT模式下,写函数将要发送的子地址数据存入子地址发送数据缓冲区,再写入RT子系统数据加载命令,并设置相应的命令参数。当通信卡处于MT模式下,由于此时仅需要监控总线上的状态与数据传输,不需要主动发送数据,所以写函数不工作。读函数是一个与中断相关的函数,中断函数与读函数的数据交换是通过消息队列的方法来完成的。首先利用VxWorks提供的msgQCreate"i函数建立一个消息队列,当中断发生时,中断函数需要判断中断的类型,以确定是否需要接收数据,如果需要,则通过msgQSend函数发送消息队列。需要调用读函数的任务首先需要通过参数为WAIT.-FOREVER的msgQReceive'甬数,来确定是否收到数据,如果有数据则保存数据供应用层调用,否则任务阻塞等待。bcrt_readi璃数与bcrt_interruptiii数没有直接的关系,不需要对硬件操作。中断函数不仅仅完成数据接收的功能,还需要对于其他的中断事件进行相应的相应,比如命令块结束,模式码事件,出错处理等等。设计完成的安装1553B通信卡驱动的函数,给出简单代码:STATUSPbl553DRVO,,驱动安装函数{if(bertDrvNum>0)return(OK);if((bertDrvNum=iosDrvlnstall(bcrtopen,O,bcrtopen,bcrtclose,bertread,bertwrite,bertioetl)),,如果驱动已经安装,则直接返回一ERROR)returnERROR;,/耳每各函数安装到驱动程序表中,返回一个非O的驱动号,,中断连接//开启中断if(intConnect((FUNCPTR+)((昀+32)<<3),BcrtInt,0)==EP.ROR)returnERROR;sysIntEnablePIC(irq);}创建设备的函数为:STATUSPbl553DevCreate0/,宦O建设备函数{Pbl553_DEV。bertI)ev;statichatbertNum=0;if(bertDrvNum一0、{ermoSet(跗oLibrctunlNODRIVER);,/如果没有安装设备驱动,返回错误ERROR;lt耻rtNum==1){pantErr(。Xnthedevicehasalreadybeeninstalled、n");,n嘲肌ERROR;}if((bertDev=(pbl553DEV+)malloe(sizeof(Pbl553DEV)))一NtrLL)57东南大学硕士学位论文{printErr(”、Ilthe“吐mnERROR;memoryisnotenough,can'tere.ateeanXn”);}if0)crtNum—jo{设备的初始化代码;}if(iosDevAdd(&bcrtDev->Pbl553Hdr,bcrtDcv->name,bcttDrvNum)==ERROR){1fcee((ehar*)brainy);mare(ERROR);}return(OK);,,在设备列表中注册该设备)4.4小结本章主要介绍了1553B智能通信卡的软件设计,主要包括两个方面:一个是智能通信卡上ARM处理器固件程序的开发,另一个是PC/104主机驱动程序的开发。智能通信卡与PC/104主机的数据交换通过双口RAM实现。ARM处理器的程序采用中断响应的结构,根据PC/104命令,1553B总线事件所触发的中断完成相应的程序。PC/104主机采用VxWorks操作系统,从实用的角度分配了双口RAM地址空间与两者之间的通信接口,编写了相应的驱动程序。55第五章1553B总线通信系统的测试第五章1553B总线通信系统的测试前面各章对具有如图1.4所示静1553B总线智能通信卡结构的总线通信卡的设计进行了细致深入的讨论。本章主要介绍1553B通信系统的测试。5.1测试平台的建立设计完成的1553B智能通信卡能否在实用系统中正确工作,必须进行相应的测试,搭建的测试实验平台包括一块前面着重介绍的自行开发的1553B智能通信卡,一台PC/104嵌入式计算机,一块美国CONDOR公司PCI接I=11553B总线通信卡,一台台式Pc机。实验平台的基本结构如图5.1所示。1553B总线75Q75Q图5.1测试平台的构建测试时两个节点都采用直接耦合的方式,使用双绞线,通信电缆两端各配置一个75欧姆的匹配电阻。PC/104计算机使用的是盛博公司出品的SCM/SPT2模块,其CPU是一片X86兼容的64位第六代处理器,最高运行速度可达200MHz,使用64MSDRAM内存,集成以太网接口与图形处理器,PS/2键盘鼠标接口,USB,1DE,CF卡等ⅢJ。使用时将设计的1553B通信卡。插在该主机的PC/104插槽,实物图如图5.2所示。美国CONDOR公司是一家属于GE(通用电气)旗下的专业从事与嵌入式领域的公司,其1553B产品在市场上具有很高的占有率。实验平台中使用了该公司出品的一块PCI接口1553B通信卡,具体型号为:PCI一1553。硬件实物如图5.3所示。该卡完全遵循32位的PCI2.1规范,支持即插即用,卡上带有两个通道,并且都支持BC、RT、MT工作模式,随卡提供丰富的软件资源,包括VxWorks、Unix,Windows系统驱动,Windows操作系统下的高层API接口,Quickview应用软件。Quickview软件是利用随卡提供的高层All函数编写的用户程序,它能够提供基本的BC、RT、MT编程操作功能,一般作为测试诊断工具来使用。该软件使用也很方便,完全用图形化的界面完成硬件的初始化,自测试,通信卡工作模式设定,通道选择与工作启动等功能,设置为BC、RT模式时,发送数据可编程,接收数据可显示。59

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo7.cn 版权所有 湘ICP备2022005869号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务