
CAN总线应用例子.doc
82页一种CAN息线光纤传输接口设计[日期: 2008-3-14 ] 来源:单片机及嵌入式系统应用 作者:北京航空航天大学 习亮 夏继强[字体:大 中 小] 摘要 在分析CAN总线双绞线和光纤传输特点的基础上,提出一种基于光纤收发一体模块及CAN总线控制器SJAl000的光纤传输接口设计方案;详细介绍光纤收发器的选取及传输接口的实现;根据光纤收发一体模块对信号源时钟提取的要求以及CAN总线的非破坏性总线仲裁的特点,设计了一种CAN总线信号编解码方法,井用FPGA加以实现;通过实际的通信实验验证了设计方案的正确性,并根据实验数据对CAN总线在两种介质下的传输性能作了比较关键词 CAN总线 光纤 传输接口 FPGA 引 言 作为一种成熟的现场总线技术,CAN(Controller Area Network)总线在汽车、电力、机械、化工等工业控制领域得到了极为广泛的应用CAN协议标准中规定了CAN总线支持的两种传输介质——双绞线和光纤目前,绝大多数CAN总线系统采用的都是双绞线传输光纤一般应用于大容量、高速率的传输中,对于CAN总线这种传输速率较低、数据量较小的现场总线通信,光纤传输的优势得不到完全发挥,因此光纤传输的应用还不多。
国内外多家研究机构也都进行了CAN总线光纤传输的研究,但主要是基于分立光纤收发元件的方法本文介绍了一种使用光纤收发一体模块,结合编解码算法实现CAN总线光纤传输接口的方案;根据CAN总线的特点和实验数据,分析了CAN总线在光纤介质下传输性能的改善1 CAN总线的双绞线及光纤传输1.1 CAN总线双绞线传输 CAN总线典型的网络拓扑是总线结构1993年颁布的国际标准ISOll898对基于双绞线的CAN总线传输介质特性做出了建议:总线可具有两种逻辑状态,即隐性(逻辑“1”)或显性(逻辑“O”)图1为基于CAN总线控制器SJAl000和总线驱动器PCA82C250的CAN双绞线传输网络结构图 CAN总线双绞线传输接口的特点是技术上容易实现,造价低廉;理论上节点数无限制,对环境电磁辐射有一定抑制能力但随着频率的增长,双绞线线对的衰减迅速增大;双绞线还有所谓近端串扰,即在“发送线对”和“接收线对”之间存在电磁耦合干扰另外,双绞线的传输速率受距离限制比较大这些缺陷使得CAN总线不宜在强干扰、高速率、远距离的场合下使用双绞线作为传输介质1.2 CAN总线光纤传输 CAN协议支持光纤作为传输介质,但是由于CAN总线网络一般采用总线型结构,并且其总线仲裁采取的是具有优先级的非破坏性CSMA(载波侦听多路访问),而光纤信号的传输则是单向的,因此最简单实用的方法是在某些总线支路上采用光纤介质,整个CAN网络为双绞线和光纤两种传输介质混合使用的方式。
结构如图2所示 作为传输介质,光纤在抗干扰性、传输容量、速率等方面具有许多比双绞线优良的特性因此,在某些环境恶劣、地理分布范围较广、速率要求较高的CAN总线系统中,可以在相应的支路上使用光纤传输,从而保证整个CAN网络的性能2 光纤传输接口实现方案2.1 光纤收发模块的选用 实现光纤传输的一个重要环节就是完成总线信号的光电转换,可以使用专用的光纤收发器件目前,光纤收发器有两种类型:一种是基于分立元件的,即光接收和光发送模块足独立的这种光收发模块相对比较简单,光发射部分主要由光源和偏置控制电路组成;光接收部分主要由光探测器、整形放大电路组成,一般采用塑料或多模光纤进行传输另一种是光纤收发一体模块,它在光源、光探测、光器件封装、驱动集成电路、放大集成电路技术进步的基础上,将接收和发送集成到一起、符合电信传输标准的光电子系统;在光发射部分使用了性能更好的光源,并在接收部分加入了时钟及再生判决电路等,一般采用单模光纤进行传输因此,光纤收发一体模块在信号转换的速率和稳定性上都比分立的光纤收发器件有很大的提高,而且与外围器件接口方便,单模光纤的色散、传输光功率消耗也比多模光纤小 本设计中选用一款TTL光纤收发一体模块,标准工业用l×9引脚,单+5V电源供电,光纤传输模式为单模,标准ST-ST光纤接口。
该模块驱动接几如图3所示2.2 设计方案 由于光纤收发一体模块中含有时钟提取电路,要求所转换的信号流要含有丰富的时钟信息,以便时钟提取电路准确地捕获信号的频率,因此信号流中不宜包含较长的连“l”或连“O”而CAN总线在空闲以及发送某些类型帧时会出现比较长的连“1”或连“O”.尤其在通信波特率比较低的情况下,连续相同电平的时问就会越长,这将会导致接收器捕获不到信号流的准确波特率,从而导致光电转换后的信号的位时间不准确甚至错误因此,就要求对待转换的CAN信号流进行预先处理最常用的方法就是进行编码,编码后的信号流中包禽丰富的时钟信息,不会出现较长的连“1”或连“O”,经过光纤传输后再进行解码还原也就是说,在CAN控制器、骄动器与光电转换模块之间增加一个编解码器 据此提出一种基于CAN总线控制器SJAll300和光纤收发一体模块的CAN总线光纤传输接口方案,其结构如图4所示 接口分为发送端和接收端发送端由CAN总线控制器SJAl000、信号编解码器和光纤收发一体模块组成;接收端由CAN总线驱动器PCA82C250、信号编解码器和光纤收发一体模块组成CAN节点向总线发送数据时,发送端总线控制器SJAl000的发送信号TX经编码器进行编码之后,送至光纤收发一体模块进行信号的电一光转换,然后通过光纤传输到达接收端RX;接收端光纤收发一体模块先对收到的光信号进行光一电转换,再由解码器将编码信号还原,最后通过总线驱动器PCA82C250与总线连接,完成数据发送过程 数据接收过程同理。
3 光电转换编码、解码器设计3.1 CAN总线仲裁机制对编解码方案的要求 CAN总线的非破坏性总线仲裁机制的原理为:当总线空闲时,任何单元均可发送报文;若同时有2个或更多的节点开始发送报文,则会出现总线冲突对于总线访问冲突,可借助于标识符ID进行逐位仲裁加以解决仲裁期间,每个发送器将发送位电平同总线上检测到的电平进行比较:若相等.则节点继续发送;若不相等,则表明节点失去仲裁,停止报文发送只有总线访问优先权最高的节点继续报文发送,其他优先权较低的节点失去仲裁,主动停止报文发送,只有当总线空闲时才能继续启动报文发送因此,CAN节点每发送一位数据都要监听总线上的数据是否与所发送的一致 在不考虑信号在光纤中传输时的衰减及CAN节点自身限制的前提下,为了保证CAN总线通信的正常进行,在CAN总线的通信过程中必须保证信号延迟不能超过CAN总线的允许值,而这主要是由CAN总线物理层的位定时和同步功能决定的CAN总线的位时间被定义为一位的持续时间一个位时间可划分为4个不重叠的时间段,即同步段(SYNC_SEG)、传播段(PROP_SEG)、相位缓冲段1(PHASE_SEGl)和相位缓冲段2(PHASE_SEG2)。
其中,同步段用于同步总线上不同的节点,这一段内要有一个跳变沿;传播段用于补偿网络内的物理延迟时8间(包括总线上的信号传播时间和节点的内部延迟时间);相位缓冲段l和相位缓冲段2用于补偿边沿阶段的误差由于CAN总线中各个节点的时钟可能不一致,因此需要进行重新同步重新同步的结果,使相位缓冲段l增长,或使相位缓冲段2缩短,内部的位时间从同步段重新开始采样点位于相位缓冲段1的结束,在采样点时刻,CAN节点读总线电平通过编程采样点的位置可以优化总线定时 综上所述,假设信号在光纤中的传输时间为t传输,信号传输中因光电转换造成的延迟时间为t光电延迟,CAN节点同步及内部延迟为t内部延迟,则应满足以下关系: 式中,对于给定长度和波特率,光纤传输时间和节点内部延迟时间是确定的,因此要尽量缩短光电转换的延迟时间,即对CAN信号编解码算法提出了特殊要求,要尽量缩短编解码的延迟时间3.2 编码、解码方案 光纤传输中常采用的信号编码有CMI码、扰码、8B/10B码等虽然这些编码都能提供丰富的时钟信息,但是由于CAN总线的总线仲裁是具有优先级的非破坏性CSMA,这个特点决定了信号经过编解码后的延迟要尽可能得小。
提出一种lB/16B编码方法,编、解码规则如下:(1)编码规则 逻辑“l”——11l0101010lOl010 逻辑“0”——00Ol010101010101 具体做法是,用是待编码比特流波特率16倍的时钟频率对其每位进行采样,每一位采样16次,然后根据约定好的编码规则进行编码这样就将原比特流的一位编码成新的16位传输,每位的长度是原来位时间的1/16,而总的位时间不变编码后的信号不会出现较长的连“l”或连“0”(最长的连“l”或连“0”为4位)2)解码规则 逻辑“l”——连续采样3个“1” 逻辑“O”——连续采样3个“O” 具体做法是,用是经编码后比特流波特率3倍的时钟频率对编码后的信号进行采样(即一位采3次,取2次以上一样的作为本次采样最终结果)如果连续采到3个“l”,则解码输出为“1”;如果连续采到3个“0”,则解码输出为“O” 从1B/l6B编码、解码方法可以看出,经过编码之后,CAN信号流中不存在长时间的相同电平信号,有丰富的跳变沿供时钟提取电路捕获信号频率;解码时利用了编码信号流中的特征码,即连续3个以上的相同电平信号,采样到连续的3个“l”或3个“0”就得到解码结果。
实际上,采用这种编解码方法,一位编成为16位后,只有前3位是有用的信息,其余的都是冗余码;但是这样做可以缩短编解码的延迟时间,以满足CAN总线仲裁特性的要求3.3 编码、解码器的实现 本设计中采甩可编程逻辑器件来实现对信号的编解码,具体选用Altera公司的FLEX1OKlO系列FPGA;软件开发平台使用的是QuanusII 5.0和Modelsim SE5.8(第三方仿真工具);开发语言使用硬件描述语言VHDL编码、解码器的硬件逻辑结构如图5所示 逻辑功能的波形仿真结果如图6所示4 实验验证 通过两个CAN节点的通信实验,验证了该CAN光纤传输接口的正确性实验平台结构如图7所示 CAN通信节点使用光纤介质,与USB-CAN通信节点进行通信,并在PC机上显示通信情况在CAN总线各波特率下进行了两个节点的收发实验,结果证明该CAN光纤传输接口原理正确,具有可行性实验测得信号编、解码以及光电转换的延时时间(即t光电延迟),见表15 采用光纤对CAN总线通信性能的改善 下面结合上述光电转换实验所获得的实验数据,简要讨论一下当使用光纤替代双绞线作为通信介质后,CAN总线在通信性能上的改善。
在给定波特率下,光纤传输的最远距离L与信号在光纤中的传输时间t传输之间满足以下关系: L=V光纤×t传输式中:V光纤为信号在光纤中的传播速度电磁渡在介质中的传播速度为V=C/n(C为光速,n为介质的折射率),光在光纤中的传播速度近似为260m/μs,电磁波在双绞线中的传播速率大致为200m/μs这里取t内部延迟=O.4×t位时间,则可以估算出光纤传输时CAN总线的最大距离,如表2所列采用光纤作为传输介质,CAN总线的最大传输距离能够提高约40% 从表2中可以看出,由于CAN总线通信速率较低及非破坏性总线仲裁的特点,使用光纤传输介质,其传输距离的增加并不十分叫显,没能充分发挥光纤传输大容量、远距离的优势但是使用光纤仍然有它巨大的潜力: ①由于一般电磁辐射的频谱和光波的频谱相距甚远,它不会叠加到光信号上或混入光信号中,也很难进入光纤芯。
