LW01-022@交叉电缆回线型TWC系统技术研究
收藏
资源目录
压缩包内文档预览:(预览前20页/共94页)
编号:503623
类型:共享资源
大小:18.85MB
格式:ZIP
上传时间:2015-11-09
上传人:QQ28****1120
认证信息
个人认证
孙**(实名认证)
辽宁
IP属地:辽宁
12
积分
- 关 键 词:
-
机械毕业设计 论文
- 资源描述:
-
LW01-022@交叉电缆回线型TWC系统技术研究,机械毕业设计 论文
- 内容简介:
-
基于SOC的细纱机集散控制系统设计硕士学位论文 学校代号:10255学号:2070948基于SOC的细纱机集散控制系统设计DESIGN ON DISTRIBUTED CONTROL SYSTEM OF SPINNING MACHINE BASED ON SOC学科(专业):控制理论与控制工程作者姓名:李效白指导教师姓名:钱剑敏答辩日期: 年 月东华大学学位论文原创性声明本人郑重声明:我恪守学术道德,崇尚严谨学风。所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已明确注明和引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品及成果的内容。论文为本人亲自撰写,我对所写的内容负责,并完全意识到本声明的法律结果由本人承担。 学位论文作者签名: 日期: 年 月 日东华大学学位论文版权使用授权书学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅或借阅。本人授权东华大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 保密 ,在 年解密后适用本版权书。本学位论文属于 不保密 。学位论文作者签名: 指导教师签名:日期: 年 月 日 日期: 年 月 日92 基于SOC的细纱机集散控制系统设计摘 要目前纺织工业使用的细纱机控制系统大多由PLC系统构成。 而以SOC单片机、ARM为微处理器配合FPGA/CPLD可编程逻辑器件架构的嵌入式系统以其高可靠性、高性价比、高度集成化等特点在工控等领域的应用日益广泛,为细纱机控制系统的架构形式提供了新的方式。本文主要研究了嵌入式技术在细纱机集散控制系统中的一种新的尝试,实现了上位机主控模块、上位机LED逻辑显示模块、下位机数据采集与转速控制模块、CAN通信网络等关键技术,并对系统进行了初步测试。本文首先介绍了细纱机的工艺过程与嵌入式技术的相关技术背景。在此基础上,分析了传统细纱机PLC控制系统的技术特点与优缺点,然后结合当今先进的SOC技术与嵌入式技术等,提出了一种基于SOC的细纱机集散控制系统。该方案利用SOC处理器的高性能和丰富的片上资源完成对细纱机的控制需求,并力争克服传统控制方式的技术缺点。新方案的控制系统主要由三部分组成,分别为上位机部分、下位机部分和CAN通信网络部分。上位机部分又分为由ARM控制的主控模块和由CPLD实现的LED大屏幕信息显示模块。新方案按照集散控制系统架构来设计,将系统分为一个主控与多个从机的分布式结构。本文不仅从理论上分析了基于SOC技术的细纱机控制方案的可行性,并且完成了对上位机主控模块、上位机LED逻辑显示模块、下位机数据采集与转速控制模块、CAN通信网络这四部分的软硬件设计,最后进行了系统联调测试。在布线的过程中还增加了现场抗干扰措施的设计与长走线可行性分析等。从完成的设计表明,基于SOC的细纱机控制方案不仅可以完成细纱机的各种功能,而且也可以弥补一部分传统的PLC细纱机控制方案中的不足。本系统目前处于实验性设计阶段,后续工作将主要围绕分析现场实际的干扰源、抗干扰措施的进一步改善与稳定性测试开展。关键词:SOC, 细纱机, ARM, CPLD, CAN总线, 集散控制系统DESIGN ON DISTRIBUTED CONTROL SYSTEM OF SPINNING MACHINE BASED ON SOCABSTRACTThe main stream control system of spinning machines generally based on the PLC control scheme. With the rapid development of electronic and manufacturing technology,SOC、ARM and FPGA/CPLD has been widely used in automatic control fields by its high reliability,high integration and high performance-to-price ratio,which provided the condition to improve the distributed control system of spinning machines.This paper mainly researched the application of embedded technology in the distributed control system of spinning machines.realized the commanding technique such as Host computer control module,Host computer LED display module, Lower computer data acquisition and Speed Control Module,CAN communication network and so on. In the end, the system was tested primarily.This paper introduces the spinning machine process and embedded technology in the related technical background. On the basis, the paper analysed the traditional spinning machine technology of PLC control system.Then with todays advanced technology and embedded SOC technologies, the paper put forward a new distributed control system of the spinning machine based on the SOC. This scheme used the SOC processor to complete the control demand of spinning machines with its high performance and rich resources on chip.It also intended to overcome the technical shortcomings of the traditional control method.The new scheme of control system mainly consists of three parts, namely the Host Computer Part, the Lower Computer Part and CAN Communication Network Part. The Host Computer Part is divided into two part of Host computer control module and Host computer LED display module. In accordance with the new program to design distributed control system architecture, the system is designed as one master with multiple slaves of the distributed structure.The paper not only theoretically analyzed the feasibility of this seheme but also completed the software and hardware design of Host computer control module,the software and hardware design of Host computer LED display module,the software and hardware design of Lower computer data acquisition and Speed Control Module and the software and hardware design of CAN communication network.Finally it has completed the system test. In the process of PCB layout,it also added EMC measures in the design and the feasibility of long-wiring analysis.The completed design indicated that the spinning machine control scheme based on the SOC can not only fulfill various functions, but also make up part of the traditional PLC control programs shortcomings in the spinning machine. However, this system has been designed and completed experimentally.The following work will mainly analyze the actual source of interference, EMC measures to further improve and stability testing.Xiaobai Li (Control Theory & Control Engineering)Supervised by Jianmin QianKEYWORDS: SOC, Spinning Machine, ARM, CPLD, CAN BUS, Distributed Control System目录第一章绪论111引言112细纱机工作流程及FA506型细纱机113嵌入式系统、CAN通信网络简介41.4论文所完成的主要工作及结构安排7第二章 FA506型细纱机工作原理分析及其控制系统研究921工艺要求922基于PLC的细纱机控制方案介绍11第三章 基于SOC的细纱机集散控制系统整体设计1331系统的整体架构及技术特点1332系统中各模块实现方式1533系统方案可行性分析及处理器选型15第四章上位机主控部分软硬件设计2041上位机主控部分整体设计2042上位机控制模块硬件及驱动设计2143上位机控制模块软件设计27第五章 上位机LED逻辑显示模块设计3651上位机LED逻辑显示模块总体设计3652 LED显示驱动模块硬件设计3653 CPLD逻辑控制模块硬件设计3953 LED显示驱动模块软件设计40第六章 下位机数据采集与转速控制部分软硬件设计486.1下位机数据采集与转速控制部分总体设计486.2下位机数据采集与转速控制部分硬件设计496.3下位机数据采集与转速控制部分软件设计55第七章 CAN总线通信网络物理接口及协议设计6871 CAN总线物理实现6872 CAN网络协议设计71第八章 系统PCB抗干扰设计及综合调试758.1 PCB板的设计和抗干扰问题758.2 系统调试77结束语79参考文献80附录82攻读学位期间发表的学术论文情况91致谢92第一章 绪论11引言信息化产业的迅猛发展为以前停留在人工操作的行业提供了新的解决方案。纺织行业是我国主要的对外输出产业,而大量的纺织企业却依然停留在人工操作机械设备的阶段。这主要是缘于国外先进的纺织机械费用昂贵及我国的自主研发能力较低。目前,国内研发纺织机械依然停留在模仿国外先进设备的水平上,缺乏面向各种不同情况下的独立研发能力,系统的稳定性及可靠性也缺乏足够的保障。而细纱机更是纺织机械的最后一道工序,对产品的质量及效率要求就更高。相比早期的计算机自动控制系统,嵌入式控制系统及网络化集散控制方式拥有更多的优势。嵌入式控制系统具备体积小、可靠性高、可裁减及成本低等诸多优点。而在工业现场环境中,嵌入式系统相比传统的PLC控制方式还是存在不少的劣势。其中,环境因素和距离因素是导致嵌入式技术介入的瓶颈。针对以上不足,本课题在系统方案中提出了使用SOC片上系统来设计下位机印制板的面积,利用CAN网络来提高通信距离及抵抗在长距离通信中电平变换产生的电磁干扰能力等。相比传统的PLC控制方式,在弥补了嵌入式控制系统不足的同时,更大大降低了成本、减小了控制设备的体积、可以方便组网及添加各种扩展功能。本课题是对嵌入式技术应用在已成型机械设备上的一次新的尝试,是寻求在传统工业现场控制方式的框架中发现新的突破口和增长点1。12细纱机工作流程及FA506型细纱机细纱机是纺织工业的重要生产设备。目前,国内棉纺厂所使用的细纱机落纱过程主要通过人工操作完成。存在着更换纺纱品种过程繁琐、调速精度低、锭速低、筒管卷装形式单一、试纺品种窄、机器生产效率低、自动化水平低等诸多缺点。随着纺织工业要求的提高,已经很难满足高质量、高效率、低污染的要求。本节分析了细纱机的工作流程,并对市场上主流的细纱机FA506型进行分析。121细纱机工作流程细纱工序的产品是细纱。细纱生产是纺纱生产过程中最终成纱的一道工序。细纱工序是将粗纱纺成具有一定线密度并符合国家质量标准的细纱,供捻线、机织或针织使用。细纱工序的主要任务是:牵伸:将喂入的粗纱均匀地抽长拉细到细纱所需要的线密度。加捻:将抽长拉细后的纱条加上适当的捻度,使细纱具有一定的强力、光泽、弹性和手感等物理机械特性。卷绕成型:将纺成的细纱按一定的要求卷绕在筒管上,以便加工。2细纱机工作流程如图1-1所示。粗纱从吊锭上的粗纱管上退绕出来,经过导纱杆及缓慢往复运动的横动导纱喇叭口,喂入牵伸装置进行牵伸。牵伸机构是通过前后2个速度不同的罗拉使粗纱拉伸为细纱。粗纱经牵伸装置牵伸后形成纱条,纱条从前罗拉输出并受到加捻,经过导纱钩,穿过钢丝圈绕在紧套在锭子上的筒管上。锭子高速回转时,筒管带着纱回转,从而带动了钢丝圈,使之沿着钢领高速回转,钢丝圈每转一转,就给纱条加上了一个捻回。同时,由于钢领对钢丝圈的摩擦阻力,纱在紧张的状态下拖动钢丝圈,使钢丝圈的回转速度慢于筒管图1-1细纱机工作流程的回转速度,因而将前钳口连续输出的纱条卷绕在筒管上。钢丝圈每落后筒管一转,筒管就绕上一圈纱,并随钢领板的规律性升降绕成符合一定要求的管纱。锭子的转速和前罗拉的线速度之间的关系决定了纱线的捻度,而钢领板的升降运动决定了纱线的成型。3122 细纱机发展及FA506型细纱机目前,国产细纱机在国内企业的使用率已经占到90%左右。总体来说,现在国产棉纺细纱设备的制造水平与过去相比,已经有了很大的进步。产品的产量、可靠性、稳定性等性能指标已经有了较大提升。由于国产设备的制造质量在不断提高,而青泽、欧瑞康、丰田等国外细纱品牌设备的价格较高,所以现在国内棉纺企业已经减少了这些设备的进口数量。 近年来,国内外环锭细纱机设备的发展都有了一些进步,瑞士立达公司推出的K45型集聚纺细纱机,锭数可达1632锭;青泽351细纱机是目前世界上最长的细纱机,全机共有1680锭。同时,国内经纬公司、上海二纺机、马佐里(原东台纺机)等公司生产的细纱机也取得了很大突破。马佐里(东台)有长车、紧密纺环锭细纱机、细络联,这些设备可实现纺纱生产自动化、工艺调节自动化及全自动落纱。其产品具有生产故障低、品种翻改快、纱线捻度、细度控制好等特点。该公司的FA506型环锭细纱机是目前较多纺织厂所使用的设备。FA506型细纱机为环锭细纱机,工作流程与一般细纱机并无二致。FA506型细纱机相比一般细纱机主要有以下特点。1、主传动采用双速电机,同步齿型带、有效降低噪音,低速启动后定时切换高速或采用变频调速供用户选用。2、采用可正反装凸轮,高速络筒机退绕不脱圈。 3、风箱结构合理,风机及门型滤网拆装方便,并有回花盒。4、车头车尾采用特殊设计的密封与门锁元件,整机密封性好。FA506型细纱机是目前成纱质量好,自动化程度高,操作简单,便于管理的环锭细纱机,可适用于纯棉或化纤的纯纺和混纺的细纱工序,可纺制织造针织等所用的细纱4。13嵌入式系统、CAN通信网络简介嵌入式系统目前已经发展成为电子行业最热门的发展方向,已经渗透到各行各业的电子应用及控制系统中。而CAN通信网络也越来越广泛的应用到远距离有线通信及工业现场总线的组网应用中来。本节主要介绍嵌入式系统及CAN网络的发展现状及技术特点。131嵌入式系统及SOC(片上系统)简介嵌入式系统本身是一个相对模糊的定义。目前,嵌入式系统已经渗透到我们生活的每个角落,工业、服务业、消费电子等,而恰恰由于这种范围的扩大,使得“嵌入式系统”更加难于明确定义。根据IEEE(国际电机工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。 目前,国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。5半导体集成电路是通过微细加工技术直接制作在半导体单晶圆片上的电子电路。从1958年世界上第一块集成电路诞生至今的50年中,世界集成电路技术与产业飞速发展,历经小规模(数百元件)、中规模(数千元件)、大规模(数十万元件)、超大规模(百万元件)的发展阶段,到今天已进入特大规模(千万以上元件)时代。随着半导体工艺技术的发展-,IC设计者能够将越来越复杂的功能集成到单硅片上。SOC(片上系统)正是在集成电路(IC)向集成系统(IS)转变的大方向下产生的。从狭义角度来讲,SOC是信息系统的芯片集成,是将系统集成在一块芯片上;从广义角度来讲,SOC就是一个微小型系统。SOC的出现使集成电路发展成为集成系统,整个电子整机的功能将可以集成到一块芯片中。在不久的将来,集成电路与电子整机之间的界限将被彻底打破。SOC是面向特定用户的,能最大程度满足嵌入式系统要求的芯片,因而具有很多优势:能极大地改善功耗开销、减少印刷板上的部件数和引脚数、减少板卡失效的可能性、有利于板卡的性能改善(由于片内连线缩短)、降低风冷要求、减少系统开发成本、尤其适合数字化产品开发等6。从分立元件到集成电路再到片上系统,是微电子领域的几次革命。21世纪,集成电路将进入SOC时代。嵌入式技术的应用目前已经远远超过了通用计算机,目前已广泛应用于通讯、网络、金融、航天、航空、消费电子、军事装备、仪器仪表、制造业控制等领域。132嵌入式微处理器简介嵌入式技术的发展主要体现在微处理器的进步方面。嵌入式微处理器一般具备以下几个方面的特点:对实时多任务有很强的支持能力、具有功能很强的存储区保护功能、可扩展的处理器结构、嵌入式微处理器必须功耗很低。嵌入式处理器是面向应用、面向用户的嵌入式系统的核心,由于面向应用、面向行业的特点,针对不同应用和不同半导体工艺,目前各类嵌入式处理器的种类总计有1000余种。传统嵌入式处理器可分成四类:(1)嵌入式微处理器 (Embedded Microprocessor Unit,EMPU):ARM,PowerPC、68000、MIPS、386EX;(2)嵌入式微控制器(Microcontroller Unit,MCU):8051、MC68HCOS、MC68HCll、68300、TMS320CZX;(3)嵌入式DSP处理器(Embedded Digital Signal processor, EDSP):TMS320系列、DSP56000系列;(4)嵌入式片上系统(System on Chip,SOC):OMAP、M-core、 C8051Fxxx、凌阳SPCE061A等。目前也有FPGA、SOPC、等比较热门的嵌入式处理器等。这使得嵌入式系统呈现欣欣向荣的气象。133 CAN通信网络简介CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之目前许多RS-485基于R线构建的分布式控制系统而言, 基于CAN总线的分布式控制系统在以下方面具有明显的优越性:(1)CAN控制器工作于多主方式,网络中的各站点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的站点同时接收到相同的数据,这些特点使得CAN总线构成的网络各站点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差;(2)CAN总线通过CAN收发器两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会出现象在RS-485网络中,当系统有错误,出现多站点同时向总线发送数据时,导致总线呈现短路,从而损坏某些站点的现象。而且CAN站点在错误严重的情况下具有自动关闭输出功能,以使总线上其他站点的操作不受影响,从而保证不会出现象在网络中,因个别站点出现问题,使得总线处于“死锁”状态。而且,CAN具有的完善的通信协议可由CAN 控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期。(3)与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些也是目前 CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。CAN总线是德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率可达1MBPS。CAN通信网络还具有以下技术特点:(1) CAN总线通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。(2) CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。采用这种方法的优点可使网络内的站点个数在理论上不受限制,数据块的标识码可由11位或29位二进制数组成,因此可以定义211或229个不同的数据块,这种按数据块编码的方式,还可使不同的站点同时接收到相同的数据,这一点在分布式控制系统中非常有用。数据段长度最多为8个字节,可满足通常工业领域中控制命令、工作状态及测试数据的一般要求。同时,8个字节不会占用总线时间过长,从而保证了通信的实时性。CAN协议采用CRC检验并可提供相应的错误处理功能,保证了数据通信的可靠性。CAN卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一。(3) CAN总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。CAN总线上任意站点可在任意时刻主动地向网络上其它站点发送信息而不分主次,因此可在各站点之间实现自由通信。CAN总线协议已被国际标准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数通讯。CAN总线插卡可以任意插在PC AT XT兼容机上,方便地构成分布式监控系统。(4) 结构简单,只有2线与外部相连,并且集成了错误探测和管理模块7。CAN与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。由于其良好的性能及独特的设计,CAN总线越来越受到人们的重视。1.4论文所完成的主要工作及结构安排本文以FA506型细纱机控制系统为研究对象,系统地分析了细纱机的控制方式和工作原理等,然后提出一套基于嵌入式技术的细纱机集散控制方案,方案采用ARM7核芯片AT91SAM7S64作为上位机进行数据处理,并用ARM来控制一块FPGA芯片来驱动LED屏滚动显示实时数据,SOC单片机C8051F040作为下位机的处理器来采集数据和控制变频器的转速,CAN总线作为集散控制通信方式。文中从理论上分析方案的可行性,同时设计了上位机处理模块和大屏幕LED显示模块、下位机数据采集和转速控制模块和CAN通信模块以及对设计的合理性进行验证。本论文所涉及的主要内容包括:(1) 系统地分析细纱机的控制需求,工作原理等,同时研究目前主流细纱机所采用的控制方案的优缺点;(2) 提出了基于SOC的嵌入式控制系统的方案,并对其可行性进行了分析。(3) 完成上位机数据处理模块、大屏幕LED显示模块,下位机数据采集和转速控制模块的设计以及CAN通信网络通信协议的设计。文中对硬件设计依据和软件开发过程进行了详细阐述;(4) 完成了系统的整体联调,并完成了对系统的整体抗干扰特性的分析及解决方法,尽可能减少了在印制板布线阶段发生的电磁干扰。本文共分为七章:第1章为绪论,说明本课题的发展方向;第2章为FA506型细纱机工作原理分析及研究,对比了传统的控制方式的优劣。第3章为基于SOC的细纱机控制系统整体设计,主要介绍了整个控制系统的整体设计思想与可行性分析。第4章为上位机主控模块的软硬件设计,主要介绍了各模块的硬件设计方法与软件实现逻辑。第5章为上位机LED逻辑显示模块设计,主要介绍了各模块的硬件设计方法与软件实现逻辑。第6章为下位机数据采集与转速控制部分软硬件设计,主要介绍了各模块的硬件设计方法与软件实现逻辑。第7章为CAN总线通信网络物理接口及协议设计,主要介绍了CAN的总线规范与本设计的协议制定。第8章为系统PCB抗干扰设计及综合调试,主要介绍了抗干扰的各种方式及整体系统联调。第二章 FA506型细纱机工作原理分析及其控制系统研究21工艺要求211系统控制目标分析为了满足生产实际的需要,采用一纺织厂的细纱车间轮班工作的现场需求进行设计。原系统依靠半人工半机械进行细纱作业。首先需要考察该车间实际的操作过程和需要采集的参数和控制的信号。本设计需要做控制的对象主要是锭子的转速和主轴的转速。FA506型细纱机的锭速是按照如下公式计算:锭速= (单位:rpm)。(公式1)测量锭速的脉冲数是由接近开关获得,所以在设计中,下位机的IO口只需要进行对脉冲数跳变的读入,处理器就能使用软件的方式对公式1进行计算,可以方便的算出锭速,从而对其进行实时控制。此处锭子一转发出1个脉冲,方便处理器处理数据。另主轴转速也是通过读取脉冲获得,一转发出一个脉冲。另外还需要检测前罗拉信号,前罗拉信号是指前罗拉线速度,其计算方法为:V= (单位:rpm)。(公式2) (这里每转一圈给出10脉冲)。其他在大屏幕LED上需要滚动显示的参数包括:输入信号:大纱位置、前罗拉信号、吸风启动、纺纱位置、中纱位置、主轴启动信号、中途停车、中途落纱、满管落纱、自动手动选择、停主电机下钢领板、急停、落纱位置、停止、油泵油位下限、油泵压力。输出信号:吸风电机、钢领板升、钢领板降、钢领制动、油泵电机、主轴制动、主轴运转、满纱灯。在实际生产中,一台细纱机的细纱总产量累计到40万米时自动清零,之后继续累加。当前产量值:从启动到落纱这段时间中的产量.当钢领板上升时自动清0。因为车间是按操作工人排班工作,一共分4个班次,在班与班之间转换时,当前产量并不变化,直接从下一班开始累加。对于产量分析按如下3点作为参照:(1)当前总产量 = 1班产量+2班产量+3班产量+4班产量。当某一班总产量清零后,则总产量应加上这一班的总产量。(2)当前产量是指启动到落纱这一段时间内的产量。当正常落纱钢领板上升时对各班当前产量自动清零。在任何一班上岗时,选定该班为加法,其他班次全部停止累加。(3)各班的定长设定值需要与自己班的当前产量比较,若累加到定长,清零。212 系统控制流程分析细纱机控制系统中,需要按照设备的操作流程进行控制。在整个设备的启动操作过程中,按照如下流程进行操作:(1) 检测吸风电机控制信号是否闭合。(2) 检测纺纱初始化位置是否到位。(3) 主轴控制信号闭合。(4) 小纱速度信号闭合。(5) 中纱速度信号闭合。(6) 大纱速度信号闭合。在设备停止中,按照如下流程进行操作:(1) 主电机控制信号切断。(2) 判断主电机停止信号是否有效。(3) 钢领板下降信号闭合。(4) 检测落纱位置是否到位。(5) 钢领板下降信号断开。在设备中途停车时,按照如下流程进行操作:(1) 有中途落纱信号时,钢领板下降信号闭合。(2) 主电机控制信号切断。(3) 打撑爪信号闭合。(4) 延迟数秒。(5) 吸风电机控制信号切断。另外设备在工作8小时后需要进行对油泵信号进行操作,使设备加油。22基于PLC的细纱机控制方案介绍为了满足FA506型细纱机的集散控制系统的需求,首先需要对原有系统的控制流程进行必要的说明。在不改变原有的功能基础上,实现新的功能是整个系统设计的初衷。基于PLC的细纱机控制系统方案是目前市场上大部分细纱机所采用的控制方案, PLC作为信息采集和程序处理,采用RS485方式进行数据传输。因本设计也是基于这种控制流程的方式进行移植,虽然采用的是嵌入式方式进行控制,但是整体的工艺操作形式依然需要按照这种流程进行操作。故在此有必要把传统PLC控制流程予以说明。传统的控制系统主要由PLC来控制和检测信号。主要分为开车和满纱2个控制过程:1开车起动过程合上吸风起动按钮后,风机交流接触器吸合,风机电动机开始运转、同时钢领板升、降电动机运转,使钢领板自动上升至始纺位置,碰撞限位开关,钢领板电动机停止运转,钢领板被限位在始纺位置,至此主轴电动机才允许起动运行。合上低速起动按钮,主轴电动机慢速启动,延迟一段时间后,主轴电动机自动转为高速。2满纱过程细纱机运行至满纱,输入点闭合,停主电机。当与成型凸轮同轴安装的三片突起的第一个突起经过接近开关G1时,撑爪触点闭合,停主电机。随着机器惯性转动,第二个突起经过接近开关G2时,钢领板下降至落纱位置。第三个突起使G3接近开关闭合,单片电磁离合器使主电机制动停转。故在本设计中,使用的嵌入式控制系统也应完成以上2种控制过程,以达到满足现有机械设备与现场工艺的要求,完成整个系统的可靠移植。因本设计是建立在工艺与设备已经成熟的基础上,仅仅是改变控制方式,故原系统的PLC控制方式实现的功能必须予以保留,在能完成原有功能的基础上,逐步添加新功能,对细纱机控制方式使用嵌入式控制器进行一个新的尝试。第三章 基于SOC的细纱机集散控制系统整体设计31系统的整体架构及技术特点基于SOC的嵌入式技术细纱机控制系统的设计思想是利用嵌入式处理器的高性能、专用性和丰富的片上资源等特点,完成细纱机的控制需求,在保证系统可靠工作的条件下,尽量增加其他方便用户使用的功能,并使系统可靠、实时的工作。本设计的控制系统主要由自带CAN控制器的SOC单片机C8051F040、32位的RISC微处理器ARM7核AT91SAM7S64、CPLD芯片EPM570T144C5与LED大屏幕、外围电路和CAN通信网络构成。按照模块化的设计思想,将细纱机控制系统划分成多个功能独立模块,每个模块完成一个相对独立的功能。将细纱机控制系统按功能分成多个模块来设计是因为模块化结构具有以下优点:体积小,抗震动、抗干扰能力强;便于系统功能的扩展、更新换代;便于维修、保养等一系列优点。为了方便系统的架构,把整个控制系统分为上下两层,中间由CAN通信网络进行集散控制。(1)上层为上位机主控部分,需要实现数据库管理的功能。在多站点模式下可以实现数据的统筹分配与分时调度。它负责把下位机传送上来的信号进行处理,并控制CPLD,使CPLD的IO管脚对LED驱动芯片进行控制,使LED显示不同的实时参数与状态,使之成为一个友好的人机界面。另外,上位机的键盘和LED大屏幕显示可以对下位机进行现场参数设置,使下位机可以运行在不同的工作条件下,另有一部分辅助功能需要通过上位机向下位机设置等,例如对时等操作。因上位机为整个系统的主控部分,故在CAN网络通信时,上位机处理器的CAN网络站号为1,在整个系统中优先级最高。(2)下层为下位机控制单元。因为整个系统是工作在一个上位机主控部分和多个下位机这样一个集散控制系统中,所以是1拖N的模式。每个下位机根据CAN协议进行配置站号,站号低的优先级为高。但是由于细纱机工作时的高速计数及CAN总线的传速速率的限制,实际情况需要根据数据流量与CAN通信速率进行计算,以配置可能的最大站点连接数。下位机最主要的功能是通过处理器的DA(数模转换)来对变频器控制,达到调整转速的目的。下位机还需要对设备运行时各种参数和状态进行读取操作,供处理器调用,然后传送到上位机进行转化显示。下层是整个系统最重要的部分,这一部分的工作稳定性决定了整个系统的成败。(3)上位机主控部分和下位机之间的通信由CAN通信网络实现。通信协议在第七章有详细介绍。整个系统结构的架构框图如图3-1所示。图3-1 细纱机控制系统系统结构框图整个系统相比传统控制方式相比,具有如下几个优势:(1) 采用最新的SOC技术,把单个模块尽可能集中片上,使整个系统体积更小,硬件电路更为简单。在集散控制系统中,多站点模式的下位机体积缩小意味着可以节省更多空间。(2) 采用CAN网络来实现1拖N的系统架构,使系统的成本大大减少,而使用CAN组网也非常经济和高效,CAN特有的长距离通信能力也大大提升了系统的稳定性。(3) 使用CPLD来驱动大屏幕LED点阵显示器,在车间大环境下使用一个足够大的屏幕可以使整个车间范围内能够观测到系统的运行状态和各个设备的运行参数。这样就能够省去在各个设备上安装LCD的成本。(4) 使用32位处理器来作为主控模块可以提高整个系统的响应速度,对于高速处理可以有较好的响应。32系统中各模块实现方式上位机主控模块主要实现对整个系统调度与运行。上位机LED逻辑显示模块以CPLD为核心实现行列扫描方式显示。上位机主控处理器与CPLD通过串行方式进行连接。下位机模块考虑到较多的IO端点需要配置,可以选用IO口较多的处理器。使用变频器控制主轴与锭子的转速,方便进行起停控制与转速调节。因上位机主控部分与下位机部分可以采用1拖N的多站点方式进行控制,使用CAN网络可以方便的构成集散控制系统。33系统方案可行性分析及处理器选型嵌入式系统硬件设计方案的选择,核心是嵌入式处理器的选择。在一个系统中使用什么样的嵌入式处理器主要取决于应用的领域、用户的需求、成本和开发的难易程度等因素。所以在整个细纱机的控制系统中,各个模块就需要根据需求选择不同的处理器。331上位机主控模块处理器选型上位机选型首先要考虑到的是,对CAN总线发送的数据需要及时处理和对CPLD进行高刷新频率的控制。所以上位机处理器首先需要考虑的是处理速度。在满足处理速度的基础上,成本低廉、开发简便的处理器是首选。在本设计中选用AT91SAM7S64作为上位机主控模块的控制器。AT91SAM7S64是Atmel 32位ARM RISC 处理器小引脚数Flash微处理器家族的一员。它拥有64K 字节的高速Flash 和16K 字节的SRAM,丰富的外设资源,包括一个USB 2.0设备,使外部器件数目减至最低的完整系统功能集。该芯片是正在寻求额外处理能力和更大存储器的8 位处理器用户的理想选择。Flash存储器可以通过JTAG-ICE 进行编程,或者是在贴装之前利用编程器的并行接口进行编程。锁定位可以防止固件不小心被改写,而安全锁定位则可以保护固件的安全。AT91SAM7S64 的复位控制器可以管理芯片的上电顺序以及整个系统。BOD 和看门狗则可以监控器件是否正确工作。AT91SAM7S64是一个通用处理器。它集成了USB设备端口,使得它成为连接PC或手机的外设应用的理想芯片。极具竞争力的性价比进一步拓展了它在低成本、大产量的消费类产品中的应用。AT91SAM7S64集成了ARM7TDMI ARM Thumb 处理器,高性能的32 位RISC架构,高密度的16 位指令集,嵌入式ICE电路仿真,支持调试通讯。64K字节的片内高速Flash存储器, 16K 字节的片内高速SRAM, 存储器控制器(MC), 时钟发生器(CKGR), 电源管理控制器(PMC),三个可编程的外部时钟信号, 先进的中断控制器(AIC),调试单元(DBGU),时间窗看门狗(WDT),实时定时器(RTT), 一个并行输入/输出控制器(PIOA),11个外设数据控制器(PDC) 通道,一个USB 2.0 全速(12Mbps)设备端口,一个同步串行控制器(SSC),两个通用的同步/异步收发器(USART),主/从串行外设接口(SPI),一个3 通道的16位定时器/计数器(TC),一个4 通道的16位PWM 控制器(PWMC),一个两线接口(TWI),一个8 通道的10位模数转换器,其中4个通道与数字I/O复用,IEEE 1149.1 JTAG边界扫描支持所有的数字引脚,5V兼容的I/O,包括4个高达16mA 的大电流驱动I/O,全静态操作:极限条件下(1.65V,85OC )高达55MHz,封装为64 脚的LQFP。作为上位机主控单元的控制器芯片,AT91SAM7S64作为主控处理器还有如下几个优点:(1)从芯片性能来看,ATMEL公司生产的ARM核芯片全部面向工业级产品的设计,是目前市场上抗干扰性能最好的AMR芯片。AT91SAM7S64的内核是目前最流行的ARM7TDMI内核。该款芯片在外部晶振18M左右,可以通过内部PLL(锁相环)把主时钟提高到55M,而对于主频率还能经过倍频达到80M以上,这样的高速处理速度完全能满足设计的要求。除了ARM7TDMI自带的各种功能外,该芯片的片上还集成了AD、看门狗、PWM、SPI、I2C、USB等各种常用外部接口和常用外设,方便了整个系统的调用和高度集成的设计。在较少引脚满足设计要求时,这款ARM7核芯片极大的丰富了资源,使设计更趋于人性化。(2)从产品开发周期来看,有JTAG调试手段的ARM核显然比原先的单片机进了一大步,在RAM中单步调试和断点联调大大提高了调试效率,使原本需要进行反复烧写的工作可以在调试中修改程序,大大提高了调试效率,为产品的开发节省了宝贵的时间。(3)从开发环境来看,该系统是在IAR 5.11环境进行固件编写和调试。 IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,迄今已有25年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C+编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。在本设计中,使用J-LINK来实现IAR环境对ARM7的调试和仿真8。332上位机LED驱动部分CPLD选型上位机LED驱动部分的CPLD选型首先需要考虑的是LED的刷新速率,因采用的设计方案是行列扫描方式,且LED驱动芯片是使用SPI串行方式的MBI5030驱动芯片(第5章有介绍),故对CPLD的选型首先一点为IO口的开关频率。在此基础上,价格与开发难易度是需要考虑的。在考虑了诸多CPLD后,决定选用Altera公司生产的MAX II系列芯片EPM570T144C5进行开发。Altera的MAX II 系列CPLD是有史以来功耗最低、成本最低的CPLD。MAX II CPLD基于突破性的体系结构,在所有CPLD系列中,其单位I/O引脚的功耗和成本都是最低的。无论是在通讯,消费电子,计算还是工业领域,MAX II CPLD都是进行控制路径应用最好的选择,这些应用都受成本和功耗预算的约束。MAX II器件提供更低的架构、更低的功耗以及更高的密度,使之成为复杂控制应用的最理想的解决方案,包括那些以前不可能采用CPLD的应用。 MAXII CPLD支持高级功能集成,以降低系统设计成本。这些功能包括:1低功耗 是之前版本CPLD的十分之一的功耗。 1.8V内核电压降低了功耗,提高可靠性。 CPLD业界最低的待机规范,大大延长了电池供电时间。 自动启动/停止功能,CPLD不使用时关断。 2低成本体系结构以一半的价格实现四倍的密度 (和前一代 MAX 器件相比) 通过设计,减小了管芯面积,单位I/O引脚成本在业界是最低的。 3高性能支持高达300 MHz的内部时钟频率 性能加倍(和3.3-V MAX器件相比 ) 4独特的特性 板上振荡器和用户闪存 不需要分立振荡器或者非易失存储器,减少了芯片数量。 5实时在系统可编程能力(ISP) 器件工作时,可下载第二个设计。 降低了远程现场更新的成本 :6灵活的MultiVolt内核 片内电压稳压器支持3.3-V、2.5-V和1.8-V供电 减少了电源数量,简化了电路板设计。 7并行闪存加载程序宏功能 提高了板上不兼容JTAG闪存的配置效率 通过MAX II 器件实现JTAG命令,简化了电路板管理。 8I/O能力 MultiVoltI/O支持1.5-V、1.8-V、2.5-V以及3.3-V逻辑电平器件的接口 施密特触发器、可编程摆率和可编程驱动能力提高了信号完整性 9使用方便的软件 Altera免费的Quartus II 网络版软件支持所有的MAX II CPLD,优化了引脚锁定适配,提高了性能。 Quartus II 软件中新的MAX+PLUS II “look-and-feel”选项增强了软件的易用性9 。 333下位机数据采集与控制模块处理器选型对于下位机的处理器选型,鉴于输入信号的脉冲频率较高,必须满足2点要求。首先需要对IO口的读取速度要高,其次IO引脚数要多。另外最好能集成CAN控制器使下位机尽可能减少外围电路,提高系统的稳定性及抗干扰能力。在考察了诸多芯片后,决定选用SOC芯片C8051F040芯片作为下位机的处理器芯片。该芯片最大的优点是在满足多IO的前提下片上集成了CAN控制器,对于CAN网络的设计提供了极大的方便。由于片上可以实现可编程晶振,对于上位机的CAN控制器波特率相对固定的前提下,下位机可以灵活调整晶振频率,以配合上位机的CAN通信,使整个系统运行在更为稳定的状态,可以大大提高系统的通信可靠行。该芯片是Silicon Labs公司推出的SOC芯片,C8051FXXX系列已经成为SOC芯片的典型代表。C8051F具有上手快(全兼容8051指令集)、研发快(开发工具易用,可缩短研发周期)和见效快(调试手段灵活)的特点。作为下位机的处理器,使用C8051F040还具有以下特点: (1) 51指令集与高速处理速度。基于增强的CIP-51内核,其指令集与MCS-51完全兼容,具有标准8051的组织架构,可以使用标准的803x/805x汇编器和编译器进行软件开发。CIP-51采用流水线结构,70%的指令执行时间为1或2个系统时钟周期,是标准8051指令执行速度的12倍;其峰值执行速度可达100MIPS(C8051F120等),是目前世界上速度最快的8位单片机。(2)丰富的片上资源。C8051F系列SOC集成了单个或两个独立的高分辨率DAC,可满足绝大多数混合信号系统的应用并实现与模拟电子系统的无缝接口;具有两路UART和最多可达5个定时器及6个PCA模块,此外还根据不同的需要集成了SMBus、SPI、USB、CAN、LIN等接口,以及RTC部件。外设接口在不使用时可以分别禁止以降低系统功耗。与其他类型的单片机实现相同的功能需要多个芯片的组合才能完成相比,C8051单片机不仅减少了系统成本,更大大降低了功耗。(3)具有独立的片内时钟源(精度最高可达0.5%),设计人员既可选择外接时钟,也可直接应用片内时钟,同时可以在内外时钟源之间自如切换。片内时钟源降低了系统设计的复杂度,提高了系统可靠性,而时钟切换功能则有利于系统整体功耗的降低。(4)提高了系统的性价比。C8051F040集成了CAN控制器,在多站点形式下,节省印制板的面积与成本是非常有利的。集成了CAN控制器使整个系统的性价比大大提升。(5)使用KEIL C环境下编程,因为IAR并不支持该款芯片,所以选用传统的KEIL来进行软件编程和调试10。 第四章上位机主控部分软硬件设计41上位机主控部分整体设计411功能需求分析从第二章的各模块工作原理分析基础上可知,需要设计的上位机主控部分由数据库管理功能,主要由上位机控制模块与LED逻辑显示模块组成。以下分别说明这2个模块需要完成的功能。上位机控制模块:上位机控制模块主要需要完成以下几个方面的工作:(1)通过键盘来对不同的参数进行设置,设置的参数包括:时钟时间,工艺参数及显示参数等。(2)把设置的参数通过CAN总线发送到各个下位机模块。(3)采集CAN总线收到的数据,并进行处理。(4)把显示数据通过串口发送给LED逻辑显示模块。LED逻辑显示模块:主要负责把控制器发送的串口数据通过CPLD转换成并口信号,进行LED大屏幕显示11。412上位机总体设计上位机控制模块以ATMEL公司生产的ARM7芯片AT91SAM7S64为微处理器,通过模拟总线操作CAN总线控制器SJA1000实现与CAN网络通信,通过键盘来设置系统运行参数。上位机LED逻辑显示模块以Altera公司生产的MAXII系列CPLD芯片EPM570F144C5为可编程逻辑转换芯片,通过SPI方式进行对LED驱动器MBI5030进行操作。整个上位机系统的逻辑框图如图4.1所示12。上位机控制模块主要负责把CAN总线上传送上来的每个站点数据进行处理与存储,把处理后的数据按照需要显示的行列顺序通过串行UART方式发送到CPLD进行逻辑显示处理。在系统运行时,需要实时地对CAN控制器操作,进行对下位机的各种操作与设置。在系统运行中,还需要对上位机的系统参数进行设置,包括时钟等的配置等,以满足系统正常工作的需要13。LED逻辑显示模块部分的内容将在第五章单独介绍。本章主要介绍上位机控制模块部分的设计。图4.1上位机系统架构框图42上位机控制模块硬件及驱动设计上位机控制模块主要由电源模块、ARM7主电路、键盘输入电路、CAN总线控制模块与时钟模块。以下分别对这几个模块分别介绍。421电源模块设计电源是保证整个系统稳定运行的前提条件。在上位机主控模块电路中,由于需要驱动LED屏幕,而LED大屏幕的走线需要一定的距离,所以选择的电源芯片需要有较强的驱动能力,这就要求对电源芯片的选择需要慎重,尽量选取功率较大的电源芯片。上位机主控模块需要用到的器件主要有ARM7、CPLD、SJA1000、DS1302、MBI3050等芯片。这些芯片主要需要5V和3.3V电压供电。使用开关电源是目前系统供电的主流方式,因此本设计中使用220V转5V的开关电源供电。因为需要有较大的驱动能力,所以选择2A的AC/DC开关电源模块。ARM7与CPLD等芯片需要由3.3V电源供电,所以还需要有电压转换芯片使5V转到3.3V的转换芯片。一般的5V转3.3V的电源转换模块芯片市场上一般选用ASM1117-3.3V,而此芯片并不符合该设计的要求,带负载能力明显不足,在CPLD的较高频率IO口与长距离走线时会有电压衰减现象。考虑到实际需要,选用LM1085-3.3V/3A满足设计的需要。图4.2 5V转3.3V原理图系统的稳定性很大程度取决于电源的信号是否稳定。所以在电源模块的设计中,需要对电源的前向与后向通道进行滤波与去耦。图4.2中的C15与C16是钽电容。钽电容全称是钽电解电容,也属于电解电容的一种。钽电容具有储藏电量、进行充放电等性能,主要应用于滤波、能量贮存与转换,记号旁路,耦合与退耦以及作时间常数元件等。C24是普通的电容,在低频电路中,常使用0.1uF的电容串接到电源和地之间起到去耦的作用。422 ARM7主电路与时钟及键盘电路处理器是整个系统的核心,对于处理器的设计需要格外严格。根据ATMEL公司公布的AT系列ARM7的技术手册,AT91SAM7S64可以选用18.432MHz晶振,在晶体与地之间需要串入2个25pF的电容。按照这样的晶振频率,处理器在PLL(锁相环)的倍频下,主频可以达到50MHz,最快时钟可以达到80M左右。ARM7是上位机控制模块的处理器,所以对于处理器的外围电路需要进行各种保护措施和抗干扰措施的设计。AT91SAM7S64的电源需要3.3V的供电电压,而ARM7内核需要1.8V电压,根据数据手册,需要在各电源输入口外并入4.7uF与0.1uF和2.2uF与470pF的电容。而锁相环输入的标准为10nF电容与1.5K电阻串联,然后与1nF的电容并联。在上位机控制模块中,处理器需要处理对键盘和时钟的操作。(1)键盘处理电路键盘主要用于对系统参数的设置等功能。为了简化硬件电路,在硬件电路设计中,只设置2个按键。2个按键可以产生4种逻辑,分别为:键1短按、键1长按、键2短按与键2长按4种逻辑。键1定义为KeyFunction。键2定义为KeyModeOut。按键定义4种逻辑含义如下:1 KeyFunction长按下进入模式选择。2 KeyModeOut长按下退出模式。3 KeyFunction短按LED上翻或者数据加1(配合LED屏幕操作)4 KeyModeOut短按LED下翻或者数据减1(配合LED屏幕操作)这部分具体逻辑将在软件部分进行介绍。 具体电路连接如图4.3所示图4.3键盘电路原理图(2)时钟电路由于工艺现场的需要,整个系统需要计时,所以在上位机控制系统中需要设计时钟计时。时钟模块选用DS1302芯片作为时钟模块。DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM, 通过I2C与ARM7进行通信。实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。DS1302 与ARM7之间能简单地采用同步串行的方式进行通信,仅需用到三个口线: 片选(CE)、数据(IO)与时钟(SCLK)。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信。DS1302 工作时功耗很低,保持数据和时钟信息时功率小于1mW。DS1302的原理所图4.4所示14。DS1302的输入输出端口为开漏设计,因ARM的管脚可以内部配置为上拉,所以在硬件部分并未设计上拉电阻。BT1为3.3V可充电供电电池。在系统上电时,可以通过电源给电池充电,在掉电情况下,电池可以使DS1302继续计时,防止时间数据与暂存于RAM中的纺纱线长度等关键数据丢失。图4.4 DS1302时钟电路423 CAN网络通信接口电路上位机控制模块的处理器并不集成CAN控制器,需要进行CAN协议控制电路与接口电路2部分的设计。CAN通信接口设计采用PHILIPS公司生产的SJA1000芯片作为上位机的CAN控制器。SJA1000 是一种独立控制器用于移动目标和一般工业环境中的区域网络控制。SJAl000具有BasicCAN和PeliCAN两种工作方式,其中BasicCAN是与传统CAN控制芯片PCA82C200兼容的方式;PeliCAN是扩展特性方式,支持具有很多新特性的CAN2.OB协议。SJA1000工作在Basic CAN 模式中是模仿PCA82C200 独立控制器所有已知的寄存器。与传统PCA82C200的不同之处在于软件的兼容。SJA1000使用时钟分频寄存器来选择CAN 工作模式BasicCAN /PeliCAN 。它使用从PCA82C200 保留下来的一位来使用Basic CAN 模式。默认状态是12 分频的Motorola 模式和2 分频的Intel 模式。SJA1000全面支持CAN 2.0B 协议,这就意味着在处理扩展帧信息的同时扩展振荡器的误差被修正了。在Basic CAN 模式下只可以发送和接收标准帧信息(11 字节长的识别码)。如果此时检测到CAN 总线上有扩展帧的信息,如果信息正确,也会被允许且给出一个确认信号,但没有接收中断产生。在Peli CAN 模式下SJA1000 有一个含很多新功能的重组寄存器SJA1000 包含了设计在PCA82C200中的所有位及一些新功能位。Peli CAN 模式支持CAN 2.0B 协议规定的所有功能(29 字节的识别码)。SJA1000 的主要新功能包括:(1)标准帧和扩展帧信息的接收和传送(2) 接收FIFO 64 字节(3) 在标准和扩展格式中都有单/双验收滤波器含屏蔽和代码寄存器(4)读/写访问的错误计数器(5) 可编程的错误限制报警(6) 最近一次的误码寄存器(7) 对每一个CAN 总线错误的错误中断(8) 仲裁丢失中断以及详细的位位置(9) 一次性发送,当错误或仲裁丢失时不重发(10) 只听模式CAN 总线监听无应答无错误标志(11)支持热插无干扰软件驱动位速检测(12)硬件禁止CLKOUT 输出SJA1000 主要由CAN 核心模块、接口管理逻辑、发送缓冲区、接收FIFO、验收滤波器等几部分组成。SJA1000 的CAN 核心模块负责CAN 信息帧的收发和CAN 协议的实现; 接口管理逻辑负责与微处理器的接口,该单元中的每个寄存器都可由微处理器通过SJA1000 的地址/数据总线访问;发送缓冲区可存储一个长度为13B的信息帧。微处理器可将待发送的标识符和数据直接送入发送缓冲区, 然后通过对命令寄存器CMR 中的发送请求位TR 置位, 启动CAN 核心模块自行将发送缓冲区中的数据读出, 并按CAN 协议装配成完整的CAN 信息帧,通过收发器发往总线。由总线接收的信息经验收滤波器过滤, 无差错的信息帧被送入接收FIFO 缓冲区。同时将状态标志SR.0 置位, 表明接收缓冲区中已有成功接收的信息帧。微处理器可依据SR.0 的状态, 判断是否将FIFO中的数据读入微处理器进行相应处理。CAN控制器的硬件原理图如图4.5所示。其中AD7-AD0管脚是多路地址/数据总线,需要与处理器的8路并口连接;CS管脚为SJA1000芯片的片选信号,低电平选中;RD与WR为输入输出模式选择信号;XTAL1与XTAL2为晶振信号输入端; TX0 表示从CAN输出驱动器输出到物理线路上。INT管脚为中断输出用于中断微控制器;RST 管脚为复位输入用于复位CAN接口低电平有效;RX0从物理的CAN总线输入到SJA1000的输入比较器;MODE 管脚为模式选择,表示选择Intel模式和Motorola模式。由于处理器芯片非Motorola芯片,所以选择Intel模式,直接把该管脚接高电平15。图4.5 CAN控制器接口原理图图中TJA1050是CAN收发器。TJA1050 是CAN协议控制器和物理总线之间的接口。TJA1050可以为总线提供差动发送性能,为CAN控制器提供差动接收性能。TJA1050 与传统的CAN收发器相比,有诸多优点:输出信号CANH和CANL的最佳匹配,使电磁辐射更低;站点未供电时,性能有所改进;无待机模式,这使得TJA1050特别适合于在部分供电网络中站点掉电的情况下使用。由于SJA1000的工作电压为5V,而处理器AT91SAM7S64的管脚电平为3.3V,所以数据/地址总线需要经过电平转换。本系统采用2块GTL2003管道芯片进行电平转换。通过GTL2003芯片经过电平转换,不仅能够得到需要的电压,还能够增加一定的驱动能力16。如图4.6所示,其中DREF管脚为D1-D10的参考电压,SREF为S1-S10为参考电压。R65为芯片技术手册规定的上拉电阻。另外4个控制脚由另一片GTL2003转换电平,具体请参见附录。图4.6 电压转换原理图43上位机控制模块软件设计431上位机控制模块软件平台上位机控制模块是基于ARM7处理器来开发的,由于上位机软件使用C语言来开发,所以选择了一款支持C语言编程的开发环境。由于选用的是JLINK接口调试方式,选择用IAR SYSTEM作为上位机控制模块的开发工具。IAR Systems是全球领先的嵌入式系统开发工具和服务的供应商。公司成立于1983年,迄今已有25年,提供的产品和服务涉及到嵌入式系统的设计、开发和测试的每一个阶段,包括:带有C/C+编译器和调试器的集成开发环境(IDE)、实时操作系统和中间件、开发套件、硬件仿真器以及状态机建模工具。本设计使用的IAR系列最新的专业为开发工具EWARM 5.11 (IAR Embedded Workbench for ARM),该款开发工具能够满足市面上各种主流的ARM平台开发。EWARM 集成了微软最新的VC+2005库函数,使软件的开发更加方便。在调试方面,IAR专用的J-LINK更为ARM的调试带来了方便,使系统的开发周期大大缩短。Embedded Workbench采用创建项目的方式来进行软件的开发和管理。Embedded Workbench包含的实用工具有:具有语法突出显示的文本编辑器、编译器、汇编器、连接器、函数管理器、Make工具、调试器C-SPY等。可使用集成开发环境的文本编辑器编写程序源代码,文本编辑器的特点如下:根据C语音的语法来区别字体颜色;具有查找和替换功能,能够方便的对程序进行编辑;可以从出错的列表中直接跳到文本中相应的出错位置;能够检查括号是否匹配,在编程时十分有用;能够实现程序的缩进,使程序具有良好的代码风格;可以对多个窗口进行编辑;可以对所有文件或者某几个文件进行设置单独的选择;在编辑完程序代码后,可对程序代码进行编译连接:编译连接成功后,可运行程序,并且对程序进行调试。使用Embedded Workbench集成的C-SPY工具对程序进行运行和调试。调试器C-SPY有以下特性:具有Windows风格的可视化界面;能够对C语言进行调试;能够进行软件仿真(Simulator);能够进行硬件仿真(Emulator);能够设置断点,进行单步运行;支持多种单步运行方式;可以观察寄存器的值;能够查看内存的值。其中断点调试和单步调试是最先进的JTAG调试技术的特点,这种方式大大节省了调试时间和调试可靠性,缩短了开发周期,为实际的开发和生产提高了效率17。432上位机控制模块软件整体架构图4.7上位机控制模块软件流程图一个优秀的软件首要条件是结构清晰,其次是逻辑清晰、书写规范等。一个好的结构体系和逻辑步骤是一个系统成败的关键。本设计的上位机控制部分的软件架构按照图4.7所示的软件架构流程图来实现。433键盘模块软件设计由4.2.2节键盘部分硬件电路设计中提到,键盘一共有2个键,实现4种不同逻辑,分别为键1短按、键1长按、键2短按与键2长按4种逻辑。键1定义为KeyFunction。键2定义为KeyModeOut。按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的。传统的键盘软件实现主要为延时防抖动来读取键盘信号,而本设计中键盘是分长按与短按2种方式分别操作。这样处理在本设计中存在误操作的可能,必须增加保护条件。在延时防抖动时,有可能会读入误操作信息。本键盘设计方案采用上升沿触发方式,即在读入低电平时,并不立即操作,在设定的延时时间过后,再去判断是否仍为低电平,之后不断查询键盘状态,直到变为高电平后执行。这样操作既达到了常规的延时效果,又能够灵活使用长短按键的2种逻辑选择。434 DS1302时钟模块软件设计DS1302的操作时序为I2C接口,I2C总线是PHILIPS开发的双向二线总线,又称Intel IC总线。I2C总线已成为一个国际标准,已经得到广泛应用。图4.8为DS1302读写的操作时序图11。其中在CE口片选得到高电平后选中DS1302,在每次时钟信号上升沿时锁入数据。I2C总线是在锁入的数据前8位为命令信号,后8位为数据信号。若发送的命令为写数据时,后8位即为需要写入的数据。若发送的命令为读数据时,则后8位即为读出的数据。图4.8 DS1302操作时序图当写保护寄存器的最高位为0 时,允许数据写入寄存器,写保护寄存器可以通过命令字节8E 8F 来规定禁止写入/读出。写保护位不能在多字节传送模式下写入。当写保护寄存器的最高位为1 时,禁止数据写入寄存器14。当把秒寄存器的第7 位时钟停止位设置为0 时,起动时钟开始。当把秒寄存器的第7 位时钟停止位设置为1 时,时钟振荡器停止HT1380 进入低功耗方式。当命令字节为BE 或BF 时,DS1302 工作在多字节传送模式,8个时钟/日历寄存器从寄存器0 地址开始连续读写从0 位开始的数据。当命令字节为FE 或FF 时,DS1302 工作在多字节RAM 传送模式。31 个RAM 寄存器从0 地址开始连续读写从0 位开始的数据。具体驱动实现由以下写函数实现,读函数与此类似:void DSWriteData(char address,char Data) int i; address &= 0xfe; AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,DS_IO); AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,DS_SCK); AT91F_PIO_SetOutput(AT91C_BASE_PIOA,DS_RST); for(i=0;i8;i+) if(address&(0x01i) AT91F_PIO_SetOutput(AT91C_BASE_PIOA,DS_IO); else AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,DS_IO); AT91F_PIO_SetOutput(AT91C_BASE_PIOA,DS_SCK); AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,DS_SCK); for(i=0;i8;i+) if(Data&(0x01i) AT91F_PIO_SetOutput(AT91C_BASE_PIOA,DS_IO); else AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,DS_IO); AT91F_PIO_SetOutput(AT91C_BASE_PIOA,DS_SCK); AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,DS_SCK); AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,DS_SCK); AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,DS_RST);其中void AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,PIN)等函数是ATMEL 库自带的拉高和拉低IO口的库函数。在上位机开机初始化时,需要对下位机的时间进行校正,即在上电后,从下位机读出时间和上位机的时间进行比较,若与上位机的时间不一致则把下位机的时间修改为上位机的时间。435 SJA1000 CAN模块软件设计由于SJA1000与ARM的连接通过8位总线相连。在硬件中已经分配了一组8位数据/地址总线对SJAl000的操作。SJAl000在Intel模式下的读写时序如图4.9与4.10所示。根据读写时序,可以配合控制线把命令或数据锁存到SJA1000。图4.9 SJA1000的读操作时序图图4.10 SJA1000的写操作时序图SJA1000 的功能配置和行为由主控制器的程序执行 。因此SJA1000 能满足不同属性的CAN 总线系统的要求。主控制器和SJA1000 之间的数据交换经过一组寄存器(控制段)和一个RAM (报文缓冲器)完成。RAM 的部分的寄存器和地址窗口组成了发送和接收缓冲器对于主控制器来说就像是外围器件寄存器。一些寄存器只在PeliCAN 模式有效控制寄存器就仅在BasicCAN 模式里有效而且一些寄存器是只读的或只写的,还有一些只能在复位模式中访问。在CAN 总线上发送的数据被载入SJA1000 的存储区,该存储区称为“发送缓冲器”。从CAN 总线上收到的数据也存储在SJA1000 的存储区,该存储区称为“接收缓冲器”。这些缓冲器包括2、3或5个字节的标识符和帧信息(取决于模式和帧类型)。通过CAN 总线建立通讯的步骤为:1系统上电后,根据SJA1000 的硬件和软件连接设置主控制器。根据选择的模式、验收滤波、位定时等设置CAN 控制器的通讯。2在主程序中,准备要发送的报文并激活SJA1000 发送报文,对被CAN控制器接收的报文起作用,在通讯期间对发生的错误起作用。SJA1000的操作流程如图4.11所示。SJA1000模块的软件设计主要包括SJA1000初始化程序、CAN总线数据发送程序、CAN总线数据接收程序、CAN总线中断服务程序等四部分,下面进行分别说明15。图4.11 SJA1000操作流程图1 初始化 独立的CAN 控制器SJA1000 必须在上电或硬件复位后设置CAN 通讯。在由主控制器操作期间,它可能会发送一个复位请求,SJA1000 会被重新配置。上电后主控制器在运行完复位程序后进入SJA1000 的配置程序。因为要得到配置信息的寄存器仅在复位模式可写,所以在设置SJA1000 的寄存器前,主控制器通过读复位模式标志来检查SJA1000 是否已达到复位模式。在复位模式中主控制器必须配置模式寄存器、时钟分频寄存器、验收码寄存器、验收屏蔽寄存器、总线定时寄存器见和输出控制寄存器。在把配置信息发送到SJA1000 的控制段后,SJA1000 会清除复位标志。此处需要循环读标志位来检测是否复位成功,若标志位会清除,则可以进入工作模式。2 CAN总线数据发送根据CAN 协议规范,报文的传输由CAN 控制器SJA1000 独立完成。ARM7必须将要发送的报文传送到发送缓冲器,然后将命令寄存器里的发送请求标志置位。发送过程可由SJA1000 的中断请求控制或由查询控制段的状态标志控制。本设计采用中断方式发送报文,中断使能标志是位于BasicCAN 模式的控制寄存器和PeliCAN 模式的中断使能寄存器。当SJA1000 正在发送报文时,发送缓冲器被写锁定。所以在配置一个新报文到发送缓冲器之前,ARM7必须检查状态寄存器的发送缓冲器状态标志(TBS)。从CAN 控制器收到中断后,主控制器会检查中断类型。如果是发送中断,则会检查是否有更多的报文需要被发送。主控制器将新报文写入发送缓冲器并置位命令寄存器的 发送请求标志(TR),SJA1000 将会启动发送。在发送成功结束时CAN 控制器产生会一个发送中断。3CAN总线数据接收根据CAN 协议规范,报文的接收由CAN 控制器SJA1000 独立完成。收到的报文放在接收缓冲器。可以发送给主控制器的报文由状态寄存器的接收缓冲器状态标志(RBS)和接收中断标志(RI) 标出。主控制器会将这条信息发送到本地的报文存储器,然后释放接收缓冲器并对报文操作。发送过程能被SJA1000 的中断请求或查询SJA1000 的控制段状态标志来控制。本设计采用中断方式接收报文,如果SJA1000 已接收一个报文而且报文已通过验收滤波器并放在接收FIFO ,那么会产生一个接收中断。因此ARM7能立刻作用,将收到的报文发送到自己的报文存储器,然后通过置位命令寄存器的相应标志(RRB)发送一个释放接收缓冲器命令。接收FIFO 里的更多报文将产生一个新的接收中断,因此不可能将所有在接收FIFO 中的有效信息在一个中断周期内读出。4CAN总线中断服务在PeliCAN 模式里SJA1000 有8 个不同的中断,这些中断可使主控制器立即作用在CAN 控制器的某些状态上。一旦CAN 产生中断,SJA1000 就将中断输出设为低电平。直到主控制器通过读SJA1000的中断寄存器对中断采取相应措施。或在PeliCAN 模式里,释放接收缓冲器后产生接收中断。在主控制器这个动作后,SJA1000 将输出中断跳到高电平。如果这段时间有更多中断或接收FIFO 里有更多有效报文,SJA1000 立刻将中断输出再次设为低电平。因此输出仅在很短的时间里保持高电平。处理中断请求的握手信号第五章 上位机LED逻辑显示模块设计51上位机LED逻辑显示模块总体设计从第二章的各个模块工作原理分析基础上,可知道设计的上位机LED逻辑显示模块功能需求如下:(l)接收从ARM7的串行口发送的需要显示的串行数据。该数据按照显示方式的行列格式发送。(2)在CPLD内把串行数据进行转化,符合LED屏幕驱动芯片显示逻辑的数据输出形式。(3)完成LED屏幕与驱动芯片的扫描逻辑,使显示能够合理刷新。511总体设计上位机LED逻辑显示模块以MAX II 系列的CPLD芯片EPM570F144C5为主逻辑转换芯片,通过串行接口接收从ARM7发送的行列形式数据文件。选用MBI5030专用LED驱动芯片进行LED大点阵LED驱动。按照设计好的逻辑扫描方式进行刷新显示。52 LED显示驱动模块硬件设计521 LED显示屏的组成模式常用于制作显示屏的LED发光材料主要有3种形式:单体LED、LED点阵模块和贴片式LED发光灯。其中,LED点阵模块由若干晶片构成发光矩阵,然后利用环氧树脂封装于塑料壳内,适合行、列扫描驱动,比较适用于构成高密度的显示屏。常见的LED点阵显示单元有57、79、88等几种结构,前两种主要用于显示各种西文字符,后一种常用于显示各种汉字字符。本设计中需要采用1616点阵结构进行汉字显示,故选用88类型的LED显示屏。由于本设计中,需要显示4行8列的汉字,所以需要128个该种单屏组合而成18。由于本设计的LED屏幕仅用于车间内的数据观测,使整个大空间都能够观测到设备运行的情况和参数,所以LED屏幕的设计只需要满足单色红光、滚动显示中文及字符等功能即可,并不需要设计灰度调节等。521 LED显示屏驱动芯片的选择LED显示屏的驱动芯片主要可分为通用芯片和专用芯片两种。通用芯片指一般的逻辑芯片(如串一并移位寄存器),这种芯片在各种电路设计中普遍使用,不是针对LED显示屏专门设计开发的。专用芯片指针对LED的发光特性而专门设计用于LED显示屏的驱动芯片。通用芯片的集成度较低且效率不高,一般只能用于功能单一、显示效果要求较低的LED显示屏。专用芯片具有输出电流大、恒流的特点,适用于对显示效果要求较高的场合。恒流驱动控制技术的应用可以大幅提高显示的均匀性、减少阻容元件,降低故障点。这些都是LED显示屏显示高品质图像画面的前提。本设计采用聚积科技公司开发的MBI5030芯片作为LED显示屏的驱动芯片。MBI5030 是专为LED显示面板的应用设计的驱动IC,内建可选择16位灰阶控制的脉波宽度调变功能。MBI5030 内建16位位移缓存器可以将串行的输入资料转换成每个输出通道的灰阶像数。而且,MBI5030的16个恒流输出通道所输出的电流值不受输出端负载电压影响并提供一致并且恒定的输出电流。使用MBI5030时,可以选用不同阻值的外接电阻来调整MBI5030各输出级的电流大小。图5.1为MBI5030的芯片引脚分配图19。图5.1 MBI5030的芯片引脚图其中OUT0OUT15为 恒流输出端,即为提供16位数据输出功能的恒流输出。SDI、SDO与DCLK为SPI串行方式通信口,可以通过SPI方式对MBI5030进行控制操作。LE引脚数据闪控(data strobe)输入端,配合DCLK 可下达控制指令。R-EXT引脚连接外接电阻之输入端;此外接电阻可设定所有输出通道之输出电流。523 驱动电路扫描逻辑的实现本设计选用的整屏点阵为64行128列的LED点阵模块,而由每个MBI5030的输出可以驱动16行或者16列,则整屏逻辑由12片MBI5030实现。驱动电路逻辑结构如图5.2所示。图5.2 LED驱动电路逻辑结构由图5.2可以比较清晰地表达:16行共用一个MBI5030,16列共用一个MBI5030,故实现4行8列汉字显示时,需要4个行驱动与8个列驱动MBI5030。因MBI5030自带锁存功能,故按照行列扫描方式可以实现LED的显示刷新功能。LED屏幕单点发光的显示原理即为电压差。本设计采用的LED屏幕为行高电平列低电平发光。故在需要的点亮的单点上,只需要将行与列的电平按照屏幕发光原理匹配即可。按照显示逻辑设计,首先进行行扫描,按照顺序逐步选中各个行MBI5030的片选,每个片选信号由CPLD的IO提供。在令所有的行都按照逻辑进行电压分配后,再用通用的方式进行列的驱动。在一个行列扫描周期后,即可完成整个屏幕的刷新动作。在本设计中,所有MBI5030驱动芯片的串行数据输入都共用CPLD的3个IO口,由CPLD提供串行数据/地址信号。不同的驱动芯片使用片选予以区分。53 CPLD逻辑控制模块硬件设计本节主要对CPLD部分的硬件电路与逻辑实现进行重点介绍。531 CPLD外围电路设计在上2节已经讨论了整个系统的构建,本节主要围绕CPLD的外围电路进行说明。CPLD外围电路主要由CPLD主电路接口、CPLD晶振模块、CPLD去耦电路与JTAG模块构成。因CPLD与ARM7在同一块板上,所以设计时,可以考虑共用一个3.3V电源进行供电,故电源部分。以下分别对各模块分别介绍。通过第2节的介绍,因采用行列复用的方式,故使用的IO口线并不多。为图5.3 CPLD接口原理图减少PCB布线时的工作,故采用图5.3所示的引脚分配方式。整体CPLD部分电路原理图请参见附录一:硬件原理图20。其中LED点阵驱动的MBI5030的行片选占用4个IO端口,列片选占用8个IO端口。因MBI5030芯片由SPI方式驱动,故分配3个IO线进行时序的模拟。另DRXD与DTXD为CPLD与ARM7通过串行方式通信的2个串行接口,UART_Wen为控制CPLD内部串行发送使能控制口。因EPM570T144C5的IO口的开关频率可以达到300MHz,故完全能够满足各种不同波特率信号的传输,并且能够实时驱动LED屏幕,不会引起视觉的延迟效应。本系统采用16MHz的4脚贴片晶振。根据EPM570T144C5数据手册的建议连接方式,在晶振电路与芯片的各电源入口都增加一个0.1uF的电容,达到去耦作用。53 LED显示驱动模块软件设计5.3.1 CPLD设计工具的选择与设计流程Altera公司的可编程逻辑器件设计工具己经从早期的MAX+Plus发展到目前的MAX+plusII和QuartusII。MAX+plusII操作简便、设计者容易上手,得到了众多工程师的认可。QuartusII延续了MAX+PlusII的优点,并提供了更为强大的功能,成为市场上最为流行的FPGA设计工具之一。QuartusII包括新的功能,设计性能改善15%,编译时间缩短50%,还最小化了耗时的验证过程,帮助设计者加快可编程单芯片设计。这些新的功能适用于Altera高容量可编程速辑器件。QuartusII设计软件代表了可编程逻辑设计软件重大发展,QuartusII为设计者创建复杂的SOCP设计提供了业界一流的性能,编译时间和生产效率。Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用TCL脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。Quartus II软件包括FPGA和CPLD設計所有阶段的解決方案,本设计使用的版本是Quartus II 6.0。 使用Quartus II 软件设计的基本流程一般包含以下几方面的设计:1.设计输入Quartus II设计软件支持多种格式的输入方法,其中包括原理图式图形输入;AHDL、HVDL、verilogHDL等硬件描述语言;内存编辑文件(Hex,Mif,第三方工具EnIF,HoL,vQM)。同时,QuartusII还允许使用混合设计或LPM与宏功能模块等一些别的方法优化和提高输入的灵活性。2.设计编译Quartus II编译过程包括设计检查,逻辑综合,设计网表的器件映射和生成仿真,时序分析和器件编程文件。3.延时分析在Quartus II编译过程的最后阶段会自动运行时序分析器,在编译过程结束后会自动报告时序分析结果。通过时序分析器可以分析整个设计的性能,并且对关键路径进行跟踪,定位。Quartus II提供对单个时钟或多个时钟的延时分析的支持。对于单个时钟,通过最大时钟频率和建立时间,保持时间和时钟到输出时间进行描述。对于多时钟可以支持客户分析由不同时钟控制的寄存器之间的延时。同时,Quartus II还能自动检测组合逻辑电路。生成的延时信息可以以VHDL,Veri1og或标准延时文件(SDF)的格式进行输出到第三方EAD工具中。4Quartus II仿真Quartus II支持多种仿真方法。波形方式输入是Quartus II主要的仿真输入方式,可以提供直观,简洁的仿真向量.wvf格式是Quartus II中最主要的波形文件,也兼容MAX+PLUS II中的vec和tbl格式的输入。Quartus II支持TCL/TK脚本文件的输入和通过第三方仿真工具支持veri1og/VHDL文本的测试向量。Quartus II支持的第三方仿真工具有Modelsim, L,VCS,VSS等。5.下载通过延时分析和仿真证实设计满足设计要求和功能,就可以使用QuartusII工具完成设计的最后阶段下载。在编译完成后QuartusII除了生成用于仿真和延时分析的文件外,还生成了Altera器件的配置文件,通过下载此文件完成器件的配置。5.3.2硬件描述语言的选择在FPGA/CPLD系统的设计中,设计人员主要依靠硬件描述语言来描述硬件电路,以实现其功能。目前主要的硬件描述语言有VHDL、Verilog HDL以及system C等。本设计选择使用VHDL语言进行硬件开发。VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务21。VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。与其他硬件描述语言相比,VHDL具有以下特点:1功能强大、设计灵活。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。2支持广泛、易于修改。由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。3强大的系统硬件描述能力。VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。4独立于器件的设计、与工艺无关。设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。5很强的移植能力。VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。6易于共享和复用。VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计22。5.3.3 LED逻辑显示模块软件设计LED逻辑显示模块的软件主要包括串口接收数据模块、SPI发送数据模块与数据处理模块。以下分别说明。1 串口接收数据模块(UART)。ARM7与CPLD之间数据的传送是通过串行方式(UART)进行发送。UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是一种应用广泛的短距离串行传输接口。UART允许在串行链路上进行全双工的通信。本设计使用VHDL将UART的核心功能集成,从而使整个设计更加紧凑、稳定且可靠。LED屏幕的显示是采用滚动屏幕的方式显示各个从机的运行参数。串行发送的数据暂存于CPLD内进行转换,然后再分屏显示。因CPLD接收数据并不需要很高的速度,故可以采用常用的9600波特率进行传送。本设计采用简易的8位数据UART方式传送数据。该方式的帧格式一共10位。其中,包括起始位(1位),数据位(8位)与停止位(1位)。省去了一位校验位,方便VHDL程序的设计。这种格式是由起始位和停止位来实现字符的同步。 UART主要由数据总线接口、控制逻辑、波特率发生器、发送部分和接收部分等组成。各部分功能包括发送缓冲器(tbr)、发送移位寄存器(tsr)、帧产生、奇偶校验、并串转换、数据接收缓冲器(rbr)、接收移位寄存器(rsr)、帧产生、奇偶校验、串并转换。由发送部分和接收部分在Quartus II中生成的原理图按图5.4连接。其中txmit为发送部分,rcvr为接收部分。在发送模块,发送器每隔16个CLK16时钟周期输出1位,次序遵循1位起始位、8位数据位、1位停止位。CPU何时可以往发送缓冲器tbr写入数据,也就是说CPU要写数据到tbr时必须判断当前是否可写,如果不判这个条件,发送的数据会出错。本设计由ARM7给出信号UART_W_EN。该信号为外部信号,通过查询该口来判断条件。发送器根据此信号将并行数据din7.0锁存进发送缓冲器tbr7.0,并通过发送移位寄存器tsr7.0发送串行数据至串行数据输出端sdo。在数据发送过程中用输出信号tbre、tsre作为标志信号,当一帧数据由发送缓冲器tbr7.0送到发送移位寄存器tsr7.0时,tbre信号为1,而数据由发送移位寄存器tsr7.0串行发送完毕时,tsre信号为1,通知CPU在下个时钟装入新数据。图5.4 UART收发模块实现原理在接收模块,串行数据帧和接收时钟是异步的,发送来的数据由逻辑1变为逻辑0可以视为一个数据帧的开始。接收器先要捕捉起始位,确定rxd输入由1到0,逻辑0要8个CLK16时钟周期,才是正常的起始位,然后在每隔16个CLK16时钟周期采样接收数据,移位输入接收移位寄存器rsr,最后输出数据dout。还要输出一个数据接收标志信号标志数据接收完。2SPI发送数据模块因LED驱动芯片MBI5030为SPI接口,故需要使CPLD完成对 MBI5030的SPI时序操作。因MBI5030的SPI接口时序与常规的通用标准不同,需要对IO口进行时序的模拟操作。表5.1说明了每个MBI5030进行操作时的不同时序。表5.1 MBI5030 时序逻辑以整体栓锁为例,表5.1的逻辑组合即为2个DCLK的上升沿被包含在LE的高电平期间,该状态下的时序图如图5.5所示:图5.5 写状态缓存器时序图由LE引脚与DCLK引脚的配合,能够实现每个MBI5030的片选状态,即完成了行列交叉开关的逻辑实现。在对每个MBI5030进行驱动时,需要先对状态缓存器进行设置。状态缓存器的16位数据按表5.2所示:表5.2状态缓存器数据位最高位F为奇偶校验位,只读属性。该位为0时表示奇偶校验正确。状态缓存器的数据可以由偶数的奇偶校验位值来确定数据是有否有被正确的传送。因其为16位,状态缓存器的总数必为偶数,当传送的装置送完16位的状态缓存器, 将计数全部15位的总数。当这总数为偶数, 将会设定奇偶校验位置0; 如果这总数为奇数, 将设定奇偶校验位值位为1; 在MBI5030 内部, 这装置将检查状态缓存器的奇偶校验位值会确保这16 位为偶数。如果这装置发现16 位为奇数, 这装置会判定状态缓存器的数据传输有错误, 然后会将奇偶校验位值位设定为“1”, 否则, 正确数据传输时,奇偶校验位值位将设定为“0”。“E”位为温度过高警告位,只读属性。该值为0时表示安全。温度过高警示是来表示温度过高的状态。MBI5030芯片的温度超过165度时, 第“E”位将被设定为“1”。“D”位为 读/写PWM 灰阶计数器。此处不需要进行灰度调整,故可以设为12位或者16位模式。本设计中设置为16位模式,方便软件时序操作。“B”位与“C”位的组合逻辑用于PWM 计数模式选择。“A”位为 读/写PWM 数据同步模式选择。因本设计中LED为单色显示,并不需要调整灰度,故这几位可以不设置,保持默认值即可。“9-2”位为 读/写电流增益调整。设为10101000值便能满足LED的亮度需求。“1” 位为读/写过热保护,默认状态下为0。为了保护芯片,在设计中把该位设为1。 “0”位为 读/写GCLK 无连接的过时间警示。当讯号线GCLK 无连接超过一秒钟, 全部的输出端点将自动被关闭。因CPLD的连接采用复用方式,该警告会频繁提示,故把该位设为1,关闭此警告。 在设置状态缓存器后,可以把需要输出的逻辑通过时序把16位数据依次锁入缓冲存储器。因设定为16位的模式,16 位的位移缓存器可依序的由“数据栓锁”指令输入将前15次的显示数据存到每一个缓冲存储器,然后在第16笔数据时输入一次“整体栓锁”,依照输出端15到输出端0,数据缓存器内的256位将会依MSB(最重要位)的顺序,将数据依序载入。这样就可以完整一个MBI5030的一次显示驱动操作18。3数据处理模块 在ARM7传送数据之前,ARM7内部需要参照数据显示方式的逻辑按照行与列排列形式发送给CPLD,CPLD再经过处理使之能够符合行列交叉驱动的逻辑组合。因需要显示的数据为16*16的格式,故汉字与字符需要预先进行字模处理,使之能够通过LED的逻辑显示后可以被理解。因LED的屏幕显示的内容是固定的几组参数,故汉字的字模可以固化在ARM7内,使之滚动显示在第一行与第三行。第二行与第四行为实时数据,需要把UART传送的数据进行转化,满足行列交叉开关的逻辑变换,使之成为可观测的LED字符。第六章 下位机数据采集与转速控制部分软硬件设计6.1下位机数据采集与转速控制部分总体设计6.1.1 功能总体需求分析下位机是整个控制系统的核心,整个工艺过程运行主要由下位机实现。在第三章己分析了细纱机的下位机数据采集与转速控制模块是由8个输出信号、16个输入信号与DA信号转速控制这几部分组成。设计下位机数据采集与转速控制部分总体需求如下:微控制器根据系统设置的参数与上位机传下的数据进行处理,实现对IO口的实时控制,并以高速计数的方式不断采集输入IO的信号。在主控制器中按照算法进行数据处理,并进行DA转换,控制变频器进行转速控制。在实时读取信息后,通过CAN网络把需要显示的数据发送给上位机主控单元进行显示23。故每个下位机数据采集与转速控制部分具体功能要求如下:(1)实现与上位机主控单元进行CAN总线通信:接收来自上位机主控单元下传的各种初始化参数值与当前控制信息,并将实时数据发送给上位机进行显示;(2)实现8路控制信号输出与16路检测信号输入的接口逻辑,并在输入输出的每路IO信号增加信号显示与保护设计;(3)通过DA模块配合运算放大器进行模拟信号放大来控制变频器,实现对锭子与主轴转速的控制。6.1.2 总体设计下位机数据采集与转速控制部分采用SOC单片机C8051F040为微控制器。C8051F040作为下位机的控制芯片有独特的优势:由于高度集成化的结构,使很多功能可以直接在片内完成,大大减少了外围电路的设计,使系统体积更小,印制板走线更短,抗干扰能力大大提高。下位机数据采集与转速控制部分通过对16个输入端口进行高速检测,将检测到的信号按特定的控制算法进行处理。转速信号经算法处理与DA转换输出,经运算放大器后控制变频器调节转速。普通状态信号需要经过算法分析控制输出端口做相应的处理。普通控制信号与转速信号在转换后都需要通过CAN网络进行上传,以供上位机显示。下位机数据采集与转速控制部分系统框图如图6.1所示24。图6.1下位机数据采集与转速控制部分系统框图6.2下位机数据采集与转速控制部分硬件设计下位机数据采集与转速控制部分的硬件设计主要由CAN网络通信模块、数模转换(DA)模块、IO输入模块、IO输出模块、电源模块、时钟模块构成。其中时钟模块的设计与上位机设计方法一致,也是采用DS1302进行计时。而C8051F040集成了CAN控制器,所以CAN网络通信模块的硬件设计只需要连接CAN收发器TJA1050,设计方法与上位机类似。这2部分的硬件电路请参见附录,本章不再分析。以下分别对另几个模块分别介绍。621电源模块硬件设计在下位机数据采集与转速控制部分电路中,需要的电源较多,主要牵涉到处理器、TTL逻辑变换芯片、运算放大器及继电器供电。这样就需要提供多种不同的电压源信号。下位机部分的芯片供电对应关系为:1 继电器 :+24V驱动2 运算放大器:12V驱动3 TTL逻辑器件:+5V驱动4 处理器及时钟芯片:+3.3V驱动以上关系可知,设计中可以要求工业现场提供+24V的开关电源。在+24V与12V之间采用传统的7812芯片进行电压转换。为了得到12V的运算放大器电压,选用金升阳(MORNSUN)公司生产的DC-DC模块IA-KS模块进行+12V变换12V的电压变换。+5V电压可以由LM2575直接从+24V变换得到。由于下位机不需要很大的驱动能力,可以使用ASM1117来得到3.3V的电压。由于ASM1117电路设计与上位机电源LM1085类似,这里就不再赘述。这里主要分析其他电压转换电路,如图6.2所示。图6.2 电源模块原理图 电源模块的前向通道与后向通道加了各种电容,起到了去耦作用。LM2575后向通道设计了双层LC滤波电路与稳压管,为系统的抗干扰提供了进一步保证。622 IO输入模块硬件设计输入信号主要包括以下信号:锭速、主轴速度、前罗拉信号、大纱位置、吸风启动、纺纱位置、中纱位置、主轴启动信号、中途停车、中途落纱、满管落纱、自动手动选择、停主电机下钢领板、急停、落纱位置、停止、油泵油位下限、油泵压力。因整个系统的转速测量完全通过计算接近开关发出的脉冲得到,所以不需要设计AD模块。其中锭速、主轴速度与前罗拉速度的信号需要高速计数,在C8051F040中进行转速计算。由于速度信号开关频率较快,所以输入信号的电路设计主要满足这部分的需求。IO输入模块的实现主要由C8051F040读管脚电平实现。这里选用主轴信号的采集为例分析输入部分的原理设计。IO输入模块的原理图如图6.3所示。I0.0表示主轴的脉冲输入信号,TP521为光耦芯片。在I0.0得到脉冲,高电平状态下,光耦芯片TP521的原边发光二极管导通,驱动副边导通。则AI00从高电平转换为低电平,并且使信号灯发光。一个脉冲的时间内,信号灯将闪烁一次,AIOO的逻辑信号也会有一个从高到低再到高的跳变。AI00信号后接非门(参见附录)连入C8051F040的IO口,在对该口的查询中就能实现对主轴的脉冲数读取的逻辑实现。图6.3 IO输入模块原理图图中R9不能改变阻值,因使用的方型信号灯必须限流,否则会把LED灯烧坏。该电阻阻值也不宜过高,否则灯的亮度将大大下降。选择光耦芯片是为了保护反向大电流击穿IO引脚所考虑增加的保护部分电路,且增加光耦也能增加一定的抗干扰效果。在选择光耦芯片时,最主要的条件是该芯片的开关频率必须高与输入信号的频率,否则将使得数据丢失。而TP521的开关频率为50KHz,能够满足系统的需求。523 IO输出模块硬件设计 输出信号主要包括以下信号:吸风电机、钢领板升、钢领板降、钢领制动、油泵电机、主轴制动、主轴运转、满纱灯。现选择吸风电机的控制电路作为说明。设备的控制动作是由输出IO的信号和停止信号IO进行“或”逻辑运算,然后经过光耦芯片驱动继电器线圈。该部分为数字电路逻辑运算,为方便说明,附图6.4说明。图中X14为停止信号,在X14与OT0同时为低电平的情况下,U20A导通,使U00成为低电平。在此情况下,光耦OU0的原边导通,带动K0继电器吸合。按照组合逻辑,就能有效保护继电器的吸合动作,防止上电时误操作的产生。N9为上拉排阻,起检测信号作用。因该部分电路控制的是继电器,为强电操作,为了保护系统的安全与人身安全,这样设计就可以避免伤害事故的发生。图6.4 IO输出电路原理图524 电机调速模块硬件设计系统的电机调速控制是通过变频器完成的。变频调速能够应用在大部分的电机拖动场合,由于它能提供精确的速度控制,因此可以方便地控制机械传动的变速运行。变频应用可以大大地提高工艺的高效性(变速不依赖于机械部分),同时可以比原来的定速运行电机更加节能。使用变频调速有如下优点:(1) 控制电机的启动电流。 当电机通过工频直接启动时,它将会产生7到8倍的电机额定电流。这个电流值将大大增加电机绕组的电应力并产生热量,从而降低电机的寿命。而变频调速则可以在零速零电压启动(也可适当加转矩提升)。一旦频率和电压的关系建立,变频器就可以按照V/F或矢量控制方式带动负载进行工作。使用变频调速能充分降低启动电流,提高绕组承受力,用户最直接的好处就是电机的维护成本将进一步降低、电机的寿命则相应增加。(2) 降低电力线路电压波动。 在电机工频启动时,电流剧增的同时,电压也会大幅度波动,电压下降的幅度将取决于启动电机的功率大小和配电网的容量。电压下降将会导致同一供电网络中的电压敏感设备故障跳闸或工作异常,如PC机、传感器、接近开关和接触器等均会动作出错。而采用变频调速后,由于能在零频率时逐步启动,则能最大程度上消除电压下降。(3) 启动时需要的功率更低。 电机功率与电流和电压的乘积成正比, 那么通过工频直接启动的电机消耗的功率将大大高于变频启动所需要的功率。在一些工况下其配电系统已经达到了最高极限,其直接工频启动电机所产生的电涌就会对同网上的其他用户产生严重的影响。如果采用变频器进行电机起停, 就不会产生类似的问题。(4) 可控的加速功能。 变频调速能在零速启动并按照用户的需要进行均匀地加速,而且其加速曲线也可以选择(直线加速、S形加速或者自动加速)。而通过工频启动时对电机或相连的机械部分轴或齿轮都会产生剧烈的振动。这种振动将进一步加剧机械磨损和损耗,降低机械部件和电机的寿命。另外,变频启动还能应用在类似灌装线上,以防止瓶子倒翻或损坏。(5) 可调的运行速度。 运用变频调速能优化工艺过程,并能根据工艺过程迅速改变,还能通过控制器来实现速度变化。(6) 可调的转矩极限。 通过变频调速后,能够设置相应的转矩极限来保护机械不致损坏,从而保证工艺过程的连续性和产品的可靠性。目前的变频技术使得不仅转矩极限可调,甚至转矩的控制精度都能达到35左右。在工频状态下,电机只能通过检测电流值或热保护来进行控制,而无法像在变频控制一样设置精确的转矩值来动作。(7) 受控的停止方式。 如同可控的加速一样, 在变频调速中, 停止方式可以受控,并且有不同的停止方式可以选择(减速停车、自由停车、减速停车直流制动),同样它能减少对机械部件和电机的冲击,从而使整个系统更加可靠,寿命也会相应增加。(8) 可逆运行控制 在变频器控制中,要实现可逆运行控制无须额外的可逆控制装置,只需要改变输出电压的相序即可,这样就能降低维护成本和节省安装空间。(9) 减少机械传动部件 由于目前矢量控制变频器加上同步电机就能实现高效的转矩输出, 从而节省齿轮箱等机械传动部件, 最终构成直接变频传动系统。从而就能降低成本和空间, 提高稳定性。为了对变频器进行精确控制,下位机C8051F040的DA输出口需要进行运算放大电路设计来精确控制变频器的动作。具体连接如图6.5所示。运算放大器的第一级采用同相比例放大方式。电压放大倍数为1+(R30/R31)。第二级采用电压跟随方式,因理想运放的开环差模增益为无穷大,故电压跟随器具有比射极输出器好得多的跟随特性。这样就完成了DA输出方式控制电机转速25。图65 DA运算放大电路原理6.3下位机数据采集与转速控制部分软件设计下位机因采用SOC设计,故软件部分基本集中在片内外设进行编程。下位机的软件开发环境选用Keil开发环境,使用Keil uVision v3.0版本进行开发。下位机平台的软件开发使用C51语言。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。本设计选用Keil C51开发环境的主要目的还在于下位机的主控制器是51的内核,而C51语言是基于51单片机的C语言。所以选用Keil C51来开发下位机软件最为合适。下位机的控制过程是整个系统保证设备正常工作的核心,而软件设计正是体现了工艺过程的完整性和合理性。故在下位机软件设计中,使用严格的软件架构来实现工艺控制。整个软件系统分为驱动层,中间层和应用层三部分。各层次职能如下:驱动层:提供对硬件的操作和访问接口。中间层:对驱动层进行封装,实现细节需求。应用层:对中间层进行组合调用,形成流程,实现宏观需求。基本原则:(1)接口向上单向开放,即下层不可以调用上层接口;(2)中间层可以平行使用接口;(3)应用层不能直接调用驱动层接口。这样设计的目的是便于维护与更新软件,在调试或者升级的过程中,不会产生较大的影响,使后续过程变得简洁合理。下位机数据采集与转速控制部分软件架构主要服从于工艺要求。整个软件流程按照工艺的先后顺序来实现。在正常工作中,采用中断处理上位机与下位机的数据通信。其他信号采用查询方式实现。在应用层中,只有主控制程序,该部分嵌套各模块的接口函数。中间层具体包括:CAN总线服务模块,DA转换模块,输入输出信号处理模块,时钟模块,可编程晶振模块。驱动层主要包含这几个模块的时序操作,以便正常访问各模块及操作该模块单一的动作。以下分别介绍各部分软件的实现。631下位机数据采集与转速控制部分主控制程序下位机主控制程序是整个系统的核心,完成了系统从启动到工作停止的整个过程,并完成对数据的读取和计算的功能. 如图6.6给出了系统控制主程序流程图。另外在图中选择程序1和2后,在遇到中途落纱时,可以随时调用中断,根据是程序1或者2来选择先停钢领板还是先停主电机。另外在系统运行时,如果遇到油位下限信号时,会给出油不足信号,提示加油信息。在计数过程中,通过计算,当产量累计到40万米时,会自动清零,然后再次累加。图6.6控制程序流程图因C8051F040的初始化方式与一般的51单片机并不相同,这里做一个简单的介绍。SFRPAGE=0xOF;/交叉开关配置/XBRI=0x00;XBR3=0x80;/CAN的收发器采用推挽模式SFRPAGE=OxOF;POMDOUT=Oxlf;/端口配置PO口为开漏输出PIMDOUT=0x00;/端口配置P1口为开漏输出PIMDIN=OxFF;/所有端口为数字输入 该部分为输出方式的初始化过程。对于端口的输出方式,系统采用开漏输出。因C8051F040有内部上拉方式,可以使用软件使这些输出口上拉至3.3V。632 CAN总线通信软件设计C8051F040的CAN总线通信软件设计首先必须了解C8051FO40集成的CAN总线控制器的工作原理。C8051F040集成的CAN总线控制器64由四部分构成:(l)CAN Core : CAN协议控制器和发送/接收转换寄存器;(2)Message RAM:存储Message Objects和标志码,CAN控制器共有32个Message Object可供配置用于发送或接收数据;每个消息RAM用来存储消息对象和每个对象的仲裁掩码,所有的数据传输和接收滤波都是由CAN控制器完成的而不是由CIP-51来完成。(3)Registers:用于控制和配置C8051F040-CAN模块的所有寄存器;(4)Message Handler:控制数据在CANCore的接收/发送转换寄存器和Message Objeet之间的传输,以及中断的产生。 在CAN控制器里只有三个寄存器可通过CIP-51中的特殊功能寄存器直接访问,其它的寄存器只能通过CAN0ADR、CAN0DATH和CAN0DATL寄存器以地址索引的方式间接访问。在使用CAN控制器时,重点和难点是对CAN控制器的寄存器的使用,其内部寄存器的分类及其主要功能如下:(1)CAN控制器协议寄存器该协议寄存器是用来配置CAN控制器,处理各种中断,监控总线状态以及置控制器为测试模式。CAN控制器协议寄存器可使用C8051 MCU特殊功能寄存器通过索引方式间接访问,其中有些还可以很方便的通过C8051内部特殊功能寄存器直接寻址来访问。这部分的寄存器有:CAN控制寄存器(CAN0CN)、CAN状态寄存器(CAN0STA)、CAN测试寄存器(CANTST)、错误计数寄存器、位定时寄存器和波特率预比列因子扩展寄存器。其中,CAN0CN、CAN0STA和CANTST可通过C8051 MCU特殊功能寄存器直接访问,其它的只能通过间接访问。(2)报文对象接口寄存器CAN控制器中有两组报文对象接口寄存器,它们用来配置报文RAM中32个报文对象是用来向CAN总线发送数据,还是从CAN总线接收数据。当其中的一组被设置为向报文RAM中写数据,另一组则从报文RAM中读取数据。利用此接口寄存器可以避免CPU访问报文RAM与CAN报文接收和发送缓冲转移之间的冲突。所有的报文对象都存储在报文RAM里面,通过报文对象寄存器对其进行访问和配置,这些寄存器要通过C8051的CAN0ADR和CAN0DAT寄存器,使用间接索引地址方式来访问。这部分寄存器有:IFX命令请求寄存器、IFX命令屏蔽寄存器、IFX屏蔽寄存器1、IFX屏蔽寄存器2、IFX仲裁寄存器1、IFX仲裁寄存器2、IFX报文控制寄存器、IFX数据寄存器A1、IFX数据寄存器A2、IFX数据寄存器B1和IFX数据寄存器B2。(3)报文处理寄存器所有的报文处理寄存器都是只读寄存器。通过读取它们的值可以实时地判断相应报文对象的状态,从而使CAN控制器能正确运行。它们的标识位由CAN0ADR、CAN0DATH和CAN0DATL通过索引方式间接来访问。报文处理寄存器提供中断、错误、发送/接收请求和新数据信息。这部分的寄存器包括:中断寄存器、发送请求寄存器、新数据寄存器、中断队列寄存器和报文有效寄存器。那么,通过CAN0ADR、CAN0DATH和CAN0DATL寄存器以索引方式间接访问CAN控制器中寄存器的过程会怎样呢?因为每个CAN控制器寄存器都有一个索引号,如果要访问某一CAN控制寄存器,只需将此寄存器的索引号写入CAN0ADR寄存器,而数据读/写操作通过CAN0DATH和CAN0DATL来完成。例如:如果需要对位定时寄存器重新配置时,只需向CAN0ADR寄存器中写入0X03,将新配置的数据的低字节写入CAN0DATL中,高字节写入CAN0DATH中。CAN内核不能直接访问消息RAM,必需通过接口寄存器IF1或IF2来访问。另外CIP-51的SFR并不能直接访问CAN内部寄存器的所有单元,其配置CAN、消息对象、读取CAN状态以及获取接收数据、传递发送数据都是由SFR中的6个特殊寄存器来完成。其中CAN0CN、CAN0TST和CAN0STA这3个寄存器可以直接获取修改CAN控制器中对应的寄存器。而CAN0DATH、CAN0DATL和CAN0ADR这3个寄存器用来访问修改其它不能直接访问的CAN内部寄存器,其中CAN0ADR用来指出要访问寄存器的地址,CAN0DATH、CAN0DATL这时就相当于要访问的16位寄存器的高低字节的映射寄存器,对他们的读写就相当于对所指向的寄存器的读写。系统中CAN总线通信软件设计主要包括3个模块:CAN通信初始化、接收数据和发送数据模块。程序中对来自CAN总线的数据处理是采用中断接收方式。通信协议与CAN网络物理架构等在下一章节重点介绍26。1) CAN通信初始化CAN通信初始化主要包括配置CANRX和CANTX、波特率设置、设置CAN寄存器、清除消息RAM中的32个消息对象、初始化发送消息对象、初始化接收消息对象、中断设置。软件实现如下: void start_CAN(void)SFPRAGE=CAN0_PAGE;/*指向CAN0页面*/CAN0CN|=0x41; /*将CCE和Init置“1”开始初始化*/CAN0ADR=BITREG;/*指向位定时寄存器进行配置*/CAN0DAT=0x2301; /*位率为500k/s*/CAN0CN|=0x06;/*允许全局中断,IE和SIE置位*/CAN0CN &=0x41; /*清楚CCE和INIT位,启动CAN状态机制*/2)发送数据CAN报文发送是由CAN控制器自动完成的,只需根据接收到的远程帧的识别符,将对应的数据转移到发送缓冲寄存器,然后将此报文对象的编码写入命令请求寄存器启动发送即可,而发送由硬件来完成。此处使用定时更新发送报文对象中的数据,数据的发送有控制器自动完成,当其收到一个远程帧时,就将具有相同识别符的数据帧发送出去。其发送程序结构如下:Void transmit_message(char MsgNum)SFRPAGE=CAN0_PAGE;/*指向CAN0页面*/CAN0ADR=IF1CMDMSK;/*向IF1命令屏蔽寄存器写入命令*/CAN0DAT=0X0083;CAN0ADR=IF1ARB2;/*指向IF1仲裁寄存器2*/CAN0DATH|=0x80;CAN0ADR=IF1DATA1;/*指向数据场的第一个字节*/for(i=0;i4;i+)CAN0DAT=can_tempi;/*将4字节数据写入发送缓冲器*/CAN0ADR=IF1CMDRQST;CAN0DATL=MsgNum;/*将报文对象编号写入,则数据发送到对应的报文对象中*/3)接收数据CAN报文的接收与发送一样,是由CAN控制器自动完成的,接收程序只需从接收缓存器中读取接收的数据,再进行相应的处理即可。其基本方法与发送程序一致,只是接收程序采用中断方式。在此应用中,接收程序主要接收上位机对下位机的参数设置数据,只有当修改时才需要接收数据,所以采用中断方式处理比较合适。接收程序结构如下:Void receive_data(void)SFPRAGE=CAN0_PAGE;/*指向CAN0页面*/CAN0ADR=IF2CMDMSK;/*向IF2命令屏蔽寄存器写命令*/CAN0DAT=0x003F;CAN0ADR=IF2CMDRQST;/*将报文对象编号写入命令请求寄存器,对应地接收*/CAN0DATL=MsgNum;/*得到数据就从报文RAM中移到数据缓冲器中*/CAN0ADR=IF2DATA1;/*指向数据场的第一个字节*/for(i=0;i4;i+) /*读取4个字节数据*/CAN_RXi=CAN0DAT;633 内部可编程晶振软件设计由本章的硬件电路设计可以了解(见附录),硬件电路中并未设计晶振电路。由于C8051F040内含一个可编程内部晶振和一个外部晶振驱动电路。内部晶振可以禁用,也可改变其振荡频率,这些均可通过对OSCICN和OSCICL寄存器操作得以实现。C8051F040共有5种起振方式:外部石英晶振、外部RC振荡、外部电容振荡、外部CMOS时钟输入和内部可编程晶振。鉴于系统设计的需要与成本的考虑,本设计决定采用最后一种方式,即内部可编程晶振。C8051F040的内部晶振精度很高,可达2%,直接使用内部晶振即可满足本设计要求。当系统复位后,C8051F040默认采用内部晶振起振。内部晶振通过OSCICL寄存器调节频率(调值范围为0-255)。调节公式见式(6-1) ( 6-1)式中;T为晶振真实振荡周期;f为晶振真实振荡频率; 为基准频率;OSCICL为OSCICL寄存器设备值。如图6.7所示。图6.7 OSCICL:内部振荡器校准寄存器该寄存器校准内部振荡器的周期。OSCICL 的复位值定义内部振荡器的基频。复位值已经过工厂校准,对应的内部振荡器频率为24.5MHz。位7-0取值范围为0-255,为内部晶振微调寄存器。此值在IFRDY为1,且内部晶振使能时,才对内部晶振频率产生影响。故在此还需要对OSCICN寄存器(内部振荡器控制寄存器)进行配置。如图6.8所示。图6.8 OSCICL:内部振荡器控制寄存器其中: 位7: IOSCEN:内部振荡器使能位0:禁止内部振荡器。1:使能内部振荡器。位6: IFRDY:内部振荡器频率准备好标志0:内部振荡器未运行在编程频率。1:内部振荡器运行在编程频率。位5-2: 保留位1-0: IFCN1-0:内部振荡器频率控制位00:系统时钟为内部振荡器8 分频。01:系统时钟为内部振荡器4 分频。10:系统时钟为内部振荡器2 分频。11:系统时钟为内部振荡器频率。因为下位机与上位机的通信是使用CAN总线方式通信,故在下位机的晶振频率选择上,尽量配合上位机来考虑,可以尽量避免波特率的差异。具体公式按照式(6-2)计算。 (6-2)上位机的CAN控制器晶振频率为16M(请参见第4章硬件部分),故由式(6-2)计算可得,OSCICL=85。由计算结果,则晶振模块可按如下配置26:SFRPAGE = 0x0F;CLKSEL = 0x00;OSCICL = 85;OSCICN = 0xc3;634 输入/输出端口软件设计C8051F040是高集成度的混合信号片上系统,按8 位端口组织的64 个数字I/O 引脚。所有端口都可以通过对应的端口数据寄存器按位寻址和按字节寻址。所有端口引脚都耐5V 电压,都可以被配置为漏极开路或推挽输出方式和弱上拉。C8051F040由于体积小,不可能把每个功能都设计成单独的端口,而是采用交叉开关的设计方式,通过优先级解码,将各个功能引脚按优先级顺序配置到P0-P3口。本设计中,除了普通的输入输出方式,还有I2C总线方式控制的时钟芯片,所以也需要对交叉开关进行配置。交叉开关又称优先权交叉开关译码器,按优先权顺序将端口0 3 的引脚分配给器件上的数字外设。端口引脚的分配顺序是从P0.0 开始,可以一直分配到P3.7。为数字外设分配端口引脚的优先权顺序列于图6.9。图6.9优先权交叉开关译码表由表可知,时钟芯片的I2C接口SDA与SCLK配置在P0.0与P0.1为较高优先级,设计是合理的。(参见附录硬件原理图)。交叉开关配置寄存器XBR0、XBR1、XBR2 和XBR3分别作为P0、P1、P2与P3口的配置寄存器。当交叉开关配置寄存器XBR0、XBR1、XBR2 和XBR3 中外设的对应使能位被设置为逻辑1时,交叉开关将端口引脚分配给外设。在本设计中,由于数字外设只用到了P0.0与P0.1的2个端口作为I2C接口,故只需要配置P0口的交叉开关寄存器即可。图6.10为XBR0控制逻辑。图6.10 XBR0:端口I/O 交叉开关寄存器0其中位0为使能I2C或者SMBUS接口,此处SMBUS总线规范与I2C总线规范皆可。 SMB0EN:SMBus 总线I/O 使能位0:SMBUS0 I/O 不连到端口引脚。1:SMBUS0 的SDA 连到2 个端口引脚。端口0 3 中所有未被交叉开关分配的引脚都可以作为通用I/O(GPI/O)引脚,通过读或写相应的端口数据寄存器访问,这是一组既可以按位寻址也可以按字节寻址的SFR。此处以P0举例说明,如图6.11所示。图6.11 P0:端口0 寄存器其中 P0.7:0:端口0 输出锁存器位。(写方式根据XBR0、XBR1、XBR2 和XBR3 寄存器的设置)。0:逻辑低电平输出。1:逻辑高电平输出。(若相应的P0MDOUT.n 位 = 0,则为漏极开路)。(读方式与XBR0、XBR1、XBR2 和XBR3 寄存器的设置无关)0:P0.n 为逻辑低电平。1:P0.n 为逻辑高电平。在输出方式选择上,还需要对输出方式进行配置(见图6.12),在本设计中,全部选用开漏方式进行设计。图6.12 P0:端口0 输出方式寄存器P0MDOUT.7:0:端口0 输出方式位。0:端口引脚的输出为漏极开路。1:端口引脚的输出为推挽方式。被交叉开关分配的端口引脚的输出状态受使用这些引脚的数字外设的控制。向端口数据寄存器(或相应的端口位)写入时对这些引脚的状态没有影响。不管交叉开关是否将引脚分配给外设,读一个端口数据寄存器(或端口位)将总是返回引脚本身的逻辑状态。唯一的例外发生在执行读-修改-写指令(ANL、ORL、XRL、CPL、INC、DEC、DJNZ、JBC、CLR、SET 和位传送操作)期间。在读-修改-写指令的读周期,所读的值是端口数据寄存器的内容,而不是端口引脚本身的状态。因为交叉开关寄存器影响器件外设的引脚分配,所以它们通常在外设被配置前由系统的初试化代码配置。一旦配置完毕,一般将不再对其重新编程。本设计中,只需要给时钟芯片的I2C接口配置交叉开关,其他引脚都为开漏方式。因C8051F040在默认的情况下,IO引脚使用开漏方式,所以不需要对其进行编程更改。635 DA输出软件设计实现变频器的控制需要进行对DA模块进行软件设计。C8051F040有两个片内12 位电压方式数/模转换器(DAC)。每个DAC 的输出摆幅均为0V 到(VREF-1LSB),对应的输入码范围是0x000 到0xFFF。可以用对应的控制寄存器DAC0CN 和DAC1CN 使能/禁止DAC0 和DAC1。在被禁止时,DAC 的输出保持在高阻状态,DAC的供电电流降到1A或更小。每个DAC的电压基准在VREFD引脚提供。因DAC0与DAC1完全相同,故选用DAC0行数/模转换。DAC输出更新方式有4种:直接更新;T2,T3和T4溢出;DAC0CN控制;DAC1CN控制。本设计采用直接更新方式进行DAC的输出更新。1控制寄存器配置在使用DAC0时,首先需要对DAC0 控制寄存器进行配置。如图6.13所示。图6.13 DAC0 控制寄存器其中各位表示如下:位7: DAC0EN:DAC0 使能位0:DAC0 禁止。DAC0 输出引脚被禁止,DAC0 处于低功耗停机方式1:DAC0 使能。DAC0 输出有效;DAC0 处于工作状态。位6-5: 未用。读 = 00b;写 = 忽略。位4-3: DAC0MD1-0:DAC0 方式位。00:DAC 输出更新发生在写DAC0H 时。01:DAC 输出更新发生在定时器3 溢出时。10:DAC 输出更新发生在定时器4 溢出时。11:DAC 输出更新发生在定时器2 溢出时。位2-0: DAC0DF2-0:DAC0 数据格式位:故在此需要把DAC0的控制寄存器按如下方式配置:SFRPAGE = 0x01;DAC0CN = 0x80; /DAC0使能,且为立即更新方式2数据更新DAC0 的输出在写DAC0 数据寄存器高字节(DAC0H)时更新。如果向DAC 数据寄存器写入一个12 位字,则12 位的数据字被写到低字节(DAC0L)和高字节(DAC0H)数据寄存器。在写DAC0H 寄存器后数据被锁存到DAC0。因此,在设置12 位分辨率后,写入DAC0L 之后写DAC0H。电气特性所图6.14示。图6.14 DAC0H: DAC0 高字节寄存器低字节寄存器与高字节寄存器形式相同,地址为0xD2。3 电压校准C8051F040有三个电压基准输入口,允许DAC使用外部电压基准或片内电压基准输出。基准电压控制寄存器REF0CN(如图6.15)使能/禁止内部基准发生器。图6.15 REF0CN: 电压基准控制寄存器其中各位表示如下:位7-5: 未用。读 = 000b,写 = 忽略。位4: AD0VRS:ADC0 电压基准选择位0:ADC0 电压基准取自VREF0 引脚。1:ADC0 电压基准取自DAC0 输出。位3: AD2VRS:ADC2 电压基准选择位0:ADC2 电压基准取自VREF2 引脚。1:ADC2 电压基准取自AV+。位2: TEMPE:温度传感器使能位0:内部温度传感器关闭。1:内部温度传感器工作。位1: BIASE:ADC/DAC 偏压发生器使能位(使用ADC 和DAC 时该位必须为1)0:内部偏压发生器关闭。1:内部偏压发生器工作。位0: REFBE:内部电压基准缓冲器使能位0:内部电压基准缓冲器关闭。1:内部电压基准缓冲器工作。内部电压基准输出到VREF 引脚27。REF0CN 中的BIASE 位使能片内电压基准发生器,而REFBE 位使能驱动VREF 引脚的2 倍增益缓冲放大器。当被禁止时,带隙基准和缓冲放大器消耗的电流小于1A(典型值),缓冲放大器的输出进入高阻状态。如果要使用内部带隙基准作为基准电压发生器,则BIASE 和REFBE位必须被置1。如果不使用内部基准,REFBE 位可以被清0。此处使用C8051F040内部基准电压给出参考电平。第七章 CAN总线通信网络物理接口及协议设计71 CAN总线物理实现CAN是一种性价比很高的串行总线,已经形成国际标准,被公认为几种最有前途的现场总线之一。由于采用了许多新技术及独特的设计,CAN总线与一般的通信总线相比,它的数据通信具有突出的可靠性、实时性和灵活性。CAN协议也遵循ISO/OSI模型,采用了其中的物理层、数据链路层与应用层。CAN采用多主工作方式,站点之间不分主从,但站点之间有优先级之分,通信方式灵活,可实现点对点、一点对多点及广播方式传输数据,无需调度。CAN采用的是非破坏性总线仲裁技术,按优先级发送,可以大大节省总线冲突仲裁时间,在重负荷下表现出良好的性能。CAN采用短帧结构传输,每帧有效字节为8个,传输时间短,受干扰的概率低。而且每帧信息都有CRC校验和其它检错措施,保证数据出错率极低。当站点严重错误时,具有自动关闭功能,使总线上其它站点不受影响,所以CAN是所有总线中最为可靠的。CAN总线可采用双绞线、同轴电缆或光纤作为传输介质。它的直接通信距离最远可达10km,通信速率最高达1M bps(通信距离为40m时),总线上可挂设备数主要取决于总线驱动电路,最多可达110个28。7.1.1CAN总线的物理层物理层完成电气连接、实现驱动器、接收器特性、定时、同步、位编码、解码等功能。CAN能够使用多种物理介质,例如双绞线、光纤等,最常用的就是双绞线。CAN系统内任意两个站点间的最大传输距离与其位速率有关29。因本系统处于车间内,传输长度不需要很大,故可采用双绞线结构进行连接。7.1.2 CAN总线的数据链路层CAN总线的数据链路层包括逻辑链路控制子层LLC和媒体访问控制子层MAC。其中,MAC子层的主要功能是实现传输规则,它是CAN协议的核心,主要包括控制帧的结构、传输时的非归零编码方式(检测到连续5个数值相同位流后自动插入一个补码位)、执行仲裁、错误检测、出错标定和故障界定,同时还要确定总线是否空闲(出现连续7个以上的“隐性”位)或者能否马上接收数据(检测同步信号)。LLC子层的主要功能是报文的滤波(根据数据块的编码地址进行选择性接收)和报文的处理。7.1.3 CAN数据帧结构CAN报文共有4种不同类型的帧表示和控制:数据帧,携带数据由发送器至接收器;远程帧,通过总线单元发送,以请求发送具有相同标识符的数据帧;出错帧,由检测出总线错误的任何单元发送;超载帧,用于提供当前的和后续的数据帧的附加延迟。数据帧和远程帧借助帧间空间与当前帧分开。1数据帧数据帧由7个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场和帧结束。数据场长度可为O-8个字节。CAN2.OA数据帧的组成如下图7.1所示。在CAN2.OB中存在两种不同的帧格式,其主要区别在于标识符的长度,具有11位标识符的帧称为标准帧,而包括29位标识符的帧称为扩展帧。图7.1数据帧结构1)帧起始:它标志数据帧和远程帧的开始,由一个单独的“显性”字节组成,只有在总线处于空闲状态时,才允许站点开始发送,这个状态将结束总线空闲状态,表明某个站点设备开始发送消息,并且所有的站点必须同步于首先开始发送信息的站点的帧起始前沿。2)仲裁场:仲裁场包括标识符和远程发送请求位(RTR)。标准帧具有11位标识符,而扩展帧具有29位标识符。RTR位在数据帧里必须为“显性”,而在远程帧里必须为“隐性”。3)控制场:控制场由6字节成,包括数据长度代码和两个将来作为扩展用的保留位。所发送的保留位必须为“显性”。接收器接收所有由“显性”和“隐性”组合在一起的位。数据长度代码表示了数据场中字节数量。数据长度代码为4位。4)数据场:数据场由发送数据组成。它可以为0-8个字节,每字节包含8位。5)CRC场: CRC场包括CRC序列和CRC界定符。6)应答场 (ACK场):应答场长度为2位,包含应答间隙和应答界定符。在应答场里,发送站发送两个“隐性”位。当接收器正确地接收到有效的报文,接收器就会在应答间隙期间向发送器发送一个“显性”的位以示应答。所有接收到匹配CRC序列的站点会在应答间隙期间用一“显性”位写入发送器的“隐性”位来做出回答。ACK界定符是一个必须为“隐性”的位。因此,应答间隙被两个“隐性”的位所包围,即CRC界定符和ACK界定符。7)帧结束:每一个数据帧和远程帧均由一标志序列界定。这个标志序列由7个“隐性”位组成。2远程帧标准格式和扩展格式都有远程帧。远程帧由6部分组成:帧起始、仲裁域、控制域、CRC域、应答域和帧结束。与数据帧相反,远程帧中的RTR位是隐性的。远程帧没有数据帧,与数据长码的值没有关系。数据长度码可以赋值为0-8的任一数值,该数值也就是所请数据帧的数据长度码。3、出错帧出错帧由两个部分组成,第一个部分由来自不同站点的出错标志叠加而成,随后的第二部分是出错界定符。出错标志有两种形式:积极出错标志和消极出错标志。积极出错标志由6个连续的显性位组成,而消极出错标志由6个连续的隐性位组成。一个错误积极站点如果检测到了一个出错条件,会发送一个积极出错标志进行标识。一个错误消极站点如果检测到了一个出错条件,会试图发送一个消极出错标志进行标识。4、超载帧超载帧包括两个域:超载标志和超载界定符。存在以下3种超载条件,都会引起超载帧的发送:(1)接收器要求延迟下一数据帧或远程帧的到达;(2)在帧间间隔间歇域的第一和第二位检测到显性位;(3)如果一个CAN站点在出错界定符或超载界定符的第8位(最后一位)采样到1个显性位,站点会发送1个超载帧,错误计数器不会增加。7.1.4 CAN总线的通信机制任意一个站点在检测到总线空闲(连续7个隐位)后,就可以发送数据,进入发送状态,首先发送的是一个帧起始位,作为总线上的其它所有站点收发数据的同步信号,其它站点也可以同时发送数据。发送期间,发送数据帧或远程帧的每个站点均为总线主站。当许多站点一起开始发送时,此时只有发送具有最高优先权帧的站点拥有链路访问权。在发送仲裁场期间,站点每发送一位数据,同时检测总线状态,如果检测到的状态与发送的数据位一致,则继续发送下一位数据。如果发送的是隐位,而检测到的是显位时,表明本站点的信息帧在总线上与具有更高优先级的站点信息帧发生冲突,则自动退出发送,转入接收状态,等待下一次总线空闲时再发送数据。当送出“显性”电平,而监测至“隐性”电平时,表明站点检测出位错误。对链路竞争的仲裁依靠标识符和紧随其后的RTR位完成。具有不同标识符的两帧中,较高优先权的标识符具有较低的二进制数值。若具有相同标识符的数据帧和远程帧同时被初始化,数据帧比远程帧具有较高优先权,这通过标注RTR位的值达到。另外,CAN总线解决冲突还有下列原则:每条信息有唯一的标识符;具有一定标识符和非零DLC的数据帧仅可由一个站点启动;远程帧中的DLC为全系统内确定,避免出现具有相同标识符和不同DLC的远程帧同时发送30。72 CAN网络协议设计系统中使用的CAN协议以CAN帧结构为基础,基于主从式网络结构。CAN总线在发送报文时以帧为单位,每一帧分为标识符和数据长度。(l)信息表示符分配在CAN系统中,以ID来标识数据的含义,ID决定了信息的优先权,同时也影响信息滤波的适应性,因而合理、高效的信息标识符ID分配方案是充分发挥CAN总线性能的前提条件。依据CAN的仲裁机制,CAN信息标识符分配应该遵循以下原则。在同一系统内,每条信息必须标以唯一的信息标识符。因为CAN是以标识符来标识信息含义的,信息含义与标识符之间必须具有一一对应的关系。如果同一信息标识符标识多个信息帧或者是每个信息帧有多个标识符,都将导致信息不能被正确理解。具有给定标识符且DLC(数据长度码)不为O的数据帧仅可由一个站点启动。否则,在某时刻如果几个站点同时发送,将造成仲裁失效。本次所制定的协议种信息标识符采用静态分配的策略,采用PeliCAN模式,识符为29位。其中最高8位(ID21-ID28)为目标站号地址。次高8位(ID13-ID20)为本站号。CAN总线一共可以接110个站点。站点号小的优先权高。故主控模块的站号设置为最小,即0,各个从机站号依次递增。ID9-ID12这4位作为信息功能码,表示的含义分别为:主轴转速:0000;锭速:0001;吸风电机:0010;钢领板升:0011;钢领板降:0100;钢领制动:0101;油泵电机:0110;主轴制动:0111;主轴运转:1000;满纱:1001;ID5-ID8表示帧总数。CAN总线的数据帧每帧只能传输8个字节的数据,数据帧是采用多帧传输还是单帧传输可以在此4位设置。在本设计中,1帧就已足够。为了方便系统的扩展,此处保留4位方便更新。 (2)应用层信息帧格式应用层信息帧是应用层与CAN基本通信部分之间数据交换的纽带。应用层将信息帧解析后,输出给用户程序,应用层将用户程序需要发送的信息通过应用层装配成帧后,供CAN基本通信部分发送。应用层信息帧格式如表7-1所示。仲裁场控制场目标源点 信息格式总数当前RTR数据长度数据场Byte0Byte1Byte2Byte3Byte4Byte5Byte6Byte7表7-1应用层信息帧格式RTR=O:数据帧;RTR=1:远程帧;应用层信息帧的组装用户数据需要在应用层按照应用层信息帧的固定格式组装起来,以供CAN基本通信程序读取使用。在应用层中CAN信息帧封装函数依据用户程序提供的待发送信息,判断待发送数据的功能和具体数据类型,形成仲裁场中的信息功能段,信息格式段和RTR位,比如要发送主轴转速变量数据,则信息功能码为0000,RTR=O。然后设置数据长度码,若RTR=O,则数据长度码的值通过计算待发送的用户数据取得;数据场的信息就是待发送的数据实体。应用层信息帧的解析接收到的CAN信息帧在应用层中解析出来,供用户程序使用。在应用层中CAN信息解析函数按如下步骤来解析。首先判断R双位的值,若RTR=1,则为请求发送的远程帧,依据其信息功能码和信息格式码判断其所请求的数据类型,通知给信息帧封装函数。若RTR=O,则为数据帧,将根据其站号判断是否是本站的相关联站点,不是就不继续
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。