2276.企业试验机监控管理系统基于ARM7CAN—RS232传输接口的设计 论文_第1页
2276.企业试验机监控管理系统基于ARM7CAN—RS232传输接口的设计 论文_第2页
2276.企业试验机监控管理系统基于ARM7CAN—RS232传输接口的设计 论文_第3页
2276.企业试验机监控管理系统基于ARM7CAN—RS232传输接口的设计 论文_第4页
2276.企业试验机监控管理系统基于ARM7CAN—RS232传输接口的设计 论文_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、目录摘要1abstract1 选题的背景及意义 2 基于arm7的canrs232传输接口设计方案2. 1 rs232标准 2.1.1 rs232 标准简介 2.1.2 atmel at91系列7x256同步异步收发器(usart)简介2.1.3 串口初始化设置 2.2 can协议2.2.1 can协议简介2.2.2 can收发器tja1050简介2.2.3 atmel at91系列7x256局域网络控制器(can)简介2.2.4 can通信的硬件设计2.2.5 can初始化设置2.3 can rs232通信网络设计2.3.1 整体实现说明2.3.2 rs232通信设计2.3.3 can ca

2、n通信设计2.4 嵌入式操作系统3 通信测试4 结果分析结束语致谢参考文献附录企业试验机监控管理系统-基于arm7canrs232传输接口的设计 摘 要can 总线是一种支持分布式实时控制系统的串行通信的局域网络。由于其高性能、高可靠性、实时性好及其独特的设计,已广泛应用于控制系统中的各检测和执行机构之间的数据通信。本文针对大型复杂工业现场实时测控网络的要求,介绍了can总线的特点, 介绍了一种在工业测控系统中具有通用性的, 基于cos-ii的嵌入式操作系统的,can 总线与pc 机通过rs - 232 互连的串口网络通信接口的设计,详细说明了该接口的硬件配置(基于atmel公司的7x256芯

3、片和tja1050收发器的设计)、电路结构和软件设计。并对软硬件设计中遇到的几个关键问题进行了讨论。该设计方案实现了管理监控层(上位pc 机) 和现场生产测控层(现场can 总线网)之间的连接。充分体现can 总线的灵活性和可扩展性。其实际应用结果表明:该适配器可靠性高,运行稳定,具有很强的实用推广价值。关键词:can 总线;7x256;can 通信;tja1050; atmel;abstractcan bus is a kind of area network which supports the serial communication of real-time . owing to it

4、s high performance, high reliability,good performance of real-time and its unique design,can bus has been widely applied in the data communication between the testing and implementing agencies in the control system. at the request of real-time monitoring and control network in the large-scale indust

5、rial complex scene,this paper has introduced the features of can bus, introcuced a serial network communication interface adapter design between can bus and pc ,based on cos-ii operating system ,and its hardware configuration (7x256 chip based on atmel company and tja1050 transceiver),circuit constr

6、uction and software designing in detail. it was provided with currency in the industrial measure and control system. the key questions in the design were also discussed. the design realized the link between the administer layer ( pc) and the locale produce control layer (can bus network) . the flexi

7、bility and expandability of can bus was achieved. its running results show that it is reliable and steady. so it is worthwhile for further practical application.it has described the communication model and costruction methods of can bus network.this paper has focused on the detailed discussion of no

8、de hardware configuration and soft function of,especially the realization of can bus.keywords: can bus; 7x256; can communication; tja1050; atmel;1 选题的背景及意义随着电子设备的大量出现及针对各种控制系统的实际需求,各种通信网络相继产生。由于它们的总线结构,通信协议及传输特点各不相同,给不同设备之间的连接带来很多麻烦,因而急需各种总线之间的转换装置。can和rs232是目前工业现场比较流行的和很有前途的通信网络,设计装置是一种canrs232总线转换

9、装置,电路设计简单新颖,并且携带方便,实用性很强。can 是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。最高传出速率可达到1m bit/s,当信号传输距离达到 10km 时,can 仍可提供高达 5kbit/s 的数据传输速率。 由于 can 总线具有很高的实时性能,因此,can 已经在汽车工业、航空工业、工业控制、安全防护等领域中得到了广泛应用。1986 年2 月,robert bosch 公司在 sae(汽车工程协会)大会上介绍了一种新型的串行总线can控制器局域网,那是 can 诞生的时刻。今天,在欧洲几乎每一辆新客车均装配有

10、can 局域网。同样,can也用于其他类型的交通工具,从火车到轮船或者用于工业控制。can 已经成为全球范围内最重要的总线之一,甚至领导着串行总线。在 1999 年,接近6 千万个 can 控制器投入应用;2000 年,市场销售超过1 亿个 can 器件。尽管 can 协议已经有 15 年的历史,但它仍处在改进之中。从 2000 年开始,一个由数家公司组成的 iso任务组织定义了一种时间触发 can 报文传输的协议。bernd mueller 博士、thomas fuehrer、bosch 公司人员和半导体工业专家、学术研究专家将此协议定义为“时间触发通讯的 can(ttcan)”,计划在将来

11、标准化为 iso11898-4。这个 can 的扩展已在硅片上实现,不仅可实现闭环控制下支持报文的时间触发传输,而且可以实现 can 的 x-by-wire 应用。因为 can 协议并未改变,所以,在同一个物理层上,既可以实现传输时间触发的报文,也可以实现传输事件触发的报文。 ttcan 将为 can 延长 5-10年的生命期。现在,can 在全球市场上仍然处于起始点,当得到重视时,谁也无法预料 can 总线系统在下一个 1015 年内的发展趋势。这里需要强调一个现实:近几年内,美国和远东的汽车厂商将会在他们所生产汽车的串行部件上使用 can。另外,大量潜在的新应用(例如:娱乐)正在呈现不仅可

12、用于客车,也可用于家庭消费。同时,结合高层协议应用的特殊保安系统对 can 的需求也正在稳健增长。德国专业委员会 bia和德国安全标准权威 tv 已经对一些基于 can 的保安系统进行了认证。canopen-safety 是第一个获得 bia 许可的 can 解决方案,devicenet-safety 也会马上跟进。全球分级协会的领导者之一,germanischer lloyd 正在准备提议将 canopen 固件应用于海事运输。在其他事务中,规范定义可以通过自动切换将 canopen 网络转换为冗余总线系统。 can 总线在组网和通信功能上的优点以及它的高性能价格比决定了它在许多领域都有广阔

13、的应用前景和发展潜力。大型仪器设备系统复杂,对多种信息进行采集、处理、控制、输出等操作。如医疗器械ct 断层扫描仪,为保证其可靠工作,在数据通信上要求功能块间可随意进行数据交换、通信能以广播方式进行、简单经济的硬件接口、通信线尽量少、抗干扰能力强、可靠性高并能自动进行故障识别和自动恢复。但是,这些要求长时间未能得到很好的解决,直至can 总线技术出现才提供了一个较好的解决方法。测控系统中离不开传感器,由于各类传感器的工作原理不同,其最终输出的电量形式也各不相同,为了便于系统连接,通常要考虑将传感器的输出变换成标准电压或电流信号。即便是这样,在与计算机相连时,必须增加a/d 环节。如果传感器能以

14、数字形式输出,就可以方便地与计算机直接相连,从而简化系统结构,提高精度。这种传感器与计算机相连的总线可称为传感器总线。实际上传感器总线仍属于现场总线,关键的问题在于如何将总线接口与传感器一体化。在广泛的工业控制领域,can 总线可作为现场设备级的现场总线,与其它总线相比,具有很高的可靠性和性价比。这必将是can 技术开发应用的一个主要方向。在以往的国内测控领域,由于没有更好的选择,大多采用bitbus 或rs-485 作为通信总线。其不足主要有:一主多从,无冗余;数据通信为命令响应,传输率低;错误处理能力弱。采用can 总线技术后即可解决上述问题。can 网络上任何一个节点均可作为主节点主动地

15、与其它节点交换数据;can 网络节点的信息帧可以分出优先级,这对于有实时性要求的控制提供了方便;can 的物理层及数据链路层有独特的设计技术,使其在抗干扰以及错误检测等方面的性能均大大提高。can 的上述特点使其成为诸多工业测控领域中首选的现场总线之一。同时,随着电子设备的大量出现及针对各种控制系统的实际需求,各种通信网络相继产生。由于它们的总线结构,通信协议及传输特点各不相同,给不同设备之间的连接带来很多麻烦,因而急需各种总线之间的转换装置。目前较流行的现场通信网络有rs232,rs422/485、hart、profield、dupline、can和lonworks等,鉴于目前的项目开发及系

16、统的需要,本课题主要阐述了一种canrs232总线转换装置,本方案选用atmel 的 at91系列arm7处理芯片,电路设计简单新颖,且携带方便,方便后续模块扩充,实用性很强。2 基于arm7的can-rs232传输接口设计方案该传输接口利用rs - 232 串行通信口及can 总线进行数据通信,实现上位机与各智能节点间的通信任务。上位机选用pc 机,由于pc 机具有良好的人机交互界面,通过数字能够直观地反映出基于can 总线下上位机和下位机之间的通信情况。整个系统包括控制台(上位机) 向下传输命令和下位机数据的返回,以完成对下层设备的监控。图2 为系统整体拓扑结构框图。pc 机通过rs -

17、232 与can 主控制器7x256 通信,实现信息在can 总线上的发送与接收。底层各智能节点根据应用不同进行不同的数据采集和按键设置,但都具有与can总线通信能力可以上传数据和接收数据。clientclient局域网信息管理监控中心【上位机管理控制系统】agentclient主控计算机多功能控制器can-rs232传输接口can现场生产测控【下位机单元】测控机3测控机4测控机5万能测控机压力测控机测控机1测控机6拉力测控机测控机0(图2)2.1 rs - 232 标准2.1.1 rs 232标准简介rs-232标准是美国eia(电子工业联合会)与bell等公司一起开发的1969年公布的通信

18、协议。它适合于数据传输速率在020000bps范围内的通信。rs-232-c标准最初是远程通信连接数据终端设备dte(data terminal equipment)与数据通信设备dce(data communication equipment)而制定的但目前它又广泛地被借来用于计算机接口与终端或外设之间的近端连接标准。 rs-232c标准中所提到的“发送”和“接收”,都是站在dte立场因此双方都能发送和接收。rs-232c标准(协议)的全称是eia-rs-232c标准,eia(electronic industry association),rs(recommeded standard)代表

19、推荐标准,232是标识号,c代表rs232的最新一次修改(1969),在这之前,有rs232b、rs232a。它规定连接电缆和机械、电气特性、信号功能及传送过程。常用物理标准还有eiars-232-c、eiars-422-a、eiars-423a、eiars-485。 这里只介绍eiars-232-c(简称232,rs232)。 例如,目前在ibm pc机上的com1、com2接口,就是rs-232c接口。(见图2.1) (图2.1.1-1)2.1.2 atmel at91系列7x256同步异步收发器(usart)简介1.at91sam7系列微控制器具有两个功能强大的通用的同步/异步收发器 (

20、usart)其功能特点如下(at91sam7微控制器实物图见图2.1.2-1):(图2.1.2-1)(1)独立的波特率发生器,irda 红外调制解调(2)支持iso7816 t0/t1 智能卡,硬件握手信号,支持rs485(3)*usart1 支持全功能的调制解调器信号2.usart 可管理多类型串行同步或异步通信,它支持下列通信模式:5 到 9 位全双工异步串行通信:高位或低位在先 1、 1.5 或 2 位停止位 奇检验、偶检验、标志、间隔或无 接收器频率 8 或 16 倍重采样 可选硬件握手 可选调试解调器信号管理 可选间断管理 可选多点串行通信3.高速 5 到 9 位全双工串行通信: 高

21、位或低位在先 1 或 2 位停止位 奇检验、偶检验、标志、间隔或无 接收器频率 8 或 16 倍重采样 可选硬件握手 可选调试解调器信号管理 可选间断管理 可选多点串行通信4.串口相关控制寄存器: 控制寄存器 us_cr 模式寄存器us_mr 中断使能寄存器us_ier 中断禁用寄存器us_idr 中断屏蔽寄存器us_imr 通道状态寄存器us_csr 接收器保持寄存器us_rhr 发送器保持寄存器us_thr 波特率发生器寄存器us_brgr 接收器超时寄存器us_rtor 发送器时间保障寄存器us_ttgr fi di比率寄存器us_fidi 错误数目寄存器us_ner irda滤波寄存器

22、us_if2.1.3串口初始化设置1.实现方案论证说明: (1)rs - 232传输中查询与中断的选择1整体上讲查询方式会使程序运行一直处于等待状态,而中断方式可以保证程序的正常运行,很好的实现多任务方式。下面就具体项目中上位机和arm转换节点的通信方面详细说明一下:在上位机发送命令方面:在上位机与arm接口的通信中,上位机给arm板发送数据必须使用中断方式,这样才不会使系统处于一直等待状态,影响其它任务的正常运行,保证了整个控制系 统的实时性和快速响应。arm接口传数据方面:由于arm采集到的信息是通过can中断进行的,像上位机发送信息也一块在can中断处理中完成了,并且上位机可以一直处于等

23、待状态,对于arm向上位机回发信息采用中断目前来讲意义不大。2串口中断(发送和接收)的产生机制:at91对于串口中断有专门的寄存器控制,实现简单的串口中断可以通过一下设置实现:首先是串口初始化,以保证串口可以正常通信。然后是写aic相应寄存器注册相应串口中断。然后是写中断服务子函数。最后是使能aic控制器中相应的串口中断和串口中断控制器中相应的接收发送中断。(2)pdc模块的引入需要指出的是在7x256芯片中设置了pdc模块(外设数据控制器),使用pdc避免了处理器干涉并减去了处理器中断处理开销。这显著减少了数据传输所需时钟周期数并提高了微控制器性能,使其更加高效。介于此我们的串口中应用到了这

24、一外设,所以在相应的串口驱动中需要添加pdc接收发送使能语句。2.串口初始化流程如下:使能系统时钟pmc,usart0usart初始化串口.设置串口寄存器、相应引脚,波特率及数据帧格式使能pdc接收&发送寄存器设置pdc的rpr,rcr,tpr,rcr寄存器上位机接收设置变量及缓冲区开始上位机接收到?吗?3.相关代码实现:串口初始化中断接收代码:int rbuf3;int usartint (void)at91f_aic_disableit(at91c_base_aic,0xffffffff); /禁止所有中断 /-注册串口接收中断-at91f_us0_cfgpmc(); /使能串口时钟at9

25、1f_us0_cfgpio(); /设置引脚连接模块将对应io连接到uart0at91c_base_us0-us_cr = 0x50; /使能接收发送器at91c_base_us0-us_mr=at91c_us_usmode_normal |at91c_us_nbstop_1_bit |at91c_us_par_none|at91c_us_chrl_8_bits|at91c_us_clks_fdiv1|at91c_us_over ;/设置串口模式:普通模式 1位停止位 无奇偶校验 传输数据长度为8位 时钟分频输入 重采样模式at91c_base_us0-us_brgr =39; /设置串口波特

26、率 根据计算公式实际波特率为19200at91f_aic_configureit(at91c_base_aic,at91c_id_us0,at91c_aic_prior_highest,at91c_aic_srctype_int_high_level,irqgetfrompc); /注册 串口中断at91c_base_aic-aic_iecr=1us_ier=1; /使能串口中断at91f_pdc_enabletx (at91c_base_pdc_us0); / pdc发送传输使能at91f_pdc_enablerx (at91c_base_pdc_us0); / pdc接受传输使能/-串口接

27、收中断服务子函数-_irq void irqgetfrompc(void)at91c_base_pdc_us0-pdc_rpr = (unsigned int)rbuf; /设置接收存储地址 at91c_base_pdc_us0-pdc_rcr =3; /设置pdc接收节点数 *at91c_aic_eoicr=1can_mb1.can_mb_msr;if(_unstatus & at91c_can_mrdy)at91c_base_can-can_mb1.can_mb_mcr = at91c_can_mtcr;unok = 1;#else_unstatus = at91c_base_can-ca

28、n_mb0.can_mb_msr;if(_unstatus & at91c_can_mrdy)at91c_base_can-can_mb0.can_mb_mcr = at91c_can_mtcr;usart0send(); unok = 1;#endifat91c_base_aic-aic_eoicr = 0;/*-/* 函数名称 : cmain/* 功能描述 : 基本的can通信测试函数,完成基本的can初始化设置及其测试等工作/* 入口参数 : 无/* 出口参数 : 无/*-int cmain(void)int i = 0;#iftransmit_type = recvunsigned i

29、nt _unrecvdatah, _unrecvdatal;char _crecvdatalen;#endifunok = 1;/* 首先禁止can控制器,禁止can输入时钟,禁止所有中断at91c_base_pmc-pmc_pcdr = 1 can_mr = 0x00000000;at91c_base_aic-aic_idcr = 0xffffffff;/*- 初始化can控制器 -*/* 指定can收发引脚由can控制器控制at91c_base_pioa-pio_pdr = can_mask;at91c_base_pioa-pio_asr = can_mask;at91c_base_pmc

30、-pmc_pcer = 1 aic_svrat91c_id_can = (unsigned int)canirqhandler;at91c_base_aic-aic_smrat91c_id_can=at91c_aic_prior_highest|at91c_aic_srctype_int_high_level;/* 设置can波特率at91c_base_can-can_br = can_br_500k;#iftransmit_type = recv/* 禁止can中断at91c_base_can-can_idr = at91c_can_mb1;/* 设置mb0at91c_base_can-ca

31、n_mb0.can_mb_mid = 0x5aa can_mb0.can_mb_mam = 0xffffffff; / 接收掩码设置at91c_base_can-can_mb0.can_mb_mmr = at91c_can_mot_rx; / mb0为接收邮箱/* 使能mb0中断at91c_base_can-can_ier = at91c_can_mb0;/* 设置mb2at91c_base_can-can_mb2.can_mb_mid = 0x5aa can_mb2.can_mb_mdh = 0; / 高位数据at91c_base_can-can_mb2.can_mb_mdl = 0; /

32、低位数据at91c_base_can-can_mb2.can_mb_mmr = at91c_can_mot_consumer; / mb1为生产者邮箱/* 使能mb0中断at91c_base_can-can_ier = at91c_can_mb2;#else/* 禁止can中断at91c_base_can-can_idr = at91c_can_mb1;/* 设置mb1at91c_base_can-can_mb1.can_mb_mid = 0x5aa can_mb1.can_mb_mdh = send_data_h; / 高位数据at91c_base_can-can_mb1.can_mb_md

33、l = send_data_l; / 低位数据at91c_base_can-can_mb1.can_mb_mmr = at91c_can_mot_tx; / mb1为发送邮箱#endif/* 使能canat91c_base_can-can_mr = at91c_can_canen;/* 使能can中断并主动清除一次中断at91c_base_aic-aic_iecr = 1 aic_iccr = 1 can_mb1.can_mb_mcr = at91c_can_mtcr | (8 can_ier = at91c_can_mb1;#elseunok = 0; #endifreturn 1;2.3 can rs232通信网络设计2.3.1整体实现说明考虑到对工业现场数据采集的实际需求,我们设计将整个通信网络设计成一主多从的实现方式。具体描述如下:1.设置一个主机(即canrs232接口,后面为了描述的方便和整体通信的连贯将用主机代替转换接口的说法),从机的数目根据实际的采集需求设置。主机和从机的物理载体都是由7x256芯片设计的控制器。主机和每个从机都对应一个独立的控制器。2.从机主要负责数据的采集,可以是温度、压力、位移等工业现场数据。实际应用中会根据需求设置总线上应挂接的从机节点数,每个节点拥有一个固定的标志符(id),总线上

温馨提示

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

评论

0/150

提交评论