工程实践报告 11300字.docx
《工程实践报告 11300字.docx》由会员分享,可在线阅读,更多相关《工程实践报告 11300字.docx(16页珍藏版)》请在冰豆网上搜索。
工程实践报告11300字
三一文库(XX)
〔工程实践报告11300字〕
全日制工程硕士研究生工程实践报告
一.实践目的
高速数据总线技术是弹上电子通讯的核心技术之一,是实现弹上系统数字化、信息化的关键技术。
I1394b是一种高速串行总线,已经在航空、航天、车辆等军事应用领域得到应用。
研究该总线在弹上系统中的应用具有重要的军事价值。
弹上系统内部设备众多,接口种类多种多样,其中包含大量的传统低速总线接口。
为了使I1394b总线在弹上系统中能够顺利应用,目前迫切需要解决其与多种低速总线接口兼容的问题,即设备兼容性问题。
目前,针对1394b总线设备兼容性问题研究已经比较多,但是主要集中在1394b与PCI、PCI-、CPCI等高速总线接口的兼容性上,而与RS232、SPI、CA等低速总线之间设备兼容性的研究还很少。
为解决I1394b总线与传统低速总线的设备兼容性问题,本实践在深入研究I1394b总线协议的基础上,基于I1394b异步传输机制完成了I1394b光纤总线异步传输系统的硬件电路设计和协议转换算法设计,实现了I1394b和RS232、SPI、CA总线之间的可靠通信。
硬件电路部分主要包括I1394b协议接口电路、光电转换电路和PGA控制电路。
I1394b协议接口电路采用I公司的协议芯片SB41BA3B(物理层)和SB12LV32(链路层)来实现I1394b协议接口功能。
光电转换电路中采用带有自诊断功能的光
-1-
电转换模块L8519,通过设计了阻抗匹配、电平转换以及发送接收控制电路,实现系统的光纤链路和自诊断信息的获取及分析。
二.实践内容
对I1394b和低速总线协议进行研究,从而实现高速I1394b总线与低速串行总线的通信。
(1)I1394b协议
I1394最初是由Appl公司提出的,当时的目的是简化其与计算机的连线,并且为实时数字数据传输提供一个高速接口。
最初Appl公司将其命名为irir。
irir是Appl公司的商标,与后来的Soy公司的i.Lik一样,实际上所有的商标名称都是指同一种技术——I1394。
I在19xx年认可irir为I1394-1995规范,但是在I1394-1995中存在一些模糊的定义,所以后来又有一份补充文件来澄清疑点,解决了一些兼容性的问题,更正了错误并添加了一些功能。
经过改进的规范被称为1394a。
20xx年,更新的1394规范——1394b也被推出,它以“I1394-1995”和“1394a”为基础,目标是“在新型应用中普及多媒体标准规格”。
其带宽、传输速度、距离和成本效率等都有了大幅度提高。
1394b共分为“ba”和“biligual”两种模式,biligual模式具有与1394a及I1394-1995的设备向下兼容的特点。
I1394协议定义了三个层,分别是事务层、链路层和物理层。
事务层只处理异步数据包,提供Rad、ri和Lock命令。
Rad命令向命令发出方传回数据;ri命令向接收方发送数据;Lock命令
-2-
通过生成往返通路实现Rad和ri功能。
事物层不提供任何用于等时传输的服务,相反,等时传输是由应用程序直接驱动的。
事物层功能由固件实现。
对于异步事物,链路层提供了事物层和物理层之间的接口,还提供了基于与事物层相同的请求/响应模型的各种服务;对于等时事物,链路层提供等时软件驱动程序和物理层间的接口。
提供等时和异步模式下的数据包接收确认、定址、数据校验以及数据分帧等。
物理层有如下三个功能:
(a)把链路层的逻辑信号转化成在串行总线上传输的电信号。
(b)实现仲裁服务,以保证同一时刻总线上只有一个节点在发送数据。
(c)为串行总线定义了物理和机械接口。
线缆环境下,物理层还提供数据同步和重复事务,同时还可以实现总线自动初始化的功能。
I1394b总线支持两种传输类型:
等时传输和异步传输。
等时传输要求数据以稳定的时间间隔传送,是以一个规定的信道号码而不是某个固定地址进行传送,这个信道号码可以对总线上多个节点进行广播。
此外,等时传输也不要求进行数据确认,发送方只需有规则的发送数据即可,而无须关心数据是否正确的到达接收方。
而异步传输是不需要以固定的速度传输数据,并通过唯一的地址确定特定的节点,用于确保数据能够可靠传输的应用场合,此时串行总线可以验证数据传输是否正确,也同时向事务的发起方确认数据是否传到。
-3-
I1394b的数据包有很多种,总的来说可以分为物理层数据包、应答数据包和主数据包三类,每一种数据包都有自己独特的标识,可以完成其独有的功能,该实践用到是异步数据包。
异步数据包是由链路层控制器根据事务层发送过来的数据和命令打包而成的,数据包形成以后通过物理层芯片在I1394b总线上串行传输。
每一个合法的异步数据包都是由一系列Quadl组成的。
一个异步数据包的长度最少应该有四个Quadl组成,它至少包括一个包头,也可能包含一个数据块。
根据包长大小可以将异步包分为三类:
无数据的异步包、具有4字节数据的异步包和具有数据块的异步包。
无数据的异步数据包没有包含任何有效数据——它只有一个数据包头。
具有4字节数据的异步数据包包含了一个4字节的有效数据,这个数据包含在包头里面。
所以从形式上说,这种类型的数据包也只有一个包头——它是以包头CRC校验字段结尾的——在包头后面没有数据。
具有数据块的异步包包含了一个数据块的有效传输数据,这个数据块跟在包头后面构成数据部分。
一个数据块可以包含很多数据,也可以是一个空的数据块,即根本没有数据。
如果包头的Daa_Lg部分不是4字节的倍数,发出的数据的节点将在数据的最后补0,以使整个数据块是4字节的整数倍。
(2)RS232协议
RS232标准中,字符是以一串行的比特串来一个接一个的串行方式传输。
最常用的编码格式是异步起停格式,它使用一个起始比特
-4-
后面跟随7个数据比特,然后是可以选择的奇偶校验位,最后是停止位。
其数据格式如图1所示。
奇
偶
校
验
位起始位停止位空闲位
图1异步通信格式
RS232在传送数据时,并不需要使用另一条传输线来传送同步信号,就能正确的将数据传送给对方,不过必须在每一次数据传输时加上同步信号,比如Sar(Lo)和Sop(ig)两个位。
这里,Sar起始位是一位比特,但是Sop停止位信号可以由软件设定为1位、1.5位或2位。
停止位是逻辑“1”电平,标志着该字符传送的结束。
空闲位表示线路处于空闲状态,此时线路上为逻辑“1”。
空闲位可以没有,此时异步传送的效率最高。
异步通信中每秒传送多少比特称为传送速率,即波特率(badra),典型的波特率是300,1200,2400,9600,115200,19200bi/s。
计算机之间的异步通信速率一经确定后,一般不会变动,但通信的数据位是可变的,即数据组之间的空闲位是可变的。
RS232规范中,数据以字符为单位进行传输。
(3)SPI协议
-5-
SPI,是英语SrialPripralirac的缩写,顾名思义就是串行外围设备接口。
它的特点是高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间。
该接口一般使用4条线:
串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线I、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。
SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(用于单向传输时,也就是半双工方式)。
也是所有基于SPI的设备共有的,它们是SDI(数据输入),SDO(数据输出),SCLK(时钟),CS(片选)。
(4)CA协议
CA是控制器局域网络(CorollrAraork,CA)的简称,是由研发和生产汽车电子产品著称的德国BOSC公司开发了的,并最终成为国际标准(ISO11898)。
是国际上应用最广泛的现场总线之一。
CA总线被广泛的应用于工业自动化、汽车传感器、医疗设备、电梯控制等分布式实时系统。
它作为一种多线路网络通信系统,具有时分多主、非破坏性总线仲裁、自动检错重发等机制。
同时还具备价格低廉的特点,使其被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。
-6-
在这里,我们选用SJA1000作为CA总线的控制器。
SJA1000是一种独立的CA控制器,主要用于移动目标和一般工业环境中的区域网络控制。
它是Pilips半导体公司PCA82C200CA控制器(BasicCA)的替代产品,而且它增加了一种新的操作模式——PliCA,这种模式支持具有很多新特性的CA2.0B协议。
1.基于PGA、总线协议芯片、光收发模块和低速总线控制器,设计I1394b光纤总线异步传输系统硬件电路。
本实践针对目前I1394b在弹上总线系统中存在的设备兼容性问题,基于I1394b协议的异步传输,设计通用I1394b总线接口,为I1394b光纤总线和传统低速串行总线其提供信息传输通道,使得不同总线间的数据流可以实现传输。
系统采用PGA、1394协议芯片的方案实现上述功能,系统框图如图2所示。
图2系统框图
-7-
硬件电路是实现通信的基础,该硬件电路由光电转换电路、1394接口电路、PGA译码电路、低速总线接口电路四部分组成。
光电转换电路通过光电、电光转换实现系统的光纤链路。
协议接口电路分为I1394b协议接口电路和低速总线接口电路。
I1394b协议接口电路采用物理层和链路层芯片将I1394b协议中的各种事务转化为对应的电信号。
低速总线接口电路通过采用相应的协议控制器和电平转换器芯片实现系统对低速总线接口的支持,本文主要实现RS232、CA、SPI等低速总线接口。
PGA控制电路通过PGA对链路层芯片上的寄存器进行读写操作、I1394b异步数据包数据信息的提取、高低速总线协议间的时序匹配及数据缓存。
(1)I1394b协议接口电路
I1394b协议接口电路由1394物理层芯片和1394链路层芯片组成,分别采用I公司的SB41BA3B、SB12LV32芯片。
SB41BA3B芯片支持I1394b协议,保证了能够实现光纤传输,同时兼容I1394a链路层芯片,并使传输速度可以达到400Mbps,完全可以满足异步传输系统的需求。
SB12LV32是支持I1394a协议的通用链路层芯片,速度最高为400Mbps,可以与I1394b物理层芯片连接。
选择该芯片是因为链路层芯片具有低速总线接口而不是PCI或者PCIxprss等OCI接口,而且目前也找不到带有低速总线接口并且支持I1394b协议传输的链路层芯片。
由于采用了支持I1394b的物理层芯片,所以链路层芯片必须对其能够兼容,所以我们选取SB41BA3B+AB12LV32的组合。
如图3所示。
-8-
SB41BA3BSB12L32
图3PY-LLC连接电路图
LRQ是链路请求输入引脚,链路层使用LRQ来初始化一个AB41BA3B的服务请求。
CL[0:
1]为双向控制I/O,在SB41BA3B和链路层之间控制通信。
D[0:
7]为双向数据I/O,是SB41BA3B和链路层之间的数据信号,用来传输状态信息、控制信息和数据包。
SB41BA3B支持S100、S200和S400的传输速率,速度为S100时使用D0、D1;S200时使用D0-D3;S400时则使用D0-D7。
(2)通用协议接口电路
本文中通用协议接口包括RS232接口电路和CA接口电路。
由于SPI协议相对简单,不需要相应的协议芯片,采用PGA实现SPI协议逻辑即可实现SPI协议接口,以下部分重点介绍RS232和CA接口电路。
RS232是以正负来表示逻辑状态的,而不是高低电平。
为了能够同计算机接口或终端的L器件连接,就必使用MAX232芯片完成RS232与L电路之间的电平转换。
PGA与RS232接口的连接电路如图4所示。
-9-
图4低速总线接口电路
(3)具有自诊断功能的光电转换电路
具有自诊断功能的光电转换电路实现光电转换、电光转换和系统的初步自诊断,包括光电电光转换电路和自诊断接口电路。
本设计中光电转换模块选用具有自诊断功能的L8519。
由于目前I1394b协议芯片的可选择范围很小,主要为美国I公司生产的SB系列芯片。
而且数据传输速率较高时芯片受噪声影响较大,因此需要添加适当的外围电路来完成系统光电、电光转换功能。
基于I1394b协议的光电电光转换电路方案如图5所示。
图5具有自诊断接口的光电转换电路
-10-
其中O为光收发模块,1为去耦电阻,与O上的电容一起作用达到隔离的作用;2为电压比较器,将PB+/-的共模电压与一个0.8V的基准电压进行比较,比较的结果用于控制光收发模块发送器的开启状态;3为总线开关,由光收发模块的接收标识输出作为其使能端输入,控制总线开关的开启与关闭,用于噪声屏蔽;C1~C4为交流耦合电容,负责阻断直流信号。
(4)PGA控制电路
PGA控制电路是光电转换电路、协议接口电路之间连接的桥梁。
本文中PGA选用ALRA公司低成本CycloⅡ系列的P2C5,其结构图如图6所示。
P2C5内部集成4608个L、26个M4KRAM块、13个内置乘法器、2个PLL,支持JAG、AS、PS多种配置模式。
图6CycloⅡ器件结构
LogicArray:
逻辑阵列是PGA的基本逻辑电路,可以实现大多数的逻辑功能,每个逻辑阵列包含16个L。
L是CycloⅡ系列PGA
的最小逻辑单元,它以紧凑的尺寸提供高效的逻辑功能,由
-11-
一个四输入的查找表(LU)、一个可编程的触发、进位链和级连链等。
IO:
输入/输出单元是PGA外部封装引脚和内部逻辑间的接口。
每个IO引脚由于位于行、列互联通道末端的IO单元(IO)连接。
每个IO含有一个双向缓冲器和一个可作为输入/输出/双向寄存器的触发器。
当IO作为输出时,这些寄存器提供5.3s的时钟到输出延时。
IO还具有许多其他特性,如JAG编程支持,摆率控制,三态缓冲和漏极开路输出等。
PLL:
PLL提供了通用的定时管理能力,如倍频和相移、可编程占空周期、可编程带宽、扩频输入时钟、锁定检测及支持差分I/O的输出。
外部时钟输出可以向系统中的其他器件提供时钟,板上无需其他的时钟管理器件。
M4KBlock:
Cyclo2嵌入存储器由4kbi的M4KRAM块组成,每个块的数据传输率超过250Mz。
每个M4KRAM块能够配置成不同类型的存储器,包括真双口RAM、简单的双口RAM、单口RAM、ROM和IO。
每个块还包括了另外的奇偶校验比特进行差错控制,混合宽度模式和支持混合时钟模式。
mbdddMuliplirs:
内置乘法器由乘法计算模块、输入输出寄存器和输入输出接口组成。
P2C5支持能运行在250Mz的13个18×18的乘法器,可以配置为26个独立的9×9乘法器。
这些乘法器能够高效地时序DSP应用中常见的乘法操作,可以提升整个系统的性能。
-12-
2.PGA的软件设计,开发I1394b总线和低速串行总线读写控制功能,在PGA中用硬件编程语言Vrilog实现协议转换算法,验证算法的有效性和可行性。
PGA在系统中起到处理器的作用,包括对链路层芯片寄存器的配置、对IO的读写操作、还有处理I1394b异步数据包以及数据缓存和时序匹配等问题,从而实现I1394b和RS232、SPI和CA等低速总线之间的通信。
PGA功能模块连接示意图如图7所示。
图7PGA功能模块
PGA软件设计主要包括I1394b光纤总线的接口控制器、低速总线接口的控制器、内部数据缓存单元三部分。
其中I1394b接口控制器是用PGA实现I1394b协议的事务层的功能,包括异步数据包的读、写操作。
低速总线接口的控制器是实现PGA与RS232、SPI、CA等低速总线之间的接口,实现PGA与低速总线上数据的接收与发送。
数据缓存单元是PGA中一个重要模块,用于将I1394b光纤总线和RS232、SPI、CA总线之间通信过程中的数据缓存,提高系统的可靠性及I1394b的总线利用率。
-13-
(1)I1394b接口控制器
I1394b的异步传输是通过事务层对链路层芯片的读、写、锁定操作完成的。
链路层芯片将从总线上接收到的异步数据包缓存在通用接收IO(GralRcivIO,GR)中,同时产生中断,通知事务层有数据到来。
事务层检测到中断后,读取GR获取完整的异步数据包。
事务层对异步数据包的进行分析,去除各种包部件获取数据信息,并根据异步数据包的类型构造响应包。
同时通过对异步发送IO(AsycroousrasmiIO,A)的写操作,完成响应数据包的发送。
I1394b接口控制器主要包括四个部分:
链路层微控制器接口控制逻辑、I1394b节点初始化、CoigROM内容的自动配置、异步数据的接收和发送。
本实践中PGA读GR的流程图如图8所示,初始化完成后检测I引脚判断是否有中断到来,如果有中断产生则读中断寄存器判断中断类型,如果是RXGRPK中断则读GR获取数据包,同时判断是否需要构造响应包以及需要构造的响应包类型。
响应包通过写A发送到I1394b总线上。
-14-
图8异步数据包接收流程图
本实践中数据包发送流程图见图9。
初始化之后通过写A将数据发送到I1394b总线上。
同时读中断检测是否收到响应包,如果收到响应包且响应代码无误,则本次数据发送结束。
如果响应超时或者响应代码有误,则需要重新发送数据。
图9异步数据包发送流程图
(2)低速接口控制器
-15-
低速总线接口控制器实现RS232、SPI、CA等总线接口功能:
从RS232、SPI、CA总线上接收数据后进行串并转换,再转发到I1394b接口模块,由I1394b接口控制器发送到I1394b总线上;同时将I1394b接口模块转发过来的进行数据并串转换,最后发送相应的低速总线上。
(3)数据缓存单元
I1394b和RS232、SPI、CA的传输速率相差甚远,通信过程中容易出现总线拥塞、数据溢出等问题。
针对以上问题本文采用I1394b光纤总线间歇发数、双数据缓存单元进行数据缓存及系统性能优化。
高速总线和低速总线之间通信过程中出现的数据溢出等问题只能在一定程度上进行缓解,即:
无论采用多大的存储器进行数据缓存,随着时间的推移总会产生溢出。
本文中异步传输系统实现的是高可靠性简单命令的传输,数据量不大、实时性要求不高,所以采用I1394b光纤总线间歇发数再加上数据缓存可以在一定程度上解决总线拥塞、数据溢出的问题。
本实践中双数据缓存单元采用PGA内部IP核实现,包括两个32位宽的IO。
其中IO1用于缓存由I1394b向RS232、SPI、CA发送的数据,从而在一定程度上解决高速总线低速总线之间通信过程中出现的数据溢出问题。
IO2用于缓存由RS232、SPI、CA向I1394b发送的数据。
由于I1394b数据传输以数据包的形式进行,如果每次接收到一个8位的RS232、SPI、CA数据就产
-16-
生一个I1394b异步数据包,这样就会大大降低I1394b的总线利用率。
采用IO2对RS232、SPI、CA数据进行缓存,数据接收完成或者达到异步数据包的最大包长限制后由RS232、SPI、CA接口模块产生使能信号。
I1394b接口控制器收到使能信号后,从IO2中读取数据,同时产生一个异步数据包发送到I1394b总线上。
这样可以大大提高I1394b的总线利用率,提高系统性能。
数据缓存单元连接示意图如图10所示。
I1394b接口控制器接收到I1394b异步数据包提取数据信息后缓存在IO1中,同时产生RS232、SPI、CA使能信号。
低速总线接口控制器接收到使能信号后从IO1中读取数据发送到RS232、SPI、CA总线上,实现I1394b异步数据包在RS232、2C总线上的传输。
低速总线接口处理器接收RS232、SPI、CA串行数据缓存在IO2中,当数据接收完成或者达到异步数据包的最大包长限制后产生1394b使能信号,使能I1394b接口控制器。
I1394b接口控制器从IO2中读取数据,按照I1394b协议标准将数据发送到I1394b总线上,完成I1394b和RS232、SPI、CA之间的通信。
-17-
图10数据缓存单元连接示意图
3.设计系统性能测试验证方案,在实验室中搭建软硬件联合测试系统,实现I1394b总线和低速串行总线之间的通信,并测试系统通信性能。
数据传输测试包含CA到I1394b光纤总线的数据传输测试和RS232到I1394b光纤总线的数据传输测试两个部分。
RS232到I1394b光纤总线数据传输的测试具体方法为:
通过PC2上的串口调试助手发送数据到1394b接口卡,接口卡收到数据后将该数据发送到I1394b总线上进行传输,通过PC1中的I1394b总线管理软件可以显示PC1接收到RS232串口数据。
实验中,PC2向PC1发送字符串数据“1234567890”,如图12所示。
图11显示了PC1总线管理软件显示接收到的数据,其中上面的小图表示I1394b管理软件一共收到了10个数据包,我们选择查看的是第6个数据包。
由于1394链路层芯片采用的是“小端”接收方式,即接收到的字符串为“0987654321”,第6个字符就是“5”;下面的小图表示的是接收到的数据“0x35”,35就是数字5的
ASCII
-18-
码表示值。
通过比较图11和图12可知,数据从PC2的串口发出,经过1394b接口卡后在I1394b光纤总线上进行传输,最终成功的被I1394b节点PC1收到,证明了1394b接口卡实现了RS232到I1394b光纤总线的数据传输。
图11I1394b接收的串口数据
图12串口发送的数据
对于CA总线数据传输的测试时通过USB-CA适配器实现。
适配器一端通过USB接口与上位机PC2相连,另一端通过1394接口卡连入1394总线,并通过1394总线上的PC1接收数据,在PC1上的1394测试软件中显示出来。
如图13所示,在发送数据窗口,
我们输
-19-
入数据值为“09080706050403020100”。
在点击发送按钮后,在PC1上1394总线分析软件上显示出来“39-30”,是数字9-0的ASCI