(信号与信息处理专业论文)基于can总线的数据传输模块设计.pdf_第1页
(信号与信息处理专业论文)基于can总线的数据传输模块设计.pdf_第2页
(信号与信息处理专业论文)基于can总线的数据传输模块设计.pdf_第3页
(信号与信息处理专业论文)基于can总线的数据传输模块设计.pdf_第4页
(信号与信息处理专业论文)基于can总线的数据传输模块设计.pdf_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

基于o a n 总线的数据传输模块设计 摘要 本文阐述fc a n 总线在液位数据采集及传输过程中的应用。本课题来自唐 公塔泵站的液位联锁系统,该系统实现高位水池与二级泵站、低位水池与一级泵 站问的液位控制连锁,以保证水池液位始终保持在规定的安全限度内。由于需 要传输的数据量不大,考虑到成本因素及现场总线的特点,本设计选用c a n 总 线作为数据传输手段,很好地解决了实际问题。 实际中中心控制台根据各站采集的数据,发送命令启停各级泵站电机。本 人主要负责各节点控制台的c a n 模块设计。用户可以在控制台的操作界面上输 入所要传输的数据及接收节点信息,相应的信息由计算机串口送出,通过m a x 2 3 2 芯片进行电平转换后至单片机a t 8 9 c 5 1 。单片机对c a n 总线控制芯片s j a l 0 0 0 进 行正确初始化后,将要发送的数据通过8 2 c 2 5 0 输出至c a n 总线。接收过程中, 通过选择将要索取信息的节点及其相关信息的选项,数据流按照上述顺序通过 总线到达被索取节点,再由该节点分析数据包,返回相应数据信息。所有数据 都由s j a l 0 0 0 打包,再按c a n 2 0 b 的p e l i c a n 模式发送和接收。设计中串口传 送部分程序采用d e l p h i7 0 编写,利用m i c r o s o f t 公司提供的通信控件m s c o m m 实现串口的通信,单片机程序采用m c s 一5 t 汇编语言编写。 关键字:c a n 协议,s j a l 0 0 0 ,单片机a t 8 9 c 5 1 ,d e l p h i ,串口通信 d e s i g no fd 蛆1 at r a n s p o r tm o d u l e b a s e d0 nc a nb u s a b s t r a c t t h i st h e s i si n t r o d u c e st h ea p p l i c a t i o no fc a nb u so nt h ew a t e rl e v e ld a t a a c q u i s i t i o na n dt r a n s p o r t t h et a s kc o m e sf r o mar e a lp r o b l e mo f w a t e rl e v e l c o n t r o l l e da tt a n gg o n gt ap u m ps t a t i o n ,w h i c hi saw a t e rl e v e lc o n t r o l l i n gs y s t e m f o rs a f er a n g eb e t w e e np o o la n de l e c t r i cl l o t c r c a nb u si sc h o s e nh e r ea sam e a no f d a t at r a n s p o r ti nt h i sd e s i g nb e c a u s eo fc o s ta n df e a t u r eo ff i e l d - b u sa n di tw o r k sw e l l i np r a c t i c en o w t h ec a nm o d u l ei nc e n t r a l s t a t i o nw h i c hi sm a i n l yi n t r o d u c e dw i l lt r a n s m i t i n s t r u c t i o n st oo t h e rp u m ps t a t i o nb a s e do nr e c e i v e dd a t af r o ms t a t i o n s u s e rc a n i n p u tt r a n s m i t t e dd a t aa n dc a nn o d ei r f o r n a t i o nf r o mp c t h ed a t ai n f o r m a t i o n f r o mp c ss e r i a lp o r tw i l lt r a n s p o r tt os i n g l ec h i pc o m p u t e r ( s c c ) a t 8 9 c 5lt h r o u g h m a x 2 3 2f o re l e c t r i cl e v e lc o n v e r s i o n f i r s t l ys c cn e e d st oi n i t i a l i z ec a np r o t o c o l c h i ps j a 10 0 0 c o r r e c t l y , t h e nt h e d a t af r o ms j a10 0 0w i l lb eo u t p u tc a nb u s t h r o u g hd r i v e r8 2 c 2 5 0 i nr e c e i v i n gp r o c e s s ,t h en o d ei n f o r m a t i o nc o n c e r n e dw i l lb e f i r s tt r a n s p o r tt ot h i sn o d ea sa b o v ea n dt h e nt h ed a t af r o mt h i sn o d ew i l lb es e n tb a c k t oh o s tt h r o u g hc a nb u s a l lt h ed a t ai sp a c k e di nas p e c i a lw a yi n s i d et h es j a10 0 0 , a n dw i l lb es e n to rr e c e i v e du n d e rp e l i c a nm o d eo fc a n 2 0 b t h ep a p e ra l s o 3 d e s c r i b e sam e t h o dt or e a l i z et h ec o m m u n i c a t i o nb e t w e e np ca n da t 8 9 c 51t h r o u g h m i c r o s o f t sm s c o m m t h es e r i a lp o r tc o m m u n i c a t i o ni sp r o g r a m m e dw i t hd e l p h i 7 0a n dd a t at r a n s p o r tw i t ha s s e m b l el a n g u a g ei nt h ed e s i g n k e y w o r d s :c a np r o t o c o l ,s j a l 0 0 0 ,s i n g l ec h i pc o m p u t e ra t 8 9 c 51 ,d e l p h i ,s e r i a l c o m m u n i c a t i o n 引言 随着计算机技术的普及,能以多主从方式进行通信的现场总线( f i e l db u s ) 技术已成为 嵌入式系统中的热门研究课题,它不但能支持更高层次的计算机之问的功能操作,还能进一步 构成自动化系统,在实时性,适应性,灵活性,可靠性,安全性乃至成本方面都有更突出的 表现,也正因为如此,现场总线目前成为工业控制,智能仪器仪表以及嵌入式系统方面主要 应用的技术之一。 在各类现场总线中,c a n ( c o n t r o la r e an e t w o r k ) 总线于1 9 9 3 年成为国际标准 i s 0 1 1 8 9 8 ( 道路车辆的高速控制局域网数字信息交换标准) ,是最早具有国际标准的现场总线, 它有效支持分布式控制及实时控制,并采用了带优先级的c s m a c d 协议对总线进行仲裁。c a n 总线允许多站点同时发送,在保证信息处理的实时性同时,又使得c a n 总线网络可以构成多 主从结构的系统,从而有效地保障了系统的可靠性。 本设计中采用的p h i l i p 公司的8 j a l 0 0 0 芯片,是一种独立的c a n 控制器,初始化后, s j a i o o o 完成数据的打包、数据流的检错、总线状态监铡,然后根据上位机的指令发送数据, 完成节点间的通信或者把各个c a n 节点所收发数据的详细信息,都由串口传回至上位机,并 由后台的数据库系统做统一的计算和处理。 在设计中需要解决的问题有:d e l p h i 编写的上位机界面程序、数掘库的建立,以及d e l p h i 与数据库的连接,串口数据正确的收发、在下位机方面有s j a l 0 0 0 的初始化、内部寄存器配 置、波特率设定和时序的配合等等。其其体的程序和浇明将在下面的论文中给出详细说明。 课题背景及完成思路 实验源于唐公塔水源地的液位联锁控制系统,根据设计要求,系统要分别采集相距0 3 公早的一级泵站和二级泵站的水池液位高度,以及与二级泵站距离0 2 公罩的高位水池的液 面高度,分别通过设置在一级泵站a n - 级泵站的控制模块控制电机的启停,从而达到液位联 锁的目的。示意图如图l l 所示。 高位水池 图1 1 实验背景描述图 f ig 1 1b a c k g r o u n do fl h ed esi g n 经过大量的调研工作,我们决定使用目前比较热门的现场总线技术中的c a n 总线来最终 完成传输控制,系统框架如图1 2 所示。 土控制台 图1 2 系统结构图 设计总体分三个部分进行规划: 1 一级泵站电路模块设计 实现功能: ( 1 ) 实时接收并显示二级泵站水池液位高度: ( 2 ) 接收二级泵站发送的水池液位指令,根据设定的水池液位上下限,通过控制模块控制 一级泵站的电机启停。 2 二级泵站电路模块设计 实现功能: ( 1 ) 实时显示二级泵站水池液位高度,当液位过高或过低时,向一级泵站传送液位数据指 令,并控制一级泵站电机的启停: ( 2 ) 实时接收并显示高位水池液位高度,当液位过高或过低时,通过控制模块控制二级泵 站电机的启停; ( 3 ) 实时检测二级泵站电机轴温,并显示其温度值,若超过上限则报警关闭相应电路。 3 高位水池电路模块设计 实现功能: 实时显示高位水池液位高度,并将高位水池液位高度数据传送至二级泵站。 本人主要负责底层c a n 模块通信电路及上位机用户界面设计为更高层的应用提供稳定 的数据传输信道。 ( 一) o a n 协议简介 二c a n 控制模块 控制局域网c a n ( c a n t r o l l a r e a n e i w o r k ) 是德国b o s c h 公司1 9 9 1 年制定并发布的 技术规范,最初用于解决汽车内部电路连接的干扰问题,该协议分为a 和b 两个部分,并于 1 9 9 3 年成为i s 0 1 1 8 9 8 国际标准,是现场总线中最早拥有统一国际标准的总线协议。它可以 无破坏性地给予优先权的仲裁,各个节点之f 白j 依据优先权进行总线访问,在保证灵活性的同 时,在错误检测和出错信令方面都有独特的要求,使全系统的数据相兼容,即使在发送期间 丢失仲裁或因遭遇破坏,数据帧都可自动重新发送,甚至在严重出错的情况下,系统可以很 容易的区分暂时错误和永久性故障节点以及故障节点的自动脱离。 c a n 系统内任意两个节点之间的传输距离与其位速率有关,其最大速率可达到1 m b p s ,最 远距离可达1 0 公罩,理论上具体有效长度的传输速率的关系可以由图21 表示。 波特率 n ( b o s ) 1 0 0 0 1 n 5 度 图2 1c a n 总线距离与传输速率关系目 f ig 2 - 1r e l a t i o n s h i pb e t w e e nc a nf i e l d b u sr a t i o a n dl e n g t h c a n 技术协议规范的目的是为了在任何两个c a n 器件之问建立兼容性,为了达到设计的 透明度,根据i s o o s i 参考模型,c a n 被细分为以下不同层次:数据链路层( d a t al i n kl a y e r ) ( 包括逻辑链路控制子层( l l c ,l o g i c a ll i n kc o nl r 0 1 ) 、介质控制子层( m a c ,m e d i u ma c c e s s c o n t r o ) ) 、物理层( p h y s i c a ll a y e r ) 。 其中,逻辑链路子层主要负责为远程数据请求以及数据传输提供服务,确定哪些报文实 际上被验收,同时,为恢复管理和过载通知提供手段;而介质访问子层的作用主要是定义传 送的规则,控制帧的结构,执行仲裁,错误检测,错误标定,故障界定以及总线的玎启关闭 报文的接收和发送都在此层描述。根据i s o c j i 参考模型,c a n 的分层结构如图22 所示。 m a c 数据封装拆装 帧编码 媒体访问管理 出错标定 应答 串行化解除串行化 物理层 p l s 位编码解码 位定时 同步 p m a 驱动器接收器特性 m d i 连接器 图2 - 2c a n 协的 层结构 f i g 2 - 2 s u b s tr u c t u r eo fc a nf ie l d b u s ( 二) c a n 协议的报文传输 c a n 中的总线数值为两种互补的逻辑值:“隐性” ( “d o m a i n n a n t ” ) 和“显性” ( “r e c e s s i v e ”) 。在“隐性”状态下c a n l i 和c a n l 都被固定在平均电压电平,v 。近似为0 , 而“显性”状态以大于最小闽值的差分电压表示,如图2 - 3 。 显性位 兰上i f f i :! ! 蝴 图2 - 3 总线位的数值表示 但需要注意的是当“隐性位”和“显性位”同时发送时,最后的值将为“显性”,这也 是故障界定和错误检测的根本基础。 由于c a n 协议有a 和b 两种版本,所以也就有相应的两种帧格式,一种含有1 1 位标识符, 称为标准帧,而另种含有2 9 位标识符则称j :扩展帧,本设计采用的是2 9 位的扩展帧格式, 所以下面只简要介绍扩展格式的c a n 2 0 协议。 在报文的传输中,报文具体分为数据帧( d a t af r a m e ) 、远程帧( r e m o t ef r a m e ) 、错误帧 ( e r r o rf r a m e ) 和过载帧( o v e r l o a df r a m e ) 。 1 数据帧介绍 其中,数据帧由7 个不同的位域组成:帧起始( s t a r to ff r a m e ) ,仲裁域( a r b i t r a t i o n f i e l d ) ,控制域( c o n t r o lf i e l d ) ,数据域( d a t af i e l d ) ,c r c 域( e r ef i e l d ) ,应答域 ( a c kf i e l d ) 和帧结尾( e n do ff r a m e ) ,其结构如图2 4 。 c r ca c k _ 仲裁场 o+ i l i t _ i - l 一* k “| ,l 裂蝣切 场7卜场斗 0 1 i 位 c r c界间 界 叫 标识符 蚕 0 1 8 位 驾 d l c 定 l 辣 定 唧 刃 序列 符 符 标识符 ( 1 ) 帧起始 图2 4 扩展报文的数据帧结构 结尾 其中帧起始( s o f ) 标志数据帧和远程帧的起始,仅有一个显性位组成,只有在总线空闲 时才允许站点开始发送数据。所有的站同步于首先丌始发送报文的站点的帧起始前沿。 ( 2 ) 仲裁域 在扩展格式罩,仲裁域包括2 9 位标识符,s r r 位、i d e 位、r t r 位。 ( a ) 标识符 扩展格式的标识符由2 9 位组成。其结构包含两个部分:1 1 为基本i d 、1 8 位扩展i d 。 基本l d :基本i d 包括儿位。它按i d 一2 8 到i d 一1 8 的顺序发送,它相当于标准标识符的格 式,这些位最高位是i d 一2 8 。基本i d 定义了扩展的帧的基本优先权。 扩展i d :扩展i d 包括1 8 位。它按i d 1 7 到i d 一0 顺序发送。 ( b ) s r r 位 隐性位s s r ( 代替远程请求位) 是为了版本的兼容性而代替前变本的r t r 位位置来区分 标准帧和扩展帧的优先权。 ( c ) i d e 位 i d e 位是“标识符扩展位”,扩展格式罩列隐1 主。 ( d ) r t r 位 r t r 位为“远程发送请求位”,可根据r t r 分辨数据帧还是远程帧,为显性则为数据帧, 反之则为远程帧。 ( 3 ) 控制域 控制域由6 个位组成,包括数据长度代码和两个保留位r 0 和r l ,其结构如图2 5 所示。 图2 5 控制域结构图 f i g2 - 5 s tr u c t u r eo fc o n tr o lf i e l d ( 4 ) 数据长度代码 数据长度代码( d l c 3 d l c o ) 指示了数掘域晕的字节数目。数据长度码为4 位,与数据字 节数目的对应关系如表2 1 ( d 为显性,r 为隐性) 。 ( 5 ) 循环冗余码c r c 域 c r c 序列是目前应用比较广泛的检错措施,通过位流的二进制数代码除以多项式 数据字节数目数据k 度码 d l c 3 d l c 2d i c ld 1 c o o dd( 1d 1 ddd 2dd d 3dd 4d d d 5 d d 6dd 7d 8ddd 表2 1 数据长度代码图 t a b 2 - ld a tal e n g t hc o d e ( x + x “+ x 1 0 + x 8 + x 7 + x 4 + x5 + 1 ) ,( 其系数以模2 计算) 将得出结果,c r c 域包括c r c 序列,其后 是c r c 界定符如图2 6 。 特椐域 c r c 域 廊答域 图2 6 循环冗余码域 f i 9 2 6 、c r c 。i e i d ( 6 ) 应答域 应答域长度为2 个位,包括应答间隙和应答界定符,如图27 所示。在应答域罩,发送 站发送两个隐性位。 ( a ) 应答自_ i 隙 图2 7 应答域 f i g2 7a c kf i e l d 所有接收到匹配c r c 序列的站会在应答间隙问用一显性位写在发送器的隐性位置上来做 出回应。 ( b ) 应答定界符 应答定界符是应答域的第二个位,并且必须是一个隐性位。因此,应答间隙被两个隐性 位所包围,也就是c r c 界定符和应答界定符。 ( 7 ) 帧结尾 每一个数据帧和远程帧均由一标志序列男定,这个标志序列由7 个隐性位组成。 2 远程帧介绍 远程帧主要用于请求某节点发送预先设定好i d 的信息,通过发送远程帧可以启动其它节 点传送它们各自的数据。远程帧由6 个不同的位域组成:帧起始、仲裁域、c r c 域、应答域、 帧结尾,其帧格式除r t r 外与数据帧完全类似。 与数据帧相反,远程帧的r t r 位足隐性的。它没有数据域,所以数据长度代码的数值没 有意义。远程帧的结构如图2 8 。 3 错误帧介绍 错误帧的作用就是为了能f 确的终止数据错误,它由两个不同的域组成,第一个域是不 同站提供的错误标志的叠加,检测到错误条件的站在此域发送激活错误标志来指示错误:第 二个域是错误定界符。包括8 个隐性位,传送错误标志后,每站发送一个隐性位,直到总线 出现另一隐性位开始发送其余位,其结构如区2 呻。 。眇 1 日j2 r 2 l 刈 数据帧 或过载帧 错误标志 f 错误界定符 错误标志的重叠 4 过载帧介绍 图2 9 错误帧结构 由于总线或接收器内部原因,有时会出谚l 延迟一下数据帧或远程帧的情况,而过载帧的 出现使错误计数器的值暂时不增加提高总线的效率。过载帧包括两个域:过载标志和过载界 定符,其结构如图21 0 。 帧结束 或过载 图2 10 过载帧结构 f i g 2 l0s tr u c t ur eo fo v e r l o a df r a m e 与错误帧类似,过载标志位也是所有检测到过载条件的发送的显性位的叠加,过载界定 符包括8 个隐性位,其发送时即与错误帧类似。 5 帧间空间 数据帧与它前面帧的分隔是通过帧问空间来实现的,无论前面的帧是何种类型。而过载 与错误帧之前没有帧问空间,多个过载帧之间也不是由帧间空间隔离的。 帧问空间包括“间歇”和“总线空闲”位域。其中问歇由3 个隐性位组成,在此位域可 标识一个过载条件。如果是发送前一报文的“错洪认可”站,则还包括称作“挂起传送”的 位域,该位域包括8 个隐性位。总线空闲位k 度是任意的,只要总线被认定空闲,任何等待 发送数据的节点或站都可访问总线,其帧问空| 1 1 i j 如图21 1 。 间歇 挂起传送 总线空闲 图2 1 1 帧问芏间结构 f i g2 1 ls tr t l c t u r eo f 1 i t e r f r a m es p a c e 以上是c a n 2 0 协议扩展帧的四种帧格式介绍,实验当中的具体帧的发送时序及发送时机 将在下面章节旱介绍。 ( 一) 系统组成 系统组成框图如图3 1 所示 三硬件电路设计 s j a l 0 0 0 p c a 单圬机 d a t a 8 8 2 c 2 5 0 一 a 2 18 9 c 5 i t x d , 、 r x 0 r x d i c a n l 图3 一l 系统组成框图 f i g 3 一la br o c kd i a g r a mo ft h es y s t e m 首先,完成单片机串口通信的初始化,再根据由上位机传送的内容,由单片机向s j a l 0 0 0 写入相应的控制字,完成s j a l 0 0 0 的初始化及波特率没定,随后即可进行数据的传输、检错、 重发等一系列动作。其中,上位机程序主要是利用m i c r o s o f t 控件m s c o m i 将d e p h i 程序转换 好的控制指令语句及通信内容通过计算机串口发出,从串口发出的信号首先进入芯片m a x 2 3 2 , 进行电平转换,然后送入单片机。单片机a t 8 9 c 5 1 对接收到的信号进行处理后送出,具体电 路连接见图3 - - 2 系统电路图。 ( 二) p o 机与单片机的串行接口 此次设计采用单片机a t 8 9 c 5 1 完成数据格式的转换和s j a l 0 0 0 复位信号的产生以及与上 位机建立通信。a t m a l 公司的a t 8 9 c 5 1 是市面上比较流行,用户比较多的一款单片机,由于 管脚不多,他多用于中小型控制电路。 a t 8 9 c 5 1 是一个低电压,低功耗,高性能c m o s 8 位单片机,片内含4 kb y t e s 的可反复擦 写的只读程序存储器( e p r o m ) 和1 2 8b y t e s 的随机存取数据存储器( r a m ) ,器件采用a t m e l 公司的高密度、非易失性存储技术生产,兼容标准m c s5 1 指令系统,片内置通用8 位中央处 理器和f l a s h 存储单元。a t 8 9 c 5 1 有4 0 个引脚,1 8 个特殊功能寄存器,4 个8 位双向输入 输出( i o ) 端口( p o 口,p 1 口,p 2 【_ j ,p 3 口) ,一个串行i o 接口,实验中通过串 j 与= = 三 机通信取得相应的指令,另外,还有2 个中断口,2 个1 6 位可编程定时讨数器。 图3 一:系统电路图 f i g 3 - - 2 ac i r c u i to f t h es y s t e m 在进行串口通信时,使用单片机的串行接口u s a r t 。它是一个全双工的通信接e l ,上电 后,通过设定由s c o n 串行控制寄存器内容来预先选择通信格式。 s c o n 寄存器内容及每位含义如下: r h 接收中断标志位。在模式0 下,当第8 位结束时,硬件会将其设为i ;在其他模式下, 在停止位的一半时由硬件设定,此位必须由软件清除。 t i :发送中断标志位。在模式o 下,当第8 位结束时,硬件会将其设为l ;在其他模式下, 在停止位的开始时由硬件设定,此位必须由软件清除。 r b 8 :在模式2 或3 时,发送的第9 数据位放入此位。在模式1 时,若s m 2 - o ,则r b 8 为接收 到的停止位。模式0 时,r b 8 没作用。 t b 8 :在模式2 或3 时,发送时的第9 数据位由软件控制。 r e n :由软件设定或清除,以决定是否接收串行输入数据,r e n = i 接收,r e n - o 发送。 s 9 2 :当串行口为模式2 或3 时,使能多处理器通信功能。在模式2 或3 时,如果s m 2 = i ,则 当接收到第9 数据位为0 时,r i 不动作。在模式l 时,若s m 2 = i ,当接收到的停止位不f 确 时,r i 也刁i 动作。在模式0 时,s m 2 必须为0 。 s m l :串行口模式选择。 s m o :串行口模式选择。 在本设计中,串行端口使用m o d e l 。即按设定的波特率收发数据,每8 位数据前加1 位 起始位,后加一位停止位。收到的数据由p o 口送出。p 2 8 ,p 3 o p 3 1 分别连接s j a l 0 0 0 的 片选端和读写端。 由于计算机串口传输数据是采用r s2 3 2 c 协议,其标准的电平采用负逻辑,( + 3 v + 1 5 v 之间的任意电平为逻辑0 电平,一3 v 1 5 v 之间的任意电平为逻辑“1 ”电平) ,与单片机 所适用的t t l 和c m o s 电平不同,所以在通信时,中选用了m a x 2 3 2 芯片完成电平转换,以便与 r s 一2 3 2 c 标准的电平匹配。 下面简要介绍一下m a x 2 3 2 芯片: m a x 2 3 2 芯片是m a x 公司生产的低功耗、单电源 双r s 2 3 2 发送接收器,内部集成一个电源电压变换 器,可以把输入的+ 5 v 电源变换成r s 一2 3 2 c 输出电 平所需i o v 电压,m a x 2 3 2 引脚如图3 3 所示。 实验当中m a x 2 3 2 与上位机及单片机的具体的 电路连接可参见图3 2 。 ( 三) c a n 控制器 1c a n 控制器内部框图及引脚图 图3 - 3m a x 23 2 引脚图 f ig 3 3p i nc o n f i g u r a t i o i lo fm a x 23 2 本次实验核心器件就是c a n 控制器s j a l 0 0 0 ,通过单片机初始化后,s 3 a 1 0 0 0 就可独立工 作,通过检测总线上的电压信号,及内部特殊的寄存器内容,控制器就完成数据的打包、解 包、错误的鉴定等一系列功能,下面简要介绍c a n 控制器s j a l 0 0 0 。 s j a l 0 0 0 是由p h t l i p s 公司研制的,主要用于自动控制和通信工业用的8 位高性能微控 制器,它是p h i l i p s 上一代控制器p c a 8 2 c 2 0 0 的替代品,其基本特征如下: 有扩展的接收缓冲器6 4 字节,先进先出。 支持c a n 2 0 a 和c a n 2 o b 协议。 支持1 l 位和2 9 位标识码。 通信速率可达1 m b p s ,通信距离最高可达l o 公罩。 2 4 m h z 时钟频率。 可编程的c a n 输出驱动器配置。 s j a l 0 0 0 的内部结构如图3 4 所示。 a l e a s c s ( r d ) w r c l o c k o u t m o d e a d o a d 7 x t a l l9 - x t a l 21 0 接口管理逻辑 序 图3 4s j a l0 0 0 的内部结构目 f i g 3 4ad i a g r a mbr o c ko fs j a l0 0 0 s j a l 0 0 0 芯片的引脚排列图如3 5 所示。a d “ 其与外部电路具体连接见图3 2 所示,根据c a n 协膨 议,s a j l 0 0 0 可分别支持c a n 2 0 a 和c a n2 o b 两 : 种模式,本次试验使用的是p a l i c a n 模式( c a n 2 ,0 b ) , w r 。 c l o c k o l i t ! 通常也被称作扩展模式。 v s s i x t 乱1 t i s j a l 0 0 0 之所以能完成复杂的电路数据流错误x t a l 2 , m c l d 卧 检验,主要归功于其内部大量分工合作的寄存器。 v d d3 这些寄存器主要包括模式寄存器、状态寄存器、中 搿 断寄存器、中断使能寄存器、总线时序寄存器、输 1 v ) 2 v d d 3 1 5 v r e 4t x o 1 9t x l 2 0r x 0 2 1r x l + 18v 1 n 7r f s f t 图3 5s j a l0 0 0 引脚图 f i g3 5p i l 3c o n f ig ur a t i o no fs j a l0 0 0 4 篇篇然嚣篙嚣裟 出控制寄存器、总裁丢失捕捉寄存器、错误代码捕捉寄存器、错误报警限额寄存器、发送错 误计数器、接收错误计数器、时钟分频寄存器以及接收缓冲器、发送缓冲器等寄存器,山于 这些寄存器的存在,s j a l 0 0 0 控制器通常被看作外部r m 来访问,根据实验的情况,下面简 要的介绍一下所使用的寄存器。 2c a n 控制器内部控制寄存器简介 ( 1 ) 模式寄存器 模式寄存器位于c a n 内部地址的0 位置,他主要用于复位操作时的模式选择,其具体说 明见表3 - 1 。 位符 _ 名称值功能 m o d7 5 慌帮 m o d 4睡眠模式l睡眠:没有c a n 中断待决和总线活动时,c a n 控制器进入睡眠模式。 s m0唤醒:从睡眠状态唤醒逃入正常工作状态。 m o d 3a f m 验收滤波 l 单:选择单向滤波器起作用 器模式0 职:选择取向滤波器起作用 0 d 2s t m 自检测试 l 白检测:在此模式中,刮以在没有任何其他节点参0 的情况下进行 模式个节点的洲试。、它是利用白接收的请求命令:即使没侑接收后的 廊荐,c a n 拧制器也会成功发送。 0 正常模式:成功发送时必须应替信号。 m o d 1 i 0 m 只听模式 l 错误计数器停止计数,控制器暂停发f 托信弓 0 正常 m o d0r m复位模式l进入复位模式 0正常:返吲操作模式 表3 1 模式寄存器各位功能描述 t a b3 1b i tif i t e r p r e p a t i 二no - m o d er e g isl e t ( 2 ) 命令寄存器 命令寄存器位于c a n 内部地址的l 位置,对外部c p u 来讲命令寄存器时只写寄存器,它 主要完成各种命令的施放功能,其具体的功能描述如表3 2 所示。 l 位符号名称值功能 c m r 7 5 保留 c m r 4s r r 自接收请求 1 信息一j 发生和接收 0 空缺 c m r3 c d o清除数据溢 l 清酚数据溢m 状态 o 尢动作 c m r 2r r 释放数据缓冲: 1 释放r x f i f o 当前呈现撇文的俘储守间 o 无动作 c m r 1a t 终止发送 l 如小是正在处理数据,将取消等待中的发送请求 0 窄缺 c m r0t r 发送请求 1 报文被发送 0 窄缺 表3 2 命令寄存器各位功能描述 t a b3 2b i t i n t e r p r e d a t i 0 1 1 o fc o m m a n dr e g is ter ( 3 ) 状态寄存器 状态寄存器主要为外部c p u 提供总线上的状态,以便确定发送和接收的时间,对外部c p u 来讲它是只读的,通过访问c a n 内的2 地址就可了解当前总线的各种信息,其功能说明如表 3 3 n 位符号名称值功能 s r7b s 总线状态 l 总线关闭,控制器小参- ,任何活动 0 总线7 。启 s r6e s 错误状态 l 争少一个错以汁数器达到 i 警限额寄存器定义的报警限额值 o 曲个错误寄存器都n 对技警限额以下 s r5t s 发送状态 l 控制器_ f f l 二发送报义 o 宅闲 s r4r s接收状态 1 控制器正在接收撤史 o窀| : = f s r3t c s 发送完成状态 1 最近一次发送成功完j j l 2 o 最近一次发送丰能成功完成 s r2 t b s发送缓冲状态 l c p u 町以向发送缓冲器弓撒文 o撒文j :等待或发送,c p u 小叮访问发送缓冲器 s rld o s 数据溢出状态 l吲r x f i f o 中无足够空间,搬义溢 0 无溢出现象发生 s ror b s 接收缓冲状态 l r x h f o 中存在完整的有被搬史 o r x f i f o 中无仃效报义 ( 4 ) 中断寄存器 表3 3 状态寄存器各位功能描述 t a b3 3b i ti n t e r p r e p a t i o l lo fs t a t u sr c g is t e 中断寄存器位于内部地址的3 位置,是只读寄存器,它主要功能是向c p u 提供中断的类 型及内容,具体说明见表3 4 。 位 符号 名称 值功能 i r 7 g g i总线错l 当控制器检测到总线错议凡中断时能寄存器的为b e i f 为l 时冒位为】 误中断0复位 i r6a l i 仲裁丢 l 当控制器丢失仲裁变为接收器口中断时能寄存器的a l i e 为1 时,置位为1 失中断0复位 1 r5e p i 错误认 1 只要控制器k - 到错跌认u j 状态或以逃到铺跌认口j 状态的拄制器又n 次址 n ,中断 八错误激活状态日中断使能奇存器的酽i e 位冒l ,此位置l 0 复位 i r4删i 唤醒中 l 当处十睡眠模式的控制器榆测到总线活动丑中断奇| 竽器位w i j l e 置l ,此位 断置1 o 复位 i r3d o i 数据溢 1 与数据溢状态位肯0 到1 的转变口中断时能奇存;: 的d o l e 位置1 时此 出中断位置l o 复位 i r2e 1 出错报 l 当错误状态位或总线状态位发生变化f 1 中断使能寄存器的e i e 位置1 时, 警中断此位置l 0复位 i r 1t i发送中1 发送缓冲寄存器状态h i 现从0 到1 的变化i :t 中断使能寄存器的t i e 位置l 新时,此位置1 o 复位 i ror i 接收中 l r x f i f o 小卒口中断寄存料的r i e 位置l 时此位做置l 断 0复位:无有敝撤立 表3 4 中断寄存器各位功能描述 t a b3 4b i ti n t e r p r e p a t i o i lo fi n t er p r e tr e g is t e r ( 5 ) 中断使能寄存器 中断使能寄存器是配合中断寄存器使用的可读写的单元,通过它,可屏蔽一些程序中没 有使用到的中断位,在初始化时这就显得尤为重要,在程序执行期恻,也可根据实际需要屏 蔽一些无关位,具体说明见表3 5 。 位符号名称值功能 【e r7b e i e总线错误中断使能 l 若榆1 9 1 j 到总线错以删c a n 挡制器请求总线错议中断 0禁止总线错以中断 i e r6a l i e仲裁丢失中断 1 若c a n 控制器丢失仲裁则请求仲裁丢失中断 使能 0 禁止仲裁丢失中断 i e r5e p i e 错误认刈1 荇( j a n 。g 线错议状态改蹙,则请求错以认aj 中斯 中断使能o 禁止错1 x 认口中断 i e r4w 叭e 唤醒中断使能 l 若睡眠模中的c a n 拌制器被唤醒则清求唤醒中断 o 禁止唤醒睡眠中晰 i e r3 d o i e数据溢中断l 若数据浠i i 状态位被置i ,c a n 控制器请求数据溢中断 使能o 禁止数据漪m 中断 i e r2e i e 出错报警中断 l 若错状态或总线状态c a n 控制器请求数据锨中断 使能0 禁止错报警中断 i e rlt i el 当报文成功发送或发送缓冲器叉u ,防问时,c a n 柠制器 发送中断使能 l 求发送中断 0 禁止发送中断 i e r 0r i e 接收中断使能 l 当接收缓冲措状态为”满“时,c a n 拌制器请求接收中断 o 禁止接收中断 表3 5 中断使能寄存器各位功能描述 t a b3 5b i ti n t e r p r e t a t i o no f i n t e r p r e te n a b l er e g is t e e ( 6 ) 仲裁丢失捕捉寄存器 仲裁丢失捕捉寄存器( a l c ) 包括了仲裁丢失的位置信息,仲裁丢失时,会产生相应的仲裁 中断,同时处理器的当前位置被捕捉送入仲裁丢失捕捉寄存器,c p u 可根据仲裁丢失捕捉寄 存器的a l c 4 一a l c 0 位的二进制标识来确定仲裁丢失位置,从而检错或重发。a l c 4 - - a l c 0 位的二进制标识的帧位编号说明( a l c 7 - a l c 5 为系统保留位) ,其具体含义如下: 从编码0 0 0 0 0 到0 1 0 1 0 分别对应仲裁丢失在标识码的b n 卜b i t l l 。 编码0 1 0 1 1 对应仲裁丢失在标准报文的r t r 位。 编码0 1 l o o 对应仲裁丢失在i d e 位。 编码叭1 0 1 到1 1 1 l o 分别对应仲裁丢失在扩展帧报文的标识码b i t l 2 一b i t 2 9 。 编码1 1 1 1 l 对应仲裁丢失在扩展帧报文的r t r 位。 ( 7 ) 错误代码捕捉寄存器 错误代码捕捉器存器包含了总线的各种错误和位置信息,在c a n 控制器中处于比较重要 的位置,总线出错时,可通过c p u 访问这个只读存储器来确定错误的种类,同时制定相应的 解决办法其功能描述如表3 6 。 位 符号名称值功能 e c c7 e r r c l错误代码1 e c c7 年ne c c6 编码分别对应:位错、 并1 l = 错、填充 错、j e 他娄型错 e c c6e r r c 0错误代码0 e c c5d i r 方向 i r x :接收时发生的错误 o t x :发送时发生的错误 e c c4s e g 4 段4 e c c4 - - e c c0 的编码组合代表的小i 州错如下: e c c 3s e g3 段3 跌编鹕0 0 0 11 代表帧开始j i j 错,编妈0 0 0 1 0 代表 i d 2 8i d 2 l 错,编码0 0 1 1 0 代表i d2 0 i d1 8 错, e c c 2s e g2段2 编码0 0 1 0 0 代表s r t r 错,编码0 0 1 0 1 代表i d e 错, 编码0 0 1 1 1 代表i d1 7 一i d1 3m 错,编码0 1 1 1 1 代表 e c c1s e g1段1 i d 1 2i d5 错,编码0 1 1 1 0 代表i d4i d0 错, e c c0s e c , 0 段0 编码0 1 1 0 0 代表r t r 错,编码0 1 1 0 1 为保留位,编 州0 1 0 0 1 为像留位,编码0 1 0 11 代表数据k 度代码 错,编码0 1 0 t 0 代表数据错,编码0 1 0 0 0 代表c r c 序列f | 错,编码1 1 0 0 0 代表c r c 界定符错, 编码1 1 0 0 1 代表戍符时问段错,编码1 1 0 1 1 代表心 答界定符错,编码1 1 0 1 0 代表l 帧结束i t 错,编码 1 0 0 1 0 代表巾止错,编码1 0 0 0 1 代表激活错议标忠 错,编斛i o l i 0 代表认口,错议标忐错编码1 0 0 1 1 代表址忡位以差i l 错,编码i 0 1 i l 代表错误界定符i 钳,编6 马儿1 0 0 代表溢标,占川错 表3 6 错误代码捕捉寄存器各位功能描述 t a b3 6b i ti n t e r pr e p a t i o no f e rr o rc o d ec a p t u r er e g is t e r ( 8 ) 错洪报警限额寄存器 错误报警限额寄存器为8 位,由c p u 在复位模式中定义错误报警限额,当总线错误超过 此值时,产生错误报警中断,在程序编配时同错误计数器使用。默认情况下,该寄存器的值 为9 6 。 ( 9 ) r x 错误计数寄存器和t x 错误计数寄存器: 错误计数器分两类:r x 错误计数寄存器反映了接收错误寄存器的当前值,t x 错误计数寄 存器记录发送错误计数器的当前值,对c p u 来讲,两寄存器都是只读的,当错误计数器的值 超过错误报警限额寄存器预先设定的值时,就会产生出错报警中断,实际中只需编- q * g 应的 中断程序代码即可实时的检验控制因出错过多导致的总线无法正常通信的情况发生。 ( 1 0 ) 发送缓冲器 发送缓冲器是s j a l 0 0 0 中比较重要也是占位置比较多的寄存器。所有的数据都在发送缓 冲器内打包。发送缓冲器又分为描述符区和数据区,在实验中选择的是p a l i c a n 模式,其结 构如图3 - 6 。

温馨提示

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

评论

0/150

提交评论