基于PCI总线CAN卡的设计-毕业论文_第1页
基于PCI总线CAN卡的设计-毕业论文_第2页
基于PCI总线CAN卡的设计-毕业论文_第3页
基于PCI总线CAN卡的设计-毕业论文_第4页
基于PCI总线CAN卡的设计-毕业论文_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGEIII【摘要】本文介绍了CAN总线发展的基本情况,通信方式的特点和优越性。在深入了解PCI总线的相关特性及功能的基础上,结合考虑了硬件的价格和实现的难易程度,对本硬件设计做出了合理的选择。介绍了CAN总线通信控制器芯片SJAl000和PCI总线控制器PCI9052,并在此基础上给出了基于PCI接口的CAN总线控制系统通信卡硬、软件的设计思路和实现方法。控制器局域网(CAN)为串行通讯协议,能有效地支持具有很高安全等级的分布实时控制。CAN的应用范围很广,从高速的网络到低价位的多路接线都可以使用CAN。【关键词】控制器局域网、通信卡、PCI总线【Abstract】ThispaperdescribesthedevelopmentoftheCANbasicsituationmeansofcommunicationfeaturesandadvantages.andin-depthunderstandingofthetotalcountyPCIrelatedtothefeaturesandfunctionsonthebasisofThehardwaredesignofchipdesignforareasonablechoice,andconsideringthehardwarepriceanddegreeofdifficulty.givendesign.ThispaperalsointroducestheCANbuscommunicationcontrollerSJA1000andthePCIbuscontrollerPCI9052.ThenitgivesthemethodtodesignandimplementthehardwareandsoftwareofCANcommunicationcardbasedonPCIbus.TheControllerAreaNetwork(CAN)isaserialcommunicationsprotocolwhichefficientlysupportsdistributedrealtimecontrolwithaveryhighlevelofsecurity.Itsdomainofapplicationrangesfromhighspeednetworkstolowcostmultiplexwiring.【Keyword】ControllerAreaNetwork、Communicationcard、PCIbus.目录【摘要】 I【Abstract】 II第1章CAN总线 11.1CAN总线的发展过程 11.1.1CAN总线发展史 1HYPERLINK\l"_Toc170105468"1.1.2CAN先行者的发展 21.1.3CAN前景展望 21.2CAN总线的基本特点 31.3CAN通信协议 41.3.2物理媒体连接子层(PMA) 71.3.3媒体访问控制子层 71.3.4逻辑链路控制(LLC)子层 111.4CAN数据交换原理 111.5CAN总线网络拓扑结构 12第2章PCI总线 142.1PCI总线概述 142.2PCI总线的发展 142.2信号的类型和信号线的定义 162.2.1信号类型 162.2.2PCI信号线定义 162.3PCI总线的系统结构及特点 PAGEREF_Toc170105483\h182.4PCI总线的主要优点 192.5PCI总线体系结构 202.5PCI总线的操作 6\h202.5.1总线命令 202.5.2命令使用规则 222.5.3PCI总线协议 22HYPERLINK\l"_Toc170105490"2.5.4PCI总线的开发技术 242.6PCI总线的应用 25第3章基于PCI总线CAN卡的硬件芯片介绍 26HYPERLINK\l"_Toc170105493"3.1CAN器件介绍 263.1.1CAN协议通信格式 263.1.1SJA1000CAN控制器 27HYPERLINK\l"_Toc170105496"3.1.2CAN控制器SJA1000及其应用 283.2PCI总线接口芯片PCI9052及其应用 303.2.3引脚介绍 32HYPERLINK\l"_Toc170105499"3.2.3PCA82C250CAN总线收发器 34第4章基于PCI总线CAN卡的设计 374.1CAN卡的硬件设计 37HYPERLINK\l"_Toc170105502"4.1.1PCI接口硬件设计 374.2.CAN卡的设计说明 384.2.1串行EEPROM的配置 39HYPERLINK\l"_Toc170105505"4.2.2电路原理图 404.3软件设计 414.3.1SJA1000初始化 414.3.2驱动程序设计 434.4总结 43【致谢】 44【参考文献】 \h45附录1:执行程序 46附录2:电路原理图 47附录3:英文原文: 48HYPERLINK\l"_Toc170105516"中文翻译: 56PAGE2第1章CAN总线1.1CAN总线的发展过程CAN全称为“ControllerAreaNetwork”,即控制器局域网,是国际上应用最广泛的现场总线之一。最初,CAN被设计作为汽车环境中的微控制器通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络。比如:发动机管理系统、变速箱控制器、仪表装备、电子主干系统中均嵌入CAN控制装置。1.1.1CAN总线发展史1986年2月,RobertBosch公司在SAE汽车工程协会大会上介绍了一种新型的串行总线CAN。控制器局域网,那是CAN诞生的时刻。今天在欧洲几乎每一辆新客车均装配有CAN局域网,同样CAN也用于其他类型的交通工具,从火车到轮船或者用于工业控制CAN,已经成为全球范围内最重要的总线之一,甚至领导着串行总线。在1999年接近6千万个CAN控制器投入应用,2000年市场销售超过1亿个CAN器件。在1980年的早些时候,Bosch公司的工程师就开始论证当时的串行总线用于客车系统的可行性。因为没有一种现成的网络方案能够完全满足汽车工程师们的要求,于是在1983年初UweKiencke开始研究一种新的串行总线。新总线的主要方向是增加新功能,减少电气连接线,使其能够用于产品而非用于驱动技术。来自Mercedes-Benz的工程师较早制定了总线的状态说明,而Intel也准备作为半导体生产的主要厂商。当时聘请的顾问之一是来自于德国的AppliedScience大学教授WolfhardLawrenz博士,给出了新网络方案的名字ControllerAreaNetwork,简称CAN。1986年2月CAN诞生了在底特律的汽车工程协会大会上,由Bosch公司研究的新总线系统被称为汽车串行控制器局域网。此方案基于非破坏性的仲裁机制,能够确保高优先级报文的无延迟传输,并且不需要在总线上设置主控制器。当关于这种革新的通讯方案的大部分文字内容制定之后,于1987年中期,Intel提前计划2个月交付了首枚CAN控制器82526,这是CAN方案首次通过硬件实现。仅仅用了四年的时间设想就变成了现实。不久之后Philips半导体推出了82C200,这两枚最先的CAN控制器在验收滤波报文控制方面有许多不同,一方面由Intel主推的FullCAN比由Philips主推的BasicCAN占用较少的CPU载荷,另一方面FullCAN器件所能接收的报文数目相对受到限制,BasicCAN控制器仅需较少的硅晶体。今天的CAN控制器中在同一模块中的验收滤波和报文控制方面仍有相当的不同。制造出BasicCAN和FullCAN两大阵营。标准化与一致性:在1990年早些时候BoschCAN规范CAN2.0版被提交给国际标准化组织,在数次行政讨论之后,应一些主要的法国汽车厂商要求增加了VehicleAreaNetwork(VAN)内容,并于1993年11月出版了CAN的国际标准ISO11898。除了CAN协议外它也规定了最高至1Mbps波特率时的物理层同时在国际标准ISO11519-2中也规定CAN数据传输中的容错方法。1995年国际标准ISO11898进行了扩展以附录的形式说明了29位CAN标识符。但令人伤心的是所有出版的CAN规范均包含错误,或者不完整。因此为避免出现不兼容的CAN应用,Bosch公司一直在进行验证CAN芯片是否基于Bosch的CAN参考模型的工件。国际标准ISO11992卡车和拖车接口和ISO11783农业和森林机械,都在美国标准J1939的基础上定义了基于CAN应用的子协议,但是它们也并不完整。1.1.2CAN先行者的发展尽管当初研究CAN的起点是应用于客车系统,但CAN的第一个市场应用却来自于其他领域,特别是在北欧,CAN早已得到非常普遍的应用:在荷兰,电梯厂商Kone使用CAN总线。瑞士工程办公室Kvaser已建议将CAN应用至一些纺织机械厂,并由他们提供机器的通讯协议。这一领域中在Lars-BernoFredriksso的领导下公司建立了CAN纺织机械用户集团,到1989年他们已研究出通讯原理,并于1990年早期帮助建立CANKingdom开发环境,尽管CANKingdom并不是一种基于OSI参考模型的应用层,但它被认为是基于CAN的高层协议的原型。在荷兰Philips医疗系统决定使用CAN构成X光机的内部网络,成为CAN的工业用户。主要由TomSuters发表的Philips报文规范,PMS提出了CAN网络的第一个应用层。1.1.3CAN前景展望由于CAN总线为越来越多不同领域采用和推广,导致要求不同应用领域通信报文的标准化。为此,1991年9月 PhilipsSemiconductors制定并发布了CAN技术规范(Version2.0)。该技术规范包括A和B两部分。2.0A给出了曾在CAN技术规范版本1.2中定义的CAN报文格式,2.0B给出了标准的和扩展的两种报文格式。此后,1993年11月ISO正式颁布了道路交通运输工具-数字信息交换-高速通信控制器局部网(CAN)国际标准(ISO11898),为控制器局部网标准化,规范化推广铺平了道路。尽管CAN协议已经有15年的历史,但它仍处在改进之中。从2000年开始一个由数家公司组成的ISO任务组织定义了一种时间触发CAN报文传输的协议。BerndMueller博士,ThomasFuehrerBosch公司人员和半导体工业专家、学术研究专家将此协议定义为时间触发通讯的CAN——TTCAN。计划在将来标准化为ISO11898-4,这个CAN的扩展已在硅片上实现。TTCAN将为CAN延长5-10年的生命期,现在CAN在全球市场上仍然处于起始点,当得到重视。谁也无法预料CAN总线系统在下一个10、15年内的发展趋势。这里需要强调一个现实,近几年内美国和远东的汽车厂商将会在他们所生产汽车的串行部件上使用CAN,另外大量潜在的新应用例如娱乐正在呈现,不仅可用于客车也可用于家庭消费,同时结合高层协议应用的特殊保安系统对CAN的需求也正在稳健增长。德国专业委员会BIA和德国安全标准权威TUV已经对一些基于CAN的保安系统进行了认证,CANopen-Safety是第一个获得BIA许可的CAN解决方案。全球分级协会的领导者之一GermanischerLloyd正在准备提议将CANopen固件应用于海事运输。PAGE651.2CAN总线的基本特点CAN(控制器局域网)是国际上应用很广泛的一种现场总线。它作为一种串行通信总线,最初被设计为汽车工业中的微控制器通信用,由于它具有高可靠性和独特的设计、在多主系统中的优势及很高的实时性,现在CAN总线已经在汽车工业、航天工业等领域的控制系统中得到了很广泛的应用,并且是到目前为止唯一一种成为国际标准(ISO)的现场总线,被认为是目前最有前途的现场总线之一。CAN是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。当信号传输距离达到10Km时,CAN仍可提供高达5Kbit/s的数据传输速率。一个由CAN总线构成的单一网络中,理论上可以挂接无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例如,当使用PhilipsP82C250作为CAN收发器时,同一网络中允许挂接110个节点。CAN可提供高达1Mbit/s的数据传输速率,这使实时控制变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干扰能力。CAN属于总线式串行通信网络。由于其采用了许多新技术及独特的设计,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。其特点可概括如下:

1)CAN为多主方式工作,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,而不分主从,通信方式灵活,且无需站地址等节点信息。利用这一特点可方便池构成多机备份系统。

2)CAN网络上的节点信息分成不同的优先级,可满足不同的实时要求,高优先级的数据员多可在134微秒内得到传输。

3)CAN采用非破坏性总线仲裁技术,当多个节点同时向总线发送信息时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响地继续传输数据,从而大大节省了总线冲突仲裁时间。尤其是在网络负载很重的情况下也不会出现网络瘫痪情况(以太网则可能)。

4)CAN只需通过报文滤波即可实现点对点、一点对多点及全局广播等几种方式传送接收数据,无用专门的“调度”。

5)CAN的直接通信距离最远可达10km(速率5kbPs以下);通信速率最高可达1Mbps(此时通信距离员长为40m)。

6)CAN上的节点数主要取决于总线驱动电路,目前可达110个;报文标识符可达2032种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制。

7)采用短帧结构,传输时间短,受干扰概率低,具有极好的检措效果。

8)CAN的每帧信息都有CRC校验及其他检错措施,保证了数据出错率极低。

9)CAN的通信介质可为双绞线、同轴电缆或光纤,选择灵活。

10)CAN节点在错误严重的情况下具有自动关闭输出功能.以使总线上其他节点的操作不受影响。CAN得到Motorola、Intel、Philip、Siemence、NEC等公司的支持,CAN的应用范围遍及从高速网络到低成本的多路线网络,广泛地应有与离散控制系统。CAN的信号传输采用段帧结构,每一帧的有效字节数为8个,因而传输时间短,受干扰的概率低,由于其采用CRC-16的校验方式,误码率仅为。CAN总线上的数值逻辑,如图1-1所示,CAN中的总数值为两种互补的逻辑数值之一:“显性”或“隐性”。“显性”(Daminant)数值表示逻辑“0”,而“隐性”(Recessive)表示逻辑“1”。“显性”和“隐性”位同时发送时,最后总线数值将为“显性”。在“隐性”状态下,被固定于平均电压水平,近似为0。在总线空闲或“隐性”位期间,发送“隐性”状态。“显性”状态以大于最小阈值的差分电压表示。在“显性”位期间,“显性”状态改写“隐性”状态,并发送。隐性位隐性位隐性位图1-1CAN总线位的数值表示时间t/ms平均电压CAN总线的速率与距离的关系。CAN系统内两个任意节点的最大传输距离与其位速率有关。由于CAN技术的应用普遍推广导致要求通信协议的标准化。为此,1991年9月Bosch公司制定并发布了CAN技术规范(Version2.0)。该技术规范包括A和B两部分。2.0A给出了曾在CAN技术规范版本1.2中定义的CAN报文格式。此后,1993年11月ISO正式颁布了道路交通运输工具-数字交换-高速通信控制器局部网(CAN)国际标准(ISO11898),为CAN进一步标准化,规范化起到了推广的作用。1.3CAN通信协议CAN总线作为一种国际标准,也遵从网络标准模型。按照IEEE802.2和802.3,CAN只采用了OSI参考模型全部七层中的两层,即物理层和数据链路层。物理层又分为物理层信号(PhysicalLayerSignalPLS),物理媒体连接(PhysicalMediumAttachment-PMA)与介质从属接口(MediumDependentInterfaceMDI)三部分,完成电器连接,实现驱动器/接受其特性,定时,同步,位编码解码。数据链路层分为逻辑链路控制(LLC)与媒体访问控制(MAC)两部分,分别完成接受滤波超载通知,恢复管理,以及应答,帧编码,数据封装拆装,媒体访问管理,出错检验等,如图1-2所示,实际应用CAN总线时,用户可根据需要实现应用层的功能。应用层表示层应用层表示层会话层传输层网络层数据链路层物理层LLCMACPLSPMALLCMACPLSPMA媒体图1-2CAN通信模型1.3.1物理层物理层定义信号是如何实际地传输的。这里将连接于总线的各个节点称为电子控制装置(ECU)。因此物理层涉及到的是将ECU连接至总线的电路实现。ECU的总数受限于总线上的电器负载。物理层按照IEEE802.3LAN标准规范构造模型,如图1-2所示。它划分为如下三部分:1.物理层信号物理层信号(PhysicalLayerSignalPLS)实现于位表示,位定时和同步相关的功能。(1)位定时理想发射器在没有冲同步的情况下,每妙发送的位数定义为标准位速率(NominalBitRate),标称位时间(NominalBitTime)定义为标称位速率的倒数,即标称位时间=1/标称位速率标准位时间标准位时间相位缓冲段2相位缓冲段1传播段同步段相位缓冲段2相位缓冲段1传播段同步段采样点采样点图1-3标称位时间的组成图1-3标称位时间的组成位时间指的是一位的持续时间。在位时间框架内执行的总线管理功能,诸如ECU同步状态,网络发送延迟补偿和采样点定位,均由CAN协议集成电路的可编程位定时逻辑确定。正常位时间可划分为分开的,不重叠的时间段,如图1-3所示。这些时间段包括同步段(Sync-Seg),传播段(Prop-Seg)和相位缓存段1(Phase-Seg)和相位缓存段2(Phase-Seg2)。同步段用于同步总线上的各个节点或设备。在此段内,等待一个跳边沿。传播段用于补偿网络内的物理延迟时间,输入比较起延迟时间和输出收发器延迟时间的2倍。相位缓存段1和相位缓存段2用于补偿相位边沿的误差。这两个时间段可通过重新同步加以延长或缩短。采样点读取总线电平,并被转化为相应位数值的一个时间点,其位于相位缓冲段1的结束处。信息处理时间始于采样点,它被保留用作计算子序列位电平的时间段。位时间按时间量程进行编程。时间量程是由震荡周期推出的固定时间单位。存在一个可编程的预分刻度数值,其范围为1~30的整数。自时间量程最小开始,时间量程的长度为:时间量程=m时间量程最小值式中m为预分刻度数值。组成位时间的各时间长度分别为:同步段长度为1个时间量程;传播段长度可编程位1、2、3、…、8或更多时间量程;相位缓冲段1长度可编程为1、2、3、…、8或更多时间量程;相位缓冲段2为相位缓冲段的最大值加信息处理时间。信息处理时间长度为小于或等于2个时间量程。位时间中时间量程总数必须编程为至少8~25。对于不同ECU中震荡器的频率应加以调整,以便提供系统规定的时间量程。(2)位编码/解码位编码即位流编码,CAN规定CAN的数据帧的五个部分(包括帧起始、仲裁域、控制域、数据域以及CRC序列)均通过位填充的方法编码。无论何时,发送器只要检测到位流里有5个连续相同值的位,便自动在位流里插入一补充位。数据帧或远程帧的其它位域,包括界定符应答域和帧结束格式固定,没有位填充。错误帧和远程帧的格式也是固定的,他们不用位填充的方法编码。CAN规定,CAN报文的位流根据“不归零”的方法来解码。这就是说,在整个位时间里,位的电平要么为显性,要么为隐性。(3)同步同步包括硬同步和重同步两种形式。一个硬同步后,位时间由每个位定时逻辑单元以同步段重新启动。因此,硬同步强迫引起硬同步的跳变沿处于重新开始的位时间同步段内。而重同步的结果使相位缓冲段1延长或相位缓冲段2缩短。延长和缩短相位缓冲器段的综合存在一个上限,此上限由重同步跳转宽度给定。重同步跳转宽度应通过编程设置在1和4(PhaseSeg1)之间。时钟信息可以从一位值至另一位值的跃变中提取。由于具有连续相同数值位的最大数目是固定的,这一特性使得在帧起间总线单元重同步于流成为可能。可用于重同步的两个跳变之间的最大长度为29个位时间。同步边沿的相位误差e由相对于同步段边沿的位置给定,以时间量程度量。相位误差的符号定义如下:e=0,若边沿位于同步段内;e>0,若边沿位于采样点前;e<0,若边沿位于采样点后。当引起重同步的边沿相位误差的值小于或等于重同步跳转宽度的编程数值时,重同步导致位时间缩短或延长,使采样点处于正确位置。当相位误差值大于重同步跳转宽度时,如果相位误差e为正,则PhaseSeg1延长的数值等于一个重同步跳转宽度的值;如果相位误差e为负,则PhaseSeg2缩短的数值等于一个重同步跳转宽度的值。硬同步和重同步遵从下列同步规则:1)在一个位时间内仅允许一种同步;2)仅当采样点之前检测到的数值(先前读总线数值)与紧跟边沿之后出现的总线数值不同时,边沿才被用于同步;3)总线空闲期间,无论何时,只要一有“隐性”至“显性”的跳变沿,就执行硬同步;4)所有满足规则1)和2)的其他“隐性”至“显性”的跳变沿(和在低位速率情况下,选择的“显性”至“隐性”跳变沿)将被用于重同步;例外情况是,若有“隐性”至“显性”的跳变沿被用于重同步,由于具有正相位误差的“隐性”至“显性”的跳变沿的结果,发送器将不完成重同步。1.3.2物理媒体连接子层(PMA)PMA子层的主要功能是实现总线发送/接受的功能电路,并可提供总线故障检测方法。在CAN技术规范2.0B中没有定义该层的驱动器/接受器的特性,以便在具体应用中进行优化设计。在1993年形成的国际标准ISO11898中对基于双绞线的物理媒体连接特性做了建议。由物理媒体连接(PMA)和媒体从属接口(MDI)构成媒体访问单元(MAU)。1.3.3媒体访问控制子层媒体访问控制子层是CAN协议的核心。它把接收到的报文提供给子层,并接受来自子层的报文。子层负责报文分帧,仲裁,应答,错误检测和标定。CAN有两种帧格式,一种是含有11位标识符的标准帧和含有29位标识符的扩展帧另外,数据在节点间发送和接收以四种不同类型的帧出现和控制。其中,数据帧将数据由发送器传至接收器;远程帧由节点发送,以请求发送具有相同标识符的数据帧;出错帧可由任何节点发送,以检测总线错误。而超载帧用于提供先前和后续数据帧或远程帧之间的附加延时。另外,数据帧和远程帧以帧空间隔同先前帧隔开。1.数据帧一个数据帧由7个不同位域(场)构成,它们是帧起始(StartOfFrameSOF)、仲裁帧、控制域(两位保留位+DLC域)、数据域、CRC域、ACK域和帧结束(EOF-EndOfFrame),如图1-4所示:(1)帧起始(SOF)标志数据帧和远程数据帧的起始,它由单个“显性”位构成。只有当总线为空闲状态时,才允许节点开始传送,所有节点必须同步于首先开始发送节点帧起始引起的上升沿。(2)仲裁域标准帧格式与扩展帧格式的仲裁域格式不同。在标准格式中,仲裁域由11位标识符(Identifier—ID)和一位远程发送请求(RemotTransmissionRequest—RTR)位构成。11位标识符由基本ID-28~ID-18组成,并且按ID-28到D-18的顺序发送。16bit16bit12或32bitbit6bit0~8B16bit2bit7bit≧3bit帧起始仲裁域控制域数据域CRC域ACK域帧结束帧间隔图1-4报文的数据帧结构在扩展格式中,仲裁域由29位标识符、1位替代远程请求(SubstituteRemoteRequest—SRR)位、一位标识符扩展位(IdentifierExtension—IDE)位和一位RTR位组成。29位标识符包括11位基本ID和18位扩展ID。基本ID和标准格式是一样的,按ID-28到D-18的顺序发送。扩展ID按ID-17到ID-0的顺序发送。SSR位数值总为“1”,IDE位数总为“1”。(3)控制域控制域由6位构成。标准帧格式与扩展帧格式的控制与格式不同。标准格式里的控制域包括4位数据长度代码(DataLengthCode—DLC)、IDE位(数值为“0”)和保留位r0。扩展格式里的控制域包括4位数据长度代码(DLC)、两个保留位r1、r0。数据长度代码指示了数据里的字节数目。DLC的编码含义见表1-5。接收器接收“0”和“1”位作为所有组合中的保留位。在定义保留位功能之前,发送器只能发送“0”位。(4)数据域数据域由数据帧内被发送的数据组成,它可包括0~8个字节,每个字节包括8位。(5)CRC域CRC域包括CRC序列,后随CRC界定符。用于帧校验的CRC序列由特别适用于位数小于127位帧的循环冗余码校验(BCH码)驱动。为实现CRC计算,作为除数的多项式被定义为这样一个多项式,其系数由帧起始,仲裁域,控制域,数据域(如果存在)和15位最低系数为0组成的解除填充的位流给定。此多项式除以下列生成多项式:除以(系数按模2计算),相除的余数即为发至总线的CRC序列。(6)ACK域ACK域为两位:ACK隙和ACK界定符。发送节点的ACK域中,送出两个“隐性”位。在ACK隙内,所有接收到匹配CRC序列的节点,以“显性”位改写发送器的“隐性”位送出一个应答。ACK界定为ACK场的第二位。它必须是“隐性”位,因此,ACK隙被两个“隐性”位(ACK界定符和CRC界定符)所包围。(7)帧结束每个数据帧和远程帧均由7个“隐性”位构成的标志序列界定。表1-5由DLC表示的数据字节数目的编码数数据字节数目DLCDLC3DLC2DLC1DLC00000010001200103001140100501016011070111810002.远程帧激活为数据接收器的节点可以通过发送一个远程帧启动源节点发送各自的数据。一个远程帧由6个不同的围场构成:帧起始(SOF)、仲裁域、控制域、CRC域,ACK域和帧结束(EOF),如图1-6所示:1bit1bit12或32bitbit6bit16bit2bit7bit≧3bit帧起始仲裁域控制域CRC域ACK域帧结束帧间隔图1-6报文远程帧结构远程帧也有标准格式(11bit标识符)和扩展格式(29bit标识符)。在MAC数据帧中,RTR位数值为“1”,与数据帧是相反的。帧起始(SOF),控制域,CRC域,ACK域和帧结束(EOF)等位域均与MAC数据帧的相应位域相同。3出错帧出错帧由两个不同的域构成:第一个域由来自不同节点的错误标志叠加给出;第二个域为错误定界符。(1)错误标志有两种错误标志形式:错误主动标志和错误被动标志。前者由6bit连续的显性位构成;后者由6bit的连续的隐性位构成,除非被其他节点的显性位覆盖。检测到出错状态的“错误主动”节点通过发送错误主动标志来指示错误。因为这个错误标志的格式违反了从帧的起始到定界符的位填充规则,也破坏了要求固定形式的位域。这样,所有其他的节点将检测到一个出错状态,并开始发送错误标志。因此,各节点发送的不同错误标志叠加起来就形成了出错帧的第一个域。实际上总线上的监控到的是叠加的“显性”位序列,其总长度在最小值6bit~最大值12bit之间变化。检测到出错状态的“错误被动”节点通过发送错误被动标志来指示错误。错误被动的节点从错误被动标志的开头起,等待6个后续的相同的极性的位。当这6个相同的位被检测到时,错误被动标志就完成了。(2)错误定界符错误定界符由8bit隐性位构成。传送了错误标志后,每个节点就发送一个隐性位,并一直监控总线直到检测到一个隐性位为止。然后就开始发送剩余的7个隐性位。4.超载帧存在两类具有相同格式的超载帧:LLC要求的超载帧和重激活超载帧。前者为LLC子层所要求,以表明内部超载状态,后者将由MAC子层的一些出错条件而被启动发送。超载帧包括两个位场:超载标志和超载定界符。超载标志的完整形式相应于活动错误标志。超载定界符与错误定界符具有相同形式。超载标志由6个“显性”位构成。由于超载标志形式破坏了发送场的固定形式,因此所有其它节点将检测到一个超载条件,并在其部件上开始发送一超载标志。超载定界符由8bit隐性位构成。发送超载标志后,每个节点均监控总线,直到检测到隐性位。此时,每个节点发出其超载标志,并且所有节点开始发送剩余的7个“隐性”位,以完成8bit长度超载定界符。5.帧间空间数据帧和远程帧同前述的任何帧(数据帧、远程帧、出错帧、超载帧)用称之为帧间空间的位域隔开。与此相反,超载帧和出错帧前面不存在帧的空间,并且多个超载帧也不用帧间空间分离。帧间空间包括间歇场和总线空闲场,并且对于先前帧已发送“错误认可”的节点还有暂停发送场。(1)间歇场间歇场由3个“隐性”位构成,间歇期不允许节点开始发送数据帧或远程帧,仅起标注超载条件的作用。(2)总线空闲场总线空闲时间可以是任意长度。总线空闲时间内,任何节点均可访问总线,以便发送。其它帧发送期间,等待发送的帧在紧随间歇场后的第一位启动。如果在总线空闲期间检测到总线是“显性”位,将被理解为帧起始。(3)暂停发送场“错误节点”完成发送后,其在紧随间歇后,被允许在发送下一帧前发送8bit“隐性”位。期间,若有发送启动(由其它节点引起),则节点将变为该帧的接收器。6.媒体访问和仲裁当检测到间歇场未被“显性”位中断后,认为总线被所有节点释放。总线一旦释放,“错误主动”节点可以访问总线,接受当前或先前帧的“错误被动”节点也可以访问总线。一旦完成暂停的发送,并且期间没有其它节点开始发送,发送当前帧或已发送完先前帧的“错误被动”节点可以访问总线。当允许节点访问总线时,MAC数据帧和MAC远程帧可以开始。MAC错误帧和MAC超载帧如上述规定被发送。发送期间,发送数据帧或远程帧的每个节点均为总线主站。当许多节点一起开始发送时,此时只有发送具有最高优先权帧的节点变为总线主站。这种解决总线访问碰撞的机理是基于竞争的仲裁。仲裁期间,每个发送器将发送位电平和总线上侦听到的电平进行比较。若相等,则节点可以继续发送。当送出一个“隐性”电平,而侦听到的为“显性”电平时,表明节点丢失仲裁,并且不应再送更多位。当送出“显性”电平,而检测到“隐性”电平时,表明节点检测出位错误。基于竞争的仲裁依靠标识符和紧随其后的RTR位完成。具有不同标识符的两帧中,优先权被标注于帧中,较高优先权的标识符具有较低的二进制数值。若具有相同标识符的数据帧和远程帧同时被初始化,数据帧较之远程帧具有较高的优先权,它通过按照RTR位数值标注达到。除仅当总线释放时,可以启动发送这一原则外,还存在解决碰撞的下列原则:(1)在一个系统内,每条信息必须标以唯一的标识符。(2)具有给定标识符和非零数据长度代码(DLC)的数据帧仅可由一个节点启动。(3)远程帧仅可以由全系统内确定的DLC发送,该数据长度码对应数据帧的DLC。由于相同标识符和不同DLC的远程帧同时发送将导致不能解决的碰撞。CAN具有较高的效率是因为总线仅仅被那些请求总线悬而未决的站利用,这些请求是根据报文在整个系统中的重要性按顺序处理的。这种方法在网络负载较重时有很多优点,因为总线读取的优先级已被按顺序放在每个报文中了,这可以保证在实时系统中有较短的个体隐伏时间。对于主站的可靠性,由于CAN协议执行非集中化总线控制,所有主要通信,包括总线读取(许可)控制,在系统中分几次完成。这是实现有较高可靠性通信系统的方法。1.3.4逻辑链路控制(LLC)子层LLC子层的功能包括以下三个部分:1.帧接受滤波在LLC子层上开始的帧跃变是独立的,其自身的操作与先前的帧跃变无关。帧内容由标识符命名。标识符并不能指明帧的目的地,但可描述数据的含义,每个接受器通过帧接受滤波确定此帧与其是否有关。2.超载通告如果接受内部条件要求延迟下一个LLC数据帧或LLC远程帧,则通过LLC子层开始发送超载帧。最多可产生两个超载帧,以延迟下一个数据帧或远程帧。3.恢复管理发送期间,对于丢失仲裁或或被错误干扰的帧,LLC子层具有自动重发功能。在发送成功完成之前,帧发送服务不被用户认可。LLC数据帧由三个位场(标识符场、DLC场和LLC数据场)组成。LLC远程帧由两个位场(标识符场和DLC场)组成。LLC远程帧标识符格式与LLC数据帧标识符格式相同,只是不存在DLC场。DLC的数值是独立的,此数据为对应LLC数据帧的DLC。1.4CAN数据交换原理CAN是一种基于广播的通讯机制,广播通讯依靠报文(Message)的传送机制来实现,因此CAN并未定义站及站地址,而仅仅定义了报文,这些报文依靠报文确认,(Identifier)来进行识别,一个消息报文确认区在一个网络中必须是惟一的,它不但描述了某一报文的意义,而且还定义了报文的优先级,当很多站都在访问总线时,优先级是很重要的。CAN使用地址访问的方法,使网络的配置变得非常灵活,用户可以很容易的增加一个新的站到一个己经存在CAN的网络里,而不用对己经存在的站进行任何硬件或软件上的修改,但必须被新的站点完全的接受,这样它将不会对网络上各结点的通讯产生影响。1.5CAN总线网络拓扑结构CAN总线作为现场总线的一种,它具备现场总线的基本特性,以现场总线为基础组成现场网络主要有三种形式:(1)星型网络星型网即以1台称之为中心处理机的计算机为主组成网络,各种类型的入网机均与该中心处理机有物理链路直接相连,因此,所有的网上传输信息均需要通过该机转发,其结构如图1-7所示。在图1-7中,主机为整个现场测试网络中的上位机,主要负责网络的统一管理以及测试数据的后续处理。C为各个子节点PC机,主要负责与现场测试单元进行通信,并将现场的测试数据及时发送到主机中。T为PC子节点以下的各个种现场测试单元,主要负责现场数据采集,并对测试数据进行适当的处理,包括信号放大和信号滤波等。现场测试单元有很多种,比如:应变测试单元、温度测试单元、位移测试单元等等。星型网络的结构特点是:构造较容易,适于同种机型互连,通信功能简单,它可以根据需要由中心处理机分时或按优先权处理。但是在星型网络中,主机的负载过重,扩充困难,每台入网计算机均需与主机有线路直接互连,因此线路利用率不高,信道容量浪费较大。主机主机前端机CCTTTTTTTTTTCTTTTTTTT图1-7星型网结构示意图T(2)总线型网总线型网是从计算机的总线访问控制发展而来的,它将所有的入网机通过分接头接入一条载波传输线上,网络拓扑结构就是一条传输线,如图1-8所示。其中主机主要负责对整个网络进行管理,同时对数据进行后续处理。下位机主要负责对现场数据进行管理。T为测试现场的各种测试模块。总线型网络的特点是所有入网机共用一条传输信道,信道利用率高,同一时刻只能有两处网络节点在相互通信;网络延伸距离有限,一般局域网络多采用此种方式。主机主机分接头分接头分接头下位机下位机TTTTTT数据链路层T图1-8总线型网结构示意图(3)环型网环型网通过一个转发器将每台入网计算机接入网络,每个转发器与相邻两台转发器用物理链路相连,所有转发器组成一个拓扑为环的网络系统,如图1-9所示。环型网由于其点—点通信路由的唯一性,因此,不宜在广域范围内组建网络。环型网主要应用于计算机群组,对于要求能够实现全局广播方式通信的现场网络来说,环型网并不具备太大优势。TTTTTTTTCCCCTTTTCCCCTTTTTT TTTTTT 图1-9环型网结构示意图第2章PCI总线2.1PCI总线概述PCI总线的英文全称为PeripheralComponentInterconnect。即外部设备互联总线,是于1993年推出的PC局部总线标准。PCI局部总线是一种高性能、32位或64位地址数据线复用的总线。它的用途是在高度集成的外设控制器器件、扩展卡和处理器/存储器系统之间提供一种内部的连接机构。PCI总线是一种不依附于某个具体处理器的局部总线。从结构上看,PCI是在CPU和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。管理器提供了信号缓冲,使之能支持10种外设,并能在高时钟频率下保持高性能。PCI总线也支持总线主控技术,允许智能设备在需要时取得总线控制权,以加速数据传送。PCI器件和扩展卡是独立于微处理器的,所以在利用未来微处理器时,PCI也能应用,而且还使PCI多处理系统中也能使用。独立于微处理器的PCI局部总线能使I/O功能更加优化,能使局部总线于微处理器/存储器子系统同时工作,并满足多种高性能要求。PCI总线还定义了由32位数据地址总线扩充为64位总线的方法,使总线宽度加倍,并对32位和64位PCI局部总线外设做到向前和向后兼容。PCI总线的主要特点是传输速度高,目前可实现66M的工作频率,在64位总线宽度下可达到突发(Burst)传输速率533MB/s。可以满足大吞吐量的外设的需求。采用这种总线类型的网卡在当前的台式机上相当普遍,也是目前最主流的一种网卡接口类型。因为它的I/O速度远比ISA总线型的网卡快(ISA最高仅为33MB/s,而目前的PCI2.2标准32位的PCI接口数据传输速度最高可达133MB/s),所以在这种总线技术出现后很快就替代了原来老式的ISA总线。2.2PCI总线的发展最早的PC总线是IBM公司1981年在PC/XT电脑采用的系统总线,它基于8bit的8088处理器,被称为PC总线或者PC/XT总线。在1984年的时候,IBM推出基于16-bitIntel80286处理器的PC/AT电脑,系统总线也相应地扩展为16bit,并被称呼为PC/AT总线。而为了开发与IBMPC兼容的外围设备,行业内便逐渐确立了以IBMPC总线规范为基础的ISA(工业标准架构:IndustryStandardArchitecture)。ISA是8/16bit的系统总线,最大传输速率仅为8MB/s,但允许多个CPU共享系统资源。由于兼容性好,它在上个世纪80年代是最广泛采用的系统总线,不过它的弱点也是显而易见的,比如传输速率过低、CPU占用率高、占用硬件中断资源等。后来在PC98规范中,就开始放弃了ISA总线,而Intel从i810芯片组开始,也不再提供对ISA接口的支持。使用286和386SX以下CPU的电脑似乎和8/16bitISA总线还能够相处融洽,但当出现了32-bit外部总线的386DX处理器之后,总线的宽度就已经成为了严重的瓶颈,并影响到处理器性能的发挥。因此在1988年,康柏、惠普等9个厂商协同把ISA扩展到32-bit,这就是著名的EISA(ExtendedISA,扩展ISA)总线。EISA总线的工作频率仍旧仅有8MHz,并且与8/16bit的ISA总线完全兼容,由于是32-bit总线的缘故,带宽提高了一倍,达到了32MB/s。可惜的是,EISA仍旧由于速度有限,并且成本过高,在还没成为标准总线之前,在20世纪90年代初的时候,就给PCI总线给取代了。CPU的飞速发展,ISA/EISA逐渐显现出疲态,跟不上时代的步伐。当时CPU的速度甚至还高过总线的速度,造成硬盘、显示卡还有其它的外围设备只能通过慢速并且狭窄的瓶颈来发送和接受数据,使得整机的性能受到严重的影响。为了解决这个问题,1992年Intel在发布486处理器的时候,也同时提出了32-bit的PCI(周边组件互连)总线。最早提出的PCI总线工作在33MHz频率之下,传输带宽达到了133MB/s(33MHzX32bit/8),比ISA总线有了极大的改善,基本上满足了当时处理器的发展需要。PCI总线允许十个接插件,同时它还支持即插即用。是目前最主流的一种接口类型。随着对更高性能的要求,1993年提出此了64-bit的PCI总线,后来又提出把PCI总线的频率提升到66MHz。目前广泛采用的是32-bit、33MHz的PCI总线。1991年下半年,Intel公司首先提出了PCI的概念,并联合IBM、Compaq、AST、HP、DEC等100多家公司成立了PCI集团,其英文全称为:PeripheralComponentInterconnectSpecialInterestGroup(外围部件互连专业组),简称PCISIG。PCI是一种先进的局部总线,已成为局部总线的新标准。PCI总线是独立于CPU的系统总线,采用了独特的中间缓冲器设计,可将显示卡、声卡、网卡、硬盘控制器等高速的外围设备直接挂在CPU总线上,打破了瓶颈,使得CPU的性能得到充分的发挥。可惜的是,由于PCI总线只有133MB/s的带宽,对付声卡、网卡、视频卡等绝大多数输入/输出设备也许显得绰绰有余,但对于胃口越来越大的3D显卡却力不从心,并成为了制约显示子系统和整机性能的瓶颈。因此,PCI总线的补充——AGP总线就应运而生了。Intel于1996年7月正式推出了AGP(加速图形接口,AcceleratedGraphicsPort)接口,这是显示卡专用的局部总线,是基于PCI2.1版规范并进行扩充修改而成,工作频率为66MHz,1X模式下带宽为266MB/S,是PCI总线的两倍。后来依次又推出了AGP2X、AGP4X,现在则是AGP8X,传输速度达到了2.1GB/S。利用PCI总线技术的显示卡,第一次真正地实现了多媒体效果,并且可以支持增强色和真彩色等色彩模式,这与当时只能支持256色的VESAVLB显示卡相比,简直是不可思义。如果计算机只需要进行上网浏览和软件下载等简单的应用,PCI技术也就足够了。然而时光飞逝,转眼就到了2006年,新的技术和设备层出不穷,特别是游戏和多媒体应用越来越广泛,PCI的工作频率和带宽都已经无法满足需求。此外,PCI还存在IRQ共享冲突,只能支持有限数量设备等问题。PCI现在已经接近了其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论