《2276.企业试验机监控管理系统基于ARM7CAN—RS232传输接口的设计 论文.doc》由会员分享,可在线阅读,更多相关《2276.企业试验机监控管理系统基于ARM7CAN—RS232传输接口的设计 论文.doc(34页珍藏版)》请在课桌文档上搜索。
1、毕业设计 第 34 页 共 34页目录摘要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 RS23
2、2通信设计2.3.3 CAN CAN通信设计2.4 嵌入式操作系统3 通信测试4 结果分析结束语致谢参考文献附录企业试验机监控管理系统-基于ARM7CANRS232传输接口的设计 摘 要CAN 总线是一种支持分布式实时控制系统的串行通信的局域网络。由于其高性能、高可靠性、实时性好及其独特的设计,已广泛应用于控制系统中的各检测和执行机构之间的数据通信。本文针对大型复杂工业现场实时测控网络的要求,介绍了CAN总线的特点, 介绍了一种在工业测控系统中具有通用性的, 基于COS-II的嵌入式操作系统的,CAN 总线与PC 机通过RS - 232 互连的串口网络通信接口的设计,详细说明了该接口的硬件配置
3、(基于ATMEL公司的7x256芯片和TJA1050收发器的设计)、电路结构和软件设计。并对软硬件设计中遇到的几个关键问题进行了讨论。该设计方案实现了管理监控层(上位PC 机) 和现场生产测控层(现场CAN 总线网)之间的连接。充分体现CAN 总线的灵活性和可扩展性。其实际应用结果表明:该适配器可靠性高,运行稳定,具有很强的实用推广价值。关键词:CAN 总线;7x256;CAN 通信;TJA1050; ATMEL;ABSTRACTCAN Bus is a kind of area Network which supports the serial communication of real-t
4、ime . Owing to its 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 l
5、arge-scale industrial 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 transceive
6、r),circuit construction 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 Net
7、work) . The flexibility 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
8、 discussion of node hardware configuration and soft function of,especially the realization of CAN Bus.Keywords: CAN bus; 7x256; CAN communication; TJA1050; ATMEL;1 选题的背景及意义随着电子设备的大量出现及针对各种控制系统的实际需求,各种通信网络相继产生。由于它们的总线结构,通信协议及传输特点各不相同,给不同设备之间的连接带来很多麻烦,因而急需各种总线之间的转换装置。CAN和RS232是目前工业现场比较流行的和很有前途的通信网络,设计
9、装置是一种CANRS232总线转换装置,电路设计简单新颖,并且携带方便,实用性很强。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 公司人员和半导体工业专家、学术研究专家将此协议定义为“时间触发通讯的
11、CAN(TTCAN)”,计划在将来标准化为 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 总线技术出现才提供了一个较好的解决方法。测控系统中离不开传感器,由于各类传感器的工作原理不同,其最终输出的电量形式也各不相同,为了便于系统连接,通常要考虑将传感器的输出变换成标准电压或电流信号。即便是这样,在与计算机相连时,必
14、须增加A/D 环节。如果传感器能以数字形式输出,就可以方便地与计算机直接相连,从而简化系统结构,提高精度。这种传感器与计算机相连的总线可称为传感器总线。实际上传感器总线仍属于现场总线,关键的问题在于如何将总线接口与传感器一体化。在广泛的工业控制领域,CAN 总线可作为现场设备级的现场总线,与其它总线相比,具有很高的可靠性和性价比。这必将是CAN 技术开发应用的一个主要方向。在以往的国内测控领域,由于没有更好的选择,大多采用BITBUS 或RS-485 作为通信总线。其不足主要有:一主多从,无冗余;数据通信为命令响应,传输率低;错误处理能力弱。采用CAN 总线技术后即可解决上述问题。CAN 网络
15、上任何一个节点均可作为主节点主动地与其它节点交换数据;CAN 网络节点的信息帧可以分出优先级,这对于有实时性要求的控制提供了方便;CAN 的物理层及数据链路层有独特的设计技术,使其在抗干扰以及错误检测等方面的性能均大大提高。CAN 的上述特点使其成为诸多工业测控领域中首选的现场总线之一。同时,随着电子设备的大量出现及针对各种控制系统的实际需求,各种通信网络相继产生。由于它们的总线结构,通信协议及传输特点各不相同,给不同设备之间的连接带来很多麻烦,因而急需各种总线之间的转换装置。目前较流行的现场通信网络有RS232,RS422/485、HART、Profield、Dupline、CAN和LonW
16、orks等,鉴于目前的项目开发及系统的需要,本课题主要阐述了一种CANRS232总线转换装置,本方案选用ATMEL 的 AT91系列arm7处理芯片,电路设计简单新颖,且携带方便,方便后续模块扩充,实用性很强。2 基于ARM7的CAN-RS232传输接口设计方案该传输接口利用RS - 232 串行通信口及CAN 总线进行数据通信,实现上位机与各智能节点间的通信任务。上位机选用PC 机,由于PC 机具有良好的人机交互界面,通过数字能够直观地反映出基于CAN 总线下上位机和下位机之间的通信情况。整个系统包括控制台(上位机) 向下传输命令和下位机数据的返回,以完成对下层设备的监控。图2 为系统整体拓
17、扑结构框图。PC 机通过RS - 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等
18、公司一起开发的1969年公布的通信协议。它适合于数据传输速率在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(recom
19、meded standard)代表推荐标准,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
20、.AT91SAM7系列微控制器具有两个功能强大的通用的同步/异步收发器 (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 倍重采样 可选硬件握手 可选调试解调器信号管理
21、可选间断管理 可选多点串行通信3.高速 5 到 9 位全双工串行通信: 高位或低位在先 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 D
22、I比率寄存器US_FIDI 错误数目寄存器US_NER IrDA滤波寄存器US_IF2.1.3串口初始化设置1.实现方案论证说明: (1)RS - 232传输中查询与中断的选择1整体上讲查询方式会使程序运行一直处于等待状态,而中断方式可以保证程序的正常运行,很好的实现多任务方式。下面就具体项目中上位机和ARM转换节点的通信方面详细说明一下:在上位机发送命令方面:在上位机与ARM接口的通信中,上位机给ARM板发送数据必须使用中断方式,这样才不会使系统处于一直等待状态,影响其它任务的正常运行,保证了整个控制系 统的实时性和快速响应。ARM接口传数据方面:由于ARM采集到的信息是通过CAN中断进行的
23、,像上位机发送信息也一块在CAN中断处理中完成了,并且上位机可以一直处于等待状态,对于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); /禁止所有中断 /-注册
25、串口接收中断-AT91F_US0_CfgPMC(); /使能串口时钟AT91F_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位 时钟分频输入 重采样
26、模式AT91C_BASE_US0-US_BRGR =39; /设置串口波特率 根据计算公式实际波特率为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 (
27、AT91C_BASE_PDC_US0); / PDC接受传输使能/-串口接收中断服务子函数-_irq void irqGetFromPC(void)AT91C_BASE_PDC_US0-PDC_RPR = (unsigned int)rBuf; /设置接收存储地址 AT91C_BASE_PDC_US0-PDC_RCR =3; /设置PDC接收节点数 *AT91C_AIC_EOICR=1AT91C_ID_US0;2.2 CAN协议2.2.1 CAN协议简介1.CANControl(Controller) Area Network是控制(器)局域网的简称。CAN是一种有效支持分布式控制或实时控制的
28、串行通信网络,最初由德国Bosch公司80年代用于汽车内部测试和控制仪器之间的数据通信。目前CAN 总线规范已被国际标准化组织ISO制订为国际标准ISO11898,并得到了Motorola,Intel ,Philips等大半导体器件生产厂家的支持,迅速推出各种集成有CAN协议的产品。目前CAN总线主要用于汽车自动化领域,如发动机自动点火、注油、复杂的加速刹车控制(ASC)、抗锁定刹车系统(ABS)和抗滑系统等。BENZ、BMW等著名汽车上已经采用CAN来满足上述功能。在工业过程控制领域,CAN也得到了广泛的应用。CAN 总线通信采用短帧结构,使得数据传输的时间短,受干扰的概率低,并且CAN 总
29、线协议有良好的检错措施,因此CAN 总线通信的可靠性较高。CAN 总线定义网络中的每一节点对应一地址,理论上基于CAN 总线的网络上可以添加、删除任一节点。在实际应用中,CAN 总线最多可挂110 个节点,通信方式可以为点对点的通信方式,也可以为广播方式;可以为单主方式也可以是多主方式。因此,CAN 总线通信有相当的灵活性。基于CAN 总线通信对于传送的信息帧可以设定不同的优先级,并通过总线仲裁机制使高优先级的信息能够被优先、及时的传送,保证了更重要的信息能及时地被传送,从而增加了CAN 总线通信的实时性。CAN 总线的完善、可靠的通信协议主要有接口器件完成,降低了软件开发的难度。 CAN 具
30、有十分优越的特点:A、较低的成本与极高的总线利用率;B、 数据传输距离可长达10Km,传输速率可高达1Mbit/s;C、可靠的错误处理和检错机制,发送的信息遭到破坏后可自动重发;D、节点在错误严重的情况下具有自动退出总线的功能;E、报文不包含源地址或目标地址仅用标志符来指示功能信息和优先级信息;由于人为、自然、其它外界环境的影响和人们对公交系统的安全可靠性、真实、实时性的追求,使得我们对通信方式,通信设备有了更高的要求,基于CAN总线的网络则成为我们最佳的选择。2.CAN总线采用分层结构,规范规定了任意两个节点之间的兼容性。包括电气特件和数据解释协议。CAN协议可分为:应用层、数据链路层、物理
31、层。其中目标层和传送层包括了ISO/OSI定义的数据链路的所有功能。目标层的功能包括:确认要发送的信息;为应用层提供接口。传送层功能包括:数据帧组织、总线仲裁、检错、错误报告、错误处理。 CAN总线以报文为单位进行信息交换,报文中含有标示符(ID),它既描述了数据的含义又表明了报文的优先权。CAN总线上的各个节点都可主动发送数据。当同时有两个或两个以上的节点发送报文时,CAN控制器采用ID进行仲裁。ID控制节点对总线的访问。发送具有最高优先权报文的节点获得总线的使用权,其他节点自动停止发送,总线空闲后,这些节点将自动重发报文。 3.CAN支持四类信息帧类型。 (1)数据帧 CAN协议有两种数据
32、帧类型标准2.0A和标准2.0B。两者本质的不同在于ID的长度不同。在2.0A类型中,ID的长度为l l位;在2.0B类型中ID为29位。一个数据帧中包括7个主要的域: 帧起始域标志数据帧的开始,由一个显性位组成。 仲裁域内容由标示符和远程传输请求位(RTR)组成,RTR用以表明此信息帧是数据帧还是不包含任何数据的远地请求帧。当2.0A的数据帧和2.0B的数据帧必须在同一条总线上传输时,首先判断其优先权,如果ID相同,则非扩展数据帧的优先权高于扩展数据帧。 控制域r0、r1是保留位,作为扩展位,DLC表示一帧中数据字节的数目。 数据域包含08字节的数据。 校验域检验位错用的循环冗余校验域,共1
33、5位。 应答域包括应答位和应答分隔符。正确接收到有效报文的接收站在应答期间将总线值为显性电平。 帧结束由七位隐性电平组成。 (2)远程帧 接受数据的节点可通过发远程帧请求源节点发送数据。它由6个域组成:帧起始、仲裁域、控制域、校验域、应答域、帧结束。 (3)错误指示帧 由错误标志和错误分界两个域组成。接收节点发现总线上的报文有误时,将自动发出“活动错误标志”其他节点检测到活动错误标志后发送“错误认可标志”。 (4)过载帧 由过载标志和过载分隔符组成。过载帧只能在一个帧结束后开始。当接收方接收下一帧之前,需要过多的时间处理当前的数据,或在帧问空隙域检测到显性电平时,则导致发送过载帧。 (5)帧间
34、空隙 位于数据帧和远程帧与前面的信息帧之间,由帧间空隙和总线空闲状态组成。帧间空隙是必要的,在此期间,CAN不进行新的帧发送,为的是CAN控制器在下次信息传递前有时间进行内部处理操作。当总线空闲时CAN控制器方可发送数据。2.2.2 CAN收发器TJA1050简介CAN 收发器是CAN协议控制器和物理总线之间的接口,本设计采用PHILIPS 公司的TJA1050 高速CAN 收发器。TJA1050 有一个电流限制电路,保护发送器的输出级,使由正或负电源电压意外造成的短路不会对TJA1050 造成损坏(此时的功率消耗增加)。TJA1050 还有一个温度保护电路,当与发送器的连接点的温度超过大约1
35、65时,会断开与发送器的连接。因为发送器消耗了大部分的功率,所以这个集成电路的功率消耗和温度会较低。但是此时IC 的其他功能仍继续工作。当引脚TXD 变高(电平),发送器由关闭状态复位。当总线短路时,尤其需要这个温度保护电路。TJA1050 可以为总线提供不同的发送性能, 为CAN 控制器提供不同的接收性能。而且它与“ISO 11898”标准完全兼容。TJA1050 提供两种模式供用户使用。用过引脚S 可以选择高速模式或静音模式。高速模式就是普通的工作模式, 将引脚 S接地可以进入这种模式。如果引脚S 没有连接, 高速模式就是默认的工作模式。在静音模式中, 发送器是禁止的。但其他功能可以继续使
36、用。将S 引脚连接到Vcc 可以进入这个模式。静音模式可以防止在CAN 控制器不受控制时对网络通讯造成堵塞。本设计要实现发送和接收, 所以将S 接地进入普通模式。2.2.3 ATMEL AT91系列7x256局域网络控制器(CAN)简介1.7x256的CAN控制器上有8个独立的邮箱。任何邮箱都可以通过程序设置为接收缓冲区(甚至是不连续的缓冲区)。当缓冲区满的时候一个中断就会被触发。邮箱的设置使开始接收的信息可以被锁存在CAN控制寄存器中。任何一个邮箱在指定其为接收邮箱的时候,可以指定其类型为Receive Mode,或者Receive with Overwrite Mode,如果将邮箱设置为R
37、eceive with Overwrite Mode ,那么如果在申请得到应答之前又接收到了新的信息,那么原来寄存器中的信息会被新接收到的信息覆盖掉。如果将邮箱设置为Receive Mode 模式,那么当邮箱中存在已接收的数据且还没有被应用程序通知其使用完毕时,该邮箱将拒绝接收任何信息。任何邮箱也都可以设置为发送缓冲区。多个发送邮箱可以在同一时间内被使能。每一个邮箱都可以被独立的设置为不同的优先级。 CPU通过CAN控制器邮箱读写数据或信息。每个邮箱均被分配了一个标志符(ID)。CAN控制器通过压缩或解码数据信息创建或解码数据帧。程序运行管理下的CAN控制器可以自动的处理远程帧、错误帧和过载帧
38、。 CAN模块有8个缓冲区,也可以称作通道或者邮箱。每个正在应用的邮箱都被定义了一个与CAN标志符对应的标志符。报文标志符可以和标准帧标志符或扩展帧相匹配。标志符在CAN初始化时就被定义好了,但是可以在以后被更改以使邮箱可以处理新的信息。可以为多个邮箱配置相同的ID。每个邮箱可以被配置为独立的接收或发送模块。邮箱类型可以通过邮箱模式寄存器(CAN MMRx)的MOT位定义。如果邮箱ID寄存器(CAN_MIDx)中的MIDE被置位,那么邮箱可以处理29位扩展的格式标志符,否则,邮箱将处理标准格式标志符。一旦一个新的信息被接收,它的ID会与邮箱掩码寄存器的值相与并与邮箱ID寄存器的值相比较。如果被
39、接收,那么这个信息的ID将被复制到邮箱ID寄存器。 2.CAN相关控制寄存器 模式寄存器 CAN_MR 中断使能寄存器 CAN_IER 中断禁止寄存器 CAN_IDR 中断掩码寄存器 CAN_IMR 状态寄存器 CAN_SR 波特率寄存器 CAN_BR 计数器寄存器 CAN_TIM 时间标记寄存器 CAN_TIMESTP 错误计数寄存器 CAN_ECR 传输命令寄存器 CAN_TCR 取消传输寄存器 CAN_ACR 邮箱模式寄存器 CAN_MMR 邮箱接受掩码寄存器 CAN_MAM 邮箱ID寄存器 CAN_MID 邮箱家族ID寄存器 CAN_FMID 邮箱状态寄存器 CAN_MSR 邮箱高位数
40、据寄存器CAN_MDH 邮箱低位数据寄存器CAN_MDL 邮箱控制寄存器CAN_MCR2.2.4 CAN通信的硬件设计 7x256的CAN控制器输入输出引脚分别为PA19和PA20,为了使转换接口与总线电气隔离,CAN控制器输入输出引脚经光耦6N137与CAN收发器TJA1050相连。为了起到隔离的效果,6N137和TJA1050的电源要相互独立。(原理图参见图2.2.4-1和图2.2.4-2,实物图参见图2.2.4-3)(图2.2.4-1)(图2.2.4-2)JTAG插槽AtmelARM7 TDMIRS232(USART0)光耦6N137CAN 接口CAN收发器TJA1050(图2.2.4-
41、3)2.2.5 CAN初始化设置1.实现方案论证说明: CAN中断通信实现论证:7x256的CAN控制器的数据传输是通过中断进行的,可以说没有中断就没有CAN的传输。当然中断的引入也有效的提高了整个系统的性能,扩展了节点的功能,提高了系统的实时性和可靠性。7x256有一系列寄存器用于CAN的中断控制,包括中断使能、中断禁止、中断状态等。在7x256中实现简单的CAN中断可以通过一下设置实现:首先是CAN控制器初始化。然后是写AIC相应寄存器注册CAN中断。然后是写中断服务子函数,除了要有对应邮箱数据操作外,必须有相应CAN中断结束语句和AIC中断结束语句。最后是使能AIC控制器中CAN中断和C
42、AN中控制器中断以及相应的CAN中断(比如接收、发送、唤醒等)。这样,在唤醒或发送接收等操作后,CAN中断就会发生,CAN状态寄存器会实时的显示CAN当前不同的CAN中断状态,我们可以据此进行不同的CAN操作。2. 7x256的CAN初始化流程(流程图见图2.2.5-1):CAN初始化流程:(1)设置PIO引脚连接到CAN控制器(2)使能CAN时钟(3)设置CAN波特率(4)向AIC注册CAN中断(需要编写对应的CAN中断服务子函数)(5)使能AIC控制器的CAN中断(6)使能CAN控制器(7)使能CAN控制器的相关中断(8)设置CAN邮箱(包括邮箱ID号、掩码、传输数据、传输数据长度、邮箱类型)(9)写发送命令 使能CAN控制时钟(PMC)使能CAN控制中断(AIC)配置一个