硕士学位论文-一种CAN息线光纤传输接口设计.doc

上传人:哈尼dd 文档编号:3963495 上传时间:2019-10-11 格式:DOC 页数:83 大小:4.43MB
返回 下载 相关 举报
硕士学位论文-一种CAN息线光纤传输接口设计.doc_第1页
第1页 / 共83页
硕士学位论文-一种CAN息线光纤传输接口设计.doc_第2页
第2页 / 共83页
硕士学位论文-一种CAN息线光纤传输接口设计.doc_第3页
第3页 / 共83页
硕士学位论文-一种CAN息线光纤传输接口设计.doc_第4页
第4页 / 共83页
硕士学位论文-一种CAN息线光纤传输接口设计.doc_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《硕士学位论文-一种CAN息线光纤传输接口设计.doc》由会员分享,可在线阅读,更多相关《硕士学位论文-一种CAN息线光纤传输接口设计.doc(83页珍藏版)》请在三一文库上搜索。

1、一种CAN息线光纤传输接口设计日期:2008-3-14来源:单片机及嵌入式系统应用 作者:北京航空航天大学 习亮 夏继强字体:大 中 小 摘要 在分析CAN总线双绞线和光纤传输特点的基础上,提出一种基于光纤收发一体模块及CAN总线控制器SJAl000的光纤传输接口设计方案;详细介绍光纤收发器的选取及传输接口的实现;根据光纤收发一体模块对信号源时钟提取的要求以及CAN总线的非破坏性总线仲裁的特点,设计了一种CAN总线信号编解码方法,井用FPGA加以实现;通过实际的通信实验验证了设计方案的正确性,并根据实验数据对CAN总线在两种介质下的传输性能作了比较。关键词 CAN总线 光纤 传输接口 FPGA

2、 引 言 作为一种成熟的现场总线技术,CAN(Controller Area Network)总线在汽车、电力、机械、化工等工业控制领域得到了极为广泛的应用。CAN协议标准中规定了CAN总线支持的两种传输介质双绞线和光纤。目前,绝大多数CAN总线系统采用的都是双绞线传输。光纤一般应用于大容量、高速率的传输中,对于CAN总线这种传输速率较低、数据量较小的现场总线通信,光纤传输的优势得不到完全发挥,因此光纤传输的应用还不多。国内外多家研究机构也都进行了CAN总线光纤传输的研究,但主要是基于分立光纤收发元件的方法。本文介绍了一种使用光纤收发一体模块,结合编解码算法实现CAN总线光纤传输接口的方案;根

3、据CAN总线的特点和实验数据,分析了CAN总线在光纤介质下传输性能的改善。1 CAN总线的双绞线及光纤传输11 CAN总线双绞线传输 CAN总线典型的网络拓扑是总线结构。1993年颁布的国际标准ISOll898对基于双绞线的CAN总线传输介质特性做出了建议:总线可具有两种逻辑状态,即隐性(逻辑“1”)或显性(逻辑“O”)。图1为基于CAN总线控制器SJAl000和总线驱动器PCA82C250的CAN双绞线传输网络结构图。 CAN总线双绞线传输接口的特点是技术上容易实现,造价低廉;理论上节点数无限制,对环境电磁辐射有一定抑制能力。但随着频率的增长,双绞线线对的衰减迅速增大;双绞线还有所谓近端串扰

4、,即在“发送线对”和“接收线对”之间存在电磁耦合干扰。另外,双绞线的传输速率受距离限制比较大。这些缺陷使得CAN总线不宜在强干扰、高速率、远距离的场合下使用双绞线作为传输介质。12 CAN总线光纤传输 CAN协议支持光纤作为传输介质,但是由于CAN总线网络一般采用总线型结构,并且其总线仲裁采取的是具有优先级的非破坏性CSMA(载波侦听多路访问),而光纤信号的传输则是单向的,因此最简单实用的方法是在某些总线支路上采用光纤介质,整个CAN网络为双绞线和光纤两种传输介质混合使用的方式。结构如图2所示。 作为传输介质,光纤在抗干扰性、传输容量、速率等方面具有许多比双绞线优良的特性。因此,在某些环境恶劣

5、、地理分布范围较广、速率要求较高的CAN总线系统中,可以在相应的支路上使用光纤传输,从而保证整个CAN网络的性能。2 光纤传输接口实现方案2.1 光纤收发模块的选用 实现光纤传输的一个重要环节就是完成总线信号的光电转换,可以使用专用的光纤收发器件。目前,光纤收发器有两种类型:一种是基于分立元件的,即光接收和光发送模块足独立的。这种光收发模块相对比较简单,光发射部分主要由光源和偏置控制电路组成;光接收部分主要由光探测器、整形放大电路组成,一般采用塑料或多模光纤进行传输。另一种是光纤收发一体模块,它在光源、光探测、光器件封装、驱动集成电路、放大集成电路技术进步的基础上,将接收和发送集成到一起、符合

6、电信传输标准的光电子系统;在光发射部分使用了性能更好的光源,并在接收部分加入了时钟及再生判决电路等,一般采用单模光纤进行传输。因此,光纤收发一体模块在信号转换的速率和稳定性上都比分立的光纤收发器件有很大的提高,而且与外围器件接口方便,单模光纤的色散、传输光功率消耗也比多模光纤小。 本设计中选用一款TTL光纤收发一体模块,标准工业用l9引脚,单+5V电源供电,光纤传输模式为单模,标准ST-ST光纤接口。该模块驱动接几如图3所示。22 设计方案 由于光纤收发一体模块中含有时钟提取电路,要求所转换的信号流要含有丰富的时钟信息,以便时钟提取电路准确地捕获信号的频率,因此信号流中不宜包含较长的连“l”或

7、连“O”。而CAN总线在空闲以及发送某些类型帧时会出现比较长的连“1”或连“O”尤其在通信波特率比较低的情况下,连续相同电平的时问就会越长,这将会导致接收器捕获不到信号流的准确波特率,从而导致光电转换后的信号的位时间不准确甚至错误。因此,就要求对待转换的CAN信号流进行预先处理。最常用的方法就是进行编码,编码后的信号流中包禽丰富的时钟信息,不会出现较长的连“1”或连“O”,经过光纤传输后再进行解码还原。也就是说,在CAN控制器、骄动器与光电转换模块之间增加一个编解码器。 据此提出一种基于CAN总线控制器SJAll300和光纤收发一体模块的CAN总线光纤传输接口方案,其结构如图4所示。 接口分为

8、发送端和接收端。发送端由CAN总线控制器SJAl000、信号编解码器和光纤收发一体模块组成;接收端由CAN总线驱动器PCA82C250、信号编解码器和光纤收发一体模块组成。CAN节点向总线发送数据时,发送端总线控制器SJAl000的发送信号TX经编码器进行编码之后,送至光纤收发一体模块进行信号的电一光转换,然后通过光纤传输到达接收端RX;接收端光纤收发一体模块先对收到的光信号进行光一电转换,再由解码器将编码信号还原,最后通过总线驱动器PCA82C250与总线连接,完成数据发送过程 数据接收过程同理。3 光电转换编码、解码器设计31 CAN总线仲裁机制对编解码方案的要求 CAN总线的非破坏性总线

9、仲裁机制的原理为:当总线空闲时,任何单元均可发送报文;若同时有2个或更多的节点开始发送报文,则会出现总线冲突。对于总线访问冲突,可借助于标识符ID进行逐位仲裁加以解决。仲裁期间,每个发送器将发送位电平同总线上检测到的电平进行比较:若相等则节点继续发送;若不相等,则表明节点失去仲裁,停止报文发送。只有总线访问优先权最高的节点继续报文发送,其他优先权较低的节点失去仲裁,主动停止报文发送,只有当总线空闲时才能继续启动报文发送。因此,CAN节点每发送一位数据都要监听总线上的数据是否与所发送的一致。 在不考虑信号在光纤中传输时的衰减及CAN节点自身限制的前提下,为了保证CAN总线通信的正常进行,在CAN

10、总线的通信过程中必须保证信号延迟不能超过CAN总线的允许值,而这主要是由CAN总线物理层的位定时和同步功能决定的。CAN总线的位时间被定义为一位的持续时间。一个位时间可划分为4个不重叠的时间段,即同步段(SYNC_SEG)、传播段(PROP_SEG)、相位缓冲段1(PHASE_SEGl)和相位缓冲段2(PHASE_SEG2)。其中,同步段用于同步总线上不同的节点,这一段内要有一个跳变沿;传播段用于补偿网络内的物理延迟时8间(包括总线上的信号传播时间和节点的内部延迟时间);相位缓冲段l和相位缓冲段2用于补偿边沿阶段的误差。由于CAN总线中各个节点的时钟可能不一致,因此需要进行重新同步。重新同步的

11、结果,使相位缓冲段l增长,或使相位缓冲段2缩短,内部的位时间从同步段重新开始。采样点位于相位缓冲段1的结束,在采样点时刻,CAN节点读总线电平。通过编程采样点的位置可以优化总线定时。 综上所述,假设信号在光纤中的传输时间为t传输,信号传输中因光电转换造成的延迟时间为t光电延迟,CAN节点同步及内部延迟为t内部延迟,则应满足以下关系: 式中,对于给定长度和波特率,光纤传输时间和节点内部延迟时间是确定的,因此要尽量缩短光电转换的延迟时间,即对CAN信号编解码算法提出了特殊要求,要尽量缩短编解码的延迟时间。3.2 编码、解码方案 光纤传输中常采用的信号编码有CMI码、扰码、8B10B码等。虽然这些编

12、码都能提供丰富的时钟信息,但是由于CAN总线的总线仲裁是具有优先级的非破坏性CSMA,这个特点决定了信号经过编解码后的延迟要尽可能得小。提出一种lB16B编码方法,编、解码规则如下:(1)编码规则 逻辑“l”11l0101010lOl010 逻辑“0”00Ol010101010101 具体做法是,用是待编码比特流波特率16倍的时钟频率对其每位进行采样,每一位采样16次,然后根据约定好的编码规则进行编码。这样就将原比特流的一位编码成新的16位传输,每位的长度是原来位时间的116,而总的位时间不变。编码后的信号不会出现较长的连“l”或连“0”(最长的连“l”或连“0”为4位)。(2)解码规则 逻辑

13、“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位是有用的信息,其余

14、的都是冗余码;但是这样做可以缩短编解码的延迟时间,以满足CAN总线仲裁特性的要求。3.3 编码、解码器的实现 本设计中采甩可编程逻辑器件来实现对信号的编解码,具体选用Altera公司的FLEX1OKlO系列FPGA;软件开发平台使用的是QuanusII 50和Modelsim SE58(第三方仿真工具);开发语言使用硬件描述语言VHDL。编码、解码器的硬件逻辑结构如图5所示。 逻辑功能的波形仿真结果如图6所示。4 实验验证 通过两个CAN节点的通信实验,验证了该CAN光纤传输接口的正确性。实验平台结构如图7所示。 CAN通信节点使用光纤介质,与USB-CAN通信节点进行通信,并在PC机上显示通

15、信情况。在CAN总线各波特率下进行了两个节点的收发实验,结果证明该CAN光纤传输接口原理正确,具有可行性。实验测得信号编、解码以及光电转换的延时时间(即t光电延迟),见表1。5 采用光纤对CAN总线通信性能的改善 下面结合上述光电转换实验所获得的实验数据,简要讨论一下当使用光纤替代双绞线作为通信介质后,CAN总线在通信性能上的改善。 在给定波特率下,光纤传输的最远距离L与信号在光纤中的传输时间t传输之间满足以下关系: L=V光纤t传输式中:V光纤为信号在光纤中的传播速度。电磁渡在介质中的传播速度为V=Cn(C为光速,n为介质的折射率),光在光纤中的传播速度近似为260m/s,电磁波在双绞线中的

16、传播速率大致为200ms。这里取t内部延迟=O4t位时间,则可以估算出光纤传输时CAN总线的最大距离,如表2所列。采用光纤作为传输介质,CAN总线的最大传输距离能够提高约40%。 从表2中可以看出,由于CAN总线通信速率较低及非破坏性总线仲裁的特点,使用光纤传输介质,其传输距离的增加并不十分叫显,没能充分发挥光纤传输大容量、远距离的优势。但是使用光纤仍然有它巨大的潜力: 由于一般电磁辐射的频谱和光波的频谱相距甚远,它不会叠加到光信号上或混入光信号中,也很难进入光纤芯内影响光信号的传送。因此,光纤通信系统特别适合于在有强烈电磁干扰的地区或场合中使用,诸如电力系统、电气化铁道中的通信系统等。 由于

17、光纤的主要材料为二氧化硅,所以它比以铜为材料的电缆抗化学腐蚀和氧化等的性能强,即光纤的化学稳定性好,寿命长,特别适宜在有腐蚀的区域(如化工厂等)使用。 光纤的尺寸小,重量轻,因此光纤通信系统特别适合在一些空间有限的地方使用,比如船舰、飞机、车辆、火箭、导弹等场合。这在国防军事上有十分重要的意义。结语 CAN总线应用范围的日趋广泛,能够适应越来越复杂的环境,特别是一些强干扰、远距离、地理分布不均、工作环境恶劣的应用场合。传统的双绞线已不能满足需要,采用光纤介质不但能解决这些问题,而且给CAN总线应用带来更大的灵活性。实现光纤传输的一个关键点就是光纤传输接口的设计,本文提出了一种基于光纤收发一体模

18、块的接口方案及其实现,并通过实验验证了设计的正确性,对于在CAN总线这样速率较低的现场总线中使用光纤传输具有一定实用价值。基于CAN总线的温度检测节点设计日期:2008-3-19来源:今日电子/21ic 作者:武汉理工大学智能信息系统研究所 金晶/华中科技大学国家数控系统工程技术研究中心 李福先 程鑫字体:大 中 小 在对电子点火模块的测试中,为了模拟电子点火系统的真实工况,电子点火模块往往被置于高于常温的环境下进行电子点火实验,以获得最接近真实汽车运行工况的点火参数数据。由于电子点火模块自身的发热,其核心元件的温度成为影响电子模块性能的重要因素;另外,还要考虑环境温度是否达到模拟真实工况的要

19、求等。本文介绍了一种应用LM35温度传感器和PICMicro的温度检测节点的设计方案,用于检测在模拟汽车电子点火的过程中,电子点火模块的核心模块温度和环境温度,将阐明模块结构、工作原理及采样值量化的方法。节点原理与结构该温度检测节点由传感器电路、信号调理电路、单片机应用系统、CAN总线接口等构成。电路基本工作原理是:传感器电路将感应到的温度信号以电压的形式输出到信号调理电路,信号经过调理后输入到A/D采样电路,由ADC将数字量值送给单片机系统。单片机系统将监控实时温度,当温度超过警戒值和危险值时,单片机将主动发送警告信息到上位机,提醒操作人员检查。模块逻辑结构如图1所示。图1 温度检测节点逻辑

20、结构传感器电路采用温度传感器LM35,供电电压为15V直流,工作电流为120mA ,功耗极低,在全温度范围工作时,电流变化很小,电压输出采用差动信号方式,由2、3引脚直接输出。LM35输出信号经过一个由RC组成的LP滤波器,滤除高频的噪声干扰。本节点的核心MCU是PIC16F87x,是Microchip公司推出的低功耗8位单片机。PIC16F87x拥有精简指令集,执行速度为200ns。CAN 控制器采用Microchip公司的MCP2510,总线驱动器采用PCA82C250,总线隔离电路采用光耦6N317,信号调理电路采用LF412。温度监测模块的硬件结构如图2所示。图2 温度监测模块硬件结构

21、信号调理电路主要完成对传感器信号放大和限幅的功能,将传感器电路输出的变化范围为2V左右的直流电压,调理为符合PICMicro的AD接口的电压范围,既不能超过AD采样的量程,又要有相当的信号精度。单片机通过A/D采样通道采集传感器的温度数据,并计算温度范围。外围设备电路为PIC16F87x最小系统运行所需要的必要外设。PIC16F87x通过SPI总线与MCP2510进行数据交换,完成CAN总线数据包的发送和接收,其接口电路如图3所示。图3 PIC16F877与MCP2510的接口电路其中,SCK为SPI总线时钟,PIC16F87x模块的SPI接口接MCP2510的SI、SO、SCK,RA4与RA

22、1分别控制MCP2510的芯片复位和片选。INT接受MCP2510的中断请求。系统软件设计1系统软件流程为了避免因干扰而产生误动作,软件采取了一些冗余和容错处理,在A/D模块处理采样数据时,采用了软件滤波措施,以滤除电路中可能会出现的尖峰干扰。方法为连续采样五次,通过比较判断,去掉其中的最大值和最小值, 其余三次的值求和后取平均值,把平均值作为CPU用来划分温度范围的有效数据。数据包的解析和封装都遵循CAN的应用层协议,主程序流程如图4所示。图4 主程序流程当CPU检测到温度出现异常,会根据温度异常范围向上位机发出温度异常警报,这是该节点CPU唯一主动向上位机发出的数据帧。该节点的温度相关数据

23、存放在缓冲区,在没有收到上位机数据请求的时候,该缓冲区的数据会不断的被新的数据刷新,以保证该节点数据的实时性,中断流程如图5所示。图5 CAN接收中断流程2 采样值的量化方法采样值的准确量化是温控电路正常工作的关键,这里采用以下换算办法来进行量化。设经过信号调理后的电压为Ui,则-10VUi10V,已知-10V对应的温度是-55,10V对应的温度为125,易求得比例因数Kt = 0.111V/。温度为0时,T= 55(相当于-55时的变化量)。Ui=-10V+TKt=-10V+550.111V/=-3.895V。Ui转换为数字量后,每个数字量对应电压值为19.531mV,用Ks表示。可以求得数

24、字量变化和温度变化之间的对应关系:Kt/Ks =(0.111V/)/(19.531mV/数字量)=5.683数字量/。其他温度对应的数字量也可以通过以上方法算出。3 SPI接口通信PIC16F87x通过SPI接口和MCP2510进行数据交换。MCP2510 设计可与许多微控制器的串行外设接口(SPI)直接相连。外部数据和命令通过SI引脚传送到器件中,而数据在SCK时钟信号的上升沿传送进去。MCP2510在SCK下降沿通过SO 引脚发送表1列出了所有操作的指令字节。以PIC16F87x向MCP2510发送读指令为例,来说明SPI接口通信过程。在读操作开始时,CS 引脚将被置为低电平。随后读指令和

25、8位地址码(A7A0)将被依次送入MCP2510。在接收到读指令和地址码之后,MCP2510指定地址寄存器中的数据将被移出通过SO引脚进行发送。每一数据字节移出后,器件内部的地址指针将自动加一以指向下一地址。因此可以对下一个连续地址寄存器进行读操作。通过该方法可以顺序读取任意一个连续地址寄存器中的数据。通过拉高 CS 引脚电平可以结束读操作,如图6所示。图6 SPI 接口通信时序结束语基于LM35开发的温控节点工作稳定性强、可靠性高、且具有体积小、灵敏度高、响应时间短、抗干扰能力强等特点。该节点成本低廉,器件均为常规元件,有较高的工程价值。本节点拥有CAN接口,既可以作为一个独立的检测系统,也

26、可以作为分布式测试系统的一个关键部分。CAN的上层协议都可以在软件中实现,使得本节点接口灵活,不受上层协议的限制。基于CAN息线的分布式监控系统设计日期:2008-3-11来源:单片机及嵌入式系统应用 作者:防空兵指挥学院 王文记 赵国豪 赵勇 乔渠字体:大 中 小 摘要 针对传统的承压锅炉监控系统中存在的问题,设计了一套基于CAN总线的智能监控系统。选用STC89LE54RD+为微控制器,SJAl000为CAN控制器,PCA82C250为CAN控制器接口芯片;同时,还选用了先进的DSl822与PPT-R传感器,实现了CAN网络的数据采集、状态智能监控和数据存储。实际应用表明,系统工作稳定、可

27、靠。关键词 CAN总线 SJAl000 DSl822 智能监控 引 言 锅炉是通过燃烧加热工质来提供热能动力的重要设备,同时又是承压、受火、有爆炸危险而又被各行各业普遍使用的特殊设备。所以实时监控锅炉的运行状态,及时、准确地发现锅炉运行中的事故至关重要。传统的锅炉监控系统在测量手段和使用的传感器方面都存在很大的缺陷。以温度检测为例,早期采用的热电偶电桥法,测试过程复杂;而采用集成的半导体模拟温度传感器需要大量的传输电缆,成本高且不易维护。 CAN总线是一种多主机控制标准,具有物理层和数据链路层的协议、多主节点、无损仲裁、高可靠性及扩充性能好等特点能有效支持分布式控制系统的串行通信网络。一方面,

28、其通信方式灵活,可实现多主方式工作,还可实现点对点、点对多点等多种数据的收发;另一方面,能在相对较大的距离间进行较高位速率的数据通信。本系统是由上位机对多个并列的承压锅炉监控单元进行控制管理,各监控单元之间要进行快速的数据传输。CAN总线能很好地满足该系统的要求。1 系统总体结构 如图1所示,系统由上位监控机、CAN节点O与其他CAN节点组成。其中,上位监控机为PC机,各CAN节点的微控制器为STC89LE54RD+。STC89LE54RD+外接CAN控制器SJA1000,外部设备主要为一线式数字温度计DSl822与压力传感器。 上位监控机(PC机)采用IBM-PC兼容机,主要负责对系统各节点

29、监控数据的接收与管理、控制命令的发送以及各控制单元动态参数和设备状态的实时显示。 CAN节点O是一个至关重要的节点,主要有两个功能:一是作为上位机(PC机)与CAN总线的接口,完成CAN总线数据与RS-232接口的数据转换,对智能节点传送过来的数据信息进行缓存,对告警信号进行告警以通知维护人员进行处理;二是负责协调上位机与各个CAN节点的通信,以确保各个节点的监控数据能够快速、准确地传给上位机。 监控CAN节点为智能型的监控模块,以单片机为核心,主要负责对现场的环境参数和设备状态进行监测,对采集来的数据进行打包处理并将处理过的数字信号通过CAN通信控制器SJAl000送入CAN总线;对系统中各

30、个承压锅炉的压力与温度进行测量。一般情况下,智能监控节点会把监控数据进行存储,定期上传给上位机,并可接受上位机的轮询。若超出正常工作范围,则告警,同时把数据实时向上位机报告。2 硬件结构的设计 如图2所示,监控CAN节点以STC89LE54RD+为微控制器,外围模块包括CAN总线接口模块、温度采集模块、压力采集模块、报警模块等。为充分利用STC89LE54RD+的接口资源,除CAN接口模块外,其余模块均采用串行接口器件。这样就减小了电路体积,降低了电路的硬件成本。 STC89LE54RD+是高速、低功耗且兼容Philips公司51MX内核的新一代单片机,12时钟机器周期和6时钟机器周期可反复设

31、置,内部集成有MX810专用复位电路;执行指令的速度为标准8051的12倍,支持在系统编程ISP和在应用编程IAP。2.1 CAN总线接口模块 在图3所示的模块中,选用SJAl000作为CAN控制器,PCA82C250作为CAN控制器接口芯片。SJAl000集成了CAN协议的物理层和数据链路层功能,可进行通信数据的帧处理。PCA82C250是CAN协议控制器和物理总线之间的接口,对总线提供差动发送能力,对CAN控制器提供差动接收能力;增加通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰,实现热防护。把STC89LE54RD+的ALE、RD、WR与SJAl000的ALE、RD、WR相连

32、就构成一个最小系统节点,通过读、写外部数据存储器的形式来访问SJAl000。将SJAl000的TXl脚悬空,RXl引脚接地,形成CAN协议所要求的电平逻辑。 为进一步提高系统的抗干扰能力,在CAN控制器SJAl000和CAN控制器接口PCA82C250之间加接6N137光电隔离芯片,并采用DC-DC变换器隔离电源。通信信号传输到导线的端点时会发生反射,反射信号会干扰正常信号的传输,因而总线2端两个124W的电阻(见图1)对匹配总线阻抗起着相当重要的作用;忽略掉它们,会使数据通信的抗干扰性和可靠性大大降低,甚至无法通信。PCA82C250第8脚与地之间的电阻RS称为“斜率电阻”,它的取值决定了系

33、统处于高速工作方式还是斜率控制方式。把该引脚直接与地相连,系统将处于高速工作方式。在这种方式下为避免射频干扰,使用屏蔽电缆作总线;而在波特率较低、总线较短时,一般采用斜率控制方式,上升和下降的斜率取决于RS的阻值。通常情况下,RS较理想的功率取值范围为15kW200kW。在这种方式下,使用平行线或双绞线作总线。2.2 温度测量模块 温度测量模块采用美国Dallas公司推出的基于单总线技术的数字温度计芯片DSl822,其连接电路简单,无需外接元件,如图4所示。DSl822采用了一种将温度直接转换为频率的时钟计数法,计数时钟由温度系数很低的振荡器产生,因而非常稳定;而计数的闸门周期则由温度系数很高

34、(即对温度非常敏感)的振荡器决定。23 压力测量模块 压力测量模块采用精密智能压力传感器PPT-R。PPT-R是霍尼威尔公司生产的高品质压力传感器,带有不锈钢隔膜,适用于对高温、腐蚀性介质的测量。 PPT-R智能压力传感器性能优良、组态灵活。PPT-R传感器可对每次测量的压力信号进行积分,积分时间可在8ms12s之间选择。这样可以提高数字控制系统在不同环境条件下的适应性和抗干扰能力。PPT传感器具有优异的重复性和稳定性,其压力信号可由单片机设置为数字输出模式,也可以设置为模拟输出模式。本系统中,将其设置为数字输出模式。3 软件的设计 系统软件的设计采用模块化方式,主要分为上位机程序模块、数据采

35、集处理模块和CAN通信模块等。在此主要介绍上位机软件模块与CAN通信模块的设计。31 上位机软件的设计 上位机软件以Borland公司推出的C+Builder6为开发平台,具有系统参数设置、监控状态设置、数据发送和接收、节点状态查询、中断接收数据管理等功能。上位机首先对CAN总线及其自身初始化,然后发送命令通知特定的节点向CAN总线上发送数据,通过CAN总线上传到上位机,再由上位机处理。上位机采用定时轮循方式向各个节点发命令,采用中断方式接收数据。 首先用CreateFile()打开通信串口,函数引用格式为: CreateFile(1pFileName,dwDesiredAccessdwSha

36、re-Mode,1pSecuritvAttributes,dwCreationDistribution,dw-FlagsAndAttributes,hTemplateFile); 然后用BuildCommDCB()和SetCommState()函数通过通信设备控制块DCB(Device Control Block)设置串口通信参数,如波特率、停止位、数据位、校验位等;当有通信事件产生时,就可用函数Read File()和WriteFile()直接对串口缓冲区进行读写操作了。其引用格式分别为: WriteFile(hFile,lpBuffer,nNumberOfBytesToWrite,1pNu

37、mberOfBytesWritten,lpOverlapped); ReadFile(hFile,lpBuffer,nNumberOfBytesToRead,lpNumberOtBytesRead,lpOverlapped) 上位机软件其他功能的实现,可通过调用相应组件的属性进行编程。最后编制的软件界面如图5所示。32 CAN通信模块设计 CAN通信程序将采集到的数据发送到CAN控制器,再由CAN控制器将数据发送到CAN总线。 对于接收数据,系统采用中断方式实现。一旦中断发生,即将接收的数据自动装载到相应的报文寄存器中,此时还可采用屏蔽滤波方式。利用屏蔽滤波寄存器对接收报文的标识符和预先在接收

38、缓冲器初始化时设定的标识符进行有选择的逐位比较。只有标识符匹配的报文才能进入接收缓冲器,那些不符合要求的报文则将被屏蔽于接收缓冲器之外,从而减轻CPU处理报文的负担。此外,不同数据应放入不同的报文寄存器中,其程序流程如图6所示。结语 本系统采用了IBM-PC兼容机、单片机和SJAl000组成二级控制系统,实现了一体化的操作,解决了长期以来在承压锅炉监控方面的难题。系统结构简单,操作方便,安全可靠,造价低廉,运行稳定可靠。单片机和MCP2510的CAN息线通信模块设计日期:2008-3-10来源:单片机及嵌入式系统应用 作者:山东理工大学 杨庆华 张景元字体:大 中 小 摘要 CAN总线上的分布

39、式控制节点一般由单片机和可编程的CAN通信控制器组成。硬件方面介绍了节点的电路原理,软件方面给出了系统程序设计流程及其需要注意的问题。关键词 MCP2510 CAN控制器 智能节点 CAN(Controller Area Network)总线,即控制器局域网。由于具有高性能、高可靠性以及独特的设计,CAN总线越来越受到人们的重视。德国的Bosch公司最初为汽车监控和控制系统设计了CAN总线,现在,其应用已面向过程工业、机械工业、纺织工业、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。CAN总线已经形成国际标准,并已经公认为是最有前途的现场总线之一。CAN总线规范已经被国际标准化组织制

40、订为国际标准ISOll898,并得到众多半导体器件厂商的支持,推出各种集成有CAN协议的产品。CAN总线系统智能节点是网络上报文的接收和发送站,一般由单片机和CAN控制器或二者合二为一组成。 MCP2510是Microchip公司生产的一种独立的可编程CAN控制器芯片。本文将介绍新型的独立CAN通信控制器MCP2510,并给出其在CAN总线系统智能节点中的应用实例。1 MCP2510芯片介绍 MCP2510是一种带有SPI接口的CAN控制器,DIP封装如图l所示。它支持CAN技术规范V2OAB。能够发送或接收标准的和扩展的信息帧,同时具有接收滤波和信息管理的功能。MCP2510通过SI接口与M

41、CU进行数据传输,最高数据传输速率可达5Mbps,MCU可通过MCP2510与CAN总线上的其他MCU单元通信。MCP25lO内含3个发送缓冲器和2个接收缓冲器,同时还具有灵活的中断管理能力,这些特点使得MCU对CAN总线的操作变得非常简便。11 MCP2510的主要特点 支持CANV2OAB; 具有SPI接口,支持SPI模式0,O和l,1; 内含3个发送缓冲器和2个接收缓冲器,可对其优先权进行编程; 具有6个接收过滤器,2个接收过滤器屏蔽; 具有灵活的中断管理能力; 采用低功耗CMOS工艺技术,其工作电压范围为3055V,有效电流为5mA,维持电流为10A; 工作温度范围为-40+125。1

42、.2 结构及工作原理 MCP25lO有PDIP、SOIC和TSSOP三种封装形式。图2是MCP2510的内部结构框图。CAN协议机负责与CAN总线的接口,SPI接口逻辑用于实现同MCU的通信,而寄存、缓冲器组与控制逻辑则用来完成各种方式的设定和操作控制。现结合其工作过程将各部分的功能、原理作一介绍。(1)收发操作 MCP2510的发送操作通过3个发送缓冲器来实现。这3个发送缓冲器各占据14字节的SRAM。第1字节是控制寄存器TXBNCTRL,该寄存器用来设定信息发送的条件,且给出了信息的发送状态;第26字节用来存放标准的和扩展的标识符以及仲裁信息;最后8字节则用来存放待发送的数据信息。在进行发

43、送前,必须先对这些寄存器进行初始化。(2)中断管理 MCP2510有8个中断源,包括发送中断、接收中断、错误中断及总线唤醒中断等。利用中断使能寄存器(CANINTE)和中断屏蔽寄存器(CANINTF)可以方便地实现对各种中断的有效管理。当有中断发生时,INT引脚变为低电平并保持在低电平,直到MCU清除中断为止。(3)错误检测 CAN协议具有CRCF错误、应答错误、形式错误、位错误和填充错误等检测功能。MCP2510内含接收出错计数器(REC)和发送出错计数器(TEC)两个错误计数器。因而对网络中的任何一个节点来说,都有可能因为错误计数器的数值不同而使其处于错误一激话、错误一认可和总线一脱离3种

44、状态之一。2 MCP2510在智能节点中的应用实例 利用MCP2510和CAN总线收发器TJAl050可构成一个CAN总线分布式测控网络。系统可包括一个主控制器和多个节点控制器,这种节点控制器可对电动机的电流、电压及周围的温度进行监控,其结构如图3所示。 这种网络拓扑结构采用了总线式结构和无源抽头连接,且结构简单、成本低,因而系统的可靠性较高。其信息传输采用CAN通信协议,通信介质采用双绞线。由于CAN总线是基于发送报文的编码,不对CAN控制节点进行编码,故系统的可扩充性比较好,同时增删CAN总线上的控制节点不会对系统的其余节点造成任何影响。 节点控制器的MCU可选用具有SPI接口的微处理器,

45、也可采用不带SPI接口的微处理器。本系统采用的是不带SPI接口的微处理器AT89C5l。AT89C51可通过P1口与CAN控制器的SPI接口直接相连,并用软件算法来实现SPI接口协议。CAN总线收发器TJAl050则作为MCP2510与物理总线的接口。如果需要进一步提高系统的抗干扰能力,则可在MCP2510和TJAl050之间再加一个光电隔离器。 智能节点电路原理图如图4所示。21 软件设计 MCP2510正常工作之前,需要进行正确的初始化,包括设置SPI接口的数据传输速率、CAN通信的波特率、MCP25lO的接收过滤器和屏蔽器以及发送和接收中断允许标志位等。与SJAl000不同的是,单片机对

46、MCP2510的接收缓冲器和发送缓冲器的操作,必须通过SPI接口用MCP25lO内置读写命令来完成。其读、写命令时序图如图5和图6所示。 本文中MCP2510主要采取中断模式进行总线数据的接收和发送。整个系统主序提供两种中断:定时器中断和外部中断。定时器中断的中断子程序主要负责处理来自模拟通道AINOAIN7的AD数据,向MCP25lO发送“数据发送请求命令”以及发送数据。外部中断的中断处理子程序主要包括CAN总线错误处理子程序和数据接收子程序。22 软件主体设计流程 软件主体设计流程如图7所示。软件设计时需要注意以下问题: 因为MCP2510在初始化完成后处于默认Config-uration

47、模式下,所以就需要在MCP2510的初始化完后将其置为Normal模式,否则MCP2510将一直停留在Configuration模式下,不能正常进行工作。将MCP2510置Normal模式可通过使用MCP2510内置的BitModify(位修改)4指令向CANCTRL控制字写入一个0字节来实现。 在对MCP2510进行任何操作之前,都要由微处理器向MCP2510的片选CS输出一个低电平,使得MCP2510选通。 在执行MCP2510的“读”操作时,发送完读指令及其地址码之后,仍然需要向MCP2510提供时钟,以接收“读”到的数据。可以通过向MCP2510发送一个O字节来实现。 在对MCP2510完成任意操作后,都要延时一段时间,使其有足够的时间来准备接收下次操作的命令,防止出现MCP2510“忙”的情况。3 总 结 CAN总线已被

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1